@dbml/parse 8.3.1-custom-metadata.3 → 8.3.1-custom-metadata.4

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,15 +1,15 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e=Symbol(`PASS_THROUGH`),t=Symbol(`UNHANDLED`),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 this.value===e?void 0:this.value}getValue(){return this.value}getErrors(){return this.errors}getWarnings(){return this.warnings||[]}chainFiltered(t,n){if(this.value===n)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 this.value===n?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)}},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.Metadata=`metadata`,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}({}),a=typeof global==`object`&&global&&global.Object===Object&&global,o=typeof self==`object`&&self&&self.Object===Object&&self,s=a||o||Function(`return this`)(),c=s.Symbol,l=Object.prototype,u=l.hasOwnProperty,d=l.toString,f=c?c.toStringTag:void 0;function p(e){var t=u.call(e,f),n=e[f];try{e[f]=void 0;var r=!0}catch{}var i=d.call(e);return r&&(t?e[f]=n:delete e[f]),i}var m=Object.prototype.toString;function ee(e){return m.call(e)}var te=`[object Null]`,ne=`[object Undefined]`,re=c?c.toStringTag:void 0;function ie(e){return e==null?e===void 0?ne:te:re&&re in Object(e)?p(e):ee(e)}function ae(e){return typeof e==`object`&&!!e}var oe=`[object Symbol]`;function se(e){return typeof e==`symbol`||ae(e)&&ie(e)==oe}function ce(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 le=Array.isArray,ue=1/0,de=c?c.prototype:void 0,fe=de?de.toString:void 0;function pe(e){if(typeof e==`string`)return e;if(le(e))return ce(e,pe)+``;if(se(e))return fe?fe.call(e):``;var t=e+``;return t==`0`&&1/e==-ue?`-0`:t}var me=/\s/;function he(e){for(var t=e.length;t--&&me.test(e.charAt(t)););return t}var ge=/^\s+/;function _e(e){return e&&e.slice(0,he(e)+1).replace(ge,``)}function ve(e){var t=typeof e;return e!=null&&(t==`object`||t==`function`)}var ye=NaN,be=/^[-+]0x[0-9a-f]+$/i,xe=/^0b[01]+$/i,Se=/^0o[0-7]+$/i,Ce=parseInt;function we(e){if(typeof e==`number`)return e;if(se(e))return ye;if(ve(e)){var t=typeof e.valueOf==`function`?e.valueOf():e;e=ve(t)?t+``:t}if(typeof e!=`string`)return e===0?e:+e;e=_e(e);var n=xe.test(e);return n||Se.test(e)?Ce(e.slice(2),n?2:8):be.test(e)?ye:+e}var Te=1/0,Ee=17976931348623157e292;function De(e){return e?(e=we(e),e===Te||e===-Te?(e<0?-1:1)*Ee:e===e?e:0):e===0?e:0}function Oe(e){var t=De(e),n=t%1;return t===t?n?t-n:t:0}function ke(e){return e}var Ae=`[object AsyncFunction]`,je=`[object Function]`,Me=`[object GeneratorFunction]`,Ne=`[object Proxy]`;function Pe(e){if(!ve(e))return!1;var t=ie(e);return t==je||t==Me||t==Ae||t==Ne}var Fe=s[`__core-js_shared__`],Ie=function(){var e=/[^.]+$/.exec(Fe&&Fe.keys&&Fe.keys.IE_PROTO||``);return e?`Symbol(src)_1.`+e:``}();function Le(e){return!!Ie&&Ie in e}var Re=Function.prototype.toString;function ze(e){if(e!=null){try{return Re.call(e)}catch{}try{return e+``}catch{}}return``}var Be=/[\\^$.*+?()[\]{}|]/g,Ve=/^\[object .+?Constructor\]$/,He=Function.prototype,Ue=Object.prototype,We=He.toString,Ge=Ue.hasOwnProperty,Ke=RegExp(`^`+We.call(Ge).replace(Be,`\\$&`).replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,`$1.*?`)+`$`);function qe(e){return!ve(e)||Le(e)?!1:(Pe(e)?Ke:Ve).test(ze(e))}function Je(e,t){return e?.[t]}function Ye(e,t){var n=Je(e,t);return qe(n)?n:void 0}var Xe=Ye(s,`WeakMap`);function Ze(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)}function Qe(){}var $e=800,et=16,tt=Date.now;function nt(e){var t=0,n=0;return function(){var r=tt(),i=et-(r-n);if(n=r,i>0){if(++t>=$e)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}function rt(e){return function(){return e}}var it=function(){try{var e=Ye(Object,`defineProperty`);return e({},``,{}),e}catch{}}(),at=nt(it?function(e,t){return it(e,`toString`,{configurable:!0,enumerable:!1,value:rt(t),writable:!0})}:ke);function ot(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}function st(e){return e!==e}function ct(e,t,n){for(var r=n-1,i=e.length;++r<i;)if(e[r]===t)return r;return-1}function lt(e,t,n){return t===t?ct(e,t,n):ot(e,st,n)}function ut(e,t){return!!(e!=null&&e.length)&&lt(e,t,0)>-1}var dt=9007199254740991,ft=/^(?:0|[1-9]\d*)$/;function pt(e,t){var n=typeof e;return t??=dt,!!t&&(n==`number`||n!=`symbol`&&ft.test(e))&&e>-1&&e%1==0&&e<t}function mt(e,t,n){t==`__proto__`&&it?it(e,t,{configurable:!0,enumerable:!0,value:n,writable:!0}):e[t]=n}function ht(e,t){return e===t||e!==e&&t!==t}var gt=Math.max;function _t(e,t,n){return t=gt(t===void 0?e.length-1:t,0),function(){for(var r=arguments,i=-1,a=gt(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),Ze(e,this,s)}}function vt(e,t){return at(_t(e,t,ke),e+``)}var yt=9007199254740991;function bt(e){return typeof e==`number`&&e>-1&&e%1==0&&e<=yt}function xt(e){return e!=null&&bt(e.length)&&!Pe(e)}var St=Object.prototype;function Ct(e){var t=e&&e.constructor;return e===(typeof t==`function`&&t.prototype||St)}function wt(e,t){for(var n=-1,r=Array(e);++n<e;)r[n]=t(n);return r}var Tt=`[object Arguments]`;function Et(e){return ae(e)&&ie(e)==Tt}var Dt=Object.prototype,Ot=Dt.hasOwnProperty,kt=Dt.propertyIsEnumerable,At=Et(function(){return arguments}())?Et:function(e){return ae(e)&&Ot.call(e,`callee`)&&!kt.call(e,`callee`)};function jt(){return!1}var Mt=typeof exports==`object`&&exports&&!exports.nodeType&&exports,Nt=Mt&&typeof module==`object`&&module&&!module.nodeType&&module,Pt=Nt&&Nt.exports===Mt?s.Buffer:void 0,Ft=(Pt?Pt.isBuffer:void 0)||jt,It=`[object Arguments]`,Lt=`[object Array]`,Rt=`[object Boolean]`,zt=`[object Date]`,Bt=`[object Error]`,Vt=`[object Function]`,Ht=`[object Map]`,Ut=`[object Number]`,Wt=`[object Object]`,Gt=`[object RegExp]`,Kt=`[object Set]`,qt=`[object String]`,Jt=`[object WeakMap]`,Yt=`[object ArrayBuffer]`,Xt=`[object DataView]`,Zt=`[object Float32Array]`,Qt=`[object Float64Array]`,$t=`[object Int8Array]`,en=`[object Int16Array]`,tn=`[object Int32Array]`,nn=`[object Uint8Array]`,rn=`[object Uint8ClampedArray]`,an=`[object Uint16Array]`,on=`[object Uint32Array]`,h={};h[Zt]=h[Qt]=h[$t]=h[en]=h[tn]=h[nn]=h[rn]=h[an]=h[on]=!0,h[It]=h[Lt]=h[Yt]=h[Rt]=h[Xt]=h[zt]=h[Bt]=h[Vt]=h[Ht]=h[Ut]=h[Wt]=h[Gt]=h[Kt]=h[qt]=h[Jt]=!1;function sn(e){return ae(e)&&bt(e.length)&&!!h[ie(e)]}function cn(e){return function(t){return e(t)}}var ln=typeof exports==`object`&&exports&&!exports.nodeType&&exports,un=ln&&typeof module==`object`&&module&&!module.nodeType&&module,dn=un&&un.exports===ln&&a.process,fn=function(){try{return un&&un.require&&un.require(`util`).types||dn&&dn.binding&&dn.binding(`util`)}catch{}}(),pn=fn&&fn.isTypedArray,mn=pn?cn(pn):sn,hn=Object.prototype.hasOwnProperty;function gn(e,t){var n=le(e),r=!n&&At(e),i=!n&&!r&&Ft(e),a=!n&&!r&&!i&&mn(e),o=n||r||i||a,s=o?wt(e.length,String):[],c=s.length;for(var l in e)(t||hn.call(e,l))&&!(o&&(l==`length`||i&&(l==`offset`||l==`parent`)||a&&(l==`buffer`||l==`byteLength`||l==`byteOffset`)||pt(l,c)))&&s.push(l);return s}function _n(e,t){return function(n){return e(t(n))}}var vn=_n(Object.keys,Object),yn=Object.prototype.hasOwnProperty;function bn(e){if(!Ct(e))return vn(e);var t=[];for(var n in Object(e))yn.call(e,n)&&n!=`constructor`&&t.push(n);return t}function xn(e){return xt(e)?gn(e):bn(e)}function Sn(e){var t=[];if(e!=null)for(var n in Object(e))t.push(n);return t}var Cn=Object.prototype.hasOwnProperty;function wn(e){if(!ve(e))return Sn(e);var t=Ct(e),n=[];for(var r in e)r==`constructor`&&(t||!Cn.call(e,r))||n.push(r);return n}function Tn(e){return xt(e)?gn(e,!0):wn(e)}var En=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Dn=/^\w*$/;function On(e,t){if(le(e))return!1;var n=typeof e;return n==`number`||n==`symbol`||n==`boolean`||e==null||se(e)?!0:Dn.test(e)||!En.test(e)||t!=null&&e in Object(t)}var kn=Ye(Object,`create`);function An(){this.__data__=kn?kn(null):{},this.size=0}function jn(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=+!!t,t}var Mn=`__lodash_hash_undefined__`,Nn=Object.prototype.hasOwnProperty;function Pn(e){var t=this.__data__;if(kn){var n=t[e];return n===Mn?void 0:n}return Nn.call(t,e)?t[e]:void 0}var Fn=Object.prototype.hasOwnProperty;function In(e){var t=this.__data__;return kn?t[e]!==void 0:Fn.call(t,e)}var Ln=`__lodash_hash_undefined__`;function Rn(e,t){var n=this.__data__;return this.size+=+!this.has(e),n[e]=kn&&t===void 0?Ln:t,this}function zn(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])}}zn.prototype.clear=An,zn.prototype.delete=jn,zn.prototype.get=Pn,zn.prototype.has=In,zn.prototype.set=Rn;function Bn(){this.__data__=[],this.size=0}function Vn(e,t){for(var n=e.length;n--;)if(ht(e[n][0],t))return n;return-1}var Hn=Array.prototype.splice;function Un(e){var t=this.__data__,n=Vn(t,e);return n<0?!1:(n==t.length-1?t.pop():Hn.call(t,n,1),--this.size,!0)}function Wn(e){var t=this.__data__,n=Vn(t,e);return n<0?void 0:t[n][1]}function Gn(e){return Vn(this.__data__,e)>-1}function Kn(e,t){var n=this.__data__,r=Vn(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this}function qn(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])}}qn.prototype.clear=Bn,qn.prototype.delete=Un,qn.prototype.get=Wn,qn.prototype.has=Gn,qn.prototype.set=Kn;var Jn=Ye(s,`Map`);function Yn(){this.size=0,this.__data__={hash:new zn,map:new(Jn||qn),string:new zn}}function Xn(e){var t=typeof e;return t==`string`||t==`number`||t==`symbol`||t==`boolean`?e!==`__proto__`:e===null}function Zn(e,t){var n=e.__data__;return Xn(t)?n[typeof t==`string`?`string`:`hash`]:n.map}function Qn(e){var t=Zn(this,e).delete(e);return this.size-=+!!t,t}function $n(e){return Zn(this,e).get(e)}function er(e){return Zn(this,e).has(e)}function tr(e,t){var n=Zn(this,e),r=n.size;return n.set(e,t),this.size+=n.size==r?0:1,this}function nr(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])}}nr.prototype.clear=Yn,nr.prototype.delete=Qn,nr.prototype.get=$n,nr.prototype.has=er,nr.prototype.set=tr;var rr=`Expected a function`;function ir(e,t){if(typeof e!=`function`||t!=null&&typeof t!=`function`)throw TypeError(rr);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(ir.Cache||nr),n}ir.Cache=nr;var ar=500;function or(e){var t=ir(e,function(e){return n.size===ar&&n.clear(),e}),n=t.cache;return t}var sr=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,cr=/\\(\\)?/g,lr=or(function(e){var t=[];return e.charCodeAt(0)===46&&t.push(``),e.replace(sr,function(e,n,r,i){t.push(r?i.replace(cr,`$1`):n||e)}),t});function ur(e){return e==null?``:pe(e)}function dr(e,t){return le(e)?e:On(e,t)?[e]:lr(ur(e))}var fr=1/0;function pr(e){if(typeof e==`string`||se(e))return e;var t=e+``;return t==`0`&&1/e==-fr?`-0`:t}function mr(e,t){t=dr(t,e);for(var n=0,r=t.length;e!=null&&n<r;)e=e[pr(t[n++])];return n&&n==r?e:void 0}function hr(e,t,n){var r=e==null?void 0:mr(e,t);return r===void 0?n:r}function gr(e,t){for(var n=-1,r=t.length,i=e.length;++n<r;)e[i+n]=t[n];return e}var _r=c?c.isConcatSpreadable:void 0;function vr(e){return le(e)||At(e)||!!(_r&&e&&e[_r])}function yr(e,t,n,r,i){var a=-1,o=e.length;for(n||=vr,i||=[];++a<o;){var s=e[a];t>0&&n(s)?t>1?yr(s,t-1,n,r,i):gr(i,s):r||(i[i.length]=s)}return i}function br(e){return e!=null&&e.length?yr(e,1):[]}function xr(){this.__data__=new qn,this.size=0}function Sr(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n}function Cr(e){return this.__data__.get(e)}function wr(e){return this.__data__.has(e)}var Tr=200;function Er(e,t){var n=this.__data__;if(n instanceof qn){var r=n.__data__;if(!Jn||r.length<Tr-1)return r.push([e,t]),this.size=++n.size,this;n=this.__data__=new nr(r)}return n.set(e,t),this.size=n.size,this}function Dr(e){var t=this.__data__=new qn(e);this.size=t.size}Dr.prototype.clear=xr,Dr.prototype.delete=Sr,Dr.prototype.get=Cr,Dr.prototype.has=wr,Dr.prototype.set=Er;function Or(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}function kr(){return[]}var Ar=Object.prototype.propertyIsEnumerable,jr=Object.getOwnPropertySymbols,Mr=jr?function(e){return e==null?[]:(e=Object(e),Or(jr(e),function(t){return Ar.call(e,t)}))}:kr;function Nr(e,t,n){var r=t(e);return le(e)?r:gr(r,n(e))}function Pr(e){return Nr(e,xn,Mr)}var Fr=Ye(s,`DataView`),Ir=Ye(s,`Promise`),Lr=Ye(s,`Set`),Rr=`[object Map]`,zr=`[object Object]`,Br=`[object Promise]`,Vr=`[object Set]`,Hr=`[object WeakMap]`,Ur=`[object DataView]`,Wr=ze(Fr),Gr=ze(Jn),Kr=ze(Ir),qr=ze(Lr),Jr=ze(Xe),Yr=ie;(Fr&&Yr(new Fr(new ArrayBuffer(1)))!=Ur||Jn&&Yr(new Jn)!=Rr||Ir&&Yr(Ir.resolve())!=Br||Lr&&Yr(new Lr)!=Vr||Xe&&Yr(new Xe)!=Hr)&&(Yr=function(e){var t=ie(e),n=t==zr?e.constructor:void 0,r=n?ze(n):``;if(r)switch(r){case Wr:return Ur;case Gr:return Rr;case Kr:return Br;case qr:return Vr;case Jr:return Hr}return t});var Xr=Yr,Zr=s.Uint8Array;function Qr(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 $r=`__lodash_hash_undefined__`;function ei(e){return this.__data__.set(e,$r),this}function ti(e){return this.__data__.has(e)}function ni(e){var t=-1,n=e==null?0:e.length;for(this.__data__=new nr;++t<n;)this.add(e[t])}ni.prototype.add=ni.prototype.push=ei,ni.prototype.has=ti;function ri(e,t){for(var n=-1,r=e==null?0:e.length;++n<r;)if(t(e[n],n,e))return!0;return!1}function ii(e,t){return e.has(t)}var ai=1,oi=2;function si(e,t,n,r,i,a){var o=n&ai,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&oi?new ni: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(!ri(t,function(e,t){if(!ii(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}function ci(e){var t=-1,n=Array(e.size);return e.forEach(function(e,r){n[++t]=[r,e]}),n}function li(e){var t=-1,n=Array(e.size);return e.forEach(function(e){n[++t]=e}),n}var ui=1,di=2,fi=`[object Boolean]`,pi=`[object Date]`,mi=`[object Error]`,hi=`[object Map]`,gi=`[object Number]`,_i=`[object RegExp]`,vi=`[object Set]`,yi=`[object String]`,bi=`[object Symbol]`,xi=`[object ArrayBuffer]`,Si=`[object DataView]`,Ci=c?c.prototype:void 0,wi=Ci?Ci.valueOf:void 0;function Ti(e,t,n,r,i,a,o){switch(n){case Si:if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case xi:return!(e.byteLength!=t.byteLength||!a(new Zr(e),new Zr(t)));case fi:case pi:case gi:return ht(+e,+t);case mi:return e.name==t.name&&e.message==t.message;case _i:case yi:return e==t+``;case hi:var s=ci;case vi:var c=r&ui;if(s||=li,e.size!=t.size&&!c)return!1;var l=o.get(e);if(l)return l==t;r|=di,o.set(e,t);var u=si(s(e),s(t),r,i,a,o);return o.delete(e),u;case bi:if(wi)return wi.call(e)==wi.call(t)}return!1}var Ei=1,Di=Object.prototype.hasOwnProperty;function Oi(e,t,n,r,i,a){var o=n&Ei,s=Pr(e),c=s.length;if(c!=Pr(t).length&&!o)return!1;for(var l=c;l--;){var u=s[l];if(!(o?u in t:Di.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 ki=1,Ai=`[object Arguments]`,ji=`[object Array]`,Mi=`[object Object]`,Ni=Object.prototype.hasOwnProperty;function Pi(e,t,n,r,i,a){var o=le(e),s=le(t),c=o?ji:Xr(e),l=s?ji:Xr(t);c=c==Ai?Mi:c,l=l==Ai?Mi:l;var u=c==Mi,d=l==Mi,f=c==l;if(f&&Ft(e)){if(!Ft(t))return!1;o=!0,u=!1}if(f&&!u)return a||=new Dr,o||mn(e)?si(e,t,n,r,i,a):Ti(e,t,c,n,r,i,a);if(!(n&ki)){var p=u&&Ni.call(e,`__wrapped__`),m=d&&Ni.call(t,`__wrapped__`);if(p||m){var ee=p?e.value():e,te=m?t.value():t;return a||=new Dr,i(ee,te,n,r,a)}}return f?(a||=new Dr,Oi(e,t,n,r,i,a)):!1}function Fi(e,t,n,r,i){return e===t?!0:e==null||t==null||!ae(e)&&!ae(t)?e!==e&&t!==t:Pi(e,t,n,r,Fi,i)}var Ii=1,Li=2;function Ri(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 Dr;if(r)var f=r(l,u,c,e,t,d);if(!(f===void 0?Fi(u,l,Ii|Li,r,d):f))return!1}}return!0}function zi(e){return e===e&&!ve(e)}function Bi(e){for(var t=xn(e),n=t.length;n--;){var r=t[n],i=e[r];t[n]=[r,i,zi(i)]}return t}function Vi(e,t){return function(n){return n==null?!1:n[e]===t&&(t!==void 0||e in Object(n))}}function Hi(e){var t=Bi(e);return t.length==1&&t[0][2]?Vi(t[0][0],t[0][1]):function(n){return n===e||Ri(n,e,t)}}function Ui(e,t){return e!=null&&t in Object(e)}function Wi(e,t,n){t=dr(t,e);for(var r=-1,i=t.length,a=!1;++r<i;){var o=pr(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&&bt(i)&&pt(o,i)&&(le(e)||At(e)))}function Gi(e,t){return e!=null&&Wi(e,t,Ui)}var Ki=1,qi=2;function Ji(e,t){return On(e)&&zi(t)?Vi(pr(e),t):function(n){var r=hr(n,e);return r===void 0&&r===t?Gi(n,e):Fi(t,r,Ki|qi)}}function Yi(e){return function(t){return t?.[e]}}function Xi(e){return function(t){return mr(t,e)}}function Zi(e){return On(e)?Yi(pr(e)):Xi(e)}function Qi(e){return typeof e==`function`?e:e==null?ke:typeof e==`object`?le(e)?Ji(e[0],e[1]):Hi(e):Zi(e)}function $i(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}function ea(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 ta=ea();function na(e,t){return e&&ta(e,t,xn)}function ra(e,t){return function(n,r){if(n==null)return n;if(!xt(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 ia=ra(na);function aa(e,t,n,r){return ia(e,function(e,i,a){t(r,e,n(e),a)}),r}function oa(e,t){return function(n,r){var i=le(n)?$i:aa,a=t?t():{};return i(n,e,Qi(r,2),a)}}function sa(e){return ae(e)&&xt(e)}function ca(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 la=200;function ua(e,t,n,r){var i=-1,a=ut,o=!0,s=e.length,c=[],l=t.length;if(!s)return c;n&&(t=ce(t,cn(n))),r?(a=ca,o=!1):t.length>=la&&(a=ii,o=!1,t=new ni(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 da=vt(function(e,t){return sa(e)?ua(e,yr(t,1,sa,!0)):[]});function g(e){var t=e==null?0:e.length;return t?e[t-1]:void 0}function fa(e){return typeof e==`function`?e:ke}function pa(e,t){var n=[];return ia(e,function(e,r,i){t(e,r,i)&&n.push(e)}),n}function ma(e,t){return(le(e)?Or:pa)(e,Qi(t,3))}var ha=Math.max,ga=Math.min;function _a(e,t,n){var r=e==null?0:e.length;if(!r)return-1;var i=r-1;return n!==void 0&&(i=Oe(n),i=n<0?ha(r+i,0):ga(i,r-1)),ot(e,Qi(t,3),i,!0)}function va(e){return e&&e.length?e[0]:void 0}function ya(e,t){var n=-1,r=xt(e)?Array(e.length):[];return ia(e,function(e,i,a){r[++n]=t(e,i,a)}),r}function ba(e,t){return(le(e)?ce:ya)(e,Qi(t,3))}function xa(e,t){return yr(ba(e,t),1)}function Sa(e,t){return e==null?e:ta(e,fa(t),Tn)}var Ca=Object.prototype.hasOwnProperty,wa=oa(function(e,t,n){Ca.call(e,n)?e[n].push(t):mt(e,n,[t])}),Ta=`[object Map]`,Ea=`[object Set]`,Da=Object.prototype.hasOwnProperty;function Oa(e){if(e==null)return!0;if(xt(e)&&(le(e)||typeof e==`string`||typeof e.splice==`function`||Ft(e)||mn(e)||At(e)))return!e.length;var t=Xr(e);if(t==Ta||t==Ea)return!e.size;if(Ct(e))return!bn(e).length;for(var n in e)if(Da.call(e,n))return!1;return!0}var ka=oa(function(e,t,n){mt(e,n,t)}),_=oa(function(e,t,n){e[+!n].push(t)},function(){return[[],[]]}),Aa=Lr&&1/li(new Lr([,-0]))[1]==1/0?function(e){return new Lr(e)}:Qe,ja=200;function Ma(e,t,n){var r=-1,i=ut,a=e.length,o=!0,s=[],c=s;if(n)o=!1,i=ca;else if(a>=ja){var l=t?null:Aa(e);if(l)return li(l);o=!1,i=ii,c=new ni}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}function Na(e){return e&&e.length?Ma(e):[]}function Pa(e,t){return e&&e.length?Ma(e,Qi(t,2)):[]}var Fa=Math.max;function Ia(e){if(!(e&&e.length))return[];var t=0;return e=Or(e,function(e){if(sa(e))return t=Fa(e.length,t),!0}),wt(t,function(t){return ce(e,Yi(t))})}var La=vt(Ia),v=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 Ra(e){switch(e.kind){case`<newline>`:case`<space>`:case`<tab>`:case`<single-line-comment>`:case`<multiline-comment>`:return!0;default:return!1}}function za(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 Ba(e){return e!==void 0&&e.kind===`<op>`}var Va=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 Ha(e){return e.trailingTrivia.find(({kind:e})=>e===v.NEWLINE)!==void 0}function Ua(e,t){return t.leadingTrivia.find(({kind:e})=>e===v.NEWLINE)!==void 0||Ha(e)}function Wa(e){return e.trailingTrivia.find(({kind:e})=>[v.SPACE,v.TAB].includes(e))!==void 0}function Ga(e){return e.trailingTrivia.length===0?e.end:Ga(g(e.trailingTrivia))}function Ka(e){return e.leadingTrivia.length===0?e.start:Ka(e.leadingTrivia[0])}function qa(e){return[v.SINGLE_LINE_COMMENT,v.MULTILINE_COMMENT].includes(e.kind)}function Ja(e){return e?.kind===v.IDENTIFIER&&e.value.toLowerCase()===`as`}function Ya(e){return e?.kind===v.IDENTIFIER&&e.value.toLowerCase()===`use`}function Xa(e){return e?.kind===v.IDENTIFIER&&e.value.toLowerCase()===`metadata`}function Za(e){return e?.kind===v.IDENTIFIER&&e.value.toLowerCase()===`from`}function Qa(e){return e?.kind===v.IDENTIFIER&&e.value.toLowerCase()===`reuse`}function $a(e){return!!e?.isInvalid}var eo=class{constructor(e){this.generator=e}create(e,t,n){return new e(t,this.generator.nextId(),n)}},to=/^[A-Za-z]:\//;function no(e=``){return e&&e.replace(/\\/g,`/`).replace(to,e=>e.toUpperCase())}var ro=/^[/\\]{2}/,io=/^[/\\](?![/\\])|^[/\\]{2}(?!\.)|^[A-Za-z]:[/\\]/,ao=/^[A-Za-z]:$/,oo=/^\/([A-Za-z]:)?$/,so=/.(\.[^./]+|\.)$/,co=function(e){if(e.length===0)return`.`;e=no(e);let t=e.match(ro),n=mo(e),r=e[e.length-1]===`/`;return e=po(e,!n),e.length===0?n?`/`:r?`./`:`.`:(r&&(e+=`/`),ao.test(e)&&(e+=`/`),t?n?`//${e}`:`//./${e}`:n&&!mo(e)?`/${e}`:e)},lo=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 co(t)};function uo(){return typeof process<`u`&&typeof process.cwd==`function`?process.cwd().replace(/\\/g,`/`):`/`}var fo=function(...e){e=e.map(e=>no(e));let t=``,n=!1;for(let r=e.length-1;r>=-1&&!n;r--){let i=r>=0?e[r]:uo();!i||i.length===0||(t=`${i}/${t}`,n=mo(i))}return t=po(t,!n),n&&!mo(t)?`/${t}`:t.length>0?t:`.`};function po(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 mo=function(e){return io.test(e)},ho=function(e){if(e===`..`)return``;let t=so.exec(no(e));return t&&t[1]||``},go=function(e,t){let n=fo(e).replace(oo,`$1`).split(`/`),r=fo(t).replace(oo,`$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(`/`)},_o=function(e){let t=no(e).replace(/\/$/,``).split(`/`).slice(0,-1);return t.length===1&&ao.test(t[0])&&(t[0]+=`/`),t.join(`/`)||(mo(e)?`/`:`.`)},vo=function(e,t){let n=no(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},yo=/^[a-zA-Z]:\//,bo=class e{constructor(e,t={}){let n=co(e);if(!mo(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(fo(t,n))}static fromUri(t){try{let n=new URL(t);return new e(co(n.host?`/${n.host}${n.pathname}`:n.pathname),{protocol:n.protocol})}catch{return new e(co(t))}}get absolute(){return this.path}get dirname(){return _o(this.path)}get basename(){return vo(this.path)}get extname(){return ho(this.path)}resolve(t){return new e(fo(this.dirname,t))}join(...t){return new e(lo(this.path,...t))}relativeTo(e){let t=go(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=yo.test(this.path)?`${t}:///`:`${t}://`;return new URL(n+this.path).href}static isRelative(e){return!mo(co(e))}};function xo(e,t){if(!bo.isRelative(t))return;let n=bo.resolve(e.dirname,t);return n.absolute.endsWith(`.dbml`)?n:bo.from(n.absolute+`.dbml`)}var So=[`null`,`true`,`false`],Co=`none`,wo=`.dbml`,To=[`-`,`+`],y=`public`,Eo=bo.from(`/main.dbml`),Do={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`])},Oo={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`])},ko={mysql:new Set([`bool`,`boolean`,`bit`]),postgres:new Set([`bool`,`boolean`]),mssql:new Set([`bit`]),oracle:new Set([]),snowflake:new Set([`boolean`])},Ao={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`])},jo={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`])},Mo={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`])},No={mysql:new Set([]),postgres:new Set([`serial`,`smallserial`,`bigserial`]),mssql:new Set([]),oracle:new Set([]),snowflake:new Set([])};function Po(e){return e.toLowerCase().trim().replace(/\s+/g,` `)}function Fo(e,t){let n=Po(e);return t?Do[t].has(n):Object.values(Do).some(e=>e.has(n))}function Io(e,t){let n=Po(e);return t?Oo[t].has(n):Object.values(Oo).some(e=>e.has(n))}function Lo(e,t){return Fo(e,t)||Io(e,t)}function Ro(e,t){let n=Po(e);return t?ko[t].has(n):Object.values(ko).some(e=>e.has(n))}function zo(e,t){let n=Po(e);return t?Ao[t].has(n):Object.values(Ao).some(e=>e.has(n))}function Bo(e,t){let n=Po(e);return t?jo[t].has(n):Object.values(jo).some(e=>e.has(n))}function Vo(e,t){let n=Po(e);return t?Mo[t].has(n):Object.values(Mo).some(e=>e.has(n))}function Ho(e,t){let n=Po(e);return t?No[t].has(n):Object.values(No).some(e=>e.has(n))}function Uo(e,t){if(t)return`string`;if(Fo(e))return`integer`;if(Io(e))return`real`;if(Ro(e))return`bool`;if(zo(e))return`string`;let n=Po(e);return n===`date`?`date`:n===`time`||n===`timetz`||n===`time with time zone`||n===`time without time zone`?`time`:Vo(e)?`datetime`:e}var Wo=class extends Error{},Go=class extends Wo{constructor(e){super(`Invalid DateTime: ${e.toMessage()}`)}},Ko=class extends Wo{constructor(e){super(`Invalid Interval: ${e.toMessage()}`)}},qo=class extends Wo{constructor(e){super(`Invalid Duration: ${e.toMessage()}`)}},Jo=class extends Wo{},Yo=class extends Wo{constructor(e){super(`Invalid unit ${e}`)}},Xo=class extends Wo{},Zo=class extends Wo{constructor(){super(`Zone is an abstract class`)}},b=`numeric`,Qo=`short`,$o=`long`,es={year:b,month:b,day:b},ts={year:b,month:Qo,day:b},ns={year:b,month:Qo,day:b,weekday:Qo},rs={year:b,month:$o,day:b},is={year:b,month:$o,day:b,weekday:$o},as={hour:b,minute:b},os={hour:b,minute:b,second:b},ss={hour:b,minute:b,second:b,timeZoneName:Qo},cs={hour:b,minute:b,second:b,timeZoneName:$o},ls={hour:b,minute:b,hourCycle:`h23`},us={hour:b,minute:b,second:b,hourCycle:`h23`},ds={hour:b,minute:b,second:b,hourCycle:`h23`,timeZoneName:Qo},fs={hour:b,minute:b,second:b,hourCycle:`h23`,timeZoneName:$o},ps={year:b,month:b,day:b,hour:b,minute:b},ms={year:b,month:b,day:b,hour:b,minute:b,second:b},hs={year:b,month:Qo,day:b,hour:b,minute:b},gs={year:b,month:Qo,day:b,hour:b,minute:b,second:b},_s={year:b,month:Qo,day:b,weekday:Qo,hour:b,minute:b},vs={year:b,month:$o,day:b,hour:b,minute:b,timeZoneName:Qo},ys={year:b,month:$o,day:b,hour:b,minute:b,second:b,timeZoneName:Qo},bs={year:b,month:$o,day:b,weekday:$o,hour:b,minute:b,timeZoneName:$o},xs={year:b,month:$o,day:b,weekday:$o,hour:b,minute:b,second:b,timeZoneName:$o},Ss=class{get type(){throw new Zo}get name(){throw new Zo}get ianaName(){return this.name}get isUniversal(){throw new Zo}offsetName(e,t){throw new Zo}formatOffset(e,t){throw new Zo}offset(e){throw new Zo}equals(e){throw new Zo}get isValid(){throw new Zo}},Cs=null,ws=class e extends Ss{static get instance(){return Cs===null&&(Cs=new e),Cs}get type(){return`system`}get name(){return new Intl.DateTimeFormat().resolvedOptions().timeZone}get isUniversal(){return!1}offsetName(e,{format:t,locale:n}){return ul(e,t,n)}formatOffset(e,t){return ml(this.offset(e),t)}offset(e){return-new Date(e).getTimezoneOffset()}equals(e){return e.type===`system`}get isValid(){return!0}},Ts=new Map;function Es(e){let t=Ts.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`}),Ts.set(e,t)),t}var Ds={year:0,month:1,day:2,era:3,hour:4,minute:5,second:6};function Os(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 ks(e,t){let n=e.formatToParts(t),r=[];for(let e=0;e<n.length;e++){let{type:t,value:i}=n[e],a=Ds[t];t===`era`?r[a]=i:S(a)||(r[a]=parseInt(i,10))}return r}var As=new Map,js=class e extends Ss{static create(t){let n=As.get(t);return n===void 0&&As.set(t,n=new e(t)),n}static resetCache(){As.clear(),Ts.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 ul(e,t,n,this.name)}formatOffset(e,t){return ml(this.offset(e),t)}offset(e){if(!this.valid)return NaN;let t=new Date(e);if(isNaN(t))return NaN;let n=Es(this.name),[r,i,a,o,s,c,l]=n.formatToParts?ks(n,t):Os(n,t);o===`BC`&&(r=-Math.abs(r)+1);let u=ol({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}},Ms={};function Ns(e,t={}){let n=JSON.stringify([e,t]),r=Ms[n];return r||(r=new Intl.ListFormat(e,t),Ms[n]=r),r}var Ps=new Map;function Fs(e,t={}){let n=JSON.stringify([e,t]),r=Ps.get(n);return r===void 0&&(r=new Intl.DateTimeFormat(e,t),Ps.set(n,r)),r}var Is=new Map;function Ls(e,t={}){let n=JSON.stringify([e,t]),r=Is.get(n);return r===void 0&&(r=new Intl.NumberFormat(e,t),Is.set(n,r)),r}var Rs=new Map;function zs(e,t={}){let{base:n,...r}=t,i=JSON.stringify([e,r]),a=Rs.get(i);return a===void 0&&(a=new Intl.RelativeTimeFormat(e,t),Rs.set(i,a)),a}var Bs=null;function Vs(){return Bs||(Bs=new Intl.DateTimeFormat().resolvedOptions().locale,Bs)}var Hs=new Map;function Us(e){let t=Hs.get(e);return t===void 0&&(t=new Intl.DateTimeFormat(e).resolvedOptions(),Hs.set(e,t)),t}var Ws=new Map;function Gs(e){let t=Ws.get(e);if(!t){let n=new Intl.Locale(e);t=`getWeekInfo`in n?n.getWeekInfo():n.weekInfo,`minimalDays`in t||(t={...tc,...t}),Ws.set(e,t)}return t}function Ks(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=Fs(e).resolvedOptions(),r=e}catch{let i=e.substring(0,n);t=Fs(i).resolvedOptions(),r=i}let{numberingSystem:i,calendar:a}=t;return[r,i,a]}}function qs(e,t,n){return n||t?(e.includes(`-u-`)||(e+=`-u`),n&&(e+=`-ca-${n}`),t&&(e+=`-nu-${t}`),e):e}function Js(e){let t=[];for(let n=1;n<=12;n++){let r=w.utc(2009,n,1);t.push(e(r))}return t}function Ys(e){let t=[];for(let n=1;n<=7;n++){let r=w.utc(2016,11,13+n);t.push(e(r))}return t}function Xs(e,t,n,r){let i=e.listingMode();return i===`error`?null:i===`en`?n(t):r(t)}function Zs(e){return e.numberingSystem&&e.numberingSystem!==`latn`?!1:e.numberingSystem===`latn`||!e.locale||e.locale.startsWith(`en`)||Us(e.locale).numberingSystem===`latn`}var Qs=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=Ls(e,t)}}format(e){if(this.inf){let t=this.floor?Math.floor(e):e;return this.inf.format(t)}else return Qc(this.floor?Math.floor(e):nl(e,3),this.padTo)}},$s=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&&js.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=Fs(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()}},ec=class{constructor(e,t,n){this.opts={style:`long`,...n},!t&&Uc()&&(this.rtf=zs(e,n))}format(e,t){return this.rtf?this.rtf.format(e,t):Nl(t,e,this.opts.numeric,this.opts.style!==`long`)}formatToParts(e,t){return this.rtf?this.rtf.formatToParts(e,t):[]}},tc={firstDay:1,minimalDays:4,weekend:[6,7]},x=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||xc.defaultLocale;return new e(o||(a?`en-US`:Vs()),n||xc.defaultNumberingSystem,r||xc.defaultOutputCalendar,Yc(i)||xc.defaultWeekSettings,o)}static resetCache(){Bs=null,Ps.clear(),Is.clear(),Rs.clear(),Hs.clear(),Ws.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]=Ks(e);this.locale=a,this.numberingSystem=t||o||null,this.outputCalendar=n||s||null,this.weekSettings=r,this.intl=qs(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??=Zs(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,Yc(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 Xs(this,e,yl,()=>{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]=Js(t)}return this.monthsCache[i][e]})}weekdays(e,t=!1){return Xs(this,e,Cl,()=>{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]=Ys(e=>this.extract(e,n,`weekday`))),this.weekdaysCache[r][e]})}meridiems(){return Xs(this,void 0,()=>wl,()=>{if(!this.meridiemCache){let e={hour:`numeric`,hourCycle:`h12`};this.meridiemCache=[w.utc(2016,11,13,9),w.utc(2016,11,13,19)].map(t=>this.extract(t,e,`dayperiod`))}return this.meridiemCache})}eras(e){return Xs(this,e,Ol,()=>{let t={era:e};return this.eraCache[e]||(this.eraCache[e]=[w.utc(-40,1,1),w.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 Qs(this.intl,e.forceSimple||this.fastNumbers,e)}dtFormatter(e,t={}){return new $s(e,this.intl,t)}relFormatter(e={}){return new ec(this.intl,this.isEnglish(),e)}listFormatter(e={}){return Ns(this.intl,e)}isEnglish(){return this.locale===`en`||this.locale.toLowerCase()===`en-us`||Us(this.intl).locale.startsWith(`en-us`)}getWeekSettings(){return this.weekSettings?this.weekSettings:Wc()?Gs(this.locale):tc}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})`}},nc=null,rc=class e extends Ss{static get utcInstance(){return nc===null&&(nc=new e(0)),nc}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(dl(n[1],n[2]))}return null}constructor(e){super(),this.fixed=e}get type(){return`fixed`}get name(){return this.fixed===0?`UTC`:`UTC${ml(this.fixed,`narrow`)}`}get ianaName(){return this.fixed===0?`Etc/UTC`:`Etc/GMT${ml(-this.fixed,`narrow`)}`}offsetName(){return this.name}formatOffset(e,t){return ml(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}},ic=class extends Ss{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 ac(e,t){if(S(e)||e===null)return t;if(e instanceof Ss)return e;if(Vc(e)){let n=e.toLowerCase();return n==="default"?t:n===`local`||n===`system`?ws.instance:n===`utc`||n===`gmt`?rc.utcInstance:rc.parseSpecifier(n)||js.create(e)}else if(zc(e))return rc.instance(e);else if(typeof e==`object`&&`offset`in e&&typeof e.offset==`function`)return e;else return new ic(e)}var oc={arab:`[٠-٩]`,arabext:`[۰-۹]`,bali:`[᭐-᭙]`,beng:`[০-৯]`,deva:`[०-९]`,fullwide:`[0-9]`,gujr:`[૦-૯]`,hanidec:`[〇|一|二|三|四|五|六|七|八|九]`,khmr:`[០-៩]`,knda:`[೦-೯]`,laoo:`[໐-໙]`,limb:`[᥆-᥏]`,mlym:`[൦-൯]`,mong:`[᠐-᠙]`,mymr:`[၀-၉]`,orya:`[୦-୯]`,tamldec:`[௦-௯]`,telu:`[౦-౯]`,thai:`[๐-๙]`,tibt:`[༠-༩]`,latn:`\\d`},sc={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]},cc=oc.hanidec.replace(/[\[|\]]/g,``).split(``);function lc(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(oc.hanidec)!==-1)t+=cc.indexOf(e[n]);else for(let e in sc){let[n,i]=sc[e];r>=n&&r<=i&&(t+=r-n)}}return parseInt(t,10)}else return t}var uc=new Map;function dc(){uc.clear()}function fc({numberingSystem:e},t=``){let n=e||`latn`,r=uc.get(n);r===void 0&&(r=new Map,uc.set(n,r));let i=r.get(t);return i===void 0&&(i=RegExp(`${oc[n]}${t}`),r.set(t,i)),i}var pc=()=>Date.now(),mc=`system`,hc=null,gc=null,_c=null,vc=60,yc,bc=null,xc=class{static get now(){return pc}static set now(e){pc=e}static set defaultZone(e){mc=e}static get defaultZone(){return ac(mc,ws.instance)}static get defaultLocale(){return hc}static set defaultLocale(e){hc=e}static get defaultNumberingSystem(){return gc}static set defaultNumberingSystem(e){gc=e}static get defaultOutputCalendar(){return _c}static set defaultOutputCalendar(e){_c=e}static get defaultWeekSettings(){return bc}static set defaultWeekSettings(e){bc=Yc(e)}static get twoDigitCutoffYear(){return vc}static set twoDigitCutoffYear(e){vc=e%100}static get throwOnInvalid(){return yc}static set throwOnInvalid(e){yc=e}static resetCaches(){x.resetCache(),js.resetCache(),w.resetCache(),dc()}},Sc=class{constructor(e,t){this.reason=e,this.explanation=t}toMessage(){return this.explanation?`${this.reason}: ${this.explanation}`:this.reason}},Cc=[0,31,59,90,120,151,181,212,243,273,304,334],wc=[0,31,60,91,121,152,182,213,244,274,305,335];function Tc(e,t){return new Sc(`unit out of range`,`you specified ${t} (of type ${typeof t}) as a ${e}, which is invalid`)}function Ec(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 Dc(e,t,n){return n+(rl(e)?wc:Cc)[t-1]}function Oc(e,t){let n=rl(e)?wc:Cc,r=n.findIndex(e=>e<t),i=t-n[r];return{month:r+1,day:i}}function kc(e,t){return(e-t+7)%7+1}function Ac(e,t=4,n=1){let{year:r,month:i,day:a}=e,o=Dc(r,i,a),s=kc(Ec(r,i,a),n),c=Math.floor((o-s+14-t)/7),l;return c<1?(l=r-1,c=cl(l,t,n)):c>cl(r,t,n)?(l=r+1,c=1):l=r,{weekYear:l,weekNumber:c,weekday:s,...hl(e)}}function jc(e,t=4,n=1){let{weekYear:r,weekNumber:i,weekday:a}=e,o=kc(Ec(r,1,t),n),s=il(r),c=i*7+a-o-7+t,l;c<1?(l=r-1,c+=il(l)):c>s?(l=r+1,c-=il(r)):l=r;let{month:u,day:d}=Oc(l,c);return{year:l,month:u,day:d,...hl(e)}}function Mc(e){let{year:t,month:n,day:r}=e;return{year:t,ordinal:Dc(t,n,r),...hl(e)}}function Nc(e){let{year:t,ordinal:n}=e,{month:r,day:i}=Oc(t,n);return{year:t,month:r,day:i,...hl(e)}}function Pc(e,t){if(!S(e.localWeekday)||!S(e.localWeekNumber)||!S(e.localWeekYear)){if(!S(e.weekday)||!S(e.weekNumber)||!S(e.weekYear))throw new Jo(`Cannot mix locale-based week fields with ISO-based week fields`);return S(e.localWeekday)||(e.weekday=e.localWeekday),S(e.localWeekNumber)||(e.weekNumber=e.localWeekNumber),S(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 Fc(e,t=4,n=1){let r=Bc(e.weekYear),i=Xc(e.weekNumber,1,cl(e.weekYear,t,n)),a=Xc(e.weekday,1,7);return r?i?a?!1:Tc(`weekday`,e.weekday):Tc(`week`,e.weekNumber):Tc(`weekYear`,e.weekYear)}function Ic(e){let t=Bc(e.year),n=Xc(e.ordinal,1,il(e.year));return t?n?!1:Tc(`ordinal`,e.ordinal):Tc(`year`,e.year)}function Lc(e){let t=Bc(e.year),n=Xc(e.month,1,12),r=Xc(e.day,1,al(e.year,e.month));return t?n?r?!1:Tc(`day`,e.day):Tc(`month`,e.month):Tc(`year`,e.year)}function Rc(e){let{hour:t,minute:n,second:r,millisecond:i}=e,a=Xc(t,0,23)||t===24&&n===0&&r===0&&i===0,o=Xc(n,0,59),s=Xc(r,0,59),c=Xc(i,0,999);return a?o?s?c?!1:Tc(`millisecond`,i):Tc(`second`,r):Tc(`minute`,n):Tc(`hour`,t)}function S(e){return e===void 0}function zc(e){return typeof e==`number`}function Bc(e){return typeof e==`number`&&e%1==0}function Vc(e){return typeof e==`string`}function Hc(e){return Object.prototype.toString.call(e)===`[object Date]`}function Uc(){try{return typeof Intl<`u`&&!!Intl.RelativeTimeFormat}catch{return!1}}function Wc(){try{return typeof Intl<`u`&&!!Intl.Locale&&(`weekInfo`in Intl.Locale.prototype||`getWeekInfo`in Intl.Locale.prototype)}catch{return!1}}function Gc(e){return Array.isArray(e)?e:[e]}function Kc(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 qc(e,t){return t.reduce((t,n)=>(t[n]=e[n],t),{})}function Jc(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function Yc(e){if(e==null)return null;if(typeof e!=`object`)throw new Xo(`Week settings must be an object`);if(!Xc(e.firstDay,1,7)||!Xc(e.minimalDays,1,7)||!Array.isArray(e.weekend)||e.weekend.some(e=>!Xc(e,1,7)))throw new Xo(`Invalid week settings`);return{firstDay:e.firstDay,minimalDays:e.minimalDays,weekend:Array.from(e.weekend)}}function Xc(e,t,n){return Bc(e)&&e>=t&&e<=n}function Zc(e,t){return e-t*Math.floor(e/t)}function Qc(e,t=2){let n=e<0,r;return r=n?`-`+(``+-e).padStart(t,`0`):(``+e).padStart(t,`0`),r}function $c(e){if(!(S(e)||e===null||e===``))return parseInt(e,10)}function el(e){if(!(S(e)||e===null||e===``))return parseFloat(e)}function tl(e){if(!(S(e)||e===null||e===``)){let t=parseFloat(`0.`+e)*1e3;return Math.floor(t)}}function nl(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 rl(e){return e%4==0&&(e%100!=0||e%400==0)}function il(e){return rl(e)?366:365}function al(e,t){let n=Zc(t-1,12)+1,r=e+(t-n)/12;return n===2?rl(r)?29:28:[31,null,31,30,31,30,31,31,30,31,30,31][n-1]}function ol(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 sl(e,t,n){return-kc(Ec(e,1,t),n)+t-1}function cl(e,t=4,n=1){let r=sl(e,t,n),i=sl(e+1,t,n);return(il(e)-r+i)/7}function ll(e){return e>99?e:e>xc.twoDigitCutoffYear?1900+e:2e3+e}function ul(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 dl(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 fl(e){let t=Number(e);if(typeof e==`boolean`||e===``||!Number.isFinite(t))throw new Xo(`Invalid unit value ${e}`);return t}function pl(e,t){let n={};for(let r in e)if(Jc(e,r)){let i=e[r];if(i==null)continue;n[t(r)]=fl(i)}return n}function ml(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}${Qc(n,2)}:${Qc(r,2)}`;case`narrow`:return`${i}${n}${r>0?`:${r}`:``}`;case`techie`:return`${i}${Qc(n,2)}${Qc(r,2)}`;default:throw RangeError(`Value format ${t} is out of range for property format`)}}function hl(e){return qc(e,[`hour`,`minute`,`second`,`millisecond`])}var gl=[`January`,`February`,`March`,`April`,`May`,`June`,`July`,`August`,`September`,`October`,`November`,`December`],_l=[`Jan`,`Feb`,`Mar`,`Apr`,`May`,`Jun`,`Jul`,`Aug`,`Sep`,`Oct`,`Nov`,`Dec`],vl=[`J`,`F`,`M`,`A`,`M`,`J`,`J`,`A`,`S`,`O`,`N`,`D`];function yl(e){switch(e){case`narrow`:return[...vl];case`short`:return[..._l];case`long`:return[...gl];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 bl=[`Monday`,`Tuesday`,`Wednesday`,`Thursday`,`Friday`,`Saturday`,`Sunday`],xl=[`Mon`,`Tue`,`Wed`,`Thu`,`Fri`,`Sat`,`Sun`],Sl=[`M`,`T`,`W`,`T`,`F`,`S`,`S`];function Cl(e){switch(e){case`narrow`:return[...Sl];case`short`:return[...xl];case`long`:return[...bl];case`numeric`:return[`1`,`2`,`3`,`4`,`5`,`6`,`7`];default:return null}}var wl=[`AM`,`PM`],Tl=[`Before Christ`,`Anno Domini`],El=[`BC`,`AD`],Dl=[`B`,`A`];function Ol(e){switch(e){case`narrow`:return[...Dl];case`short`:return[...El];case`long`:return[...Tl];default:return null}}function kl(e){return wl[e.hour<12?0:1]}function Al(e,t){return Cl(t)[e.weekday-1]}function jl(e,t){return yl(t)[e.month-1]}function Ml(e,t){return Ol(t)[e.year<0?0:1]}function Nl(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 Pl(e,t){let n=``;for(let r of e)r.literal?n+=r.val:n+=t(r.val);return n}var Fl={D:es,DD:ts,DDD:rs,DDDD:is,t:as,tt:os,ttt:ss,tttt:cs,T:ls,TT:us,TTT:ds,TTTT:fs,f:ps,ff:hs,fff:vs,ffff:bs,F:ms,FF:gs,FFF:ys,FFFF:xs},Il=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 Fl[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 Qc(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?kl(t):a({hour:`numeric`,hourCycle:`h12`},`dayperiod`),c=(e,n)=>r?jl(t,e):a(n?{month:e}:{month:e,day:`numeric`},`month`),l=(e,n)=>r?Al(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?Ml(t,e):a({era:e},`era`);return Pl(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 Pl(o,a(c,{isNegativeDuration:c<0,largestUnit:Object.keys(c.values)[0]}))}},Ll=/[A-Za-z_+-]{1,256}(?::?\/[A-Za-z0-9_+-]{1,256}(?:\/[A-Za-z0-9_+-]{1,256})?)?/;function Rl(...e){let t=e.reduce((e,t)=>e+t.source,``);return RegExp(`^${t}$`)}function zl(...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 Bl(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 Vl(...e){return(t,n)=>{let r={},i;for(i=0;i<e.length;i++)r[e[i]]=$c(t[n+i]);return[r,null,n+i]}}var Hl=/(?:([Zz])|([+-]\d\d)(?::?(\d\d))?)/,Ul=`(?:${Hl.source}?(?:\\[(${Ll.source})\\])?)?`,Wl=/(\d\d)(?::?(\d\d)(?::?(\d\d)(?:[.,](\d{1,30}))?)?)?/,Gl=RegExp(`${Wl.source}${Ul}`),Kl=RegExp(`(?:[Tt]${Gl.source})?`),ql=/([+-]\d{6}|\d{4})(?:-?(\d\d)(?:-?(\d\d))?)?/,Jl=/(\d{4})-?W(\d\d)(?:-?(\d))?/,Yl=/(\d{4})-?(\d{3})/,Xl=Vl(`weekYear`,`weekNumber`,`weekDay`),Zl=Vl(`year`,`ordinal`),Ql=/(\d{4})-(\d\d)-(\d\d)/,$l=RegExp(`${Wl.source} ?(?:${Hl.source}|(${Ll.source}))?`),eu=RegExp(`(?: ${$l.source})?`);function tu(e,t,n){let r=e[t];return S(r)?n:$c(r)}function nu(e,t){return[{year:tu(e,t),month:tu(e,t+1,1),day:tu(e,t+2,1)},null,t+3]}function ru(e,t){return[{hours:tu(e,t,0),minutes:tu(e,t+1,0),seconds:tu(e,t+2,0),milliseconds:tl(e[t+3])},null,t+4]}function iu(e,t){let n=!e[t]&&!e[t+1],r=dl(e[t+1],e[t+2]);return[{},n?null:rc.instance(r),t+3]}function au(e,t){return[{},e[t]?js.create(e[t]):null,t+1]}var ou=RegExp(`^T?${Wl.source}$`),su=/^-?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 cu(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(el(n)),months:f(el(r)),weeks:f(el(i)),days:f(el(a)),hours:f(el(o)),minutes:f(el(s)),seconds:f(el(c),c===`-0`),milliseconds:f(tl(l),d)}]}var lu={GMT:0,EDT:-240,EST:-300,CDT:-300,CST:-360,MDT:-360,MST:-420,PDT:-420,PST:-480};function uu(e,t,n,r,i,a,o){let s={year:t.length===2?ll($c(t)):$c(t),month:_l.indexOf(n)+1,day:$c(r),hour:$c(i),minute:$c(a)};return o&&(s.second=$c(o)),e&&(s.weekday=e.length>3?bl.indexOf(e)+1:xl.indexOf(e)+1),s}var du=/^(?:(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 fu(e){let[,t,n,r,i,a,o,s,c,l,u,d]=e,f=uu(t,i,r,n,a,o,s),p;return p=c?lu[c]:l?0:dl(u,d),[f,new rc(p)]}function pu(e){return e.replace(/\([^()]*\)|[\n\t]/g,` `).replace(/(\s\s+)/g,` `).trim()}var mu=/^(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$/,hu=/^(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$/,gu=/^(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 _u(e){let[,t,n,r,i,a,o,s]=e;return[uu(t,i,r,n,a,o,s),rc.utcInstance]}function vu(e){let[,t,n,r,i,a,o,s]=e;return[uu(t,s,n,r,i,a,o),rc.utcInstance]}var yu=Rl(ql,Kl),bu=Rl(Jl,Kl),xu=Rl(Yl,Kl),Su=Rl(Gl),Cu=zl(nu,ru,iu,au),wu=zl(Xl,ru,iu,au),Tu=zl(Zl,ru,iu,au),Eu=zl(ru,iu,au);function Du(e){return Bl(e,[yu,Cu],[bu,wu],[xu,Tu],[Su,Eu])}function Ou(e){return Bl(pu(e),[du,fu])}function ku(e){return Bl(e,[mu,_u],[hu,_u],[gu,vu])}function Au(e){return Bl(e,[su,cu])}var ju=zl(ru);function Mu(e){return Bl(e,[ou,ju])}var Nu=Rl(Ql,eu),Pu=Rl($l),Fu=zl(ru,iu,au);function Iu(e){return Bl(e,[Nu,Cu],[Pu,Fu])}var Lu=`Invalid Duration`,Ru={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}},zu={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},...Ru},Bu=146097/400,Vu=146097/4800,Hu={years:{quarters:4,months:12,weeks:Bu/7,days:Bu,hours:Bu*24,minutes:Bu*24*60,seconds:Bu*24*60*60,milliseconds:Bu*24*60*60*1e3},quarters:{months:3,weeks:Bu/28,days:Bu/4,hours:Bu*24/4,minutes:Bu*24*60/4,seconds:Bu*24*60*60/4,milliseconds:Bu*24*60*60*1e3/4},months:{weeks:Vu/7,days:Vu,hours:Vu*24,minutes:Vu*24*60,seconds:Vu*24*60*60,milliseconds:Vu*24*60*60*1e3},...Ru},Uu=[`years`,`quarters`,`months`,`weeks`,`days`,`hours`,`minutes`,`seconds`,`milliseconds`],Wu=Uu.slice(0).reverse();function Gu(e,t,n=!1){return new Yu({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 Ku(e,t){let n=t.milliseconds??0;for(let r of Wu.slice(1))t[r]&&(n+=t[r]*e[r].milliseconds);return n}function qu(e,t){let n=Ku(e,t)<0?-1:1;Uu.reduceRight((r,i)=>{if(S(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),Uu.reduce((n,r)=>{if(S(t[r]))return n;if(n){let i=t[n]%1;t[n]-=i,t[r]+=i*e[n][r]}return r},null)}function Ju(e){let t={};for(let[n,r]of Object.entries(e))r!==0&&(t[n]=r);return t}var Yu=class e{constructor(e){let t=e.conversionAccuracy===`longterm`||!1,n=t?Hu:zu;e.matrix&&(n=e.matrix),this.values=e.values,this.loc=e.loc||x.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 Xo(`Duration.fromObject: argument expected to be an object, got ${t===null?`null`:typeof t}`);return new e({values:pl(t,e.normalizeUnit),loc:x.fromObject(n),conversionAccuracy:n.conversionAccuracy,matrix:n.matrix})}static fromDurationLike(t){if(zc(t))return e.fromMillis(t);if(e.isDuration(t))return t;if(typeof t==`object`)return e.fromObject(t);throw new Xo(`Unknown duration argument ${t} of type ${typeof t}`)}static fromISO(t,n){let[r]=Au(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]=Mu(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 Xo(`need to specify a reason the Duration is invalid`);let r=t instanceof Sc?t:new Sc(t,n);if(xc.throwOnInvalid)throw new qo(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 Yo(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?Il.create(this.loc,n).formatDurationFromString(this,e):Lu}toHuman(e={}){if(!this.isValid)return Lu;let t=e.showZeros!==!1,n=Uu.map(n=>{let r=this.values[n];return S(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+=nl(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},w.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?Ku(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 Uu)(Jc(n.values,e)||Jc(this.values,e))&&(r[e]=n.get(e)+this.get(e));return Gu(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]=fl(e(this.values[n],n));return Gu(this,{values:t},!0)}get(t){return this[e.normalizeUnit(t)]}set(t){if(!this.isValid)return this;let n={...this.values,...pl(t,e.normalizeUnit)};return Gu(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 Gu(this,i)}as(e){return this.isValid?this.shiftTo(e).get(e):NaN}normalize(){if(!this.isValid)return this;let e=this.toObject();return qu(this.matrix,e),Gu(this,{values:e},!0)}rescale(){if(!this.isValid)return this;let e=Ju(this.normalize().shiftToAll().toObject());return Gu(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 Uu)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;zc(i[e])&&(t+=i[e]);let o=Math.trunc(t);n[e]=o,r[e]=(t*1e3-o*1e3)/1e3}else zc(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 qu(this.matrix,n),Gu(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 Gu(this,{values:e},!0)}removeZeros(){if(!this.isValid)return this;let e=Ju(this.values);return Gu(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 Uu)if(!t(this.values[n],e.values[n]))return!1;return!0}},Xu=`Invalid Interval`;function Zu(e,t){return!e||!e.isValid?Qu.invalid(`missing or invalid start`):!t||!t.isValid?Qu.invalid(`missing or invalid end`):t<e?Qu.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 Qu=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 Xo(`need to specify a reason the Interval is invalid`);let r=t instanceof Sc?t:new Sc(t,n);if(xc.throwOnInvalid)throw new Ko(r);return new e({invalid:r})}static fromDateTimes(t,n){let r=ef(t),i=ef(n);return Zu(r,i)??new e({start:r,end:i})}static after(t,n){let r=Yu.fromDurationLike(n),i=ef(t);return e.fromDateTimes(i,i.plus(r))}static before(t,n){let r=Yu.fromDurationLike(n),i=ef(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=w.fromISO(r,n),a=t.isValid}catch{a=!1}let o,s;try{o=w.fromISO(i,n),s=o.isValid}catch{s=!1}if(a&&s)return e.fromDateTimes(t,o);if(a){let r=Yu.fromISO(i,n);if(r.isValid)return e.after(t,r)}else if(s){let t=Yu.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(ef).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=Yu.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()})`:Xu}[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=es,t={}){return this.isValid?Il.create(this.s.loc.clone(t),e).formatInterval(this):Xu}toISO(e){return this.isValid?`${this.s.toISO(e)}/${this.e.toISO(e)}`:Xu}toISODate(){return this.isValid?`${this.s.toISODate()}/${this.e.toISODate()}`:Xu}toISOTime(e){return this.isValid?`${this.s.toISOTime(e)}/${this.e.toISOTime(e)}`:Xu}toFormat(e,{separator:t=` – `}={}){return this.isValid?`${this.s.toFormat(e)}${t}${this.e.toFormat(e)}`:Xu}toDuration(e,t){return this.isValid?this.e.diff(this.s,e,t):Yu.invalid(this.invalidReason)}mapEndpoints(t){return e.fromDateTimes(t(this.s),t(this.e))}},$u=class{static hasDST(e=xc.defaultZone){let t=w.now().setZone(e).set({month:12});return!e.isUniversal&&t.offset!==t.set({month:6}).offset}static isValidIANAZone(e){return js.isValidZone(e)}static normalizeZone(e){return ac(e,xc.defaultZone)}static getStartOfWeek({locale:e=null,locObj:t=null}={}){return(t||x.create(e)).getStartOfWeek()}static getMinimumDaysInFirstWeek({locale:e=null,locObj:t=null}={}){return(t||x.create(e)).getMinDaysInFirstWeek()}static getWeekendWeekdays({locale:e=null,locObj:t=null}={}){return(t||x.create(e)).getWeekendDays().slice()}static months(e=`long`,{locale:t=null,numberingSystem:n=null,locObj:r=null,outputCalendar:i=`gregory`}={}){return(r||x.create(t,n,i)).months(e)}static monthsFormat(e=`long`,{locale:t=null,numberingSystem:n=null,locObj:r=null,outputCalendar:i=`gregory`}={}){return(r||x.create(t,n,i)).months(e,!0)}static weekdays(e=`long`,{locale:t=null,numberingSystem:n=null,locObj:r=null}={}){return(r||x.create(t,n,null)).weekdays(e)}static weekdaysFormat(e=`long`,{locale:t=null,numberingSystem:n=null,locObj:r=null}={}){return(r||x.create(t,n,null)).weekdays(e,!0)}static meridiems({locale:e=null}={}){return x.create(e).meridiems()}static eras(e=`short`,{locale:t=null}={}){return x.create(t,null,`gregory`).eras(e)}static features(){return{relative:Uc(),localeWeek:Wc()}}};function ed(e,t){let n=e=>e.toUTC(0,{keepLocalTime:!0}).startOf(`day`).valueOf(),r=n(t)-n(e);return Math.floor(Yu.fromMillis(r).as(`days`))}function td(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=ed(e,t);return(n-n%7)/7}],[`days`,ed]],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 nd(e,t,n,r){let[i,a,o,s]=td(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=Yu.fromObject(a,r);return l.length>0?Yu.fromMillis(c,r).shiftTo(...l).plus(u):u}var rd=`missing Intl.DateTimeFormat.formatToParts support`;function C(e,t=e=>e){return{regex:e,deser:([e])=>t(lc(e))}}var id=`[ \xA0]`,ad=new RegExp(id,`g`);function od(e){return e.replace(/\./g,`\\.?`).replace(ad,id)}function sd(e){return e.replace(/\./g,``).replace(ad,` `).toLowerCase()}function cd(e,t){return e===null?null:{regex:RegExp(e.map(od).join(`|`)),deser:([n])=>e.findIndex(e=>sd(n)===sd(e))+t}}function ld(e,t){return{regex:e,deser:([,e,t])=>dl(e,t),groups:t}}function ud(e){return{regex:e,deser:([e])=>e}}function dd(e){return e.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,`\\$&`)}function fd(e,t){let n=fc(t),r=fc(t,`{2}`),i=fc(t,`{3}`),a=fc(t,`{4}`),o=fc(t,`{6}`),s=fc(t,`{1,2}`),c=fc(t,`{1,3}`),l=fc(t,`{1,6}`),u=fc(t,`{1,9}`),d=fc(t,`{2,4}`),f=fc(t,`{4,6}`),p=e=>({regex:RegExp(dd(e.val)),deser:([e])=>e,literal:!0}),m=(m=>{if(e.literal)return p(m);switch(m.val){case`G`:return cd(t.eras(`short`),0);case`GG`:return cd(t.eras(`long`),0);case`y`:return C(l);case`yy`:return C(d,ll);case`yyyy`:return C(a);case`yyyyy`:return C(f);case`yyyyyy`:return C(o);case`M`:return C(s);case`MM`:return C(r);case`MMM`:return cd(t.months(`short`,!0),1);case`MMMM`:return cd(t.months(`long`,!0),1);case`L`:return C(s);case`LL`:return C(r);case`LLL`:return cd(t.months(`short`,!1),1);case`LLLL`:return cd(t.months(`long`,!1),1);case`d`:return C(s);case`dd`:return C(r);case`o`:return C(c);case`ooo`:return C(i);case`HH`:return C(r);case`H`:return C(s);case`hh`:return C(r);case`h`:return C(s);case`mm`:return C(r);case`m`:return C(s);case`q`:return C(s);case`qq`:return C(r);case`s`:return C(s);case`ss`:return C(r);case`S`:return C(c);case`SSS`:return C(i);case`u`:return ud(u);case`uu`:return ud(s);case`uuu`:return C(n);case`a`:return cd(t.meridiems(),0);case`kkkk`:return C(a);case`kk`:return C(d,ll);case`W`:return C(s);case`WW`:return C(r);case`E`:case`c`:return C(n);case`EEE`:return cd(t.weekdays(`short`,!1),1);case`EEEE`:return cd(t.weekdays(`long`,!1),1);case`ccc`:return cd(t.weekdays(`short`,!0),1);case`cccc`:return cd(t.weekdays(`long`,!0),1);case`Z`:case`ZZ`:return ld(RegExp(`([+-]${s.source})(?::(${r.source}))?`),2);case`ZZZ`:return ld(RegExp(`([+-]${s.source})(${r.source})?`),2);case`z`:return ud(/[a-z_+-/]{1,256}?/i);case` `:return ud(/[^\S\n\r]/);default:return p(m)}})(e)||{invalidReason:rd};return m.token=e,m}var pd={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 md(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=pd[o];if(typeof s==`object`&&(s=s[a]),s)return{literal:!1,val:s}}function hd(e){return[`^${e.map(e=>e.regex).reduce((e,t)=>`${e}(${t.source})`,``)}$`,e]}function gd(e,t,n){let r=e.match(t);if(r){let e={},t=1;for(let i in n)if(Jc(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 _d(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 S(e.z)||(n=js.create(e.z)),S(e.Z)||(n||=new rc(e.Z),r=e.Z),S(e.q)||(e.M=(e.q-1)*3+1),S(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),S(e.u)||(e.S=tl(e.u)),[Object.keys(e).reduce((n,r)=>{let i=t(r);return i&&(n[i]=e[r]),n},{}),n,r]}var vd=null;function yd(){return vd||=w.fromMillis(1555555555555),vd}function bd(e,t){if(e.literal)return e;let n=Td(Il.macroTokenToFormatOpts(e.val),t);return n==null||n.includes(void 0)?e:n}function xd(e,t){return Array.prototype.concat(...e.map(e=>bd(e,t)))}var Sd=class{constructor(e,t){if(this.locale=e,this.format=t,this.tokens=xd(Il.parseFormat(t),e),this.units=this.tokens.map(t=>fd(t,e)),this.disqualifyingUnit=this.units.find(e=>e.invalidReason),!this.disqualifyingUnit){let[e,t]=hd(this.units);this.regex=RegExp(e,`i`),this.handlers=t}}explainFromTokens(e){if(this.isValid){let[t,n]=gd(e,this.regex,this.handlers),[r,i,a]=n?_d(n):[null,null,void 0];if(Jc(n,`a`)&&Jc(n,`H`))throw new Jo(`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 Cd(e,t,n){return new Sd(e,n).explainFromTokens(t)}function wd(e,t,n){let{result:r,zone:i,specificOffset:a,invalidReason:o}=Cd(e,t,n);return[r,i,a,o]}function Td(e,t){if(!e)return null;let n=Il.create(t,e).dtFormatter(yd()),r=n.formatToParts(),i=n.resolvedOptions();return r.map(t=>md(t,e,i))}var Ed=`Invalid DateTime`,Dd=864e13;function Od(e){return new Sc(`unsupported zone`,`the zone "${e.name}" is not supported`)}function kd(e){return e.weekData===null&&(e.weekData=Ac(e.c)),e.weekData}function Ad(e){return e.localWeekData===null&&(e.localWeekData=Ac(e.c,e.loc.getMinDaysInFirstWeek(),e.loc.getStartOfWeek())),e.localWeekData}function jd(e,t){let n={ts:e.ts,zone:e.zone,c:e.c,o:e.o,loc:e.loc,invalid:e.invalid};return new w({...n,...t,old:n})}function Md(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 Nd(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 Pd(e,t,n){return Md(ol(e),t,n)}function Fd(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,al(r,i))+Math.trunc(t.days)+Math.trunc(t.weeks)*7},o=Yu.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]=Md(ol(a),n,e.zone);return o!==0&&(s+=o,c=e.zone.offset(s)),{ts:s,o:c}}function Id(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=w.fromObject(e,{...n,zone:r,specificOffset:a});return o?i:i.setZone(s)}else return w.invalid(new Sc(`unparsable`,`the input "${i}" can't be parsed as ${r}`))}function Ld(e,t,n=!0){return e.isValid?Il.create(x.create(`en-US`),{allowZ:n,forceSimple:!0}).formatDateTimeFromString(e,t):null}function Rd(e,t,n){let r=e.c.year>9999||e.c.year<0,i=``;if(r&&e.c.year>=0&&(i+=`+`),i+=Qc(e.c.year,r?6:4),n===`year`)return i;if(t){if(i+=`-`,i+=Qc(e.c.month),n===`month`)return i;i+=`-`}else if(i+=Qc(e.c.month),n===`month`)return i;return i+=Qc(e.c.day),i}function zd(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+=Qc(e.c.hour),o===`hour`)break;if(t){if(c+=`:`,c+=Qc(e.c.minute),o===`minute`)break;s&&(c+=`:`,c+=Qc(e.c.second))}else{if(c+=Qc(e.c.minute),o===`minute`)break;s&&(c+=Qc(e.c.second))}if(o===`second`)break;s&&(!r||e.c.millisecond!==0)&&(c+=`.`,c+=Qc(e.c.millisecond,3))}return i&&(e.isOffsetFixed&&e.offset===0&&!a?c+=`Z`:e.o<0?(c+=`-`,c+=Qc(Math.trunc(-e.o/60)),c+=`:`,c+=Qc(Math.trunc(-e.o%60))):(c+=`+`,c+=Qc(Math.trunc(e.o/60)),c+=`:`,c+=Qc(Math.trunc(e.o%60)))),a&&(c+=`[`+e.zone.ianaName+`]`),c}var Bd={month:1,day:1,hour:0,minute:0,second:0,millisecond:0},Vd={weekNumber:1,weekday:1,hour:0,minute:0,second:0,millisecond:0},Hd={ordinal:1,hour:0,minute:0,second:0,millisecond:0},Ud=[`year`,`month`,`day`,`hour`,`minute`,`second`,`millisecond`],Wd=[`weekYear`,`weekNumber`,`weekday`,`hour`,`minute`,`second`,`millisecond`],Gd=[`year`,`ordinal`,`hour`,`minute`,`second`,`millisecond`];function Kd(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 Yo(e);return t}function qd(e){switch(e.toLowerCase()){case`localweekday`:case`localweekdays`:return`localWeekday`;case`localweeknumber`:case`localweeknumbers`:return`localWeekNumber`;case`localweekyear`:case`localweekyears`:return`localWeekYear`;default:return Kd(e)}}function Jd(e){if(Qd===void 0&&(Qd=xc.now()),e.type!==`iana`)return e.offset(Qd);let t=e.name,n=$d.get(t);return n===void 0&&(n=e.offset(Qd),$d.set(t,n)),n}function Yd(e,t){let n=ac(t.zone,xc.defaultZone);if(!n.isValid)return w.invalid(Od(n));let r=x.fromObject(t),i,a;if(S(e.year))i=xc.now();else{for(let t of Ud)S(e[t])&&(e[t]=Bd[t]);let t=Lc(e)||Rc(e);if(t)return w.invalid(t);let r=Jd(n);[i,a]=Pd(e,r,n)}return new w({ts:i,zone:n,loc:r,o:a})}function Xd(e,t,n){let r=S(n.round)?!0:n.round,i=S(n.rounding)?`trunc`:n.rounding,a=(e,a)=>(e=nl(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 Zd(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 Qd,$d=new Map,w=class e{constructor(e){let t=e.zone||xc.defaultZone,n=e.invalid||(Number.isNaN(e.ts)?new Sc(`invalid input`):null)||(t.isValid?null:Od(t));this.ts=S(e.ts)?xc.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=zc(e.o)&&!e.old?e.o:t.offset(this.ts);r=Nd(this.ts,a),n=Number.isNaN(r.year)?new Sc(`invalid input`):null,r=n?null:r,i=n?null:a}this._zone=t,this.loc=e.loc||x.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]=Zd(arguments),[n,r,i,a,o,s,c]=t;return Yd({year:n,month:r,day:i,hour:a,minute:o,second:s,millisecond:c},e)}static utc(){let[e,t]=Zd(arguments),[n,r,i,a,o,s,c]=t;return e.zone=rc.utcInstance,Yd({year:n,month:r,day:i,hour:a,minute:o,second:s,millisecond:c},e)}static fromJSDate(t,n={}){let r=Hc(t)?t.valueOf():NaN;if(Number.isNaN(r))return e.invalid(`invalid input`);let i=ac(n.zone,xc.defaultZone);return i.isValid?new e({ts:r,zone:i,loc:x.fromObject(n)}):e.invalid(Od(i))}static fromMillis(t,n={}){if(!zc(t))throw new Xo(`fromMillis requires a numerical input, but received a ${typeof t} with value ${t}`);return t<-864e13||t>Dd?e.invalid(`Timestamp out of range`):new e({ts:t,zone:ac(n.zone,xc.defaultZone),loc:x.fromObject(n)})}static fromSeconds(t,n={}){if(zc(t))return new e({ts:t*1e3,zone:ac(n.zone,xc.defaultZone),loc:x.fromObject(n)});throw new Xo(`fromSeconds requires a numerical input`)}static fromObject(t,n={}){t||={};let r=ac(n.zone,xc.defaultZone);if(!r.isValid)return e.invalid(Od(r));let i=x.fromObject(n),a=pl(t,qd),{minDaysInFirstWeek:o,startOfWeek:s}=Pc(a,i),c=xc.now(),l=S(n.specificOffset)?r.offset(c):n.specificOffset,u=!S(a.ordinal),d=!S(a.year),f=!S(a.month)||!S(a.day),p=d||f,m=a.weekYear||a.weekNumber;if((p||u)&&m)throw new Jo(`Can't mix weekYear/weekNumber units with year/month/day or ordinals`);if(f&&u)throw new Jo(`Can't mix ordinal dates with month/day`);let ee=m||a.weekday&&!p,te,ne,re=Nd(c,l);ee?(te=Wd,ne=Vd,re=Ac(re,o,s)):u?(te=Gd,ne=Hd,re=Mc(re)):(te=Ud,ne=Bd);let ie=!1;for(let e of te){let t=a[e];S(t)?ie?a[e]=ne[e]:a[e]=re[e]:ie=!0}let ae=(ee?Fc(a,o,s):u?Ic(a):Lc(a))||Rc(a);if(ae)return e.invalid(ae);let[oe,se]=Pd(ee?jc(a,o,s):u?Nc(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]=Du(e);return Id(n,r,t,`ISO 8601`,e)}static fromRFC2822(e,t={}){let[n,r]=Ou(e);return Id(n,r,t,`RFC 2822`,e)}static fromHTTP(e,t={}){let[n,r]=ku(e);return Id(n,r,t,`HTTP`,t)}static fromFormat(t,n,r={}){if(S(t)||S(n))throw new Xo(`fromFormat requires an input string and a format`);let{locale:i=null,numberingSystem:a=null}=r,[o,s,c,l]=wd(x.fromOpts({locale:i,numberingSystem:a,defaultToEN:!0}),t,n);return l?e.invalid(l):Id(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]=Iu(e);return Id(n,r,t,`SQL`,e)}static invalid(t,n=null){if(!t)throw new Xo(`need to specify a reason the DateTime is invalid`);let r=t instanceof Sc?t:new Sc(t,n);if(xc.throwOnInvalid)throw new Go(r);return new e({invalid:r})}static isDateTime(e){return e&&e.isLuxonDateTime||!1}static parseFormatForOpts(e,t={}){let n=Td(e,x.fromObject(t));return n?n.map(e=>e?e.val:null).join(``):null}static expandFormat(e,t={}){return xd(Il.parseFormat(e),x.fromObject(t)).map(e=>e.val).join(``)}static resetCache(){Qd=void 0,$d.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?kd(this).weekYear:NaN}get weekNumber(){return this.isValid?kd(this).weekNumber:NaN}get weekday(){return this.isValid?kd(this).weekday:NaN}get isWeekend(){return this.isValid&&this.loc.getWeekendDays().includes(this.weekday)}get localWeekday(){return this.isValid?Ad(this).weekday:NaN}get localWeekNumber(){return this.isValid?Ad(this).weekNumber:NaN}get localWeekYear(){return this.isValid?Ad(this).weekYear:NaN}get ordinal(){return this.isValid?Mc(this.c).ordinal:NaN}get monthShort(){return this.isValid?$u.months(`short`,{locObj:this.loc})[this.month-1]:null}get monthLong(){return this.isValid?$u.months(`long`,{locObj:this.loc})[this.month-1]:null}get weekdayShort(){return this.isValid?$u.weekdays(`short`,{locObj:this.loc})[this.weekday-1]:null}get weekdayLong(){return this.isValid?$u.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=ol(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=Nd(s,a),u=Nd(c,o);return l.hour===u.hour&&l.minute===u.minute&&l.second===u.second&&l.millisecond===u.millisecond?[jd(this,{ts:s}),jd(this,{ts:c})]:[this]}get isInLeapYear(){return rl(this.year)}get daysInMonth(){return al(this.year,this.month)}get daysInYear(){return this.isValid?il(this.year):NaN}get weeksInWeekYear(){return this.isValid?cl(this.weekYear):NaN}get weeksInLocalWeekYear(){return this.isValid?cl(this.localWeekYear,this.loc.getMinDaysInFirstWeek(),this.loc.getStartOfWeek()):NaN}resolvedLocaleOptions(e={}){let{locale:t,numberingSystem:n,calendar:r}=Il.create(this.loc.clone(e),e).resolvedOptions(this);return{locale:t,numberingSystem:n,outputCalendar:r}}toUTC(e=0,t={}){return this.setZone(rc.instance(e),t)}toLocal(){return this.setZone(xc.defaultZone)}setZone(t,{keepLocalTime:n=!1,keepCalendarTime:r=!1}={}){if(t=ac(t,xc.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]=Pd(r,n,t)}return jd(this,{ts:e,zone:t})}else return e.invalid(Od(t))}reconfigure({locale:e,numberingSystem:t,outputCalendar:n}={}){let r=this.loc.clone({locale:e,numberingSystem:t,outputCalendar:n});return jd(this,{loc:r})}setLocale(e){return this.reconfigure({locale:e})}set(e){if(!this.isValid)return this;let t=pl(e,qd),{minDaysInFirstWeek:n,startOfWeek:r}=Pc(t,this.loc),i=!S(t.weekYear)||!S(t.weekNumber)||!S(t.weekday),a=!S(t.ordinal),o=!S(t.year),s=!S(t.month)||!S(t.day),c=o||s,l=t.weekYear||t.weekNumber;if((c||a)&&l)throw new Jo(`Can't mix weekYear/weekNumber units with year/month/day or ordinals`);if(s&&a)throw new Jo(`Can't mix ordinal dates with month/day`);let u;i?u=jc({...Ac(this.c,n,r),...t},n,r):S(t.ordinal)?(u={...this.toObject(),...t},S(t.day)&&(u.day=Math.min(al(u.year,u.month),u.day))):u=Nc({...Mc(this.c),...t});let[d,f]=Pd(u,this.o,this.zone);return jd(this,{ts:d,o:f})}plus(e){if(!this.isValid)return this;let t=Yu.fromDurationLike(e);return jd(this,Fd(this,t))}minus(e){if(!this.isValid)return this;let t=Yu.fromDurationLike(e).negate();return jd(this,Fd(this,t))}startOf(e,{useLocaleWeeks:t=!1}={}){if(!this.isValid)return this;let n={},r=Yu.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?Il.create(this.loc.redefaultToEN(t)).formatDateTimeFromString(this,e):Ed}toLocaleString(e=es,t={}){return this.isValid?Il.create(this.loc.clone(t),e).formatDateTime(this):Ed}toLocaleParts(e={}){return this.isValid?Il.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=Kd(a);let o=e===`extended`,s=Rd(this,o,a);return Ud.indexOf(a)>=3&&(s+=`T`),s+=zd(this,o,t,n,r,i,a),s}toISODate({format:e=`extended`,precision:t=`day`}={}){return this.isValid?Rd(this,e===`extended`,Kd(t)):null}toISOWeekDate(){return Ld(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=Kd(o),(r&&Ud.indexOf(o)>=3?`T`:``)+zd(this,a===`extended`,t,e,n,i,o)):null}toRFC2822(){return Ld(this,`EEE, dd LLL yyyy HH:mm:ss ZZZ`,!1)}toHTTP(){return Ld(this.toUTC(),`EEE, dd LLL yyyy HH:mm:ss 'GMT'`)}toSQLDate(){return this.isValid?Rd(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`)),Ld(this,r,!0)}toSQL(e={}){return this.isValid?`${this.toSQLDate()} ${this.toSQLTime(e)}`:null}toString(){return this.isValid?this.toISO():Ed}[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 Yu.invalid(`created by diffing an invalid DateTime`);let r={locale:this.locale,numberingSystem:this.numberingSystem,...n},i=Gc(t).map(Yu.normalizeUnit),a=e.valueOf()>this.valueOf(),o=nd(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?Qu.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),Xd(n,this.plus(r),{...t,numeric:`always`,units:i,unit:a})}toRelativeCalendar(t={}){return this.isValid?Xd(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 Xo(`min requires all arguments be DateTimes`);return Kc(t,e=>e.valueOf(),Math.min)}static max(...t){if(!t.every(e.isDateTime))throw new Xo(`max requires all arguments be DateTimes`);return Kc(t,e=>e.valueOf(),Math.max)}static fromFormatExplain(e,t,n={}){let{locale:r=null,numberingSystem:i=null}=n;return Cd(x.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 Sd(x.fromOpts({locale:n,numberingSystem:r,defaultToEN:!0}),e)}static fromFormatParser(t,n,r={}){if(S(t)||S(n))throw new Xo(`fromFormatParser requires an input string and a format parser`);let{locale:i=null,numberingSystem:a=null}=r,o=x.fromOpts({locale:i,numberingSystem:a,defaultToEN:!0});if(!o.equals(n.locale))throw new Xo(`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):Id(s,c,r,`format ${n.format}`,t,l)}static get DATE_SHORT(){return es}static get DATE_MED(){return ts}static get DATE_MED_WITH_WEEKDAY(){return ns}static get DATE_FULL(){return rs}static get DATE_HUGE(){return is}static get TIME_SIMPLE(){return as}static get TIME_WITH_SECONDS(){return os}static get TIME_WITH_SHORT_OFFSET(){return ss}static get TIME_WITH_LONG_OFFSET(){return cs}static get TIME_24_SIMPLE(){return ls}static get TIME_24_WITH_SECONDS(){return us}static get TIME_24_WITH_SHORT_OFFSET(){return ds}static get TIME_24_WITH_LONG_OFFSET(){return fs}static get DATETIME_SHORT(){return ps}static get DATETIME_SHORT_WITH_SECONDS(){return ms}static get DATETIME_MED(){return hs}static get DATETIME_MED_WITH_SECONDS(){return gs}static get DATETIME_MED_WITH_WEEKDAY(){return _s}static get DATETIME_FULL(){return vs}static get DATETIME_FULL_WITH_SECONDS(){return ys}static get DATETIME_HUGE(){return bs}static get DATETIME_HUGE_WITH_SECONDS(){return xs}};function ef(e){if(w.isDateTime(e))return e;if(e&&e.valueOf&&zc(e.valueOf()))return w.fromJSDate(e);if(e&&typeof e==`object`)return w.fromObject(e);throw new Xo(`Unknown datetime argument: ${e}, of type ${typeof e}`)}var T=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[e.INVALID_METADATA_TARGET_KIND=5006]=`INVALID_METADATA_TARGET_KIND`,e[e.INVALID_METADATA_FIELD=5007]=`INVALID_METADATA_FIELD`,e[e.DUPLICATE_METADATA_FIELD=5008]=`DUPLICATE_METADATA_FIELD`,e}({}),E=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 tf(this.code,this.message,this.nodeOrToken)}get filepath(){return this.nodeOrToken.filepath}},tf=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,E.prototype)}get filepath(){return this.nodeOrToken.filepath}};function nf(e){return!!e.match(/(\p{L}|_|\p{M})/gu)}function rf(e){if(!e)return!1;let t=e[0];return t>=`0`&&t<=`9`}function af(e){let[t]=e;return rf(t)||nf(t)&&t.toLowerCase()>=`a`&&t.toLowerCase()<=`f`}function of(e){return nf(e)||rf(e)}function sf(e){let t=M(e);return t!==void 0&&t.length>0}function cf(e){return lf(e)}function lf(e){return e instanceof rm&&e.expression instanceof nm}function uf(e){return!!e.bodyColon}function df(e){return e instanceof V&&e.op?.value===`~`&&O(e.expression)}function ff(e){return e===`-`||e===`<>`||e===`>`||e===`<`}function pf(e){if(!(e instanceof rm)||!(e.expression instanceof em)||e.expression.literal?.kind!==v.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(!af(t[e]))return!1;return!0}function mf(e){return pf(e)?!0:Cf(e)&&e.expression.variable.value.toLowerCase()===`none`}function hf(e){if(xf(e)||gf(e)||Cf(e)&&[`true`,`false`,`null`].includes(e.expression.variable.value.toLowerCase())||e instanceof V&&To.includes(e.op?.value)&&gf(e.expression)||e instanceof Xp)return!0;if(!e||!wf(e))return!1;let t=Hf(e);return t.length===2||t.length===3}function gf(e){return e instanceof V?To.includes(e.op.value)?gf(e.expression):!1:e instanceof rm&&e.expression instanceof em&&e.expression.literal?.kind===v.NUMERIC_LITERAL}function _f(e){if(!(e instanceof V)||!ff(e.op?.value))return!1;let t=M(e.expression);return t!==void 0&&t.length>0}function vf(e){return e instanceof Zp&&e.elementList.every(O)}function yf(e){if(!(e instanceof G||k(e)||e instanceof rm||e instanceof am))return!1;for(;e instanceof G||e instanceof am;)if(e instanceof G){if(e.callee===void 0||e.argumentList===void 0||!e.argumentList.elementList.every(e=>gf(e)||xf(e)||Cf(e)))return!1;e=e.callee}else if(e instanceof am){if(e.array===void 0||e.indexer===void 0||!e.indexer.elementList.every(e=>!e.colon&&!e.value&&gf(e.name)))return!1;e=e.array}let t=M(e);return t!==void 0&&t.length>0}function bf(e){return xf(e)||pf(e)}function D(e){let t={},r=[];return e?(e.elementList.forEach(e=>{if(!e.name)return;if(e.name instanceof rm){r.push(new E(T.INVALID_SETTINGS,`A setting name must be a stream of identifiers`,e.name));return}let n=Rf(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 xf(e){return e instanceof rm&&(e.expression instanceof nm&&e.expression.variable instanceof Va&&e.expression.variable.kind===v.QUOTED_STRING||e.expression instanceof em&&e.expression.literal?.kind===v.STRING_LITERAL)}function O(e){return e instanceof rm&&e.expression instanceof nm&&e.expression.variable instanceof Va}function Sf(e){return e?e instanceof tm:!1}function Cf(e){return e instanceof rm&&e.expression instanceof nm&&e.expression.variable?.kind===v.IDENTIFIER}function k(e){return e instanceof Jp&&e.leftExpression instanceof L&&e.rightExpression instanceof L&&e.op?.value===`.`}function wf(e){return O(e)?!0:k(e)&&O(e.rightExpression)&&wf(e.leftExpression)}function A(e,t){return e instanceof z&&e.isKind(t)}function Tf(e){return e instanceof Wp}function Ef(e,t){return e instanceof Gp&&(t===void 0||e.isKind(t))}function Df(e){return e instanceof R}function j(e,...t){return e instanceof H&&e.parent instanceof z&&e.parent.isKind(...t)}function Of(e,t){let n=e.parent;return n instanceof z&&n.isKind(t)&&!!n.body&&n.body.strictlyContains(e)}function kf(e,t){let n=e.parentOfKind(H);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 Af(e){return!!e.parentOfKind(W)}function jf(e,t){let n=e.parentOfKind(B);return!n||(n.name instanceof rm?P(n.name):Rf(n.name))?.toLowerCase()!==t?!1:!!n.value?.containsEq(e)}function Mf(e){return!(e instanceof Jp)||!ff(e.op?.value)?!1:Uf(e.leftExpression)!==void 0&&Uf(e.rightExpression)!==void 0}function Nf(e){let t=Uf(e.leftExpression),n=Uf(e.rightExpression);if(t===void 0||n===void 0)return!1;let{tupleElements:r}=t,{tupleElements:i}=n;return r?.length===i?.length}function Pf(e){return e instanceof rm&&e.expression instanceof nm||e instanceof Xp}function Ff(e){if(O(e))return e;if(k(e)){let t=e.rightExpression;if(t&&O(t))return t}}function If(e){let t=e.parentNode;return!k(t)||t.rightExpression!==e?!1:!(k(t.parentNode)&&t.parentNode.leftExpression===t)}function Lf(e){if(O(e))return e.expression.variable}function Rf(e){if(e===void 0)return;let t=e.identifiers.map(e=>e.value).join(` `);if(t!==``)return t}function zf(e){if(!(e instanceof z))return;let t=M(e?.name);return t===void 0?void 0:t.join(`.`)}function Bf(e){return e.elementList.length===0}function Vf(e){return e?.body?e.body instanceof U?e.body.body:[e.body]:[]}function Hf(e){if(!e)return;if(!k(e))return[e];let t=Hf(e.leftExpression);if(t)return t.push(e.rightExpression),t}function M(e){if(e===void 0)return;let t=Hf(e);if(!t)return;let n=[];for(let e of t){let t=P(e);if(typeof t!=`string`)return;n.push(t)}return n}function Uf(e){if(e===void 0)return;let t=Hf(e);if(!t||t.length===0)return;let n=[];if(!O(g(t))){let e=t.pop();if(vf(e))n=e.elementList;else return}let r=t;if(r.every(O))return{variables:r,tupleElements:n}}function Wf(e){if(Pf(e))return e instanceof Xp?{functional:[e],nonFunctional:[]}:{functional:[],nonFunctional:[e]};if(e instanceof Zp&&e.elementList.every(Pf))return{functional:e.elementList.filter(e=>e instanceof Xp),nonFunctional:e.elementList.filter(O)}}function N(e){if(xf(e))return e.expression instanceof nm?e?.expression?.variable?.value:e.expression.literal.value}function Gf(e){return e instanceof rm&&e.expression instanceof em&&e.expression.literal?.kind===v.NUMERIC_LITERAL?Number(e.expression.literal.value):null}function Kf(e){if(!(e instanceof G)||!e.callee)return;let t=Hf(e.callee);if(!t||t.length===0||!t.every(O))return;let n=[];return vf(e.argumentList)&&(n=[...e.argumentList.elementList]),{variables:t,args:n}}function P(e){if(O(e))return e.expression.variable.value}function qf(e){let t=e?.expression.variable?.value;return t===void 0?void 0:t}function Jf(e){return Cf(e)?e.expression.variable?.value?.toLowerCase()===`null`:e instanceof im}function Yf(e){return N(e)===``}function Xf(e){return e instanceof Xp}function Zf(e){let t=Gf(e);if(t!==null)return t;if(gf(e)&&e instanceof V&&e.expression){let t=e.op?.value,n=Gf(e.expression);if(n!==null)return t===`-`?-n:n}return null}function Qf(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;let t=Zf(e);if(t!==null)return t;let n=N(e);if(n!==void 0){let e=Number(n);if(!isNaN(e))return e}return null}function $f(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;let t=Zf(e);if(t!==null)return Number.isInteger(t)?t:null;let n=N(e);if(n!==void 0){let e=Number(n);if(!isNaN(e)&&Number.isInteger(e))return e}return null}var ep=[`true`,`yes`,`y`,`t`,`1`],tp=[`false`,`no`,`n`,`f`,`0`];function np(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 ep.includes(t)?!0:tp.includes(t)?!1:null}if(Cf(e)){let t=e.expression.variable?.value?.toLowerCase();if(t===`true`)return!0;if(t===`false`)return!1}let t=Gf(e);if(t===0)return!1;if(t===1)return!0;let n=N(e)?.toLowerCase();if(n){if(ep.includes(n))return!0;if(tp.includes(n))return!1}return null}function rp(e){if(e==null)return null;if(typeof e==`string`)return e;let t=M(e);return t?g(t):N(e)??null}function ip(e){if(e==null)return null;if(typeof e==`string`)return e;if(typeof e==`number`||typeof e==`boolean`)return e.toString();let t=N(e)??null??Qf(e)??np(e);return t===null?null:t.toString()}var ap=[`yyyy-MM-dd`,`M/d/yyyy`,`d MMM yyyy`,`MMM d, yyyy`],op=[`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`],sp=[`HH:mm:ss`,`HH:mm:ssZZ`,`HH:mm:ss.SSS`,`HH:mm:ss.SSSZZ`];function cp(e){if(e==null)return null;let t=typeof e==`string`?e:N(e)??null;if(t===null)return null;for(let e of sp){let n=w.fromFormat(t,e,{setZone:!0});if(n.isValid)return n.toISOTime({suppressMilliseconds:!0,includeOffset:r(n)})}for(let e of ap){let n=w.fromFormat(t,e,{setZone:!0});if(n.isValid)return n.toISODate()}for(let e of op){let n=w.fromFormat(t,e,{setZone:!0});if(n.isValid)return n.toISO({suppressMilliseconds:!0,includeOffset:r(n)})}let n=w.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 lp(e){return e instanceof V?`${e.op?.value}${lp(e.expression)}`:e.expression.literal.value}function up(e){return e instanceof V?e.op?.value===`-`?-up(e.expression):up(e.expression):Number.parseFloat(e.expression.literal.value)}function F(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 dp(e){let t=e.split(`
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e=Symbol(`PASS_THROUGH`),t=Symbol(`UNHANDLED`),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 this.value===e?void 0:this.value}getValue(){return this.value}getErrors(){return this.errors}getWarnings(){return this.warnings||[]}chainFiltered(t,n){if(this.value===n)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 this.value===n?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)}},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.Metadata=`metadata`,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}({}),a=typeof global==`object`&&global&&global.Object===Object&&global,o=typeof self==`object`&&self&&self.Object===Object&&self,s=a||o||Function(`return this`)(),c=s.Symbol,l=Object.prototype,u=l.hasOwnProperty,d=l.toString,f=c?c.toStringTag:void 0;function p(e){var t=u.call(e,f),n=e[f];try{e[f]=void 0;var r=!0}catch{}var i=d.call(e);return r&&(t?e[f]=n:delete e[f]),i}var m=Object.prototype.toString;function ee(e){return m.call(e)}var te=`[object Null]`,ne=`[object Undefined]`,re=c?c.toStringTag:void 0;function ie(e){return e==null?e===void 0?ne:te:re&&re in Object(e)?p(e):ee(e)}function ae(e){return typeof e==`object`&&!!e}var oe=`[object Symbol]`;function se(e){return typeof e==`symbol`||ae(e)&&ie(e)==oe}function ce(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 le=Array.isArray,ue=1/0,de=c?c.prototype:void 0,fe=de?de.toString:void 0;function pe(e){if(typeof e==`string`)return e;if(le(e))return ce(e,pe)+``;if(se(e))return fe?fe.call(e):``;var t=e+``;return t==`0`&&1/e==-ue?`-0`:t}var me=/\s/;function he(e){for(var t=e.length;t--&&me.test(e.charAt(t)););return t}var ge=/^\s+/;function _e(e){return e&&e.slice(0,he(e)+1).replace(ge,``)}function ve(e){var t=typeof e;return e!=null&&(t==`object`||t==`function`)}var ye=NaN,be=/^[-+]0x[0-9a-f]+$/i,xe=/^0b[01]+$/i,Se=/^0o[0-7]+$/i,Ce=parseInt;function we(e){if(typeof e==`number`)return e;if(se(e))return ye;if(ve(e)){var t=typeof e.valueOf==`function`?e.valueOf():e;e=ve(t)?t+``:t}if(typeof e!=`string`)return e===0?e:+e;e=_e(e);var n=xe.test(e);return n||Se.test(e)?Ce(e.slice(2),n?2:8):be.test(e)?ye:+e}var Te=1/0,Ee=17976931348623157e292;function De(e){return e?(e=we(e),e===Te||e===-Te?(e<0?-1:1)*Ee:e===e?e:0):e===0?e:0}function Oe(e){var t=De(e),n=t%1;return t===t?n?t-n:t:0}function ke(e){return e}var Ae=`[object AsyncFunction]`,je=`[object Function]`,Me=`[object GeneratorFunction]`,Ne=`[object Proxy]`;function Pe(e){if(!ve(e))return!1;var t=ie(e);return t==je||t==Me||t==Ae||t==Ne}var Fe=s[`__core-js_shared__`],Ie=function(){var e=/[^.]+$/.exec(Fe&&Fe.keys&&Fe.keys.IE_PROTO||``);return e?`Symbol(src)_1.`+e:``}();function Le(e){return!!Ie&&Ie in e}var Re=Function.prototype.toString;function ze(e){if(e!=null){try{return Re.call(e)}catch{}try{return e+``}catch{}}return``}var Be=/[\\^$.*+?()[\]{}|]/g,Ve=/^\[object .+?Constructor\]$/,He=Function.prototype,Ue=Object.prototype,We=He.toString,Ge=Ue.hasOwnProperty,Ke=RegExp(`^`+We.call(Ge).replace(Be,`\\$&`).replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,`$1.*?`)+`$`);function qe(e){return!ve(e)||Le(e)?!1:(Pe(e)?Ke:Ve).test(ze(e))}function Je(e,t){return e?.[t]}function Ye(e,t){var n=Je(e,t);return qe(n)?n:void 0}var Xe=Ye(s,`WeakMap`);function Ze(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)}function Qe(){}var $e=800,et=16,tt=Date.now;function nt(e){var t=0,n=0;return function(){var r=tt(),i=et-(r-n);if(n=r,i>0){if(++t>=$e)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}function rt(e){return function(){return e}}var it=function(){try{var e=Ye(Object,`defineProperty`);return e({},``,{}),e}catch{}}(),at=nt(it?function(e,t){return it(e,`toString`,{configurable:!0,enumerable:!1,value:rt(t),writable:!0})}:ke);function ot(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}function st(e){return e!==e}function ct(e,t,n){for(var r=n-1,i=e.length;++r<i;)if(e[r]===t)return r;return-1}function lt(e,t,n){return t===t?ct(e,t,n):ot(e,st,n)}function ut(e,t){return!!(e!=null&&e.length)&&lt(e,t,0)>-1}var dt=9007199254740991,ft=/^(?:0|[1-9]\d*)$/;function pt(e,t){var n=typeof e;return t??=dt,!!t&&(n==`number`||n!=`symbol`&&ft.test(e))&&e>-1&&e%1==0&&e<t}function mt(e,t,n){t==`__proto__`&&it?it(e,t,{configurable:!0,enumerable:!0,value:n,writable:!0}):e[t]=n}function ht(e,t){return e===t||e!==e&&t!==t}var gt=Math.max;function _t(e,t,n){return t=gt(t===void 0?e.length-1:t,0),function(){for(var r=arguments,i=-1,a=gt(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),Ze(e,this,s)}}function vt(e,t){return at(_t(e,t,ke),e+``)}var yt=9007199254740991;function bt(e){return typeof e==`number`&&e>-1&&e%1==0&&e<=yt}function xt(e){return e!=null&&bt(e.length)&&!Pe(e)}var St=Object.prototype;function Ct(e){var t=e&&e.constructor;return e===(typeof t==`function`&&t.prototype||St)}function wt(e,t){for(var n=-1,r=Array(e);++n<e;)r[n]=t(n);return r}var Tt=`[object Arguments]`;function Et(e){return ae(e)&&ie(e)==Tt}var Dt=Object.prototype,Ot=Dt.hasOwnProperty,kt=Dt.propertyIsEnumerable,At=Et(function(){return arguments}())?Et:function(e){return ae(e)&&Ot.call(e,`callee`)&&!kt.call(e,`callee`)};function jt(){return!1}var Mt=typeof exports==`object`&&exports&&!exports.nodeType&&exports,Nt=Mt&&typeof module==`object`&&module&&!module.nodeType&&module,Pt=Nt&&Nt.exports===Mt?s.Buffer:void 0,Ft=(Pt?Pt.isBuffer:void 0)||jt,It=`[object Arguments]`,Lt=`[object Array]`,Rt=`[object Boolean]`,zt=`[object Date]`,Bt=`[object Error]`,Vt=`[object Function]`,Ht=`[object Map]`,Ut=`[object Number]`,Wt=`[object Object]`,Gt=`[object RegExp]`,Kt=`[object Set]`,qt=`[object String]`,Jt=`[object WeakMap]`,Yt=`[object ArrayBuffer]`,Xt=`[object DataView]`,Zt=`[object Float32Array]`,Qt=`[object Float64Array]`,$t=`[object Int8Array]`,en=`[object Int16Array]`,tn=`[object Int32Array]`,nn=`[object Uint8Array]`,rn=`[object Uint8ClampedArray]`,an=`[object Uint16Array]`,on=`[object Uint32Array]`,h={};h[Zt]=h[Qt]=h[$t]=h[en]=h[tn]=h[nn]=h[rn]=h[an]=h[on]=!0,h[It]=h[Lt]=h[Yt]=h[Rt]=h[Xt]=h[zt]=h[Bt]=h[Vt]=h[Ht]=h[Ut]=h[Wt]=h[Gt]=h[Kt]=h[qt]=h[Jt]=!1;function sn(e){return ae(e)&&bt(e.length)&&!!h[ie(e)]}function cn(e){return function(t){return e(t)}}var ln=typeof exports==`object`&&exports&&!exports.nodeType&&exports,un=ln&&typeof module==`object`&&module&&!module.nodeType&&module,dn=un&&un.exports===ln&&a.process,fn=function(){try{return un&&un.require&&un.require(`util`).types||dn&&dn.binding&&dn.binding(`util`)}catch{}}(),pn=fn&&fn.isTypedArray,mn=pn?cn(pn):sn,hn=Object.prototype.hasOwnProperty;function gn(e,t){var n=le(e),r=!n&&At(e),i=!n&&!r&&Ft(e),a=!n&&!r&&!i&&mn(e),o=n||r||i||a,s=o?wt(e.length,String):[],c=s.length;for(var l in e)(t||hn.call(e,l))&&!(o&&(l==`length`||i&&(l==`offset`||l==`parent`)||a&&(l==`buffer`||l==`byteLength`||l==`byteOffset`)||pt(l,c)))&&s.push(l);return s}function _n(e,t){return function(n){return e(t(n))}}var vn=_n(Object.keys,Object),yn=Object.prototype.hasOwnProperty;function bn(e){if(!Ct(e))return vn(e);var t=[];for(var n in Object(e))yn.call(e,n)&&n!=`constructor`&&t.push(n);return t}function xn(e){return xt(e)?gn(e):bn(e)}function Sn(e){var t=[];if(e!=null)for(var n in Object(e))t.push(n);return t}var Cn=Object.prototype.hasOwnProperty;function wn(e){if(!ve(e))return Sn(e);var t=Ct(e),n=[];for(var r in e)r==`constructor`&&(t||!Cn.call(e,r))||n.push(r);return n}function Tn(e){return xt(e)?gn(e,!0):wn(e)}var En=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Dn=/^\w*$/;function On(e,t){if(le(e))return!1;var n=typeof e;return n==`number`||n==`symbol`||n==`boolean`||e==null||se(e)?!0:Dn.test(e)||!En.test(e)||t!=null&&e in Object(t)}var kn=Ye(Object,`create`);function An(){this.__data__=kn?kn(null):{},this.size=0}function jn(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=+!!t,t}var Mn=`__lodash_hash_undefined__`,Nn=Object.prototype.hasOwnProperty;function Pn(e){var t=this.__data__;if(kn){var n=t[e];return n===Mn?void 0:n}return Nn.call(t,e)?t[e]:void 0}var Fn=Object.prototype.hasOwnProperty;function In(e){var t=this.__data__;return kn?t[e]!==void 0:Fn.call(t,e)}var Ln=`__lodash_hash_undefined__`;function Rn(e,t){var n=this.__data__;return this.size+=+!this.has(e),n[e]=kn&&t===void 0?Ln:t,this}function zn(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])}}zn.prototype.clear=An,zn.prototype.delete=jn,zn.prototype.get=Pn,zn.prototype.has=In,zn.prototype.set=Rn;function Bn(){this.__data__=[],this.size=0}function Vn(e,t){for(var n=e.length;n--;)if(ht(e[n][0],t))return n;return-1}var Hn=Array.prototype.splice;function Un(e){var t=this.__data__,n=Vn(t,e);return n<0?!1:(n==t.length-1?t.pop():Hn.call(t,n,1),--this.size,!0)}function Wn(e){var t=this.__data__,n=Vn(t,e);return n<0?void 0:t[n][1]}function Gn(e){return Vn(this.__data__,e)>-1}function Kn(e,t){var n=this.__data__,r=Vn(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this}function qn(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])}}qn.prototype.clear=Bn,qn.prototype.delete=Un,qn.prototype.get=Wn,qn.prototype.has=Gn,qn.prototype.set=Kn;var Jn=Ye(s,`Map`);function Yn(){this.size=0,this.__data__={hash:new zn,map:new(Jn||qn),string:new zn}}function Xn(e){var t=typeof e;return t==`string`||t==`number`||t==`symbol`||t==`boolean`?e!==`__proto__`:e===null}function Zn(e,t){var n=e.__data__;return Xn(t)?n[typeof t==`string`?`string`:`hash`]:n.map}function Qn(e){var t=Zn(this,e).delete(e);return this.size-=+!!t,t}function $n(e){return Zn(this,e).get(e)}function er(e){return Zn(this,e).has(e)}function tr(e,t){var n=Zn(this,e),r=n.size;return n.set(e,t),this.size+=n.size==r?0:1,this}function nr(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])}}nr.prototype.clear=Yn,nr.prototype.delete=Qn,nr.prototype.get=$n,nr.prototype.has=er,nr.prototype.set=tr;var rr=`Expected a function`;function ir(e,t){if(typeof e!=`function`||t!=null&&typeof t!=`function`)throw TypeError(rr);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(ir.Cache||nr),n}ir.Cache=nr;var ar=500;function or(e){var t=ir(e,function(e){return n.size===ar&&n.clear(),e}),n=t.cache;return t}var sr=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,cr=/\\(\\)?/g,lr=or(function(e){var t=[];return e.charCodeAt(0)===46&&t.push(``),e.replace(sr,function(e,n,r,i){t.push(r?i.replace(cr,`$1`):n||e)}),t});function ur(e){return e==null?``:pe(e)}function dr(e,t){return le(e)?e:On(e,t)?[e]:lr(ur(e))}var fr=1/0;function pr(e){if(typeof e==`string`||se(e))return e;var t=e+``;return t==`0`&&1/e==-fr?`-0`:t}function mr(e,t){t=dr(t,e);for(var n=0,r=t.length;e!=null&&n<r;)e=e[pr(t[n++])];return n&&n==r?e:void 0}function hr(e,t,n){var r=e==null?void 0:mr(e,t);return r===void 0?n:r}function gr(e,t){for(var n=-1,r=t.length,i=e.length;++n<r;)e[i+n]=t[n];return e}var _r=c?c.isConcatSpreadable:void 0;function vr(e){return le(e)||At(e)||!!(_r&&e&&e[_r])}function yr(e,t,n,r,i){var a=-1,o=e.length;for(n||=vr,i||=[];++a<o;){var s=e[a];t>0&&n(s)?t>1?yr(s,t-1,n,r,i):gr(i,s):r||(i[i.length]=s)}return i}function br(e){return e!=null&&e.length?yr(e,1):[]}function xr(){this.__data__=new qn,this.size=0}function Sr(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n}function Cr(e){return this.__data__.get(e)}function wr(e){return this.__data__.has(e)}var Tr=200;function Er(e,t){var n=this.__data__;if(n instanceof qn){var r=n.__data__;if(!Jn||r.length<Tr-1)return r.push([e,t]),this.size=++n.size,this;n=this.__data__=new nr(r)}return n.set(e,t),this.size=n.size,this}function Dr(e){var t=this.__data__=new qn(e);this.size=t.size}Dr.prototype.clear=xr,Dr.prototype.delete=Sr,Dr.prototype.get=Cr,Dr.prototype.has=wr,Dr.prototype.set=Er;function Or(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}function kr(){return[]}var Ar=Object.prototype.propertyIsEnumerable,jr=Object.getOwnPropertySymbols,Mr=jr?function(e){return e==null?[]:(e=Object(e),Or(jr(e),function(t){return Ar.call(e,t)}))}:kr;function Nr(e,t,n){var r=t(e);return le(e)?r:gr(r,n(e))}function Pr(e){return Nr(e,xn,Mr)}var Fr=Ye(s,`DataView`),Ir=Ye(s,`Promise`),Lr=Ye(s,`Set`),Rr=`[object Map]`,zr=`[object Object]`,Br=`[object Promise]`,Vr=`[object Set]`,Hr=`[object WeakMap]`,Ur=`[object DataView]`,Wr=ze(Fr),Gr=ze(Jn),Kr=ze(Ir),qr=ze(Lr),Jr=ze(Xe),Yr=ie;(Fr&&Yr(new Fr(new ArrayBuffer(1)))!=Ur||Jn&&Yr(new Jn)!=Rr||Ir&&Yr(Ir.resolve())!=Br||Lr&&Yr(new Lr)!=Vr||Xe&&Yr(new Xe)!=Hr)&&(Yr=function(e){var t=ie(e),n=t==zr?e.constructor:void 0,r=n?ze(n):``;if(r)switch(r){case Wr:return Ur;case Gr:return Rr;case Kr:return Br;case qr:return Vr;case Jr:return Hr}return t});var Xr=Yr,Zr=s.Uint8Array;function Qr(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 $r=`__lodash_hash_undefined__`;function ei(e){return this.__data__.set(e,$r),this}function ti(e){return this.__data__.has(e)}function ni(e){var t=-1,n=e==null?0:e.length;for(this.__data__=new nr;++t<n;)this.add(e[t])}ni.prototype.add=ni.prototype.push=ei,ni.prototype.has=ti;function ri(e,t){for(var n=-1,r=e==null?0:e.length;++n<r;)if(t(e[n],n,e))return!0;return!1}function ii(e,t){return e.has(t)}var ai=1,oi=2;function si(e,t,n,r,i,a){var o=n&ai,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&oi?new ni: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(!ri(t,function(e,t){if(!ii(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}function ci(e){var t=-1,n=Array(e.size);return e.forEach(function(e,r){n[++t]=[r,e]}),n}function li(e){var t=-1,n=Array(e.size);return e.forEach(function(e){n[++t]=e}),n}var ui=1,di=2,fi=`[object Boolean]`,pi=`[object Date]`,mi=`[object Error]`,hi=`[object Map]`,gi=`[object Number]`,_i=`[object RegExp]`,vi=`[object Set]`,yi=`[object String]`,bi=`[object Symbol]`,xi=`[object ArrayBuffer]`,Si=`[object DataView]`,Ci=c?c.prototype:void 0,wi=Ci?Ci.valueOf:void 0;function Ti(e,t,n,r,i,a,o){switch(n){case Si:if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case xi:return!(e.byteLength!=t.byteLength||!a(new Zr(e),new Zr(t)));case fi:case pi:case gi:return ht(+e,+t);case mi:return e.name==t.name&&e.message==t.message;case _i:case yi:return e==t+``;case hi:var s=ci;case vi:var c=r&ui;if(s||=li,e.size!=t.size&&!c)return!1;var l=o.get(e);if(l)return l==t;r|=di,o.set(e,t);var u=si(s(e),s(t),r,i,a,o);return o.delete(e),u;case bi:if(wi)return wi.call(e)==wi.call(t)}return!1}var Ei=1,Di=Object.prototype.hasOwnProperty;function Oi(e,t,n,r,i,a){var o=n&Ei,s=Pr(e),c=s.length;if(c!=Pr(t).length&&!o)return!1;for(var l=c;l--;){var u=s[l];if(!(o?u in t:Di.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 ki=1,Ai=`[object Arguments]`,ji=`[object Array]`,Mi=`[object Object]`,Ni=Object.prototype.hasOwnProperty;function Pi(e,t,n,r,i,a){var o=le(e),s=le(t),c=o?ji:Xr(e),l=s?ji:Xr(t);c=c==Ai?Mi:c,l=l==Ai?Mi:l;var u=c==Mi,d=l==Mi,f=c==l;if(f&&Ft(e)){if(!Ft(t))return!1;o=!0,u=!1}if(f&&!u)return a||=new Dr,o||mn(e)?si(e,t,n,r,i,a):Ti(e,t,c,n,r,i,a);if(!(n&ki)){var p=u&&Ni.call(e,`__wrapped__`),m=d&&Ni.call(t,`__wrapped__`);if(p||m){var ee=p?e.value():e,te=m?t.value():t;return a||=new Dr,i(ee,te,n,r,a)}}return f?(a||=new Dr,Oi(e,t,n,r,i,a)):!1}function Fi(e,t,n,r,i){return e===t?!0:e==null||t==null||!ae(e)&&!ae(t)?e!==e&&t!==t:Pi(e,t,n,r,Fi,i)}var Ii=1,Li=2;function Ri(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 Dr;if(r)var f=r(l,u,c,e,t,d);if(!(f===void 0?Fi(u,l,Ii|Li,r,d):f))return!1}}return!0}function zi(e){return e===e&&!ve(e)}function Bi(e){for(var t=xn(e),n=t.length;n--;){var r=t[n],i=e[r];t[n]=[r,i,zi(i)]}return t}function Vi(e,t){return function(n){return n==null?!1:n[e]===t&&(t!==void 0||e in Object(n))}}function Hi(e){var t=Bi(e);return t.length==1&&t[0][2]?Vi(t[0][0],t[0][1]):function(n){return n===e||Ri(n,e,t)}}function Ui(e,t){return e!=null&&t in Object(e)}function Wi(e,t,n){t=dr(t,e);for(var r=-1,i=t.length,a=!1;++r<i;){var o=pr(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&&bt(i)&&pt(o,i)&&(le(e)||At(e)))}function Gi(e,t){return e!=null&&Wi(e,t,Ui)}var Ki=1,qi=2;function Ji(e,t){return On(e)&&zi(t)?Vi(pr(e),t):function(n){var r=hr(n,e);return r===void 0&&r===t?Gi(n,e):Fi(t,r,Ki|qi)}}function Yi(e){return function(t){return t?.[e]}}function Xi(e){return function(t){return mr(t,e)}}function Zi(e){return On(e)?Yi(pr(e)):Xi(e)}function Qi(e){return typeof e==`function`?e:e==null?ke:typeof e==`object`?le(e)?Ji(e[0],e[1]):Hi(e):Zi(e)}function $i(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}function ea(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 ta=ea();function na(e,t){return e&&ta(e,t,xn)}function ra(e,t){return function(n,r){if(n==null)return n;if(!xt(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 ia=ra(na);function aa(e,t,n,r){return ia(e,function(e,i,a){t(r,e,n(e),a)}),r}function oa(e,t){return function(n,r){var i=le(n)?$i:aa,a=t?t():{};return i(n,e,Qi(r,2),a)}}function sa(e){return ae(e)&&xt(e)}function ca(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 la=200;function ua(e,t,n,r){var i=-1,a=ut,o=!0,s=e.length,c=[],l=t.length;if(!s)return c;n&&(t=ce(t,cn(n))),r?(a=ca,o=!1):t.length>=la&&(a=ii,o=!1,t=new ni(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 da=vt(function(e,t){return sa(e)?ua(e,yr(t,1,sa,!0)):[]});function g(e){var t=e==null?0:e.length;return t?e[t-1]:void 0}function fa(e){return typeof e==`function`?e:ke}function pa(e,t){var n=[];return ia(e,function(e,r,i){t(e,r,i)&&n.push(e)}),n}function ma(e,t){return(le(e)?Or:pa)(e,Qi(t,3))}var ha=Math.max,ga=Math.min;function _a(e,t,n){var r=e==null?0:e.length;if(!r)return-1;var i=r-1;return n!==void 0&&(i=Oe(n),i=n<0?ha(r+i,0):ga(i,r-1)),ot(e,Qi(t,3),i,!0)}function va(e){return e&&e.length?e[0]:void 0}function ya(e,t){var n=-1,r=xt(e)?Array(e.length):[];return ia(e,function(e,i,a){r[++n]=t(e,i,a)}),r}function ba(e,t){return(le(e)?ce:ya)(e,Qi(t,3))}function xa(e,t){return yr(ba(e,t),1)}function Sa(e,t){return e==null?e:ta(e,fa(t),Tn)}var Ca=Object.prototype.hasOwnProperty,wa=oa(function(e,t,n){Ca.call(e,n)?e[n].push(t):mt(e,n,[t])}),Ta=`[object Map]`,Ea=`[object Set]`,Da=Object.prototype.hasOwnProperty;function Oa(e){if(e==null)return!0;if(xt(e)&&(le(e)||typeof e==`string`||typeof e.splice==`function`||Ft(e)||mn(e)||At(e)))return!e.length;var t=Xr(e);if(t==Ta||t==Ea)return!e.size;if(Ct(e))return!bn(e).length;for(var n in e)if(Da.call(e,n))return!1;return!0}var ka=oa(function(e,t,n){mt(e,n,t)}),_=oa(function(e,t,n){e[+!n].push(t)},function(){return[[],[]]}),Aa=Lr&&1/li(new Lr([,-0]))[1]==1/0?function(e){return new Lr(e)}:Qe,ja=200;function Ma(e,t,n){var r=-1,i=ut,a=e.length,o=!0,s=[],c=s;if(n)o=!1,i=ca;else if(a>=ja){var l=t?null:Aa(e);if(l)return li(l);o=!1,i=ii,c=new ni}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}function Na(e){return e&&e.length?Ma(e):[]}function Pa(e,t){return e&&e.length?Ma(e,Qi(t,2)):[]}var Fa=Math.max;function Ia(e){if(!(e&&e.length))return[];var t=0;return e=Or(e,function(e){if(sa(e))return t=Fa(e.length,t),!0}),wt(t,function(t){return ce(e,Yi(t))})}var La=vt(Ia),v=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 Ra(e){switch(e.kind){case`<newline>`:case`<space>`:case`<tab>`:case`<single-line-comment>`:case`<multiline-comment>`:return!0;default:return!1}}function za(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 Ba(e){return e!==void 0&&e.kind===`<op>`}var Va=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 Ha(e){return e.trailingTrivia.find(({kind:e})=>e===v.NEWLINE)!==void 0}function Ua(e,t){return t.leadingTrivia.find(({kind:e})=>e===v.NEWLINE)!==void 0||Ha(e)}function Wa(e){return e.trailingTrivia.find(({kind:e})=>[v.SPACE,v.TAB].includes(e))!==void 0}function Ga(e){return e.trailingTrivia.length===0?e.end:Ga(g(e.trailingTrivia))}function Ka(e){return e.leadingTrivia.length===0?e.start:Ka(e.leadingTrivia[0])}function qa(e){return[v.SINGLE_LINE_COMMENT,v.MULTILINE_COMMENT].includes(e.kind)}function Ja(e){return e?.kind===v.IDENTIFIER&&e.value.toLowerCase()===`as`}function Ya(e){return e?.kind===v.IDENTIFIER&&e.value.toLowerCase()===`use`}function Xa(e){return e?.kind===v.IDENTIFIER&&e.value.toLowerCase()===`metadata`}function Za(e){return e?.kind===v.IDENTIFIER&&e.value.toLowerCase()===`from`}function Qa(e){return e?.kind===v.IDENTIFIER&&e.value.toLowerCase()===`reuse`}function $a(e){return!!e?.isInvalid}var eo=class{constructor(e){this.generator=e}create(e,t,n){return new e(t,this.generator.nextId(),n)}},to=/^[A-Za-z]:\//;function no(e=``){return e&&e.replace(/\\/g,`/`).replace(to,e=>e.toUpperCase())}var ro=/^[/\\]{2}/,io=/^[/\\](?![/\\])|^[/\\]{2}(?!\.)|^[A-Za-z]:[/\\]/,ao=/^[A-Za-z]:$/,oo=/^\/([A-Za-z]:)?$/,so=/.(\.[^./]+|\.)$/,co=function(e){if(e.length===0)return`.`;e=no(e);let t=e.match(ro),n=mo(e),r=e[e.length-1]===`/`;return e=po(e,!n),e.length===0?n?`/`:r?`./`:`.`:(r&&(e+=`/`),ao.test(e)&&(e+=`/`),t?n?`//${e}`:`//./${e}`:n&&!mo(e)?`/${e}`:e)},lo=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 co(t)};function uo(){return typeof process<`u`&&typeof process.cwd==`function`?process.cwd().replace(/\\/g,`/`):`/`}var fo=function(...e){e=e.map(e=>no(e));let t=``,n=!1;for(let r=e.length-1;r>=-1&&!n;r--){let i=r>=0?e[r]:uo();!i||i.length===0||(t=`${i}/${t}`,n=mo(i))}return t=po(t,!n),n&&!mo(t)?`/${t}`:t.length>0?t:`.`};function po(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 mo=function(e){return io.test(e)},ho=function(e){if(e===`..`)return``;let t=so.exec(no(e));return t&&t[1]||``},go=function(e,t){let n=fo(e).replace(oo,`$1`).split(`/`),r=fo(t).replace(oo,`$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(`/`)},_o=function(e){let t=no(e).replace(/\/$/,``).split(`/`).slice(0,-1);return t.length===1&&ao.test(t[0])&&(t[0]+=`/`),t.join(`/`)||(mo(e)?`/`:`.`)},vo=function(e,t){let n=no(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},yo=/^[a-zA-Z]:\//,bo=class e{constructor(e,t={}){let n=co(e);if(!mo(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(fo(t,n))}static fromUri(t){try{let n=new URL(t);return new e(co(n.host?`/${n.host}${n.pathname}`:n.pathname),{protocol:n.protocol})}catch{return new e(co(t))}}get absolute(){return this.path}get dirname(){return _o(this.path)}get basename(){return vo(this.path)}get extname(){return ho(this.path)}resolve(t){return new e(fo(this.dirname,t))}join(...t){return new e(lo(this.path,...t))}relativeTo(e){let t=go(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=yo.test(this.path)?`${t}:///`:`${t}://`;return new URL(n+this.path).href}static isRelative(e){return!mo(co(e))}};function xo(e,t){if(!bo.isRelative(t))return;let n=bo.resolve(e.dirname,t);return n.absolute.endsWith(`.dbml`)?n:bo.from(n.absolute+`.dbml`)}var So=[`null`,`true`,`false`],Co=`none`,wo=`.dbml`,To=[`-`,`+`],y=`public`,Eo=bo.from(`/main.dbml`),Do={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`])},Oo={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`])},ko={mysql:new Set([`bool`,`boolean`,`bit`]),postgres:new Set([`bool`,`boolean`]),mssql:new Set([`bit`]),oracle:new Set([]),snowflake:new Set([`boolean`])},Ao={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`])},jo={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`])},Mo={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`])},No={mysql:new Set([]),postgres:new Set([`serial`,`smallserial`,`bigserial`]),mssql:new Set([]),oracle:new Set([]),snowflake:new Set([])};function Po(e){return e.toLowerCase().trim().replace(/\s+/g,` `)}function Fo(e,t){let n=Po(e);return t?Do[t].has(n):Object.values(Do).some(e=>e.has(n))}function Io(e,t){let n=Po(e);return t?Oo[t].has(n):Object.values(Oo).some(e=>e.has(n))}function Lo(e,t){return Fo(e,t)||Io(e,t)}function Ro(e,t){let n=Po(e);return t?ko[t].has(n):Object.values(ko).some(e=>e.has(n))}function zo(e,t){let n=Po(e);return t?Ao[t].has(n):Object.values(Ao).some(e=>e.has(n))}function Bo(e,t){let n=Po(e);return t?jo[t].has(n):Object.values(jo).some(e=>e.has(n))}function Vo(e,t){let n=Po(e);return t?Mo[t].has(n):Object.values(Mo).some(e=>e.has(n))}function Ho(e,t){let n=Po(e);return t?No[t].has(n):Object.values(No).some(e=>e.has(n))}function Uo(e,t){if(t)return`string`;if(Fo(e))return`integer`;if(Io(e))return`real`;if(Ro(e))return`bool`;if(zo(e))return`string`;let n=Po(e);return n===`date`?`date`:n===`time`||n===`timetz`||n===`time with time zone`||n===`time without time zone`?`time`:Vo(e)?`datetime`:e}var Wo=class extends Error{},Go=class extends Wo{constructor(e){super(`Invalid DateTime: ${e.toMessage()}`)}},Ko=class extends Wo{constructor(e){super(`Invalid Interval: ${e.toMessage()}`)}},qo=class extends Wo{constructor(e){super(`Invalid Duration: ${e.toMessage()}`)}},Jo=class extends Wo{},Yo=class extends Wo{constructor(e){super(`Invalid unit ${e}`)}},Xo=class extends Wo{},Zo=class extends Wo{constructor(){super(`Zone is an abstract class`)}},b=`numeric`,Qo=`short`,$o=`long`,es={year:b,month:b,day:b},ts={year:b,month:Qo,day:b},ns={year:b,month:Qo,day:b,weekday:Qo},rs={year:b,month:$o,day:b},is={year:b,month:$o,day:b,weekday:$o},as={hour:b,minute:b},os={hour:b,minute:b,second:b},ss={hour:b,minute:b,second:b,timeZoneName:Qo},cs={hour:b,minute:b,second:b,timeZoneName:$o},ls={hour:b,minute:b,hourCycle:`h23`},us={hour:b,minute:b,second:b,hourCycle:`h23`},ds={hour:b,minute:b,second:b,hourCycle:`h23`,timeZoneName:Qo},fs={hour:b,minute:b,second:b,hourCycle:`h23`,timeZoneName:$o},ps={year:b,month:b,day:b,hour:b,minute:b},ms={year:b,month:b,day:b,hour:b,minute:b,second:b},hs={year:b,month:Qo,day:b,hour:b,minute:b},gs={year:b,month:Qo,day:b,hour:b,minute:b,second:b},_s={year:b,month:Qo,day:b,weekday:Qo,hour:b,minute:b},vs={year:b,month:$o,day:b,hour:b,minute:b,timeZoneName:Qo},ys={year:b,month:$o,day:b,hour:b,minute:b,second:b,timeZoneName:Qo},bs={year:b,month:$o,day:b,weekday:$o,hour:b,minute:b,timeZoneName:$o},xs={year:b,month:$o,day:b,weekday:$o,hour:b,minute:b,second:b,timeZoneName:$o},Ss=class{get type(){throw new Zo}get name(){throw new Zo}get ianaName(){return this.name}get isUniversal(){throw new Zo}offsetName(e,t){throw new Zo}formatOffset(e,t){throw new Zo}offset(e){throw new Zo}equals(e){throw new Zo}get isValid(){throw new Zo}},Cs=null,ws=class e extends Ss{static get instance(){return Cs===null&&(Cs=new e),Cs}get type(){return`system`}get name(){return new Intl.DateTimeFormat().resolvedOptions().timeZone}get isUniversal(){return!1}offsetName(e,{format:t,locale:n}){return ul(e,t,n)}formatOffset(e,t){return ml(this.offset(e),t)}offset(e){return-new Date(e).getTimezoneOffset()}equals(e){return e.type===`system`}get isValid(){return!0}},Ts=new Map;function Es(e){let t=Ts.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`}),Ts.set(e,t)),t}var Ds={year:0,month:1,day:2,era:3,hour:4,minute:5,second:6};function Os(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 ks(e,t){let n=e.formatToParts(t),r=[];for(let e=0;e<n.length;e++){let{type:t,value:i}=n[e],a=Ds[t];t===`era`?r[a]=i:S(a)||(r[a]=parseInt(i,10))}return r}var As=new Map,js=class e extends Ss{static create(t){let n=As.get(t);return n===void 0&&As.set(t,n=new e(t)),n}static resetCache(){As.clear(),Ts.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 ul(e,t,n,this.name)}formatOffset(e,t){return ml(this.offset(e),t)}offset(e){if(!this.valid)return NaN;let t=new Date(e);if(isNaN(t))return NaN;let n=Es(this.name),[r,i,a,o,s,c,l]=n.formatToParts?ks(n,t):Os(n,t);o===`BC`&&(r=-Math.abs(r)+1);let u=ol({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}},Ms={};function Ns(e,t={}){let n=JSON.stringify([e,t]),r=Ms[n];return r||(r=new Intl.ListFormat(e,t),Ms[n]=r),r}var Ps=new Map;function Fs(e,t={}){let n=JSON.stringify([e,t]),r=Ps.get(n);return r===void 0&&(r=new Intl.DateTimeFormat(e,t),Ps.set(n,r)),r}var Is=new Map;function Ls(e,t={}){let n=JSON.stringify([e,t]),r=Is.get(n);return r===void 0&&(r=new Intl.NumberFormat(e,t),Is.set(n,r)),r}var Rs=new Map;function zs(e,t={}){let{base:n,...r}=t,i=JSON.stringify([e,r]),a=Rs.get(i);return a===void 0&&(a=new Intl.RelativeTimeFormat(e,t),Rs.set(i,a)),a}var Bs=null;function Vs(){return Bs||(Bs=new Intl.DateTimeFormat().resolvedOptions().locale,Bs)}var Hs=new Map;function Us(e){let t=Hs.get(e);return t===void 0&&(t=new Intl.DateTimeFormat(e).resolvedOptions(),Hs.set(e,t)),t}var Ws=new Map;function Gs(e){let t=Ws.get(e);if(!t){let n=new Intl.Locale(e);t=`getWeekInfo`in n?n.getWeekInfo():n.weekInfo,`minimalDays`in t||(t={...tc,...t}),Ws.set(e,t)}return t}function Ks(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=Fs(e).resolvedOptions(),r=e}catch{let i=e.substring(0,n);t=Fs(i).resolvedOptions(),r=i}let{numberingSystem:i,calendar:a}=t;return[r,i,a]}}function qs(e,t,n){return n||t?(e.includes(`-u-`)||(e+=`-u`),n&&(e+=`-ca-${n}`),t&&(e+=`-nu-${t}`),e):e}function Js(e){let t=[];for(let n=1;n<=12;n++){let r=w.utc(2009,n,1);t.push(e(r))}return t}function Ys(e){let t=[];for(let n=1;n<=7;n++){let r=w.utc(2016,11,13+n);t.push(e(r))}return t}function Xs(e,t,n,r){let i=e.listingMode();return i===`error`?null:i===`en`?n(t):r(t)}function Zs(e){return e.numberingSystem&&e.numberingSystem!==`latn`?!1:e.numberingSystem===`latn`||!e.locale||e.locale.startsWith(`en`)||Us(e.locale).numberingSystem===`latn`}var Qs=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=Ls(e,t)}}format(e){if(this.inf){let t=this.floor?Math.floor(e):e;return this.inf.format(t)}else return Qc(this.floor?Math.floor(e):nl(e,3),this.padTo)}},$s=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&&js.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=Fs(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()}},ec=class{constructor(e,t,n){this.opts={style:`long`,...n},!t&&Uc()&&(this.rtf=zs(e,n))}format(e,t){return this.rtf?this.rtf.format(e,t):Nl(t,e,this.opts.numeric,this.opts.style!==`long`)}formatToParts(e,t){return this.rtf?this.rtf.formatToParts(e,t):[]}},tc={firstDay:1,minimalDays:4,weekend:[6,7]},x=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||xc.defaultLocale;return new e(o||(a?`en-US`:Vs()),n||xc.defaultNumberingSystem,r||xc.defaultOutputCalendar,Yc(i)||xc.defaultWeekSettings,o)}static resetCache(){Bs=null,Ps.clear(),Is.clear(),Rs.clear(),Hs.clear(),Ws.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]=Ks(e);this.locale=a,this.numberingSystem=t||o||null,this.outputCalendar=n||s||null,this.weekSettings=r,this.intl=qs(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??=Zs(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,Yc(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 Xs(this,e,yl,()=>{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]=Js(t)}return this.monthsCache[i][e]})}weekdays(e,t=!1){return Xs(this,e,Cl,()=>{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]=Ys(e=>this.extract(e,n,`weekday`))),this.weekdaysCache[r][e]})}meridiems(){return Xs(this,void 0,()=>wl,()=>{if(!this.meridiemCache){let e={hour:`numeric`,hourCycle:`h12`};this.meridiemCache=[w.utc(2016,11,13,9),w.utc(2016,11,13,19)].map(t=>this.extract(t,e,`dayperiod`))}return this.meridiemCache})}eras(e){return Xs(this,e,Ol,()=>{let t={era:e};return this.eraCache[e]||(this.eraCache[e]=[w.utc(-40,1,1),w.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 Qs(this.intl,e.forceSimple||this.fastNumbers,e)}dtFormatter(e,t={}){return new $s(e,this.intl,t)}relFormatter(e={}){return new ec(this.intl,this.isEnglish(),e)}listFormatter(e={}){return Ns(this.intl,e)}isEnglish(){return this.locale===`en`||this.locale.toLowerCase()===`en-us`||Us(this.intl).locale.startsWith(`en-us`)}getWeekSettings(){return this.weekSettings?this.weekSettings:Wc()?Gs(this.locale):tc}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})`}},nc=null,rc=class e extends Ss{static get utcInstance(){return nc===null&&(nc=new e(0)),nc}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(dl(n[1],n[2]))}return null}constructor(e){super(),this.fixed=e}get type(){return`fixed`}get name(){return this.fixed===0?`UTC`:`UTC${ml(this.fixed,`narrow`)}`}get ianaName(){return this.fixed===0?`Etc/UTC`:`Etc/GMT${ml(-this.fixed,`narrow`)}`}offsetName(){return this.name}formatOffset(e,t){return ml(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}},ic=class extends Ss{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 ac(e,t){if(S(e)||e===null)return t;if(e instanceof Ss)return e;if(Vc(e)){let n=e.toLowerCase();return n==="default"?t:n===`local`||n===`system`?ws.instance:n===`utc`||n===`gmt`?rc.utcInstance:rc.parseSpecifier(n)||js.create(e)}else if(zc(e))return rc.instance(e);else if(typeof e==`object`&&`offset`in e&&typeof e.offset==`function`)return e;else return new ic(e)}var oc={arab:`[٠-٩]`,arabext:`[۰-۹]`,bali:`[᭐-᭙]`,beng:`[০-৯]`,deva:`[०-९]`,fullwide:`[0-9]`,gujr:`[૦-૯]`,hanidec:`[〇|一|二|三|四|五|六|七|八|九]`,khmr:`[០-៩]`,knda:`[೦-೯]`,laoo:`[໐-໙]`,limb:`[᥆-᥏]`,mlym:`[൦-൯]`,mong:`[᠐-᠙]`,mymr:`[၀-၉]`,orya:`[୦-୯]`,tamldec:`[௦-௯]`,telu:`[౦-౯]`,thai:`[๐-๙]`,tibt:`[༠-༩]`,latn:`\\d`},sc={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]},cc=oc.hanidec.replace(/[\[|\]]/g,``).split(``);function lc(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(oc.hanidec)!==-1)t+=cc.indexOf(e[n]);else for(let e in sc){let[n,i]=sc[e];r>=n&&r<=i&&(t+=r-n)}}return parseInt(t,10)}else return t}var uc=new Map;function dc(){uc.clear()}function fc({numberingSystem:e},t=``){let n=e||`latn`,r=uc.get(n);r===void 0&&(r=new Map,uc.set(n,r));let i=r.get(t);return i===void 0&&(i=RegExp(`${oc[n]}${t}`),r.set(t,i)),i}var pc=()=>Date.now(),mc=`system`,hc=null,gc=null,_c=null,vc=60,yc,bc=null,xc=class{static get now(){return pc}static set now(e){pc=e}static set defaultZone(e){mc=e}static get defaultZone(){return ac(mc,ws.instance)}static get defaultLocale(){return hc}static set defaultLocale(e){hc=e}static get defaultNumberingSystem(){return gc}static set defaultNumberingSystem(e){gc=e}static get defaultOutputCalendar(){return _c}static set defaultOutputCalendar(e){_c=e}static get defaultWeekSettings(){return bc}static set defaultWeekSettings(e){bc=Yc(e)}static get twoDigitCutoffYear(){return vc}static set twoDigitCutoffYear(e){vc=e%100}static get throwOnInvalid(){return yc}static set throwOnInvalid(e){yc=e}static resetCaches(){x.resetCache(),js.resetCache(),w.resetCache(),dc()}},Sc=class{constructor(e,t){this.reason=e,this.explanation=t}toMessage(){return this.explanation?`${this.reason}: ${this.explanation}`:this.reason}},Cc=[0,31,59,90,120,151,181,212,243,273,304,334],wc=[0,31,60,91,121,152,182,213,244,274,305,335];function Tc(e,t){return new Sc(`unit out of range`,`you specified ${t} (of type ${typeof t}) as a ${e}, which is invalid`)}function Ec(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 Dc(e,t,n){return n+(rl(e)?wc:Cc)[t-1]}function Oc(e,t){let n=rl(e)?wc:Cc,r=n.findIndex(e=>e<t),i=t-n[r];return{month:r+1,day:i}}function kc(e,t){return(e-t+7)%7+1}function Ac(e,t=4,n=1){let{year:r,month:i,day:a}=e,o=Dc(r,i,a),s=kc(Ec(r,i,a),n),c=Math.floor((o-s+14-t)/7),l;return c<1?(l=r-1,c=cl(l,t,n)):c>cl(r,t,n)?(l=r+1,c=1):l=r,{weekYear:l,weekNumber:c,weekday:s,...hl(e)}}function jc(e,t=4,n=1){let{weekYear:r,weekNumber:i,weekday:a}=e,o=kc(Ec(r,1,t),n),s=il(r),c=i*7+a-o-7+t,l;c<1?(l=r-1,c+=il(l)):c>s?(l=r+1,c-=il(r)):l=r;let{month:u,day:d}=Oc(l,c);return{year:l,month:u,day:d,...hl(e)}}function Mc(e){let{year:t,month:n,day:r}=e;return{year:t,ordinal:Dc(t,n,r),...hl(e)}}function Nc(e){let{year:t,ordinal:n}=e,{month:r,day:i}=Oc(t,n);return{year:t,month:r,day:i,...hl(e)}}function Pc(e,t){if(!S(e.localWeekday)||!S(e.localWeekNumber)||!S(e.localWeekYear)){if(!S(e.weekday)||!S(e.weekNumber)||!S(e.weekYear))throw new Jo(`Cannot mix locale-based week fields with ISO-based week fields`);return S(e.localWeekday)||(e.weekday=e.localWeekday),S(e.localWeekNumber)||(e.weekNumber=e.localWeekNumber),S(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 Fc(e,t=4,n=1){let r=Bc(e.weekYear),i=Xc(e.weekNumber,1,cl(e.weekYear,t,n)),a=Xc(e.weekday,1,7);return r?i?a?!1:Tc(`weekday`,e.weekday):Tc(`week`,e.weekNumber):Tc(`weekYear`,e.weekYear)}function Ic(e){let t=Bc(e.year),n=Xc(e.ordinal,1,il(e.year));return t?n?!1:Tc(`ordinal`,e.ordinal):Tc(`year`,e.year)}function Lc(e){let t=Bc(e.year),n=Xc(e.month,1,12),r=Xc(e.day,1,al(e.year,e.month));return t?n?r?!1:Tc(`day`,e.day):Tc(`month`,e.month):Tc(`year`,e.year)}function Rc(e){let{hour:t,minute:n,second:r,millisecond:i}=e,a=Xc(t,0,23)||t===24&&n===0&&r===0&&i===0,o=Xc(n,0,59),s=Xc(r,0,59),c=Xc(i,0,999);return a?o?s?c?!1:Tc(`millisecond`,i):Tc(`second`,r):Tc(`minute`,n):Tc(`hour`,t)}function S(e){return e===void 0}function zc(e){return typeof e==`number`}function Bc(e){return typeof e==`number`&&e%1==0}function Vc(e){return typeof e==`string`}function Hc(e){return Object.prototype.toString.call(e)===`[object Date]`}function Uc(){try{return typeof Intl<`u`&&!!Intl.RelativeTimeFormat}catch{return!1}}function Wc(){try{return typeof Intl<`u`&&!!Intl.Locale&&(`weekInfo`in Intl.Locale.prototype||`getWeekInfo`in Intl.Locale.prototype)}catch{return!1}}function Gc(e){return Array.isArray(e)?e:[e]}function Kc(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 qc(e,t){return t.reduce((t,n)=>(t[n]=e[n],t),{})}function Jc(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function Yc(e){if(e==null)return null;if(typeof e!=`object`)throw new Xo(`Week settings must be an object`);if(!Xc(e.firstDay,1,7)||!Xc(e.minimalDays,1,7)||!Array.isArray(e.weekend)||e.weekend.some(e=>!Xc(e,1,7)))throw new Xo(`Invalid week settings`);return{firstDay:e.firstDay,minimalDays:e.minimalDays,weekend:Array.from(e.weekend)}}function Xc(e,t,n){return Bc(e)&&e>=t&&e<=n}function Zc(e,t){return e-t*Math.floor(e/t)}function Qc(e,t=2){let n=e<0,r;return r=n?`-`+(``+-e).padStart(t,`0`):(``+e).padStart(t,`0`),r}function $c(e){if(!(S(e)||e===null||e===``))return parseInt(e,10)}function el(e){if(!(S(e)||e===null||e===``))return parseFloat(e)}function tl(e){if(!(S(e)||e===null||e===``)){let t=parseFloat(`0.`+e)*1e3;return Math.floor(t)}}function nl(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 rl(e){return e%4==0&&(e%100!=0||e%400==0)}function il(e){return rl(e)?366:365}function al(e,t){let n=Zc(t-1,12)+1,r=e+(t-n)/12;return n===2?rl(r)?29:28:[31,null,31,30,31,30,31,31,30,31,30,31][n-1]}function ol(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 sl(e,t,n){return-kc(Ec(e,1,t),n)+t-1}function cl(e,t=4,n=1){let r=sl(e,t,n),i=sl(e+1,t,n);return(il(e)-r+i)/7}function ll(e){return e>99?e:e>xc.twoDigitCutoffYear?1900+e:2e3+e}function ul(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 dl(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 fl(e){let t=Number(e);if(typeof e==`boolean`||e===``||!Number.isFinite(t))throw new Xo(`Invalid unit value ${e}`);return t}function pl(e,t){let n={};for(let r in e)if(Jc(e,r)){let i=e[r];if(i==null)continue;n[t(r)]=fl(i)}return n}function ml(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}${Qc(n,2)}:${Qc(r,2)}`;case`narrow`:return`${i}${n}${r>0?`:${r}`:``}`;case`techie`:return`${i}${Qc(n,2)}${Qc(r,2)}`;default:throw RangeError(`Value format ${t} is out of range for property format`)}}function hl(e){return qc(e,[`hour`,`minute`,`second`,`millisecond`])}var gl=[`January`,`February`,`March`,`April`,`May`,`June`,`July`,`August`,`September`,`October`,`November`,`December`],_l=[`Jan`,`Feb`,`Mar`,`Apr`,`May`,`Jun`,`Jul`,`Aug`,`Sep`,`Oct`,`Nov`,`Dec`],vl=[`J`,`F`,`M`,`A`,`M`,`J`,`J`,`A`,`S`,`O`,`N`,`D`];function yl(e){switch(e){case`narrow`:return[...vl];case`short`:return[..._l];case`long`:return[...gl];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 bl=[`Monday`,`Tuesday`,`Wednesday`,`Thursday`,`Friday`,`Saturday`,`Sunday`],xl=[`Mon`,`Tue`,`Wed`,`Thu`,`Fri`,`Sat`,`Sun`],Sl=[`M`,`T`,`W`,`T`,`F`,`S`,`S`];function Cl(e){switch(e){case`narrow`:return[...Sl];case`short`:return[...xl];case`long`:return[...bl];case`numeric`:return[`1`,`2`,`3`,`4`,`5`,`6`,`7`];default:return null}}var wl=[`AM`,`PM`],Tl=[`Before Christ`,`Anno Domini`],El=[`BC`,`AD`],Dl=[`B`,`A`];function Ol(e){switch(e){case`narrow`:return[...Dl];case`short`:return[...El];case`long`:return[...Tl];default:return null}}function kl(e){return wl[e.hour<12?0:1]}function Al(e,t){return Cl(t)[e.weekday-1]}function jl(e,t){return yl(t)[e.month-1]}function Ml(e,t){return Ol(t)[e.year<0?0:1]}function Nl(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 Pl(e,t){let n=``;for(let r of e)r.literal?n+=r.val:n+=t(r.val);return n}var Fl={D:es,DD:ts,DDD:rs,DDDD:is,t:as,tt:os,ttt:ss,tttt:cs,T:ls,TT:us,TTT:ds,TTTT:fs,f:ps,ff:hs,fff:vs,ffff:bs,F:ms,FF:gs,FFF:ys,FFFF:xs},Il=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 Fl[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 Qc(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?kl(t):a({hour:`numeric`,hourCycle:`h12`},`dayperiod`),c=(e,n)=>r?jl(t,e):a(n?{month:e}:{month:e,day:`numeric`},`month`),l=(e,n)=>r?Al(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?Ml(t,e):a({era:e},`era`);return Pl(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 Pl(o,a(c,{isNegativeDuration:c<0,largestUnit:Object.keys(c.values)[0]}))}},Ll=/[A-Za-z_+-]{1,256}(?::?\/[A-Za-z0-9_+-]{1,256}(?:\/[A-Za-z0-9_+-]{1,256})?)?/;function Rl(...e){let t=e.reduce((e,t)=>e+t.source,``);return RegExp(`^${t}$`)}function zl(...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 Bl(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 Vl(...e){return(t,n)=>{let r={},i;for(i=0;i<e.length;i++)r[e[i]]=$c(t[n+i]);return[r,null,n+i]}}var Hl=/(?:([Zz])|([+-]\d\d)(?::?(\d\d))?)/,Ul=`(?:${Hl.source}?(?:\\[(${Ll.source})\\])?)?`,Wl=/(\d\d)(?::?(\d\d)(?::?(\d\d)(?:[.,](\d{1,30}))?)?)?/,Gl=RegExp(`${Wl.source}${Ul}`),Kl=RegExp(`(?:[Tt]${Gl.source})?`),ql=/([+-]\d{6}|\d{4})(?:-?(\d\d)(?:-?(\d\d))?)?/,Jl=/(\d{4})-?W(\d\d)(?:-?(\d))?/,Yl=/(\d{4})-?(\d{3})/,Xl=Vl(`weekYear`,`weekNumber`,`weekDay`),Zl=Vl(`year`,`ordinal`),Ql=/(\d{4})-(\d\d)-(\d\d)/,$l=RegExp(`${Wl.source} ?(?:${Hl.source}|(${Ll.source}))?`),eu=RegExp(`(?: ${$l.source})?`);function tu(e,t,n){let r=e[t];return S(r)?n:$c(r)}function nu(e,t){return[{year:tu(e,t),month:tu(e,t+1,1),day:tu(e,t+2,1)},null,t+3]}function ru(e,t){return[{hours:tu(e,t,0),minutes:tu(e,t+1,0),seconds:tu(e,t+2,0),milliseconds:tl(e[t+3])},null,t+4]}function iu(e,t){let n=!e[t]&&!e[t+1],r=dl(e[t+1],e[t+2]);return[{},n?null:rc.instance(r),t+3]}function au(e,t){return[{},e[t]?js.create(e[t]):null,t+1]}var ou=RegExp(`^T?${Wl.source}$`),su=/^-?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 cu(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(el(n)),months:f(el(r)),weeks:f(el(i)),days:f(el(a)),hours:f(el(o)),minutes:f(el(s)),seconds:f(el(c),c===`-0`),milliseconds:f(tl(l),d)}]}var lu={GMT:0,EDT:-240,EST:-300,CDT:-300,CST:-360,MDT:-360,MST:-420,PDT:-420,PST:-480};function uu(e,t,n,r,i,a,o){let s={year:t.length===2?ll($c(t)):$c(t),month:_l.indexOf(n)+1,day:$c(r),hour:$c(i),minute:$c(a)};return o&&(s.second=$c(o)),e&&(s.weekday=e.length>3?bl.indexOf(e)+1:xl.indexOf(e)+1),s}var du=/^(?:(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 fu(e){let[,t,n,r,i,a,o,s,c,l,u,d]=e,f=uu(t,i,r,n,a,o,s),p;return p=c?lu[c]:l?0:dl(u,d),[f,new rc(p)]}function pu(e){return e.replace(/\([^()]*\)|[\n\t]/g,` `).replace(/(\s\s+)/g,` `).trim()}var mu=/^(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$/,hu=/^(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$/,gu=/^(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 _u(e){let[,t,n,r,i,a,o,s]=e;return[uu(t,i,r,n,a,o,s),rc.utcInstance]}function vu(e){let[,t,n,r,i,a,o,s]=e;return[uu(t,s,n,r,i,a,o),rc.utcInstance]}var yu=Rl(ql,Kl),bu=Rl(Jl,Kl),xu=Rl(Yl,Kl),Su=Rl(Gl),Cu=zl(nu,ru,iu,au),wu=zl(Xl,ru,iu,au),Tu=zl(Zl,ru,iu,au),Eu=zl(ru,iu,au);function Du(e){return Bl(e,[yu,Cu],[bu,wu],[xu,Tu],[Su,Eu])}function Ou(e){return Bl(pu(e),[du,fu])}function ku(e){return Bl(e,[mu,_u],[hu,_u],[gu,vu])}function Au(e){return Bl(e,[su,cu])}var ju=zl(ru);function Mu(e){return Bl(e,[ou,ju])}var Nu=Rl(Ql,eu),Pu=Rl($l),Fu=zl(ru,iu,au);function Iu(e){return Bl(e,[Nu,Cu],[Pu,Fu])}var Lu=`Invalid Duration`,Ru={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}},zu={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},...Ru},Bu=146097/400,Vu=146097/4800,Hu={years:{quarters:4,months:12,weeks:Bu/7,days:Bu,hours:Bu*24,minutes:Bu*24*60,seconds:Bu*24*60*60,milliseconds:Bu*24*60*60*1e3},quarters:{months:3,weeks:Bu/28,days:Bu/4,hours:Bu*24/4,minutes:Bu*24*60/4,seconds:Bu*24*60*60/4,milliseconds:Bu*24*60*60*1e3/4},months:{weeks:Vu/7,days:Vu,hours:Vu*24,minutes:Vu*24*60,seconds:Vu*24*60*60,milliseconds:Vu*24*60*60*1e3},...Ru},Uu=[`years`,`quarters`,`months`,`weeks`,`days`,`hours`,`minutes`,`seconds`,`milliseconds`],Wu=Uu.slice(0).reverse();function Gu(e,t,n=!1){return new Yu({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 Ku(e,t){let n=t.milliseconds??0;for(let r of Wu.slice(1))t[r]&&(n+=t[r]*e[r].milliseconds);return n}function qu(e,t){let n=Ku(e,t)<0?-1:1;Uu.reduceRight((r,i)=>{if(S(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),Uu.reduce((n,r)=>{if(S(t[r]))return n;if(n){let i=t[n]%1;t[n]-=i,t[r]+=i*e[n][r]}return r},null)}function Ju(e){let t={};for(let[n,r]of Object.entries(e))r!==0&&(t[n]=r);return t}var Yu=class e{constructor(e){let t=e.conversionAccuracy===`longterm`||!1,n=t?Hu:zu;e.matrix&&(n=e.matrix),this.values=e.values,this.loc=e.loc||x.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 Xo(`Duration.fromObject: argument expected to be an object, got ${t===null?`null`:typeof t}`);return new e({values:pl(t,e.normalizeUnit),loc:x.fromObject(n),conversionAccuracy:n.conversionAccuracy,matrix:n.matrix})}static fromDurationLike(t){if(zc(t))return e.fromMillis(t);if(e.isDuration(t))return t;if(typeof t==`object`)return e.fromObject(t);throw new Xo(`Unknown duration argument ${t} of type ${typeof t}`)}static fromISO(t,n){let[r]=Au(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]=Mu(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 Xo(`need to specify a reason the Duration is invalid`);let r=t instanceof Sc?t:new Sc(t,n);if(xc.throwOnInvalid)throw new qo(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 Yo(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?Il.create(this.loc,n).formatDurationFromString(this,e):Lu}toHuman(e={}){if(!this.isValid)return Lu;let t=e.showZeros!==!1,n=Uu.map(n=>{let r=this.values[n];return S(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+=nl(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},w.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?Ku(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 Uu)(Jc(n.values,e)||Jc(this.values,e))&&(r[e]=n.get(e)+this.get(e));return Gu(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]=fl(e(this.values[n],n));return Gu(this,{values:t},!0)}get(t){return this[e.normalizeUnit(t)]}set(t){if(!this.isValid)return this;let n={...this.values,...pl(t,e.normalizeUnit)};return Gu(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 Gu(this,i)}as(e){return this.isValid?this.shiftTo(e).get(e):NaN}normalize(){if(!this.isValid)return this;let e=this.toObject();return qu(this.matrix,e),Gu(this,{values:e},!0)}rescale(){if(!this.isValid)return this;let e=Ju(this.normalize().shiftToAll().toObject());return Gu(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 Uu)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;zc(i[e])&&(t+=i[e]);let o=Math.trunc(t);n[e]=o,r[e]=(t*1e3-o*1e3)/1e3}else zc(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 qu(this.matrix,n),Gu(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 Gu(this,{values:e},!0)}removeZeros(){if(!this.isValid)return this;let e=Ju(this.values);return Gu(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 Uu)if(!t(this.values[n],e.values[n]))return!1;return!0}},Xu=`Invalid Interval`;function Zu(e,t){return!e||!e.isValid?Qu.invalid(`missing or invalid start`):!t||!t.isValid?Qu.invalid(`missing or invalid end`):t<e?Qu.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 Qu=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 Xo(`need to specify a reason the Interval is invalid`);let r=t instanceof Sc?t:new Sc(t,n);if(xc.throwOnInvalid)throw new Ko(r);return new e({invalid:r})}static fromDateTimes(t,n){let r=ef(t),i=ef(n);return Zu(r,i)??new e({start:r,end:i})}static after(t,n){let r=Yu.fromDurationLike(n),i=ef(t);return e.fromDateTimes(i,i.plus(r))}static before(t,n){let r=Yu.fromDurationLike(n),i=ef(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=w.fromISO(r,n),a=t.isValid}catch{a=!1}let o,s;try{o=w.fromISO(i,n),s=o.isValid}catch{s=!1}if(a&&s)return e.fromDateTimes(t,o);if(a){let r=Yu.fromISO(i,n);if(r.isValid)return e.after(t,r)}else if(s){let t=Yu.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(ef).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=Yu.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()})`:Xu}[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=es,t={}){return this.isValid?Il.create(this.s.loc.clone(t),e).formatInterval(this):Xu}toISO(e){return this.isValid?`${this.s.toISO(e)}/${this.e.toISO(e)}`:Xu}toISODate(){return this.isValid?`${this.s.toISODate()}/${this.e.toISODate()}`:Xu}toISOTime(e){return this.isValid?`${this.s.toISOTime(e)}/${this.e.toISOTime(e)}`:Xu}toFormat(e,{separator:t=` – `}={}){return this.isValid?`${this.s.toFormat(e)}${t}${this.e.toFormat(e)}`:Xu}toDuration(e,t){return this.isValid?this.e.diff(this.s,e,t):Yu.invalid(this.invalidReason)}mapEndpoints(t){return e.fromDateTimes(t(this.s),t(this.e))}},$u=class{static hasDST(e=xc.defaultZone){let t=w.now().setZone(e).set({month:12});return!e.isUniversal&&t.offset!==t.set({month:6}).offset}static isValidIANAZone(e){return js.isValidZone(e)}static normalizeZone(e){return ac(e,xc.defaultZone)}static getStartOfWeek({locale:e=null,locObj:t=null}={}){return(t||x.create(e)).getStartOfWeek()}static getMinimumDaysInFirstWeek({locale:e=null,locObj:t=null}={}){return(t||x.create(e)).getMinDaysInFirstWeek()}static getWeekendWeekdays({locale:e=null,locObj:t=null}={}){return(t||x.create(e)).getWeekendDays().slice()}static months(e=`long`,{locale:t=null,numberingSystem:n=null,locObj:r=null,outputCalendar:i=`gregory`}={}){return(r||x.create(t,n,i)).months(e)}static monthsFormat(e=`long`,{locale:t=null,numberingSystem:n=null,locObj:r=null,outputCalendar:i=`gregory`}={}){return(r||x.create(t,n,i)).months(e,!0)}static weekdays(e=`long`,{locale:t=null,numberingSystem:n=null,locObj:r=null}={}){return(r||x.create(t,n,null)).weekdays(e)}static weekdaysFormat(e=`long`,{locale:t=null,numberingSystem:n=null,locObj:r=null}={}){return(r||x.create(t,n,null)).weekdays(e,!0)}static meridiems({locale:e=null}={}){return x.create(e).meridiems()}static eras(e=`short`,{locale:t=null}={}){return x.create(t,null,`gregory`).eras(e)}static features(){return{relative:Uc(),localeWeek:Wc()}}};function ed(e,t){let n=e=>e.toUTC(0,{keepLocalTime:!0}).startOf(`day`).valueOf(),r=n(t)-n(e);return Math.floor(Yu.fromMillis(r).as(`days`))}function td(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=ed(e,t);return(n-n%7)/7}],[`days`,ed]],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 nd(e,t,n,r){let[i,a,o,s]=td(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=Yu.fromObject(a,r);return l.length>0?Yu.fromMillis(c,r).shiftTo(...l).plus(u):u}var rd=`missing Intl.DateTimeFormat.formatToParts support`;function C(e,t=e=>e){return{regex:e,deser:([e])=>t(lc(e))}}var id=`[ \xA0]`,ad=new RegExp(id,`g`);function od(e){return e.replace(/\./g,`\\.?`).replace(ad,id)}function sd(e){return e.replace(/\./g,``).replace(ad,` `).toLowerCase()}function cd(e,t){return e===null?null:{regex:RegExp(e.map(od).join(`|`)),deser:([n])=>e.findIndex(e=>sd(n)===sd(e))+t}}function ld(e,t){return{regex:e,deser:([,e,t])=>dl(e,t),groups:t}}function ud(e){return{regex:e,deser:([e])=>e}}function dd(e){return e.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,`\\$&`)}function fd(e,t){let n=fc(t),r=fc(t,`{2}`),i=fc(t,`{3}`),a=fc(t,`{4}`),o=fc(t,`{6}`),s=fc(t,`{1,2}`),c=fc(t,`{1,3}`),l=fc(t,`{1,6}`),u=fc(t,`{1,9}`),d=fc(t,`{2,4}`),f=fc(t,`{4,6}`),p=e=>({regex:RegExp(dd(e.val)),deser:([e])=>e,literal:!0}),m=(m=>{if(e.literal)return p(m);switch(m.val){case`G`:return cd(t.eras(`short`),0);case`GG`:return cd(t.eras(`long`),0);case`y`:return C(l);case`yy`:return C(d,ll);case`yyyy`:return C(a);case`yyyyy`:return C(f);case`yyyyyy`:return C(o);case`M`:return C(s);case`MM`:return C(r);case`MMM`:return cd(t.months(`short`,!0),1);case`MMMM`:return cd(t.months(`long`,!0),1);case`L`:return C(s);case`LL`:return C(r);case`LLL`:return cd(t.months(`short`,!1),1);case`LLLL`:return cd(t.months(`long`,!1),1);case`d`:return C(s);case`dd`:return C(r);case`o`:return C(c);case`ooo`:return C(i);case`HH`:return C(r);case`H`:return C(s);case`hh`:return C(r);case`h`:return C(s);case`mm`:return C(r);case`m`:return C(s);case`q`:return C(s);case`qq`:return C(r);case`s`:return C(s);case`ss`:return C(r);case`S`:return C(c);case`SSS`:return C(i);case`u`:return ud(u);case`uu`:return ud(s);case`uuu`:return C(n);case`a`:return cd(t.meridiems(),0);case`kkkk`:return C(a);case`kk`:return C(d,ll);case`W`:return C(s);case`WW`:return C(r);case`E`:case`c`:return C(n);case`EEE`:return cd(t.weekdays(`short`,!1),1);case`EEEE`:return cd(t.weekdays(`long`,!1),1);case`ccc`:return cd(t.weekdays(`short`,!0),1);case`cccc`:return cd(t.weekdays(`long`,!0),1);case`Z`:case`ZZ`:return ld(RegExp(`([+-]${s.source})(?::(${r.source}))?`),2);case`ZZZ`:return ld(RegExp(`([+-]${s.source})(${r.source})?`),2);case`z`:return ud(/[a-z_+-/]{1,256}?/i);case` `:return ud(/[^\S\n\r]/);default:return p(m)}})(e)||{invalidReason:rd};return m.token=e,m}var pd={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 md(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=pd[o];if(typeof s==`object`&&(s=s[a]),s)return{literal:!1,val:s}}function hd(e){return[`^${e.map(e=>e.regex).reduce((e,t)=>`${e}(${t.source})`,``)}$`,e]}function gd(e,t,n){let r=e.match(t);if(r){let e={},t=1;for(let i in n)if(Jc(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 _d(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 S(e.z)||(n=js.create(e.z)),S(e.Z)||(n||=new rc(e.Z),r=e.Z),S(e.q)||(e.M=(e.q-1)*3+1),S(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),S(e.u)||(e.S=tl(e.u)),[Object.keys(e).reduce((n,r)=>{let i=t(r);return i&&(n[i]=e[r]),n},{}),n,r]}var vd=null;function yd(){return vd||=w.fromMillis(1555555555555),vd}function bd(e,t){if(e.literal)return e;let n=Td(Il.macroTokenToFormatOpts(e.val),t);return n==null||n.includes(void 0)?e:n}function xd(e,t){return Array.prototype.concat(...e.map(e=>bd(e,t)))}var Sd=class{constructor(e,t){if(this.locale=e,this.format=t,this.tokens=xd(Il.parseFormat(t),e),this.units=this.tokens.map(t=>fd(t,e)),this.disqualifyingUnit=this.units.find(e=>e.invalidReason),!this.disqualifyingUnit){let[e,t]=hd(this.units);this.regex=RegExp(e,`i`),this.handlers=t}}explainFromTokens(e){if(this.isValid){let[t,n]=gd(e,this.regex,this.handlers),[r,i,a]=n?_d(n):[null,null,void 0];if(Jc(n,`a`)&&Jc(n,`H`))throw new Jo(`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 Cd(e,t,n){return new Sd(e,n).explainFromTokens(t)}function wd(e,t,n){let{result:r,zone:i,specificOffset:a,invalidReason:o}=Cd(e,t,n);return[r,i,a,o]}function Td(e,t){if(!e)return null;let n=Il.create(t,e).dtFormatter(yd()),r=n.formatToParts(),i=n.resolvedOptions();return r.map(t=>md(t,e,i))}var Ed=`Invalid DateTime`,Dd=864e13;function Od(e){return new Sc(`unsupported zone`,`the zone "${e.name}" is not supported`)}function kd(e){return e.weekData===null&&(e.weekData=Ac(e.c)),e.weekData}function Ad(e){return e.localWeekData===null&&(e.localWeekData=Ac(e.c,e.loc.getMinDaysInFirstWeek(),e.loc.getStartOfWeek())),e.localWeekData}function jd(e,t){let n={ts:e.ts,zone:e.zone,c:e.c,o:e.o,loc:e.loc,invalid:e.invalid};return new w({...n,...t,old:n})}function Md(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 Nd(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 Pd(e,t,n){return Md(ol(e),t,n)}function Fd(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,al(r,i))+Math.trunc(t.days)+Math.trunc(t.weeks)*7},o=Yu.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]=Md(ol(a),n,e.zone);return o!==0&&(s+=o,c=e.zone.offset(s)),{ts:s,o:c}}function Id(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=w.fromObject(e,{...n,zone:r,specificOffset:a});return o?i:i.setZone(s)}else return w.invalid(new Sc(`unparsable`,`the input "${i}" can't be parsed as ${r}`))}function Ld(e,t,n=!0){return e.isValid?Il.create(x.create(`en-US`),{allowZ:n,forceSimple:!0}).formatDateTimeFromString(e,t):null}function Rd(e,t,n){let r=e.c.year>9999||e.c.year<0,i=``;if(r&&e.c.year>=0&&(i+=`+`),i+=Qc(e.c.year,r?6:4),n===`year`)return i;if(t){if(i+=`-`,i+=Qc(e.c.month),n===`month`)return i;i+=`-`}else if(i+=Qc(e.c.month),n===`month`)return i;return i+=Qc(e.c.day),i}function zd(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+=Qc(e.c.hour),o===`hour`)break;if(t){if(c+=`:`,c+=Qc(e.c.minute),o===`minute`)break;s&&(c+=`:`,c+=Qc(e.c.second))}else{if(c+=Qc(e.c.minute),o===`minute`)break;s&&(c+=Qc(e.c.second))}if(o===`second`)break;s&&(!r||e.c.millisecond!==0)&&(c+=`.`,c+=Qc(e.c.millisecond,3))}return i&&(e.isOffsetFixed&&e.offset===0&&!a?c+=`Z`:e.o<0?(c+=`-`,c+=Qc(Math.trunc(-e.o/60)),c+=`:`,c+=Qc(Math.trunc(-e.o%60))):(c+=`+`,c+=Qc(Math.trunc(e.o/60)),c+=`:`,c+=Qc(Math.trunc(e.o%60)))),a&&(c+=`[`+e.zone.ianaName+`]`),c}var Bd={month:1,day:1,hour:0,minute:0,second:0,millisecond:0},Vd={weekNumber:1,weekday:1,hour:0,minute:0,second:0,millisecond:0},Hd={ordinal:1,hour:0,minute:0,second:0,millisecond:0},Ud=[`year`,`month`,`day`,`hour`,`minute`,`second`,`millisecond`],Wd=[`weekYear`,`weekNumber`,`weekday`,`hour`,`minute`,`second`,`millisecond`],Gd=[`year`,`ordinal`,`hour`,`minute`,`second`,`millisecond`];function Kd(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 Yo(e);return t}function qd(e){switch(e.toLowerCase()){case`localweekday`:case`localweekdays`:return`localWeekday`;case`localweeknumber`:case`localweeknumbers`:return`localWeekNumber`;case`localweekyear`:case`localweekyears`:return`localWeekYear`;default:return Kd(e)}}function Jd(e){if(Qd===void 0&&(Qd=xc.now()),e.type!==`iana`)return e.offset(Qd);let t=e.name,n=$d.get(t);return n===void 0&&(n=e.offset(Qd),$d.set(t,n)),n}function Yd(e,t){let n=ac(t.zone,xc.defaultZone);if(!n.isValid)return w.invalid(Od(n));let r=x.fromObject(t),i,a;if(S(e.year))i=xc.now();else{for(let t of Ud)S(e[t])&&(e[t]=Bd[t]);let t=Lc(e)||Rc(e);if(t)return w.invalid(t);let r=Jd(n);[i,a]=Pd(e,r,n)}return new w({ts:i,zone:n,loc:r,o:a})}function Xd(e,t,n){let r=S(n.round)?!0:n.round,i=S(n.rounding)?`trunc`:n.rounding,a=(e,a)=>(e=nl(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 Zd(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 Qd,$d=new Map,w=class e{constructor(e){let t=e.zone||xc.defaultZone,n=e.invalid||(Number.isNaN(e.ts)?new Sc(`invalid input`):null)||(t.isValid?null:Od(t));this.ts=S(e.ts)?xc.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=zc(e.o)&&!e.old?e.o:t.offset(this.ts);r=Nd(this.ts,a),n=Number.isNaN(r.year)?new Sc(`invalid input`):null,r=n?null:r,i=n?null:a}this._zone=t,this.loc=e.loc||x.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]=Zd(arguments),[n,r,i,a,o,s,c]=t;return Yd({year:n,month:r,day:i,hour:a,minute:o,second:s,millisecond:c},e)}static utc(){let[e,t]=Zd(arguments),[n,r,i,a,o,s,c]=t;return e.zone=rc.utcInstance,Yd({year:n,month:r,day:i,hour:a,minute:o,second:s,millisecond:c},e)}static fromJSDate(t,n={}){let r=Hc(t)?t.valueOf():NaN;if(Number.isNaN(r))return e.invalid(`invalid input`);let i=ac(n.zone,xc.defaultZone);return i.isValid?new e({ts:r,zone:i,loc:x.fromObject(n)}):e.invalid(Od(i))}static fromMillis(t,n={}){if(!zc(t))throw new Xo(`fromMillis requires a numerical input, but received a ${typeof t} with value ${t}`);return t<-864e13||t>Dd?e.invalid(`Timestamp out of range`):new e({ts:t,zone:ac(n.zone,xc.defaultZone),loc:x.fromObject(n)})}static fromSeconds(t,n={}){if(zc(t))return new e({ts:t*1e3,zone:ac(n.zone,xc.defaultZone),loc:x.fromObject(n)});throw new Xo(`fromSeconds requires a numerical input`)}static fromObject(t,n={}){t||={};let r=ac(n.zone,xc.defaultZone);if(!r.isValid)return e.invalid(Od(r));let i=x.fromObject(n),a=pl(t,qd),{minDaysInFirstWeek:o,startOfWeek:s}=Pc(a,i),c=xc.now(),l=S(n.specificOffset)?r.offset(c):n.specificOffset,u=!S(a.ordinal),d=!S(a.year),f=!S(a.month)||!S(a.day),p=d||f,m=a.weekYear||a.weekNumber;if((p||u)&&m)throw new Jo(`Can't mix weekYear/weekNumber units with year/month/day or ordinals`);if(f&&u)throw new Jo(`Can't mix ordinal dates with month/day`);let ee=m||a.weekday&&!p,te,ne,re=Nd(c,l);ee?(te=Wd,ne=Vd,re=Ac(re,o,s)):u?(te=Gd,ne=Hd,re=Mc(re)):(te=Ud,ne=Bd);let ie=!1;for(let e of te){let t=a[e];S(t)?ie?a[e]=ne[e]:a[e]=re[e]:ie=!0}let ae=(ee?Fc(a,o,s):u?Ic(a):Lc(a))||Rc(a);if(ae)return e.invalid(ae);let[oe,se]=Pd(ee?jc(a,o,s):u?Nc(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]=Du(e);return Id(n,r,t,`ISO 8601`,e)}static fromRFC2822(e,t={}){let[n,r]=Ou(e);return Id(n,r,t,`RFC 2822`,e)}static fromHTTP(e,t={}){let[n,r]=ku(e);return Id(n,r,t,`HTTP`,t)}static fromFormat(t,n,r={}){if(S(t)||S(n))throw new Xo(`fromFormat requires an input string and a format`);let{locale:i=null,numberingSystem:a=null}=r,[o,s,c,l]=wd(x.fromOpts({locale:i,numberingSystem:a,defaultToEN:!0}),t,n);return l?e.invalid(l):Id(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]=Iu(e);return Id(n,r,t,`SQL`,e)}static invalid(t,n=null){if(!t)throw new Xo(`need to specify a reason the DateTime is invalid`);let r=t instanceof Sc?t:new Sc(t,n);if(xc.throwOnInvalid)throw new Go(r);return new e({invalid:r})}static isDateTime(e){return e&&e.isLuxonDateTime||!1}static parseFormatForOpts(e,t={}){let n=Td(e,x.fromObject(t));return n?n.map(e=>e?e.val:null).join(``):null}static expandFormat(e,t={}){return xd(Il.parseFormat(e),x.fromObject(t)).map(e=>e.val).join(``)}static resetCache(){Qd=void 0,$d.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?kd(this).weekYear:NaN}get weekNumber(){return this.isValid?kd(this).weekNumber:NaN}get weekday(){return this.isValid?kd(this).weekday:NaN}get isWeekend(){return this.isValid&&this.loc.getWeekendDays().includes(this.weekday)}get localWeekday(){return this.isValid?Ad(this).weekday:NaN}get localWeekNumber(){return this.isValid?Ad(this).weekNumber:NaN}get localWeekYear(){return this.isValid?Ad(this).weekYear:NaN}get ordinal(){return this.isValid?Mc(this.c).ordinal:NaN}get monthShort(){return this.isValid?$u.months(`short`,{locObj:this.loc})[this.month-1]:null}get monthLong(){return this.isValid?$u.months(`long`,{locObj:this.loc})[this.month-1]:null}get weekdayShort(){return this.isValid?$u.weekdays(`short`,{locObj:this.loc})[this.weekday-1]:null}get weekdayLong(){return this.isValid?$u.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=ol(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=Nd(s,a),u=Nd(c,o);return l.hour===u.hour&&l.minute===u.minute&&l.second===u.second&&l.millisecond===u.millisecond?[jd(this,{ts:s}),jd(this,{ts:c})]:[this]}get isInLeapYear(){return rl(this.year)}get daysInMonth(){return al(this.year,this.month)}get daysInYear(){return this.isValid?il(this.year):NaN}get weeksInWeekYear(){return this.isValid?cl(this.weekYear):NaN}get weeksInLocalWeekYear(){return this.isValid?cl(this.localWeekYear,this.loc.getMinDaysInFirstWeek(),this.loc.getStartOfWeek()):NaN}resolvedLocaleOptions(e={}){let{locale:t,numberingSystem:n,calendar:r}=Il.create(this.loc.clone(e),e).resolvedOptions(this);return{locale:t,numberingSystem:n,outputCalendar:r}}toUTC(e=0,t={}){return this.setZone(rc.instance(e),t)}toLocal(){return this.setZone(xc.defaultZone)}setZone(t,{keepLocalTime:n=!1,keepCalendarTime:r=!1}={}){if(t=ac(t,xc.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]=Pd(r,n,t)}return jd(this,{ts:e,zone:t})}else return e.invalid(Od(t))}reconfigure({locale:e,numberingSystem:t,outputCalendar:n}={}){let r=this.loc.clone({locale:e,numberingSystem:t,outputCalendar:n});return jd(this,{loc:r})}setLocale(e){return this.reconfigure({locale:e})}set(e){if(!this.isValid)return this;let t=pl(e,qd),{minDaysInFirstWeek:n,startOfWeek:r}=Pc(t,this.loc),i=!S(t.weekYear)||!S(t.weekNumber)||!S(t.weekday),a=!S(t.ordinal),o=!S(t.year),s=!S(t.month)||!S(t.day),c=o||s,l=t.weekYear||t.weekNumber;if((c||a)&&l)throw new Jo(`Can't mix weekYear/weekNumber units with year/month/day or ordinals`);if(s&&a)throw new Jo(`Can't mix ordinal dates with month/day`);let u;i?u=jc({...Ac(this.c,n,r),...t},n,r):S(t.ordinal)?(u={...this.toObject(),...t},S(t.day)&&(u.day=Math.min(al(u.year,u.month),u.day))):u=Nc({...Mc(this.c),...t});let[d,f]=Pd(u,this.o,this.zone);return jd(this,{ts:d,o:f})}plus(e){if(!this.isValid)return this;let t=Yu.fromDurationLike(e);return jd(this,Fd(this,t))}minus(e){if(!this.isValid)return this;let t=Yu.fromDurationLike(e).negate();return jd(this,Fd(this,t))}startOf(e,{useLocaleWeeks:t=!1}={}){if(!this.isValid)return this;let n={},r=Yu.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?Il.create(this.loc.redefaultToEN(t)).formatDateTimeFromString(this,e):Ed}toLocaleString(e=es,t={}){return this.isValid?Il.create(this.loc.clone(t),e).formatDateTime(this):Ed}toLocaleParts(e={}){return this.isValid?Il.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=Kd(a);let o=e===`extended`,s=Rd(this,o,a);return Ud.indexOf(a)>=3&&(s+=`T`),s+=zd(this,o,t,n,r,i,a),s}toISODate({format:e=`extended`,precision:t=`day`}={}){return this.isValid?Rd(this,e===`extended`,Kd(t)):null}toISOWeekDate(){return Ld(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=Kd(o),(r&&Ud.indexOf(o)>=3?`T`:``)+zd(this,a===`extended`,t,e,n,i,o)):null}toRFC2822(){return Ld(this,`EEE, dd LLL yyyy HH:mm:ss ZZZ`,!1)}toHTTP(){return Ld(this.toUTC(),`EEE, dd LLL yyyy HH:mm:ss 'GMT'`)}toSQLDate(){return this.isValid?Rd(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`)),Ld(this,r,!0)}toSQL(e={}){return this.isValid?`${this.toSQLDate()} ${this.toSQLTime(e)}`:null}toString(){return this.isValid?this.toISO():Ed}[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 Yu.invalid(`created by diffing an invalid DateTime`);let r={locale:this.locale,numberingSystem:this.numberingSystem,...n},i=Gc(t).map(Yu.normalizeUnit),a=e.valueOf()>this.valueOf(),o=nd(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?Qu.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),Xd(n,this.plus(r),{...t,numeric:`always`,units:i,unit:a})}toRelativeCalendar(t={}){return this.isValid?Xd(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 Xo(`min requires all arguments be DateTimes`);return Kc(t,e=>e.valueOf(),Math.min)}static max(...t){if(!t.every(e.isDateTime))throw new Xo(`max requires all arguments be DateTimes`);return Kc(t,e=>e.valueOf(),Math.max)}static fromFormatExplain(e,t,n={}){let{locale:r=null,numberingSystem:i=null}=n;return Cd(x.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 Sd(x.fromOpts({locale:n,numberingSystem:r,defaultToEN:!0}),e)}static fromFormatParser(t,n,r={}){if(S(t)||S(n))throw new Xo(`fromFormatParser requires an input string and a format parser`);let{locale:i=null,numberingSystem:a=null}=r,o=x.fromOpts({locale:i,numberingSystem:a,defaultToEN:!0});if(!o.equals(n.locale))throw new Xo(`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):Id(s,c,r,`format ${n.format}`,t,l)}static get DATE_SHORT(){return es}static get DATE_MED(){return ts}static get DATE_MED_WITH_WEEKDAY(){return ns}static get DATE_FULL(){return rs}static get DATE_HUGE(){return is}static get TIME_SIMPLE(){return as}static get TIME_WITH_SECONDS(){return os}static get TIME_WITH_SHORT_OFFSET(){return ss}static get TIME_WITH_LONG_OFFSET(){return cs}static get TIME_24_SIMPLE(){return ls}static get TIME_24_WITH_SECONDS(){return us}static get TIME_24_WITH_SHORT_OFFSET(){return ds}static get TIME_24_WITH_LONG_OFFSET(){return fs}static get DATETIME_SHORT(){return ps}static get DATETIME_SHORT_WITH_SECONDS(){return ms}static get DATETIME_MED(){return hs}static get DATETIME_MED_WITH_SECONDS(){return gs}static get DATETIME_MED_WITH_WEEKDAY(){return _s}static get DATETIME_FULL(){return vs}static get DATETIME_FULL_WITH_SECONDS(){return ys}static get DATETIME_HUGE(){return bs}static get DATETIME_HUGE_WITH_SECONDS(){return xs}};function ef(e){if(w.isDateTime(e))return e;if(e&&e.valueOf&&zc(e.valueOf()))return w.fromJSDate(e);if(e&&typeof e==`object`)return w.fromObject(e);throw new Xo(`Unknown datetime argument: ${e}, of type ${typeof e}`)}var T=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[e.INVALID_METADATA_TARGET_KIND=5006]=`INVALID_METADATA_TARGET_KIND`,e[e.INVALID_METADATA_FIELD=5007]=`INVALID_METADATA_FIELD`,e[e.DUPLICATE_METADATA_FIELD=5008]=`DUPLICATE_METADATA_FIELD`,e}({}),E=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 tf(this.code,this.message,this.nodeOrToken)}get filepath(){return this.nodeOrToken.filepath}},tf=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,E.prototype)}get filepath(){return this.nodeOrToken.filepath}};function nf(e){return!!e.match(/(\p{L}|_|\p{M})/gu)}function rf(e){if(!e)return!1;let t=e[0];return t>=`0`&&t<=`9`}function af(e){let[t]=e;return rf(t)||nf(t)&&t.toLowerCase()>=`a`&&t.toLowerCase()<=`f`}function of(e){return nf(e)||rf(e)}function sf(e){let t=j(e);return t!==void 0&&t.length>0}function cf(e){return lf(e)}function lf(e){return e instanceof im&&e.expression instanceof rm}function uf(e){return!!e.bodyColon}function df(e){return e instanceof B&&e.op?.value===`~`&&D(e.expression)}function ff(e){return e===`-`||e===`<>`||e===`>`||e===`<`}function pf(e){if(!(e instanceof im)||!(e.expression instanceof tm)||e.expression.literal?.kind!==v.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(!af(t[e]))return!1;return!0}function mf(e){return pf(e)?!0:wf(e)&&e.expression.variable.value.toLowerCase()===`none`}function hf(e){if(Sf(e)||gf(e)||wf(e)&&[`true`,`false`,`null`].includes(e.expression.variable.value.toLowerCase())||e instanceof B&&To.includes(e.op?.value)&&gf(e.expression)||e instanceof Zp)return!0;if(!e||!Tf(e))return!1;let t=Uf(e);return t.length===2||t.length===3}function gf(e){return e instanceof B?To.includes(e.op.value)?gf(e.expression):!1:e instanceof im&&e.expression instanceof tm&&e.expression.literal?.kind===v.NUMERIC_LITERAL}function _f(e){if(!(e instanceof B)||!ff(e.op?.value))return!1;let t=j(e.expression);return t!==void 0&&t.length>0}function vf(e){return e instanceof Qp&&e.elementList.every(D)}function yf(e){if(!(e instanceof W||O(e)||e instanceof im||e instanceof om))return!1;for(;e instanceof W||e instanceof om;)if(e instanceof W){if(e.callee===void 0||e.argumentList===void 0||!e.argumentList.elementList.every(e=>gf(e)||Sf(e)||wf(e)))return!1;e=e.callee}else if(e instanceof om){if(e.array===void 0||e.indexer===void 0||!e.indexer.elementList.every(e=>!e.colon&&!e.value&&gf(e.name)))return!1;e=e.array}let t=j(e);return t!==void 0&&t.length>0}function bf(e){return Sf(e)||pf(e)}function xf(e){let t={},r=[];return e?(e.elementList.forEach(e=>{if(!e.name)return;if(e.name instanceof im){r.push(new E(T.INVALID_SETTINGS,`A setting name must be a stream of identifiers`,e.name));return}let n=zf(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 Sf(e){return e instanceof im&&(e.expression instanceof rm&&e.expression.variable instanceof Va&&e.expression.variable.kind===v.QUOTED_STRING||e.expression instanceof tm&&e.expression.literal?.kind===v.STRING_LITERAL)}function D(e){return e instanceof im&&e.expression instanceof rm&&e.expression.variable instanceof Va}function Cf(e){return e?e instanceof nm:!1}function wf(e){return e instanceof im&&e.expression instanceof rm&&e.expression.variable?.kind===v.IDENTIFIER}function O(e){return e instanceof Yp&&e.leftExpression instanceof I&&e.rightExpression instanceof I&&e.op?.value===`.`}function Tf(e){return D(e)?!0:O(e)&&D(e.rightExpression)&&Tf(e.leftExpression)}function k(e,t){return e instanceof R&&e.isKind(t)}function Ef(e){return e instanceof Gp}function Df(e,t){return e instanceof Kp&&(t===void 0||e.isKind(t))}function Of(e){return e instanceof L}function A(e,...t){return e instanceof V&&e.parent instanceof R&&e.parent.isKind(...t)}function kf(e,t){let n=e.parent;return n instanceof R&&n.isKind(t)&&!!n.body&&n.body.strictlyContains(e)}function Af(e,t){let n=e.parentOfKind(V);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 jf(e){return!!e.parentOfKind(U)}function Mf(e,t){let n=e.parentOfKind(z);return!n||(n.name instanceof im?N(n.name):zf(n.name))?.toLowerCase()!==t?!1:!!n.value?.containsEq(e)}function Nf(e){return!(e instanceof Yp)||!ff(e.op?.value)?!1:Wf(e.leftExpression)!==void 0&&Wf(e.rightExpression)!==void 0}function Pf(e){let t=Wf(e.leftExpression),n=Wf(e.rightExpression);if(t===void 0||n===void 0)return!1;let{tupleElements:r}=t,{tupleElements:i}=n;return r?.length===i?.length}function Ff(e){return e instanceof im&&e.expression instanceof rm||e instanceof Zp}function If(e){if(D(e))return e;if(O(e)){let t=e.rightExpression;if(t&&D(t))return t}}function Lf(e){let t=e.parentNode;return!O(t)||t.rightExpression!==e?!1:!(O(t.parentNode)&&t.parentNode.leftExpression===t)}function Rf(e){if(D(e))return e.expression.variable}function zf(e){if(e===void 0)return;let t=e.identifiers.map(e=>e.value).join(` `);if(t!==``)return t}function Bf(e){if(!(e instanceof R))return;let t=j(e?.name);return t===void 0?void 0:t.join(`.`)}function Vf(e){return e.elementList.length===0}function Hf(e){return e?.body?e.body instanceof H?e.body.body:[e.body]:[]}function Uf(e){if(!e)return;if(!O(e))return[e];let t=Uf(e.leftExpression);if(t)return t.push(e.rightExpression),t}function j(e){if(e===void 0)return;let t=Uf(e);if(!t)return;let n=[];for(let e of t){let t=N(e);if(typeof t!=`string`)return;n.push(t)}return n}function Wf(e){if(e===void 0)return;let t=Uf(e);if(!t||t.length===0)return;let n=[];if(!D(g(t))){let e=t.pop();if(vf(e))n=e.elementList;else return}let r=t;if(r.every(D))return{variables:r,tupleElements:n}}function Gf(e){if(Ff(e))return e instanceof Zp?{functional:[e],nonFunctional:[]}:{functional:[],nonFunctional:[e]};if(e instanceof Qp&&e.elementList.every(Ff))return{functional:e.elementList.filter(e=>e instanceof Zp),nonFunctional:e.elementList.filter(D)}}function M(e){if(Sf(e))return e.expression instanceof rm?e?.expression?.variable?.value:e.expression.literal.value}function Kf(e){return e instanceof im&&e.expression instanceof tm&&e.expression.literal?.kind===v.NUMERIC_LITERAL?Number(e.expression.literal.value):null}function qf(e){if(!(e instanceof W)||!e.callee)return;let t=Uf(e.callee);if(!t||t.length===0||!t.every(D))return;let n=[];return vf(e.argumentList)&&(n=[...e.argumentList.elementList]),{variables:t,args:n}}function N(e){if(D(e))return e.expression.variable.value}function Jf(e){let t=e?.expression.variable?.value;return t===void 0?void 0:t}function Yf(e){return wf(e)?e.expression.variable?.value?.toLowerCase()===`null`:e instanceof am}function Xf(e){return M(e)===``}function Zf(e){return e instanceof Zp}function Qf(e){let t=Kf(e);if(t!==null)return t;if(gf(e)&&e instanceof B&&e.expression){let t=e.op?.value,n=Kf(e.expression);if(n!==null)return t===`-`?-n:n}return null}function $f(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;let t=Qf(e);if(t!==null)return t;let n=M(e);if(n!==void 0){let e=Number(n);if(!isNaN(e))return e}return null}function ep(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;let t=Qf(e);if(t!==null)return Number.isInteger(t)?t:null;let n=M(e);if(n!==void 0){let e=Number(n);if(!isNaN(e)&&Number.isInteger(e))return e}return null}var tp=[`true`,`yes`,`y`,`t`,`1`],np=[`false`,`no`,`n`,`f`,`0`];function rp(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 tp.includes(t)?!0:np.includes(t)?!1:null}if(wf(e)){let t=e.expression.variable?.value?.toLowerCase();if(t===`true`)return!0;if(t===`false`)return!1}let t=Kf(e);if(t===0)return!1;if(t===1)return!0;let n=M(e)?.toLowerCase();if(n){if(tp.includes(n))return!0;if(np.includes(n))return!1}return null}function ip(e){if(e==null)return null;if(typeof e==`string`)return e;let t=j(e);return t?g(t):M(e)??null}function ap(e){if(e==null)return null;if(typeof e==`string`)return e;if(typeof e==`number`||typeof e==`boolean`)return e.toString();let t=M(e)??null??$f(e)??rp(e);return t===null?null:t.toString()}var op=[`yyyy-MM-dd`,`M/d/yyyy`,`d MMM yyyy`,`MMM d, yyyy`],sp=[`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`],cp=[`HH:mm:ss`,`HH:mm:ssZZ`,`HH:mm:ss.SSS`,`HH:mm:ss.SSSZZ`];function lp(e){if(e==null)return null;let t=typeof e==`string`?e:M(e)??null;if(t===null)return null;for(let e of cp){let n=w.fromFormat(t,e,{setZone:!0});if(n.isValid)return n.toISOTime({suppressMilliseconds:!0,includeOffset:r(n)})}for(let e of op){let n=w.fromFormat(t,e,{setZone:!0});if(n.isValid)return n.toISODate()}for(let e of sp){let n=w.fromFormat(t,e,{setZone:!0});if(n.isValid)return n.toISO({suppressMilliseconds:!0,includeOffset:r(n)})}let n=w.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 up(e){return e instanceof B?`${e.op?.value}${up(e.expression)}`:e.expression.literal.value}function dp(e){return e instanceof B?e.op?.value===`-`?-dp(e.expression):dp(e.expression):Number.parseFloat(e.expression.literal.value)}function P(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 fp(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 fp(e){let t=M(e);return!t||t.length===0?{schemaName:[],name:``}:{name:t[t.length-1],schemaName:t.slice(0,-1)}}function pp(e){if(pf(e))return e.expression.literal.value;if(Cf(e)&&P(e)?.toLowerCase()===`none`)return Co}function mp(e){if(e){if(xf(e)){let t=N(e);if(t!==void 0)return{value:t,type:`string`}}if(gf(e))return{type:`number`,value:up(e)};if(Cf(e))return{value:e.expression.variable.value.toLowerCase(),type:`boolean`};if(e instanceof Xp&&e.value)return{value:e.value.value,type:`expression`};if(wf(e)){let t=Hf(e)?.at(-1),n=t?P(t):void 0;if(n!==void 0)return{value:n,type:`string`}}}}function hp(e,t){let r=``,i=null;if(t instanceof G){if(i=(t.argumentList?.elementList??[]).map(e=>gf(e)?lp(e):xf(e)?N(e):P(e)).join(`,`),r=`(${i})`,!t.callee)return new n({schemaName:null,type_name:``,args:i});t=t.callee}for(;t instanceof G||t instanceof am;)if(t instanceof G){if(r=`(${(t.argumentList?.elementList??[]).map(e=>gf(e)?lp(e):xf(e)?N(e):P(e)).join(`,`)})${r}`,!t.callee)break;t=t.callee}else if(t instanceof am){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}=fp(t);return o.length>1?new n({schemaName:o[0]??null,type_name:`${a}${r}`,args:i},[new E(T.UNSUPPORTED,`Nested schema is not supported`,t)]):new n({schemaName:o.length===0?null:o[0],type_name:`${a}${r}`,args:i})}function gp(e,t){let n=new Set(t.map(e=>e.toLowerCase())),r={};for(let[t,i]of Object.entries(e)){if(n.has(t.toLowerCase()))continue;let e=i[0],a=_p(e.value);a!==void 0&&(r[t]=a)}return r}function _p(e){if(!e)return;let t=N(e);if(t!==void 0)return t;let n=pp(e);if(n!==void 0)return n}var I=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.Metadata=`Metadata`,e.Program=`Program`,e}({}),vp={Table:`Table`,Enum:`Enum`,TableGroup:`TableGroup`,TablePartial:`TablePartial`,Note:`Note`,Schema:`Schema`},yp=function(e){return e.Table=`Table`,e.Column=`Column`,e.TableGroup=`TableGroup`,e.Note=`Note`,e}({}),bp=class{constructor(){this.id=0}reset(){this.id=0}nextId(){return this.id++}},xp=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 F(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()}},Sp=class e extends xp{constructor({name:e,parent:t},n,r){super({kind:`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(`.`)===y}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}},Cp=class extends xp{constructor({declaration:e,name:t},n,r){super({kind:`Enum`,declaration:e,name:t},n,r)}get canBeImported(){return!0}get originalSymbol(){return this}},wp=class extends xp{constructor({declaration:e,name:t},n,r){super({kind:`Enum field`,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=dp(N(i));if(a)return{value:a,token:F(r)}}},Tp=class extends xp{constructor({declaration:e,name:t},n,r){super({kind:`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 Vp))}mergedColumns(e){return this.members(e).filter(e=>e.isKind(`Column`))}partialInjections(e){return this.members(e).filter(e=>e.isKind(`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=dp(N(i));if(a)return{value:a,token:F(r)}}headercolor(e){if(!this.declaration)return;let n=e.nodeSettings(this.declaration).getFiltered(t);return n?.[i.HeaderColor]?.length?pp(n[i.HeaderColor].at(0)?.value):void 0}refs(e){return this.metadata(e).filter(e=>e.kind===ym.Ref)}checks(e){return this.metadata(e).filter(e=>e.kind===ym.TableChecks)}indexes(e){return this.metadata(e).filter(e=>e.kind===ym.Indexes)}records(e){return this.metadata(e).filter(e=>e.kind===ym.Records)}resolvedPartials(e){return this.partialInjections(e).flatMap(n=>{if(!(n.declaration instanceof H)||!df(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===ym.Indexes));return[...t,...n]}mergedChecks(e){let t=this.checks(e),n=this.resolvedPartials(e).flatMap(t=>t.metadata(e).filter(e=>e.kind===ym.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=pp(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=dp(N(a));if(o)return{value:o,token:F(i)}},r=n(this);for(let t of this.resolvedPartials(e)){let e=n(t);e&&(r=e)}return r}},Ep=class extends xp{constructor({declaration:e,name:t},n,r){super({kind:`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}isIncrementSet(e){return this.declaration?!!e.nodeSettings(this.declaration).getFiltered(t)?.[i.Increment]?.length:!1}increment(e){return this.isIncrementSet(e)||Ho(this.type(e)?.name??``)}default(e){if(!this.declaration)return;let n=e.nodeSettings(this.declaration).getFiltered(t)?.[i.Default]?.at(0)?.value;if(n)return mp(n)}type(e){if(!(this.declaration instanceof H))return;let n=hp(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 Cp?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===ym.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=dp(N(i));if(a)return{value:a,token:F(r)}}},Dp=class extends xp{constructor({declaration:e,name:t},n,r){super({kind:`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(`TableGroup field`))}color(e){if(!this.declaration)return;let n=e.nodeSettings(this.declaration).getFiltered(t);return n?.color?.length?pp(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=dp(N(i));if(a)return{value:a,token:F(r)}}},Op=class extends xp{constructor({declaration:e,name:t},n,r){super({kind:`TableGroup field`,declaration:e,name:t},n,r)}get canBeImported(){return!1}get originalSymbol(){return this}},kp=class extends xp{constructor({declaration:e,name:t},n,r){super({kind:`Note`,declaration:e,name:t},n,r)}get canBeImported(){return!0}get originalSymbol(){return this}},Ap=class extends xp{constructor({declaration:e,name:t},n,r){super({kind:`TablePartial`,declaration:e,name:t},n,r)}get canBeImported(){return!0}get originalSymbol(){return this}},jp=class extends xp{constructor({declaration:e,name:t},n,r){super({kind:`PartialInjection`,declaration:e,name:t},n,r)}get canBeImported(){return!1}get originalSymbol(){return this}},Mp=class extends xp{constructor({declaration:e,name:t},n,r){super({kind:`DiagramView`,declaration:e,name:t},n,r)}get canBeImported(){return!1}get originalSymbol(){return this}},Np=class extends xp{constructor({declaration:e,name:t},n,r){super({kind:`DiagramView top-level wildcard`,declaration:e,name:t},n,r)}get canBeImported(){return!1}get originalSymbol(){return this}},Pp=class extends xp{constructor({declaration:e,name:t},n,r){super({kind:`DiagramView table`,declaration:e,name:t},n,r)}get canBeImported(){return!1}get originalSymbol(){return this}},Fp=class extends xp{constructor({declaration:e,name:t},n,r){super({kind:`DiagramView tablegroup`,declaration:e,name:t},n,r)}get canBeImported(){return!1}get originalSymbol(){return this}},Ip=class extends xp{constructor({declaration:e,name:t},n,r){super({kind:`DiagramView note`,declaration:e,name:t},n,r)}get canBeImported(){return!1}get originalSymbol(){return this}},Lp=class extends xp{constructor({declaration:e,name:t},n,r){super({kind:`DiagramView schema`,declaration:e,name:t},n,r)}get canBeImported(){return!1}get originalSymbol(){return this}},Rp=class extends xp{constructor({declaration:e,name:t},n,r){super({kind:`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 Sp&&r.inNestedSchema(e,t))return!0;return!1}},zp=class extends xp{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}},Bp=class extends xp{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(Wp);return!e||e.isReuse}get originalSymbol(){return this.usedSymbol?this.usedSymbol.originalSymbol:this}},Vp=class extends Ep{constructor({declaration:e,name:t,injectionDeclaration:n},r,i){super({declaration:e,name:t},r,i),this.injectionDeclaration=n,this.name=t}},Hp=class{constructor(){this.id=0}reset(){this.id=0}nextId(){return this.id++}},L=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 Va?Ka(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 Va?Ga(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 z||e instanceof R)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}},Up=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}({}),R=class extends L{constructor({body:e=[],eof:t,source:n},r,i){super(r,`<program>`,i,[...e,t]),this.source=n,this.body=e,this.eof=t}get declarations(){return this.body.filter(e=>e.kind===`<element-declaration>`)}get uses(){return this.body.filter(e=>e.kind===`<use-declaration>`)}},Wp=class extends L{constructor({useKeyword:e,specifiers:t,fromKeyword:n,importPath:r},i,a){super(i,`<use-declaration>`,a,[e,t,n,r]),this.useKeyword=e,this.specifiers=t,this.fromKeyword=n,this.importPath=r}get isReuse(){return Qa(this.useKeyword)}},Gp=class extends L{constructor({importKind:e,name:t,asKeyword:n,alias:r},i,a){super(i,`<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(I).find(t=>t.toLowerCase()===e)}},Kp=class extends L{constructor({openBrace:e,specifiers:t=[],closeBrace:n},r,i){super(r,`<use-specifier-list>`,i,[e,...t,n]),this.openBrace=e,this.specifiers=t,this.closeBrace=n}},z=class e extends L{constructor({type:t,targetKind:n,name:r,as:i,alias:a,attributeList:o,bodyColon:s,body:c},l,u){if(super(l,`<element-declaration>`,u,[t,n,r,i,a,o,s,c]),c&&s&&!(c instanceof H||c instanceof e))throw Error(`If an element has a simple body, it must be a function application node`);this.type=t,this.targetKind=n,this.name=r,this.as=i,this.alias=a,this.attributeList=o,this.bodyColon=s,this.body=c}isKind(...e){return e.some(e=>this.type?.value.toLowerCase()===e)}getElementKind(){return Object.values(r).find(e=>this.isKind(e))}},qp=class extends L{constructor({identifiers:e=[]},t,n){super(t,`<identifier-stream>`,n,e||[]),this.identifiers=e}},B=class extends L{constructor({name:e,colon:t,value:n},r,i){super(r,`<attribute>`,i,[e,t,n]),this.name=e,this.value=n,this.colon=t}},V=class extends L{constructor({op:e,expression:t},n,r){super(n,`<prefix-expression>`,r,[e,t]),this.op=e,this.expression=t}},Jp=class extends L{constructor({op:e,leftExpression:t,rightExpression:n},r,i){super(r,`<infix-expression>`,i,[t,e,n]),this.op=e,this.leftExpression=t,this.rightExpression=n}},Yp=class extends L{constructor({op:e,expression:t},n,r){super(n,`<postfix-expression>`,r,[t,e]),this.op=e,this.expression=t}},Xp=class extends L{constructor({value:e},t,n){super(t,`<function-expression>`,n,[e]),this.value=e}},H=class extends L{constructor({callee:e,args:t=[]},n,r){super(n,`<function-application>`,r,[e,...t]),this.callee=e,this.args=t}},U=class extends L{constructor({blockOpenBrace:e,body:t=[],blockCloseBrace:n},r,i){super(r,`<block-expression>`,i,[e,...t,n]),this.blockOpenBrace=e,this.body=t,this.blockCloseBrace=n}},W=class extends L{constructor({listOpenBracket:e,elementList:t=[],commaList:n=[],listCloseBracket:r},i,a){super(i,`<list-expression>`,a,[e,...om(t,n),r]),this.listOpenBracket=e,this.elementList=t,this.commaList=n,this.listCloseBracket=r}},Zp=class extends L{constructor({tupleOpenParen:e,elementList:t=[],commaList:n=[],tupleCloseParen:r},i,a){super(i,`<tuple-expression>`,a,[e,...om(t,n),r]),this.tupleOpenParen=e,this.elementList=t,this.commaList=n,this.tupleCloseParen=r}},Qp=class extends L{constructor({elementList:e=[],commaList:t=[]},n,r){super(n,`<comma-expression>`,r,[...om(e,t)]),this.elementList=e,this.commaList=t}},$p=class extends Zp{constructor({groupOpenParen:e,expression:t,groupCloseParen:n},r,i){super({tupleOpenParen:e,elementList:t&&[t],commaList:[],tupleCloseParen:n},r,i),this.kind=`<group-expression>`}},G=class extends L{constructor({callee:e,argumentList:t},n,r){super(n,`<call-expression>`,r,[e,t]),this.callee=e,this.argumentList=t}},em=class extends L{constructor({literal:e},t,n){super(t,`<literal>`,n,[e]),this.literal=e}},tm=class extends L{constructor({token:e},t,n){super(t,`<wildcard>`,n,[e]),this.token=e}},nm=class extends L{constructor({variable:e},t,n){super(t,`<variable>`,n,[e]),this.variable=e}},rm=class extends L{constructor({expression:e},t,n){super(t,`<primary-expression>`,n,[e]),this.expression=e}},im=class extends L{constructor({prevToken:e},t,n){let r=Va.create(v.SPACE,n,e.endPos,e.endPos,` `,!1);super(t,`<dummy>`,n,[r])}},am=class extends L{constructor({expression:e,indexer:t},n,r){super(n,`<array>`,r,[e,t]),this.array=e,this.indexer=t}};function om(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?br(La(e,t)):br(La(t,e))).filter(e=>e!==null)}function sm(e,t,n){let r=t,i=e;if(i instanceof G&&i.argumentList&&(r=[i.argumentList,...r],i=i.callee),!i||!Cf(i)||r.length===0)return;let a=[...r],o=Lf(i),s=a.pop();if(!(s instanceof U))return;let c=g(a)instanceof W?a.pop():void 0;if(a.length===3){let e=Lf(a[1]);return!e||!Ja(e)?void 0:n.create(z,{type:o,name:a[0],as:e,alias:a[2],attributeList:c,body:s})}if(a.length===1)return n.create(z,{type:o,name:a[0],attributeList:c,body:s});if(a.length===0)return n.create(z,{type:o,attributeList:c,body:s})}function K(e){e&&(e instanceof Va?cm(e):lm(e))}function cm(e){e.kind!==v.EOF&&(e.isInvalid=!0)}function lm(e){if(e instanceof z)K(e.type),K(e.targetKind),K(e.name),K(e.as),K(e.alias),K(e.bodyColon),K(e.attributeList),K(e.body);else if(e instanceof qp)e.identifiers.forEach(K);else if(e instanceof B)K(e.name),K(e.colon),K(e.value);else if(e instanceof V)K(e.op),K(e.expression);else if(e instanceof Jp)K(e.leftExpression),K(e.op),K(e.rightExpression);else if(e instanceof Yp)K(e.op),K(e.expression);else if(e instanceof U)K(e.blockOpenBrace),e.body.forEach(K),K(e.blockCloseBrace);else if(e instanceof W)K(e.listOpenBracket),e.commaList.forEach(K),e.elementList.forEach(K),K(e.listCloseBracket);else if(e instanceof Zp)K(e.tupleOpenParen),e.commaList.forEach(K),e.elementList.forEach(K),K(e.tupleCloseParen);else if(e instanceof Qp)e.commaList.forEach(K),e.elementList.forEach(K);else if(e instanceof G)K(e.callee),K(e.argumentList);else if(e instanceof H)K(e.callee),e.args.forEach(K);else if(e instanceof rm)K(e.expression);else if(e instanceof Xp)K(e.value);else if(e instanceof nm)K(e.variable);else if(e instanceof em)K(e.literal);else if(e instanceof $p)throw Error(`This case is handled by the TupleExpressionNode case`);else if(e instanceof am)K(e.array),K(e.indexer);else if(e instanceof R)e.body.forEach(K),K(e.eof);else if(!(e instanceof im))if(e instanceof Wp)K(e.useKeyword),K(e.specifiers),K(e.fromKeyword),K(e.importPath);else if(e instanceof Kp)K(e.openBrace),e.specifiers.forEach(K),K(e.closeBrace);else if(e instanceof Gp)K(e.importKind),K(e.name),K(e.asKeyword),K(e.alias);else if(e instanceof tm)K(e.token);else throw Error(`Unreachable case in markInvalidNode`)}function um(...e){return e.filter(e=>e!==void 0)}function dm(e){if(e instanceof R)return um(...e.body,e.eof);if(e instanceof z)return um(e.type,e.targetKind,e.name,e.as,e.alias,e.attributeList,e.bodyColon,e.body);if(e instanceof B)return um(e.name,e.colon,e.value);if(e instanceof qp)return e.identifiers;if(e instanceof em)return e.literal?[e.literal]:[];if(e instanceof nm)return um(e.variable);if(e instanceof V)return um(e.op,e.expression);if(e instanceof Jp)return um(e.leftExpression,e.op,e.rightExpression);if(e instanceof Yp)return um(e.expression,e.op);if(e instanceof Xp)return um(e.value);if(e instanceof H)return um(e.callee,...e.args);if(e instanceof U)return um(e.blockOpenBrace,...e.body,e.blockCloseBrace);if(e instanceof W)return um(e.listOpenBracket,...fm(e.elementList,e.commaList),e.listCloseBracket);if(e instanceof Zp)return um(e.tupleOpenParen,...fm(e.elementList,e.commaList),e.tupleCloseParen);if(e instanceof Qp)return um(...fm(e.elementList,e.commaList));if(e instanceof G)return um(e.callee,e.argumentList);if(e instanceof rm)return um(e.expression);if(e instanceof am)return um(e.array,e.indexer);if(e instanceof im)return[];if(e instanceof Wp)return um(e.useKeyword,e.specifiers,e.fromKeyword,e.importPath);if(e instanceof Kp)return um(e.openBrace,...e.specifiers,e.closeBrace);if(e instanceof Gp)return um(e.importKind,e.name,e.asKeyword,e.alias);if(e instanceof tm)return um(e.token);throw e instanceof $p?Error(`This case is already handled by TupleExpressionNode`):Error(`Unreachable - no other possible cases`)}function fm(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 pm(e,t){return e.reachableFiles(t.filepath).every(t=>e.bindFile(t).getErrors().length===0)}function mm(e){if(!e)return[];if(O(e))return[{variables:[e],tupleElements:[]}];if(e instanceof Jp){let t=Uf(e);return t?[t]:[...mm(e.leftExpression),...mm(e.rightExpression)]}if(e instanceof V||e instanceof Yp)return mm(e.expression);if(e instanceof Zp){let t=Uf(e);return t?[t]:e.elementList.flatMap(mm)}return[]}function hm(e,n){let r=n.parentNode;if(!r||!k(r)||r.rightExpression!==n)return;let i=r.leftExpression;for(;k(i);)i=i.rightExpression;return e.nodeReferee(i).getFiltered(t)??void 0}function gm(e){switch(e){case`<`:return[`1`,`*`];case`<>`:return[`*`,`*`];case`>`:return[`*`,`1`];case`-`:return[`1`,`1`];default:return}}function _m(e,n){let r=e.symbolMembers(n).getFiltered(t);if(r)return r.find(e=>e instanceof Sp&&e.isPublicSchema())}function vm(e,n){let r=e.parseFile(n).getValue().ast;return e.nodeSymbol(r).getFiltered(t)}var ym=function(e){return e.Ref=`ref`,e.PartialRef=`partial ref`,e.TableChecks=`table checks`,e.Indexes=`indexes`,e.Records=`records`,e.Project=`project`,e.MetadataElement=`metadata element`,e}({}),bm=class e{static{this.id=0}constructor(t){this.declaration=t,this.id=++e.id}intern(){return`metadata@${this.declaration.filepath.intern()}:${this.id}`}resolveOwnerPrograms(e,t){let n=this.declaration.filepath;return e.reachableFiles().flatMap(t=>vm(e,t)||[]).filter(r=>e.reachableFiles(r.filepath).some(e=>e.equals(n))&&t.every(t=>r.inNestedSchema(e,t)))}},xm=class extends bm{constructor(e){super(e),this.kind=`ref`}container(e){let n=this.declaration.parentOfKind(z);if(n?.isKind(r.Table))return e.nodeSymbol(n).getFiltered(t)}leftColumns(e){if(this.declaration instanceof z){let t=Vf(this.declaration)[0];if(!(t instanceof H))return[];let n=t.callee;return n instanceof Jp?Om(e,n.leftExpression):[]}if(this.declaration instanceof B){let n=this.declaration.parentOfKind(H);if(!n)return[];let r=e.nodeSymbol(n).getFiltered(t);return r?[r]:[]}return[]}rightColumns(e){if(this.declaration instanceof z){let t=Vf(this.declaration)[0];if(!(t instanceof H))return[];let n=t.callee;return n instanceof Jp?Om(e,n.rightExpression):[]}if(this.declaration instanceof B){let t=this.declaration.value;return t instanceof V?Om(e,t.expression):[]}return[]}leftTable(e){if(this.declaration instanceof z){let t=Vf(this.declaration)[0];if(!(t instanceof H))return;let n=t.callee;return n instanceof Jp?km(e,n.leftExpression):void 0}if(this.declaration instanceof B)return this.container(e)}rightTable(e){if(this.declaration instanceof z){let t=Vf(this.declaration)[0];if(!(t instanceof H))return;let n=t.callee;return n instanceof Jp?km(e,n.rightExpression):void 0}if(this.declaration instanceof B){let t=this.declaration.value;return t instanceof V?km(e,t.expression)??this.container(e):void 0}}op(e){if(this.declaration instanceof z){let e=Vf(this.declaration)[0];if(!(e instanceof H))return;let t=e.callee;return t instanceof Jp?t.op?.value:void 0}if(this.declaration instanceof B){let e=this.declaration.value;return e instanceof V?e.op?.value:void 0}}active(e){if(!(this.declaration instanceof z))return!0;let n=Vf(this.declaration)[0];return n?!e.nodeSettings(n).getFiltered(t)?.[i.Inactive]?.length:!0}leftToken(){if(this.declaration instanceof z){let e=Vf(this.declaration)[0];if(e instanceof H){let t=e.callee;if(t instanceof Jp&&t.leftExpression)return t.leftExpression}}if(this.declaration instanceof B){let e=this.declaration.parentOfKind(H);if(e)return e}return this.declaration}rightToken(){if(this.declaration instanceof z){let e=Vf(this.declaration)[0];if(e instanceof H){let t=e.callee;if(t instanceof Jp&&t.rightExpression)return t.rightExpression}}return this.declaration instanceof B,this.declaration}owners(e){let t=this.leftTable(e),n=this.rightTable(e);return!t||!n?[]:this.resolveOwnerPrograms(e,[t,n])}},Sm=class extends bm{constructor(e){super(e),this.kind=`partial ref`}container(e){let n=this.declaration.parentOfKind(z);if(n?.isKind(r.TablePartial))return e.nodeSymbol(n).getFiltered(t)}leftColumns(e){if(!(this.declaration instanceof B))return[];let n=this.declaration.parentOfKind(H);if(!n)return[];let r=e.nodeSymbol(n).getFiltered(t);return r?[r]:[]}rightColumns(e){if(!(this.declaration instanceof B))return[];let t=this.declaration.value;return t instanceof V?Om(e,t.expression):[]}leftTablePartial(e){if(this.declaration instanceof B)return this.container(e)}rightTable(e){if(!(this.declaration instanceof B))return;let t=this.declaration.value;if(t instanceof V)return km(e,t.expression)??this.container(e)}op(e){if(!(this.declaration instanceof B))return;let t=this.declaration.value;if(t instanceof V)return t.op?.value}leftToken(){if(this.declaration instanceof B){let e=this.declaration.parentOfKind(H);if(e)return e}return this.declaration}rightToken(){return this.declaration instanceof B,this.declaration}owners(e){let t=this.leftTablePartial(e),n=this.rightTable(e);return!t||!n?[]:this.resolveOwnerPrograms(e,[t,n])}},Cm=class extends bm{constructor(e){super(e),this.kind=`table checks`,this.ownerTable=e.parentNode?.parentOfKind(z)}owners(e){if(!this.ownerTable)return[];let n=e.nodeSymbol(this.ownerTable).getFiltered(t);return n?[n.originalSymbol]:[]}},wm=class extends bm{constructor(e){super(e),this.kind=`indexes`,this.ownerTable=e.parentNode?.parentOfKind(z)}owners(e){if(!this.ownerTable)return[];let n=e.nodeSymbol(this.ownerTable).getFiltered(t);return n?[n.originalSymbol]:[]}},Tm=class extends bm{constructor(e){super(e),this.kind=`records`}table(e){let n=this.declaration,i=n.parent;if(i instanceof z&&i.isKind(r.Table))return e.nodeSymbol(i).getFiltered(t);let a=n.name;if(!(a instanceof G))return;let o=Kf(a);if(!o)return;let s=o.variables.at(-1);if(s)return e.nodeReferee(s).getFiltered(t)?.originalSymbol}owners(e){let t=this.table(e);return t?this.resolveOwnerPrograms(e,[t]):[]}},Em=class extends bm{constructor(e){super(e),this.kind=`metadata element`}target(e){let n=this.declaration.name;if(!n)return;let r=Ff(n)??n;return e.nodeReferee(r).getFiltered(t)?.originalSymbol}owners(e){let n=this.target(e);if(!n)return[];if(n.kind===I.Column){let r=n.declaration?.parentOfKind(z),i=r?e.nodeSymbol(r).getFiltered(t)?.originalSymbol:void 0;if(!i)return[];n=i}return this.resolveOwnerPrograms(e,[n])}},Dm=class extends bm{constructor(e){super(e),this.kind=`project`}owners(e){let n=this.declaration.filepath,r=e.parseFile(n).getValue().ast,i=e.nodeSymbol(r).getFiltered(t);return i?[i]:[]}};function Om(e,n){if(!n)return[];let r=Uf(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 km(e,n){if(!n)return;let r=Uf(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 Am=class{constructor(e,t){this.compiler=e,this.declarationNode=t}bind(){return[]}},jm=class{constructor(e,t){this.compiler=e,this.declarationNode=t}interpret(){let e=this.declarationNode.body;return e instanceof U?new n(e.body.flatMap(e=>{if(!(e instanceof H))return[];let t=F(e),n=e.callee instanceof Xp?e.callee.value?.value??``:``,r,a=e.args.find(e=>e instanceof W);return a&&(r=N(D(a).getValue()[i.Name]?.at(0)?.value)),{expression:n,name:r,token:t}})):new n([])}},Mm={nodeMetadata(t,i){if(A(i,r.Checks)){let t=i.parent;return!t||!A(t,r.Table)&&!A(t,r.TablePartial)?n.create(e):n.create(new Cm(i))}return n.create(e)},bindNode(t,i){return A(i,r.Checks)?n.create(void 0,new Am(t,i).bind()):n.create(e)},interpretMetadata(t,r){return r.kind===ym.TableChecks?r.declaration instanceof z?new jm(t,r.declaration).interpret():n.create(void 0):n.create(e)}},Nm=class{constructor(e,t){this.compiler=e,this.declarationNode=t}bind(){return this.declarationNode.body instanceof U?this.bindBody(this.declarationNode.body):[]}bindBody(e){let[,t]=_(e.body,e=>e instanceof H);return this.bindSubElements(t)}bindSubElements(e){return e.flatMap(e=>!e.type||!(e.body instanceof U)?[]: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]=_(e.body,e=>e instanceof H);return t.flatMap(e=>!e.callee||Sf(e.callee)?[]:[e.callee,...e.args].flatMap(mm).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]=_(e.body,e=>e instanceof H);return t.flatMap(e=>!e.callee||Sf(e.callee)?[]:mm(e.callee).flatMap(e=>{let t=e.variables.pop();return t?this.compiler.nodeReferee(t).getErrors():[]}))}bindTableGroupReferences(e){let[t]=_(e.body,e=>e instanceof H);return t.flatMap(e=>!e.callee||Sf(e.callee)?[]:mm(e.callee).flatMap(e=>{let t=e.variables.pop();return t?this.compiler.nodeReferee(t).getErrors():[]}))}bindSchemaReferences(e){let[t]=_(e.body,e=>e instanceof H);return t.flatMap(e=>!e.callee||Sf(e.callee)?[]:mm(e.callee).flatMap(e=>e.variables.flatMap(e=>this.compiler.nodeReferee(e).getErrors())))}},Pm=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 U&&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 H&&Sf(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]=_(e.body,e=>e instanceof z),n=new Set;for(let e of t){let t=e.type?.value.toLowerCase();t&&n.add(t),e.body instanceof U&&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 H&&Sf(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 H))continue;let e=n.callee&&Ff(n.callee),r=e&&this.compiler.nodeReferee(e).getFiltered(t);if(r?.declaration instanceof z){let e=M(r.declaration.name)??[];if(e.length>0){let t=e[e.length-1],n=e.length>1?e.slice(0,-1).join(`.`):y;i.push({name:t,schemaName:n});continue}}let a=M(n.callee)??[];if(a.length===0)continue;let o=a[a.length-1],s=a.length>1?a[0]:y;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?Pa(r.filter(e=>e.isKind(I.TableGroup)),e=>e.originalSymbol.intern()).flatMap(e=>e.name===void 0?[]:{name:e.name}):[]}};function Fm(e){return e==null?e:Array.isArray(e)?e.map(String).join(`\0`):typeof e==`object`&&`intern`in e?e.intern():e}var Im=function(e){return e.Table=`table`,e}({}),Lm={getDuplicateError(e,t,n){return new E(T.DUPLICATE_NAME,`DiagramView '${e}' already exists in schema '${t}'`,n)},getFieldDuplicateError(e,t,n){return new E(T.DUPLICATE_DIAGRAMVIEW_FIELD,`Duplicate ${t} ${e}`,n)}},Rm={nodeSymbol(i,a){let o=i.nodeFullname(a).getFiltered(t)?.at(-1);return A(a,r.DiagramView)?new n(i.symbolFactory.create(Mp,{declaration:a,name:o},a.filepath)):j(a,r.DiagramView)&&a instanceof tm?new n(i.symbolFactory.create(Np,{declaration:a,name:o},a.filepath)):j(a,r.DiagramViewNotes)?new n(i.symbolFactory.create(Ip,{declaration:a,name:o},a.filepath)):j(a,r.DiagramViewTables)?new n(i.symbolFactory.create(Pp,{declaration:a,name:o},a.filepath)):j(a,r.DiagramViewTableGroups)?new n(i.symbolFactory.create(Fp,{declaration:a,name:o},a.filepath)):j(a,r.DiagramViewSchemas)?new n(i.symbolFactory.create(Lp,{declaration:a,name:o},a.filepath)):n.create(e)},nodeReferee(i,a){if(a.parent&&Af(a))return n.create(e);let o=zm(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)?Bm(i,c,a):o.isKind(r.DiagramViewNotes)?Vm(i,c,a,I.StickyNote):o.isKind(r.DiagramViewTableGroups)?Vm(i,c,a,I.TableGroup):o.isKind(r.DiagramViewSchemas)?Hm(i,c,a):n.create(e):n.create(void 0)},symbolMembers(i,a){if(!a.isKind(I.DiagramView))return n.create(e);if(!a.declaration)return n.create([]);let o=a.declaration;if(!A(o,r.DiagramView))return n.create([]);let s=[],c=[];for(let e of Vf(o))if(e instanceof H){let n=i.nodeSymbol(e).getFiltered(t);n&&c.push(n)}else e instanceof z&&c.push(...Vf(e).flatMap(e=>i.nodeSymbol(e).getFiltered(t)??[]));let l=new Map;for(let e of c){if(!e.isKind(I.DiagramViewSchema,I.DiagramViewTableGroup,I.DiagramViewTable,I.DiagramViewNote)||!e.declaration)continue;let n=(i.nodeFullname(e.declaration).getFiltered(t)||[]).map(vg).join(`.`),r=`${e.kind}:${n}`;if(n!==void 0){let t=e.declaration,i=l.get(r);i?(s.push(Lm.getFieldDuplicateError(n,e.kind,i)),s.push(Lm.getFieldDuplicateError(n,e.kind,t))):l.set(r,t)}}return n.create(c,s)},bindNode(i,a){if(!A(a,r.DiagramView))return n.create(e);let o=new Nm(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 Mp?r.declaration instanceof z?new Pm(t,r.declaration,r,i).interpret():n.create(void 0):n.create(e)}};function zm(e){let t=e.parentOfKind(H);if(!t)return;let n=t.parentNode;if(!(n instanceof U))return;let i=n.parentNode;if(!(i instanceof z)||!i.isKind(r.DiagramViewTables,r.DiagramViewNotes,r.DiagramViewTableGroups,r.DiagramViewSchemas))return;let a=i.parentNode;if(!(a instanceof U))return;let o=a.parentNode;if(!(!(o instanceof z)||!o.isKind(r.DiagramView)))return i}function Bm(e,r,i){let a=qf(i);if(a===void 0)return n.create(void 0);if(k(i.parentNode)){let t=hm(e,i);if(t){if(t.isKind(I.Schema)){let r=If(i),o=e.lookupMembers(t,r?I.Table:I.Schema,a);return o?n.create(o):new n(void 0,[new E(T.BINDING_ERROR,`Could not find ${r?`table`:`schema`} '${a}'`,i)])}return new n(void 0)}let o=e.lookupMembers(r,I.Schema,a);return o?n.create(o):new n(void 0,[new E(T.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(I.Table)&&a===t)return n.create(e)}let s=e.lookupMembers(r,I.Table,a);return s?n.create(s):new n(void 0,[new E(T.BINDING_ERROR,`Could not find table '${a}'`,i)])}function Vm(e,t,r,i){let a=qf(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 E(T.BINDING_ERROR,`Could not find ${i===I.StickyNote?`note`:`tablegroup`} '${a}'`,r)])}function Hm(e,t,r){let i=qf(r);if(i===void 0)return n.create(void 0);let a=e.lookupMembers(t,I.Schema,i);return a?n.create(a):new n(void 0,[new E(T.BINDING_ERROR,`Could not find schema '${i}'`,r)])}var Um=class{constructor(e,t){this.compiler=e,this.declarationNode=t}bind(){return this.declarationNode.body instanceof U?this.bindBody(this.declarationNode.body):[]}bindBody(e){if(!e||e instanceof H)return[];let t=e.body.filter(e=>e instanceof z);return this.bindSubElements(t)}bindSubElements(e){return e.flatMap(e=>e.type?this.compiler.bindNode(e).getErrors():[])}},Wm=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=F(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=F(t),n.name=P(t.callee);let r=D(t.args[0]).getValue().note?.at(0);return n.note=r&&{value:dp(N(r.value)),token:F(r)},this.enum.values.push(n),[]})}},Gm={getDuplicateError(e,t,n){return new E(T.DUPLICATE_NAME,`Enum '${e}' already exists in schema '${t}'`,n)},getFieldDuplicateError(e,t){return new E(T.DUPLICATE_COLUMN_NAME,`Duplicate enum field '${e}'`,t)}},Km={nodeSymbol(i,a){let o=i.nodeFullname(a).getFiltered(t)?.at(-1);return A(a,r.Enum)?new n(i.symbolFactory.create(Cp,{declaration:a,name:o},a.filepath)):j(a,r.Enum)?new n(i.symbolFactory.create(wp,{declaration:a,name:o},a.filepath)):n.create(e)},symbolMembers(r,i){if(!i.isKind(I.Enum))return n.create(e);let a=i.declaration;if(!(a instanceof z))return new n([]);let o=Vf(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(I.EnumField)||!e.declaration)continue;let t=e.name;if(t!==void 0){let n=e.declaration,r=l.get(t);r?(c.push(Gm.getFieldDuplicateError(t,r)),c.push(Gm.getFieldDuplicateError(t,n))):l.set(t,n)}}return new n(s,c)},bindNode(i,a){if(!A(a,r.Enum))return n.create(e);let o=new Um(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 Cp?new Wm(t,r,i).interpret():n.create(e)}},qm=class{constructor(e,t){this.compiler=e,this.declarationNode=t}bind(){return!(this.declarationNode.parent instanceof z)||!this.declarationNode.parent.isKind(r.Table)&&!this.declarationNode.parent.isKind(r.TablePartial)||!(this.declarationNode.body instanceof U)?[]:this.bindBody(this.declarationNode.body)}get ownerContainerKind(){return this.declarationNode.parent.isKind(r.TablePartial)?`TablePartial`:`Table`}bindBody(e){if(!e)return[];if(e instanceof H)return this.bindFields([e]);let[t,n]=_(e.body,e=>e instanceof H);return[...this.bindFields(t),...this.bindSubElements(n)]}bindFields(e){return e.flatMap(e=>{if(!e.callee)return[];let n=M(this.declarationNode.parent.name)?.join(`.`)??`<unnamed>`;return[e.callee,...e.args].flatMap(mm).flatMap(e=>e.variables.length>1?[]:e.variables.length?e.variables[0]:e.tupleElements).flatMap(e=>{let r=qf(e);if(r===void 0)return[];let i=this.compiler.nodeReferee(e);return!i.getValue()||i.hasValue(t)?new E(T.BINDING_ERROR,`No column named '${r}' inside ${this.ownerContainerKind} '${n}'`,e):[]})})}bindSubElements(e){return e.flatMap(e=>e.type?this.compiler.bindNode(e).getErrors():[])}},Jm=class{constructor(e,t){this.compiler=e,this.node=t}interpret(){let e=this.node.body;return e instanceof U?new n(e.body.flatMap(e=>{if(!(e instanceof H)||!e.callee)return[];let n=[],r=F(e),a=[e.callee,...e.args],o,s,c,l,u;g(a)instanceof W&&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=N(d[i.Name]?.at(0)?.value);let e=d[i.Note]?.at(0);if(e){let t=N(e.value);t!==void 0&&(l={value:t,token:F(e)})}u=P(d[i.Type]?.at(0)?.value)}let f=a.flatMap(e=>{if(!(e instanceof G))return e;let t=[],n=e;for(;n instanceof G&&(n.argumentList&&t.push(n.argumentList),n.callee);)n=n.callee;return t.push(n),t});for(let e of f){let t=Wf(e);if(t){for(let e of t.functional)n.push({value:e.value?.value??``,type:`expression`,token:F(e)});for(let e of t.nonFunctional)n.push({value:qf(e)??``,type:`column`,token:F(e)})}}return[{columns:n,pk:o,unique:s,name:c,note:l,type:u,token:r}]})):new n([])}},Ym={nodeMetadata(t,i){if(!A(i,r.Indexes))return n.create(e);let a=i.parent;return!a||!A(a,r.Table)&&!A(a,r.TablePartial)?n.create(e):n.create(new wm(i))},nodeReferee(i,a){if(!O(a)||Af(a))return n.create(e);let o=a;for(;o&&!A(o,r.Indexes);)o=o.parent;if(!o)return n.create(e);let s=o.parent;if(!s||!A(s,r.Table)&&!A(s,r.TablePartial))return n.create(e);let c=i.nodeSymbol(s).getFiltered(t);if(!c)return new n(void 0);let l=O(a)?a.expression.variable?.value??``:``,u=i.lookupMembers(c,I.Column,l);if(u)return n.create(u);let d=A(s,r.TablePartial)?`TablePartial`:`Table`;return new n(void 0,[new E(T.BINDING_ERROR,`Column '${l}' does not exist in ${d} 'public.${c.name}'`,a)])},bindNode(t,i){return A(i,r.Indexes)?n.create(void 0,new qm(t,i).bind()):n.create(e)},interpretMetadata(t,r){return r.kind===ym.Indexes?r.declaration instanceof z?new Jm(t,r.declaration).interpret():n.create(void 0):n.create(e)}};function Xm(e,n){let r=Hf(n);if(!r||r.length===0)return;let i=r[r.length-1];if(i instanceof Zp){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 Zp)return;let o=e.nodeReferee(a).getFiltered(t);if(o)return[o.originalSymbol]}function Zm(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 E(T.SAME_ENDPOINT,`Two endpoints are the same`,n)];let o=i<a?`${i}-${a}`:`${a}-${i}`,s=r.get(o);return s?[new E(T.CIRCULAR_REF,`References with same endpoints exist`,n),new E(T.CIRCULAR_REF,`References with same endpoints exist`,s)]:(r.set(o,n),[])}var Qm=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 z&&e.isKind(r.Project));a.length>1&&a.forEach(t=>e.push(new E(T.PROJECT_REDEFINED,`Only one project can exist`,t)));for(let t of i.body)if(t instanceof z&&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(...$m(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 z)||!t.type)continue;let i=t;A(i,r.Ref)&&e.push(...this.checkStandaloneRefs(i,n)),A(i,r.Table)&&e.push(...this.checkInlineRefs(i,n)),A(i,r.TablePartial)&&e.push(...this.checkTablePartialSelfRefs(i))}}return e}checkStandaloneRefs(e,t){let n=[];for(let r of Vf(e)){if(!(r instanceof H)||!r.callee||!Mf(r.callee))continue;let i=r.callee;if(!i.leftExpression||!i.rightExpression)continue;let a=Xm(this.compiler,i.leftExpression),o=Xm(this.compiler,i.rightExpression);!a||!o||n.push(...Zm(a,o,e,t))}return n}checkInlineRefs(e,n){let r=[];for(let a of Vf(e)){if(!(a instanceof H)||!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 V)||!i.op||!ff(i.op.value)||!i.expression)continue;let a=Xm(this.compiler,i.expression);if(!a)continue;let o=[e.originalSymbol];r.push(...Zm(o,a,t,n))}}return r}checkTablePartialSelfRefs(e){let n=[];for(let r of Vf(e)){if(!(r instanceof H)||!r.callee)continue;let e=P(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 V&&(!r.op||!ff(r.op.value)||r.expression&&O(r.expression)&&r.expression.expression.variable?.value===e&&n.push(new E(T.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 z)||!i.type)continue;let a=i;if(!A(a,r.TableGroup))continue;let o=a.name?M(a.name):void 0,s=o?o.join(`.`):`<unknown>`,c=Vf(a);for(let r of c){if(!(r instanceof H)||!r.callee)continue;let i=Hf(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=M(r.callee),n=t?t.join(`.`):`<unknown>`;e.push(new E(T.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 $m(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 Sp&&a.push(...$m(e,t,r));return a}function eh(e,t,n){t.isKind(I.Table)?e.externals.tables.push(n):t.isKind(I.Enum)?e.externals.enums.push(n):t.isKind(I.TableGroup)?e.externals.tableGroups.push(n):t.isKind(I.TablePartial)?e.externals.tablePartials.push(n):t.isKind(I.StickyNote)&&e.externals.notes.push(n)}function th(e){return e.values.map(t=>{let n={};return e.columns.forEach((e,r)=>{n[e]=t[r]}),n})}function nh(e,t){return e?`${e}.${t}`:`${y}.${t}`}function rh(e,t,n){return n.map(n=>{let r=t[n.name??``]?.value;if(r==null){let t=n.default(e);if(t)return JSON.stringify(t.value)}return JSON.stringify(r)}).join(`|`)}function ih(e,t,n){return n.some(n=>{let r=t[n.name??``]?.value;return r==null&&n.default(e)?!1:r==null})}function ah(e,t,n){return e?`${e}.${t}.${n}`:`${t}.${n}`}function oh(e,t,n){return n.length===1?ah(e,t,n[0]):`(${n.map(n=>ah(e,t,n)).join(`, `)})`}function sh(e,t,n){let r=n.map(n=>{let r=n.name??``,i=t[r]===void 0?n.default(e)?.value:t[r].value;return JSON.stringify(i)}).join(`, `);return n.length===1?r:`(${r})`}function ch(e,t){let n=t.filter(t=>e[t]).map(t=>e[t]);return n.length>0?n:Object.values(e).filter(Boolean)}function lh(e,t,n){let{token:r}=t,i=e.nodeAtPosition(r.filepath,r.start.offset)??e.parse.ast(r.filepath);return new tf(T.INVALID_RECORDS_FIELD,n,i)}var uh=e=>e>1?`Composite PK`:`PK`;function dh(e,t,n,r){return Oa(r.values)?[]:xa(gh(t,e),i=>fh(e,t,n,i,r))}function fh(e,t,n,r,i){let a=th(i),o=hh(e,t,n,r,i);if(!Oa(o))return o;let s=r.filter(t=>!t.increment(e)&&!t.default(e)),[c,l]=_(a,t=>ih(e,t,s)),u=ph(e,t,s.map(e=>e.name??``),c),d=r.some(t=>t.increment(e))?[]:mh(e,t,r,l);return[...u,...d]}function ph(e,t,n,r){if(Oa(r))return[];let i=t.schema(e),a=t.name??``,o=`NULL in ${uh(n.length)}: ${oh(i,a,n)} cannot be NULL`;return xa(r,t=>ch(t,n).map(t=>lh(e,t,o)))}function mh(e,t,n,r){let i=n.map(e=>e.name??``),a=t.schema(e),o=t.name??``;return xa(ma(wa(r,t=>rh(e,t,n)),e=>e.length>1),t=>{let r=uh(i.length),s=oh(a,o,i);return xa(t,t=>{let a=`Duplicate ${r}: ${s} = ${sh(e,t,n)}`;return ch(t,i).map(t=>lh(e,t,a))})})}function hh(e,t,n,r,i){let a=r.map(e=>e.name??``),o=new Set(i.columns),s=t.schema(e),c=t.name??``,l=da(a,Array.from(o));if(Oa(l))return[];let u=new Set(l),d=r.filter(e=>u.has(e.name??``)).filter(t=>!t.increment(e)&&!t.default(e)).map(e=>e.name??``);if(Oa(d))return[];let f=`${uh(d.length)}: Column ${oh(s,c,d)} is missing from record and has no default value`;return i.values.map(()=>new tf(T.INVALID_RECORDS_FIELD,f,n))}function gh(e,t){let n=e.mergedColumns(t),r=ka(n,e=>e.name??``);return[...n.filter(e=>e.pk(t)).map(e=>[e]),...e.mergedIndexes(t).flatMap(e=>{let n=t.interpretMetadata(e,e.declaration.filepath).getValue();return Array.isArray(n)?n.filter(e=>e.pk).map(e=>Qr(e.columns.map(e=>r[e.value]))):[]})]}function _h(e,t,n){if(Oa(n.values))return[];let r=th(n);return xa(vh(e,t),n=>yh(e,t,n,r))}function vh(e,t){let n=t.mergedColumns(e),r=ka(n,e=>e.name??``);return[...n.filter(t=>t.unique(e)).map(e=>[e]),...t.mergedIndexes(e).flatMap(t=>{let n=e.interpretMetadata(t,t.declaration.filepath).getValue();return Array.isArray(n)?n.filter(e=>e.unique).map(e=>Qr(e.columns.map(e=>r[e.value]))):[]})]}function yh(e,t,n,r){let i=n.map(e=>e.name??``);return xa(ma(wa(r.filter(t=>!ih(e,t,n)),t=>rh(e,t,n)),e=>e.length>1),r=>{let a=n.length>1?`Composite UNIQUE`:`UNIQUE`,o=oh(t.schema(e),t.name??``,i);return xa(r,t=>{let r=`Duplicate ${a}: ${o} = ${sh(e,t,n)}`;return ch(t,i).map(t=>lh(e,t,r))})})}function bh(e,t,n){let r=new Map;for(let i of e.values()){let{name:e,schema:a}=i.tableSymbol.interpretedName(t,n);r.set(nh(a,e),i)}return r}function xh(e,t,n,r){let i=bh(n,e,r),a=new Set;for(let[e,t]of i)t.record&&!Oa(t.record.values)&&a.add(e);return xa(t.filter(e=>e.endpoints?e.endpoints.some(e=>a.has(nh(e.schemaName,e.tableName))):!1),t=>Ch(e,t,i,r))}function Sh(e,t,n,r,i,a){if(!t.record||Oa(t.record.values))return[];let o=ka(t.tableSymbol.mergedColumns(e),e=>e.name??``),s=Qr(r.fieldNames.map(e=>o[e])),c=ka(n.tableSymbol.mergedColumns(e),e=>e.name??``),l=Qr(i.fieldNames.map(e=>c[e])),u=th(t.record),d=n.record?th(n.record):[],f=new Set(d.map(t=>rh(e,t,l))),p=u.filter(t=>!ih(e,t,s)).filter(t=>{let n=rh(e,t,s);return!f.has(n)}),m=t.tableSymbol.interpretedName(e,a),ee=n.tableSymbol.interpretedName(e,a);return xa(p,t=>{let n=oh(m.schema,m.name,r.fieldNames),a=oh(ee.schema,ee.name,i.fieldNames),o=`FK violation: ${n} = ${sh(e,t,s)} does not exist in ${a}`;return r.fieldNames.map(n=>lh(e,t[n],o))})}function Ch(e,t,n,r){if(!t.endpoints)return[];let[i,a]=t.endpoints,o=n.get(nh(i.schemaName,i.tableName)),s=n.get(nh(a.schemaName,a.tableName));return!o||!s?[]:wh(e,o,s,i,a,r)}function wh(e,t,n,r,i,a){let o=r.relation,s=i.relation;return o===`1`&&s===`1`||o===`*`&&s===`*`?[...Sh(e,t,n,r,i,a),...Sh(e,n,t,i,r,a)]:o===`*`&&s===`1`?Sh(e,t,n,r,i,a):o===`1`&&s===`*`?Sh(e,n,t,i,r,a):[]}var Th=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:F(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 Bp)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 Sp);for(;n.length>0;){let r=n.shift(),i=this.compiler.symbolMembers(r).getFiltered(t)??[];for(let t of i){if(t instanceof Sp){n.push(t);continue}if(!(t instanceof Bp))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 Tp?n.interpretedName(this.compiler,n.filepath):{name:n.name??``,schema:null},a=n instanceof Tp?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}]};eh(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 Tm))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 ym.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 E(T.SAME_ENDPOINT,`Ref with same endpoints already exists`,i.declaration));break}n.add(e)}this.db.refs.push(e);break}case ym.Records:if(i instanceof Tm){let e=i.table(this.compiler)?.originalSymbol.intern()??``,t=e?r.get(e):void 0;if(t&&t.count>1){this.errors.push(new E(T.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 ym.Project:this.db.project=a;break;case ym.MetadataElement:break;default:break}}}interpretAllAliases(){let e=this.compiler.symbolMembers(this.programSymbol).getFiltered(t)??[];for(let t of e){if(!(t instanceof zp)||!t.isKind(I.Table))continue;let{name:e,schema:n}=t.originalSymbol.interpretedName(this.compiler,this.filepath),r={name:t.name,kind:Im.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 Sp))continue;let r=this.compiler.symbolMembers(e).getFiltered(t)??[];for(let e of r){if(!e.isKind(I.Table))continue;let t=e.originalSymbol;if(!(t instanceof Tp))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 Tm))continue;let i=r.table(this.compiler);if(!(i instanceof Tp))continue;let a=this.compiler.interpretMetadata(r,this.filepath);if(a.hasValue(t))continue;let o=a.getValue();if(!o)continue;e.push(...dh(this.compiler,i,r.declaration,o)),e.push(..._h(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(...xh(this.compiler,[...this.db.refs,...a],n,this.filepath)),e}collectPartialRefs(e){let t=this.compiler.symbolMetadata(this.programSymbol).filter(e=>e instanceof Sm),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 Vp&&t.declaration===e.declaration)))continue;let l=gm(s);if(!l)continue;let u=a instanceof Ap&&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:F(i.leftToken())},m={schemaName:f.schema,tableName:f.name,fieldNames:o.map(e=>e.name??``),relation:l[1],token:F(i.rightToken())};n.push({token:F(i.declaration),endpoints:[p,m]})}return n}pushElement(e,t){if(!Array.isArray(t))switch(e.kind){case I.Table:this.db.tables.push(t);break;case I.Enum:this.db.enums.push(t);break;case I.TableGroup:this.db.tableGroups.push(t);break;case I.TablePartial:this.db.tablePartials.push(t);break;case I.StickyNote:this.db.notes.push(t);break;case I.DiagramView:this.db.diagramViews.push(t);break;default:break}}},Eh={nodeSymbol(t,r){return Df(r)?n.create(t.symbolFactory.create(Rp,{declaration:r,name:r.filepath.absolute},r.filepath)):n.create(e)},symbolMembers(r,i){if(!i.isKind(I.Program))return n.create(e);if(!(i.declaration instanceof R))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(y);if(!o)return n.create([...a.values()]);let s=r.symbolMembers(o).getFiltered(t)?.filter(e=>!e.isKind(I.Schema));return s?n.create([...a.values(),...s]):n.create([...a.values()])},bindNode(t,r){return Df(r)?new Qm(r,t).resolve():n.create(e)},interpretSymbol(t,r,i){if(!(r instanceof Rp))return n.create(e);if(!(r.declaration instanceof R))return n.create(void 0);if(!pm(t,r.declaration)){let e=t.reachableFiles(i).flatMap(e=>t.bindFile(e).getErrors());return n.create(void 0,e)}return new Th(t,r,i).interpret()}},Dh=class{constructor(e,t){this.compiler=e,this.declarationNode=t}bind(){return this.declarationNode.body instanceof U?this.bindBody(this.declarationNode.body):[]}bindBody(e){if(!e||e instanceof H)return[];let t=e.body.filter(e=>e instanceof z);return this.bindSubElements(t)}bindSubElements(e){return e.flatMap(e=>e.type?this.compiler.bindNode(e).getErrors():[])}},Oh=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=F(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}=fp(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 U?t.body.body[0]?.callee:t.body?.callee,n=e?N(e):void 0;return n&&(this.project.note={value:dp(n),token:F(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()]=N(t.body.callee),[]}})}},kh={nodeMetadata(t,i){return A(i,r.Project)?n.create(new Dm(i)):n.create(e)},bindNode(t,i){return A(i,r.Project)?n.create(void 0,new Dh(t,i).bind()):n.create(e)},interpretMetadata(t,r,i){return!(r instanceof Dm)||!(r.declaration instanceof z)?n.create(e):new Oh(t,r.declaration,i).interpret()}},Ah=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 U&&e.push(...this.bindBody(this.declarationNode.body)),e}bindRecordsName(e){return this.declarationNode.parent instanceof R?this.bindTopLevelName(e):this.bindInsideTableName(e)}bindTopLevelName(e){let n=Kf(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=zf(o.declaration)??`<invalid name>`,c=i.flatMap(e=>this.compiler.nodeReferee(e).getErrors());for(let e of n.args){let n=qf(e)??`<unnamed>`,r=this.compiler.nodeReferee(e).getFiltered(t);if(!r){c.push(new E(T.BINDING_ERROR,`Column '${n}' does not exist in Table '${s}'`,e));continue}let i=this.boundColumns.get(r);i&&(c.push(new E(T.DUPLICATE_COLUMN_REFERENCES_IN_RECORDS,`Column '${n}' is referenced more than once in a Records for Table '${s}'`,i)),c.push(new E(T.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 z)||!n.isKind(r.Table)||!this.compiler.nodeSymbol(n).getFiltered(t)||!vf(e))return[];let i=zf(n)??`<invalid name>`,a=[];for(let n of e.elementList){let e=qf(n)??`<unnamed>`;if(!this.compiler.nodeReferee(n).getFiltered(t)){a.push(new E(T.BINDING_ERROR,`Column '${e}' does not exist in Table '${i}'`,n));continue}}return a}bindBody(e){if(!e)return[];if(e instanceof H)return this.bindDataRow(e);let t=e.body.filter(e=>e instanceof H),n=e.body.filter(e=>e instanceof z);return[...this.bindDataRows(t),...this.bindSubElements(n)]}bindDataRows(e){return e.flatMap(e=>this.bindDataRow(e))}bindDataRow(e){return e.callee?(e.callee instanceof Qp?e.callee.elementList:[e.callee]).flatMap(mm).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():[])}},jh=class{constructor(e,t,n){this.compiler=e,this.metadata=t,this.element=t.declaration,this.filepath=n}interpret(){let e=[],t=[],r=Mh(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=Nh(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=F(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 Mh(e,n,i){let a=e.name,o=e.parent;if(o instanceof z&&o.isKind(r.Table)){let e=n.nodeSymbol(o).getFiltered(t);if(!(e instanceof Tp))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===P(e))||[])}:{schemaName:c,tableName:l,columns:r}}let s=Kf(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,I.Schema,u);e&&(p=n.lookupMembers(e,I.Table,l))}if(p||=n.lookupMembers(f,I.Table,l),!p)return;let m=p.originalSymbol;if(!(m instanceof Tp))return;let ee=m.mergedColumns(n),te=s.args.map(e=>ee.find(t=>t.name===P(e))).filter(Boolean),ne=m.interpretedName(n,i);return{schemaName:ne.schema,tableName:ne.name,columns:te}}function Nh(e,t,r){let i=[],a=[],o={},s=e.callee instanceof Qp?e.callee.elementList:[e.callee];if(s.length!==t.length)return i.push(new E(T.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=Fh(n,l,r);i.push(...u.getErrors()),a.push(...u.getWarnings());let d=u.getValue();c.push(d??{value:null,type:`expression`,token:F(n)})}return new n({row:c,columnNodes:o},i,a)}function Ph(e){return e instanceof Xp&&e.value?.value||``}function Fh(e,t,r){let i=F(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=Uo(o,s),p=ip(e),m=p===null?Ph(e):p,ee=p===null?`expression`:f;if(e instanceof Xp)return new n({value:e.value?.value||``,type:`expression`,token:i},[],[]);if(Jf(e)||Yf(e)&&!zo(o)){let t=u&&u.value.toString().toLowerCase()!==`null`,r=Ho(o);return l&&!t&&!c&&!r?new n({value:null,type:f,token:i},[],[new tf(T.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(I.EnumField)).map(e=>e.name).filter(Boolean):[],s=N(e);return s===void 0&&(s=O(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 tf(T.INVALID_RECORDS_FIELD,`Invalid enum value for column '${d}'`,e)])}if(Fo(o)||Io(o)||Ho(o)){let t=Zf(e);if(t===null)return new n({value:m,type:ee,token:i},[],[new tf(T.INVALID_RECORDS_FIELD,`Invalid numeric value for column '${d}'`,e)]);if(Fo(o)&&!Number.isInteger(t))return new n({value:Math.floor(t),type:f,token:i},[],[new tf(T.INVALID_RECORDS_FIELD,`Invalid integer value ${t} for column '${d}': expected integer, got decimal`,e)]);let r=Io(o)&&a?.args?.length?{precision:Number(a.args[0]),scale:a.args.length>=2?Number(a.args[1]):0}:void 0;if(Io(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 tf(T.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 tf(T.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(Ro(o)){let t=np(e);return t===null?new n({value:m,type:ee,token:i},[],[new tf(T.INVALID_RECORDS_FIELD,`Invalid boolean value for column '${d}'`,e)]):new n({value:t,type:f,token:i},[],[])}if(Vo(o)){let t=cp(e);return t===null?new n({value:m,type:ee,token:i},[],[new tf(T.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(zo(o)){let t=ip(e);if(t===null)return new n({value:m,type:ee,token:i},[],[new tf(T.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 tf(T.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},[],[])}var Ih={nodeMetadata(t,i){if(!A(i,r.Records))return n.create(e);let a=i.parent;if(a&&A(a,r.Table))return n.create(new Tm(i));let o=i.name;return o instanceof G&&o.callee?n.create(new Tm(i)):n.create(e)},nodeReferee(i,a){if(!O(a))return n.create(e);let o=a.parentOfKind(z);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(Zp);if(l?.parentNode===o)return Lh(i,o,a);let u=a.parentOfKind(G);return u?.parentNode===o&&l?.parentNode===u?Rh(i,u,a):u?.parentNode===o&&u.callee?.containsEq(a)?zh(i,c,a):Vh(i,c,a)},bindNode(t,i){return A(i,r.Records)?n.create(void 0,new Ah(t,i).bind()):n.create(e)},interpretMetadata(t,r,i){return r instanceof Tm?r.declaration instanceof z?new jh(t,r,i).interpret():n.create(void 0):n.create(e)}};function Lh(e,i,a){let o=i.parent;if(o instanceof z&&o.isKind(r.Table)){let n=e.nodeSymbol(o).getFiltered(t);if(n)return Bh(e,n,a)}return new n(void 0)}function Rh(e,r,i){if(r.callee){let n;if(O(r.callee))n=e.nodeReferee(r.callee).getFiltered(t);else{let i=Hf(r.callee);if(i&&i.length>0){let r=i[i.length-1];n=e.nodeReferee(r).getFiltered(t)}}if(n)return Bh(e,n,i)}return new n(void 0)}function zh(e,t,r){if(!O(r))return new n(void 0);let i=qf(r)??``;if(!k(r.parentNode)){let a=e.lookupMembers(t,[I.Table,I.Schema],i);return a?n.create(a):new n(void 0,[new E(T.BINDING_ERROR,`Table '${i}' does not exist in Schema 'public'`,r)])}let a=hm(e,r);if(!a){let a=e.lookupMembers(t,[I.Table,I.Schema],i);return a?n.create(a):new n(void 0,[new E(T.BINDING_ERROR,`Table or schema '${i}' does not exist`,r)])}if(a.isKind(I.Schema)){let t=e.lookupMembers(a,[I.Table,I.Schema],i);return t?n.create(t):new n(void 0,[new E(T.BINDING_ERROR,`Table or schema '${i}' does not exist`,r)])}return new n(void 0)}function Bh(e,t,r){if(!O(r))return new n(void 0);let i=qf(r)??``,a=e.lookupMembers(t,I.Column,i);return a?n.create(a):new n(void 0,[new E(T.BINDING_ERROR,`Column '${i}' does not exist in Table 'public.${t.name}'`,r)])}function Vh(e,t,r){if(!O(r))return new n(void 0);let i=qf(r)??``;if(!k(r.parentNode))return new n(void 0);let a=hm(e,r);if(a){if(a.isKind(I.Schema)){let t=e.lookupMembers(a,[I.Enum,I.Schema],i);return t?n.create(t):new n(void 0,[new E(T.BINDING_ERROR,`Enum or schema '${i}' does not exist`,r)])}if(a.isKind(I.Enum)){let t=e.lookupMembers(a,I.EnumField,i);return t?n.create(t):new n(void 0,[new E(T.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(k(o.parentNode)&&o.parentNode.leftExpression===o){let a=e.lookupMembers(t,I.Schema,i);return a?n.create(a):new n(void 0,[new E(T.BINDING_ERROR,`Schema '${i}' does not exist in Schema 'public'`,r)])}let a=e.lookupMembers(t,I.Enum,i);return a?n.create(a):new n(void 0,[new E(T.BINDING_ERROR,`Enum '${i}' does not exist in Schema 'public'`,r)])}return new n(void 0)}var Hh=class{constructor(e,t){this.compiler=e,this.declarationNode=t}bind(){return!(this.declarationNode.parent instanceof R)&&!this.declarationNode.parent?.isKind(r.Project)?[]:this.bindBody(this.declarationNode.body)}bindBody(e){if(!e)return[];if(e instanceof H)return this.bindFields([e]);let[t,n]=_(e.body,e=>e instanceof H);return[...this.bindFields(t),...this.bindSubElements(n)]}bindFields(e){return e.flatMap(e=>e.callee?[e.callee,...e.args].flatMap(mm).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():[])}},Uh=class{constructor(e,t,n){this.compiler=e,this.filepath=n,this.metadata=t,this.declarationNode=t.declaration,this.ref={}}interpret(){this.ref.token=F(this.declarationNode);let e=[...this.interpretName(),...this.interpretBody()];return n.create(this.ref,e)}interpretName(){if(!(this.declarationNode instanceof z))return[];let e=[],t=M(this.declarationNode.name)??[];return this.ref.name=t.pop()||null,t.length>1&&e.push(new E(T.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(La(t,r).every(([e,t])=>e?.originalSymbol===t?.originalSymbol))return[new E(T.SAME_ENDPOINT,`Two endpoints are the same`,this.declarationNode)];let a=gm(e),o=n?.interpretedName(this.compiler,this.filepath),s=i?.interpretedName(this.compiler,this.filepath),c=F(this.metadata.leftToken()),l=F(this.metadata.rightToken());if(this.ref.endpoints=this.declarationNode instanceof z?[{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 z))return[];let u=Vf(this.declarationNode)[0];if(u.args[0]){let e=D(u.args[0]).getValue(),t=e.delete?.at(0)?.value;this.ref.onDelete=t instanceof qp?Rf(t):P(t);let n=e.update?.at(0)?.value;this.ref.onUpdate=n instanceof qp?Rf(n):P(n),this.ref.color=e.color?.length?pp(e.color?.at(0)?.value):void 0,this.ref.inactive=e.inactive?.length?!0:void 0}return[]}};function Wh(e){let t=e.parent;for(;t;){if(t instanceof z&&t.isKind(r.Ref))return t.body?.containsEq(e)??!1;t=t.parent}return!1}var Gh={nodeReferee(r,i){if(!O(i)&&!k(i)||!Wh(i)||i.parentOfKind(B))return n.create(e);let a=r.parseFile(i.filepath).getValue().ast,o=r.nodeSymbol(a).getValue();return o===t?n.create(void 0):Kh(r,o,i)},nodeMetadata(t,a){if(A(a,r.Ref)){let t=Vf(a)[0];if(!(t instanceof H)||!t.callee)return n.create(e);let r=t.callee;return!(r instanceof Jp)||!r.op?n.create(e):n.create(new xm(a))}if(a instanceof B){if(!(a.name instanceof qp)||Rf(a.name)?.toLowerCase()!==i.Ref)return n.create(e);let t=a.parent;return t instanceof z&&t.isKind(r.TablePartial)?n.create(new Sm(a)):n.create(new xm(a))}return n.create(e)},bindNode(t,i){return A(i,r.Ref)?n.create(void 0,new Hh(t,i).bind()):n.create(e)},interpretMetadata(t,r,i){return r instanceof xm?new Uh(t,r,i).interpret():n.create(e)}};function Kh(e,r,i){if(!O(i))return new n(void 0);let a=qf(i)??``;if(!k(i.parentNode)){let r=i.parentNode;if(r&&k(r.parentNode)&&r.parentNode.rightExpression===r){let o=r.parentNode.leftExpression,s=k(o)?o.rightExpression??o:o,c=e.nodeReferee(s).getFiltered(t);if(c?.isKind(I.Table)){let r=e.lookupMembers(c,I.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 E(T.BINDING_ERROR,`Column '${a}' does not exist in Table '${o}'`,i)])}}return n.create(void 0)}let o=hm(e,i);if(o){if(o.isKind(I.Schema)){let t=e.lookupMembers(o,[I.Table,I.Schema],a);return t?n.create(t):new n(void 0,[new E(T.BINDING_ERROR,`Table or schema '${a}' does not exist`,i)])}if(o.isKind(I.Table)){let r=e.lookupMembers(o,I.Column,a);return r?n.create(r):new n(void 0,[new E(T.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(k(s.parentNode)&&s.parentNode.leftExpression===s){let t=e.lookupMembers(r,I.Schema,a);return t?n.create(t):new n(void 0,[new E(T.BINDING_ERROR,`Schema '${a}' does not exist`,i)])}let t=_m(e,r);if(t){let r=e.lookupMembers(t,I.Table,a);if(r)return n.create(r)}let o=e.lookupMembers(r,I.Table,a);return o?n.create(o):new n(void 0,[new E(T.BINDING_ERROR,`Table '${a}' does not exist in Schema 'public'`,i)])}return new n(void 0)}var qh={visibleName(e,n){let r=n instanceof L?n:n.useSpecifierDeclaration instanceof Gp?n.useSpecifierDeclaration:n.declaration;if(r instanceof Gp&&n instanceof xp&&r.getSymbolKind()!==n.kind&&(r=n.declaration),!r)return;let i=e.nodeAlias(r).getFiltered(t);return i===void 0?e.nodeFullname(r).getFiltered(t):[i]}},Jh={nodeSymbol(r,i){if(!Ef(i)||!i.name)return n.create(e);let a=i.getSymbolKind();if(a===void 0||a===I.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(Bp,{useSpecifierDeclaration:i,declaration:o?.declaration,usedSymbol:o,kind:a,name:qh.visibleName(r,i)?.at(-1)},i.filepath),o===void 0?[new E(T.BINDING_ERROR,`Failed to resolve the import of ${a} '${(M(i.name)||[]).map(vg).join(`.`)}'`,i)]:[])},symbolMembers(r,i){if(!(i instanceof Bp))return n.create(e);if(i.originalSymbol===i)return n.create([]);let a=r.symbolMembers(i.originalSymbol).getFiltered(t);return n.create(a??[])},nodeReferee(r,i){if(!O(i)&&!wf(i))return n.create(e);let a=i.parentOfKind(Gp);if(!a)return n.create(e);let o=a.name===i||k(a.name)&&a.name.rightExpression===i?a.getSymbolKind():I.Schema;if(o===void 0)return n.create(void 0);let s=M(i.parentOfKind(Jp)),c=P(i)??s?.at(-1);if(c===void 0)return n.create(void 0);let l=i.parentOfKind(Wp);if(l?.importPath?.value===void 0)return n.create(void 0);let u=xo(i.filepath,l.importPath.value);if(!u)return n.create(void 0,[new E(T.BINDING_ERROR,`Import path must be relative, got '${l.importPath.value}'`,i)]);if(!r.layout.exists(u))return n.create(void 0,[new E(T.NONEXISTENT_MODULE,`${o} '${s?.join(`.`)??c}' does not exist in file ${u.toString()}. Does the file exist?`,i)]);let d=i.parentOfKind(Jp)?.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 E(T.BINDING_ERROR,`Could not find ${o} '${c}'`,i)])}let f=Yh(r,u,c,o);return f?n.create(f):n.create(void 0,[new E(T.BINDING_ERROR,`${o} '${c}' does not exist in file ${u.toString()}`,i)])},bindNode(t,r){if(Tf(r)){let e=[];if(r.importPath?.value){let n=xo(r.filepath,r.importPath.value);n?t.layout.exists(n)||e.push(new E(T.NONEXISTENT_MODULE,`Failed to resolve the non-existent file '${r.importPath.value}'`,r.importPath)):e.push(new E(T.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 Kp?new n(void 0,r.specifiers.flatMap(e=>t.bindNode(e).getErrors())):Ef(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 Bp))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 Yh(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(I.Schema))return c;for(let t of o.reuses.selective)if(M(t.alias??t.name)?.at(-1)===r){let o=t.parentOfKind(Wp);if(o?.importPath?.value){let s=Yh(e,xo(n,o.importPath.value),M(t.name)?.at(-1)??r,i,a);if(s)return s}}for(let{importPath:t}of o.reuses.wildcard){let n=Yh(e,t,r,i,a);if(n)return n}}function Xh(e){if(e instanceof bo){let{ast:n}=this.parseFile(e).getValue(),r=this.nodeSymbol(n).getFiltered(t);return this.usableMembers(r)}let r=e.filepath,i=Qh(this,r),{nonSchemaMembers:a,schemaMembers:o}=e instanceof Rp?$h(this,e,i):eg(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 Zh(e,n,r){let i=n.qualifiedName,a;if(a=r instanceof Gp?qh.visibleName(e,r):e.nodeFullname(r).getFiltered(t),!a)return{kind:`none`};let o=r instanceof Gp&&r.getSymbolKind()===I.Schema?a:a.length<=1?[y]: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 Qh(e,t){let n=e.parseFile(t),{ast:r}=n.getValue(),i=[],a=[],o=[],s=[];for(let e of r.body){if(!(e instanceof Wp)||!e.specifiers||!e.importPath)continue;let n=xo(t,e.importPath.value);n&&(e.isReuse?e.specifiers instanceof tm?i.push({importPath:n,node:e.specifiers}):a.push(...e.specifiers.specifiers):e.specifiers instanceof tm?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 $h(e,n,r){let{ast:i,selectiveUses:a,selectiveReuses:o}=r,s=n.filepath,c=new Map([[y,e.symbolFactory.create(Sp,{name:y},s)]]);for(let n of i.declarations){let r=e.nodeFullname(n).getFiltered(t)||[],i=r.length<=1?y:r[0];c.has(i)||c.set(i,e.symbolFactory.create(Sp,{name:i},s))}tg(e,[...a,...o],c,s);for(let t of e.reachableFiles(s))for(let n of rg(e,t))c.has(n)||c.set(n,e.symbolFactory.create(Sp,{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 eg(e,n,r){let{ast:i,selectiveUses:a,selectiveReuses:o}=r,s=[],c=new Map;for(let r of i.body){if(!(r instanceof z))continue;let i=Zh(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(zp,{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(Sp,{name:i.schemaName,parent:n},n.filepath))}ng(e,[...a,...o],n,c);let l=n.qualifiedName;for(let t of e.reachableFiles(n.filepath))for(let r of ig(e,t,l))c.has(r)||c.set(r,e.symbolFactory.create(Sp,{name:r,parent:n},n.filepath));return{nonSchemaMembers:s,schemaMembers:[...c.values()]}}function tg(e,t,n,r){for(let i of t){if(i.getSymbolKind()!==I.Schema)continue;let t=qh.visibleName(e,i)?.at(0);t!==void 0&&!n.has(t)&&n.set(t,e.symbolFactory.create(Sp,{name:t},r))}}function ng(e,t,n,r){let i=n.qualifiedName;for(let a of t){if(a.getSymbolKind()!==I.Schema)continue;let t=qh.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(Sp,{name:o,parent:n},n.filepath))}}function rg(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?y:r[0];i.push(a)}let a=Qh(e,n);for(let t of[...a.selectiveUses,...a.selectiveReuses]){if(t.getSymbolKind()!==I.Schema)continue;let n=qh.visibleName(e,t)?.at(0);n!==void 0&&i.push(n)}return i}function ig(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?[y]:i.slice(0,-1);o.length>r.length&&r.every((e,t)=>e===o[t])&&a.push(o[r.length])}let o=Qh(e,n);for(let t of[...o.selectiveUses,...o.selectiveReuses]){if(t.getSymbolKind()!==I.Schema)continue;let n=qh.visibleName(e,t);!n||n.length<=r.length||r.every((e,t)=>e===n[t])&&a.push(n[r.length])}return a}var ag=class{constructor(e,t){this.compiler=e,this.declarationNode=t}bind(){return this.declarationNode.body instanceof U?this.bindBody(this.declarationNode.body):[]}bindBody(e){if(!e)return[];if(e instanceof H)return this.bindFields([e]);let[t,n]=_(e.body,e=>e instanceof H);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(g(n)instanceof W){let e=D(g(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=>!df(e.callee)))}tryToBindColumnType(e){let t=Uf(e);if(!t)return;let n=t.variables.pop();n&&this.compiler.nodeReferee(n).getErrors()}tryToBindEnumFieldRef(e){if(xf(e))return[];if(O(e)){let t=e.expression.variable?.value?.toLowerCase();if(t&&So.includes(t))return[]}let t=Uf(e);if(!t){if(k(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 mm(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():[])}};function og(e,n,r,i,a){let o=vm(e,a);if(!o)return;let s=e.symbolMetadata(r).filter(t=>t.owners(e).includes(o));if(!s.length)return;let c=s.map(n=>e.interpretMetadata(n,a).getFiltered(t)).filter(e=>!!e);if(!c.length)return;let l={};for(let e of c)for(let[t,{value:n,token:r}]of Object.entries(e))l[t.toLowerCase()]={originalKey:t,value:n,token:r};let u=n.metadata?Object.fromEntries(Object.entries(n.metadata).map(([e,t])=>[e.toLowerCase(),{originalKey:e,value:t}])):{};Object.entries(l).forEach(([e,t])=>{let{originalKey:r,value:a,token:o}=t;i[e]?i[e].assignBuiltinField(n,a,o):u[e]={originalKey:r,value:a}}),n.metadata=Object.fromEntries(Object.values(u).map(e=>[e.originalKey,e.value]))}var sg=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??F(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})),this.attachTableAndColumnMetadata(),n.create(this.table,t)}attachTableAndColumnMetadata(){if(!this.symbol)return;og(this.compiler,this.table,this.symbol,lg,this.filepath);let e=this.compiler.symbolMembers(this.symbol).getFiltered(t)??[];for(let t of e){if(!t.isKind(I.Column))continue;let e=this.table.fields.find(e=>e.name===t.name);e&&og(this.compiler,e,t,ug,this.filepath)}}interpretName(e){let{name:t,schemaName:n}=fp(e);return n.length>1?(this.table.name=t,this.table.schemaName=n.join(`.`),[new E(T.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=qf(e);return t&&(this.table.alias=t),[]}interpretSettingList(e){let t=D(e).getValue();this.table.headerColor=t[i.HeaderColor]?.length?pp(t[i.HeaderColor]?.at(0)?.value):void 0;let[n]=t[i.Note]||[];return this.table.note=n&&{value:dp(N(n?.value)),token:F(n)},this.table.metadata=gp(t,Object.keys(lg)),[]}interpretBody(e){let[t,n]=_(e.body,e=>e instanceof H);return[...this.interpretFields(t),...this.interpretSubElements(n)]}interpretSubElements(e){return e.flatMap(e=>{switch(e.getElementKind()){case r.Note:return this.table.note={value:dp(N(e.body instanceof U?e.body.body[0].callee:e.body.callee)),token:F(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:F(e)};i.name=P(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 E(T.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(I.Column)).length?[]:[new E(T.EMPTY_TABLE,`A Table must have at least one column`,this.declarationNode)],i=e.flatMap((e,t)=>df(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=qf(e.callee),r.token=F(e);let o=hp(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?.isIncrementSet(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)??{};r.metadata=gp(c,cg);let 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:F(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()}},cg=[i.Note,i.Ref,i.PrimaryKey,i.PK,i.NotNull,i.Null,i.Unique,i.Increment,i.Default,i.Check],lg={[i.Note]:{isValidBuiltinFieldValue:xf,message:`'note' must be a string literal`,assignBuiltinField(e,t,n){e.note={value:t,token:n}}},[i.HeaderColor]:{isValidBuiltinFieldValue:pf,message:`'headercolor' must be a color literal`,assignBuiltinField(e,t){e.headerColor=t}}},ug={[i.Note]:{isValidBuiltinFieldValue:xf,message:`'note' must be a quoted string`,assignBuiltinField(e,t,n){e.note={value:t,token:n}}}},dg={getDuplicateError(e,t,n){return new E(T.DUPLICATE_NAME,`Table '${e}' already exists in schema '${t}'`,n)},getColumnDuplicateError(e,t){return new E(T.DUPLICATE_COLUMN_NAME,`Duplicate column '${e}'`,t)},getPartialInjectionDuplicateError(e,t){return new E(T.DUPLICATE_TABLE_PARTIAL_INJECTION_NAME,`Duplicate table partial injection '${e}'`,t)}},fg={nodeSymbol(i,a){let o=i.nodeFullname(a).getFiltered(t)?.at(-1);return A(a,r.Table)?new n(i.symbolFactory.create(Tp,{declaration:a,name:o},a.filepath)):j(a,r.Table)?df(a.callee)?new n(i.symbolFactory.create(jp,{declaration:a,name:o},a.filepath)):new n(i.symbolFactory.create(Ep,{declaration:a,name:o},a.filepath)):n.create(e)},symbolMembers(r,i){if(!i.isKind(I.Table))return n.create(e);let a=i.declaration;if(!(a instanceof z))return new n([]);let o=Vf(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(I.Column,I.PartialInjection)||!e.declaration)continue;let t=`${e.kind}:${e.name}`;if(e.name!==void 0){let n=e.declaration instanceof z&&e.declaration.name?e.declaration.name:e.declaration,r=l.get(t);r?e.isKind(I.Column)?(c.push(dg.getColumnDuplicateError(e.name,r)),c.push(dg.getColumnDuplicateError(e.name,n))):(c.push(dg.getPartialInjectionDuplicateError(e.name,r)),c.push(dg.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 H)||!df(n.declaration.callee))continue;let i=n.declaration.callee.expression,o=P(i);if(i===void 0||o===void 0)continue;let l=r.nodeReferee(i).getFiltered(t);if(!l){c.push(new E(T.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(Vp,{kind:I.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(I.Column)&&!(e instanceof Vp)).map(e=>e.name));return new n(Pa([...s.filter(e=>!(e instanceof Vp&&d.has(e.name)))].reverse(),e=>e.isKind(I.Column)?e.name:e).reverse(),c)},nodeReferee(a,o){if(!Of(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):O(o)&&o.parentNode instanceof V&&o.parentNode.op?.value===`~`?pg(a,c,o):kf(o,1)?mg(a,c,o):jf(o,i.Ref)?hg(a,c,o):kf(o,0)?n.create(e):gg(a,c,o)},bindNode(i,a){if(!A(a,r.Table))return n.create(e);let o=new ag(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 Tp?r.declaration instanceof z?new sg(t,r.declaration,r,i).interpret():n.create(void 0):n.create(e)}};function pg(e,r,i){let a=P(i)??``,o=e.symbolMembers(r).getFiltered(t);if(o){let t=o.find(e=>e instanceof Sp&&e.isPublicSchema());if(t){let r=e.lookupMembers(t,I.TablePartial,a);if(r)return n.create(r)}}let s=e.lookupMembers(r,I.TablePartial,a);return s?n.create(s):new n(void 0,[new E(T.BINDING_ERROR,`TablePartial '${a}' does not exist in Schema 'public'`,i)])}function mg(e,t,r){if(!O(r))return new n(void 0);let i=qf(r)??``;if(!k(r.parentNode))return n.create(e.lookupMembers(t,I.Enum,i));let a=hm(e,r);if(a){if(a.isKind(I.Schema)){let t=If(r),o=e.lookupMembers(a,t?I.Enum:I.Schema,i);return o?n.create(o):new n(void 0,[new E(T.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,I.Schema,i);return a?n.create(a):new n(void 0,[new E(T.BINDING_ERROR,`Schema '${i}' does not exist in Schema 'public'`,r)])}return new n(void 0)}function hg(e,i,a){if(!O(a))return new n(void 0);let o=qf(a)??``;if(!k(a.parentNode)){let s=a.parent,c=s instanceof z&&s.isKind(r.Table)?e.nodeSymbol(s).getFiltered(t):void 0;if(c){let t=e.lookupMembers(c,I.Column,o);if(t)return n.create(t)}let l=e.lookupMembers(i,I.Column,o);return l?n.create(l):new n(void 0,[new E(T.BINDING_ERROR,`Column '${o}' does not exist in Table 'public.${c?.name??``}'`,a)])}let s=hm(e,a);if(s){if(s.isKind(I.Schema)){let t=e.lookupMembers(s,[I.Table,I.Schema],o);return t?n.create(t):new n(void 0,[new E(T.BINDING_ERROR,`Table or schema '${o}' does not exist`,a)])}if(s.isKind(I.Table)){let t=e.lookupMembers(s,I.Column,o);return t?n.create(t):new n(void 0,[new E(T.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(k(c.parentNode)&&c.parentNode.leftExpression===c){let t=e.lookupMembers(i,I.Schema,o);return t?n.create(t):new n(void 0,[new E(T.BINDING_ERROR,`Schema '${o}' does not exist in Schema 'public'`,a)])}let t=e.lookupMembers(i,I.Table,o);return t?n.create(t):new n(void 0,[new E(T.BINDING_ERROR,`Table '${o}' does not exist in Schema 'public'`,a)])}return new n(void 0)}function gg(e,t,r){if(!O(r))return new n(void 0);let i=qf(r)??``;if(!k(r.parentNode))return So.includes(i.toLowerCase())?new n(void 0):n.create(e.lookupMembers(t,I.Enum,i));let a=hm(e,r);if(a){if(a.isKind(I.Schema)){let t=e.lookupMembers(a,[I.Enum,I.Schema],i);return t?n.create(t):new n(void 0,[new E(T.BINDING_ERROR,`Enum or schema '${i}' does not exist`,r)])}if(a.isKind(I.Enum)){let t=e.lookupMembers(a,I.EnumField,i);return t?n.create(t):new n(void 0,[new E(T.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(k(o.parentNode)&&o.parentNode.leftExpression===o){let a=e.lookupMembers(t,I.Schema,i);return a?n.create(a):new n(void 0,[new E(T.BINDING_ERROR,`Schema '${i}' does not exist in Schema 'public'`,r)])}let a=e.lookupMembers(t,I.Enum,i);return a?n.create(a):new n(void 0,[new E(T.BINDING_ERROR,`Enum '${i}' does not exist in Schema 'public'`,r)])}return new n(void 0)}function _g(e){return e?e.split(``).every(e=>nf(e)||rf(e))&&!rf(e[0]):!1}function vg(e){return _g(e)?e:`"${bg(e)}"`}function yg(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 bg(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 xg(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`'${bg(e)}'`;let{value:t,type:n}=e;if(t==null||Ro(n)&&typeof t==`string`&&t.toLowerCase()===`null`)return`null`;if(n===`expression`)return typeof t==`string`&&t.toLowerCase().trim()===`null`?`null`:`\`${t}\``;if(Ro(n)){let e=np(t);return e===null?`\`${t}\``:e?`true`:`false`}if(Lo(n)){let e=Qf(t);return e===null?`\`${t}\``:String(e)}if(Vo(n)){let e=cp(t);return e===null?`\`${t}\``:`'${bg(e)}'`}let r=ip(t);return r===null?`\`${t}\``:`'${bg(r)}'`}function Sg(e){return(e.match(/"(?:[^"\\]|\\.)*"|[^."]+/g)||[]).map(e=>e.startsWith(`"`)&&e.endsWith(`"`)?yg(e.slice(1,-1)):e.trim()).filter(e=>e.length>0)}function Cg(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 wg(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 Sp&&n.isKind(I.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 Tg=class{constructor(e,t){this.compiler=e,this.declarationNode=t}bind(){return this.declarationNode.body instanceof U?this.bindBody(this.declarationNode.body):[]}bindBody(e){if(!e)return[];if(e instanceof H)return this.bindFields([e]);let[t,n]=_(e.body,e=>e instanceof H);return[...this.bindFields(t),...this.bindSubElements(n)]}bindFields(e){return e.flatMap(e=>e.callee?[e.callee,...e.args].flatMap(mm).flatMap(e=>{let n=e.variables.pop();if(!n)return[];let r=this.compiler.nodeReferee(n),i=r.getFiltered(t);return i instanceof Bp?[...r.getErrors(),new E(T.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():[])}},Eg={[i.Note]:{isValidBuiltinFieldValue:xf,message:`'note' must be a string literal`,assignBuiltinField(e,t,n){e.note={value:t,token:n}}},[i.Color]:{isValidBuiltinFieldValue:pf,message:`'color' must be a color literal`,assignBuiltinField(e,t){e.color=t}}},Dg=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=F(this.declarationNode),e.push(...this.interpretName(this.declarationNode.name),...this.interpretSettingList(this.declarationNode.attributeList),...this.interpretBody(this.declarationNode.body)),og(this.compiler,this.tableGroup,this.symbol,Eg,this.filepath),n.create(this.tableGroup,e)}interpretName(e){let t=[],{name:n,schemaName:r}=fp(e);return r.length>=2&&(this.tableGroup.name=n,this.tableGroup.schemaName=r.join(`.`),t.push(new E(T.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]=_(e.body,e=>e instanceof H);return[...this.interpretFields(t),...this.interpretSubElements(n)]}interpretSubElements(e){return e.flatMap(e=>{switch(e.getElementKind()){case r.Note:this.tableGroup.note={value:dp(N(e.body instanceof U?e.body.body[0].callee:e.body.callee)),token:F(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(I.Table)){let{name:e,schema:t}=r.interpretedName(this.compiler,this.filepath);return{name:e,schemaName:t}}let i=M(e.callee);return i.length>2&&n.push(new E(T.UNSUPPORTED,`Nested schema is not supported`,e)),{name:i.pop(),schemaName:i.join(`.`)||null}}),n}interpretSettingList(e){let t=D(e).getValue();this.tableGroup.color=t.color?.length?pp(t.color?.at(0)?.value):void 0;let[n]=t.note||[];return this.tableGroup.note=n&&{value:dp(N(n?.value)),token:F(n)},this.tableGroup.metadata=gp(t,Object.keys(Eg)),[]}},Og={getDuplicateError(e,t,n){return new E(T.DUPLICATE_NAME,`TableGroup '${e}' already exists in schema '${t}'`,n)},getFieldDuplicateError(e,t){return new E(T.DUPLICATE_NAME,`Duplicate TableGroupField '${e}'`,t)}},kg={nodeSymbol(i,a){let o=i.nodeFullname(a).getFiltered(t),s=o?.at(-1);return A(a,r.TableGroup)?new n(i.symbolFactory.create(Dp,{declaration:a,name:s},a.filepath)):j(a,r.TableGroup)?new n(i.symbolFactory.create(Op,{declaration:a,name:o?.map(vg).join(`.`)},a.filepath)):n.create(e)},symbolMembers(r,i){if(i.isKind(I.TableGroup)){let e=i.declaration;if(!(e instanceof z))return new n([]);let a=Vf(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(I.TableGroupField)||!e.declaration)continue;let t=`${e.kind}:${e.name}`;if(e.name!==void 0){let n=e.declaration instanceof z&&e.declaration.name?e.declaration.name:e.declaration,r=c.get(t);r?(s.push(Og.getFieldDuplicateError(e.name,r)),s.push(Og.getFieldDuplicateError(e.name,n))):c.set(t,n)}}return new n(o,s)}return i.isKind(I.TableGroupField)?new n([]):n.create(e)},nodeReferee(i,a){if(!O(a)||!Of(a,r.TableGroup)||a.parent&&Af(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):Ag(i,s,a)},bindNode(i,a){if(!A(a,r.TableGroup))return n.create(e);let o=new Tg(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!A(o,r.TableGroup)||!(i instanceof Dp)?n.create(e):pm(t,o)?new Dg(t,i,a).interpret():n.create(void 0)}};function Ag(e,r,i){let a=qf(i)??``;if(!k(i.parentNode)){let o=e.symbolMembers(r).getFiltered(t);if(o){let t=o.find(e=>e instanceof Sp&&e.isPublicSchema());if(t){let r=e.lookupMembers(t,I.Table,a);if(r)return n.create(r)}}let s=e.lookupMembers(r,I.Table,a);return s?n.create(s):new n(void 0,[new E(T.BINDING_ERROR,`Table '${a}' does not exist in Schema 'public'`,i)])}let o=hm(e,i);if(o){if(o.isKind(I.Schema)){let t=e.lookupMembers(o,[I.Table,I.Schema],a);return t?n.create(t):new n(void 0,[new E(T.BINDING_ERROR,`Table or schema '${a}' does not exist`,i)])}return new n(void 0)}let s=e.lookupMembers(r,I.Schema,a);return s?n.create(s):new n(void 0,[new E(T.BINDING_ERROR,`Schema '${a}' does not exist`,i)])}var jg=class{constructor(e,t){this.compiler=e,this.declarationNode=t}bind(){return this.declarationNode.body instanceof U?this.bindBody(this.declarationNode.body):[]}bindBody(e){if(!e)return[];if(e instanceof H)return this.bindFields([e]);let[t,n]=_(e.body,e=>e instanceof H);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(g(n)instanceof W){let e=D(g(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=Uf(e);if(!t)return[];let n=t.variables.pop();return n?this.compiler.nodeReferee(n).getErrors():[]}bindInlineRef(e){return mm(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():[])}},Mg=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??F(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}=fp(e);return this.tablePartial.name=t,[]}interpretSettingList(e){let t=D(e).getValue(),n=va(t[i.HeaderColor]);this.tablePartial.headerColor=n?pp(n.value):void 0;let[r]=t[i.Note]||[];return this.tablePartial.note=r&&{value:dp(N(r?.value)),token:F(r)},[]}interpretBody(e){let[t,n]=_(e.body,e=>e instanceof H);return[...this.interpretFields(t),...this.interpretSubElements(n)]}interpretSubElements(e){return e.flatMap(e=>{switch(e.getElementKind()){case r.Note:return this.tablePartial.note={value:dp(N(e.body instanceof U?e.body.body[0].callee:e.body.callee)),token:F(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=qf(e.callee)??``,r.token=F(e);let o=hp(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?.isIncrementSet(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)??{};r.metadata=gp(c,cg);let 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 Sm))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:F(n.rightToken())}}),r.checks=(c[i.Check]||[]).map(e=>({token:F(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()}},Ng={getDuplicateError(e,t,n){return new E(T.DUPLICATE_NAME,`TablePartial '${e}' already exists in schema '${t}'`,n)}},Pg={nodeSymbol(i,a){let o=i.nodeFullname(a).getFiltered(t)?.at(-1);return A(a,r.TablePartial)?new n(i.symbolFactory.create(Ap,{declaration:a,name:o},a.filepath)):j(a,r.TablePartial)?new n(i.symbolFactory.create(Ep,{declaration:a,name:o},a.filepath)):n.create(e)},symbolMembers(i,a){if(a.isKind(I.TablePartial)){let e=a.declaration;if(!(e instanceof z))return new n([]);let r=Vf(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(I.Column)||!e.declaration)continue;let t=e.name;if(t!==void 0){let n=e.declaration instanceof z&&e.declaration.name?e.declaration.name:e.declaration,r=c.get(t);r?(s.push(dg.getColumnDuplicateError(t,r)),s.push(dg.getColumnDuplicateError(t,n))):c.set(t,n)}}return new n(o,s)}return a.isKind(I.Column)&&A(a.declaration?.parent,r.TablePartial)?new n([]):n.create(e)},nodeReferee(a,o){if(!O(o)&&!k(o)||!Of(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):kf(o,1)?Fg(a,c,o):jf(o,i.Ref)?Ig(a,c,o):Lg(a,c,o)},bindNode(i,a){if(!A(a,r.TablePartial))return n.create(e);let o=new jg(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 Ap?r.declaration instanceof z?new Mg(t,r,i).interpret():n.create(void 0):n.create(e)}};function Fg(e,t,r){if(!O(r))return new n(void 0);let i=qf(r)??``;if(!k(r.parentNode))return n.create(e.lookupMembers(t,I.Enum,i));let a=hm(e,r);if(a){if(a.isKind(I.Schema)){let t=e.lookupMembers(a,[I.Enum,I.Schema],i);return t?n.create(t):new n(void 0,[new E(T.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,I.Schema,i);return a?n.create(a):new n(void 0,[new E(T.BINDING_ERROR,`Schema '${i}' does not exist in Schema 'public'`,r)])}return new n(void 0)}function Ig(e,i,a){if(!O(a))return new n(void 0);let o=qf(a)??``;if(!k(a.parentNode)){let s=a.parent;if(s instanceof z&&s.isKind(r.TablePartial)){let r=e.nodeSymbol(s).getFiltered(t);if(r){let t=e.lookupMembers(r,I.Column,o);return t?n.create(t):new n(void 0,[new E(T.BINDING_ERROR,`Column '${o}' does not exist in TablePartial '${r.name}'`,a)])}}let c=e.lookupMembers(i,I.Column,o);return c?n.create(c):new n(void 0,[new E(T.BINDING_ERROR,`Column '${o}' does not exist`,a)])}let s=hm(e,a);if(s){if(s.isKind(I.Schema)){let t=e.lookupMembers(s,[I.Table,I.Schema],o);return t?n.create(t):new n(void 0,[new E(T.BINDING_ERROR,`Table or schema '${o}' does not exist`,a)])}if(s.isKind(I.Table)){let t=e.lookupMembers(s,I.Column,o);return t?n.create(t):new n(void 0,[new E(T.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(k(c.parentNode)&&c.parentNode.leftExpression===c){let t=e.lookupMembers(i,I.Schema,o);return t?n.create(t):new n(void 0,[new E(T.BINDING_ERROR,`Schema '${o}' does not exist in Schema 'public'`,a)])}let t=e.lookupMembers(i,I.Table,o);return t?n.create(t):new n(void 0,[new E(T.BINDING_ERROR,`Table '${o}' does not exist in Schema 'public'`,a)])}return new n(void 0)}function Lg(e,t,r){if(!O(r))return new n(void 0);let i=qf(r)??``;if(!k(r.parentNode))return So.includes(i.toLowerCase())?new n(void 0):n.create(e.lookupMembers(t,I.Enum,i));let a=hm(e,r);if(a){if(a.isKind(I.Schema)){let t=e.lookupMembers(a,[I.Enum,I.Schema],i);return t?n.create(t):new n(void 0,[new E(T.BINDING_ERROR,`Enum or schema '${i}' does not exist`,r)])}if(a.isKind(I.Enum)){let t=e.lookupMembers(a,I.EnumField,i);return t?n.create(t):new n(void 0,[new E(T.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(k(o.parentNode)&&o.parentNode.leftExpression===o){let a=e.lookupMembers(t,I.Schema,i);return a?n.create(a):new n(void 0,[new E(T.BINDING_ERROR,`Schema '${i}' does not exist in Schema 'public'`,r)])}let a=e.lookupMembers(t,I.Enum,i);return a?n.create(a):new n(void 0,[new E(T.BINDING_ERROR,`Enum '${i}' does not exist in Schema 'public'`,r)])}return new n(void 0)}var Rg={symbolMembers(r,i){if(!i.isKind(I.Schema)||!(i instanceof Sp))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=Bg(r,i,e,c);l.push(...n.getErrors());let a=n.getFiltered(t);a&&s.push(a),s.push(...Vg(r,i,e))}for(let{importPath:e,node:t}of o.reuses.wildcard)s.push(...Ug(r,i,e,t,c));for(let e of o.uses.selective){let n=Bg(r,i,e,c);l.push(...n.getErrors());let a=n.getFiltered(t);a&&s.push(a),s.push(...Vg(r,i,e))}for(let{importPath:e,node:t}of o.uses.wildcard)s.push(...Ug(r,i,e,t,c));s.push(...c.values());let u=[...s];{let e=s.filter(e=>e.isKind(I.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(I.TableGroup)))}}for(let t of e)u.push(...Gg(r,i,t))}let d=new Set,f=u.filter(e=>{if(e instanceof Bp&&e.isKind(I.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(I.Schema))continue;let t=e instanceof Bp?e.useSpecifierDeclaration??e.declaration:e.declaration instanceof z&&e.declaration.name?e.declaration.name:e.declaration;t&&e.name!==void 0&&l.push(zg(e.kind,e.name,a.join(`.`),t))}else p.set(t,e)}return new n(f,l)}};function zg(e,t,n,r){switch(e){case I.Table:return dg.getDuplicateError(t,n,r);case I.Enum:return Gm.getDuplicateError(t,n,r);case I.TablePartial:return Ng.getDuplicateError(t,n,r);case I.TableGroup:return Og.getDuplicateError(t,n,r);case I.DiagramView:return Lm.getDuplicateError(t,n,r);default:return new E(T.DUPLICATE_NAME,`Duplicate ${e} '${t}' in schema '${n}'`,r)}}function Bg(e,r,i,a){let o=Zh(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(Sp,{name:o.schemaName,parent:r},r.filepath)),n.create(void 0)}function Vg(e,n,r,i=new Set){if(r.getSymbolKind()!==I.Schema||!r.name)return[];let a=e.nodeReferee(r.name).getFiltered(t);if(!a||!a.isKind(I.Schema))return[];let o=qh.visibleName(e,r),s=n.qualifiedName;return!o||o.length!==s.length||!o.every((e,t)=>e===s[t])?[]:Hg(e,n,r,a,i)}function Hg(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(Bp,{kind:t.kind,declaration:t.originalSymbol.declaration,usedSymbol:t.originalSymbol,useSpecifierDeclaration:r,name:t.name},n.filepath));for(let t of[...c])t.isKind(I.TableGroup)&&c.push(...Gg(e,n,t));for(let i of s.reuses.selective)if(c.push(...Vg(e,n,i,a)),Zh(e,n,i).kind===`direct`){let a=e.nodeSymbol(i).getFiltered(t);a&&a.canBeImported&&c.push(e.symbolFactory.create(Bp,{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=Wg(e,t,n.qualifiedName);i&&c.push(...Hg(e,n,r,i,a))}return c}function Ug(e,n,r,i,a,o=new Set){if(o.has(r))return[];o.add(r);let s=Wg(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(Bp,{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(Sp,{name:t.name},n.filepath));let{reuses:{selective:u,wildcard:d}}=c;for(let r of u){let i=Bg(e,n,r,a).getFiltered(t);i&&l.push(i),l.push(...Vg(e,n,r))}for(let{importPath:t}of d)l.push(...Ug(e,n,t,i,a,o));return l}function Wg(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 Gg(e,n,r){if(!r.isKind(I.TableGroup)||!(r instanceof Bp))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(I.TableGroupField)||!t.declaration)continue;let n=t.declaration.callee;if(!n)continue;let i=M(n);if(!i||i.length===0)continue;let a=i.length<=1?[y]:i.slice(0,-1);if(a.length!==o.length||!o.every((e,t)=>e===a[t]))continue;let c=t.declaration.filepath,l=Kg(e,c,i);l&&s.push(e.symbolFactory.create(Bp,{kind:I.Table,declaration:l.declaration,usedSymbol:l,useSpecifierDeclaration:void 0,name:l.name},r.filepath))}return s}function Kg(e,n,r){if(r.length===1){let i=e.usableMembers(n).getFiltered(t);return i?i.nonSchemaMembers.find(e=>e.isKind(I.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(I.Table)&&e.name===a)}var qg=class{constructor(e,t){this.compiler=e,this.declarationNode=t}bind(){return this.bindBody(this.declarationNode.body)}bindBody(e){if(!e||e instanceof H)return[];let t=e.body.filter(e=>e instanceof z);return this.bindSubElements(t)}bindSubElements(e){return e.flatMap(e=>e.type?this.compiler.bindNode(e).getErrors():[])}},Jg={[i.Color]:{isValidBuiltinFieldValue:mf,message:`'color' must be a color literal or 'none'`,assignBuiltinField(e,t){e.color=t}}},Yg=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=F(this.declarationNode);let e=[...this.interpretName(),...this.interpretSettingList(this.declarationNode.attributeList),...this.interpretBody(this.declarationNode.body)];return og(this.compiler,this.note,this.symbol,Jg,this.filepath),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=D(e).getValue();return t.color?.length&&(this.note.color=pp(t.color.at(0)?.value)),this.note.metadata=gp(t,Object.keys(Jg)),[]}interpretBody(e){let[t,n]=_(e.body,e=>e instanceof H);return t.length!==1||n.length>0?[new E(T.INVALID_NOTE,`Invalid note syntax`,e)]:[...this.interpretNote(t[0])]}interpretNote(e){let t=N(e.callee)??``;return this.note.content=dp(t),[]}},Xg={nodeSymbol(i,a){return!A(a,r.Note)||!(a.parentNode instanceof R)?n.create(e):new n(i.symbolFactory.create(kp,{declaration:a,name:i.nodeFullname(a).getFiltered(t)?.at(-1)},a.filepath))},symbolMembers(t,r){return r.isKind(I.StickyNote)?new n([]):n.create(e)},bindNode(t,i){return A(i,r.Note)?n.create(void 0,new qg(t,i).bind()):n.create(e)},interpretSymbol(t,r,i){return r instanceof kp?r.declaration instanceof z?new Yg(t,r,i).interpret():n.create(void 0):n.create(e)}};function Zg(e){let t=e.targetKind?.value?.toLowerCase();return Object.values(yp).find(e=>e.toLowerCase()===t)}function Qg(e,t,n){let r=[];return t.length>1&&r.push(...t.map(t=>new E(n.duplicate,`'${e}' can only appear once`,t))),t.forEach(t=>{bf(t.value)||r.push(new E(n.invalidValue,`Custom setting '${e}' must be a string or a color literal`,t.value||t.name||t))}),r}function $g(e,t,n){if(!n.length)return;let{name:r,symbolKind:i}=n[0],a=e.lookupMembers(t,i,r);return n.length>1&&a?$g(e,a,n.slice(1)):a}function e_(e,t){if(e.length===0)return[];let n;switch(t){case yp.Table:n=[...Array(e.length-1).fill(I.Schema),I.Table];break;case yp.Column:n=e.length===1?[I.Column]:[...Array(e.length-2).fill(I.Schema),I.Table,I.Column];break;case yp.TableGroup:n=[...Array(e.length-1).fill(I.Schema),I.TableGroup];break;case yp.Note:n=[...Array(e.length-1).fill(I.Schema),I.StickyNote];break;default:break}return e.map((e,t)=>({name:e,symbolKind:n[t]}))}function t_(e,t){let n=vm(e,t.filepath);if(!n)return;let r=Zg(t),i=M(t.name);if(!i?.length||!r)return;let a=e_(i,r),{name:o,symbolKind:s}=a[0];if(o===`public`&&s===I.Schema){let t=_m(e,n);if(t)return $g(e,t,a.slice(1))}return $g(e,n,a)}var n_=class{constructor(e,t){this.compiler=e,this.declarationNode=t}bind(){return[...this.bindTargetElement(this.declarationNode.name),...this.bindBody(this.declarationNode.body)]}bindTargetElement(e){let t=Zg(this.declarationNode);return!M(e)?.length||!t||t_(this.compiler,this.declarationNode)?[]:[new E(T.BINDING_ERROR,`cannot find metadata target element`,e??this.declarationNode)]}bindBody(e){return e instanceof U?e.body.filter(e=>e instanceof z).flatMap(e=>e.type?this.compiler.bindNode(e).getErrors():[]):[]}},r_=class{constructor(e,t,n){this.compiler=e,this.declarationNode=t.declaration,this.filepath=n,this.values={}}interpret(){let e=this.interpretValues(this.declarationNode.body);return new n(this.values,e)}interpretValues(e){if(!(e instanceof U))return[];for(let t of e.body){if(!(t instanceof z))continue;let e=t.type?.value;if(!e)continue;let n=_p(t.body instanceof H?t.body.callee:void 0);n&&(this.values[e]={value:e===`note`?dp(n):n,token:F(t)})}return[]}},i_=[Jh,fg,Km,Ih,Ym,Mm,Gh,kh,kg,Pg,Xg,{nodeMetadata(t,i){return A(i,r.Metadata)?new n(new Em(i)):new n(e)},nodeReferee(t,i){if(!O(i))return new n(e);let a=i.parentOfKind(z);return!a||!A(a,r.Metadata)||!a.name?.containsEq(i)?new n(e):!M(a.name)||!Zg(a)?new n(void 0):new n(t_(t,a))},bindNode(t,i){return A(i,r.Metadata)?new n(void 0,new n_(t,i).bind()):new n(e)},interpretMetadata(t,i,a){return i instanceof Em?A(i.declaration,r.Metadata)?new r_(t,i,a).interpret():new n(void 0):new n(e)}},Rg,Rm,Eh];function a_(t,...r){for(let i of i_){let a=i[t];if(a){let t=a(...r);if(t instanceof n&&!t.hasValue(e))return t}}return n.create(e)}function o_(r){let i=a_(`nodeSymbol`,this,r);return i.hasValue(e)?n.create(t):i}function s_(r){let i=a_(`symbolMembers`,this,r);return i.hasValue(e)?n.create(t):i}function c_(r){let i=a_(`nodeReferee`,this,r);return i.hasValue(e)?n.create(t):i}function l_(r){let i=a_(`bindNode`,this,r);return i.hasValue(e)?n.create(t):i}function u_(r){let i=a_(`nodeMetadata`,this,r);return i.hasValue(e)?n.create(t):i}function d_(r,i){let a=a_(`interpretSymbol`,this,r,i);return a.hasValue(e)?n.create(t):a}function f_(r,i){let a=a_(`interpretMetadata`,this,r,i);return a.hasValue(e)?n.create(t):a}var p_=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 E(T.INVALID_CHECKS_CONTEXT,`A Checks can only appear inside a Table or a TablePartial`,this.declarationNode);return this.declarationNode.parent instanceof R?[e]:this.declarationNode.parent?.isKind(r.Table,r.TablePartial)?[]:[e]}validateName(e){return e?[new E(T.UNEXPECTED_NAME,`A Checks shouldn't have a name`,e)]:[]}validateAlias(e){return e?[new E(T.UNEXPECTED_ALIAS,`A Checks shouldn't have an alias`,e)]:[]}validateSettingList(e){return e?[new E(T.UNEXPECTED_SETTINGS,`A Checks shouldn't have a setting list`,e)]:[]}validateBody(e){if(!e)return[];if(e instanceof H)return[new E(T.UNEXPECTED_SIMPLE_BODY,`A Checks must have a complex body`,e)];let[t,n]=_(e.body,e=>e instanceof H);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 g(n)instanceof W&&t.push(...this.validateFieldSetting(n.pop())),(n.length>1||!(n[0]instanceof Xp))&&t.push(new E(T.INVALID_CHECKS_FIELD,`A check field must be a function expression`,e)),t})}validateFieldSetting(e){let t=D(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 E(T.DUPLICATE_CHECK_SETTING,`'${e}' can only appear once`,t))),t.forEach(t=>{xf(t.value)||n.push(new E(T.INVALID_CHECK_SETTING_VALUE,`'${e}' must be a string`,t))});break;default:t.forEach(t=>n.push(new E(T.UNKNOWN_CHECK_SETTING,`Unknown check setting '${e}'`,t)))}return n}validateSubElements(e){return e.flatMap(e=>e.type?this.compiler.validateNode(e).getErrors():[])}},m_={validateNode(t,i){if(!A(i,r.Checks))return n.create(e);let a=new p_(t,i);return n.create(void 0,a.validate())},nodeFullname(t,i){return A(i,r.Checks)?i.name?new n(void 0,[new E(T.UNEXPECTED_NAME,`A Checks shouldn't have a name`,i.name)]):new n(void 0):n.create(e)},nodeAlias(t,i){return A(i,r.Checks)?i.alias?new n(void 0,[new E(T.UNEXPECTED_ALIAS,`A Checks shouldn't have an alias`,i.alias)]):new n(void 0):n.create(e)},nodeSettings(t,i){return A(i,r.Checks)?i.attributeList?new n({},[new E(T.UNEXPECTED_SETTINGS,`A Checks shouldn't have a setting list`,i.attributeList)]):new n({}):n.create(e)}},h_=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 z&&this.declarationNode.parent.isKind(r.Project)?[]:[new E(T.INVALID_CUSTOM_CONTEXT,`A Custom element can only appear in a Project`,this.declarationNode)]}validateName(e){return e?[new E(T.UNEXPECTED_NAME,`A Custom element shouldn't have a name`,e)]:[]}validateAlias(e){return e?[new E(T.UNEXPECTED_NAME,`A Custom element shouldn't have an alias`,e)]:[]}validateSettingList(e){return e?[new E(T.UNEXPECTED_SETTINGS,`A Custom element shouldn't have a setting list`,e)]:[]}validateBody(e){if(!e)return[];if(e instanceof U)return[new E(T.UNEXPECTED_COMPLEX_BODY,`A Custom element can only have an inline field`,e)];let t=[];return xf(e.callee)||t.push(new E(T.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 E(T.INVALID_CUSTOM_ELEMENT_VALUE,`A Custom element value can only be a string`,e))),t}};function g_(e){return e instanceof z&&!!e.type?.value}var __={validateNode(t,r){if(!g_(r))return n.create(e);let i=new h_(t,r);return n.create(void 0,i.validate())},nodeFullname(t,r){return g_(r)?r.name?new n(void 0,[new E(T.UNEXPECTED_NAME,`A custom field shouldn't have a name`,r.name)]):new n(void 0):n.create(e)},nodeAlias(t,r){return g_(r)?r.alias?new n(void 0,[new E(T.UNEXPECTED_NAME,`A custom field shouldn't have an alias`,r.alias)]):new n(void 0):n.create(e)},nodeSettings(t,r){return g_(r)?r.attributeList?new n({},[new E(T.UNEXPECTED_SETTINGS,`A custom field shouldn't have a setting list`,r.attributeList)]):new n({}):n.create(e)}},v_=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 z?[new E(T.INVALID_DIAGRAMVIEW_CONTEXT,`DiagramView must appear top-level`,this.declarationNode)]:[]}validateName(e){return e?lf(e)?[]:[new E(T.INVALID_NAME,`A DiagramView name must be a single identifier`,e)]:[new E(T.NAME_NOT_FOUND,`A DiagramView must have a name`,this.declarationNode)]}validateAlias(e){return e?[new E(T.UNEXPECTED_ALIAS,`A DiagramView shouldn't have an alias`,e)]:[]}validateSettingList(e){let t=D(e),n=t.getErrors(),r=t.getValue();for(let e of Object.keys(r))n.push(...r[e].map(t=>new E(T.UNEXPECTED_SETTINGS,`Unknown '${e}' setting for DiagramView`,t)));return n}validateBody(e){if(!e)return{errors:[],warnings:[]};if(e instanceof H)return{errors:[new E(T.UNEXPECTED_SIMPLE_BODY,`A DiagramView's body must be a block`,e)],warnings:[]};let[t,n]=_(e.body,e=>e instanceof H),r=this.validateSubElements(n);return{errors:[...this.validateFields(t),...r.errors],warnings:r.warnings}}validateFields(e){return e.flatMap(e=>Sf(e.callee)?e.args.length>0?e.args.map(e=>new E(T.INVALID_DIAGRAMVIEW_FIELD,`DiagramView field should only have a single name`,e)):[]:[new E(T.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 E(T.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(uf(e))return t.push(new E(T.UNEXPECTED_SIMPLE_BODY,`${e.type?.value} body must be a block`,e.bodyColon)),{errors:t,warnings:n};if(!e.body||!(e.body instanceof U))return{errors:t,warnings:n};let r=e.body,i=r.body.some(e=>e instanceof H&&Sf(e.callee)),a=r.body.some(e=>e instanceof H&&!Sf(e.callee));return i&&a&&n.push(new tf(T.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 U))return t;let n=e.body.body.filter(e=>e instanceof H);for(let e of n)Sf(e.callee)||(e.args.length>0||!M(e.callee))&&t.push(...e.args.map(e=>new E(T.INVALID_DIAGRAMVIEW_FIELD,`DiagramView field should only have a single name`,e)));return t}},y_={validateNode(t,i){if(!A(i,r.DiagramView))return n.create(e);let{errors:a,warnings:o}=new v_(t,i).validate();return n.create(void 0,a,o)},nodeFullname(t,i){if(A(i,r.DiagramView)){if(!i.name)return new n(void 0,[new E(T.NAME_NOT_FOUND,`A DiagramView must have a name`,i)]);let e=M(i.name);return e?new n(e):new n(void 0)}else if(j(i,r.DiagramViewTables,r.DiagramViewNotes,r.DiagramViewSchemas,r.DiagramViewTableGroups)){let e=M(i.callee);return e?(e.length===1&&j(i,r.DiagramViewTables)&&e.unshift(y),new n(e)):new n(void 0)}return new n(e)},nodeAlias(t,i){return A(i,r.DiagramView)?new n(void 0):n.create(e)}},b_=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 z?[new E(T.INVALID_PROJECT_CONTEXT,`An Enum can only appear top-level`,this.declarationNode)]:[]}validateName(e){return e?e instanceof tm?[new E(T.INVALID_NAME,`Wildcard (*) is not allowed as an Enum name`,e)]:sf(e)?[]:[new E(T.INVALID_NAME,`An Enum name must be of the form <enum> or <schema>.<enum>`,e)]:[new E(T.NAME_NOT_FOUND,`An Enum must have a name`,this.declarationNode)]}validateAlias(e){return e?[new E(T.UNEXPECTED_ALIAS,`An Enum shouldn't have an alias`,e)]:[]}validateSettingList(e){return e?[new E(T.UNEXPECTED_SETTINGS,`An Enum shouldn't have a setting list`,e)]:[]}validateBody(e){if(!e)return[];if(e instanceof H)return this.validateFields([e]);let[t,n]=_(e.body,e=>e instanceof H);return[...this.validateFields(t),...this.validateSubElements(n)]}validateFields(e){if(e.length===0)return[new E(T.EMPTY_ENUM,`An Enum must have at least one element`,this.declarationNode)];let t=[];for(let n of e){n.callee&&!O(n.callee)&&t.push(new E(T.INVALID_ENUM_ELEMENT_NAME,`An enum field must be an identifier or a quoted identifier`,n.callee));let e=[...n.args];g(e)instanceof W?(t.push(...this.validateFieldSettings(g(e))),e.pop()):e[0]instanceof W&&(t.push(...this.validateFieldSettings(e[0])),e.shift()),e.length>0&&t.push(...e.map(e=>new E(T.INVALID_ENUM_ELEMENT,`An Enum must have only a field and optionally a setting list`,e)))}return t}validateFieldSettings(e){let t=D(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 E(T.DUPLICATE_ENUM_ELEMENT_SETTING,`'note' can only appear once`,e))),t.forEach(e=>{xf(e.value)||n.push(new E(T.INVALID_ENUM_ELEMENT_SETTING,`'note' must be a string`,e))});break;default:t.forEach(t=>n.push(new E(T.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():[])}},x_={validateNode(t,i){return A(i,r.Enum)?n.create(void 0,new b_(t,i).validate()):n.create(e)},nodeFullname(t,i){if(A(i,r.Enum)){if(!i.name)return new n(void 0,[new E(T.NAME_NOT_FOUND,`An Enum must have a name`,i)]);if(!sf(i.name))return new n(void 0,[new E(T.INVALID_NAME,`An Enum name must be of the form <enum> or <schema>.<enum>`,i.name)]);let e=M(i.name);return e?.length===1&&e.unshift(y),new n(e)}if(j(i,r.Enum)){let e=P(i.callee);return new n(e===void 0?void 0:[e])}return n.create(e)},nodeAlias(t,i){return A(i,r.Enum)?i.alias?new n(void 0,[new E(T.UNEXPECTED_ALIAS,`An Enum shouldn't have an alias`,i.alias)]):new n(void 0):j(i,r.Enum)?new n(void 0):n.create(e)},nodeSettings(t,a){if(A(a,r.Enum))return a.attributeList?new n({},[new E(T.UNEXPECTED_SETTINGS,`An Enum shouldn't have a setting list`,a.attributeList)]):new n({});if(j(a,r.Enum)){let e=[...a.args],t;if(g(e)instanceof W?t=g(e):e[0]instanceof W&&(t=e[0]),!t)return new n({});let r=D(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 E(T.DUPLICATE_ENUM_ELEMENT_SETTING,`'note' can only appear once`,e))),t.forEach(e=>{xf(e.value)||o.push(new E(T.INVALID_ENUM_ELEMENT_SETTING,`'note' must be a string`,e))}),c[e]=t;break;default:t.forEach(t=>o.push(new E(T.UNKNOWN_ENUM_ELEMENT_SETTING,`Unknown enum field setting '${e}'`,t)))}return new n(c,o)}return n.create(e)}},S_=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 E(T.INVALID_INDEXES_CONTEXT,`An Indexes can only appear inside a Table or a TablePartial`,this.declarationNode);return this.declarationNode.parent instanceof R?[e]:this.declarationNode.parent?.isKind(r.Table,r.TablePartial)?[]:[e]}validateName(e){return e?[new E(T.UNEXPECTED_NAME,`An Indexes shouldn't have a name`,e)]:[]}validateAlias(e){return e?[new E(T.UNEXPECTED_ALIAS,`An Indexes shouldn't have an alias`,e)]:[]}validateSettingList(e){return e?[new E(T.UNEXPECTED_SETTINGS,`An Indexes shouldn't have a setting list`,e)]:[]}validateBody(e){if(!e)return[];if(e instanceof H)return[new E(T.UNEXPECTED_SIMPLE_BODY,`An Indexes must have a complex body`,e)];let[t,n]=_(e.body,e=>e instanceof H);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 g(n)instanceof W&&t.push(...this.validateFieldSetting(n.pop())),n.forEach(e=>{for(;e instanceof G;)e.argumentList&&Wf(e.argumentList)===void 0&&t.push(new E(T.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;Wf(e)===void 0&&t.push(new E(T.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=D(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 E(T.DUPLICATE_INDEX_SETTING,`'${e}' can only appear once`,t))),t.forEach(t=>{xf(t.value)||n.push(new E(T.INVALID_INDEX_SETTING_VALUE,`'${e}' must be a string`,t))});break;case`unique`:case`pk`:t.length>1&&t.forEach(t=>n.push(new E(T.DUPLICATE_INDEX_SETTING,`'${e}' can only appear once`,t))),t.forEach(t=>{t.value!==void 0&&n.push(new E(T.INVALID_INDEX_SETTING_VALUE,`'${e}' must not have a value`,t))});break;case`type`:t.length>1&&t.forEach(e=>n.push(new E(T.DUPLICATE_INDEX_SETTING,`'type' can only appear once`,e))),t.forEach(e=>{O(e.value)||n.push(new E(T.INVALID_INDEX_SETTING_VALUE,`'type' must be "btree" or "hash"`,e))});break;default:t.forEach(t=>n.push(new E(T.UNKNOWN_INDEX_SETTING,`Unknown index setting '${e}'`,t)))}return n}validateSubElements(e){return e.flatMap(e=>e.type?this.compiler.validateNode(e).getErrors():[])}},C_={validateNode(t,i){return A(i,r.Indexes)?n.create(void 0,new S_(t,i).validate()):n.create(e)},nodeFullname(t,i){return A(i,r.Indexes)?i.name?new n(void 0,[new E(T.UNEXPECTED_NAME,`An Indexes shouldn't have a name`,i.name)]):new n(void 0):j(i,r.Indexes)?new n(void 0):n.create(e)},nodeAlias(t,i){return A(i,r.Indexes)?i.alias?new n(void 0,[new E(T.UNEXPECTED_ALIAS,`An Indexes shouldn't have an alias`,i.alias)]):new n(void 0):j(i,r.Indexes)?new n(void 0):n.create(e)},nodeSettings(t,a){if(A(a,r.Indexes))return a.attributeList?new n({},[new E(T.UNEXPECTED_SETTINGS,`An Indexes shouldn't have a setting list`,a.attributeList)]):new n({});if(j(a,r.Indexes)){let e=[a.callee,...a.args],t;if(g(e)instanceof W&&(t=g(e)),!t)return new n({});let r=D(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 E(T.DUPLICATE_INDEX_SETTING,`'${e}' can only appear once`,t))),t.forEach(t=>{xf(t.value)||o.push(new E(T.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 E(T.DUPLICATE_INDEX_SETTING,`'${e}' can only appear once`,t))),t.forEach(t=>{t.value!==void 0&&o.push(new E(T.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 E(T.DUPLICATE_INDEX_SETTING,`'type' can only appear once`,e))),t.forEach(e=>{O(e.value)||o.push(new E(T.INVALID_INDEX_SETTING_VALUE,`'type' must be "btree" or "hash"`,e))}),c[e]=t;break;default:t.forEach(t=>o.push(new E(T.UNKNOWN_INDEX_SETTING,`Unknown index setting '${e}'`,t)))}return new n(c,o)}return n.create(e)}},w_=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 R)&&!(e instanceof z&&e.isKind(r.Table,r.TableGroup,r.TablePartial,r.Project))?[new E(T.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 E(T.UNEXPECTED_ALIAS,`A Note shouldn't have an alias`,e)]:[]}isStickyNote(){return this.declarationNode.parent instanceof R}validateSettingList(e){if(!e)return[];if(!this.isStickyNote())return[new E(T.UNEXPECTED_SETTINGS,`A Note shouldn't have a setting list`,e)];let t=D(e),n=t.getErrors();return Sa(t.getValue(),(e,t)=>{switch(t){case i.Color:{let t=Jg[i.Color];e.length>1&&n.push(...e.map(e=>new E(T.DUPLICATE_NOTE_SETTING,`'color' can only appear once`,e))),e.forEach(e=>{t.isValidBuiltinFieldValue(e.value)||n.push(new E(T.INVALID_NOTE_SETTING_VALUE,t.message,e.value||e.name))});break}default:n.push(...Qg(t,e,{duplicate:T.DUPLICATE_NOTE_SETTING,invalidValue:T.INVALID_NOTE_SETTING_VALUE}))}}),n}validateBody(e){if(!e)return[];if(e instanceof H)return this.validateFields([e]);let[t,n]=_(e.body,e=>e instanceof H);return[...this.validateFields(t),...this.validateSubElements(n)]}validateFields(e){let t=[];return e.length===0?[new E(T.EMPTY_NOTE,`A Note must have a content`,this.declarationNode)]:(e.length>1&&e.slice(1).forEach(e=>t.push(new E(T.NOTE_CONTENT_REDEFINED,`A Note can only contain one string`,e))),xf(e[0].callee)||t.push(new E(T.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 E(T.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():[])}},T_={validateNode(t,i){return A(i,r.Note)?n.create(void 0,new w_(t,i).validate()):n.create(e)},nodeFullname(t,i){if(!A(i,r.Note))return n.create(e);if(!(i.parent instanceof R))return i.name?new n(void 0,[new E(T.UNEXPECTED_NAME,`A Note shouldn't have a name`,i.name)]):new n(void 0);if(!i.name)return new n(void 0,[new E(T.INVALID_NAME,`Sticky note must have a name`,i)]);if(i.name instanceof tm)return new n(void 0,[new E(T.INVALID_NAME,`Wildcard (*) is not allowed as a Note name`,i.name)]);let a=M(i.name);return a===void 0?new n(void 0,[new E(T.INVALID_NAME,`Invalid name for sticky note `,i)]):new n(a)},nodeAlias(t,i){return A(i,r.Note)?i.alias?new n(void 0,[new E(T.UNEXPECTED_ALIAS,`A Note shouldn't have an alias`,i.alias)]):new n(void 0):n.create(e)},nodeSettings(t,i){return A(i,r.Note)?i.attributeList?new n({},[new E(T.UNEXPECTED_SETTINGS,`A Note shouldn't have a setting list`,i.attributeList)]):new n({}):n.create(e)}},E_={[yp.Table]:lg,[yp.Column]:ug,[yp.TableGroup]:Eg,[yp.Note]:Jg},D_=class{constructor(e,t){this.compiler=e,this.declarationNode=t}validate(){return[...this.validateTargetKind(),...this.validateTargetName(this.declarationNode.name),...this.validateBody(this.declarationNode.body)]}validateTargetKind(){return Zg(this.declarationNode)?[]:[new E(T.INVALID_METADATA_TARGET_KIND,`A Metadata target kind must be one of: ${Object.values(yp).join(`, `)}`,this.declarationNode.targetKind??this.declarationNode)]}validateTargetName(e){return e?e instanceof tm?[new E(T.INVALID_NAME,`Wildcard (*) is not allowed as a Metadata target's name`,e)]:sf(e)?[]:[new E(T.INVALID_NAME,`A Metadata target's name must be of the form <schema>.<table>, <table>.<column>, <schema>.<table>.<column> or a single identifier`,e)]:[new E(T.NAME_NOT_FOUND,`A Metadata target must have a name`,this.declarationNode)]}validateBody(e){if(!e)return[];if(e instanceof H)return[new E(T.UNEXPECTED_SIMPLE_BODY,`A Metadata's body must be a block`,e)];let[t,n]=_(e.body,e=>e instanceof H);return[...this.validateFields(t),...this.validateSubElements(n)]}validateFields(e){return e.map(e=>new E(T.INVALID_METADATA_FIELD,`A Metadata field must use the 'key: value' syntax`,e))}validateSubElements(e){let t={},n=Zg(this.declarationNode),r=e.flatMap(e=>{if(!e.type)return[];if(e.body instanceof U)return[new E(T.UNEXPECTED_COMPLEX_BODY,`A Metadata field can only have an inline value`,e.body)];let r=e.type.value.toLowerCase();t[r]||(t[r]=[]),t[r].push(e);let i=n?E_[n]?.[r]:void 0;return i?i.isValidBuiltinFieldValue(e.body?.callee)?[]:[new E(T.INVALID_METADATA_FIELD,i.message,e)]:bf(e.body?.callee)?[]:[new E(T.INVALID_METADATA_FIELD,`A Metadata field value must be a string or a color literal`,e.body??e)]});return r.push(...Object.values(t).flatMap(e=>e.length<=1?[]:e.map(e=>new E(T.DUPLICATE_METADATA_FIELD,`Duplicate Metadata fields are defined`,e)))),r}},O_={validateNode(t,i){return A(i,r.Metadata)?new n(void 0,new D_(t,i).validate()):new n(e)},nodeFullname(t,i){return A(i,r.Metadata)?new n(void 0):new n(e)},nodeAlias(t,i){return A(i,r.Metadata)?new n(void 0):new n(e)},nodeSettings(t,i){return A(i,r.Metadata)?new n({}):new n(e)}},k_=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)}},A_={validateNode(t,r){return Df(r)?n.create(void 0,new k_(t,r).validate().getErrors()):n.create(e)},nodeFullname(t,r){return Df(r)?new n(void 0):n.create(e)},nodeAlias(t,r){return Df(r)?new n(void 0):n.create(e)},nodeSettings(t,r){return Df(r)?new n({}):n.create(e)}},j_=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 z?[new E(T.INVALID_PROJECT_CONTEXT,`A Project can only appear top-level`,this.declarationNode)]:[]}validateName(e){return e?lf(e)?new n(M(e)):new n(void 0,[new E(T.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 E(T.UNEXPECTED_ALIAS,`A Project shouldn't have an alias`,e)]):new n(void 0)}validateSettingList(e){return e?new n({},[new E(T.UNEXPECTED_SETTINGS,`A Project shouldn't have a setting list`,e)]):new n({})}validateBody(e){if(!e)return[];if(e instanceof H)return[new E(T.UNEXPECTED_SIMPLE_BODY,`A Project's body must be a block`,e)];let[t,n]=_(e.body,e=>e instanceof H);return[...t.map(e=>new E(T.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():[])}},M_={validateNode(t,i){return A(i,r.Project)?n.create(void 0,new j_(t,i).validate()):n.create(e)},nodeFullname(t,i){return A(i,r.Project)?i.name?lf(i.name)?new n(M(i.name)):new n(void 0,[new E(T.INVALID_NAME,`A Project's name is optional or must be an identifier or a quoted identifer`,i.name)]):new n(void 0):j(i,r.Project)?new n(void 0):n.create(e)},nodeAlias(t,i){return A(i,r.Project)&&i.alias?new n(void 0,[new E(T.UNEXPECTED_ALIAS,`A Project shouldn't have an alias`,i.alias)]):j(i,r.Project)?new n(void 0):n.create(e)},nodeSettings(t,i){return A(i,r.Project)?i.attributeList?new n({},[new E(T.UNEXPECTED_SETTINGS,`A Project shouldn't have a setting list`,i.attributeList)]):new n({}):j(i,r.Project)?new n({}):n.create(e)}},N_=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 R||e instanceof z&&e.isKind(r.Table)?[]:[new E(T.INVALID_RECORDS_CONTEXT,`Records can only appear at top-level or inside a Table`,this.declarationNode)]}validateName(e){return e instanceof tm?[new E(T.INVALID_NAME,`Wildcard (*) is not allowed as a Records name`,e)]:this.declarationNode.parent instanceof R?this.validateTopLevelName(e):this.validateInsideTableName(e)}validateTopLevelName(e){if(!(e instanceof G))return[new E(T.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||!sf(e.callee))&&t.push(new E(T.INVALID_RECORDS_NAME,`Records table reference must be a valid table name`,e.callee||e)),(!e.argumentList||!vf(e.argumentList))&&t.push(new E(T.INVALID_RECORDS_NAME,`Records column list must be simple column names`,e.argumentList||e)),t}validateInsideTableName(e){return e&&!vf(e)?[new E(T.INVALID_RECORDS_NAME,`Records inside a Table can only have a column list like (col1, col2, ...)`,e)]:[]}validateAlias(e){return e?[new E(T.UNEXPECTED_ALIAS,`Records cannot have an alias`,e)]:[]}validateSettingList(e){return e?[new E(T.UNEXPECTED_SETTINGS,`Records cannot have a setting list`,e)]:[]}validateBody(e){if(!e)return[];if(e instanceof H)return this.validateDataRow(e);let[t,n]=_(e.body,e=>e instanceof H);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 E(T.INVALID_RECORDS_FIELD,`Invalid record row structure`,e)),t;if(e.callee instanceof Qp)for(let n of e.callee.elementList)this.isValidRecordValue(n)||t.push(new E(T.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 E(T.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 im||gf(e)||xf(e)||e instanceof Xp)return!0;if(O(e)){let t=e.expression.variable.value.toLowerCase();return So.includes(t)}if(k(e)){let t=M(e);return t!==void 0&&t.length>0}return!1}validateSubElements(e){return e.flatMap(e=>e.type?this.compiler.validateNode(e).getErrors():[])}},P_={validateNode(t,i){return A(i,r.Records)?n.create(void 0,new N_(t,i).validate()):n.create(e)},nodeFullname(i,a){if(A(a,r.Records)){if(a.name instanceof tm)return new n(void 0,[new E(T.INVALID_NAME,`Wildcard (*) is not allowed as a Records name`,a.name)]);if(a.parent instanceof R){if(!(a.name instanceof G))return new n(void 0,[new E(T.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||!sf(a.name.callee))&&e.push(new E(T.INVALID_RECORDS_NAME,`Records table reference must be a valid table name`,a.name.callee||a.name)),(!a.name.argumentList||!vf(a.name.argumentList))&&e.push(new E(T.INVALID_RECORDS_NAME,`Records column list must be simple column names`,a.name.argumentList||a.name));let t=M(a.name.callee);return t?.length===1&&t.unshift(y),new n(t,e)}else{let e=a.parent&&i.nodeFullname(a.parent).getFiltered(t);return a.name&&!vf(a.name)?new n(e,[new E(T.INVALID_RECORDS_NAME,`Records inside a Table can only have a column list like (col1, col2, ...)`,a.name)]):new n(e)}}return j(a,r.Records)?new n(void 0):n.create(e)},nodeAlias(t,i){return A(i,r.Records)?i.alias?new n(void 0,[new E(T.UNEXPECTED_ALIAS,`Records cannot have an alias`,i.alias)]):new n(void 0):j(i,r.Records)?new n(void 0):n.create(e)},nodeSettings(t,i){return A(i,r.Records)?i.attributeList?new n({},[new E(T.UNEXPECTED_SETTINGS,`Records cannot have a setting list`,i.attributeList)]):new n({}):j(i,r.Records)?new n({}):n.create(e)}},F_=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 R?[]:[new E(T.INVALID_REF_CONTEXT,`A Ref must appear top-level`,this.declarationNode)]}validateName(e){return e?e instanceof tm?[new E(T.INVALID_NAME,`Wildcard (*) is not allowed as a Ref name`,e)]:lf(e)?[]:[new E(T.INVALID_NAME,`A Ref's name is optional or must be an identifier or a quoted identifer`,e)]:[]}validateAlias(e){return e?[new E(T.UNEXPECTED_ALIAS,`A Ref shouldn't have an alias`,e)]:[]}validateSettingList(e){return e?[new E(T.UNEXPECTED_SETTINGS,`A Ref shouldn't have a setting list`,e)]:[]}validateBody(e){if(!e)return[];if(e instanceof H)return this.validateFields([e]);let[t,n]=_(e.body,e=>e instanceof H);return[...this.validateFields(t),...this.validateSubElements(n)]}validateFields(e){if(e.length===0)return[new E(T.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 E(T.REF_REDEFINED,`A Ref can only contain one binary relationship`,e))),e.forEach(e=>{if(e.callee&&!Mf(e.callee)&&t.push(new E(T.INVALID_REF_FIELD,`A Ref field must be a binary relationship`,e.callee)),e.callee&&Mf(e.callee)){let n=Uf(e.callee.leftExpression)??{variables:[],tupleElements:[]},r=n.variables.length+Math.min(n.tupleElements.length,1),i=Uf(e.callee.rightExpression)??{variables:[],tupleElements:[]},a=i.variables.length+Math.min(i.tupleElements.length,1);r<2&&t.push(new E(T.INVALID_REF_FIELD,`Invalid column reference`,e.callee.leftExpression||e.callee)),a<2&&t.push(new E(T.INVALID_REF_FIELD,`Invalid column reference`,e.callee.rightExpression||e.callee))}e.callee&&!Nf(e.callee)&&t.push(new E(T.UNEQUAL_FIELDS_BINARY_REF,`Unequal fields in ref endpoints`,e.callee));let n=[...e.args];if(g(n)instanceof W){let e=this.validateFieldSettings(g(n));t.push(...e),n.pop()}else n[0]instanceof W&&(t.push(...this.validateFieldSettings(n[0])),n.shift());n.length>0&&t.push(...n.map(e=>new E(T.INVALID_REF_FIELD,`A Ref field should only have a single binary relationship`,e)))}),t}validateFieldSettings(e){return L_(e).getErrors()}validateSubElements(e){return e.flatMap(e=>e.type?this.compiler.validateNode(e).getErrors():[])}};function I_(e){if(!(O(e)&&e.expression.variable.kind!==v.QUOTED_STRING)&&!(e instanceof qp))return!1;let t;if(t=e instanceof qp?Rf(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 L_(e){let t=D(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 E(T.DUPLICATE_REF_SETTING,`'${e}' can only appear once`,t))),t.forEach(t=>{I_(t.value)||r.push(new E(T.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 E(T.DUPLICATE_REF_SETTING,`'color' can only appear once`,e))),t.forEach(e=>{pf(e.value)||r.push(new E(T.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 E(T.DUPLICATE_REF_SETTING,`'inactive' can only appear once`,e))),t.forEach(e=>{e.value&&r.push(new E(T.INVALID_REF_SETTING_VALUE,`'inactive' cannot have a value`,e))}),o[e]=t;break;default:t.forEach(t=>r.push(new E(T.UNKNOWN_REF_SETTING,`Unknown ref setting '${e}'`,t)))}return new n(o,r)}var R_={validateNode(t,i){return A(i,r.Ref)?n.create(void 0,new F_(t,i).validate()):n.create(e)},nodeFullname(t,i){return A(i,r.Ref)?i.name?lf(i.name)?new n(M(i.name)):new n(void 0,[new E(T.INVALID_NAME,`A Ref's name is optional or must be an identifier or a quoted identifer`,i.name)]):new n(void 0):j(i,r.Ref)?new n(void 0):n.create(e)},nodeAlias(t,i){return A(i,r.Ref)?i.alias?new n(void 0,[new E(T.UNEXPECTED_ALIAS,`A Ref shouldn't have an alias`,i.alias)]):new n(void 0):j(i,r.Ref)?new n(void 0):n.create(e)},nodeSettings(t,i){if(A(i,r.Ref))return i.attributeList?new n({},[new E(T.UNEXPECTED_SETTINGS,`A Ref shouldn't have a setting list`,i.attributeList)]):new n({});if(j(i,r.Ref)){let e=[...i.args],t;return g(e)instanceof W?t=g(e):e[0]instanceof W&&(t=e[0]),t?L_(t):new n({})}return n.create(e)}},z_=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 z?[new E(T.INVALID_TABLE_CONTEXT,`Table must appear top-level`,this.declarationNode)]:[]}validateName(e){return e?e instanceof am?[new E(T.INVALID_NAME,`Invalid array as Table name, maybe you forget to add a space between the name and the setting list?`,e)]:e instanceof tm?[new E(T.INVALID_NAME,`Wildcard (*) is not allowed as a Table name`,e)]:sf(e)?[]:[new E(T.INVALID_NAME,`A Table name must be of the form <table> or <schema>.<table>`,e)]:[new E(T.NAME_NOT_FOUND,`A Table must have a name`,this.declarationNode)]}validateAlias(e){return e?cf(e)?[]:[new E(T.INVALID_ALIAS,`Table aliases can only contain alphanumeric and underscore unless surrounded by double quotes`,e)]:[]}validateSettingList(e){return B_(e).getErrors()}validateBody(e){if(!e)return[];if(e instanceof H)return[new E(T.UNEXPECTED_SIMPLE_BODY,`A Table's body must be a block`,e)];let[t,n]=_(e.body,e=>e instanceof H);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 E(T.INVALID_COLUMN,`A column must have a type`,e.callee)),O(e.callee)||t.push(new E(T.INVALID_COLUMN_NAME,`A column name must be an identifier or a quoted identifier`,e.callee)),e.args[0]&&!yf(e.args[0])&&t.push(new E(T.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?(df(e.callee)||t.push(new E(T.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 E(T.INVALID_TABLE_PARTIAL_INJECTION,`A partial injection does not have any trailing attributes`,e))),t):[]};return e.flatMap(e=>e.callee instanceof V&&e.callee.op?.value===`~`?n(e):t(e))}validateFieldSetting(e){return V_(e).getErrors()}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 E(T.NOTE_REDEFINED,`Duplicate notes are defined`,e))),t}};function B_(e){let t=D(e),r=t.getErrors(),a=t.getValue();return Sa(a,(e,t)=>{switch(t){case i.HeaderColor:e.length>1&&r.push(...e.map(e=>new E(T.DUPLICATE_TABLE_SETTING,`'headercolor' can only appear once`,e))),e.forEach(e=>{let t=lg[i.HeaderColor];t.isValidBuiltinFieldValue(e.value)||r.push(new E(T.INVALID_TABLE_SETTING_VALUE,t.message,e.value||e.name))});break;case i.Note:e.length>1&&r.push(...e.map(e=>new E(T.DUPLICATE_TABLE_SETTING,`'note' can only appear once`,e))),e.forEach(e=>{let t=lg[i.Note];t.isValidBuiltinFieldValue(e.value)||r.push(new E(T.INVALID_TABLE_SETTING_VALUE,t.message,e.value||e.name))});break;default:r.push(...Qg(t,e,{duplicate:T.DUPLICATE_TABLE_SETTING,invalidValue:T.INVALID_TABLE_SETTING_VALUE}))}}),new n(a,r)}function V_(e){if(!e.slice(0,-1).every(Cf)||!e.slice(-1).every(e=>Cf(e)||e instanceof W))return new n({},e.map(e=>new E(T.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;g(e)instanceof W&&(t=e.pop());let r=D(t),a=r.getErrors(),o=r.getValue();e.forEach(e=>{let t=(P(e)??``).toLowerCase();if(t!==i.PK&&t!==i.Unique){a.push(new E(T.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 E(T.DUPLICATE_COLUMN_SETTING,`Either one of 'primary key' and 'pk' can appear`,e))),Sa(o,(e,t)=>{switch(t){case i.Note:e.length>1&&a.push(...e.map(e=>new E(T.DUPLICATE_COLUMN_SETTING,`note can only appear once`,e))),e.forEach(e=>{let t=ug[i.Note];t.isValidBuiltinFieldValue(e.value)||a.push(new E(T.INVALID_COLUMN_SETTING_VALUE,t.message,e.value||e.name))});break;case i.Ref:e.forEach(e=>{_f(e.value)||a.push(new E(T.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 E(T.DUPLICATE_COLUMN_SETTING,`primary key can only appear once`,e))),e.forEach(e=>{e.value!==void 0&&a.push(new E(T.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 E(T.DUPLICATE_COLUMN_SETTING,`'pk' can only appear once`,e))),e.forEach(e=>{e instanceof B&&e.value!==void 0&&a.push(new E(T.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 E(T.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 E(T.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 E(T.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 E(T.DUPLICATE_COLUMN_SETTING,`'null' can only appear once`,e))),e.forEach(e=>{e.value!==void 0&&a.push(new E(T.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 E(T.DUPLICATE_COLUMN_SETTING,`'unique' can only appear once`,e))),e.forEach(e=>{e instanceof B&&e.value!==void 0&&a.push(new E(T.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 E(T.DUPLICATE_COLUMN_SETTING,`'increment' can only appear once`,e))),e.forEach(e=>{e instanceof B&&e.value!==void 0&&a.push(new E(T.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 E(T.DUPLICATE_COLUMN_SETTING,`'default' can only appear once`,e))),e.forEach(e=>{hf(e.value)||a.push(new E(T.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 Xp||a.push(new E(T.INVALID_COLUMN_SETTING_VALUE,`'check' must be a function expression`,e.value||e.name))});break;default:a.push(...Qg(t,e,{duplicate:T.DUPLICATE_COLUMN_SETTING,invalidValue:T.INVALID_COLUMN_SETTING_VALUE}))}}),new n(o,a)}var H_={validateNode(t,i){return A(i,r.Table)?n.create(void 0,new z_(t,i).validate()):n.create(e)},nodeFullname(t,i){if(A(i,r.Table)){if(!i.name)return new n(void 0,[new E(T.NAME_NOT_FOUND,`A Table must have a name`,i)]);if(i.name instanceof am)return new n(void 0,[new E(T.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=M(i.name);return e?.length===1&&e.unshift(y),new n(e)}if(j(i,r.Table)){if(df(i.callee)){let e=P(i.callee.expression);return new n(e?[e]:void 0)}let e=P(i.callee);return new n(e?[e]:void 0)}return n.create(e)},nodeAlias(t,i){return A(i,r.Table)?i.alias?cf(i.alias)?new n(P(i.alias)):new n(void 0,[new E(T.INVALID_ALIAS,`Table aliases can only contain alphanumeric and underscore unless surrounded by double quotes`,i.alias)]):new n(void 0):j(i,r.Table)?new n(void 0):n.create(e)},nodeSettings(t,i){return A(i,r.Table)?i.attributeList?B_(i.attributeList):new n({}):j(i,r.Table)?V_(i.args.slice(1)):n.create(e)}},U_=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 z?[new E(T.INVALID_TABLEGROUP_CONTEXT,`TableGroup must appear top-level`,this.declarationNode)]:[]}validateName(e){return e?e instanceof tm?[new E(T.INVALID_NAME,`Wildcard (*) is not allowed as a TableGroup name`,e)]:lf(e)?[]:[new E(T.INVALID_NAME,`A TableGroup name must be a single identifier`,e)]:[new E(T.NAME_NOT_FOUND,`A TableGroup must have a name`,this.declarationNode)]}validateAlias(e){return e?[new E(T.UNEXPECTED_ALIAS,`A TableGroup shouldn't have an alias`,e)]:[]}validateSettingList(e){return W_(e).getErrors()}validateBody(e){if(!e)return[];if(e instanceof H)return[new E(T.UNEXPECTED_SIMPLE_BODY,`A TableGroup's body must be a block`,e)];let[t,n]=_(e.body,e=>e instanceof H);return[...this.validateFields(t),...this.validateSubElements(n)]}validateFields(e){return e.flatMap(e=>{let t=[];return e.callee&&M(e.callee)===void 0&&t.push(new E(T.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 E(T.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 E(T.NOTE_REDEFINED,`Duplicate notes are defined`,e))),t}};function W_(e){let t=D(e),r=t.getErrors(),a=t.getValue(),o={};for(let[e,t]of Object.entries(a))switch(e){case i.Color:case i.Note:{let n=Eg[e];t.length>1&&r.push(...t.map(t=>new E(T.DUPLICATE_TABLE_SETTING,`'${e}' can only appear once`,t))),t.forEach(e=>{n.isValidBuiltinFieldValue(e.value)||r.push(new E(T.INVALID_TABLE_SETTING_VALUE,n.message,e.value||e.name))}),o[e]=t;break}default:r.push(...Qg(e,t,{duplicate:T.DUPLICATE_TABLE_SETTING,invalidValue:T.INVALID_TABLE_SETTING_VALUE})),o[e]=t;break}return new n(o,r)}var G_={validateNode(t,i){return A(i,r.TableGroup)?n.create(void 0,new U_(t,i).validate()):n.create(e)},nodeFullname(t,i){if(A(i,r.TableGroup))return i.name?lf(i.name)?new n(M(i.name)):new n(void 0,[new E(T.INVALID_NAME,`A TableGroup name must be a single identifier`,i.name)]):new n(void 0,[new E(T.NAME_NOT_FOUND,`A TableGroup must have a name`,i)]);if(j(i,r.TableGroup)){let e=M(i.callee);return e?.length===1&&e.unshift(y),new n(e)}return n.create(e)},nodeAlias(t,i){return A(i,r.TableGroup)?i.alias?new n(void 0,[new E(T.UNEXPECTED_ALIAS,`A TableGroup shouldn't have an alias`,i.alias)]):new n(void 0):j(i,r.TableGroup)?new n(void 0):n.create(e)},nodeSettings(t,i){return A(i,r.TableGroup)?W_(i.attributeList):j(i,r.TableGroup)?new n({}):n.create(e)}},K_=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 z?[new E(T.INVALID_TABLE_PARTIAL_CONTEXT,`TablePartial must appear top-level`,this.declarationNode)]:[]}validateName(e){return e?e instanceof tm?[new E(T.INVALID_NAME,`Wildcard (*) is not allowed as a TablePartial name`,e)]:lf(e)?[]:[new E(T.INVALID_NAME,`A TablePartial name must be an identifier or a quoted identifer`,e)]:[new E(T.NAME_NOT_FOUND,`A TablePartial must have a name`,this.declarationNode)]}validateAlias(e){return e?[new E(T.UNEXPECTED_ALIAS,`A TablePartial shouldn't have an alias`,e)]:[]}validateSettingList(e){let t=D(e),n=t.getErrors();return Sa(t.getValue(),(e,t)=>{switch(t){case i.HeaderColor:e.length>1&&n.push(...e.map(e=>new E(T.DUPLICATE_TABLE_PARTIAL_SETTING,`'${t}' can only appear once`,e))),e.forEach(e=>{pf(e.value)||n.push(new E(T.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 E(T.DUPLICATE_TABLE_PARTIAL_SETTING,`'${t}' can only appear once`,e))),e.forEach(e=>{xf(e.value)||n.push(new E(T.INVALID_TABLE_PARTIAL_SETTING_VALUE,`'${t}' must be a string literal`,e.value||e.name))});break;default:n.push(...e.map(e=>new E(T.UNKNOWN_TABLE_PARTIAL_SETTING,`Unknown '${t}' setting`,e)))}}),n}validateBody(e){if(!e)return[];if(e instanceof H)return[new E(T.UNEXPECTED_SIMPLE_BODY,`A TablePartial's body must be a block`,e)];let[t,n]=_(e.body,e=>e instanceof H);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 E(T.INVALID_COLUMN,`A column must have a type`,e.callee)),O(e.callee)||t.push(new E(T.INVALID_COLUMN_NAME,`A column name must be an identifier or a quoted identifier`,e.callee)),e.args[0]&&!yf(e.args[0])&&t.push(new E(T.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=g(e);if(!e.slice(0,-1).every(Cf)||!(Cf(t)||t instanceof W))return e.map(e=>new E(T.INVALID_COLUMN,`These fields must be some inline settings optionally ended with a setting list`,e));if(e.length===0)return[];let n;g(e)instanceof W&&(n=e.pop());let r=D(n),a=r.getErrors(),o=r.getValue();e.forEach(e=>{let t=(P(e)??``).toLowerCase();if(t!==i.PK&&t!==i.Unique){a.push(new E(T.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 E(T.DUPLICATE_COLUMN_SETTING,`Either one of 'primary key' and 'pk' can appear`,e))),Sa(o,(e,t)=>{switch(t){case i.Note:e.length>1&&a.push(...e.map(e=>new E(T.DUPLICATE_COLUMN_SETTING,`'${t}' can only appear once`,e))),e.forEach(e=>{xf(e.value)||a.push(new E(T.INVALID_COLUMN_SETTING_VALUE,`'${t}' must be a quoted string`,e.value||e.name))});break;case i.Ref:e.forEach(e=>{_f(e.value)||a.push(new E(T.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 E(T.DUPLICATE_COLUMN_SETTING,`'${t}' can only appear once`,e))),e.forEach(e=>{e.value!==void 0&&a.push(new E(T.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 E(T.DUPLICATE_COLUMN_SETTING,`'${t}' can only appear once`,e))),e.forEach(e=>{e instanceof B&&e.value!==void 0&&a.push(new E(T.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 E(T.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 E(T.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 E(T.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 E(T.DUPLICATE_COLUMN_SETTING,`'${t}' can only appear once`,e))),e.forEach(e=>{e.value!==void 0&&a.push(new E(T.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 E(T.DUPLICATE_COLUMN_SETTING,`'${t}' can only appear once`,e))),e.forEach(e=>{e instanceof B&&e.value!==void 0&&a.push(new E(T.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 E(T.DUPLICATE_COLUMN_SETTING,`'${t}' can only appear once`,e))),e.forEach(e=>{e instanceof B&&e.value!==void 0&&a.push(new E(T.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 E(T.DUPLICATE_COLUMN_SETTING,`'${t}' can only appear once`,e))),e.forEach(e=>{hf(e.value)||a.push(new E(T.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 Xp||a.push(new E(T.INVALID_COLUMN_SETTING_VALUE,`'check' must be a function expression`,e.value||e.name))});break;default:a.push(...Qg(t,e,{duplicate:T.DUPLICATE_COLUMN_SETTING,invalidValue:T.INVALID_COLUMN_SETTING_VALUE}))}}),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 E(T.NOTE_REDEFINED,`Duplicate notes are defined`,e))),t}};function q_(e){let t=D(e),r=t.getErrors(),a=t.getValue();return Sa(a,(e,t)=>{switch(t){case i.HeaderColor:e.length>1&&r.push(...e.map(e=>new E(T.DUPLICATE_TABLE_PARTIAL_SETTING,`'${t}' can only appear once`,e))),e.forEach(e=>{pf(e.value)||r.push(new E(T.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 E(T.DUPLICATE_TABLE_PARTIAL_SETTING,`'${t}' can only appear once`,e))),e.forEach(e=>{xf(e.value)||r.push(new E(T.INVALID_TABLE_PARTIAL_SETTING_VALUE,`'${t}' must be a string literal`,e.value||e.name))});break;default:r.push(...e.map(e=>new E(T.UNKNOWN_TABLE_PARTIAL_SETTING,`Unknown '${t}' setting`,e)))}}),new n(a,r)}function J_(e){let t=g(e);if(e.length>0&&(!e.slice(0,-1).every(Cf)||!(Cf(t)||t instanceof W)))return new n({},e.map(e=>new E(T.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;g(e)instanceof W&&(r=e.pop());let a=D(r),o=a.getErrors(),s=a.getValue();e.forEach(e=>{let t=(P(e)??``).toLowerCase();if(t!==i.PK&&t!==i.Unique){o.push(new E(T.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 E(T.DUPLICATE_COLUMN_SETTING,`Either one of 'primary key' and 'pk' can appear`,e))),Sa(s,(e,t)=>{switch(t){case i.Note:e.length>1&&o.push(...e.map(e=>new E(T.DUPLICATE_COLUMN_SETTING,`'${t}' can only appear once`,e))),e.forEach(e=>{xf(e.value)||o.push(new E(T.INVALID_COLUMN_SETTING_VALUE,`'${t}' must be a quoted string`,e.value||e.name))});break;case i.Ref:e.forEach(e=>{_f(e.value)||o.push(new E(T.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 E(T.DUPLICATE_COLUMN_SETTING,`'${t}' can only appear once`,e))),e.forEach(e=>{e.value!==void 0&&o.push(new E(T.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 E(T.DUPLICATE_COLUMN_SETTING,`'${t}' can only appear once`,e))),e.forEach(e=>{e instanceof B&&e.value!==void 0&&o.push(new E(T.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 E(T.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 E(T.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 E(T.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 E(T.DUPLICATE_COLUMN_SETTING,`'${t}' can only appear once`,e))),e.forEach(e=>{e.value!==void 0&&o.push(new E(T.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 E(T.DUPLICATE_COLUMN_SETTING,`'${t}' can only appear once`,e))),e.forEach(e=>{e instanceof B&&e.value!==void 0&&o.push(new E(T.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 E(T.DUPLICATE_COLUMN_SETTING,`'${t}' can only appear once`,e))),e.forEach(e=>{e instanceof B&&e.value!==void 0&&o.push(new E(T.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 E(T.DUPLICATE_COLUMN_SETTING,`'${t}' can only appear once`,e))),e.forEach(e=>{hf(e.value)||o.push(new E(T.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 Xp||o.push(new E(T.INVALID_COLUMN_SETTING_VALUE,`'check' must be a function expression`,e.value||e.name))});break;default:o.push(...Qg(t,e,{duplicate:T.DUPLICATE_COLUMN_SETTING,invalidValue:T.INVALID_COLUMN_SETTING_VALUE}))}}),new n(s,o)}var Y_={validateNode(t,i){return A(i,r.TablePartial)?n.create(void 0,new K_(t,i).validate()):n.create(e)},nodeFullname(t,i){if(A(i,r.TablePartial))return i.name?lf(i.name)?new n(M(i.name)):new n(void 0,[new E(T.INVALID_NAME,`A TablePartial name must be an identifier or a quoted identifer`,i.name)]):new n(void 0,[new E(T.NAME_NOT_FOUND,`A TablePartial must have a name`,i)]);if(j(i,r.TablePartial)){let e=P(i.callee);return new n(e?[e]:void 0)}return n.create(e)},nodeAlias(t,i){return A(i,r.TablePartial)?i.alias?new n(void 0,[new E(T.UNEXPECTED_ALIAS,`A TablePartial shouldn't have an alias`,i.alias)]):new n(P(i.alias)):j(i,r.TablePartial)?new n(void 0):n.create(e)},nodeSettings(t,i){return A(i,r.TablePartial)?q_(i.attributeList):j(i,r.TablePartial)?J_(i.args.slice(1)):n.create(e)}},X_=class{constructor(e,t){this.compiler=e,this.declarationNode=t}validate(){return[...this.validateContext(),...this.validateBody()]}validateContext(){return this.declarationNode.parent instanceof R?[]:[new E(T.INVALID_USE_CONTEXT,`'use' must appear at the top level`,this.declarationNode)]}validateBody(){let e=[];if(this.declarationNode.importPath&&!bo.isRelative(this.declarationNode.importPath.value)&&e.push(new E(T.INVALID_USE_SPECIFIER_NAME,`Import path must be a relative path (starting with './' or '../')`,this.declarationNode.importPath)),this.declarationNode.specifiers instanceof tm)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 E(T.INVALID_USE_SPECIFIER_KIND,`A use specifier must have a type (e.g. table, enum)`,e)):e.isKind(...Object.values(vp))||t.push(new E(T.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()]}},Z_=[H_,x_,P_,C_,m_,R_,M_,G_,Y_,T_,O_,y_,A_,{validateNode(t,r){return r instanceof Wp?n.create(void 0,new X_(t,r).validate()):n.create(e)},nodeFullname(t,r){if(!Ef(r))return n.create(e);let i=M(r.name);return!i||i.length===0?n.create(void 0,[new E(T.INVALID_NAME,`Use specifiers must have a valid name (simple name or schema-qualified name)`,r)]):r.isKind(vp.TableGroup)&&i.length>1?n.create(i,[new E(T.INVALID_USE_SPECIFIER_NAME,`A TableGroup name must be a simple name`,r)]):r.isKind(vp.TablePartial)&&i.length>1?n.create(i,[new E(T.INVALID_USE_SPECIFIER_NAME,`A TablePartial name must be a simple name`,r)]):r.isKind(vp.Note)&&i.length>1?n.create(i,[new E(T.INVALID_USE_SPECIFIER_NAME,`A Sticky note name must be a simple name`,r)]):(i.length===1&&!r.isKind(vp.Schema)&&i.unshift(y),new n(i))},nodeAlias(t,r){return Ef(r)?r.alias?cf(r.alias)?new n(P(r.alias)):new n(void 0,[new E(T.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 Wp?n.create({}):n.create(e)}},__];function Q_(t,...r){for(let n of Z_){let i=n[t];if(i){let t=i(...r);if(!t.hasValue(e))return t}}return n.create(e)}function $_(r){let i=Q_(`validateNode`,this,r);return i.hasValue(e)?n.create(t):i}function ev(r){let i=Q_(`nodeSettings`,this,r);return i.hasValue(e)?n.create(t):i}function tv(r){let i=Q_(`nodeFullname`,this,r);return i.hasValue(e)?n.create(t):i}function nv(r){let i=Q_(`nodeAlias`,this,r);return i.hasValue(e)?n.create(t):i}var rv=typeof document<`u`&&document.location&&document.location.hash.indexOf(`pseudo=true`)>=0;function iv(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}),rv&&(n=`[`+n.replace(/[aouei]/g,`$&$&`)+`]`),n}function av(e,t,...n){return iv(t,n)}var ov=!1,sv=!1,cv=!1,lv=!1,uv=void 0,dv=typeof self==`object`?self:typeof global==`object`?global:{},fv=void 0;dv.vscode!==void 0&&dv.vscode.process!==void 0?fv=dv.vscode.process:typeof process<`u`&&(fv=process);var pv=typeof fv?.versions?.electron==`string`&&fv?.type===`renderer`;if(typeof navigator==`object`&&!pv)uv=navigator.userAgent,ov=uv.indexOf(`Windows`)>=0,sv=uv.indexOf(`Macintosh`)>=0,(uv.indexOf(`Macintosh`)>=0||uv.indexOf(`iPad`)>=0||uv.indexOf(`iPhone`)>=0)&&navigator.maxTouchPoints&&navigator.maxTouchPoints,cv=uv.indexOf(`Linux`)>=0,uv?.indexOf(`Mobi`),lv=!0,av({key:`ensureLoaderPluginIsLoaded`,comment:[`{Locked}`]},`_`),navigator.language;else if(typeof fv==`object`){ov=fv.platform===`win32`,sv=fv.platform===`darwin`,cv=fv.platform===`linux`,cv&&fv.env.SNAP&&fv.env.SNAP_REVISION,fv.env.CI||fv.env.BUILD_ARTIFACTSTAGINGDIRECTORY;let e=fv.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.`);var mv=ov,hv=sv;lv&&dv.importScripts;var gv=uv,_v=typeof dv.postMessage==`function`&&!dv.importScripts;(()=>{if(_v){let e=[];dv.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}),dv.postMessage({vscodeScheduleAsyncWork:r},`*`)}}return e=>setTimeout(e)})();var vv=!!(gv&&gv.indexOf(`Chrome`)>=0);gv&&gv.indexOf(`Firefox`),!vv&&gv&&gv.indexOf(`Safari`),gv&&gv.indexOf(`Edg/`),gv&&gv.indexOf(`Android`);var yv;if(dv.vscode!==void 0&&dv.vscode.process!==void 0){let e=dv.vscode.process;yv={get platform(){return e.platform},get arch(){return e.arch},get env(){return e.env},cwd(){return e.cwd()}}}else yv=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 mv?`win32`:hv?`darwin`:`linux`},get arch(){},get env(){return{}},cwd(){return`/`}};var bv=yv.cwd,xv=yv.env,Sv=yv.platform,Cv=65,wv=97,Tv=90,Ev=122,Dv=46,Ov=47,kv=92,Av=58,jv=63,Mv=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 Nv(e,t){if(typeof e!=`object`||!e)throw new Mv(t,`Object`,e)}function Pv(e,t){if(typeof e!=`string`)throw new Mv(t,`string`,e)}var Fv=Sv===`win32`;function q(e){return e===Ov||e===kv}function Iv(e){return e===Ov}function Lv(e){return e>=Cv&&e<=Tv||e>=wv&&e<=Ev}function Rv(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=Ov;if(r(c)){if(!(o===l-1||s===1))if(s===2){if(i.length<2||a!==2||i.charCodeAt(i.length-1)!==Dv||i.charCodeAt(i.length-2)!==Dv){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===Dv&&s!==-1?++s:s=-1}return i}function zv(e,t){Nv(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}var Bv={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],Pv(a,`path`),a.length===0)continue}else t.length===0?a=bv():(a=xv[`=${t}`]||bv(),(a===void 0||a.slice(0,2).toLowerCase()!==t.toLowerCase()&&a.charCodeAt(2)===kv)&&(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 Lv(u)&&a.charCodeAt(1)===Av&&(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=Rv(n,!r,`\\`,q),r?`${t}\\${n}`:`${t}${n}`||`.`},normalize(e){Pv(e,`path`);let t=e.length;if(t===0)return`.`;let n=0,r,i=!1,a=e.charCodeAt(0);if(t===1)return Iv(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 Lv(a)&&e.charCodeAt(1)===Av&&(r=e.slice(0,2),n=2,t>2&&q(e.charCodeAt(2))&&(i=!0,n=3));let o=n<t?Rv(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){Pv(e,`path`);let t=e.length;if(t===0)return!1;let n=e.charCodeAt(0);return q(n)||t>2&&Lv(n)&&e.charCodeAt(1)===Av&&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];Pv(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 Bv.normalize(t)},relative(e,t){if(Pv(e,`from`),Pv(t,`to`),e===t)return``;let n=Bv.resolve(e),r=Bv.resolve(t);if(n===r||(e=n.toLowerCase(),t=r.toLowerCase(),e===t))return``;let i=0;for(;i<e.length&&e.charCodeAt(i)===kv;)i++;let a=e.length;for(;a-1>i&&e.charCodeAt(a-1)===kv;)a--;let o=a-i,s=0;for(;s<t.length&&t.charCodeAt(s)===kv;)s++;let c=t.length;for(;c-1>s&&t.charCodeAt(c-1)===kv;)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===kv&&(d=f)}if(f!==u){if(d===-1)return r}else{if(l>u){if(t.charCodeAt(s+f)===kv)return r.slice(s+f+1);if(f===2)return r.slice(s+f)}o>u&&(e.charCodeAt(i+f)===kv?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)===kv)&&(p+=p.length===0?`..`:`\\..`);return s+=d,p.length>0?`${p}${r.slice(s,c)}`:(r.charCodeAt(s)===kv&&++s,r.slice(s,c))},toNamespacedPath(e){if(typeof e!=`string`||e.length===0)return e;let t=Bv.resolve(e);if(t.length<=2)return e;if(t.charCodeAt(0)===kv){if(t.charCodeAt(1)===kv){let e=t.charCodeAt(2);if(e!==jv&&e!==Dv)return`\\\\?\\UNC\\${t.slice(2)}`}}else if(Lv(t.charCodeAt(0))&&t.charCodeAt(1)===Av&&t.charCodeAt(2)===kv)return`\\\\?\\${t}`;return e},dirname(e){Pv(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 Lv(i)&&e.charCodeAt(1)===Av&&(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&&Pv(t,`ext`),Pv(e,`path`);let n=0,r=-1,i=!0,a;if(e.length>=2&&Lv(e.charCodeAt(0))&&e.charCodeAt(1)===Av&&(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){Pv(e,`path`);let t=0,n=-1,r=0,i=-1,a=!0,o=0;e.length>=2&&e.charCodeAt(1)===Av&&Lv(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===Dv?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:zv.bind(null,`\\`),parse(e){Pv(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(Lv(i)&&e.charCodeAt(1)===Av){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===Dv?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},Vv=(()=>{if(Fv){let e=/\\/g;return()=>{let t=bv().replace(e,`/`);return t.slice(t.indexOf(`/`))}}return()=>bv()})(),Hv={resolve(...e){let t=``,n=!1;for(let r=e.length-1;r>=-1&&!n;r--){let i=r>=0?e[r]:Vv();Pv(i,`path`),i.length!==0&&(t=`${i}/${t}`,n=i.charCodeAt(0)===Ov)}return t=Rv(t,!n,`/`,Iv),n?`/${t}`:t.length>0?t:`.`},normalize(e){if(Pv(e,`path`),e.length===0)return`.`;let t=e.charCodeAt(0)===Ov,n=e.charCodeAt(e.length-1)===Ov;return e=Rv(e,!t,`/`,Iv),e.length===0?t?`/`:n?`./`:`.`:(n&&(e+=`/`),t?`/${e}`:e)},isAbsolute(e){return Pv(e,`path`),e.length>0&&e.charCodeAt(0)===Ov},join(...e){if(e.length===0)return`.`;let t;for(let n=0;n<e.length;++n){let r=e[n];Pv(r,`path`),r.length>0&&(t===void 0?t=r:t+=`/${r}`)}return t===void 0?`.`:Hv.normalize(t)},relative(e,t){if(Pv(e,`from`),Pv(t,`to`),e===t||(e=Hv.resolve(e),t=Hv.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===Ov&&(o=s)}if(s===a)if(i>a){if(t.charCodeAt(1+s)===Ov)return t.slice(1+s+1);if(s===0)return t.slice(1+s)}else r>a&&(e.charCodeAt(1+s)===Ov?o=s:s===0&&(o=0));let c=``;for(s=1+o+1;s<=n;++s)(s===n||e.charCodeAt(s)===Ov)&&(c+=c.length===0?`..`:`/..`);return`${c}${t.slice(1+o)}`},toNamespacedPath(e){return e},dirname(e){if(Pv(e,`path`),e.length===0)return`.`;let t=e.charCodeAt(0)===Ov,n=-1,r=!0;for(let t=e.length-1;t>=1;--t)if(e.charCodeAt(t)===Ov){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&&Pv(t,`ext`),Pv(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===Ov){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)===Ov){if(!i){n=a+1;break}}else r===-1&&(i=!1,r=a+1);return r===-1?``:e.slice(n,r)},extname(e){Pv(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===Ov){if(!i){n=o+1;break}continue}r===-1&&(i=!1,r=o+1),s===Dv?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:zv.bind(null,`/`),parse(e){Pv(e,`path`);let t={root:``,dir:``,base:``,ext:``,name:``};if(e.length===0)return t;let n=e.charCodeAt(0)===Ov,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===Ov){if(!s){a=c+1;break}continue}o===-1&&(s=!1,o=c+1),t===Dv?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};Hv.win32=Bv.win32=Bv,Hv.posix=Bv.posix=Hv,Fv?Bv.normalize:Hv.normalize,Fv?Bv.resolve:Hv.resolve,Fv?Bv.relative:Hv.relative,Fv?Bv.dirname:Hv.dirname,Fv?Bv.basename:Hv.basename,Fv?Bv.extname:Hv.extname,Fv?Bv.sep:Hv.sep;var Uv=/^\w[\w\d+.-]*$/,Wv=/^\//,Gv=/^\/\//;function Kv(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&&!Uv.test(e.scheme))throw Error(`[UriError]: Scheme contains illegal characters.`);if(e.path){if(e.authority){if(!Wv.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(Gv.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 qv(e,t){return!e&&!t?`file`:e}function Jv(e,t){switch(e){case`https`:case`http`:case`file`:t?t[0]!==Yv&&(t=Yv+t):t=Yv;break}return t}var J=``,Yv=`/`,Xv=/^(([^:/?#]+?):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/,Zv=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=qv(e,a),this.authority=t||J,this.path=Jv(this.scheme,n||J),this.query=r||J,this.fragment=i||J,Kv(this,a))}get fsPath(){return ry(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 $v(t,n,r,i,a)}static parse(e,t=!1){let n=Xv.exec(e);return n?new $v(n[2]||J,sy(n[4]||J),sy(n[5]||J),sy(n[7]||J),sy(n[9]||J),t):new $v(J,J,J,J,J)}static file(e){let t=J;if(mv&&(e=e.replace(/\\/g,Yv)),e[0]===Yv&&e[1]===Yv){let n=e.indexOf(Yv,2);n===-1?(t=e.substring(2),e=Yv):(t=e.substring(2,n),e=e.substring(n)||Yv)}return new $v(`file`,t,e,J,J)}static from(e,t){return new $v(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=mv&&t.scheme===`file`?e.file(Bv.join(ry(t,!0),...n)).path:Hv.join(t.path,...n),t.with({path:r})}toString(e=!1){return iy(this,e)}toJSON(){return this}static revive(t){if(!t||t instanceof e)return t;{let e=new $v(t);return e._formatted=t.external??null,e._fsPath=t._sep===Qv?t.fsPath??null:null,e}}},Qv=mv?1:void 0,$v=class extends Zv{constructor(){super(...arguments),this._formatted=null,this._fsPath=null}get fsPath(){return this._fsPath||=ry(this,!1),this._fsPath}toString(e=!1){return e?iy(this,!0):(this._formatted||=iy(this,!1),this._formatted)}toJSON(){let e={$mid:1};return this._fsPath&&(e.fsPath=this._fsPath,e._sep=Qv),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}},ey={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 ty(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=ey[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 ny(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+=ey[r]):t!==void 0&&(t+=e[n])}return t===void 0?e:t}function ry(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,mv&&(n=n.replace(/\//g,`\\`)),n}function iy(e,t){let n=t?ny:ty,r=``,{scheme:i,authority:a,path:o,query:s,fragment:c}=e;if(i&&(r+=i,r+=`:`),(a||i===`file`)&&(r+=Yv,r+=Yv),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:ty(c,!1,!1)),r}function ay(e){try{return decodeURIComponent(e)}catch{return e.length>3?e.substr(0,3)+ay(e.substr(3)):e}}var oy=/(%[0-9A-Za-z][0-9A-Za-z])+/g;function sy(e){return e.match(oy)?e.replace(oy,e=>ay(e)):e}var 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}({}),cy=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 ly(e,t){return e.getOffsetAt(t)}function uy(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 dy=class{constructor(e){this.compiler=e}provideDefinition(e,n){let{uri:r}=e,i=bo.fromUri(String(e.uri)),a=ly(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&&[Up.PRIMARY_EXPRESSION,Up.VARIABLE].includes(e.kind)&&({declaration:i}=n),i){let{startPos:e,endPos:t}=i,n=r;return r&&i.filepath&&(n=Zv.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[]}},fy=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`?cy.Error:cy.Warning}},py=class{constructor(e){this.compiler=e}provideReferences(e,n){let{uri:r}=e,i=bo.fromUri(String(r)),a=ly(e,n);this.compiler.bindProject();let o=[...this.compiler.container.stack(i,a)];for(;o.length!==0;){let e=o.pop();if(e&&[Up.ELEMENT_DECLARATION,Up.FUNCTION_APPLICATION,Up.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=Zv.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 my(e,t){return e>=t.start&&e<t.end}function hy(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 gy(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 Kp)for(let t of e.specifiers.specifiers){let e,n;if(t.name?(e=t.importKind?.value,n=P(t.name)):t.importKind&&(n=t.importKind.value??void 0),n){let i=t.alias?P(t.alias):void 0;r.push({kind:e,name:n,alias:i})}}else e.specifiers instanceof tm&&r.push({name:`*`});r.length===0&&!(e.specifiers instanceof tm)||n.push({startOffset:e.fullStart,endOffset:e.fullEnd,sourceFile:t,specifiers:r,node:e})}return n}function _y(e,t,n,r,i,a){let o=gy(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:vy(Na([...e.specifiers.filter(e=>e.name!==`*`).map(e=>`${e.kind??n} ${e.name}${e.alias?` as ${e.alias}`:``}`),l]),s,`
7
- `),removeRange:yy(a,e.startOffset,e.endOffset)}}return{topInsert:vy([l],s,`
8
- `)}}function vy(e,t,n){return`use {${n}${e.map(e=>` ${e}`).join(n)}${n}} from '${t}'${n}${n}`}function yy(e,t,n){let r=e.lastIndexOf(`
4
+ `)}function pp(e){let t=j(e);return!t||t.length===0?{schemaName:[],name:``}:{name:t[t.length-1],schemaName:t.slice(0,-1)}}function mp(e){if(pf(e))return e.expression.literal.value;if(wf(e)&&N(e)?.toLowerCase()===`none`)return Co}function hp(e){if(e){if(Sf(e)){let t=M(e);if(t!==void 0)return{value:t,type:`string`}}if(gf(e))return{type:`number`,value:dp(e)};if(wf(e))return{value:e.expression.variable.value.toLowerCase(),type:`boolean`};if(e instanceof Zp&&e.value)return{value:e.value.value,type:`expression`};if(Tf(e)){let t=Uf(e)?.at(-1),n=t?N(t):void 0;if(n!==void 0)return{value:n,type:`string`}}}}function gp(e,t){let r=``,i=null;if(t instanceof W){if(i=(t.argumentList?.elementList??[]).map(e=>gf(e)?up(e):Sf(e)?M(e):N(e)).join(`,`),r=`(${i})`,!t.callee)return new n({schemaName:null,type_name:``,args:i});t=t.callee}for(;t instanceof W||t instanceof om;)if(t instanceof W){if(r=`(${(t.argumentList?.elementList??[]).map(e=>gf(e)?up(e):Sf(e)?M(e):N(e)).join(`,`)})${r}`,!t.callee)break;t=t.callee}else if(t instanceof om){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}=pp(t);return o.length>1?new n({schemaName:o[0]??null,type_name:`${a}${r}`,args:i},[new E(T.UNSUPPORTED,`Nested schema is not supported`,t)]):new n({schemaName:o.length===0?null:o[0],type_name:`${a}${r}`,args:i})}function _p(e,t){let n=new Set(t.map(e=>e.toLowerCase())),r={};for(let[t,i]of Object.entries(e)){if(n.has(t.toLowerCase()))continue;let e=i[0],a=vp(e.value);a!==void 0&&(r[t]=a)}return r}function vp(e){if(!e)return;let t=M(e);if(t!==void 0)return t;let n=mp(e);if(n!==void 0)return n}var F=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.Metadata=`Metadata`,e.Program=`Program`,e}({}),yp={Table:`Table`,Enum:`Enum`,TableGroup:`TableGroup`,TablePartial:`TablePartial`,Note:`Note`,Schema:`Schema`},bp=function(e){return e.Table=`Table`,e.Column=`Column`,e.TableGroup=`TableGroup`,e.Note=`Note`,e}({}),xp=class{constructor(){this.id=0}reset(){this.id=0}nextId(){return this.id++}},Sp=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 P(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()}},Cp=class e extends Sp{constructor({name:e,parent:t},n,r){super({kind:`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(`.`)===y}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}},wp=class extends Sp{constructor({declaration:e,name:t},n,r){super({kind:`Enum`,declaration:e,name:t},n,r)}get canBeImported(){return!0}get originalSymbol(){return this}},Tp=class extends Sp{constructor({declaration:e,name:t},n,r){super({kind:`Enum field`,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=fp(M(i));if(a)return{value:a,token:P(r)}}},Ep=class extends Sp{constructor({declaration:e,name:t},n,r){super({kind:`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 Hp))}mergedColumns(e){return this.members(e).filter(e=>e.isKind(`Column`))}partialInjections(e){return this.members(e).filter(e=>e.isKind(`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=fp(M(i));if(a)return{value:a,token:P(r)}}headercolor(e){if(!this.declaration)return;let n=e.nodeSettings(this.declaration).getFiltered(t);return n?.[i.HeaderColor]?.length?mp(n[i.HeaderColor].at(0)?.value):void 0}refs(e){return this.metadata(e).filter(e=>e.kind===bm.Ref)}checks(e){return this.metadata(e).filter(e=>e.kind===bm.TableChecks)}indexes(e){return this.metadata(e).filter(e=>e.kind===bm.Indexes)}records(e){return this.metadata(e).filter(e=>e.kind===bm.Records)}resolvedPartials(e){return this.partialInjections(e).flatMap(n=>{if(!(n.declaration instanceof V)||!df(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===bm.Indexes));return[...t,...n]}mergedChecks(e){let t=this.checks(e),n=this.resolvedPartials(e).flatMap(t=>t.metadata(e).filter(e=>e.kind===bm.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=mp(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=fp(M(a));if(o)return{value:o,token:P(i)}},r=n(this);for(let t of this.resolvedPartials(e)){let e=n(t);e&&(r=e)}return r}},Dp=class extends Sp{constructor({declaration:e,name:t},n,r){super({kind:`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}isIncrementSet(e){return this.declaration?!!e.nodeSettings(this.declaration).getFiltered(t)?.[i.Increment]?.length:!1}increment(e){return this.isIncrementSet(e)||Ho(this.type(e)?.name??``)}default(e){if(!this.declaration)return;let n=e.nodeSettings(this.declaration).getFiltered(t)?.[i.Default]?.at(0)?.value;if(n)return hp(n)}type(e){if(!(this.declaration instanceof V))return;let n=gp(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 wp?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===bm.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=fp(M(i));if(a)return{value:a,token:P(r)}}},Op=class extends Sp{constructor({declaration:e,name:t},n,r){super({kind:`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(`TableGroup field`))}color(e){if(!this.declaration)return;let n=e.nodeSettings(this.declaration).getFiltered(t);return n?.color?.length?mp(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=fp(M(i));if(a)return{value:a,token:P(r)}}},kp=class extends Sp{constructor({declaration:e,name:t},n,r){super({kind:`TableGroup field`,declaration:e,name:t},n,r)}get canBeImported(){return!1}get originalSymbol(){return this}},Ap=class extends Sp{constructor({declaration:e,name:t},n,r){super({kind:`Note`,declaration:e,name:t},n,r)}get canBeImported(){return!0}get originalSymbol(){return this}},jp=class extends Sp{constructor({declaration:e,name:t},n,r){super({kind:`TablePartial`,declaration:e,name:t},n,r)}get canBeImported(){return!0}get originalSymbol(){return this}},Mp=class extends Sp{constructor({declaration:e,name:t},n,r){super({kind:`PartialInjection`,declaration:e,name:t},n,r)}get canBeImported(){return!1}get originalSymbol(){return this}},Np=class extends Sp{constructor({declaration:e,name:t},n,r){super({kind:`DiagramView`,declaration:e,name:t},n,r)}get canBeImported(){return!1}get originalSymbol(){return this}},Pp=class extends Sp{constructor({declaration:e,name:t},n,r){super({kind:`DiagramView top-level wildcard`,declaration:e,name:t},n,r)}get canBeImported(){return!1}get originalSymbol(){return this}},Fp=class extends Sp{constructor({declaration:e,name:t},n,r){super({kind:`DiagramView table`,declaration:e,name:t},n,r)}get canBeImported(){return!1}get originalSymbol(){return this}},Ip=class extends Sp{constructor({declaration:e,name:t},n,r){super({kind:`DiagramView tablegroup`,declaration:e,name:t},n,r)}get canBeImported(){return!1}get originalSymbol(){return this}},Lp=class extends Sp{constructor({declaration:e,name:t},n,r){super({kind:`DiagramView note`,declaration:e,name:t},n,r)}get canBeImported(){return!1}get originalSymbol(){return this}},Rp=class extends Sp{constructor({declaration:e,name:t},n,r){super({kind:`DiagramView schema`,declaration:e,name:t},n,r)}get canBeImported(){return!1}get originalSymbol(){return this}},zp=class extends Sp{constructor({declaration:e,name:t},n,r){super({kind:`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 Cp&&r.inNestedSchema(e,t))return!0;return!1}},Bp=class extends Sp{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}},Vp=class extends Sp{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(Gp);return!e||e.isReuse}get originalSymbol(){return this.usedSymbol?this.usedSymbol.originalSymbol:this}},Hp=class extends Dp{constructor({declaration:e,name:t,injectionDeclaration:n},r,i){super({declaration:e,name:t},r,i),this.injectionDeclaration=n,this.name=t}},Up=class{constructor(){this.id=0}reset(){this.id=0}nextId(){return this.id++}},I=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 Va?Ka(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 Va?Ga(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 R||e instanceof L)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}},Wp=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}({}),L=class extends I{constructor({body:e=[],eof:t,source:n},r,i){super(r,`<program>`,i,[...e,t]),this.source=n,this.body=e,this.eof=t}get declarations(){return this.body.filter(e=>e.kind===`<element-declaration>`)}get uses(){return this.body.filter(e=>e.kind===`<use-declaration>`)}},Gp=class extends I{constructor({useKeyword:e,specifiers:t,fromKeyword:n,importPath:r},i,a){super(i,`<use-declaration>`,a,[e,t,n,r]),this.useKeyword=e,this.specifiers=t,this.fromKeyword=n,this.importPath=r}get isReuse(){return Qa(this.useKeyword)}},Kp=class extends I{constructor({importKind:e,name:t,asKeyword:n,alias:r},i,a){super(i,`<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(F).find(t=>t.toLowerCase()===e)}},qp=class extends I{constructor({openBrace:e,specifiers:t=[],closeBrace:n},r,i){super(r,`<use-specifier-list>`,i,[e,...t,n]),this.openBrace=e,this.specifiers=t,this.closeBrace=n}},R=class e extends I{constructor({type:t,targetKind:n,name:r,as:i,alias:a,attributeList:o,bodyColon:s,body:c},l,u){if(super(l,`<element-declaration>`,u,[t,n,r,i,a,o,s,c]),c&&s&&!(c instanceof V||c instanceof e))throw Error(`If an element has a simple body, it must be a function application node`);this.type=t,this.targetKind=n,this.name=r,this.as=i,this.alias=a,this.attributeList=o,this.bodyColon=s,this.body=c}isKind(...e){return e.some(e=>this.type?.value.toLowerCase()===e)}getElementKind(){return Object.values(r).find(e=>this.isKind(e))}},Jp=class extends I{constructor({identifiers:e=[]},t,n){super(t,`<identifier-stream>`,n,e||[]),this.identifiers=e}},z=class extends I{constructor({name:e,colon:t,value:n},r,i){super(r,`<attribute>`,i,[e,t,n]),this.name=e,this.value=n,this.colon=t}},B=class extends I{constructor({op:e,expression:t},n,r){super(n,`<prefix-expression>`,r,[e,t]),this.op=e,this.expression=t}},Yp=class extends I{constructor({op:e,leftExpression:t,rightExpression:n},r,i){super(r,`<infix-expression>`,i,[t,e,n]),this.op=e,this.leftExpression=t,this.rightExpression=n}},Xp=class extends I{constructor({op:e,expression:t},n,r){super(n,`<postfix-expression>`,r,[t,e]),this.op=e,this.expression=t}},Zp=class extends I{constructor({value:e},t,n){super(t,`<function-expression>`,n,[e]),this.value=e}},V=class extends I{constructor({callee:e,args:t=[]},n,r){super(n,`<function-application>`,r,[e,...t]),this.callee=e,this.args=t}},H=class extends I{constructor({blockOpenBrace:e,body:t=[],blockCloseBrace:n},r,i){super(r,`<block-expression>`,i,[e,...t,n]),this.blockOpenBrace=e,this.body=t,this.blockCloseBrace=n}},U=class extends I{constructor({listOpenBracket:e,elementList:t=[],commaList:n=[],listCloseBracket:r},i,a){super(i,`<list-expression>`,a,[e,...sm(t,n),r]),this.listOpenBracket=e,this.elementList=t,this.commaList=n,this.listCloseBracket=r}},Qp=class extends I{constructor({tupleOpenParen:e,elementList:t=[],commaList:n=[],tupleCloseParen:r},i,a){super(i,`<tuple-expression>`,a,[e,...sm(t,n),r]),this.tupleOpenParen=e,this.elementList=t,this.commaList=n,this.tupleCloseParen=r}},$p=class extends I{constructor({elementList:e=[],commaList:t=[]},n,r){super(n,`<comma-expression>`,r,[...sm(e,t)]),this.elementList=e,this.commaList=t}},em=class extends Qp{constructor({groupOpenParen:e,expression:t,groupCloseParen:n},r,i){super({tupleOpenParen:e,elementList:t&&[t],commaList:[],tupleCloseParen:n},r,i),this.kind=`<group-expression>`}},W=class extends I{constructor({callee:e,argumentList:t},n,r){super(n,`<call-expression>`,r,[e,t]),this.callee=e,this.argumentList=t}},tm=class extends I{constructor({literal:e},t,n){super(t,`<literal>`,n,[e]),this.literal=e}},nm=class extends I{constructor({token:e},t,n){super(t,`<wildcard>`,n,[e]),this.token=e}},rm=class extends I{constructor({variable:e},t,n){super(t,`<variable>`,n,[e]),this.variable=e}},im=class extends I{constructor({expression:e},t,n){super(t,`<primary-expression>`,n,[e]),this.expression=e}},am=class extends I{constructor({prevToken:e},t,n){let r=Va.create(v.SPACE,n,e.endPos,e.endPos,` `,!1);super(t,`<dummy>`,n,[r])}},om=class extends I{constructor({expression:e,indexer:t},n,r){super(n,`<array>`,r,[e,t]),this.array=e,this.indexer=t}};function sm(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?br(La(e,t)):br(La(t,e))).filter(e=>e!==null)}function cm(e,t,n){let r=t,i=e;if(i instanceof W&&i.argumentList&&(r=[i.argumentList,...r],i=i.callee),!i||!wf(i)||r.length===0)return;let a=[...r],o=Rf(i),s=a.pop();if(!(s instanceof H))return;let c=g(a)instanceof U?a.pop():void 0;if(a.length===3){let e=Rf(a[1]);return!e||!Ja(e)?void 0:n.create(R,{type:o,name:a[0],as:e,alias:a[2],attributeList:c,body:s})}if(a.length===1)return n.create(R,{type:o,name:a[0],attributeList:c,body:s});if(a.length===0)return n.create(R,{type:o,attributeList:c,body:s})}function G(e){e&&(e instanceof Va?lm(e):um(e))}function lm(e){e.kind!==v.EOF&&(e.isInvalid=!0)}function um(e){if(e instanceof R)G(e.type),G(e.targetKind),G(e.name),G(e.as),G(e.alias),G(e.bodyColon),G(e.attributeList),G(e.body);else if(e instanceof Jp)e.identifiers.forEach(G);else if(e instanceof z)G(e.name),G(e.colon),G(e.value);else if(e instanceof B)G(e.op),G(e.expression);else if(e instanceof Yp)G(e.leftExpression),G(e.op),G(e.rightExpression);else if(e instanceof Xp)G(e.op),G(e.expression);else if(e instanceof H)G(e.blockOpenBrace),e.body.forEach(G),G(e.blockCloseBrace);else if(e instanceof U)G(e.listOpenBracket),e.commaList.forEach(G),e.elementList.forEach(G),G(e.listCloseBracket);else if(e instanceof Qp)G(e.tupleOpenParen),e.commaList.forEach(G),e.elementList.forEach(G),G(e.tupleCloseParen);else if(e instanceof $p)e.commaList.forEach(G),e.elementList.forEach(G);else if(e instanceof W)G(e.callee),G(e.argumentList);else if(e instanceof V)G(e.callee),e.args.forEach(G);else if(e instanceof im)G(e.expression);else if(e instanceof Zp)G(e.value);else if(e instanceof rm)G(e.variable);else if(e instanceof tm)G(e.literal);else if(e instanceof em)throw Error(`This case is handled by the TupleExpressionNode case`);else if(e instanceof om)G(e.array),G(e.indexer);else if(e instanceof L)e.body.forEach(G),G(e.eof);else if(!(e instanceof am))if(e instanceof Gp)G(e.useKeyword),G(e.specifiers),G(e.fromKeyword),G(e.importPath);else if(e instanceof qp)G(e.openBrace),e.specifiers.forEach(G),G(e.closeBrace);else if(e instanceof Kp)G(e.importKind),G(e.name),G(e.asKeyword),G(e.alias);else if(e instanceof nm)G(e.token);else throw Error(`Unreachable case in markInvalidNode`)}function dm(...e){return e.filter(e=>e!==void 0)}function fm(e){if(e instanceof L)return dm(...e.body,e.eof);if(e instanceof R)return dm(e.type,e.targetKind,e.name,e.as,e.alias,e.attributeList,e.bodyColon,e.body);if(e instanceof z)return dm(e.name,e.colon,e.value);if(e instanceof Jp)return e.identifiers;if(e instanceof tm)return e.literal?[e.literal]:[];if(e instanceof rm)return dm(e.variable);if(e instanceof B)return dm(e.op,e.expression);if(e instanceof Yp)return dm(e.leftExpression,e.op,e.rightExpression);if(e instanceof Xp)return dm(e.expression,e.op);if(e instanceof Zp)return dm(e.value);if(e instanceof V)return dm(e.callee,...e.args);if(e instanceof H)return dm(e.blockOpenBrace,...e.body,e.blockCloseBrace);if(e instanceof U)return dm(e.listOpenBracket,...pm(e.elementList,e.commaList),e.listCloseBracket);if(e instanceof Qp)return dm(e.tupleOpenParen,...pm(e.elementList,e.commaList),e.tupleCloseParen);if(e instanceof $p)return dm(...pm(e.elementList,e.commaList));if(e instanceof W)return dm(e.callee,e.argumentList);if(e instanceof im)return dm(e.expression);if(e instanceof om)return dm(e.array,e.indexer);if(e instanceof am)return[];if(e instanceof Gp)return dm(e.useKeyword,e.specifiers,e.fromKeyword,e.importPath);if(e instanceof qp)return dm(e.openBrace,...e.specifiers,e.closeBrace);if(e instanceof Kp)return dm(e.importKind,e.name,e.asKeyword,e.alias);if(e instanceof nm)return dm(e.token);throw e instanceof em?Error(`This case is already handled by TupleExpressionNode`):Error(`Unreachable - no other possible cases`)}function pm(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 mm(e,t){return e.reachableFiles(t.filepath).every(t=>e.bindFile(t).getErrors().length===0)}function hm(e){if(!e)return[];if(D(e))return[{variables:[e],tupleElements:[]}];if(e instanceof Yp){let t=Wf(e);return t?[t]:[...hm(e.leftExpression),...hm(e.rightExpression)]}if(e instanceof B||e instanceof Xp)return hm(e.expression);if(e instanceof Qp){let t=Wf(e);return t?[t]:e.elementList.flatMap(hm)}return[]}function gm(e,n){let r=n.parentNode;if(!r||!O(r)||r.rightExpression!==n)return;let i=r.leftExpression;for(;O(i);)i=i.rightExpression;return e.nodeReferee(i).getFiltered(t)??void 0}function _m(e){switch(e){case`<`:return[`1`,`*`];case`<>`:return[`*`,`*`];case`>`:return[`*`,`1`];case`-`:return[`1`,`1`];default:return}}function vm(e,n){let r=e.symbolMembers(n).getFiltered(t);if(r)return r.find(e=>e instanceof Cp&&e.isPublicSchema())}function ym(e,n){let r=e.parseFile(n).getValue().ast;return e.nodeSymbol(r).getFiltered(t)}var bm=function(e){return e.Ref=`ref`,e.PartialRef=`partial ref`,e.TableChecks=`table checks`,e.Indexes=`indexes`,e.Records=`records`,e.Project=`project`,e.MetadataElement=`metadata element`,e}({}),xm=class e{static{this.id=0}constructor(t){this.declaration=t,this.id=++e.id}intern(){return`metadata@${this.declaration.filepath.intern()}:${this.id}`}resolveOwnerPrograms(e,t){let n=this.declaration.filepath;return e.reachableFiles().flatMap(t=>ym(e,t)||[]).filter(r=>e.reachableFiles(r.filepath).some(e=>e.equals(n))&&t.every(t=>r.inNestedSchema(e,t)))}},Sm=class extends xm{constructor(e){super(e),this.kind=`ref`}container(e){let n=this.declaration.parentOfKind(R);if(n?.isKind(r.Table))return e.nodeSymbol(n).getFiltered(t)}leftColumns(e){if(this.declaration instanceof R){let t=Hf(this.declaration)[0];if(!(t instanceof V))return[];let n=t.callee;return n instanceof Yp?km(e,n.leftExpression):[]}if(this.declaration instanceof z){let n=this.declaration.parentOfKind(V);if(!n)return[];let r=e.nodeSymbol(n).getFiltered(t);return r?[r]:[]}return[]}rightColumns(e){if(this.declaration instanceof R){let t=Hf(this.declaration)[0];if(!(t instanceof V))return[];let n=t.callee;return n instanceof Yp?km(e,n.rightExpression):[]}if(this.declaration instanceof z){let t=this.declaration.value;return t instanceof B?km(e,t.expression):[]}return[]}leftTable(e){if(this.declaration instanceof R){let t=Hf(this.declaration)[0];if(!(t instanceof V))return;let n=t.callee;return n instanceof Yp?Am(e,n.leftExpression):void 0}if(this.declaration instanceof z)return this.container(e)}rightTable(e){if(this.declaration instanceof R){let t=Hf(this.declaration)[0];if(!(t instanceof V))return;let n=t.callee;return n instanceof Yp?Am(e,n.rightExpression):void 0}if(this.declaration instanceof z){let t=this.declaration.value;return t instanceof B?Am(e,t.expression)??this.container(e):void 0}}op(e){if(this.declaration instanceof R){let e=Hf(this.declaration)[0];if(!(e instanceof V))return;let t=e.callee;return t instanceof Yp?t.op?.value:void 0}if(this.declaration instanceof z){let e=this.declaration.value;return e instanceof B?e.op?.value:void 0}}active(e){if(!(this.declaration instanceof R))return!0;let n=Hf(this.declaration)[0];return n?!e.nodeSettings(n).getFiltered(t)?.[i.Inactive]?.length:!0}leftToken(){if(this.declaration instanceof R){let e=Hf(this.declaration)[0];if(e instanceof V){let t=e.callee;if(t instanceof Yp&&t.leftExpression)return t.leftExpression}}if(this.declaration instanceof z){let e=this.declaration.parentOfKind(V);if(e)return e}return this.declaration}rightToken(){if(this.declaration instanceof R){let e=Hf(this.declaration)[0];if(e instanceof V){let t=e.callee;if(t instanceof Yp&&t.rightExpression)return t.rightExpression}}return this.declaration instanceof z,this.declaration}owners(e){let t=this.leftTable(e),n=this.rightTable(e);return!t||!n?[]:this.resolveOwnerPrograms(e,[t,n])}},Cm=class extends xm{constructor(e){super(e),this.kind=`partial ref`}container(e){let n=this.declaration.parentOfKind(R);if(n?.isKind(r.TablePartial))return e.nodeSymbol(n).getFiltered(t)}leftColumns(e){if(!(this.declaration instanceof z))return[];let n=this.declaration.parentOfKind(V);if(!n)return[];let r=e.nodeSymbol(n).getFiltered(t);return r?[r]:[]}rightColumns(e){if(!(this.declaration instanceof z))return[];let t=this.declaration.value;return t instanceof B?km(e,t.expression):[]}leftTablePartial(e){if(this.declaration instanceof z)return this.container(e)}rightTable(e){if(!(this.declaration instanceof z))return;let t=this.declaration.value;if(t instanceof B)return Am(e,t.expression)??this.container(e)}op(e){if(!(this.declaration instanceof z))return;let t=this.declaration.value;if(t instanceof B)return t.op?.value}leftToken(){if(this.declaration instanceof z){let e=this.declaration.parentOfKind(V);if(e)return e}return this.declaration}rightToken(){return this.declaration instanceof z,this.declaration}owners(e){let t=this.leftTablePartial(e),n=this.rightTable(e);return!t||!n?[]:this.resolveOwnerPrograms(e,[t,n])}},wm=class extends xm{constructor(e){super(e),this.kind=`table checks`,this.ownerTable=e.parentNode?.parentOfKind(R)}owners(e){if(!this.ownerTable)return[];let n=e.nodeSymbol(this.ownerTable).getFiltered(t);return n?[n.originalSymbol]:[]}},Tm=class extends xm{constructor(e){super(e),this.kind=`indexes`,this.ownerTable=e.parentNode?.parentOfKind(R)}owners(e){if(!this.ownerTable)return[];let n=e.nodeSymbol(this.ownerTable).getFiltered(t);return n?[n.originalSymbol]:[]}},Em=class extends xm{constructor(e){super(e),this.kind=`records`}table(e){let n=this.declaration,i=n.parent;if(i instanceof R&&i.isKind(r.Table))return e.nodeSymbol(i).getFiltered(t);let a=n.name;if(!(a instanceof W))return;let o=qf(a);if(!o)return;let s=o.variables.at(-1);if(s)return e.nodeReferee(s).getFiltered(t)?.originalSymbol}owners(e){let t=this.table(e);return t?this.resolveOwnerPrograms(e,[t]):[]}},Dm=class extends xm{constructor(e){super(e),this.kind=`metadata element`}target(e){let n=this.declaration.name;if(!n)return;let r=If(n)??n;return e.nodeReferee(r).getFiltered(t)?.originalSymbol}owners(e){let n=this.target(e);if(!n)return[];if(n.kind===F.Column){let r=n.declaration?.parentOfKind(R),i=r?e.nodeSymbol(r).getFiltered(t)?.originalSymbol:void 0;if(!i)return[];n=i}return this.resolveOwnerPrograms(e,[n])}},Om=class extends xm{constructor(e){super(e),this.kind=`project`}owners(e){let n=this.declaration.filepath,r=e.parseFile(n).getValue().ast,i=e.nodeSymbol(r).getFiltered(t);return i?[i]:[]}};function km(e,n){if(!n)return[];let r=Wf(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 Am(e,n){if(!n)return;let r=Wf(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 jm=class{constructor(e,t){this.compiler=e,this.declarationNode=t}bind(){return[]}},Mm=class{constructor(e,t){this.compiler=e,this.declarationNode=t}interpret(){let e=this.declarationNode.body;return e instanceof H?new n(e.body.flatMap(e=>{if(!(e instanceof V))return[];let t=P(e),n=e.callee instanceof Zp?e.callee.value?.value??``:``,r,a=e.args.find(e=>e instanceof U);return a&&(r=M(xf(a).getValue()[i.Name]?.at(0)?.value)),{expression:n,name:r,token:t}})):new n([])}},Nm={nodeMetadata(t,i){if(k(i,r.Checks)){let t=i.parent;return!t||!k(t,r.Table)&&!k(t,r.TablePartial)?n.create(e):n.create(new wm(i))}return n.create(e)},bindNode(t,i){return k(i,r.Checks)?n.create(void 0,new jm(t,i).bind()):n.create(e)},interpretMetadata(t,r){return r.kind===bm.TableChecks?r.declaration instanceof R?new Mm(t,r.declaration).interpret():n.create(void 0):n.create(e)}},Pm=class{constructor(e,t){this.compiler=e,this.declarationNode=t}bind(){return this.declarationNode.body instanceof H?this.bindBody(this.declarationNode.body):[]}bindBody(e){let[,t]=_(e.body,e=>e instanceof V);return this.bindSubElements(t)}bindSubElements(e){return e.flatMap(e=>!e.type||!(e.body instanceof H)?[]: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]=_(e.body,e=>e instanceof V);return t.flatMap(e=>!e.callee||Cf(e.callee)?[]:[e.callee,...e.args].flatMap(hm).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]=_(e.body,e=>e instanceof V);return t.flatMap(e=>!e.callee||Cf(e.callee)?[]:hm(e.callee).flatMap(e=>{let t=e.variables.pop();return t?this.compiler.nodeReferee(t).getErrors():[]}))}bindTableGroupReferences(e){let[t]=_(e.body,e=>e instanceof V);return t.flatMap(e=>!e.callee||Cf(e.callee)?[]:hm(e.callee).flatMap(e=>{let t=e.variables.pop();return t?this.compiler.nodeReferee(t).getErrors():[]}))}bindSchemaReferences(e){let[t]=_(e.body,e=>e instanceof V);return t.flatMap(e=>!e.callee||Cf(e.callee)?[]:hm(e.callee).flatMap(e=>e.variables.flatMap(e=>this.compiler.nodeReferee(e).getErrors())))}},Fm=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 H&&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 V&&Cf(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]=_(e.body,e=>e instanceof R),n=new Set;for(let e of t){let t=e.type?.value.toLowerCase();t&&n.add(t),e.body instanceof H&&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 V&&Cf(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 V))continue;let e=n.callee&&If(n.callee),r=e&&this.compiler.nodeReferee(e).getFiltered(t);if(r?.declaration instanceof R){let e=j(r.declaration.name)??[];if(e.length>0){let t=e[e.length-1],n=e.length>1?e.slice(0,-1).join(`.`):y;i.push({name:t,schemaName:n});continue}}let a=j(n.callee)??[];if(a.length===0)continue;let o=a[a.length-1],s=a.length>1?a[0]:y;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?Pa(r.filter(e=>e.isKind(F.TableGroup)),e=>e.originalSymbol.intern()).flatMap(e=>e.name===void 0?[]:{name:e.name}):[]}};function Im(e){return e==null?e:Array.isArray(e)?e.map(String).join(`\0`):typeof e==`object`&&`intern`in e?e.intern():e}var Lm=function(e){return e.Table=`table`,e}({}),Rm={getDuplicateError(e,t,n){return new E(T.DUPLICATE_NAME,`DiagramView '${e}' already exists in schema '${t}'`,n)},getFieldDuplicateError(e,t,n){return new E(T.DUPLICATE_DIAGRAMVIEW_FIELD,`Duplicate ${t} ${e}`,n)}},zm={nodeSymbol(i,a){let o=i.nodeFullname(a).getFiltered(t)?.at(-1);return k(a,r.DiagramView)?new n(i.symbolFactory.create(Np,{declaration:a,name:o},a.filepath)):A(a,r.DiagramView)&&a instanceof nm?new n(i.symbolFactory.create(Pp,{declaration:a,name:o},a.filepath)):A(a,r.DiagramViewNotes)?new n(i.symbolFactory.create(Lp,{declaration:a,name:o},a.filepath)):A(a,r.DiagramViewTables)?new n(i.symbolFactory.create(Fp,{declaration:a,name:o},a.filepath)):A(a,r.DiagramViewTableGroups)?new n(i.symbolFactory.create(Ip,{declaration:a,name:o},a.filepath)):A(a,r.DiagramViewSchemas)?new n(i.symbolFactory.create(Rp,{declaration:a,name:o},a.filepath)):n.create(e)},nodeReferee(i,a){if(a.parent&&jf(a))return n.create(e);let o=Bm(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)?Vm(i,c,a):o.isKind(r.DiagramViewNotes)?Hm(i,c,a,F.StickyNote):o.isKind(r.DiagramViewTableGroups)?Hm(i,c,a,F.TableGroup):o.isKind(r.DiagramViewSchemas)?Um(i,c,a):n.create(e):n.create(void 0)},symbolMembers(i,a){if(!a.isKind(F.DiagramView))return n.create(e);if(!a.declaration)return n.create([]);let o=a.declaration;if(!k(o,r.DiagramView))return n.create([]);let s=[],c=[];for(let e of Hf(o))if(e instanceof V){let n=i.nodeSymbol(e).getFiltered(t);n&&c.push(n)}else e instanceof R&&c.push(...Hf(e).flatMap(e=>i.nodeSymbol(e).getFiltered(t)??[]));let l=new Map;for(let e of c){if(!e.isKind(F.DiagramViewSchema,F.DiagramViewTableGroup,F.DiagramViewTable,F.DiagramViewNote)||!e.declaration)continue;let n=(i.nodeFullname(e.declaration).getFiltered(t)||[]).map(Tg).join(`.`),r=`${e.kind}:${n}`;if(n!==void 0){let t=e.declaration,i=l.get(r);i?(s.push(Rm.getFieldDuplicateError(n,e.kind,i)),s.push(Rm.getFieldDuplicateError(n,e.kind,t))):l.set(r,t)}}return n.create(c,s)},bindNode(i,a){if(!k(a,r.DiagramView))return n.create(e);let o=new Pm(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 Np?r.declaration instanceof R?new Fm(t,r.declaration,r,i).interpret():n.create(void 0):n.create(e)}};function Bm(e){let t=e.parentOfKind(V);if(!t)return;let n=t.parentNode;if(!(n instanceof H))return;let i=n.parentNode;if(!(i instanceof R)||!i.isKind(r.DiagramViewTables,r.DiagramViewNotes,r.DiagramViewTableGroups,r.DiagramViewSchemas))return;let a=i.parentNode;if(!(a instanceof H))return;let o=a.parentNode;if(!(!(o instanceof R)||!o.isKind(r.DiagramView)))return i}function Vm(e,r,i){let a=Jf(i);if(a===void 0)return n.create(void 0);if(O(i.parentNode)){let t=gm(e,i);if(t){if(t.isKind(F.Schema)){let r=Lf(i),o=e.lookupMembers(t,r?F.Table:F.Schema,a);return o?n.create(o):new n(void 0,[new E(T.BINDING_ERROR,`Could not find ${r?`table`:`schema`} '${a}'`,i)])}return new n(void 0)}let o=e.lookupMembers(r,F.Schema,a);return o?n.create(o):new n(void 0,[new E(T.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(F.Table)&&a===t)return n.create(e)}let s=e.lookupMembers(r,F.Table,a);return s?n.create(s):new n(void 0,[new E(T.BINDING_ERROR,`Could not find table '${a}'`,i)])}function Hm(e,t,r,i){let a=Jf(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 E(T.BINDING_ERROR,`Could not find ${i===F.StickyNote?`note`:`tablegroup`} '${a}'`,r)])}function Um(e,t,r){let i=Jf(r);if(i===void 0)return n.create(void 0);let a=e.lookupMembers(t,F.Schema,i);return a?n.create(a):new n(void 0,[new E(T.BINDING_ERROR,`Could not find schema '${i}'`,r)])}var Wm=class{constructor(e,t){this.compiler=e,this.declarationNode=t}bind(){return this.declarationNode.body instanceof H?this.bindBody(this.declarationNode.body):[]}bindBody(e){if(!e||e instanceof V)return[];let t=e.body.filter(e=>e instanceof R);return this.bindSubElements(t)}bindSubElements(e){return e.flatMap(e=>e.type?this.compiler.bindNode(e).getErrors():[])}},Gm=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=P(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=P(t),n.name=N(t.callee);let r=xf(t.args[0]).getValue().note?.at(0);return n.note=r&&{value:fp(M(r.value)),token:P(r)},this.enum.values.push(n),[]})}},Km={getDuplicateError(e,t,n){return new E(T.DUPLICATE_NAME,`Enum '${e}' already exists in schema '${t}'`,n)},getFieldDuplicateError(e,t){return new E(T.DUPLICATE_COLUMN_NAME,`Duplicate enum field '${e}'`,t)}},qm={nodeSymbol(i,a){let o=i.nodeFullname(a).getFiltered(t)?.at(-1);return k(a,r.Enum)?new n(i.symbolFactory.create(wp,{declaration:a,name:o},a.filepath)):A(a,r.Enum)?new n(i.symbolFactory.create(Tp,{declaration:a,name:o},a.filepath)):n.create(e)},symbolMembers(r,i){if(!i.isKind(F.Enum))return n.create(e);let a=i.declaration;if(!(a instanceof R))return new n([]);let o=Hf(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(F.EnumField)||!e.declaration)continue;let t=e.name;if(t!==void 0){let n=e.declaration,r=l.get(t);r?(c.push(Km.getFieldDuplicateError(t,r)),c.push(Km.getFieldDuplicateError(t,n))):l.set(t,n)}}return new n(s,c)},bindNode(i,a){if(!k(a,r.Enum))return n.create(e);let o=new Wm(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 wp?new Gm(t,r,i).interpret():n.create(e)}},Jm=class{constructor(e,t){this.compiler=e,this.declarationNode=t}bind(){return!(this.declarationNode.parent instanceof R)||!this.declarationNode.parent.isKind(r.Table)&&!this.declarationNode.parent.isKind(r.TablePartial)||!(this.declarationNode.body instanceof H)?[]:this.bindBody(this.declarationNode.body)}get ownerContainerKind(){return this.declarationNode.parent.isKind(r.TablePartial)?`TablePartial`:`Table`}bindBody(e){if(!e)return[];if(e instanceof V)return this.bindFields([e]);let[t,n]=_(e.body,e=>e instanceof V);return[...this.bindFields(t),...this.bindSubElements(n)]}bindFields(e){return e.flatMap(e=>{if(!e.callee)return[];let n=j(this.declarationNode.parent.name)?.join(`.`)??`<unnamed>`;return[e.callee,...e.args].flatMap(hm).flatMap(e=>e.variables.length>1?[]:e.variables.length?e.variables[0]:e.tupleElements).flatMap(e=>{let r=Jf(e);if(r===void 0)return[];let i=this.compiler.nodeReferee(e);return!i.getValue()||i.hasValue(t)?new E(T.BINDING_ERROR,`No column named '${r}' inside ${this.ownerContainerKind} '${n}'`,e):[]})})}bindSubElements(e){return e.flatMap(e=>e.type?this.compiler.bindNode(e).getErrors():[])}},Ym=class{constructor(e,t){this.compiler=e,this.node=t}interpret(){let e=this.node.body;return e instanceof H?new n(e.body.flatMap(e=>{if(!(e instanceof V)||!e.callee)return[];let n=[],r=P(e),a=[e.callee,...e.args],o,s,c,l,u;g(a)instanceof U&&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=M(d[i.Name]?.at(0)?.value);let e=d[i.Note]?.at(0);if(e){let t=M(e.value);t!==void 0&&(l={value:t,token:P(e)})}u=N(d[i.Type]?.at(0)?.value)}let f=a.flatMap(e=>{if(!(e instanceof W))return e;let t=[],n=e;for(;n instanceof W&&(n.argumentList&&t.push(n.argumentList),n.callee);)n=n.callee;return t.push(n),t});for(let e of f){let t=Gf(e);if(t){for(let e of t.functional)n.push({value:e.value?.value??``,type:`expression`,token:P(e)});for(let e of t.nonFunctional)n.push({value:Jf(e)??``,type:`column`,token:P(e)})}}return[{columns:n,pk:o,unique:s,name:c,note:l,type:u,token:r}]})):new n([])}},Xm={nodeMetadata(t,i){if(!k(i,r.Indexes))return n.create(e);let a=i.parent;return!a||!k(a,r.Table)&&!k(a,r.TablePartial)?n.create(e):n.create(new Tm(i))},nodeReferee(i,a){if(!D(a)||jf(a))return n.create(e);let o=a;for(;o&&!k(o,r.Indexes);)o=o.parent;if(!o)return n.create(e);let s=o.parent;if(!s||!k(s,r.Table)&&!k(s,r.TablePartial))return n.create(e);let c=i.nodeSymbol(s).getFiltered(t);if(!c)return new n(void 0);let l=D(a)?a.expression.variable?.value??``:``,u=i.lookupMembers(c,F.Column,l);if(u)return n.create(u);let d=k(s,r.TablePartial)?`TablePartial`:`Table`;return new n(void 0,[new E(T.BINDING_ERROR,`Column '${l}' does not exist in ${d} 'public.${c.name}'`,a)])},bindNode(t,i){return k(i,r.Indexes)?n.create(void 0,new Jm(t,i).bind()):n.create(e)},interpretMetadata(t,r){return r.kind===bm.Indexes?r.declaration instanceof R?new Ym(t,r.declaration).interpret():n.create(void 0):n.create(e)}};function Zm(e,n){let r=Uf(n);if(!r||r.length===0)return;let i=r[r.length-1];if(i instanceof Qp){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 Qp)return;let o=e.nodeReferee(a).getFiltered(t);if(o)return[o.originalSymbol]}function Qm(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 E(T.SAME_ENDPOINT,`Two endpoints are the same`,n)];let o=i<a?`${i}-${a}`:`${a}-${i}`,s=r.get(o);return s?[new E(T.CIRCULAR_REF,`References with same endpoints exist`,n),new E(T.CIRCULAR_REF,`References with same endpoints exist`,s)]:(r.set(o,n),[])}var $m=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 R&&e.isKind(r.Project));a.length>1&&a.forEach(t=>e.push(new E(T.PROJECT_REDEFINED,`Only one project can exist`,t)));for(let t of i.body)if(t instanceof R&&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(...eh(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 R)||!t.type)continue;let i=t;k(i,r.Ref)&&e.push(...this.checkStandaloneRefs(i,n)),k(i,r.Table)&&e.push(...this.checkInlineRefs(i,n)),k(i,r.TablePartial)&&e.push(...this.checkTablePartialSelfRefs(i))}}return e}checkStandaloneRefs(e,t){let n=[];for(let r of Hf(e)){if(!(r instanceof V)||!r.callee||!Nf(r.callee))continue;let i=r.callee;if(!i.leftExpression||!i.rightExpression)continue;let a=Zm(this.compiler,i.leftExpression),o=Zm(this.compiler,i.rightExpression);!a||!o||n.push(...Qm(a,o,e,t))}return n}checkInlineRefs(e,n){let r=[];for(let a of Hf(e)){if(!(a instanceof V)||!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 B)||!i.op||!ff(i.op.value)||!i.expression)continue;let a=Zm(this.compiler,i.expression);if(!a)continue;let o=[e.originalSymbol];r.push(...Qm(o,a,t,n))}}return r}checkTablePartialSelfRefs(e){let n=[];for(let r of Hf(e)){if(!(r instanceof V)||!r.callee)continue;let e=N(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 B&&(!r.op||!ff(r.op.value)||r.expression&&D(r.expression)&&r.expression.expression.variable?.value===e&&n.push(new E(T.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 R)||!i.type)continue;let a=i;if(!k(a,r.TableGroup))continue;let o=a.name?j(a.name):void 0,s=o?o.join(`.`):`<unknown>`,c=Hf(a);for(let r of c){if(!(r instanceof V)||!r.callee)continue;let i=Uf(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=j(r.callee),n=t?t.join(`.`):`<unknown>`;e.push(new E(T.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 eh(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 Cp&&a.push(...eh(e,t,r));return a}function th(e,t,n){t.isKind(F.Table)?e.externals.tables.push(n):t.isKind(F.Enum)?e.externals.enums.push(n):t.isKind(F.TableGroup)?e.externals.tableGroups.push(n):t.isKind(F.TablePartial)?e.externals.tablePartials.push(n):t.isKind(F.StickyNote)&&e.externals.notes.push(n)}function nh(e){return e.values.map(t=>{let n={};return e.columns.forEach((e,r)=>{n[e]=t[r]}),n})}function rh(e,t){return e?`${e}.${t}`:`${y}.${t}`}function ih(e,t,n){return n.map(n=>{let r=t[n.name??``]?.value;if(r==null){let t=n.default(e);if(t)return JSON.stringify(t.value)}return JSON.stringify(r)}).join(`|`)}function ah(e,t,n){return n.some(n=>{let r=t[n.name??``]?.value;return r==null&&n.default(e)?!1:r==null})}function oh(e,t,n){return e?`${e}.${t}.${n}`:`${t}.${n}`}function sh(e,t,n){return n.length===1?oh(e,t,n[0]):`(${n.map(n=>oh(e,t,n)).join(`, `)})`}function ch(e,t,n){let r=n.map(n=>{let r=n.name??``,i=t[r]===void 0?n.default(e)?.value:t[r].value;return JSON.stringify(i)}).join(`, `);return n.length===1?r:`(${r})`}function lh(e,t){let n=t.filter(t=>e[t]).map(t=>e[t]);return n.length>0?n:Object.values(e).filter(Boolean)}function uh(e,t,n){let{token:r}=t,i=e.nodeAtPosition(r.filepath,r.start.offset)??e.parse.ast(r.filepath);return new tf(T.INVALID_RECORDS_FIELD,n,i)}var dh=e=>e>1?`Composite PK`:`PK`;function fh(e,t,n,r){return Oa(r.values)?[]:xa(_h(t,e),i=>ph(e,t,n,i,r))}function ph(e,t,n,r,i){let a=nh(i),o=gh(e,t,n,r,i);if(!Oa(o))return o;let s=r.filter(t=>!t.increment(e)&&!t.default(e)),[c,l]=_(a,t=>ah(e,t,s)),u=mh(e,t,s.map(e=>e.name??``),c),d=r.some(t=>t.increment(e))?[]:hh(e,t,r,l);return[...u,...d]}function mh(e,t,n,r){if(Oa(r))return[];let i=t.schema(e),a=t.name??``,o=`NULL in ${dh(n.length)}: ${sh(i,a,n)} cannot be NULL`;return xa(r,t=>lh(t,n).map(t=>uh(e,t,o)))}function hh(e,t,n,r){let i=n.map(e=>e.name??``),a=t.schema(e),o=t.name??``;return xa(ma(wa(r,t=>ih(e,t,n)),e=>e.length>1),t=>{let r=dh(i.length),s=sh(a,o,i);return xa(t,t=>{let a=`Duplicate ${r}: ${s} = ${ch(e,t,n)}`;return lh(t,i).map(t=>uh(e,t,a))})})}function gh(e,t,n,r,i){let a=r.map(e=>e.name??``),o=new Set(i.columns),s=t.schema(e),c=t.name??``,l=da(a,Array.from(o));if(Oa(l))return[];let u=new Set(l),d=r.filter(e=>u.has(e.name??``)).filter(t=>!t.increment(e)&&!t.default(e)).map(e=>e.name??``);if(Oa(d))return[];let f=`${dh(d.length)}: Column ${sh(s,c,d)} is missing from record and has no default value`;return i.values.map(()=>new tf(T.INVALID_RECORDS_FIELD,f,n))}function _h(e,t){let n=e.mergedColumns(t),r=ka(n,e=>e.name??``);return[...n.filter(e=>e.pk(t)).map(e=>[e]),...e.mergedIndexes(t).flatMap(e=>{let n=t.interpretMetadata(e,e.declaration.filepath).getValue();return Array.isArray(n)?n.filter(e=>e.pk).map(e=>Qr(e.columns.map(e=>r[e.value]))):[]})]}function vh(e,t,n){if(Oa(n.values))return[];let r=nh(n);return xa(yh(e,t),n=>bh(e,t,n,r))}function yh(e,t){let n=t.mergedColumns(e),r=ka(n,e=>e.name??``);return[...n.filter(t=>t.unique(e)).map(e=>[e]),...t.mergedIndexes(e).flatMap(t=>{let n=e.interpretMetadata(t,t.declaration.filepath).getValue();return Array.isArray(n)?n.filter(e=>e.unique).map(e=>Qr(e.columns.map(e=>r[e.value]))):[]})]}function bh(e,t,n,r){let i=n.map(e=>e.name??``);return xa(ma(wa(r.filter(t=>!ah(e,t,n)),t=>ih(e,t,n)),e=>e.length>1),r=>{let a=n.length>1?`Composite UNIQUE`:`UNIQUE`,o=sh(t.schema(e),t.name??``,i);return xa(r,t=>{let r=`Duplicate ${a}: ${o} = ${ch(e,t,n)}`;return lh(t,i).map(t=>uh(e,t,r))})})}function xh(e,t,n){let r=new Map;for(let i of e.values()){let{name:e,schema:a}=i.tableSymbol.interpretedName(t,n);r.set(rh(a,e),i)}return r}function Sh(e,t,n,r){let i=xh(n,e,r),a=new Set;for(let[e,t]of i)t.record&&!Oa(t.record.values)&&a.add(e);return xa(t.filter(e=>e.endpoints?e.endpoints.some(e=>a.has(rh(e.schemaName,e.tableName))):!1),t=>wh(e,t,i,r))}function Ch(e,t,n,r,i,a){if(!t.record||Oa(t.record.values))return[];let o=ka(t.tableSymbol.mergedColumns(e),e=>e.name??``),s=Qr(r.fieldNames.map(e=>o[e])),c=ka(n.tableSymbol.mergedColumns(e),e=>e.name??``),l=Qr(i.fieldNames.map(e=>c[e])),u=nh(t.record),d=n.record?nh(n.record):[],f=new Set(d.map(t=>ih(e,t,l))),p=u.filter(t=>!ah(e,t,s)).filter(t=>{let n=ih(e,t,s);return!f.has(n)}),m=t.tableSymbol.interpretedName(e,a),ee=n.tableSymbol.interpretedName(e,a);return xa(p,t=>{let n=sh(m.schema,m.name,r.fieldNames),a=sh(ee.schema,ee.name,i.fieldNames),o=`FK violation: ${n} = ${ch(e,t,s)} does not exist in ${a}`;return r.fieldNames.map(n=>uh(e,t[n],o))})}function wh(e,t,n,r){if(!t.endpoints)return[];let[i,a]=t.endpoints,o=n.get(rh(i.schemaName,i.tableName)),s=n.get(rh(a.schemaName,a.tableName));return!o||!s?[]:Th(e,o,s,i,a,r)}function Th(e,t,n,r,i,a){let o=r.relation,s=i.relation;return o===`1`&&s===`1`||o===`*`&&s===`*`?[...Ch(e,t,n,r,i,a),...Ch(e,n,t,i,r,a)]:o===`*`&&s===`1`?Ch(e,t,n,r,i,a):o===`1`&&s===`*`?Ch(e,n,t,i,r,a):[]}var Eh=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:P(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 Vp)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 Cp);for(;n.length>0;){let r=n.shift(),i=this.compiler.symbolMembers(r).getFiltered(t)??[];for(let t of i){if(t instanceof Cp){n.push(t);continue}if(!(t instanceof Vp))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 Ep?n.interpretedName(this.compiler,n.filepath):{name:n.name??``,schema:null},a=n instanceof Ep?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}]};th(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 Em))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 bm.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 E(T.SAME_ENDPOINT,`Ref with same endpoints already exists`,i.declaration));break}n.add(e)}this.db.refs.push(e);break}case bm.Records:if(i instanceof Em){let e=i.table(this.compiler)?.originalSymbol.intern()??``,t=e?r.get(e):void 0;if(t&&t.count>1){this.errors.push(new E(T.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 bm.Project:this.db.project=a;break;case bm.MetadataElement:default:break}}}interpretAllAliases(){let e=this.compiler.symbolMembers(this.programSymbol).getFiltered(t)??[];for(let t of e){if(!(t instanceof Bp)||!t.isKind(F.Table))continue;let{name:e,schema:n}=t.originalSymbol.interpretedName(this.compiler,this.filepath),r={name:t.name,kind:Lm.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 Cp))continue;let r=this.compiler.symbolMembers(e).getFiltered(t)??[];for(let e of r){if(!e.isKind(F.Table))continue;let t=e.originalSymbol;if(!(t instanceof Ep))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 Em))continue;let i=r.table(this.compiler);if(!(i instanceof Ep))continue;let a=this.compiler.interpretMetadata(r,this.filepath);if(a.hasValue(t))continue;let o=a.getValue();if(!o)continue;e.push(...fh(this.compiler,i,r.declaration,o)),e.push(...vh(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(...Sh(this.compiler,[...this.db.refs,...a],n,this.filepath)),e}collectPartialRefs(e){let t=this.compiler.symbolMetadata(this.programSymbol).filter(e=>e instanceof Cm),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 Hp&&t.declaration===e.declaration)))continue;let l=_m(s);if(!l)continue;let u=a instanceof jp&&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:P(i.leftToken())},m={schemaName:f.schema,tableName:f.name,fieldNames:o.map(e=>e.name??``),relation:l[1],token:P(i.rightToken())};n.push({token:P(i.declaration),endpoints:[p,m]})}return n}pushElement(e,t){if(!Array.isArray(t))switch(e.kind){case F.Table:this.db.tables.push(t);break;case F.Enum:this.db.enums.push(t);break;case F.TableGroup:this.db.tableGroups.push(t);break;case F.TablePartial:this.db.tablePartials.push(t);break;case F.StickyNote:this.db.notes.push(t);break;case F.DiagramView:this.db.diagramViews.push(t);break;default:break}}},Dh={nodeSymbol(t,r){return Of(r)?n.create(t.symbolFactory.create(zp,{declaration:r,name:r.filepath.absolute},r.filepath)):n.create(e)},symbolMembers(r,i){if(!i.isKind(F.Program))return n.create(e);if(!(i.declaration instanceof L))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(y);if(!o)return n.create([...a.values()]);let s=r.symbolMembers(o).getFiltered(t)?.filter(e=>!e.isKind(F.Schema));return s?n.create([...a.values(),...s]):n.create([...a.values()])},bindNode(t,r){return Of(r)?new $m(r,t).resolve():n.create(e)},interpretSymbol(t,r,i){if(!(r instanceof zp))return n.create(e);if(!(r.declaration instanceof L))return n.create(void 0);if(!mm(t,r.declaration)){let e=t.reachableFiles(i).flatMap(e=>t.bindFile(e).getErrors());return n.create(void 0,e)}return new Eh(t,r,i).interpret()}},Oh=class{constructor(e,t){this.compiler=e,this.declarationNode=t}bind(){return this.declarationNode.body instanceof H?this.bindBody(this.declarationNode.body):[]}bindBody(e){if(!e||e instanceof V)return[];let t=e.body.filter(e=>e instanceof R);return this.bindSubElements(t)}bindSubElements(e){return e.flatMap(e=>e.type?this.compiler.bindNode(e).getErrors():[])}},kh=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=P(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}=pp(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 H?t.body.body[0]?.callee:t.body?.callee,n=e?M(e):void 0;return n&&(this.project.note={value:fp(n),token:P(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()]=M(t.body.callee),[]}})}},Ah={nodeMetadata(t,i){return k(i,r.Project)?n.create(new Om(i)):n.create(e)},bindNode(t,i){return k(i,r.Project)?n.create(void 0,new Oh(t,i).bind()):n.create(e)},interpretMetadata(t,r,i){return!(r instanceof Om)||!(r.declaration instanceof R)?n.create(e):new kh(t,r.declaration,i).interpret()}},jh=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 H&&e.push(...this.bindBody(this.declarationNode.body)),e}bindRecordsName(e){return this.declarationNode.parent instanceof L?this.bindTopLevelName(e):this.bindInsideTableName(e)}bindTopLevelName(e){let n=qf(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=Bf(o.declaration)??`<invalid name>`,c=i.flatMap(e=>this.compiler.nodeReferee(e).getErrors());for(let e of n.args){let n=Jf(e)??`<unnamed>`,r=this.compiler.nodeReferee(e).getFiltered(t);if(!r){c.push(new E(T.BINDING_ERROR,`Column '${n}' does not exist in Table '${s}'`,e));continue}let i=this.boundColumns.get(r);i&&(c.push(new E(T.DUPLICATE_COLUMN_REFERENCES_IN_RECORDS,`Column '${n}' is referenced more than once in a Records for Table '${s}'`,i)),c.push(new E(T.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 R)||!n.isKind(r.Table)||!this.compiler.nodeSymbol(n).getFiltered(t)||!vf(e))return[];let i=Bf(n)??`<invalid name>`,a=[];for(let n of e.elementList){let e=Jf(n)??`<unnamed>`;if(!this.compiler.nodeReferee(n).getFiltered(t)){a.push(new E(T.BINDING_ERROR,`Column '${e}' does not exist in Table '${i}'`,n));continue}}return a}bindBody(e){if(!e)return[];if(e instanceof V)return this.bindDataRow(e);let t=e.body.filter(e=>e instanceof V),n=e.body.filter(e=>e instanceof R);return[...this.bindDataRows(t),...this.bindSubElements(n)]}bindDataRows(e){return e.flatMap(e=>this.bindDataRow(e))}bindDataRow(e){return e.callee?(e.callee instanceof $p?e.callee.elementList:[e.callee]).flatMap(hm).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():[])}},Mh=class{constructor(e,t,n){this.compiler=e,this.metadata=t,this.element=t.declaration,this.filepath=n}interpret(){let e=[],t=[],r=Nh(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=Ph(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=P(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 Nh(e,n,i){let a=e.name,o=e.parent;if(o instanceof R&&o.isKind(r.Table)){let e=n.nodeSymbol(o).getFiltered(t);if(!(e instanceof Ep))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===N(e))||[])}:{schemaName:c,tableName:l,columns:r}}let s=qf(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,F.Schema,u);e&&(p=n.lookupMembers(e,F.Table,l))}if(p||=n.lookupMembers(f,F.Table,l),!p)return;let m=p.originalSymbol;if(!(m instanceof Ep))return;let ee=m.mergedColumns(n),te=s.args.map(e=>ee.find(t=>t.name===N(e))).filter(Boolean),ne=m.interpretedName(n,i);return{schemaName:ne.schema,tableName:ne.name,columns:te}}function Ph(e,t,r){let i=[],a=[],o={},s=e.callee instanceof $p?e.callee.elementList:[e.callee];if(s.length!==t.length)return i.push(new E(T.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=Ih(n,l,r);i.push(...u.getErrors()),a.push(...u.getWarnings());let d=u.getValue();c.push(d??{value:null,type:`expression`,token:P(n)})}return new n({row:c,columnNodes:o},i,a)}function Fh(e){return e instanceof Zp&&e.value?.value||``}function Ih(e,t,r){let i=P(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=Uo(o,s),p=ap(e),m=p===null?Fh(e):p,ee=p===null?`expression`:f;if(e instanceof Zp)return new n({value:e.value?.value||``,type:`expression`,token:i},[],[]);if(Yf(e)||Xf(e)&&!zo(o)){let t=u&&u.value.toString().toLowerCase()!==`null`,r=Ho(o);return l&&!t&&!c&&!r?new n({value:null,type:f,token:i},[],[new tf(T.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(F.EnumField)).map(e=>e.name).filter(Boolean):[],s=M(e);return s===void 0&&(s=D(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 tf(T.INVALID_RECORDS_FIELD,`Invalid enum value for column '${d}'`,e)])}if(Fo(o)||Io(o)||Ho(o)){let t=Qf(e);if(t===null)return new n({value:m,type:ee,token:i},[],[new tf(T.INVALID_RECORDS_FIELD,`Invalid numeric value for column '${d}'`,e)]);if(Fo(o)&&!Number.isInteger(t))return new n({value:Math.floor(t),type:f,token:i},[],[new tf(T.INVALID_RECORDS_FIELD,`Invalid integer value ${t} for column '${d}': expected integer, got decimal`,e)]);let r=Io(o)&&a?.args?.length?{precision:Number(a.args[0]),scale:a.args.length>=2?Number(a.args[1]):0}:void 0;if(Io(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 tf(T.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 tf(T.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(Ro(o)){let t=rp(e);return t===null?new n({value:m,type:ee,token:i},[],[new tf(T.INVALID_RECORDS_FIELD,`Invalid boolean value for column '${d}'`,e)]):new n({value:t,type:f,token:i},[],[])}if(Vo(o)){let t=lp(e);return t===null?new n({value:m,type:ee,token:i},[],[new tf(T.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(zo(o)){let t=ap(e);if(t===null)return new n({value:m,type:ee,token:i},[],[new tf(T.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 tf(T.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},[],[])}var Lh={nodeMetadata(t,i){if(!k(i,r.Records))return n.create(e);let a=i.parent;if(a&&k(a,r.Table))return n.create(new Em(i));let o=i.name;return o instanceof W&&o.callee?n.create(new Em(i)):n.create(e)},nodeReferee(i,a){if(!D(a))return n.create(e);let o=a.parentOfKind(R);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(Qp);if(l?.parentNode===o)return Rh(i,o,a);let u=a.parentOfKind(W);return u?.parentNode===o&&l?.parentNode===u?zh(i,u,a):u?.parentNode===o&&u.callee?.containsEq(a)?Bh(i,c,a):Hh(i,c,a)},bindNode(t,i){return k(i,r.Records)?n.create(void 0,new jh(t,i).bind()):n.create(e)},interpretMetadata(t,r,i){return r instanceof Em?r.declaration instanceof R?new Mh(t,r,i).interpret():n.create(void 0):n.create(e)}};function Rh(e,i,a){let o=i.parent;if(o instanceof R&&o.isKind(r.Table)){let n=e.nodeSymbol(o).getFiltered(t);if(n)return Vh(e,n,a)}return new n(void 0)}function zh(e,r,i){if(r.callee){let n;if(D(r.callee))n=e.nodeReferee(r.callee).getFiltered(t);else{let i=Uf(r.callee);if(i&&i.length>0){let r=i[i.length-1];n=e.nodeReferee(r).getFiltered(t)}}if(n)return Vh(e,n,i)}return new n(void 0)}function Bh(e,t,r){if(!D(r))return new n(void 0);let i=Jf(r)??``;if(!O(r.parentNode)){let a=e.lookupMembers(t,[F.Table,F.Schema],i);return a?n.create(a):new n(void 0,[new E(T.BINDING_ERROR,`Table '${i}' does not exist in Schema 'public'`,r)])}let a=gm(e,r);if(!a){let a=e.lookupMembers(t,[F.Table,F.Schema],i);return a?n.create(a):new n(void 0,[new E(T.BINDING_ERROR,`Table or schema '${i}' does not exist`,r)])}if(a.isKind(F.Schema)){let t=e.lookupMembers(a,[F.Table,F.Schema],i);return t?n.create(t):new n(void 0,[new E(T.BINDING_ERROR,`Table or schema '${i}' does not exist`,r)])}return new n(void 0)}function Vh(e,t,r){if(!D(r))return new n(void 0);let i=Jf(r)??``,a=e.lookupMembers(t,F.Column,i);return a?n.create(a):new n(void 0,[new E(T.BINDING_ERROR,`Column '${i}' does not exist in Table 'public.${t.name}'`,r)])}function Hh(e,t,r){if(!D(r))return new n(void 0);let i=Jf(r)??``;if(!O(r.parentNode))return new n(void 0);let a=gm(e,r);if(a){if(a.isKind(F.Schema)){let t=e.lookupMembers(a,[F.Enum,F.Schema],i);return t?n.create(t):new n(void 0,[new E(T.BINDING_ERROR,`Enum or schema '${i}' does not exist`,r)])}if(a.isKind(F.Enum)){let t=e.lookupMembers(a,F.EnumField,i);return t?n.create(t):new n(void 0,[new E(T.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(O(o.parentNode)&&o.parentNode.leftExpression===o){let a=e.lookupMembers(t,F.Schema,i);return a?n.create(a):new n(void 0,[new E(T.BINDING_ERROR,`Schema '${i}' does not exist in Schema 'public'`,r)])}let a=e.lookupMembers(t,F.Enum,i);return a?n.create(a):new n(void 0,[new E(T.BINDING_ERROR,`Enum '${i}' does not exist in Schema 'public'`,r)])}return new n(void 0)}var Uh=class{constructor(e,t){this.compiler=e,this.declarationNode=t}bind(){return!(this.declarationNode.parent instanceof L)&&!this.declarationNode.parent?.isKind(r.Project)?[]:this.bindBody(this.declarationNode.body)}bindBody(e){if(!e)return[];if(e instanceof V)return this.bindFields([e]);let[t,n]=_(e.body,e=>e instanceof V);return[...this.bindFields(t),...this.bindSubElements(n)]}bindFields(e){return e.flatMap(e=>e.callee?[e.callee,...e.args].flatMap(hm).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():[])}},Wh=class{constructor(e,t,n){this.compiler=e,this.filepath=n,this.metadata=t,this.declarationNode=t.declaration,this.ref={}}interpret(){this.ref.token=P(this.declarationNode);let e=[...this.interpretName(),...this.interpretBody()];return n.create(this.ref,e)}interpretName(){if(!(this.declarationNode instanceof R))return[];let e=[],t=j(this.declarationNode.name)??[];return this.ref.name=t.pop()||null,t.length>1&&e.push(new E(T.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(La(t,r).every(([e,t])=>e?.originalSymbol===t?.originalSymbol))return[new E(T.SAME_ENDPOINT,`Two endpoints are the same`,this.declarationNode)];let a=_m(e),o=n?.interpretedName(this.compiler,this.filepath),s=i?.interpretedName(this.compiler,this.filepath),c=P(this.metadata.leftToken()),l=P(this.metadata.rightToken());if(this.ref.endpoints=this.declarationNode instanceof R?[{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 R))return[];let u=Hf(this.declarationNode)[0];if(u.args[0]){let e=xf(u.args[0]).getValue(),t=e.delete?.at(0)?.value;this.ref.onDelete=t instanceof Jp?zf(t):N(t);let n=e.update?.at(0)?.value;this.ref.onUpdate=n instanceof Jp?zf(n):N(n),this.ref.color=e.color?.length?mp(e.color?.at(0)?.value):void 0,this.ref.inactive=e.inactive?.length?!0:void 0}return[]}};function Gh(e){let t=e.parent;for(;t;){if(t instanceof R&&t.isKind(r.Ref))return t.body?.containsEq(e)??!1;t=t.parent}return!1}var Kh={nodeReferee(r,i){if(!D(i)&&!O(i)||!Gh(i)||i.parentOfKind(z))return n.create(e);let a=r.parseFile(i.filepath).getValue().ast,o=r.nodeSymbol(a).getValue();return o===t?n.create(void 0):qh(r,o,i)},nodeMetadata(t,a){if(k(a,r.Ref)){let t=Hf(a)[0];if(!(t instanceof V)||!t.callee)return n.create(e);let r=t.callee;return!(r instanceof Yp)||!r.op?n.create(e):n.create(new Sm(a))}if(a instanceof z){if(!(a.name instanceof Jp)||zf(a.name)?.toLowerCase()!==i.Ref)return n.create(e);let t=a.parent;return t instanceof R&&t.isKind(r.TablePartial)?n.create(new Cm(a)):n.create(new Sm(a))}return n.create(e)},bindNode(t,i){return k(i,r.Ref)?n.create(void 0,new Uh(t,i).bind()):n.create(e)},interpretMetadata(t,r,i){return r instanceof Sm?new Wh(t,r,i).interpret():n.create(e)}};function qh(e,r,i){if(!D(i))return new n(void 0);let a=Jf(i)??``;if(!O(i.parentNode)){let r=i.parentNode;if(r&&O(r.parentNode)&&r.parentNode.rightExpression===r){let o=r.parentNode.leftExpression,s=O(o)?o.rightExpression??o:o,c=e.nodeReferee(s).getFiltered(t);if(c?.isKind(F.Table)){let r=e.lookupMembers(c,F.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 E(T.BINDING_ERROR,`Column '${a}' does not exist in Table '${o}'`,i)])}}return n.create(void 0)}let o=gm(e,i);if(o){if(o.isKind(F.Schema)){let t=e.lookupMembers(o,[F.Table,F.Schema],a);return t?n.create(t):new n(void 0,[new E(T.BINDING_ERROR,`Table or schema '${a}' does not exist`,i)])}if(o.isKind(F.Table)){let r=e.lookupMembers(o,F.Column,a);return r?n.create(r):new n(void 0,[new E(T.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(O(s.parentNode)&&s.parentNode.leftExpression===s){let t=e.lookupMembers(r,F.Schema,a);return t?n.create(t):new n(void 0,[new E(T.BINDING_ERROR,`Schema '${a}' does not exist`,i)])}let t=vm(e,r);if(t){let r=e.lookupMembers(t,F.Table,a);if(r)return n.create(r)}let o=e.lookupMembers(r,F.Table,a);return o?n.create(o):new n(void 0,[new E(T.BINDING_ERROR,`Table '${a}' does not exist in Schema 'public'`,i)])}return new n(void 0)}var Jh={visibleName(e,n){let r=n instanceof I?n:n.useSpecifierDeclaration instanceof Kp?n.useSpecifierDeclaration:n.declaration;if(r instanceof Kp&&n instanceof Sp&&r.getSymbolKind()!==n.kind&&(r=n.declaration),!r)return;let i=e.nodeAlias(r).getFiltered(t);return i===void 0?e.nodeFullname(r).getFiltered(t):[i]}},Yh={nodeSymbol(r,i){if(!Df(i)||!i.name)return n.create(e);let a=i.getSymbolKind();if(a===void 0||a===F.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(Vp,{useSpecifierDeclaration:i,declaration:o?.declaration,usedSymbol:o,kind:a,name:Jh.visibleName(r,i)?.at(-1)},i.filepath),o===void 0?[new E(T.BINDING_ERROR,`Failed to resolve the import of ${a} '${(j(i.name)||[]).map(Tg).join(`.`)}'`,i)]:[])},symbolMembers(r,i){if(!(i instanceof Vp))return n.create(e);if(i.originalSymbol===i)return n.create([]);let a=r.symbolMembers(i.originalSymbol).getFiltered(t);return n.create(a??[])},nodeReferee(r,i){if(!D(i)&&!Tf(i))return n.create(e);let a=i.parentOfKind(Kp);if(!a)return n.create(e);let o=a.name===i||O(a.name)&&a.name.rightExpression===i?a.getSymbolKind():F.Schema;if(o===void 0)return n.create(void 0);let s=j(i.parentOfKind(Yp)),c=N(i)??s?.at(-1);if(c===void 0)return n.create(void 0);let l=i.parentOfKind(Gp);if(l?.importPath?.value===void 0)return n.create(void 0);let u=xo(i.filepath,l.importPath.value);if(!u)return n.create(void 0,[new E(T.BINDING_ERROR,`Import path must be relative, got '${l.importPath.value}'`,i)]);if(!r.layout.exists(u))return n.create(void 0,[new E(T.NONEXISTENT_MODULE,`${o} '${s?.join(`.`)??c}' does not exist in file ${u.toString()}. Does the file exist?`,i)]);let d=i.parentOfKind(Yp)?.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 E(T.BINDING_ERROR,`Could not find ${o} '${c}'`,i)])}let f=Xh(r,u,c,o);return f?n.create(f):n.create(void 0,[new E(T.BINDING_ERROR,`${o} '${c}' does not exist in file ${u.toString()}`,i)])},bindNode(t,r){if(Ef(r)){let e=[];if(r.importPath?.value){let n=xo(r.filepath,r.importPath.value);n?t.layout.exists(n)||e.push(new E(T.NONEXISTENT_MODULE,`Failed to resolve the non-existent file '${r.importPath.value}'`,r.importPath)):e.push(new E(T.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 qp?new n(void 0,r.specifiers.flatMap(e=>t.bindNode(e).getErrors())):Df(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 Vp))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 Xh(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(F.Schema))return c;for(let t of o.reuses.selective)if(j(t.alias??t.name)?.at(-1)===r){let o=t.parentOfKind(Gp);if(o?.importPath?.value){let s=Xh(e,xo(n,o.importPath.value),j(t.name)?.at(-1)??r,i,a);if(s)return s}}for(let{importPath:t}of o.reuses.wildcard){let n=Xh(e,t,r,i,a);if(n)return n}}function Zh(e){if(e instanceof bo){let{ast:n}=this.parseFile(e).getValue(),r=this.nodeSymbol(n).getFiltered(t);return this.usableMembers(r)}let r=e.filepath,i=$h(this,r),{nonSchemaMembers:a,schemaMembers:o}=e instanceof zp?eg(this,e,i):tg(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 Qh(e,n,r){let i=n.qualifiedName,a;if(a=r instanceof Kp?Jh.visibleName(e,r):e.nodeFullname(r).getFiltered(t),!a)return{kind:`none`};let o=r instanceof Kp&&r.getSymbolKind()===F.Schema?a:a.length<=1?[y]: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 $h(e,t){let n=e.parseFile(t),{ast:r}=n.getValue(),i=[],a=[],o=[],s=[];for(let e of r.body){if(!(e instanceof Gp)||!e.specifiers||!e.importPath)continue;let n=xo(t,e.importPath.value);n&&(e.isReuse?e.specifiers instanceof nm?i.push({importPath:n,node:e.specifiers}):a.push(...e.specifiers.specifiers):e.specifiers instanceof nm?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 eg(e,n,r){let{ast:i,selectiveUses:a,selectiveReuses:o}=r,s=n.filepath,c=new Map([[y,e.symbolFactory.create(Cp,{name:y},s)]]);for(let n of i.declarations){let r=e.nodeFullname(n).getFiltered(t)||[],i=r.length<=1?y:r[0];c.has(i)||c.set(i,e.symbolFactory.create(Cp,{name:i},s))}ng(e,[...a,...o],c,s);for(let t of e.reachableFiles(s))for(let n of ig(e,t))c.has(n)||c.set(n,e.symbolFactory.create(Cp,{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 tg(e,n,r){let{ast:i,selectiveUses:a,selectiveReuses:o}=r,s=[],c=new Map;for(let r of i.body){if(!(r instanceof R))continue;let i=Qh(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(Bp,{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(Cp,{name:i.schemaName,parent:n},n.filepath))}rg(e,[...a,...o],n,c);let l=n.qualifiedName;for(let t of e.reachableFiles(n.filepath))for(let r of ag(e,t,l))c.has(r)||c.set(r,e.symbolFactory.create(Cp,{name:r,parent:n},n.filepath));return{nonSchemaMembers:s,schemaMembers:[...c.values()]}}function ng(e,t,n,r){for(let i of t){if(i.getSymbolKind()!==F.Schema)continue;let t=Jh.visibleName(e,i)?.at(0);t!==void 0&&!n.has(t)&&n.set(t,e.symbolFactory.create(Cp,{name:t},r))}}function rg(e,t,n,r){let i=n.qualifiedName;for(let a of t){if(a.getSymbolKind()!==F.Schema)continue;let t=Jh.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(Cp,{name:o,parent:n},n.filepath))}}function ig(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?y:r[0];i.push(a)}let a=$h(e,n);for(let t of[...a.selectiveUses,...a.selectiveReuses]){if(t.getSymbolKind()!==F.Schema)continue;let n=Jh.visibleName(e,t)?.at(0);n!==void 0&&i.push(n)}return i}function ag(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?[y]:i.slice(0,-1);o.length>r.length&&r.every((e,t)=>e===o[t])&&a.push(o[r.length])}let o=$h(e,n);for(let t of[...o.selectiveUses,...o.selectiveReuses]){if(t.getSymbolKind()!==F.Schema)continue;let n=Jh.visibleName(e,t);!n||n.length<=r.length||r.every((e,t)=>e===n[t])&&a.push(n[r.length])}return a}var og=class{constructor(e,t){this.compiler=e,this.declarationNode=t}bind(){return this.declarationNode.body instanceof H?this.bindBody(this.declarationNode.body):[]}bindBody(e){if(!e)return[];if(e instanceof V)return this.bindFields([e]);let[t,n]=_(e.body,e=>e instanceof V);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(g(n)instanceof U){let e=xf(g(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=>!df(e.callee)))}tryToBindColumnType(e){let t=Wf(e);if(!t)return;let n=t.variables.pop();n&&this.compiler.nodeReferee(n).getErrors()}tryToBindEnumFieldRef(e){if(Sf(e))return[];if(D(e)){let t=e.expression.variable?.value?.toLowerCase();if(t&&So.includes(t))return[]}let t=Wf(e);if(!t){if(O(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 hm(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():[])}};function sg(e){let t=e.targetKind?.value?.toLowerCase();return Object.values(bp).find(e=>e.toLowerCase()===t)}function cg(e,t,n){let r=[];return t.length>1&&r.push(...t.map(t=>new E(n.duplicate,`'${e}' can only appear once`,t))),t.forEach(t=>{bf(t.value)||r.push(new E(n.invalidValue,`Custom setting '${e}' must be a string or a color literal`,t.value||t.name||t))}),r}function lg(e,t,n){if(!n.length)return;let{name:r,symbolKind:i}=n[0],a=e.lookupMembers(t,i,r);return n.length>1&&a?lg(e,a,n.slice(1)):a}function ug(e,t){if(e.length===0)return[];let n;switch(t){case bp.Table:n=[...Array(e.length-1).fill(F.Schema),F.Table];break;case bp.Column:n=e.length===1?[F.Column]:[...Array(e.length-2).fill(F.Schema),F.Table,F.Column];break;case bp.TableGroup:n=[...Array(e.length-1).fill(F.Schema),F.TableGroup];break;case bp.Note:n=[...Array(e.length-1).fill(F.Schema),F.StickyNote];break;default:break}return e.map((e,t)=>({name:e,symbolKind:n[t]}))}function dg(e,t){let n=ym(e,t.filepath);if(!n)return;let r=sg(t),i=j(t.name);if(!i?.length||!r)return;let a=ug(i,r),{name:o,symbolKind:s}=a[0];if(o===`public`&&s===F.Schema){let t=vm(e,n);if(t)return lg(e,t,a.slice(1))}return lg(e,n,a)}function fg(e,t){let n=[],r=new Set,i=t=>{let a=t.intern();if(!r.has(a)){r.add(a);for(let n of e.fileDependencies(t))i(n);n.push(t)}};i(t);let a=new Map;return n.forEach((e,t)=>a.set(e.intern(),t)),a}function pg(e,n,r,i,a){let o=ym(e,a);if(!o)return;let s=e.symbolMetadata(r).filter(t=>t.owners(e).includes(o));if(!s.length)return;let c=fg(e,a),l=[...s].sort((e,t)=>{let n=c.get(e.declaration.filepath.intern())??-1,r=c.get(t.declaration.filepath.intern())??-1;return n===r?e.declaration.start-t.declaration.start:n-r}).map(n=>e.interpretMetadata(n,a).getFiltered(t)).filter(e=>!!e);if(!l.length)return;let u={};for(let e of l)for(let[t,{value:n,token:r}]of Object.entries(e))u[t.toLowerCase()]={originalKey:t,value:n,token:r};let d=n.metadata?Object.fromEntries(Object.entries(n.metadata).map(([e,t])=>[e.toLowerCase(),{originalKey:e,value:t}])):{};Object.entries(u).forEach(([e,t])=>{let{originalKey:r,value:a,token:o}=t;i[e]?i[e].assignBuiltinField(n,a,o):d[e]={originalKey:r,value:a}}),n.metadata=Object.fromEntries(Object.values(d).map(e=>[e.originalKey,e.value]))}var mg=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??P(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})),this.attachTableAndColumnMetadata(),n.create(this.table,t)}attachTableAndColumnMetadata(){if(!this.symbol)return;pg(this.compiler,this.table,this.symbol,gg,this.filepath);let e=this.compiler.symbolMembers(this.symbol).getFiltered(t)??[];for(let t of e){if(!t.isKind(F.Column))continue;let e=this.table.fields.find(e=>e.name===t.name);e&&pg(this.compiler,e,t,_g,this.filepath)}}interpretName(e){let{name:t,schemaName:n}=pp(e);return n.length>1?(this.table.name=t,this.table.schemaName=n.join(`.`),[new E(T.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=Jf(e);return t&&(this.table.alias=t),[]}interpretSettingList(e){let t=xf(e).getValue();this.table.headerColor=t[i.HeaderColor]?.length?mp(t[i.HeaderColor]?.at(0)?.value):void 0;let[n]=t[i.Note]||[];return this.table.note=n&&{value:fp(M(n?.value)),token:P(n)},this.table.metadata=_p(t,Object.keys(gg)),[]}interpretBody(e){let[t,n]=_(e.body,e=>e instanceof V);return[...this.interpretFields(t),...this.interpretSubElements(n)]}interpretSubElements(e){return e.flatMap(e=>{switch(e.getElementKind()){case r.Note:return this.table.note={value:fp(M(e.body instanceof H?e.body.body[0].callee:e.body.callee)),token:P(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:P(e)};i.name=N(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 E(T.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(F.Column)).length?[]:[new E(T.EMPTY_TABLE,`A Table must have at least one column`,this.declarationNode)],i=e.flatMap((e,t)=>df(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=Jf(e.callee),r.token=P(e);let o=gp(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?.isIncrementSet(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)??{};r.metadata=_p(c,hg);let 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:P(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()}},hg=[i.Note,i.Ref,i.PrimaryKey,i.PK,i.NotNull,i.Null,i.Unique,i.Increment,i.Default,i.Check],gg={[i.Note]:{isValidBuiltinFieldValue:Sf,message:`'note' must be a string literal`,assignBuiltinField(e,t,n){e.note={value:t,token:n}}},[i.HeaderColor]:{isValidBuiltinFieldValue:pf,message:`'headercolor' must be a color literal`,assignBuiltinField(e,t){e.headerColor=t}}},_g={[i.Note]:{isValidBuiltinFieldValue:Sf,message:`'note' must be a quoted string`,assignBuiltinField(e,t,n){e.note={value:t,token:n}}}},vg={getDuplicateError(e,t,n){return new E(T.DUPLICATE_NAME,`Table '${e}' already exists in schema '${t}'`,n)},getColumnDuplicateError(e,t){return new E(T.DUPLICATE_COLUMN_NAME,`Duplicate column '${e}'`,t)},getPartialInjectionDuplicateError(e,t){return new E(T.DUPLICATE_TABLE_PARTIAL_INJECTION_NAME,`Duplicate table partial injection '${e}'`,t)}},yg={nodeSymbol(i,a){let o=i.nodeFullname(a).getFiltered(t)?.at(-1);return k(a,r.Table)?new n(i.symbolFactory.create(Ep,{declaration:a,name:o},a.filepath)):A(a,r.Table)?df(a.callee)?new n(i.symbolFactory.create(Mp,{declaration:a,name:o},a.filepath)):new n(i.symbolFactory.create(Dp,{declaration:a,name:o},a.filepath)):n.create(e)},symbolMembers(r,i){if(!i.isKind(F.Table))return n.create(e);let a=i.declaration;if(!(a instanceof R))return new n([]);let o=Hf(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(F.Column,F.PartialInjection)||!e.declaration)continue;let t=`${e.kind}:${e.name}`;if(e.name!==void 0){let n=e.declaration instanceof R&&e.declaration.name?e.declaration.name:e.declaration,r=l.get(t);r?e.isKind(F.Column)?(c.push(vg.getColumnDuplicateError(e.name,r)),c.push(vg.getColumnDuplicateError(e.name,n))):(c.push(vg.getPartialInjectionDuplicateError(e.name,r)),c.push(vg.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 V)||!df(n.declaration.callee))continue;let i=n.declaration.callee.expression,o=N(i);if(i===void 0||o===void 0)continue;let l=r.nodeReferee(i).getFiltered(t);if(!l){c.push(new E(T.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(Hp,{kind:F.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(F.Column)&&!(e instanceof Hp)).map(e=>e.name));return new n(Pa([...s.filter(e=>!(e instanceof Hp&&d.has(e.name)))].reverse(),e=>e.isKind(F.Column)?e.name:e).reverse(),c)},nodeReferee(a,o){if(!kf(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):D(o)&&o.parentNode instanceof B&&o.parentNode.op?.value===`~`?bg(a,c,o):Af(o,1)?xg(a,c,o):Mf(o,i.Ref)?Sg(a,c,o):Af(o,0)?n.create(e):Cg(a,c,o)},bindNode(i,a){if(!k(a,r.Table))return n.create(e);let o=new og(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 Ep?r.declaration instanceof R?new mg(t,r.declaration,r,i).interpret():n.create(void 0):n.create(e)}};function bg(e,r,i){let a=N(i)??``,o=e.symbolMembers(r).getFiltered(t);if(o){let t=o.find(e=>e instanceof Cp&&e.isPublicSchema());if(t){let r=e.lookupMembers(t,F.TablePartial,a);if(r)return n.create(r)}}let s=e.lookupMembers(r,F.TablePartial,a);return s?n.create(s):new n(void 0,[new E(T.BINDING_ERROR,`TablePartial '${a}' does not exist in Schema 'public'`,i)])}function xg(e,t,r){if(!D(r))return new n(void 0);let i=Jf(r)??``;if(!O(r.parentNode))return n.create(e.lookupMembers(t,F.Enum,i));let a=gm(e,r);if(a){if(a.isKind(F.Schema)){let t=Lf(r),o=e.lookupMembers(a,t?F.Enum:F.Schema,i);return o?n.create(o):new n(void 0,[new E(T.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,F.Schema,i);return a?n.create(a):new n(void 0,[new E(T.BINDING_ERROR,`Schema '${i}' does not exist in Schema 'public'`,r)])}return new n(void 0)}function Sg(e,i,a){if(!D(a))return new n(void 0);let o=Jf(a)??``;if(!O(a.parentNode)){let s=a.parent,c=s instanceof R&&s.isKind(r.Table)?e.nodeSymbol(s).getFiltered(t):void 0;if(c){let t=e.lookupMembers(c,F.Column,o);if(t)return n.create(t)}let l=e.lookupMembers(i,F.Column,o);return l?n.create(l):new n(void 0,[new E(T.BINDING_ERROR,`Column '${o}' does not exist in Table 'public.${c?.name??``}'`,a)])}let s=gm(e,a);if(s){if(s.isKind(F.Schema)){let t=e.lookupMembers(s,[F.Table,F.Schema],o);return t?n.create(t):new n(void 0,[new E(T.BINDING_ERROR,`Table or schema '${o}' does not exist`,a)])}if(s.isKind(F.Table)){let t=e.lookupMembers(s,F.Column,o);return t?n.create(t):new n(void 0,[new E(T.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(O(c.parentNode)&&c.parentNode.leftExpression===c){let t=e.lookupMembers(i,F.Schema,o);return t?n.create(t):new n(void 0,[new E(T.BINDING_ERROR,`Schema '${o}' does not exist in Schema 'public'`,a)])}let t=e.lookupMembers(i,F.Table,o);return t?n.create(t):new n(void 0,[new E(T.BINDING_ERROR,`Table '${o}' does not exist in Schema 'public'`,a)])}return new n(void 0)}function Cg(e,t,r){if(!D(r))return new n(void 0);let i=Jf(r)??``;if(!O(r.parentNode))return So.includes(i.toLowerCase())?new n(void 0):n.create(e.lookupMembers(t,F.Enum,i));let a=gm(e,r);if(a){if(a.isKind(F.Schema)){let t=e.lookupMembers(a,[F.Enum,F.Schema],i);return t?n.create(t):new n(void 0,[new E(T.BINDING_ERROR,`Enum or schema '${i}' does not exist`,r)])}if(a.isKind(F.Enum)){let t=e.lookupMembers(a,F.EnumField,i);return t?n.create(t):new n(void 0,[new E(T.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(O(o.parentNode)&&o.parentNode.leftExpression===o){let a=e.lookupMembers(t,F.Schema,i);return a?n.create(a):new n(void 0,[new E(T.BINDING_ERROR,`Schema '${i}' does not exist in Schema 'public'`,r)])}let a=e.lookupMembers(t,F.Enum,i);return a?n.create(a):new n(void 0,[new E(T.BINDING_ERROR,`Enum '${i}' does not exist in Schema 'public'`,r)])}return new n(void 0)}function wg(e){return e?e.split(``).every(e=>nf(e)||rf(e))&&!rf(e[0]):!1}function Tg(e){return wg(e)?e:`"${Dg(e)}"`}function Eg(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 Dg(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 Og(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`'${Dg(e)}'`;let{value:t,type:n}=e;if(t==null||Ro(n)&&typeof t==`string`&&t.toLowerCase()===`null`)return`null`;if(n===`expression`)return typeof t==`string`&&t.toLowerCase().trim()===`null`?`null`:`\`${t}\``;if(Ro(n)){let e=rp(t);return e===null?`\`${t}\``:e?`true`:`false`}if(Lo(n)){let e=$f(t);return e===null?`\`${t}\``:String(e)}if(Vo(n)){let e=lp(t);return e===null?`\`${t}\``:`'${Dg(e)}'`}let r=ap(t);return r===null?`\`${t}\``:`'${Dg(r)}'`}function kg(e){return(e.match(/"(?:[^"\\]|\\.)*"|[^."]+/g)||[]).map(e=>e.startsWith(`"`)&&e.endsWith(`"`)?Eg(e.slice(1,-1)):e.trim()).filter(e=>e.length>0)}function Ag(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 jg(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 Cp&&n.isKind(F.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 Mg=class{constructor(e,t){this.compiler=e,this.declarationNode=t}bind(){return this.declarationNode.body instanceof H?this.bindBody(this.declarationNode.body):[]}bindBody(e){if(!e)return[];if(e instanceof V)return this.bindFields([e]);let[t,n]=_(e.body,e=>e instanceof V);return[...this.bindFields(t),...this.bindSubElements(n)]}bindFields(e){return e.flatMap(e=>e.callee?[e.callee,...e.args].flatMap(hm).flatMap(e=>{let n=e.variables.pop();if(!n)return[];let r=this.compiler.nodeReferee(n),i=r.getFiltered(t);return i instanceof Vp?[...r.getErrors(),new E(T.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():[])}},Ng={[i.Note]:{isValidBuiltinFieldValue:Sf,message:`'note' must be a string literal`,assignBuiltinField(e,t,n){e.note={value:t,token:n}}},[i.Color]:{isValidBuiltinFieldValue:pf,message:`'color' must be a color literal`,assignBuiltinField(e,t){e.color=t}}},Pg=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=P(this.declarationNode),e.push(...this.interpretName(this.declarationNode.name),...this.interpretSettingList(this.declarationNode.attributeList),...this.interpretBody(this.declarationNode.body)),pg(this.compiler,this.tableGroup,this.symbol,Ng,this.filepath),n.create(this.tableGroup,e)}interpretName(e){let t=[],{name:n,schemaName:r}=pp(e);return r.length>=2&&(this.tableGroup.name=n,this.tableGroup.schemaName=r.join(`.`),t.push(new E(T.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]=_(e.body,e=>e instanceof V);return[...this.interpretFields(t),...this.interpretSubElements(n)]}interpretSubElements(e){return e.flatMap(e=>{switch(e.getElementKind()){case r.Note:this.tableGroup.note={value:fp(M(e.body instanceof H?e.body.body[0].callee:e.body.callee)),token:P(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(F.Table)){let{name:e,schema:t}=r.interpretedName(this.compiler,this.filepath);return{name:e,schemaName:t}}let i=j(e.callee);return i.length>2&&n.push(new E(T.UNSUPPORTED,`Nested schema is not supported`,e)),{name:i.pop(),schemaName:i.join(`.`)||null}}),n}interpretSettingList(e){let t=xf(e).getValue();this.tableGroup.color=t.color?.length?mp(t.color?.at(0)?.value):void 0;let[n]=t.note||[];return this.tableGroup.note=n&&{value:fp(M(n?.value)),token:P(n)},this.tableGroup.metadata=_p(t,Object.keys(Ng)),[]}},Fg={getDuplicateError(e,t,n){return new E(T.DUPLICATE_NAME,`TableGroup '${e}' already exists in schema '${t}'`,n)},getFieldDuplicateError(e,t){return new E(T.DUPLICATE_NAME,`Duplicate TableGroupField '${e}'`,t)}},Ig={nodeSymbol(i,a){let o=i.nodeFullname(a).getFiltered(t),s=o?.at(-1);return k(a,r.TableGroup)?new n(i.symbolFactory.create(Op,{declaration:a,name:s},a.filepath)):A(a,r.TableGroup)?new n(i.symbolFactory.create(kp,{declaration:a,name:o?.map(Tg).join(`.`)},a.filepath)):n.create(e)},symbolMembers(r,i){if(i.isKind(F.TableGroup)){let e=i.declaration;if(!(e instanceof R))return new n([]);let a=Hf(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(F.TableGroupField)||!e.declaration)continue;let t=`${e.kind}:${e.name}`;if(e.name!==void 0){let n=e.declaration instanceof R&&e.declaration.name?e.declaration.name:e.declaration,r=c.get(t);r?(s.push(Fg.getFieldDuplicateError(e.name,r)),s.push(Fg.getFieldDuplicateError(e.name,n))):c.set(t,n)}}return new n(o,s)}return i.isKind(F.TableGroupField)?new n([]):n.create(e)},nodeReferee(i,a){if(!D(a)||!kf(a,r.TableGroup)||a.parent&&jf(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):Lg(i,s,a)},bindNode(i,a){if(!k(a,r.TableGroup))return n.create(e);let o=new Mg(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!k(o,r.TableGroup)||!(i instanceof Op)?n.create(e):mm(t,o)?new Pg(t,i,a).interpret():n.create(void 0)}};function Lg(e,r,i){let a=Jf(i)??``;if(!O(i.parentNode)){let o=e.symbolMembers(r).getFiltered(t);if(o){let t=o.find(e=>e instanceof Cp&&e.isPublicSchema());if(t){let r=e.lookupMembers(t,F.Table,a);if(r)return n.create(r)}}let s=e.lookupMembers(r,F.Table,a);return s?n.create(s):new n(void 0,[new E(T.BINDING_ERROR,`Table '${a}' does not exist in Schema 'public'`,i)])}let o=gm(e,i);if(o){if(o.isKind(F.Schema)){let t=e.lookupMembers(o,[F.Table,F.Schema],a);return t?n.create(t):new n(void 0,[new E(T.BINDING_ERROR,`Table or schema '${a}' does not exist`,i)])}return new n(void 0)}let s=e.lookupMembers(r,F.Schema,a);return s?n.create(s):new n(void 0,[new E(T.BINDING_ERROR,`Schema '${a}' does not exist`,i)])}var Rg=class{constructor(e,t){this.compiler=e,this.declarationNode=t}bind(){return this.declarationNode.body instanceof H?this.bindBody(this.declarationNode.body):[]}bindBody(e){if(!e)return[];if(e instanceof V)return this.bindFields([e]);let[t,n]=_(e.body,e=>e instanceof V);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(g(n)instanceof U){let e=xf(g(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=Wf(e);if(!t)return[];let n=t.variables.pop();return n?this.compiler.nodeReferee(n).getErrors():[]}bindInlineRef(e){return hm(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():[])}},zg=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??P(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}=pp(e);return this.tablePartial.name=t,[]}interpretSettingList(e){let t=xf(e).getValue(),n=va(t[i.HeaderColor]);this.tablePartial.headerColor=n?mp(n.value):void 0;let[r]=t[i.Note]||[];return this.tablePartial.note=r&&{value:fp(M(r?.value)),token:P(r)},[]}interpretBody(e){let[t,n]=_(e.body,e=>e instanceof V);return[...this.interpretFields(t),...this.interpretSubElements(n)]}interpretSubElements(e){return e.flatMap(e=>{switch(e.getElementKind()){case r.Note:return this.tablePartial.note={value:fp(M(e.body instanceof H?e.body.body[0].callee:e.body.callee)),token:P(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=Jf(e.callee)??``,r.token=P(e);let o=gp(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?.isIncrementSet(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)??{};r.metadata=_p(c,hg);let 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 Cm))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:P(n.rightToken())}}),r.checks=(c[i.Check]||[]).map(e=>({token:P(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()}},Bg={getDuplicateError(e,t,n){return new E(T.DUPLICATE_NAME,`TablePartial '${e}' already exists in schema '${t}'`,n)}},Vg={nodeSymbol(i,a){let o=i.nodeFullname(a).getFiltered(t)?.at(-1);return k(a,r.TablePartial)?new n(i.symbolFactory.create(jp,{declaration:a,name:o},a.filepath)):A(a,r.TablePartial)?new n(i.symbolFactory.create(Dp,{declaration:a,name:o},a.filepath)):n.create(e)},symbolMembers(i,a){if(a.isKind(F.TablePartial)){let e=a.declaration;if(!(e instanceof R))return new n([]);let r=Hf(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(F.Column)||!e.declaration)continue;let t=e.name;if(t!==void 0){let n=e.declaration instanceof R&&e.declaration.name?e.declaration.name:e.declaration,r=c.get(t);r?(s.push(vg.getColumnDuplicateError(t,r)),s.push(vg.getColumnDuplicateError(t,n))):c.set(t,n)}}return new n(o,s)}return a.isKind(F.Column)&&k(a.declaration?.parent,r.TablePartial)?new n([]):n.create(e)},nodeReferee(a,o){if(!D(o)&&!O(o)||!kf(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):Af(o,1)?Hg(a,c,o):Mf(o,i.Ref)?Ug(a,c,o):Wg(a,c,o)},bindNode(i,a){if(!k(a,r.TablePartial))return n.create(e);let o=new Rg(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 jp?r.declaration instanceof R?new zg(t,r,i).interpret():n.create(void 0):n.create(e)}};function Hg(e,t,r){if(!D(r))return new n(void 0);let i=Jf(r)??``;if(!O(r.parentNode))return n.create(e.lookupMembers(t,F.Enum,i));let a=gm(e,r);if(a){if(a.isKind(F.Schema)){let t=e.lookupMembers(a,[F.Enum,F.Schema],i);return t?n.create(t):new n(void 0,[new E(T.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,F.Schema,i);return a?n.create(a):new n(void 0,[new E(T.BINDING_ERROR,`Schema '${i}' does not exist in Schema 'public'`,r)])}return new n(void 0)}function Ug(e,i,a){if(!D(a))return new n(void 0);let o=Jf(a)??``;if(!O(a.parentNode)){let s=a.parent;if(s instanceof R&&s.isKind(r.TablePartial)){let r=e.nodeSymbol(s).getFiltered(t);if(r){let t=e.lookupMembers(r,F.Column,o);return t?n.create(t):new n(void 0,[new E(T.BINDING_ERROR,`Column '${o}' does not exist in TablePartial '${r.name}'`,a)])}}let c=e.lookupMembers(i,F.Column,o);return c?n.create(c):new n(void 0,[new E(T.BINDING_ERROR,`Column '${o}' does not exist`,a)])}let s=gm(e,a);if(s){if(s.isKind(F.Schema)){let t=e.lookupMembers(s,[F.Table,F.Schema],o);return t?n.create(t):new n(void 0,[new E(T.BINDING_ERROR,`Table or schema '${o}' does not exist`,a)])}if(s.isKind(F.Table)){let t=e.lookupMembers(s,F.Column,o);return t?n.create(t):new n(void 0,[new E(T.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(O(c.parentNode)&&c.parentNode.leftExpression===c){let t=e.lookupMembers(i,F.Schema,o);return t?n.create(t):new n(void 0,[new E(T.BINDING_ERROR,`Schema '${o}' does not exist in Schema 'public'`,a)])}let t=e.lookupMembers(i,F.Table,o);return t?n.create(t):new n(void 0,[new E(T.BINDING_ERROR,`Table '${o}' does not exist in Schema 'public'`,a)])}return new n(void 0)}function Wg(e,t,r){if(!D(r))return new n(void 0);let i=Jf(r)??``;if(!O(r.parentNode))return So.includes(i.toLowerCase())?new n(void 0):n.create(e.lookupMembers(t,F.Enum,i));let a=gm(e,r);if(a){if(a.isKind(F.Schema)){let t=e.lookupMembers(a,[F.Enum,F.Schema],i);return t?n.create(t):new n(void 0,[new E(T.BINDING_ERROR,`Enum or schema '${i}' does not exist`,r)])}if(a.isKind(F.Enum)){let t=e.lookupMembers(a,F.EnumField,i);return t?n.create(t):new n(void 0,[new E(T.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(O(o.parentNode)&&o.parentNode.leftExpression===o){let a=e.lookupMembers(t,F.Schema,i);return a?n.create(a):new n(void 0,[new E(T.BINDING_ERROR,`Schema '${i}' does not exist in Schema 'public'`,r)])}let a=e.lookupMembers(t,F.Enum,i);return a?n.create(a):new n(void 0,[new E(T.BINDING_ERROR,`Enum '${i}' does not exist in Schema 'public'`,r)])}return new n(void 0)}var Gg={symbolMembers(r,i){if(!i.isKind(F.Schema)||!(i instanceof Cp))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=qg(r,i,e,c);l.push(...n.getErrors());let a=n.getFiltered(t);a&&s.push(a),s.push(...Jg(r,i,e))}for(let{importPath:e,node:t}of o.reuses.wildcard)s.push(...Xg(r,i,e,t,c));for(let e of o.uses.selective){let n=qg(r,i,e,c);l.push(...n.getErrors());let a=n.getFiltered(t);a&&s.push(a),s.push(...Jg(r,i,e))}for(let{importPath:e,node:t}of o.uses.wildcard)s.push(...Xg(r,i,e,t,c));s.push(...c.values());let u=[...s];{let e=s.filter(e=>e.isKind(F.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(F.TableGroup)))}}for(let t of e)u.push(...Qg(r,i,t))}let d=new Set,f=u.filter(e=>{if(e instanceof Vp&&e.isKind(F.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(F.Schema))continue;let t=e instanceof Vp?e.useSpecifierDeclaration??e.declaration:e.declaration instanceof R&&e.declaration.name?e.declaration.name:e.declaration;t&&e.name!==void 0&&l.push(Kg(e.kind,e.name,a.join(`.`),t))}else p.set(t,e)}return new n(f,l)}};function Kg(e,t,n,r){switch(e){case F.Table:return vg.getDuplicateError(t,n,r);case F.Enum:return Km.getDuplicateError(t,n,r);case F.TablePartial:return Bg.getDuplicateError(t,n,r);case F.TableGroup:return Fg.getDuplicateError(t,n,r);case F.DiagramView:return Rm.getDuplicateError(t,n,r);default:return new E(T.DUPLICATE_NAME,`Duplicate ${e} '${t}' in schema '${n}'`,r)}}function qg(e,r,i,a){let o=Qh(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(Cp,{name:o.schemaName,parent:r},r.filepath)),n.create(void 0)}function Jg(e,n,r,i=new Set){if(r.getSymbolKind()!==F.Schema||!r.name)return[];let a=e.nodeReferee(r.name).getFiltered(t);if(!a||!a.isKind(F.Schema))return[];let o=Jh.visibleName(e,r),s=n.qualifiedName;return!o||o.length!==s.length||!o.every((e,t)=>e===s[t])?[]:Yg(e,n,r,a,i)}function Yg(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(Vp,{kind:t.kind,declaration:t.originalSymbol.declaration,usedSymbol:t.originalSymbol,useSpecifierDeclaration:r,name:t.name},n.filepath));for(let t of[...c])t.isKind(F.TableGroup)&&c.push(...Qg(e,n,t));for(let i of s.reuses.selective)if(c.push(...Jg(e,n,i,a)),Qh(e,n,i).kind===`direct`){let a=e.nodeSymbol(i).getFiltered(t);a&&a.canBeImported&&c.push(e.symbolFactory.create(Vp,{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=Zg(e,t,n.qualifiedName);i&&c.push(...Yg(e,n,r,i,a))}return c}function Xg(e,n,r,i,a,o=new Set){if(o.has(r))return[];o.add(r);let s=Zg(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(Vp,{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(Cp,{name:t.name},n.filepath));let{reuses:{selective:u,wildcard:d}}=c;for(let r of u){let i=qg(e,n,r,a).getFiltered(t);i&&l.push(i),l.push(...Jg(e,n,r))}for(let{importPath:t}of d)l.push(...Xg(e,n,t,i,a,o));return l}function Zg(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 Qg(e,n,r){if(!r.isKind(F.TableGroup)||!(r instanceof Vp))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(F.TableGroupField)||!t.declaration)continue;let n=t.declaration.callee;if(!n)continue;let i=j(n);if(!i||i.length===0)continue;let a=i.length<=1?[y]:i.slice(0,-1);if(a.length!==o.length||!o.every((e,t)=>e===a[t]))continue;let c=t.declaration.filepath,l=$g(e,c,i);l&&s.push(e.symbolFactory.create(Vp,{kind:F.Table,declaration:l.declaration,usedSymbol:l,useSpecifierDeclaration:void 0,name:l.name},r.filepath))}return s}function $g(e,n,r){if(r.length===1){let i=e.usableMembers(n).getFiltered(t);return i?i.nonSchemaMembers.find(e=>e.isKind(F.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(F.Table)&&e.name===a)}var e_=class{constructor(e,t){this.compiler=e,this.declarationNode=t}bind(){return this.bindBody(this.declarationNode.body)}bindBody(e){if(!e||e instanceof V)return[];let t=e.body.filter(e=>e instanceof R);return this.bindSubElements(t)}bindSubElements(e){return e.flatMap(e=>e.type?this.compiler.bindNode(e).getErrors():[])}},t_={[i.Color]:{isValidBuiltinFieldValue:mf,message:`'color' must be a color literal or 'none'`,assignBuiltinField(e,t){e.color=t}}},n_=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=P(this.declarationNode);let e=[...this.interpretName(),...this.interpretSettingList(this.declarationNode.attributeList),...this.interpretBody(this.declarationNode.body)];return pg(this.compiler,this.note,this.symbol,t_,this.filepath),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=xf(e).getValue();return t.color?.length&&(this.note.color=mp(t.color.at(0)?.value)),this.note.metadata=_p(t,Object.keys(t_)),[]}interpretBody(e){let[t,n]=_(e.body,e=>e instanceof V);return t.length!==1||n.length>0?[new E(T.INVALID_NOTE,`Invalid note syntax`,e)]:[...this.interpretNote(t[0])]}interpretNote(e){let t=M(e.callee)??``;return this.note.content=fp(t),[]}},r_={nodeSymbol(i,a){return!k(a,r.Note)||!(a.parentNode instanceof L)?n.create(e):new n(i.symbolFactory.create(Ap,{declaration:a,name:i.nodeFullname(a).getFiltered(t)?.at(-1)},a.filepath))},symbolMembers(t,r){return r.isKind(F.StickyNote)?new n([]):n.create(e)},bindNode(t,i){return k(i,r.Note)?n.create(void 0,new e_(t,i).bind()):n.create(e)},interpretSymbol(t,r,i){return r instanceof Ap?r.declaration instanceof R?new n_(t,r,i).interpret():n.create(void 0):n.create(e)}},i_=class{constructor(e,t){this.compiler=e,this.declarationNode=t}bind(){return[...this.bindTargetElement(this.declarationNode.name),...this.bindBody(this.declarationNode.body)]}bindTargetElement(e){let t=sg(this.declarationNode);return!j(e)?.length||!t||dg(this.compiler,this.declarationNode)?[]:[new E(T.BINDING_ERROR,`cannot find metadata target element`,e??this.declarationNode)]}bindBody(e){return e instanceof H?e.body.filter(e=>e instanceof R).flatMap(e=>e.type?this.compiler.bindNode(e).getErrors():[]):[]}},a_=class{constructor(e,t,n){this.compiler=e,this.declarationNode=t.declaration,this.filepath=n,this.values={}}interpret(){let e=this.interpretValues(this.declarationNode.body);return new n(this.values,e)}interpretValues(e){if(!(e instanceof H))return[];for(let t of e.body){if(!(t instanceof R))continue;let e=t.type?.value;if(!e)continue;let n=vp(t.body instanceof V?t.body.callee:void 0);n&&(this.values[e]={value:e===`note`?fp(n):n,token:P(t)})}return[]}},o_=[Yh,yg,qm,Lh,Xm,Nm,Kh,Ah,Ig,Vg,r_,{nodeMetadata(t,i){return k(i,r.Metadata)?new n(new Dm(i)):new n(e)},nodeReferee(t,i){if(!D(i))return new n(e);let a=i.parentOfKind(R);return!a||!k(a,r.Metadata)||!a.name?.containsEq(i)?new n(e):!j(a.name)||!sg(a)?new n(void 0):new n(dg(t,a))},bindNode(t,i){return k(i,r.Metadata)?new n(void 0,new i_(t,i).bind()):new n(e)},interpretMetadata(t,i,a){return i instanceof Dm?k(i.declaration,r.Metadata)?new a_(t,i,a).interpret():new n(void 0):new n(e)}},Gg,zm,Dh];function s_(t,...r){for(let i of o_){let a=i[t];if(a){let t=a(...r);if(t instanceof n&&!t.hasValue(e))return t}}return n.create(e)}function c_(r){let i=s_(`nodeSymbol`,this,r);return i.hasValue(e)?n.create(t):i}function l_(r){let i=s_(`symbolMembers`,this,r);return i.hasValue(e)?n.create(t):i}function u_(r){let i=s_(`nodeReferee`,this,r);return i.hasValue(e)?n.create(t):i}function d_(r){let i=s_(`bindNode`,this,r);return i.hasValue(e)?n.create(t):i}function f_(r){let i=s_(`nodeMetadata`,this,r);return i.hasValue(e)?n.create(t):i}function p_(r,i){let a=s_(`interpretSymbol`,this,r,i);return a.hasValue(e)?n.create(t):a}function m_(r,i){let a=s_(`interpretMetadata`,this,r,i);return a.hasValue(e)?n.create(t):a}var h_=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 E(T.INVALID_CHECKS_CONTEXT,`A Checks can only appear inside a Table or a TablePartial`,this.declarationNode);return this.declarationNode.parent instanceof L?[e]:this.declarationNode.parent?.isKind(r.Table,r.TablePartial)?[]:[e]}validateName(e){return e?[new E(T.UNEXPECTED_NAME,`A Checks shouldn't have a name`,e)]:[]}validateAlias(e){return e?[new E(T.UNEXPECTED_ALIAS,`A Checks shouldn't have an alias`,e)]:[]}validateSettingList(e){return e?[new E(T.UNEXPECTED_SETTINGS,`A Checks shouldn't have a setting list`,e)]:[]}validateBody(e){if(!e)return[];if(e instanceof V)return[new E(T.UNEXPECTED_SIMPLE_BODY,`A Checks must have a complex body`,e)];let[t,n]=_(e.body,e=>e instanceof V);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 g(n)instanceof U&&t.push(...this.validateFieldSetting(n.pop())),(n.length>1||!(n[0]instanceof Zp))&&t.push(new E(T.INVALID_CHECKS_FIELD,`A check field must be a function expression`,e)),t})}validateFieldSetting(e){let t=xf(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 E(T.DUPLICATE_CHECK_SETTING,`'${e}' can only appear once`,t))),t.forEach(t=>{Sf(t.value)||n.push(new E(T.INVALID_CHECK_SETTING_VALUE,`'${e}' must be a string`,t))});break;default:t.forEach(t=>n.push(new E(T.UNKNOWN_CHECK_SETTING,`Unknown check setting '${e}'`,t)))}return n}validateSubElements(e){return e.flatMap(e=>e.type?this.compiler.validateNode(e).getErrors():[])}},g_={validateNode(t,i){if(!k(i,r.Checks))return n.create(e);let a=new h_(t,i);return n.create(void 0,a.validate())},nodeFullname(t,i){return k(i,r.Checks)?i.name?new n(void 0,[new E(T.UNEXPECTED_NAME,`A Checks shouldn't have a name`,i.name)]):new n(void 0):n.create(e)},nodeAlias(t,i){return k(i,r.Checks)?i.alias?new n(void 0,[new E(T.UNEXPECTED_ALIAS,`A Checks shouldn't have an alias`,i.alias)]):new n(void 0):n.create(e)},nodeSettings(t,i){return k(i,r.Checks)?i.attributeList?new n({},[new E(T.UNEXPECTED_SETTINGS,`A Checks shouldn't have a setting list`,i.attributeList)]):new n({}):n.create(e)}},__=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 R&&this.declarationNode.parent.isKind(r.Project)?[]:[new E(T.INVALID_CUSTOM_CONTEXT,`A Custom element can only appear in a Project`,this.declarationNode)]}validateName(e){return e?[new E(T.UNEXPECTED_NAME,`A Custom element shouldn't have a name`,e)]:[]}validateAlias(e){return e?[new E(T.UNEXPECTED_NAME,`A Custom element shouldn't have an alias`,e)]:[]}validateSettingList(e){return e?[new E(T.UNEXPECTED_SETTINGS,`A Custom element shouldn't have a setting list`,e)]:[]}validateBody(e){if(!e)return[];if(e instanceof H)return[new E(T.UNEXPECTED_COMPLEX_BODY,`A Custom element can only have an inline field`,e)];let t=[];return Sf(e.callee)||t.push(new E(T.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 E(T.INVALID_CUSTOM_ELEMENT_VALUE,`A Custom element value can only be a string`,e))),t}};function v_(e){return e instanceof R&&!!e.type?.value}var y_={validateNode(t,r){if(!v_(r))return n.create(e);let i=new __(t,r);return n.create(void 0,i.validate())},nodeFullname(t,r){return v_(r)?r.name?new n(void 0,[new E(T.UNEXPECTED_NAME,`A custom field shouldn't have a name`,r.name)]):new n(void 0):n.create(e)},nodeAlias(t,r){return v_(r)?r.alias?new n(void 0,[new E(T.UNEXPECTED_NAME,`A custom field shouldn't have an alias`,r.alias)]):new n(void 0):n.create(e)},nodeSettings(t,r){return v_(r)?r.attributeList?new n({},[new E(T.UNEXPECTED_SETTINGS,`A custom field shouldn't have a setting list`,r.attributeList)]):new n({}):n.create(e)}},b_=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 R?[new E(T.INVALID_DIAGRAMVIEW_CONTEXT,`DiagramView must appear top-level`,this.declarationNode)]:[]}validateName(e){return e?lf(e)?[]:[new E(T.INVALID_NAME,`A DiagramView name must be a single identifier`,e)]:[new E(T.NAME_NOT_FOUND,`A DiagramView must have a name`,this.declarationNode)]}validateAlias(e){return e?[new E(T.UNEXPECTED_ALIAS,`A DiagramView shouldn't have an alias`,e)]:[]}validateSettingList(e){let t=xf(e),n=t.getErrors(),r=t.getValue();for(let e of Object.keys(r))n.push(...r[e].map(t=>new E(T.UNEXPECTED_SETTINGS,`Unknown '${e}' setting for DiagramView`,t)));return n}validateBody(e){if(!e)return{errors:[],warnings:[]};if(e instanceof V)return{errors:[new E(T.UNEXPECTED_SIMPLE_BODY,`A DiagramView's body must be a block`,e)],warnings:[]};let[t,n]=_(e.body,e=>e instanceof V),r=this.validateSubElements(n);return{errors:[...this.validateFields(t),...r.errors],warnings:r.warnings}}validateFields(e){return e.flatMap(e=>Cf(e.callee)?e.args.length>0?e.args.map(e=>new E(T.INVALID_DIAGRAMVIEW_FIELD,`DiagramView field should only have a single name`,e)):[]:[new E(T.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 E(T.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(uf(e))return t.push(new E(T.UNEXPECTED_SIMPLE_BODY,`${e.type?.value} body must be a block`,e.bodyColon)),{errors:t,warnings:n};if(!e.body||!(e.body instanceof H))return{errors:t,warnings:n};let r=e.body,i=r.body.some(e=>e instanceof V&&Cf(e.callee)),a=r.body.some(e=>e instanceof V&&!Cf(e.callee));return i&&a&&n.push(new tf(T.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 H))return t;let n=e.body.body.filter(e=>e instanceof V);for(let e of n)Cf(e.callee)||(e.args.length>0||!j(e.callee))&&t.push(...e.args.map(e=>new E(T.INVALID_DIAGRAMVIEW_FIELD,`DiagramView field should only have a single name`,e)));return t}},x_={validateNode(t,i){if(!k(i,r.DiagramView))return n.create(e);let{errors:a,warnings:o}=new b_(t,i).validate();return n.create(void 0,a,o)},nodeFullname(t,i){if(k(i,r.DiagramView)){if(!i.name)return new n(void 0,[new E(T.NAME_NOT_FOUND,`A DiagramView must have a name`,i)]);let e=j(i.name);return e?new n(e):new n(void 0)}else if(A(i,r.DiagramViewTables,r.DiagramViewNotes,r.DiagramViewSchemas,r.DiagramViewTableGroups)){let e=j(i.callee);return e?(e.length===1&&A(i,r.DiagramViewTables)&&e.unshift(y),new n(e)):new n(void 0)}return new n(e)},nodeAlias(t,i){return k(i,r.DiagramView)?new n(void 0):n.create(e)}},S_=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 R?[new E(T.INVALID_PROJECT_CONTEXT,`An Enum can only appear top-level`,this.declarationNode)]:[]}validateName(e){return e?e instanceof nm?[new E(T.INVALID_NAME,`Wildcard (*) is not allowed as an Enum name`,e)]:sf(e)?[]:[new E(T.INVALID_NAME,`An Enum name must be of the form <enum> or <schema>.<enum>`,e)]:[new E(T.NAME_NOT_FOUND,`An Enum must have a name`,this.declarationNode)]}validateAlias(e){return e?[new E(T.UNEXPECTED_ALIAS,`An Enum shouldn't have an alias`,e)]:[]}validateSettingList(e){return e?[new E(T.UNEXPECTED_SETTINGS,`An Enum shouldn't have a setting list`,e)]:[]}validateBody(e){if(!e)return[];if(e instanceof V)return this.validateFields([e]);let[t,n]=_(e.body,e=>e instanceof V);return[...this.validateFields(t),...this.validateSubElements(n)]}validateFields(e){if(e.length===0)return[new E(T.EMPTY_ENUM,`An Enum must have at least one element`,this.declarationNode)];let t=[];for(let n of e){n.callee&&!D(n.callee)&&t.push(new E(T.INVALID_ENUM_ELEMENT_NAME,`An enum field must be an identifier or a quoted identifier`,n.callee));let e=[...n.args];g(e)instanceof U?(t.push(...this.validateFieldSettings(g(e))),e.pop()):e[0]instanceof U&&(t.push(...this.validateFieldSettings(e[0])),e.shift()),e.length>0&&t.push(...e.map(e=>new E(T.INVALID_ENUM_ELEMENT,`An Enum must have only a field and optionally a setting list`,e)))}return t}validateFieldSettings(e){let t=xf(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 E(T.DUPLICATE_ENUM_ELEMENT_SETTING,`'note' can only appear once`,e))),t.forEach(e=>{Sf(e.value)||n.push(new E(T.INVALID_ENUM_ELEMENT_SETTING,`'note' must be a string`,e))});break;default:t.forEach(t=>n.push(new E(T.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():[])}},C_={validateNode(t,i){return k(i,r.Enum)?n.create(void 0,new S_(t,i).validate()):n.create(e)},nodeFullname(t,i){if(k(i,r.Enum)){if(!i.name)return new n(void 0,[new E(T.NAME_NOT_FOUND,`An Enum must have a name`,i)]);if(!sf(i.name))return new n(void 0,[new E(T.INVALID_NAME,`An Enum name must be of the form <enum> or <schema>.<enum>`,i.name)]);let e=j(i.name);return e?.length===1&&e.unshift(y),new n(e)}if(A(i,r.Enum)){let e=N(i.callee);return new n(e===void 0?void 0:[e])}return n.create(e)},nodeAlias(t,i){return k(i,r.Enum)?i.alias?new n(void 0,[new E(T.UNEXPECTED_ALIAS,`An Enum shouldn't have an alias`,i.alias)]):new n(void 0):A(i,r.Enum)?new n(void 0):n.create(e)},nodeSettings(t,a){if(k(a,r.Enum))return a.attributeList?new n({},[new E(T.UNEXPECTED_SETTINGS,`An Enum shouldn't have a setting list`,a.attributeList)]):new n({});if(A(a,r.Enum)){let e=[...a.args],t;if(g(e)instanceof U?t=g(e):e[0]instanceof U&&(t=e[0]),!t)return new n({});let r=xf(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 E(T.DUPLICATE_ENUM_ELEMENT_SETTING,`'note' can only appear once`,e))),t.forEach(e=>{Sf(e.value)||o.push(new E(T.INVALID_ENUM_ELEMENT_SETTING,`'note' must be a string`,e))}),c[e]=t;break;default:t.forEach(t=>o.push(new E(T.UNKNOWN_ENUM_ELEMENT_SETTING,`Unknown enum field setting '${e}'`,t)))}return new n(c,o)}return n.create(e)}},w_=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 E(T.INVALID_INDEXES_CONTEXT,`An Indexes can only appear inside a Table or a TablePartial`,this.declarationNode);return this.declarationNode.parent instanceof L?[e]:this.declarationNode.parent?.isKind(r.Table,r.TablePartial)?[]:[e]}validateName(e){return e?[new E(T.UNEXPECTED_NAME,`An Indexes shouldn't have a name`,e)]:[]}validateAlias(e){return e?[new E(T.UNEXPECTED_ALIAS,`An Indexes shouldn't have an alias`,e)]:[]}validateSettingList(e){return e?[new E(T.UNEXPECTED_SETTINGS,`An Indexes shouldn't have a setting list`,e)]:[]}validateBody(e){if(!e)return[];if(e instanceof V)return[new E(T.UNEXPECTED_SIMPLE_BODY,`An Indexes must have a complex body`,e)];let[t,n]=_(e.body,e=>e instanceof V);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 g(n)instanceof U&&t.push(...this.validateFieldSetting(n.pop())),n.forEach(e=>{for(;e instanceof W;)e.argumentList&&Gf(e.argumentList)===void 0&&t.push(new E(T.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;Gf(e)===void 0&&t.push(new E(T.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=xf(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 E(T.DUPLICATE_INDEX_SETTING,`'${e}' can only appear once`,t))),t.forEach(t=>{Sf(t.value)||n.push(new E(T.INVALID_INDEX_SETTING_VALUE,`'${e}' must be a string`,t))});break;case`unique`:case`pk`:t.length>1&&t.forEach(t=>n.push(new E(T.DUPLICATE_INDEX_SETTING,`'${e}' can only appear once`,t))),t.forEach(t=>{t.value!==void 0&&n.push(new E(T.INVALID_INDEX_SETTING_VALUE,`'${e}' must not have a value`,t))});break;case`type`:t.length>1&&t.forEach(e=>n.push(new E(T.DUPLICATE_INDEX_SETTING,`'type' can only appear once`,e))),t.forEach(e=>{D(e.value)||n.push(new E(T.INVALID_INDEX_SETTING_VALUE,`'type' must be "btree" or "hash"`,e))});break;default:t.forEach(t=>n.push(new E(T.UNKNOWN_INDEX_SETTING,`Unknown index setting '${e}'`,t)))}return n}validateSubElements(e){return e.flatMap(e=>e.type?this.compiler.validateNode(e).getErrors():[])}},T_={validateNode(t,i){return k(i,r.Indexes)?n.create(void 0,new w_(t,i).validate()):n.create(e)},nodeFullname(t,i){return k(i,r.Indexes)?i.name?new n(void 0,[new E(T.UNEXPECTED_NAME,`An Indexes shouldn't have a name`,i.name)]):new n(void 0):A(i,r.Indexes)?new n(void 0):n.create(e)},nodeAlias(t,i){return k(i,r.Indexes)?i.alias?new n(void 0,[new E(T.UNEXPECTED_ALIAS,`An Indexes shouldn't have an alias`,i.alias)]):new n(void 0):A(i,r.Indexes)?new n(void 0):n.create(e)},nodeSettings(t,a){if(k(a,r.Indexes))return a.attributeList?new n({},[new E(T.UNEXPECTED_SETTINGS,`An Indexes shouldn't have a setting list`,a.attributeList)]):new n({});if(A(a,r.Indexes)){let e=[a.callee,...a.args],t;if(g(e)instanceof U&&(t=g(e)),!t)return new n({});let r=xf(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 E(T.DUPLICATE_INDEX_SETTING,`'${e}' can only appear once`,t))),t.forEach(t=>{Sf(t.value)||o.push(new E(T.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 E(T.DUPLICATE_INDEX_SETTING,`'${e}' can only appear once`,t))),t.forEach(t=>{t.value!==void 0&&o.push(new E(T.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 E(T.DUPLICATE_INDEX_SETTING,`'type' can only appear once`,e))),t.forEach(e=>{D(e.value)||o.push(new E(T.INVALID_INDEX_SETTING_VALUE,`'type' must be "btree" or "hash"`,e))}),c[e]=t;break;default:t.forEach(t=>o.push(new E(T.UNKNOWN_INDEX_SETTING,`Unknown index setting '${e}'`,t)))}return new n(c,o)}return n.create(e)}},E_=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 L)&&!(e instanceof R&&e.isKind(r.Table,r.TableGroup,r.TablePartial,r.Project))?[new E(T.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 E(T.UNEXPECTED_ALIAS,`A Note shouldn't have an alias`,e)]:[]}isStickyNote(){return this.declarationNode.parent instanceof L}validateSettingList(e){if(!e)return[];if(!this.isStickyNote())return[new E(T.UNEXPECTED_SETTINGS,`A Note shouldn't have a setting list`,e)];let t=xf(e),n=t.getErrors();return Sa(t.getValue(),(e,t)=>{switch(t){case i.Color:{let t=t_[i.Color];e.length>1&&n.push(...e.map(e=>new E(T.DUPLICATE_NOTE_SETTING,`'color' can only appear once`,e))),e.forEach(e=>{t.isValidBuiltinFieldValue(e.value)||n.push(new E(T.INVALID_NOTE_SETTING_VALUE,t.message,e.value||e.name))});break}default:n.push(...cg(t,e,{duplicate:T.DUPLICATE_NOTE_SETTING,invalidValue:T.INVALID_NOTE_SETTING_VALUE}))}}),n}validateBody(e){if(!e)return[];if(e instanceof V)return this.validateFields([e]);let[t,n]=_(e.body,e=>e instanceof V);return[...this.validateFields(t),...this.validateSubElements(n)]}validateFields(e){let t=[];return e.length===0?[new E(T.EMPTY_NOTE,`A Note must have a content`,this.declarationNode)]:(e.length>1&&e.slice(1).forEach(e=>t.push(new E(T.NOTE_CONTENT_REDEFINED,`A Note can only contain one string`,e))),Sf(e[0].callee)||t.push(new E(T.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 E(T.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():[])}},D_={validateNode(t,i){return k(i,r.Note)?n.create(void 0,new E_(t,i).validate()):n.create(e)},nodeFullname(t,i){if(!k(i,r.Note))return n.create(e);if(!(i.parent instanceof L))return i.name?new n(void 0,[new E(T.UNEXPECTED_NAME,`A Note shouldn't have a name`,i.name)]):new n(void 0);if(!i.name)return new n(void 0,[new E(T.INVALID_NAME,`Sticky note must have a name`,i)]);if(i.name instanceof nm)return new n(void 0,[new E(T.INVALID_NAME,`Wildcard (*) is not allowed as a Note name`,i.name)]);let a=j(i.name);return a===void 0?new n(void 0,[new E(T.INVALID_NAME,`Invalid name for sticky note `,i)]):new n(a)},nodeAlias(t,i){return k(i,r.Note)?i.alias?new n(void 0,[new E(T.UNEXPECTED_ALIAS,`A Note shouldn't have an alias`,i.alias)]):new n(void 0):n.create(e)},nodeSettings(t,i){return k(i,r.Note)?i.attributeList?new n({},[new E(T.UNEXPECTED_SETTINGS,`A Note shouldn't have a setting list`,i.attributeList)]):new n({}):n.create(e)}},O_={[bp.Table]:gg,[bp.Column]:_g,[bp.TableGroup]:Ng,[bp.Note]:t_},k_=class{constructor(e,t){this.compiler=e,this.declarationNode=t}validate(){return[...this.validateTargetKind(),...this.validateTargetName(this.declarationNode.name),...this.validateBody(this.declarationNode.body)]}validateTargetKind(){return sg(this.declarationNode)?[]:[new E(T.INVALID_METADATA_TARGET_KIND,`A Metadata target kind must be one of: ${Object.values(bp).join(`, `)}`,this.declarationNode.targetKind??this.declarationNode)]}validateTargetName(e){return e?e instanceof nm?[new E(T.INVALID_NAME,`Wildcard (*) is not allowed as a Metadata target's name`,e)]:sf(e)?[]:[new E(T.INVALID_NAME,`A Metadata target's name must be of the form <schema>.<table>, <table>.<column>, <schema>.<table>.<column> or a single identifier`,e)]:[new E(T.NAME_NOT_FOUND,`A Metadata target must have a name`,this.declarationNode)]}validateBody(e){if(!e)return[];if(e instanceof V)return[new E(T.UNEXPECTED_SIMPLE_BODY,`A Metadata's body must be a block`,e)];let[t,n]=_(e.body,e=>e instanceof V);return[...this.validateFields(t),...this.validateSubElements(n)]}validateFields(e){return e.map(e=>new E(T.INVALID_METADATA_FIELD,`A Metadata field must use the 'key: value' syntax`,e))}validateSubElements(e){let t={},n=sg(this.declarationNode),r=e.flatMap(e=>{if(!e.type)return[];if(e.body instanceof H)return[new E(T.UNEXPECTED_COMPLEX_BODY,`A Metadata field can only have an inline value`,e.body)];let r=e.type.value.toLowerCase();t[r]||(t[r]=[]),t[r].push(e);let i=n?O_[n][r]:void 0;return i?i.isValidBuiltinFieldValue(e.body?.callee)?[]:[new E(T.INVALID_METADATA_FIELD,i.message,e)]:bf(e.body?.callee)?[]:[new E(T.INVALID_METADATA_FIELD,`A Metadata field value must be a string or a color literal`,e.body??e)]});return r.push(...Object.values(t).flatMap(e=>e.length<=1?[]:e.map(e=>new E(T.DUPLICATE_METADATA_FIELD,`Duplicate Metadata fields are defined`,e)))),r}},A_={validateNode(t,i){return k(i,r.Metadata)?new n(void 0,new k_(t,i).validate()):new n(e)},nodeFullname(t,i){return k(i,r.Metadata)?new n(void 0):new n(e)},nodeAlias(t,i){return k(i,r.Metadata)?new n(void 0):new n(e)},nodeSettings(t,i){return k(i,r.Metadata)?new n({}):new n(e)}},j_=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)}},M_={validateNode(t,r){return Of(r)?n.create(void 0,new j_(t,r).validate().getErrors()):n.create(e)},nodeFullname(t,r){return Of(r)?new n(void 0):n.create(e)},nodeAlias(t,r){return Of(r)?new n(void 0):n.create(e)},nodeSettings(t,r){return Of(r)?new n({}):n.create(e)}},N_=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 R?[new E(T.INVALID_PROJECT_CONTEXT,`A Project can only appear top-level`,this.declarationNode)]:[]}validateName(e){return e?lf(e)?new n(j(e)):new n(void 0,[new E(T.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 E(T.UNEXPECTED_ALIAS,`A Project shouldn't have an alias`,e)]):new n(void 0)}validateSettingList(e){return e?new n({},[new E(T.UNEXPECTED_SETTINGS,`A Project shouldn't have a setting list`,e)]):new n({})}validateBody(e){if(!e)return[];if(e instanceof V)return[new E(T.UNEXPECTED_SIMPLE_BODY,`A Project's body must be a block`,e)];let[t,n]=_(e.body,e=>e instanceof V);return[...t.map(e=>new E(T.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():[])}},P_={validateNode(t,i){return k(i,r.Project)?n.create(void 0,new N_(t,i).validate()):n.create(e)},nodeFullname(t,i){return k(i,r.Project)?i.name?lf(i.name)?new n(j(i.name)):new n(void 0,[new E(T.INVALID_NAME,`A Project's name is optional or must be an identifier or a quoted identifer`,i.name)]):new n(void 0):A(i,r.Project)?new n(void 0):n.create(e)},nodeAlias(t,i){return k(i,r.Project)&&i.alias?new n(void 0,[new E(T.UNEXPECTED_ALIAS,`A Project shouldn't have an alias`,i.alias)]):A(i,r.Project)?new n(void 0):n.create(e)},nodeSettings(t,i){return k(i,r.Project)?i.attributeList?new n({},[new E(T.UNEXPECTED_SETTINGS,`A Project shouldn't have a setting list`,i.attributeList)]):new n({}):A(i,r.Project)?new n({}):n.create(e)}},F_=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 L||e instanceof R&&e.isKind(r.Table)?[]:[new E(T.INVALID_RECORDS_CONTEXT,`Records can only appear at top-level or inside a Table`,this.declarationNode)]}validateName(e){return e instanceof nm?[new E(T.INVALID_NAME,`Wildcard (*) is not allowed as a Records name`,e)]:this.declarationNode.parent instanceof L?this.validateTopLevelName(e):this.validateInsideTableName(e)}validateTopLevelName(e){if(!(e instanceof W))return[new E(T.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||!sf(e.callee))&&t.push(new E(T.INVALID_RECORDS_NAME,`Records table reference must be a valid table name`,e.callee||e)),(!e.argumentList||!vf(e.argumentList))&&t.push(new E(T.INVALID_RECORDS_NAME,`Records column list must be simple column names`,e.argumentList||e)),t}validateInsideTableName(e){return e&&!vf(e)?[new E(T.INVALID_RECORDS_NAME,`Records inside a Table can only have a column list like (col1, col2, ...)`,e)]:[]}validateAlias(e){return e?[new E(T.UNEXPECTED_ALIAS,`Records cannot have an alias`,e)]:[]}validateSettingList(e){return e?[new E(T.UNEXPECTED_SETTINGS,`Records cannot have a setting list`,e)]:[]}validateBody(e){if(!e)return[];if(e instanceof V)return this.validateDataRow(e);let[t,n]=_(e.body,e=>e instanceof V);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 E(T.INVALID_RECORDS_FIELD,`Invalid record row structure`,e)),t;if(e.callee instanceof $p)for(let n of e.callee.elementList)this.isValidRecordValue(n)||t.push(new E(T.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 E(T.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 am||gf(e)||Sf(e)||e instanceof Zp)return!0;if(D(e)){let t=e.expression.variable.value.toLowerCase();return So.includes(t)}if(O(e)){let t=j(e);return t!==void 0&&t.length>0}return!1}validateSubElements(e){return e.flatMap(e=>e.type?this.compiler.validateNode(e).getErrors():[])}},I_={validateNode(t,i){return k(i,r.Records)?n.create(void 0,new F_(t,i).validate()):n.create(e)},nodeFullname(i,a){if(k(a,r.Records)){if(a.name instanceof nm)return new n(void 0,[new E(T.INVALID_NAME,`Wildcard (*) is not allowed as a Records name`,a.name)]);if(a.parent instanceof L){if(!(a.name instanceof W))return new n(void 0,[new E(T.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||!sf(a.name.callee))&&e.push(new E(T.INVALID_RECORDS_NAME,`Records table reference must be a valid table name`,a.name.callee||a.name)),(!a.name.argumentList||!vf(a.name.argumentList))&&e.push(new E(T.INVALID_RECORDS_NAME,`Records column list must be simple column names`,a.name.argumentList||a.name));let t=j(a.name.callee);return t?.length===1&&t.unshift(y),new n(t,e)}else{let e=a.parent&&i.nodeFullname(a.parent).getFiltered(t);return a.name&&!vf(a.name)?new n(e,[new E(T.INVALID_RECORDS_NAME,`Records inside a Table can only have a column list like (col1, col2, ...)`,a.name)]):new n(e)}}return A(a,r.Records)?new n(void 0):n.create(e)},nodeAlias(t,i){return k(i,r.Records)?i.alias?new n(void 0,[new E(T.UNEXPECTED_ALIAS,`Records cannot have an alias`,i.alias)]):new n(void 0):A(i,r.Records)?new n(void 0):n.create(e)},nodeSettings(t,i){return k(i,r.Records)?i.attributeList?new n({},[new E(T.UNEXPECTED_SETTINGS,`Records cannot have a setting list`,i.attributeList)]):new n({}):A(i,r.Records)?new n({}):n.create(e)}},L_=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 L?[]:[new E(T.INVALID_REF_CONTEXT,`A Ref must appear top-level`,this.declarationNode)]}validateName(e){return e?e instanceof nm?[new E(T.INVALID_NAME,`Wildcard (*) is not allowed as a Ref name`,e)]:lf(e)?[]:[new E(T.INVALID_NAME,`A Ref's name is optional or must be an identifier or a quoted identifer`,e)]:[]}validateAlias(e){return e?[new E(T.UNEXPECTED_ALIAS,`A Ref shouldn't have an alias`,e)]:[]}validateSettingList(e){return e?[new E(T.UNEXPECTED_SETTINGS,`A Ref shouldn't have a setting list`,e)]:[]}validateBody(e){if(!e)return[];if(e instanceof V)return this.validateFields([e]);let[t,n]=_(e.body,e=>e instanceof V);return[...this.validateFields(t),...this.validateSubElements(n)]}validateFields(e){if(e.length===0)return[new E(T.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 E(T.REF_REDEFINED,`A Ref can only contain one binary relationship`,e))),e.forEach(e=>{if(e.callee&&!Nf(e.callee)&&t.push(new E(T.INVALID_REF_FIELD,`A Ref field must be a binary relationship`,e.callee)),e.callee&&Nf(e.callee)){let n=Wf(e.callee.leftExpression)??{variables:[],tupleElements:[]},r=n.variables.length+Math.min(n.tupleElements.length,1),i=Wf(e.callee.rightExpression)??{variables:[],tupleElements:[]},a=i.variables.length+Math.min(i.tupleElements.length,1);r<2&&t.push(new E(T.INVALID_REF_FIELD,`Invalid column reference`,e.callee.leftExpression||e.callee)),a<2&&t.push(new E(T.INVALID_REF_FIELD,`Invalid column reference`,e.callee.rightExpression||e.callee))}e.callee&&!Pf(e.callee)&&t.push(new E(T.UNEQUAL_FIELDS_BINARY_REF,`Unequal fields in ref endpoints`,e.callee));let n=[...e.args];if(g(n)instanceof U){let e=this.validateFieldSettings(g(n));t.push(...e),n.pop()}else n[0]instanceof U&&(t.push(...this.validateFieldSettings(n[0])),n.shift());n.length>0&&t.push(...n.map(e=>new E(T.INVALID_REF_FIELD,`A Ref field should only have a single binary relationship`,e)))}),t}validateFieldSettings(e){return z_(e).getErrors()}validateSubElements(e){return e.flatMap(e=>e.type?this.compiler.validateNode(e).getErrors():[])}};function R_(e){if(!(D(e)&&e.expression.variable.kind!==v.QUOTED_STRING)&&!(e instanceof Jp))return!1;let t;if(t=e instanceof Jp?zf(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 z_(e){let t=xf(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 E(T.DUPLICATE_REF_SETTING,`'${e}' can only appear once`,t))),t.forEach(t=>{R_(t.value)||r.push(new E(T.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 E(T.DUPLICATE_REF_SETTING,`'color' can only appear once`,e))),t.forEach(e=>{pf(e.value)||r.push(new E(T.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 E(T.DUPLICATE_REF_SETTING,`'inactive' can only appear once`,e))),t.forEach(e=>{e.value&&r.push(new E(T.INVALID_REF_SETTING_VALUE,`'inactive' cannot have a value`,e))}),o[e]=t;break;default:t.forEach(t=>r.push(new E(T.UNKNOWN_REF_SETTING,`Unknown ref setting '${e}'`,t)))}return new n(o,r)}var B_={validateNode(t,i){return k(i,r.Ref)?n.create(void 0,new L_(t,i).validate()):n.create(e)},nodeFullname(t,i){return k(i,r.Ref)?i.name?lf(i.name)?new n(j(i.name)):new n(void 0,[new E(T.INVALID_NAME,`A Ref's name is optional or must be an identifier or a quoted identifer`,i.name)]):new n(void 0):A(i,r.Ref)?new n(void 0):n.create(e)},nodeAlias(t,i){return k(i,r.Ref)?i.alias?new n(void 0,[new E(T.UNEXPECTED_ALIAS,`A Ref shouldn't have an alias`,i.alias)]):new n(void 0):A(i,r.Ref)?new n(void 0):n.create(e)},nodeSettings(t,i){if(k(i,r.Ref))return i.attributeList?new n({},[new E(T.UNEXPECTED_SETTINGS,`A Ref shouldn't have a setting list`,i.attributeList)]):new n({});if(A(i,r.Ref)){let e=[...i.args],t;return g(e)instanceof U?t=g(e):e[0]instanceof U&&(t=e[0]),t?z_(t):new n({})}return n.create(e)}},V_=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 R?[new E(T.INVALID_TABLE_CONTEXT,`Table must appear top-level`,this.declarationNode)]:[]}validateName(e){return e?e instanceof om?[new E(T.INVALID_NAME,`Invalid array as Table name, maybe you forget to add a space between the name and the setting list?`,e)]:e instanceof nm?[new E(T.INVALID_NAME,`Wildcard (*) is not allowed as a Table name`,e)]:sf(e)?[]:[new E(T.INVALID_NAME,`A Table name must be of the form <table> or <schema>.<table>`,e)]:[new E(T.NAME_NOT_FOUND,`A Table must have a name`,this.declarationNode)]}validateAlias(e){return e?cf(e)?[]:[new E(T.INVALID_ALIAS,`Table aliases can only contain alphanumeric and underscore unless surrounded by double quotes`,e)]:[]}validateSettingList(e){return H_(e).getErrors()}validateBody(e){if(!e)return[];if(e instanceof V)return[new E(T.UNEXPECTED_SIMPLE_BODY,`A Table's body must be a block`,e)];let[t,n]=_(e.body,e=>e instanceof V);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 E(T.INVALID_COLUMN,`A column must have a type`,e.callee)),D(e.callee)||t.push(new E(T.INVALID_COLUMN_NAME,`A column name must be an identifier or a quoted identifier`,e.callee)),e.args[0]&&!yf(e.args[0])&&t.push(new E(T.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?(df(e.callee)||t.push(new E(T.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 E(T.INVALID_TABLE_PARTIAL_INJECTION,`A partial injection does not have any trailing attributes`,e))),t):[]};return e.flatMap(e=>e.callee instanceof B&&e.callee.op?.value===`~`?n(e):t(e))}validateFieldSetting(e){return U_(e).getErrors()}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 E(T.NOTE_REDEFINED,`Duplicate notes are defined`,e))),t}};function H_(e){let t=xf(e),r=t.getErrors(),a=t.getValue();return Sa(a,(e,t)=>{switch(t){case i.HeaderColor:e.length>1&&r.push(...e.map(e=>new E(T.DUPLICATE_TABLE_SETTING,`'headercolor' can only appear once`,e))),e.forEach(e=>{let t=gg[i.HeaderColor];t.isValidBuiltinFieldValue(e.value)||r.push(new E(T.INVALID_TABLE_SETTING_VALUE,t.message,e.value||e.name))});break;case i.Note:e.length>1&&r.push(...e.map(e=>new E(T.DUPLICATE_TABLE_SETTING,`'note' can only appear once`,e))),e.forEach(e=>{let t=gg[i.Note];t.isValidBuiltinFieldValue(e.value)||r.push(new E(T.INVALID_TABLE_SETTING_VALUE,t.message,e.value||e.name))});break;default:r.push(...cg(t,e,{duplicate:T.DUPLICATE_TABLE_SETTING,invalidValue:T.INVALID_TABLE_SETTING_VALUE}))}}),new n(a,r)}function U_(e){if(!e.slice(0,-1).every(wf)||!e.slice(-1).every(e=>wf(e)||e instanceof U))return new n({},e.map(e=>new E(T.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;g(e)instanceof U&&(t=e.pop());let r=xf(t),a=r.getErrors(),o=r.getValue();e.forEach(e=>{let t=(N(e)??``).toLowerCase();if(t!==i.PK&&t!==i.Unique){a.push(new E(T.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 E(T.DUPLICATE_COLUMN_SETTING,`Either one of 'primary key' and 'pk' can appear`,e))),Sa(o,(e,t)=>{switch(t){case i.Note:e.length>1&&a.push(...e.map(e=>new E(T.DUPLICATE_COLUMN_SETTING,`note can only appear once`,e))),e.forEach(e=>{let t=_g[i.Note];t.isValidBuiltinFieldValue(e.value)||a.push(new E(T.INVALID_COLUMN_SETTING_VALUE,t.message,e.value||e.name))});break;case i.Ref:e.forEach(e=>{_f(e.value)||a.push(new E(T.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 E(T.DUPLICATE_COLUMN_SETTING,`primary key can only appear once`,e))),e.forEach(e=>{e.value!==void 0&&a.push(new E(T.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 E(T.DUPLICATE_COLUMN_SETTING,`'pk' can only appear once`,e))),e.forEach(e=>{e instanceof z&&e.value!==void 0&&a.push(new E(T.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 E(T.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 E(T.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 E(T.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 E(T.DUPLICATE_COLUMN_SETTING,`'null' can only appear once`,e))),e.forEach(e=>{e.value!==void 0&&a.push(new E(T.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 E(T.DUPLICATE_COLUMN_SETTING,`'unique' can only appear once`,e))),e.forEach(e=>{e instanceof z&&e.value!==void 0&&a.push(new E(T.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 E(T.DUPLICATE_COLUMN_SETTING,`'increment' can only appear once`,e))),e.forEach(e=>{e instanceof z&&e.value!==void 0&&a.push(new E(T.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 E(T.DUPLICATE_COLUMN_SETTING,`'default' can only appear once`,e))),e.forEach(e=>{hf(e.value)||a.push(new E(T.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 Zp||a.push(new E(T.INVALID_COLUMN_SETTING_VALUE,`'check' must be a function expression`,e.value||e.name))});break;default:a.push(...cg(t,e,{duplicate:T.DUPLICATE_COLUMN_SETTING,invalidValue:T.INVALID_COLUMN_SETTING_VALUE}))}}),new n(o,a)}var W_={validateNode(t,i){return k(i,r.Table)?n.create(void 0,new V_(t,i).validate()):n.create(e)},nodeFullname(t,i){if(k(i,r.Table)){if(!i.name)return new n(void 0,[new E(T.NAME_NOT_FOUND,`A Table must have a name`,i)]);if(i.name instanceof om)return new n(void 0,[new E(T.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=j(i.name);return e?.length===1&&e.unshift(y),new n(e)}if(A(i,r.Table)){if(df(i.callee)){let e=N(i.callee.expression);return new n(e?[e]:void 0)}let e=N(i.callee);return new n(e?[e]:void 0)}return n.create(e)},nodeAlias(t,i){return k(i,r.Table)?i.alias?cf(i.alias)?new n(N(i.alias)):new n(void 0,[new E(T.INVALID_ALIAS,`Table aliases can only contain alphanumeric and underscore unless surrounded by double quotes`,i.alias)]):new n(void 0):A(i,r.Table)?new n(void 0):n.create(e)},nodeSettings(t,i){return k(i,r.Table)?i.attributeList?H_(i.attributeList):new n({}):A(i,r.Table)?U_(i.args.slice(1)):n.create(e)}},G_=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 R?[new E(T.INVALID_TABLEGROUP_CONTEXT,`TableGroup must appear top-level`,this.declarationNode)]:[]}validateName(e){return e?e instanceof nm?[new E(T.INVALID_NAME,`Wildcard (*) is not allowed as a TableGroup name`,e)]:lf(e)?[]:[new E(T.INVALID_NAME,`A TableGroup name must be a single identifier`,e)]:[new E(T.NAME_NOT_FOUND,`A TableGroup must have a name`,this.declarationNode)]}validateAlias(e){return e?[new E(T.UNEXPECTED_ALIAS,`A TableGroup shouldn't have an alias`,e)]:[]}validateSettingList(e){return K_(e).getErrors()}validateBody(e){if(!e)return[];if(e instanceof V)return[new E(T.UNEXPECTED_SIMPLE_BODY,`A TableGroup's body must be a block`,e)];let[t,n]=_(e.body,e=>e instanceof V);return[...this.validateFields(t),...this.validateSubElements(n)]}validateFields(e){return e.flatMap(e=>{let t=[];return e.callee&&j(e.callee)===void 0&&t.push(new E(T.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 E(T.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 E(T.NOTE_REDEFINED,`Duplicate notes are defined`,e))),t}};function K_(e){let t=xf(e),r=t.getErrors(),a=t.getValue(),o={};for(let[e,t]of Object.entries(a))switch(e){case i.Color:case i.Note:{let n=Ng[e];t.length>1&&r.push(...t.map(t=>new E(T.DUPLICATE_TABLE_SETTING,`'${e}' can only appear once`,t))),t.forEach(e=>{n.isValidBuiltinFieldValue(e.value)||r.push(new E(T.INVALID_TABLE_SETTING_VALUE,n.message,e.value||e.name))}),o[e]=t;break}default:r.push(...cg(e,t,{duplicate:T.DUPLICATE_TABLE_SETTING,invalidValue:T.INVALID_TABLE_SETTING_VALUE})),o[e]=t;break}return new n(o,r)}var q_={validateNode(t,i){return k(i,r.TableGroup)?n.create(void 0,new G_(t,i).validate()):n.create(e)},nodeFullname(t,i){if(k(i,r.TableGroup))return i.name?lf(i.name)?new n(j(i.name)):new n(void 0,[new E(T.INVALID_NAME,`A TableGroup name must be a single identifier`,i.name)]):new n(void 0,[new E(T.NAME_NOT_FOUND,`A TableGroup must have a name`,i)]);if(A(i,r.TableGroup)){let e=j(i.callee);return e?.length===1&&e.unshift(y),new n(e)}return n.create(e)},nodeAlias(t,i){return k(i,r.TableGroup)?i.alias?new n(void 0,[new E(T.UNEXPECTED_ALIAS,`A TableGroup shouldn't have an alias`,i.alias)]):new n(void 0):A(i,r.TableGroup)?new n(void 0):n.create(e)},nodeSettings(t,i){return k(i,r.TableGroup)?K_(i.attributeList):A(i,r.TableGroup)?new n({}):n.create(e)}},J_=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 R?[new E(T.INVALID_TABLE_PARTIAL_CONTEXT,`TablePartial must appear top-level`,this.declarationNode)]:[]}validateName(e){return e?e instanceof nm?[new E(T.INVALID_NAME,`Wildcard (*) is not allowed as a TablePartial name`,e)]:lf(e)?[]:[new E(T.INVALID_NAME,`A TablePartial name must be an identifier or a quoted identifer`,e)]:[new E(T.NAME_NOT_FOUND,`A TablePartial must have a name`,this.declarationNode)]}validateAlias(e){return e?[new E(T.UNEXPECTED_ALIAS,`A TablePartial shouldn't have an alias`,e)]:[]}validateSettingList(e){let t=xf(e),n=t.getErrors();return Sa(t.getValue(),(e,t)=>{switch(t){case i.HeaderColor:e.length>1&&n.push(...e.map(e=>new E(T.DUPLICATE_TABLE_PARTIAL_SETTING,`'${t}' can only appear once`,e))),e.forEach(e=>{pf(e.value)||n.push(new E(T.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 E(T.DUPLICATE_TABLE_PARTIAL_SETTING,`'${t}' can only appear once`,e))),e.forEach(e=>{Sf(e.value)||n.push(new E(T.INVALID_TABLE_PARTIAL_SETTING_VALUE,`'${t}' must be a string literal`,e.value||e.name))});break;default:n.push(...e.map(e=>new E(T.UNKNOWN_TABLE_PARTIAL_SETTING,`Unknown '${t}' setting`,e)))}}),n}validateBody(e){if(!e)return[];if(e instanceof V)return[new E(T.UNEXPECTED_SIMPLE_BODY,`A TablePartial's body must be a block`,e)];let[t,n]=_(e.body,e=>e instanceof V);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 E(T.INVALID_COLUMN,`A column must have a type`,e.callee)),D(e.callee)||t.push(new E(T.INVALID_COLUMN_NAME,`A column name must be an identifier or a quoted identifier`,e.callee)),e.args[0]&&!yf(e.args[0])&&t.push(new E(T.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=g(e);if(!e.slice(0,-1).every(wf)||!(wf(t)||t instanceof U))return e.map(e=>new E(T.INVALID_COLUMN,`These fields must be some inline settings optionally ended with a setting list`,e));if(e.length===0)return[];let n;g(e)instanceof U&&(n=e.pop());let r=xf(n),a=r.getErrors(),o=r.getValue();e.forEach(e=>{let t=(N(e)??``).toLowerCase();if(t!==i.PK&&t!==i.Unique){a.push(new E(T.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 E(T.DUPLICATE_COLUMN_SETTING,`Either one of 'primary key' and 'pk' can appear`,e))),Sa(o,(e,t)=>{switch(t){case i.Note:e.length>1&&a.push(...e.map(e=>new E(T.DUPLICATE_COLUMN_SETTING,`'${t}' can only appear once`,e))),e.forEach(e=>{Sf(e.value)||a.push(new E(T.INVALID_COLUMN_SETTING_VALUE,`'${t}' must be a quoted string`,e.value||e.name))});break;case i.Ref:e.forEach(e=>{_f(e.value)||a.push(new E(T.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 E(T.DUPLICATE_COLUMN_SETTING,`'${t}' can only appear once`,e))),e.forEach(e=>{e.value!==void 0&&a.push(new E(T.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 E(T.DUPLICATE_COLUMN_SETTING,`'${t}' can only appear once`,e))),e.forEach(e=>{e instanceof z&&e.value!==void 0&&a.push(new E(T.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 E(T.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 E(T.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 E(T.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 E(T.DUPLICATE_COLUMN_SETTING,`'${t}' can only appear once`,e))),e.forEach(e=>{e.value!==void 0&&a.push(new E(T.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 E(T.DUPLICATE_COLUMN_SETTING,`'${t}' can only appear once`,e))),e.forEach(e=>{e instanceof z&&e.value!==void 0&&a.push(new E(T.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 E(T.DUPLICATE_COLUMN_SETTING,`'${t}' can only appear once`,e))),e.forEach(e=>{e instanceof z&&e.value!==void 0&&a.push(new E(T.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 E(T.DUPLICATE_COLUMN_SETTING,`'${t}' can only appear once`,e))),e.forEach(e=>{hf(e.value)||a.push(new E(T.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 Zp||a.push(new E(T.INVALID_COLUMN_SETTING_VALUE,`'check' must be a function expression`,e.value||e.name))});break;default:a.push(...cg(t,e,{duplicate:T.DUPLICATE_COLUMN_SETTING,invalidValue:T.INVALID_COLUMN_SETTING_VALUE}))}}),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 E(T.NOTE_REDEFINED,`Duplicate notes are defined`,e))),t}};function Y_(e){let t=xf(e),r=t.getErrors(),a=t.getValue();return Sa(a,(e,t)=>{switch(t){case i.HeaderColor:e.length>1&&r.push(...e.map(e=>new E(T.DUPLICATE_TABLE_PARTIAL_SETTING,`'${t}' can only appear once`,e))),e.forEach(e=>{pf(e.value)||r.push(new E(T.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 E(T.DUPLICATE_TABLE_PARTIAL_SETTING,`'${t}' can only appear once`,e))),e.forEach(e=>{Sf(e.value)||r.push(new E(T.INVALID_TABLE_PARTIAL_SETTING_VALUE,`'${t}' must be a string literal`,e.value||e.name))});break;default:r.push(...e.map(e=>new E(T.UNKNOWN_TABLE_PARTIAL_SETTING,`Unknown '${t}' setting`,e)))}}),new n(a,r)}function X_(e){let t=g(e);if(e.length>0&&(!e.slice(0,-1).every(wf)||!(wf(t)||t instanceof U)))return new n({},e.map(e=>new E(T.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;g(e)instanceof U&&(r=e.pop());let a=xf(r),o=a.getErrors(),s=a.getValue();e.forEach(e=>{let t=(N(e)??``).toLowerCase();if(t!==i.PK&&t!==i.Unique){o.push(new E(T.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 E(T.DUPLICATE_COLUMN_SETTING,`Either one of 'primary key' and 'pk' can appear`,e))),Sa(s,(e,t)=>{switch(t){case i.Note:e.length>1&&o.push(...e.map(e=>new E(T.DUPLICATE_COLUMN_SETTING,`'${t}' can only appear once`,e))),e.forEach(e=>{Sf(e.value)||o.push(new E(T.INVALID_COLUMN_SETTING_VALUE,`'${t}' must be a quoted string`,e.value||e.name))});break;case i.Ref:e.forEach(e=>{_f(e.value)||o.push(new E(T.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 E(T.DUPLICATE_COLUMN_SETTING,`'${t}' can only appear once`,e))),e.forEach(e=>{e.value!==void 0&&o.push(new E(T.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 E(T.DUPLICATE_COLUMN_SETTING,`'${t}' can only appear once`,e))),e.forEach(e=>{e instanceof z&&e.value!==void 0&&o.push(new E(T.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 E(T.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 E(T.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 E(T.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 E(T.DUPLICATE_COLUMN_SETTING,`'${t}' can only appear once`,e))),e.forEach(e=>{e.value!==void 0&&o.push(new E(T.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 E(T.DUPLICATE_COLUMN_SETTING,`'${t}' can only appear once`,e))),e.forEach(e=>{e instanceof z&&e.value!==void 0&&o.push(new E(T.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 E(T.DUPLICATE_COLUMN_SETTING,`'${t}' can only appear once`,e))),e.forEach(e=>{e instanceof z&&e.value!==void 0&&o.push(new E(T.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 E(T.DUPLICATE_COLUMN_SETTING,`'${t}' can only appear once`,e))),e.forEach(e=>{hf(e.value)||o.push(new E(T.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 Zp||o.push(new E(T.INVALID_COLUMN_SETTING_VALUE,`'check' must be a function expression`,e.value||e.name))});break;default:o.push(...cg(t,e,{duplicate:T.DUPLICATE_COLUMN_SETTING,invalidValue:T.INVALID_COLUMN_SETTING_VALUE}))}}),new n(s,o)}var Z_={validateNode(t,i){return k(i,r.TablePartial)?n.create(void 0,new J_(t,i).validate()):n.create(e)},nodeFullname(t,i){if(k(i,r.TablePartial))return i.name?lf(i.name)?new n(j(i.name)):new n(void 0,[new E(T.INVALID_NAME,`A TablePartial name must be an identifier or a quoted identifer`,i.name)]):new n(void 0,[new E(T.NAME_NOT_FOUND,`A TablePartial must have a name`,i)]);if(A(i,r.TablePartial)){let e=N(i.callee);return new n(e?[e]:void 0)}return n.create(e)},nodeAlias(t,i){return k(i,r.TablePartial)?i.alias?new n(void 0,[new E(T.UNEXPECTED_ALIAS,`A TablePartial shouldn't have an alias`,i.alias)]):new n(N(i.alias)):A(i,r.TablePartial)?new n(void 0):n.create(e)},nodeSettings(t,i){return k(i,r.TablePartial)?Y_(i.attributeList):A(i,r.TablePartial)?X_(i.args.slice(1)):n.create(e)}},Q_=class{constructor(e,t){this.compiler=e,this.declarationNode=t}validate(){return[...this.validateContext(),...this.validateBody()]}validateContext(){return this.declarationNode.parent instanceof L?[]:[new E(T.INVALID_USE_CONTEXT,`'use' must appear at the top level`,this.declarationNode)]}validateBody(){let e=[];if(this.declarationNode.importPath&&!bo.isRelative(this.declarationNode.importPath.value)&&e.push(new E(T.INVALID_USE_SPECIFIER_NAME,`Import path must be a relative path (starting with './' or '../')`,this.declarationNode.importPath)),this.declarationNode.specifiers instanceof nm)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 E(T.INVALID_USE_SPECIFIER_KIND,`A use specifier must have a type (e.g. table, enum)`,e)):e.isKind(...Object.values(yp))||t.push(new E(T.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()]}},$_=[W_,C_,I_,T_,g_,B_,P_,q_,Z_,D_,A_,x_,M_,{validateNode(t,r){return r instanceof Gp?n.create(void 0,new Q_(t,r).validate()):n.create(e)},nodeFullname(t,r){if(!Df(r))return n.create(e);let i=j(r.name);return!i||i.length===0?n.create(void 0,[new E(T.INVALID_NAME,`Use specifiers must have a valid name (simple name or schema-qualified name)`,r)]):r.isKind(yp.TableGroup)&&i.length>1?n.create(i,[new E(T.INVALID_USE_SPECIFIER_NAME,`A TableGroup name must be a simple name`,r)]):r.isKind(yp.TablePartial)&&i.length>1?n.create(i,[new E(T.INVALID_USE_SPECIFIER_NAME,`A TablePartial name must be a simple name`,r)]):r.isKind(yp.Note)&&i.length>1?n.create(i,[new E(T.INVALID_USE_SPECIFIER_NAME,`A Sticky note name must be a simple name`,r)]):(i.length===1&&!r.isKind(yp.Schema)&&i.unshift(y),new n(i))},nodeAlias(t,r){return Df(r)?r.alias?cf(r.alias)?new n(N(r.alias)):new n(void 0,[new E(T.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 Gp?n.create({}):n.create(e)}},y_];function ev(t,...r){for(let n of $_){let i=n[t];if(i){let t=i(...r);if(!t.hasValue(e))return t}}return n.create(e)}function tv(r){let i=ev(`validateNode`,this,r);return i.hasValue(e)?n.create(t):i}function nv(r){let i=ev(`nodeSettings`,this,r);return i.hasValue(e)?n.create(t):i}function rv(r){let i=ev(`nodeFullname`,this,r);return i.hasValue(e)?n.create(t):i}function iv(r){let i=ev(`nodeAlias`,this,r);return i.hasValue(e)?n.create(t):i}var av=typeof document<`u`&&document.location&&document.location.hash.indexOf(`pseudo=true`)>=0;function ov(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}),av&&(n=`[`+n.replace(/[aouei]/g,`$&$&`)+`]`),n}function sv(e,t,...n){return ov(t,n)}var cv=!1,lv=!1,uv=!1,dv=!1,fv=void 0,pv=typeof self==`object`?self:typeof global==`object`?global:{},mv=void 0;pv.vscode!==void 0&&pv.vscode.process!==void 0?mv=pv.vscode.process:typeof process<`u`&&(mv=process);var hv=typeof mv?.versions?.electron==`string`&&mv?.type===`renderer`;if(typeof navigator==`object`&&!hv)fv=navigator.userAgent,cv=fv.indexOf(`Windows`)>=0,lv=fv.indexOf(`Macintosh`)>=0,(fv.indexOf(`Macintosh`)>=0||fv.indexOf(`iPad`)>=0||fv.indexOf(`iPhone`)>=0)&&navigator.maxTouchPoints&&navigator.maxTouchPoints,uv=fv.indexOf(`Linux`)>=0,fv?.indexOf(`Mobi`),dv=!0,sv({key:`ensureLoaderPluginIsLoaded`,comment:[`{Locked}`]},`_`),navigator.language;else if(typeof mv==`object`){cv=mv.platform===`win32`,lv=mv.platform===`darwin`,uv=mv.platform===`linux`,uv&&mv.env.SNAP&&mv.env.SNAP_REVISION,mv.env.CI||mv.env.BUILD_ARTIFACTSTAGINGDIRECTORY;let e=mv.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.`);var gv=cv,_v=lv;dv&&pv.importScripts;var vv=fv,yv=typeof pv.postMessage==`function`&&!pv.importScripts;(()=>{if(yv){let e=[];pv.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}),pv.postMessage({vscodeScheduleAsyncWork:r},`*`)}}return e=>setTimeout(e)})();var bv=!!(vv&&vv.indexOf(`Chrome`)>=0);vv&&vv.indexOf(`Firefox`),!bv&&vv&&vv.indexOf(`Safari`),vv&&vv.indexOf(`Edg/`),vv&&vv.indexOf(`Android`);var xv;if(pv.vscode!==void 0&&pv.vscode.process!==void 0){let e=pv.vscode.process;xv={get platform(){return e.platform},get arch(){return e.arch},get env(){return e.env},cwd(){return e.cwd()}}}else xv=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 gv?`win32`:_v?`darwin`:`linux`},get arch(){},get env(){return{}},cwd(){return`/`}};var Sv=xv.cwd,Cv=xv.env,wv=xv.platform,Tv=65,Ev=97,Dv=90,Ov=122,kv=46,Av=47,jv=92,Mv=58,Nv=63,Pv=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 Fv(e,t){if(typeof e!=`object`||!e)throw new Pv(t,`Object`,e)}function Iv(e,t){if(typeof e!=`string`)throw new Pv(t,`string`,e)}var Lv=wv===`win32`;function K(e){return e===Av||e===jv}function Rv(e){return e===Av}function zv(e){return e>=Tv&&e<=Dv||e>=Ev&&e<=Ov}function Bv(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=Av;if(r(c)){if(!(o===l-1||s===1))if(s===2){if(i.length<2||a!==2||i.charCodeAt(i.length-1)!==kv||i.charCodeAt(i.length-2)!==kv){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===kv&&s!==-1?++s:s=-1}return i}function Vv(e,t){Fv(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}var Hv={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],Iv(a,`path`),a.length===0)continue}else t.length===0?a=Sv():(a=Cv[`=${t}`]||Sv(),(a===void 0||a.slice(0,2).toLowerCase()!==t.toLowerCase()&&a.charCodeAt(2)===jv)&&(a=`${t}\\`));let o=a.length,s=0,c=``,l=!1,u=a.charCodeAt(0);if(o===1)K(u)&&(s=1,l=!0);else if(K(u))if(l=!0,K(a.charCodeAt(1))){let e=2,t=e;for(;e<o&&!K(a.charCodeAt(e));)e++;if(e<o&&e!==t){let n=a.slice(t,e);for(t=e;e<o&&K(a.charCodeAt(e));)e++;if(e<o&&e!==t){for(t=e;e<o&&!K(a.charCodeAt(e));)e++;(e===o||e!==t)&&(c=`\\\\${n}\\${a.slice(t,e)}`,s=e)}}}else s=1;else zv(u)&&a.charCodeAt(1)===Mv&&(c=a.slice(0,2),s=2,o>2&&K(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=Bv(n,!r,`\\`,K),r?`${t}\\${n}`:`${t}${n}`||`.`},normalize(e){Iv(e,`path`);let t=e.length;if(t===0)return`.`;let n=0,r,i=!1,a=e.charCodeAt(0);if(t===1)return Rv(a)?`\\`:e;if(K(a))if(i=!0,K(e.charCodeAt(1))){let i=2,a=i;for(;i<t&&!K(e.charCodeAt(i));)i++;if(i<t&&i!==a){let o=e.slice(a,i);for(a=i;i<t&&K(e.charCodeAt(i));)i++;if(i<t&&i!==a){for(a=i;i<t&&!K(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 zv(a)&&e.charCodeAt(1)===Mv&&(r=e.slice(0,2),n=2,t>2&&K(e.charCodeAt(2))&&(i=!0,n=3));let o=n<t?Bv(e.slice(n),!i,`\\`,K):``;return o.length===0&&!i&&(o=`.`),o.length>0&&K(e.charCodeAt(t-1))&&(o+=`\\`),r===void 0?i?`\\${o}`:o:i?`${r}\\${o}`:`${r}${o}`},isAbsolute(e){Iv(e,`path`);let t=e.length;if(t===0)return!1;let n=e.charCodeAt(0);return K(n)||t>2&&zv(n)&&e.charCodeAt(1)===Mv&&K(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];Iv(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`&&K(n.charCodeAt(0))){++i;let e=n.length;e>1&&K(n.charCodeAt(1))&&(++i,e>2&&(K(n.charCodeAt(2))?++i:r=!1))}if(r){for(;i<t.length&&K(t.charCodeAt(i));)i++;i>=2&&(t=`\\${t.slice(i)}`)}return Hv.normalize(t)},relative(e,t){if(Iv(e,`from`),Iv(t,`to`),e===t)return``;let n=Hv.resolve(e),r=Hv.resolve(t);if(n===r||(e=n.toLowerCase(),t=r.toLowerCase(),e===t))return``;let i=0;for(;i<e.length&&e.charCodeAt(i)===jv;)i++;let a=e.length;for(;a-1>i&&e.charCodeAt(a-1)===jv;)a--;let o=a-i,s=0;for(;s<t.length&&t.charCodeAt(s)===jv;)s++;let c=t.length;for(;c-1>s&&t.charCodeAt(c-1)===jv;)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===jv&&(d=f)}if(f!==u){if(d===-1)return r}else{if(l>u){if(t.charCodeAt(s+f)===jv)return r.slice(s+f+1);if(f===2)return r.slice(s+f)}o>u&&(e.charCodeAt(i+f)===jv?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)===jv)&&(p+=p.length===0?`..`:`\\..`);return s+=d,p.length>0?`${p}${r.slice(s,c)}`:(r.charCodeAt(s)===jv&&++s,r.slice(s,c))},toNamespacedPath(e){if(typeof e!=`string`||e.length===0)return e;let t=Hv.resolve(e);if(t.length<=2)return e;if(t.charCodeAt(0)===jv){if(t.charCodeAt(1)===jv){let e=t.charCodeAt(2);if(e!==Nv&&e!==kv)return`\\\\?\\UNC\\${t.slice(2)}`}}else if(zv(t.charCodeAt(0))&&t.charCodeAt(1)===Mv&&t.charCodeAt(2)===jv)return`\\\\?\\${t}`;return e},dirname(e){Iv(e,`path`);let t=e.length;if(t===0)return`.`;let n=-1,r=0,i=e.charCodeAt(0);if(t===1)return K(i)?e:`.`;if(K(i)){if(n=r=1,K(e.charCodeAt(1))){let i=2,a=i;for(;i<t&&!K(e.charCodeAt(i));)i++;if(i<t&&i!==a){for(a=i;i<t&&K(e.charCodeAt(i));)i++;if(i<t&&i!==a){for(a=i;i<t&&!K(e.charCodeAt(i));)i++;if(i===t)return e;i!==a&&(n=r=i+1)}}}}else zv(i)&&e.charCodeAt(1)===Mv&&(n=t>2&&K(e.charCodeAt(2))?3:2,r=n);let a=-1,o=!0;for(let n=t-1;n>=r;--n)if(K(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&&Iv(t,`ext`),Iv(e,`path`);let n=0,r=-1,i=!0,a;if(e.length>=2&&zv(e.charCodeAt(0))&&e.charCodeAt(1)===Mv&&(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(K(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(K(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){Iv(e,`path`);let t=0,n=-1,r=0,i=-1,a=!0,o=0;e.length>=2&&e.charCodeAt(1)===Mv&&zv(e.charCodeAt(0))&&(t=r=2);for(let s=e.length-1;s>=t;--s){let t=e.charCodeAt(s);if(K(t)){if(!a){r=s+1;break}continue}i===-1&&(a=!1,i=s+1),t===kv?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:Vv.bind(null,`\\`),parse(e){Iv(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 K(i)?(t.root=t.dir=e,t):(t.base=t.name=e,t);if(K(i)){if(r=1,K(e.charCodeAt(1))){let t=2,i=t;for(;t<n&&!K(e.charCodeAt(t));)t++;if(t<n&&t!==i){for(i=t;t<n&&K(e.charCodeAt(t));)t++;if(t<n&&t!==i){for(i=t;t<n&&!K(e.charCodeAt(t));)t++;t===n?r=t:t!==i&&(r=t+1)}}}}else if(zv(i)&&e.charCodeAt(1)===Mv){if(n<=2)return t.root=t.dir=e,t;if(r=2,K(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),K(i)){if(!c){o=l+1;break}continue}s===-1&&(c=!1,s=l+1),i===kv?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},Uv=(()=>{if(Lv){let e=/\\/g;return()=>{let t=Sv().replace(e,`/`);return t.slice(t.indexOf(`/`))}}return()=>Sv()})(),Wv={resolve(...e){let t=``,n=!1;for(let r=e.length-1;r>=-1&&!n;r--){let i=r>=0?e[r]:Uv();Iv(i,`path`),i.length!==0&&(t=`${i}/${t}`,n=i.charCodeAt(0)===Av)}return t=Bv(t,!n,`/`,Rv),n?`/${t}`:t.length>0?t:`.`},normalize(e){if(Iv(e,`path`),e.length===0)return`.`;let t=e.charCodeAt(0)===Av,n=e.charCodeAt(e.length-1)===Av;return e=Bv(e,!t,`/`,Rv),e.length===0?t?`/`:n?`./`:`.`:(n&&(e+=`/`),t?`/${e}`:e)},isAbsolute(e){return Iv(e,`path`),e.length>0&&e.charCodeAt(0)===Av},join(...e){if(e.length===0)return`.`;let t;for(let n=0;n<e.length;++n){let r=e[n];Iv(r,`path`),r.length>0&&(t===void 0?t=r:t+=`/${r}`)}return t===void 0?`.`:Wv.normalize(t)},relative(e,t){if(Iv(e,`from`),Iv(t,`to`),e===t||(e=Wv.resolve(e),t=Wv.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===Av&&(o=s)}if(s===a)if(i>a){if(t.charCodeAt(1+s)===Av)return t.slice(1+s+1);if(s===0)return t.slice(1+s)}else r>a&&(e.charCodeAt(1+s)===Av?o=s:s===0&&(o=0));let c=``;for(s=1+o+1;s<=n;++s)(s===n||e.charCodeAt(s)===Av)&&(c+=c.length===0?`..`:`/..`);return`${c}${t.slice(1+o)}`},toNamespacedPath(e){return e},dirname(e){if(Iv(e,`path`),e.length===0)return`.`;let t=e.charCodeAt(0)===Av,n=-1,r=!0;for(let t=e.length-1;t>=1;--t)if(e.charCodeAt(t)===Av){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&&Iv(t,`ext`),Iv(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===Av){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)===Av){if(!i){n=a+1;break}}else r===-1&&(i=!1,r=a+1);return r===-1?``:e.slice(n,r)},extname(e){Iv(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===Av){if(!i){n=o+1;break}continue}r===-1&&(i=!1,r=o+1),s===kv?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:Vv.bind(null,`/`),parse(e){Iv(e,`path`);let t={root:``,dir:``,base:``,ext:``,name:``};if(e.length===0)return t;let n=e.charCodeAt(0)===Av,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===Av){if(!s){a=c+1;break}continue}o===-1&&(s=!1,o=c+1),t===kv?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};Wv.win32=Hv.win32=Hv,Wv.posix=Hv.posix=Wv,Lv?Hv.normalize:Wv.normalize,Lv?Hv.resolve:Wv.resolve,Lv?Hv.relative:Wv.relative,Lv?Hv.dirname:Wv.dirname,Lv?Hv.basename:Wv.basename,Lv?Hv.extname:Wv.extname,Lv?Hv.sep:Wv.sep;var Gv=/^\w[\w\d+.-]*$/,Kv=/^\//,qv=/^\/\//;function Jv(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&&!Gv.test(e.scheme))throw Error(`[UriError]: Scheme contains illegal characters.`);if(e.path){if(e.authority){if(!Kv.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(qv.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 Yv(e,t){return!e&&!t?`file`:e}function Xv(e,t){switch(e){case`https`:case`http`:case`file`:t?t[0]!==Zv&&(t=Zv+t):t=Zv;break}return t}var q=``,Zv=`/`,Qv=/^(([^:/?#]+?):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/,$v=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||q,this.authority=e.authority||q,this.path=e.path||q,this.query=e.query||q,this.fragment=e.fragment||q):(this.scheme=Yv(e,a),this.authority=t||q,this.path=Xv(this.scheme,n||q),this.query=r||q,this.fragment=i||q,Jv(this,a))}get fsPath(){return ay(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=q),n===void 0?n=this.authority:n===null&&(n=q),r===void 0?r=this.path:r===null&&(r=q),i===void 0?i=this.query:i===null&&(i=q),a===void 0?a=this.fragment:a===null&&(a=q),t===this.scheme&&n===this.authority&&r===this.path&&i===this.query&&a===this.fragment?this:new ty(t,n,r,i,a)}static parse(e,t=!1){let n=Qv.exec(e);return n?new ty(n[2]||q,ly(n[4]||q),ly(n[5]||q),ly(n[7]||q),ly(n[9]||q),t):new ty(q,q,q,q,q)}static file(e){let t=q;if(gv&&(e=e.replace(/\\/g,Zv)),e[0]===Zv&&e[1]===Zv){let n=e.indexOf(Zv,2);n===-1?(t=e.substring(2),e=Zv):(t=e.substring(2,n),e=e.substring(n)||Zv)}return new ty(`file`,t,e,q,q)}static from(e,t){return new ty(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=gv&&t.scheme===`file`?e.file(Hv.join(ay(t,!0),...n)).path:Wv.join(t.path,...n),t.with({path:r})}toString(e=!1){return oy(this,e)}toJSON(){return this}static revive(t){if(!t||t instanceof e)return t;{let e=new ty(t);return e._formatted=t.external??null,e._fsPath=t._sep===ey?t.fsPath??null:null,e}}},ey=gv?1:void 0,ty=class extends $v{constructor(){super(...arguments),this._formatted=null,this._fsPath=null}get fsPath(){return this._fsPath||=ay(this,!1),this._fsPath}toString(e=!1){return e?oy(this,!0):(this._formatted||=oy(this,!1),this._formatted)}toJSON(){let e={$mid:1};return this._fsPath&&(e.fsPath=this._fsPath,e._sep=ey),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}},ny={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 ry(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=ny[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 iy(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+=ny[r]):t!==void 0&&(t+=e[n])}return t===void 0?e:t}function ay(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,gv&&(n=n.replace(/\//g,`\\`)),n}function oy(e,t){let n=t?iy:ry,r=``,{scheme:i,authority:a,path:o,query:s,fragment:c}=e;if(i&&(r+=i,r+=`:`),(a||i===`file`)&&(r+=Zv,r+=Zv),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:ry(c,!1,!1)),r}function sy(e){try{return decodeURIComponent(e)}catch{return e.length>3?e.substr(0,3)+sy(e.substr(3)):e}}var cy=/(%[0-9A-Za-z][0-9A-Za-z])+/g;function ly(e){return e.match(cy)?e.replace(cy,e=>sy(e)):e}var J=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}({}),Y=function(e){return e[e.None=0]=`None`,e[e.KeepWhitespace=1]=`KeepWhitespace`,e[e.InsertAsSnippet=4]=`InsertAsSnippet`,e}({}),uy=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 dy(e,t){return e.getOffsetAt(t)}function fy(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 py=class{constructor(e){this.compiler=e}provideDefinition(e,n){let{uri:r}=e,i=bo.fromUri(String(e.uri)),a=dy(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&&[Wp.PRIMARY_EXPRESSION,Wp.VARIABLE].includes(e.kind)&&({declaration:i}=n),i){let{startPos:e,endPos:t}=i,n=r;return r&&i.filepath&&(n=$v.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[]}},my=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`?uy.Error:uy.Warning}},hy=class{constructor(e){this.compiler=e}provideReferences(e,n){let{uri:r}=e,i=bo.fromUri(String(r)),a=dy(e,n);this.compiler.bindProject();let o=[...this.compiler.container.stack(i,a)];for(;o.length!==0;){let e=o.pop();if(e&&[Wp.ELEMENT_DECLARATION,Wp.FUNCTION_APPLICATION,Wp.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=$v.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 gy(e,t){return e>=t.start&&e<t.end}function _y(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 vy(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 qp)for(let t of e.specifiers.specifiers){let e,n;if(t.name?(e=t.importKind?.value,n=N(t.name)):t.importKind&&(n=t.importKind.value??void 0),n){let i=t.alias?N(t.alias):void 0;r.push({kind:e,name:n,alias:i})}}else e.specifiers instanceof nm&&r.push({name:`*`});r.length===0&&!(e.specifiers instanceof nm)||n.push({startOffset:e.fullStart,endOffset:e.fullEnd,sourceFile:t,specifiers:r,node:e})}return n}function yy(e,t,n,r,i,a){let o=vy(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:by(Na([...e.specifiers.filter(e=>e.name!==`*`).map(e=>`${e.kind??n} ${e.name}${e.alias?` as ${e.alias}`:``}`),l]),s,`
7
+ `),removeRange:xy(a,e.startOffset,e.endOffset)}}return{topInsert:by([l],s,`
8
+ `)}}function by(e,t,n){return`use {${n}${e.map(e=>` ${e}`).join(n)}${n}} from '${t}'${n}${n}`}function xy(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 by(e){switch(e){case I.Schema:return Y.Module;case I.Table:case I.TablePartial:case I.Metadata:return Y.Class;case I.Column:case I.TableGroupField:return Y.Field;case I.Enum:return Y.Enum;case I.EnumField:return Y.EnumMember;case I.TableGroup:return Y.Struct;default:return Y.Text}}function xy(e,t){if(!e||Wa(e))return!1;for(let n of e.trailingTrivia){if(n.start>t)break;if(n.kind===v.NEWLINE&&n.end<=t)return!1}return!0}function Z(){return{suggestions:[]}}function Sy(e){return{...e,suggestions:e.suggestions.map(e=>({...e,insertText:` ${e.insertText}`}))}}function Cy(e){return{...e,suggestions:e.suggestions.map(e=>({...e,insertText:e.quoted?e.insertText:vg(e.insertText??``),quoted:!0}))}}function wy(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 Ty(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(Ey(e,c,t.kind,s,r,o)))}}return i}function Ey(e,t,n,r,i,a){let o=_y(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=Dy(a,o.removeRange.startOffset),t=Dy(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:by(n),detail:`from ${r.basename}`,sortText:`zzz_${by(n).toString().padStart(2,`0`)}_${t}`,range:void 0,additionalTextEdits:s}}function Dy(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 Oy(e,t,n,i,a){let o=e.container.element(i,a);return!(o instanceof z)||!o.isKind(r.Records)||!(o.body instanceof U)||!o.body||!my(a,o.body)||t.getLineContent(n.lineNumber).trim()!==``?null:o.parent instanceof R?ky(e,o):Ay(e,o)}function ky(e,n){if(!(n.name instanceof G))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 Ep||r instanceof Vp))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 Ay(e,n){let r=n.parent;if(!(r instanceof z))return Z();let i=e.nodeSymbol(r).getFiltered(t);if(!(i instanceof Tp))return Z();let a;if(n.name instanceof Zp){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 Ep||r instanceof Vp))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 jy(e,t,n,r,i){let a=e.parse.ast(t);for(let o of a.body)if(o instanceof Wp&&n>=o.start&&n<=o.fullEnd)return My(e,t,n,o,i,r);return null}function My(e,t,n,r,i,a){if(r.importPath&&my(n,r.importPath))return Ly(e,t,r.importPath,i,r);if(r.importPath&&n>=r.importPath.end)return Z();if(r.fromKeyword&&n>r.fromKeyword.end)return Ly(e,t,void 0,i,r);if(r.specifiers instanceof Kp){if(!r.specifiers.openBrace){let e=Iy();return xy(r.useKeyword,n)?Sy(e):e}return Ny(e,t,n,r.specifiers,r.importPath,a)}if(r.specifiers instanceof tm)return Z();let o=Iy();return xy(r.useKeyword,n)?Sy(o):o}function Ny(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!==I.Schema)return Fy(e,t,i,n)}return Py()}}return Py()}function Py(){return{suggestions:Object.keys(vp).map(e=>({label:e.toLowerCase(),insertText:`${e.toLowerCase()} `,insertTextRules:X.KeepWhitespace,kind:Y.Keyword,range:void 0}))}}function Fy(e,n,r,i){if(!r)return Z();let a=xo(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 Bp&&!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:by(i),range:void 0}))}}function Iy(){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 Ly(e,t,n,r,i){let a=t.dirname,o=n?n.value:`./`,s=n===void 0,c;if(n){let e=uy(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=Pa(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,-wo.length)),r.startsWith(`.`)||(r=`./${r}`),o&&!r.startsWith(o))continue;let d=`${o}${r.slice(o.length).split(`/`)[0]}`,f=bo.resolve(a,d),p=e.layout.isDirectory(f);if(zy(e,n,Ry(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 Ry(e){let t=e.specifiers;return t instanceof Kp?t.specifiers.flatMap(e=>{let t=P(e.name),n=e.importKind?.value.toLowerCase();return!t||!n?[]:[{name:t,kind:n}]}):[]}function zy(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 By=class{constructor(e,t={}){this.compiler=e,this.triggerCharacters=t.triggerCharacters??[]}provideCompletionItems(e,t){let n=bo.fromUri(String(e.uri)),i=ly(e,t),a=Oy(this.compiler,e,t,n,i);if(a!==null)return a;let o=this.compiler.token.flatStream(n),{token:s,index:c}=this.compiler.container.token(n,i),l=c===void 0?o[0]:o[c+1];if([...s?.trailingTrivia||[],...s?.leadingTrivia||[],...l?.leadingTrivia||[]].find(e=>qa(e)&&my(i,e)))return Z();if(c===void 0)return $y();let u=jy(this.compiler,n,i,s,e);if(u!==null)return u;if([v.STRING_LITERAL,v.QUOTED_STRING].includes(s.kind)&&my(i,s))return Z();let d=this.compiler.container.element(n,i);if(this.compiler.container.scopeKind(n,i)===Q.TOPLEVEL||d instanceof z&&d.type&&d.type.start<=i&&d.type.end>=i)return $y();let f=[...this.compiler.container.stack(n,i)].reverse();for(let e of f)if(e instanceof V)switch(e.op?.value){case`>`:case`<`:case`<>`:case`-`:return Hy(this.compiler,n,i,e);case`~`:return Vy(this.compiler,n,i);default:}else if(e instanceof Jp)switch(e.op?.value){case`>`:case`<`:case`<>`:case`-`:return Hy(this.compiler,n,i,e);case`.`:return Zy(this.compiler,n,i,e);default:}else if(e instanceof B)return qy(this.compiler,n,i,e);else if(e instanceof W)return qy(this.compiler,n,i,e);else if(e instanceof Zp)return Gy(this.compiler,n,i,e);else if(e instanceof Qp)return Ky(this.compiler,n,i);else if(e instanceof G)return lb(this.compiler,n,i,e);else if(e instanceof H)return Qy(this.compiler,n,i,e);else if(e instanceof z){if(hy(i,e))return A(e,r.Metadata)?sb(this.compiler,n,i,e):cb(this.compiler,n,i,e);if(e.bodyColon&&i>=e.bodyColon.end||e.body&&my(i,e.body))return Qy(this.compiler,n,i,void 0)}return Z()}};function Vy(e,t,n){return Wy(e,t,n,e.parse.ast(t),[I.TablePartial])}function Hy(e,t,n,r){let i=e.container.scopeKind(t,n);if([Q.REF,Q.TABLE,Q.TABLEPARTIAL].includes(i)){let i=Wy(e,t,n,e.container.element(t,n),[I.Table,I.Schema,I.Column]);return xy(r.op,n)?Sy(i):i}return Z()}function Uy(e,n,r){let i=e.symbolMembers(n).getFiltered(t);return i?Cy({suggestions:i.filter(e=>r.includes(e.kind)).filter(e=>!(e instanceof Sp&&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:by(e.kind),sortText:by(e.kind).toString().padStart(2,`0`),detail:i,range:void 0}}).filter(e=>e.label!==``)}):Z()}function Wy(e,n,r,i,a){if(i===void 0)return Z();let o=i,s={suggestions:[]},c;for(;o;){o instanceof R&&(c=o);let n=e.nodeSymbol(o).getFiltered(t);if(n){let t=Uy(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 z?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 Ty(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 Cy(s)}function Gy(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 G&&t.argumentList===a)return lb(e,n,i,t);if(s instanceof z&&s.isKind(r.Records)&&!(s.name instanceof G)&&hy(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=Uy(e,i,[I.Column]);return Bf(a)?wy(t):t}}switch(o){case Q.INDEXES:return pb(e,n,i);case Q.REF:for(;c.length>0;){let t=c.pop();if(t instanceof Jp&&t.op?.value===`.`)return Zy(e,n,i,t)}return rb(e,n,i);default:break}return Z()}function Ky(e,t,n){return e.container.scopeKind(t,n)===Q.RECORDS?Wy(e,t,n,e.container.element(t,n),[I.Schema,I.Enum,I.EnumField]):Z()}function qy(e,t,n,r){let{token:i}=e.container.token(t,n);if([v.COMMA,v.LBRACKET].includes(i?.kind)){let r=Jy(e,t,n);return i?.kind===v.COMMA&&xy(i,n)?Sy(r):r}if(r.name&&r.name.start<=n&&r.name.end>=n)return Jy(e,t,n);if(r.name instanceof qp){let a=Yy(e,t,n,Rf(r.name)??``);return i?.kind===v.COLON&&xy(i,n)?Sy(a):a}return Z()}function Jy(e,t,n){let r=e.container.element(t,n);if(r instanceof R)return Z();let a=e.container.scopeKind(t,n);if(r.body&&!my(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 Yy(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:[Co].map(e=>({label:e,insertText:e,kind:Y.Value,insertTextRules:X.KeepWhitespace,range:void 0}))};break;case`default`:return Wy(e,t,n,e.container.element(t,n),[I.Schema,I.Enum]);default:break}return Z()}function Xy(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 z?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 Zy(e,n,r,i){let a=Hf(i)??[];return a.pop(),a.some(e=>!O(e))?Z():Cy({suggestions:Xy(e,a.map(e=>P(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:by(e.kind),range:void 0}})})}function Qy(e,t,n,i){switch(e.container.scopeKind(t,n)){case Q.TABLE:case Q.TABLEPARTIAL:return tb(e,t,n,i);case Q.PROJECT:return nb(e,t,n,i);case Q.INDEXES:return db(e,t,n);case Q.ENUM:return eb(e,t,n,i);case Q.REF:{let r=rb(e,t,n);return e.container.token(t,n).token?.kind===v.COLON&&xy(e.container.token(t,n).token,n)?Sy(r):r}case Q.TABLEGROUP:return ub(e,t);case Q.DIAGRAMVIEW:return gb();case Q.CUSTOM:{let i=e.container.element(t,n);if(i instanceof z){let a=i.parentNode,o=a instanceof U?a.parentNode:void 0;if(o instanceof z&&o.isKind(r.DiagramView))return _b(e,t,n,i)}return Z()}default:return Z()}}function $y(){return{suggestions:[`Table`,`TableGroup`,`Enum`,`Project`,`Ref`,`TablePartial`,`Records`,`DiagramView`,`Note`,`Metadata`].map(e=>({label:e,insertText:e,insertTextRules:X.KeepWhitespace,kind:Y.Keyword,range:void 0}))}}function eb(e,t,n,r){return r?.callee&&mb(n,r)===1?Wy(e,t,n,e.container.element(t,n),[I.Schema,I.Table,I.Column]):Z()}function tb(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=mb(n,r);return a===0?{suggestions:i.map(e=>({label:e,insertText:e,insertTextRules:X.KeepWhitespace,kind:Y.Keyword,range:void 0}))}:a===1?fb(e,t,n):Z()}function nb(e,t,n,r){return!r?.callee||mb(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 rb(e,t,n){return Wy(e,t,n,e.container.element(t,n),[I.Schema,I.Table,I.Column])}var ib={[yp.Table]:[I.Schema,I.Table],[yp.Column]:[I.Schema,I.Table,I.Column],[yp.TableGroup]:[I.TableGroup],[yp.Note]:[I.StickyNote]},ab={[yp.Table]:`Table`,[yp.Column]:`Column`,[yp.TableGroup]:`TableGroup`,[yp.Note]:`Note`};function ob(){return{suggestions:Object.values(yp).map(e=>{let t=ab[e]??e;return{label:t,insertText:t,insertTextRules:X.KeepWhitespace,kind:Y.Keyword,range:void 0}})}}function sb(e,t,n,r){let i=Zg(r);if(!i||n<=r.targetKind.end&&n>=r.targetKind.start)return ob();let a=ib[i];return a?Wy(e,t,n,r.parent,a):Z()}function cb(e,t,n,i){return i.isKind(r.Records)?Wy(e,t,n,i.parent,[I.Schema,I.Table]):Z()}function lb(e,n,i,a){let o=e.container.element(n,i),s=a.callee&&my(i,a.callee),c=a.argumentList&&my(i,a.argumentList);if(o instanceof z&&o.isKind(r.Records)&&hy(i,o)){if(s)return Wy(e,n,i,o.parent,[I.Schema,I.Table]);if(!c)return Z();let r=a.callee;if(!r)return Z();let l=Hf(r)??[r],u=l[l.length-1],d=u?e.nodeReferee(u).getFiltered(t):void 0;if(!d)return Z();let f=Uy(e,d,[I.Column]),{argumentList:p}=a;return!p||!Bf(p)?f:wy(f)}let l=[...e.container.stack(n,i)];for(let o of l){if(!c||!(o instanceof H)||o.callee!==a||(P(a.callee)??``).toLowerCase()!==r.Records)continue;let s=e.nodeSymbol(e.container.element(n,i)).getFiltered(t);if(!s)return Z();let l=Uy(e,s,[I.Column]),{argumentList:u}=a;return!u||!Bf(u)?l:wy(l)}return Z()}function ub(e,t){return{suggestions:[...Cy({suggestions:(e.parse.publicSymbolTable(t)??[]).flatMap(e=>{if(e.kind!==I.Table&&e.kind!==I.Schema)return[];let t=e.name;return t===void 0||e instanceof Sp&&e.isPublicSchema()?[]:{label:t,insertText:t,insertTextRules:X.KeepWhitespace,kind:by(e.kind),range:void 0}})}).suggestions,...[`Note`].map(e=>({label:e,insertText:e,insertTextRules:X.KeepWhitespace,kind:Y.Keyword,range:void 0}))]}}function db(e,t,n){return pb(e,t,n)}function fb(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})),...Wy(e,t,n,e.container.element(t,n),[I.Enum,I.Schema]).suggestions]}}function pb(e,n,r){let i=e.container.element(n,r)?.parent,a=i?e.nodeSymbol(i).getFiltered(t):void 0;if(!a||!a?.isKind(I.Table))return Z();let o=e.symbolMembers(a).getFiltered(t);return o?Cy({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:by(I.Column),range:void 0}:[]})}):Z()}function mb(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 hb={label:`*`,insertText:`*`,insertTextRules:X.KeepWhitespace,kind:Y.Keyword,range:void 0};function gb(){return{suggestions:[...[`Tables`,`TableGroups`,`Notes`,`Schemas`].map(e=>({label:e,insertText:e,insertTextRules:X.KeepWhitespace,kind:Y.Keyword,range:void 0})),hb]}}function _b(e,t,n,i){switch(i.getElementKind()){case r.DiagramViewTables:return{suggestions:[hb,...Wy(e,t,n,e.parse.ast(t),[I.Table,I.Schema]).suggestions]};case r.DiagramViewTableGroups:return{suggestions:[hb,...Wy(e,t,n,e.parse.ast(t),[I.TableGroup]).suggestions]};case r.DiagramViewSchemas:return{suggestions:[hb,{label:y,insertText:y,insertTextRules:X.KeepWhitespace,kind:Y.Module,range:void 0},...Wy(e,t,n,e.parse.ast(t),[I.Schema]).suggestions]};case r.DiagramViewNotes:return{suggestions:[hb,...Wy(e,t,n,e.parse.ast(t),[I.StickyNote]).suggestions]};default:return Z()}}var vb={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*[}\]].*)$/}},yb={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`,`metadata`],metadataTarget:[`table`,`tablegroup`,`schema`,`column`,`note`],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)(\s+)(@idtf(?:\.@idtf)*)/,{cases:{"$1@decls":{cases:{"$3@metadataTarget":[`keyword`,``,`keyword`,``,`identifier`],"@default":[`keyword`,``,`identifier`,``,`identifier`]}},"@default":[`identifier`,``,`identifier`,``,`identifier`]}}],[/(@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`,"@metadataTarget":`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 bb(e,t){let n=this.token.flatStream(e),{index:r,token:i}=this.container.token(e,t),a=r===void 0?-1:_a(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=dm(s).find(e=>my(o,e));if(e===void 0||e instanceof Va)break;c.push(e),s=e}if(i?.kind===v.COLON)return c;for(;c.length>0;){let n=!1,r=g(c);if(r instanceof H){let i=this.getSource(e)||``;for(let e=r.end;e<t;e+=1)i[e]===`
12
- `&&(c.pop(),n=!0)}else r instanceof V||r instanceof Jp?this.container.token(e,t).token!==r.op&&(c.pop(),n=!0):r instanceof W?r.listCloseBracket&&r.end<=t&&(c.pop(),n=!0):r instanceof Zp?r.tupleCloseParen&&r.end<=t&&(c.pop(),n=!0):r instanceof Qp?r.end<=t&&(c.pop(),n=!0):r instanceof U?r.blockCloseBrace&&r.end<=t&&(c.pop(),n=!0):r instanceof qp||r.end<t&&(c.pop(),n=!0);if(n){let e=g(c);e instanceof z&&e.end<=t&&c.pop()}if(!n)break}return c}function xb(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 Sb(e,t){let n=this.container.stack(e,t);for(let e=n.length-1;e>=0;--e)if(n[e]instanceof z)return n[e];return this.parse.ast(e)}function Cb(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()}var 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[e.METADATA=13]=`METADATA`,e}({});function wb(e,t){let n=this.container.element(e,t);if(n instanceof R)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;case`metadata`:return Q.METADATA;default:return Q.CUSTOM}}function Tb(e,t){let r=t.originalSymbol;if(r.filepath.equals(e))return n.create(Db(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=Eb(this,e);if(i.length>0)return n.create({schema:i.join(`.`),name:t});let a=Db(this,r);return a?n.create({...a,name:t}):n.create({schema:y,name:t})}return n.create(Db(this,r))}function Eb(e,t){let n=[],r=t;for(;r;){let t=e.symbolParent(r).find(e=>e instanceof Sp&&e.isKind(I.Schema));if(!t||t.isPublicSchema())break;n.unshift(t.name??``),r=t}return n}function Db(e,n){if(!n.declaration)return n.name?{schema:y,name:n.name}:void 0;let r=e.nodeFullname(n.declaration).getFiltered(t);if(!r||r.length===0)return n.name?{schema:y,name:n.name}:void 0;let i=r[r.length-1];return{schema:r.length>1?r.slice(0,-1).join(`.`):y,name:i}}function Ob(e){let{ast:t}=this.parseFile(e).getValue(),n=[],r=new Set;for(let i of t.body){if(!(i instanceof Wp)||!i.importPath)continue;let t=xo(e,i.importPath.value);!t||r.has(t.absolute)||(r.add(t.absolute),n.push(t))}return n}function kb(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 Ab(e){return kb(this,e?[e]:this.layout.getEntrypoints())}function jb(e){return this.bindFile(e),this.parseFile(e).getValue().ast}function Mb(e){return this.interpretFile(e).getErrors()}function Nb(e){return this.interpretFile(e).getWarnings()}function Pb(e){return this.parseFile(e).getValue().tokens}function Fb(e){let n=this.parseFile(e).getValue().ast,r=this.nodeSymbol(n).getFiltered(t);if(r)return this.interpretSymbol(r,e).getFiltered(t)}function Ib(e){let n=this.parseFile(e).getValue().ast,r=this.nodeSymbol(n).getFiltered(t);if(r)return this.symbolMembers(r).getFiltered(t)}function Lb(e){return this.parseFile(e).getValue().tokens.flatMap(e=>[...e.leadingInvalid,e,...e.trailingInvalid])}function Rb(e){return this.parseFile(e).getValue().tokens.filter($a)}function zb(e,t){let n=this.parse.ast(e);for(;;){let e=dm(n).find(e=>my(t,e));if(e===void 0)return n;if(e instanceof Va)return e;n=e}}function Bb(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 Vb(){let e=Cg(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 Hb(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 Ub(){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 Wb(e){return this.parseFile(e).chain(({ast:e})=>this.validateNode(e).map(()=>void 0))}var Gb=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===`
10
+ `&&i++,{startOffset:r,endOffset:i}}function Sy(e){switch(e){case F.Schema:return J.Module;case F.Table:case F.TablePartial:case F.Metadata:return J.Class;case F.Column:case F.TableGroupField:return J.Field;case F.Enum:return J.Enum;case F.EnumField:return J.EnumMember;case F.TableGroup:return J.Struct;default:return J.Text}}function Cy(e,t){if(!e||Wa(e))return!1;for(let n of e.trailingTrivia){if(n.start>t)break;if(n.kind===v.NEWLINE&&n.end<=t)return!1}return!0}function X(){return{suggestions:[]}}function wy(e){return{...e,suggestions:e.suggestions.map(e=>({...e,insertText:` ${e.insertText}`}))}}function Ty(e){return{...e,suggestions:e.suggestions.map(e=>({...e,insertText:e.quoted?e.insertText:Tg(e.insertText??``),quoted:!0}))}}function Ey(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:Y.KeepWhitespace,kind:J.Snippet,sortText:`00`,range:void 0},...e.suggestions]}:e}function Dy(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(Oy(e,c,t.kind,s,r,o)))}}return i}function Oy(e,t,n,r,i,a){let o=yy(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=ky(a,o.removeRange.startOffset),t=ky(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:Y.KeepWhitespace,kind:Sy(n),detail:`from ${r.basename}`,sortText:`zzz_${Sy(n).toString().padStart(2,`0`)}_${t}`,range:void 0,additionalTextEdits:s}}function ky(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 Ay(e,t,n,i,a){let o=e.container.element(i,a);return!(o instanceof R)||!o.isKind(r.Records)||!(o.body instanceof H)||!o.body||!gy(a,o.body)||t.getLineContent(n.lineNumber).trim()!==``?null:o.parent instanceof L?jy(e,o):My(e,o)}function jy(e,n){if(!(n.name instanceof W))return X();let r=n.name.argumentList?.elementList||[],i=r.map(n=>e.nodeReferee(n).getFiltered(t));if(!i||i.length===0)return X();let a=r.flatMap((t,n)=>{let r=i[n];if(!(r instanceof Dp||r instanceof Hp))return[];let{name:a}=r.canonicalName(e,t.filepath),{name:o}=r.type(e);return{name:a,type:o}});return a.length===0?X():{suggestions:[{label:`Record row snippet`,insertText:a.map((e,t)=>`\${${t+1}:${e.name} (${e.type})}`).join(`, `),insertTextRules:Y.InsertAsSnippet,kind:J.Snippet,range:void 0}]}}function My(e,n){let r=n.parent;if(!(r instanceof R))return X();let i=e.nodeSymbol(r).getFiltered(t);if(!(i instanceof Ep))return X();let a;if(n.name instanceof Qp){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 Dp||r instanceof Hp))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 X();a=t}return a.length===0?X():{suggestions:[{label:`Record row snippet`,insertText:a.map((e,t)=>`\${${t+1}:${e.name} (${e.type})}`).join(`, `),insertTextRules:Y.InsertAsSnippet,kind:J.Snippet,range:void 0}]}}function Ny(e,t,n,r,i){let a=e.parse.ast(t);for(let o of a.body)if(o instanceof Gp&&n>=o.start&&n<=o.fullEnd)return Py(e,t,n,o,i,r);return null}function Py(e,t,n,r,i,a){if(r.importPath&&gy(n,r.importPath))return zy(e,t,r.importPath,i,r);if(r.importPath&&n>=r.importPath.end)return X();if(r.fromKeyword&&n>r.fromKeyword.end)return zy(e,t,void 0,i,r);if(r.specifiers instanceof qp){if(!r.specifiers.openBrace){let e=Ry();return Cy(r.useKeyword,n)?wy(e):e}return Fy(e,t,n,r.specifiers,r.importPath,a)}if(r.specifiers instanceof nm)return X();let o=Ry();return Cy(r.useKeyword,n)?wy(o):o}function Fy(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!==F.Schema)return Ly(e,t,i,n)}return Iy()}}return Iy()}function Iy(){return{suggestions:Object.keys(yp).map(e=>({label:e.toLowerCase(),insertText:`${e.toLowerCase()} `,insertTextRules:Y.KeepWhitespace,kind:J.Keyword,range:void 0}))}}function Ly(e,n,r,i){if(!r)return X();let a=xo(n,r.value);if(!a)return X();let o=e.usableMembers(a).getFiltered(t);if(!o)return X();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 Vp&&!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:Y.KeepWhitespace,kind:Sy(i),range:void 0}))}}function Ry(){return{suggestions:[{label:`* from`,detail:`import all`,insertText:"* from '${1:./path}'",insertTextRules:Y.InsertAsSnippet,kind:J.Snippet,range:void 0},{label:`{ } from`,detail:`import named`,insertText:"{ ${1:type} ${2:name} } from '${3:./path}'",insertTextRules:Y.InsertAsSnippet,kind:J.Snippet,range:void 0}]}}function zy(e,t,n,r,i){let a=t.dirname,o=n?n.value:`./`,s=n===void 0,c;if(n){let e=fy(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=Pa(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,-wo.length)),r.startsWith(`.`)||(r=`./${r}`),o&&!r.startsWith(o))continue;let d=`${o}${r.slice(o.length).split(`/`)[0]}`,f=bo.resolve(a,d),p=e.layout.isDirectory(f);if(Vy(e,n,By(i))&&u.set(d,!0),l.has(d))continue;let m=s?`'${d}'`:d;l.set(d,{label:d,insertText:m,insertTextRules:Y.KeepWhitespace,kind:p?J.Folder:J.File,sortText:`${p?`2`:`3`}${d}`,range:c})}for(let[e,t]of l)u.get(e)&&(t.sortText=`${t.kind===J.File?`0`:`1`}${e}`,t.detail=`best match`);return{suggestions:[...l.values()]}}function By(e){let t=e.specifiers;return t instanceof qp?t.specifiers.flatMap(e=>{let t=N(e.name),n=e.importKind?.value.toLowerCase();return!t||!n?[]:[{name:t,kind:n}]}):[]}function Vy(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 Z={Table:`Table`,TableGroup:`TableGroup`,Enum:`Enum`,Project:`Project`,Ref:`Ref`,TablePartial:`TablePartial`,Records:`Records`,DiagramView:`DiagramView`,Note:`Note`,Metadata:`Metadata`,Indexes:`indexes`,Checks:`checks`,Tables:`Tables`,TableGroups:`TableGroups`,Notes:`Notes`,Schemas:`Schemas`,Column:`Column`},Hy=`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(`.`),Uy=[i.HeaderColor,i.Note];Uy.map(e=>`${e}: `);var Wy=[i.PK,i.PrimaryKey,i.Null,i.NotNull,i.Increment,i.Unique],Gy=[i.Ref,i.Default,i.Note,i.Check],Ky=[...Wy,...Gy],qy=[...Wy,...Gy.map(e=>`${e}: `)],Jy=[i.Unique,i.PK],Yy=[i.Note,i.Name,i.Type],Xy=[...Jy,...Yy],Zy=[...Jy,...Yy.map(e=>`${e}: `)],Qy=[i.Inactive],$y=[i.Update,i.Delete,i.Color],eb=[...Qy,...$y],tb=[...Qy,...$y.map(e=>`${e}: `)],nb=[i.Note],rb=nb.map(e=>`${e}: `),ib=[i.Name],ab=ib.map(e=>`${e}: `),ob=[`cascade`,`set default`,`set null`,`restrict`],sb=[`btree`,`hash`],cb=[Z.Note,Z.Indexes,Z.Checks,Z.Records],lb=[Z.Table,Z.TableGroup,Z.Enum,Z.Note,Z.Ref,Z.TablePartial],ub=class{constructor(e,t={}){this.compiler=e,this.triggerCharacters=t.triggerCharacters??[]}provideCompletionItems(e,t){let n=bo.fromUri(String(e.uri)),i=dy(e,t),a=Ay(this.compiler,e,t,n,i);if(a!==null)return a;let o=this.compiler.token.flatStream(n),{token:s,index:c}=this.compiler.container.token(n,i),l=c===void 0?o[0]:o[c+1];if([...s?.trailingTrivia||[],...s?.leadingTrivia||[],...l?.leadingTrivia||[]].find(e=>qa(e)&&gy(i,e)))return X();if(c===void 0)return Tb();let u=Ny(this.compiler,n,i,s,e);if(u!==null)return u;if([v.STRING_LITERAL,v.QUOTED_STRING].includes(s.kind)&&gy(i,s))return X();let d=this.compiler.container.element(n,i);if(this.compiler.container.scopeKind(n,i)===Q.TOPLEVEL||d instanceof R&&d.type&&d.type.start<=i&&d.type.end>=i)return Tb();let f=[...this.compiler.container.stack(n,i)].reverse();for(let e of f)if(e instanceof B)switch(e.op?.value){case`>`:case`<`:case`<>`:case`-`:return fb(this.compiler,n,i,e);case`~`:return db(this.compiler,n,i);default:}else if(e instanceof Yp)switch(e.op?.value){case`>`:case`<`:case`<>`:case`-`:return fb(this.compiler,n,i,e);case`.`:return Sb(this.compiler,n,i,e);default:}else if(e instanceof z)return _b(this.compiler,n,i,e);else if(e instanceof U)return _b(this.compiler,n,i,e);else if(e instanceof Qp)return hb(this.compiler,n,i,e);else if(e instanceof $p)return gb(this.compiler,n,i);else if(e instanceof W)return Fb(this.compiler,n,i,e);else if(e instanceof V)return Cb(this.compiler,n,i,e);else if(e instanceof R){if(_y(i,e))return k(e,r.Metadata)?Nb(this.compiler,n,i,e):Pb(this.compiler,n,i,e);if(e.bodyColon&&i>=e.bodyColon.end||e.body&&gy(i,e.body))return Cb(this.compiler,n,i,void 0)}return X()}};function db(e,t,n){return mb(e,t,n,e.parse.ast(t),[F.TablePartial])}function fb(e,t,n,r){let i=e.container.scopeKind(t,n);if([Q.REF,Q.TABLE,Q.TABLEPARTIAL].includes(i)){let i=mb(e,t,n,e.container.element(t,n),[F.Table,F.Schema,F.Column]);return Cy(r.op,n)?wy(i):i}return X()}function pb(e,n,r){let i=e.symbolMembers(n).getFiltered(t);return i?Ty({suggestions:i.filter(e=>r.includes(e.kind)).filter(e=>!(e instanceof Cp&&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:Y.KeepWhitespace,kind:Sy(e.kind),sortText:Sy(e.kind).toString().padStart(2,`0`),detail:i,range:void 0}}).filter(e=>e.label!==``)}):X()}function mb(e,n,r,i,a){if(i===void 0)return X();let o=i,s={suggestions:[]},c;for(;o;){o instanceof L&&(c=o);let n=e.nodeSymbol(o).getFiltered(t);if(n){let t=pb(e,n,a).suggestions,r=e=>{switch(e){case J.Field:return 0;case J.Module:return 1;case J.Class:return 2;default:return 3}};t.sort((e,t)=>r(e.kind)-r(t.kind)),s.suggestions.push(...t)}o=o instanceof R?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 Dy(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 Ty(s)}function hb(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 W&&t.argumentList===a)return Fb(e,n,i,t);if(s instanceof R&&s.isKind(r.Records)&&!(s.name instanceof W)&&_y(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=pb(e,i,[F.Column]);return Vf(a)?Ey(t):t}}switch(o){case Q.INDEXES:return zb(e,n,i);case Q.REF:for(;c.length>0;){let t=c.pop();if(t instanceof Yp&&t.op?.value===`.`)return Sb(e,n,i,t)}return kb(e,n,i);default:break}return X()}function gb(e,t,n){return e.container.scopeKind(t,n)===Q.RECORDS?mb(e,t,n,e.container.element(t,n),[F.Schema,F.Enum,F.EnumField]):X()}function _b(e,t,n,r){let{token:i}=e.container.token(t,n);if([v.COMMA,v.LBRACKET].includes(i?.kind)){let r=vb(e,t,n);return i?.kind===v.COMMA&&Cy(i,n)?wy(r):r}if(r.name&&r.name.start<=n&&r.name.end>=n)return vb(e,t,n);if(r.name instanceof Jp){let a=bb(e,t,n,zf(r.name)??``);return i?.kind===v.COLON&&Cy(i,n)?wy(a):a}return X()}function vb(e,t,n){let r=e.container.element(t,n);if(r instanceof L)return X();let a=e.container.scopeKind(t,n);if(r.body&&!gy(n,r.body)){let e;switch(a){case Q.TABLE:case Q.TABLEPARTIAL:e=Uy;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:J.Field,insertTextRules:Y.KeepWhitespace,range:void 0}))}}switch(a){case Q.TABLE:case Q.TABLEPARTIAL:return{suggestions:yb(Ky,qy)};case Q.ENUM:return{suggestions:yb(nb,rb)};case Q.INDEXES:return{suggestions:yb(Xy,Zy)};case Q.REF:return{suggestions:yb(eb,tb)};case Q.CHECKS:return{suggestions:yb(ib,ab)};default:break}return X()}function yb(e,t){return e.map((e,n)=>({label:e,insertText:t[n],kind:J.Property,insertTextRules:Y.KeepWhitespace,range:void 0}))}function bb(e,t,n,r){switch(r?.toLowerCase()){case`update`:case`delete`:return{suggestions:ob.map(e=>({label:e,insertText:e,kind:J.Value,insertTextRules:Y.KeepWhitespace,range:void 0}))};case`type`:return{suggestions:sb.map(e=>({label:e,insertText:`${e}`,kind:J.Value,insertTextRules:Y.KeepWhitespace,range:void 0}))};case`color`:if(e.container.scopeKind(t,n)===Q.NOTE)return{suggestions:[Co].map(e=>({label:e,insertText:e,kind:J.Value,insertTextRules:Y.KeepWhitespace,range:void 0}))};break;case`default`:return mb(e,t,n,e.container.element(t,n),[F.Schema,F.Enum]);default:break}return X()}function xb(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 R?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 Sb(e,n,r,i){let a=Uf(i)??[];return a.pop(),a.some(e=>!D(e))?X():Ty({suggestions:xb(e,a.map(e=>N(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:Sy(e.kind),range:void 0}})})}function Cb(e,t,n,i){switch(e.container.scopeKind(t,n)){case Q.TABLE:case Q.TABLEPARTIAL:return Db(e,t,n,i);case Q.PROJECT:return Ob(e,t,n,i);case Q.INDEXES:return Lb(e,t,n);case Q.ENUM:return Eb(e,t,n,i);case Q.REF:{let r=kb(e,t,n);return e.container.token(t,n).token?.kind===v.COLON&&Cy(e.container.token(t,n).token,n)?wy(r):r}case Q.TABLEGROUP:return Ib(e,t);case Q.DIAGRAMVIEW:return Hb();case Q.CUSTOM:{let i=e.container.element(t,n);if(i instanceof R){let a=i.parentNode,o=a instanceof H?a.parentNode:void 0;if(o instanceof R&&o.isKind(r.DiagramView))return Ub(e,t,n,i)}return X()}default:return X()}}var wb=[Z.Table,Z.TableGroup,Z.Enum,Z.Project,Z.Ref,Z.TablePartial,Z.Records,Z.DiagramView,Z.Note,Z.Metadata];function Tb(){return{suggestions:wb.map(e=>({label:e,insertText:e,insertTextRules:Y.KeepWhitespace,kind:J.Keyword,range:void 0}))}}function Eb(e,t,n,r){return r?.callee&&Bb(n,r)===1?mb(e,t,n,e.container.element(t,n),[F.Schema,F.Table,F.Column]):X()}function Db(e,t,n,r){let i=cb;if(!r?.callee)return{suggestions:i.map(e=>({label:e,insertText:e,insertTextRules:Y.KeepWhitespace,kind:J.Keyword,range:void 0}))};let a=Bb(n,r);return a===0?{suggestions:i.map(e=>({label:e,insertText:e,insertTextRules:Y.KeepWhitespace,kind:J.Keyword,range:void 0}))}:a===1?Rb(e,t,n):X()}function Ob(e,t,n,r){let i=lb;return!r?.callee||Bb(n,r)===0?{suggestions:i.map(e=>({label:e,insertText:e,insertTextRules:Y.KeepWhitespace,kind:J.Keyword,range:void 0}))}:X()}function kb(e,t,n){return mb(e,t,n,e.container.element(t,n),[F.Schema,F.Table,F.Column])}var Ab={[bp.Table]:[F.Schema,F.Table],[bp.Column]:[F.Schema,F.Table,F.Column],[bp.TableGroup]:[F.TableGroup],[bp.Note]:[F.StickyNote]},jb={[bp.Table]:Z.Table,[bp.Column]:Z.Column,[bp.TableGroup]:Z.TableGroup,[bp.Note]:Z.Note};function Mb(){return{suggestions:Object.values(bp).map(e=>{let t=jb[e];return{label:t,insertText:t,insertTextRules:Y.KeepWhitespace,kind:J.Keyword,range:void 0}})}}function Nb(e,t,n,r){let i=sg(r);if(!i||n<=r.targetKind.end&&n>=r.targetKind.start)return Mb();let a=Ab[i];return a?mb(e,t,n,r.parent,a):X()}function Pb(e,t,n,i){return i.isKind(r.Records)?mb(e,t,n,i.parent,[F.Schema,F.Table]):X()}function Fb(e,n,i,a){let o=e.container.element(n,i),s=a.callee&&gy(i,a.callee),c=a.argumentList&&gy(i,a.argumentList);if(o instanceof R&&o.isKind(r.Records)&&_y(i,o)){if(s)return mb(e,n,i,o.parent,[F.Schema,F.Table]);if(!c)return X();let r=a.callee;if(!r)return X();let l=Uf(r)??[r],u=l[l.length-1],d=u?e.nodeReferee(u).getFiltered(t):void 0;if(!d)return X();let f=pb(e,d,[F.Column]),{argumentList:p}=a;return!p||!Vf(p)?f:Ey(f)}let l=[...e.container.stack(n,i)];for(let o of l){if(!c||!(o instanceof V)||o.callee!==a||(N(a.callee)??``).toLowerCase()!==r.Records)continue;let s=e.nodeSymbol(e.container.element(n,i)).getFiltered(t);if(!s)return X();let l=pb(e,s,[F.Column]),{argumentList:u}=a;return!u||!Vf(u)?l:Ey(l)}return X()}function Ib(e,t){return{suggestions:[...Ty({suggestions:(e.parse.publicSymbolTable(t)??[]).flatMap(e=>{if(e.kind!==F.Table&&e.kind!==F.Schema)return[];let t=e.name;return t===void 0||e instanceof Cp&&e.isPublicSchema()?[]:{label:t,insertText:t,insertTextRules:Y.KeepWhitespace,kind:Sy(e.kind),range:void 0}})}).suggestions,...[Z.Note].map(e=>({label:e,insertText:e,insertTextRules:Y.KeepWhitespace,kind:J.Keyword,range:void 0}))]}}function Lb(e,t,n){return zb(e,t,n)}function Rb(e,t,n){return{suggestions:[...Hy.map(e=>({label:e,insertText:e,insertTextRules:Y.KeepWhitespace,kind:J.TypeParameter,sortText:J.TypeParameter.toString().padStart(2,`0`),range:void 0})),...mb(e,t,n,e.container.element(t,n),[F.Enum,F.Schema]).suggestions]}}function zb(e,n,r){let i=e.container.element(n,r)?.parent,a=i?e.nodeSymbol(i).getFiltered(t):void 0;if(!a||!a?.isKind(F.Table))return X();let o=e.symbolMembers(a).getFiltered(t);return o?Ty({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:Y.KeepWhitespace,kind:Sy(F.Column),range:void 0}:[]})}):X()}function Bb(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 Vb={label:`*`,insertText:`*`,insertTextRules:Y.KeepWhitespace,kind:J.Keyword,range:void 0};function Hb(){return{suggestions:[...[Z.Tables,Z.TableGroups,Z.Notes,Z.Schemas].map(e=>({label:e,insertText:e,insertTextRules:Y.KeepWhitespace,kind:J.Keyword,range:void 0})),Vb]}}function Ub(e,t,n,i){switch(i.getElementKind()){case r.DiagramViewTables:return{suggestions:[Vb,...mb(e,t,n,e.parse.ast(t),[F.Table,F.Schema]).suggestions]};case r.DiagramViewTableGroups:return{suggestions:[Vb,...mb(e,t,n,e.parse.ast(t),[F.TableGroup]).suggestions]};case r.DiagramViewSchemas:return{suggestions:[Vb,{label:y,insertText:y,insertTextRules:Y.KeepWhitespace,kind:J.Module,range:void 0},...mb(e,t,n,e.parse.ast(t),[F.Schema]).suggestions]};case r.DiagramViewNotes:return{suggestions:[Vb,...mb(e,t,n,e.parse.ast(t),[F.StickyNote]).suggestions]};default:return X()}}var Wb={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*[}\]].*)$/}},Gb={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`,`metadata`],metadataTarget:[`table`,`tablegroup`,`schema`,`column`,`note`],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)(\s+)(@idtf(?:\.@idtf)*)/,{cases:{"$1@decls":{cases:{"$3@metadataTarget":[`keyword`,``,`keyword`,``,`identifier`],"@default":[`keyword`,``,`identifier`,``,`identifier`]}},"@default":[`identifier`,``,`identifier`,``,`identifier`]}}],[/(@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`,"@metadataTarget":`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 Kb(e,t){let n=this.token.flatStream(e),{index:r,token:i}=this.container.token(e,t),a=r===void 0?-1:_a(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=fm(s).find(e=>gy(o,e));if(e===void 0||e instanceof Va)break;c.push(e),s=e}if(i?.kind===v.COLON)return c;for(;c.length>0;){let n=!1,r=g(c);if(r instanceof V){let i=this.getSource(e)||``;for(let e=r.end;e<t;e+=1)i[e]===`
12
+ `&&(c.pop(),n=!0)}else r instanceof B||r instanceof Yp?this.container.token(e,t).token!==r.op&&(c.pop(),n=!0):r instanceof U?r.listCloseBracket&&r.end<=t&&(c.pop(),n=!0):r instanceof Qp?r.tupleCloseParen&&r.end<=t&&(c.pop(),n=!0):r instanceof $p?r.end<=t&&(c.pop(),n=!0):r instanceof H?r.blockCloseBrace&&r.end<=t&&(c.pop(),n=!0):r instanceof Jp||r.end<t&&(c.pop(),n=!0);if(n){let e=g(c);e instanceof R&&e.end<=t&&c.pop()}if(!n)break}return c}function qb(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 Jb(e,t){let n=this.container.stack(e,t);for(let e=n.length-1;e>=0;--e)if(n[e]instanceof R)return n[e];return this.parse.ast(e)}function Yb(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()}var 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[e.METADATA=13]=`METADATA`,e}({});function Xb(e,t){let n=this.container.element(e,t);if(n instanceof L)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;case`metadata`:return Q.METADATA;default:return Q.CUSTOM}}function Zb(e,t){let r=t.originalSymbol;if(r.filepath.equals(e))return n.create($b(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=Qb(this,e);if(i.length>0)return n.create({schema:i.join(`.`),name:t});let a=$b(this,r);return a?n.create({...a,name:t}):n.create({schema:y,name:t})}return n.create($b(this,r))}function Qb(e,t){let n=[],r=t;for(;r;){let t=e.symbolParent(r).find(e=>e instanceof Cp&&e.isKind(F.Schema));if(!t||t.isPublicSchema())break;n.unshift(t.name??``),r=t}return n}function $b(e,n){if(!n.declaration)return n.name?{schema:y,name:n.name}:void 0;let r=e.nodeFullname(n.declaration).getFiltered(t);if(!r||r.length===0)return n.name?{schema:y,name:n.name}:void 0;let i=r[r.length-1];return{schema:r.length>1?r.slice(0,-1).join(`.`):y,name:i}}function ex(e){let{ast:t}=this.parseFile(e).getValue(),n=[],r=new Set;for(let i of t.body){if(!(i instanceof Gp)||!i.importPath)continue;let t=xo(e,i.importPath.value);!t||r.has(t.absolute)||(r.add(t.absolute),n.push(t))}return n}function tx(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 nx(e){return tx(this,e?[e]:this.layout.getEntrypoints())}function rx(e){return this.bindFile(e),this.parseFile(e).getValue().ast}function ix(e){return this.interpretFile(e).getErrors()}function ax(e){return this.interpretFile(e).getWarnings()}function ox(e){return this.parseFile(e).getValue().tokens}function sx(e){let n=this.parseFile(e).getValue().ast,r=this.nodeSymbol(n).getFiltered(t);if(r)return this.interpretSymbol(r,e).getFiltered(t)}function cx(e){let n=this.parseFile(e).getValue().ast,r=this.nodeSymbol(n).getFiltered(t);if(r)return this.symbolMembers(r).getFiltered(t)}function lx(e){return this.parseFile(e).getValue().tokens.flatMap(e=>[...e.leadingInvalid,e,...e.trailingInvalid])}function ux(e){return this.parseFile(e).getValue().tokens.filter($a)}function dx(e,t){let n=this.parse.ast(e);for(;;){let e=fm(n).find(e=>gy(t,e));if(e===void 0)return n;if(e instanceof Va)return e;n=e}}function fx(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 px(){let e=Ag(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 mx(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 hx(){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 gx(e){return this.parseFile(e).chain(({ast:e})=>this.validateNode(e).map(()=>void 0))}var _x=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
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 Va.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(Va.create(v.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(v.SPACE);break;case`\r`:break;case`
14
14
  `:this.addToken(v.NEWLINE);break;case` `:this.addToken(v.TAB);break;case`,`:this.addToken(v.COMMA);break;case`(`:this.addToken(v.LPAREN);break;case`)`:this.addToken(v.RPAREN);break;case`[`:this.addToken(v.LBRACKET);break;case`]`:this.addToken(v.RBRACKET);break;case`{`:this.addToken(v.LBRACE);break;case`}`:this.addToken(v.RBRACE);break;case`;`:this.addToken(v.SEMICOLON);break;case`:`:this.addToken(v.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(v.WILDCARD);break;default:if(za(e)){this.operator(e);break}if(nf(e)){this.identifier();break}if(rf(e)){this.numericLiteralOrIdentifier();break}this.addToken(v.OP,!0),this.errors.push(new E(T.UNKNOWN_SYMBOL,`Unexpected token '${e}'`,this.createToken(v.OP,!0)));break}this.start={...this.current}}}gatherTrivia(){let e=!0,t=[],n,r=[];for(let i of this.tokens)Ra(i)?(t.push(i),i.kind===v.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&&$a(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];$a(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
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 E(T.UNEXPECTED_EOF,`EOF reached while parsing`,t));return}if(this.check(`
@@ -17,12 +17,12 @@ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e=Symbol(
17
17
  `,{allowNewline:!0,allowEof:!0,raw:!0,consumeStopSequence:!1})}multilineComment(){this.consumeUntil(v.MULTILINE_COMMENT,`*/`,{allowNewline:!0,allowEof:!1,raw:!0})}identifier(){for(;!this.isAtEnd()&&of(this.peek());)this.advance();this.addToken(v.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(v.OP)}numericLiteralOrIdentifier(){let e=0;if(this.isAtEnd())return this.addToken(v.NUMERIC_LITERAL);for(;!this.isAtEnd();){let t=this.check(`.`);if(e+=+!!t,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&&rf(n)){for(this.advance(),t&&this.advance();!this.isAtEnd()&&rf(this.peek());)this.advance();if(this.isAtEnd()||!of(this.peek()))return this.addToken(v.NUMERIC_LITERAL);break}break}if(!t&&this.current.offset===this.text.length-1)return this.advance(),this.addToken(v.NUMERIC_LITERAL);if(!t&&!of(this.peek()))return this.addToken(v.NUMERIC_LITERAL);if(!t&&!rf(this.peek()))break;this.advance()}if(e>0){for(;!this.isAtEnd()&&(this.check(`.`)||of(this.peek()));)this.advance();let e=this.createToken(v.NUMERIC_LITERAL,!0);this.tokens.push(e),this.errors.push(new E(T.UNKNOWN_TOKEN,`Invalid number`,e))}else{for(;!this.isAtEnd()&&of(this.peek());)this.advance();let e=this.createToken(v.IDENTIFIER,!1);this.tokens.push(e)}}colorLiteral(){for(;!this.isAtEnd()&&of(this.peek());)this.advance();this.addToken(v.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()||!of(this.peek()))return this.errors.push(new E(T.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`,Va.create(v.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]}}},Kb=function(e){return e[e.ListExpression=0]=`ListExpression`,e[e.GroupExpression=1]=`GroupExpression`,e[e.BlockExpression=2]=`BlockExpression`,e}({}),qb=class{constructor(){this.stack=[],this.numberOfNestedLParens=0,this.numberOfNestedLBrackets=0,this.numberOfNestedLBraces=0}push(e){this.stack.push(e),e===0&&(this.numberOfNestedLBrackets+=1),e===1&&(this.numberOfNestedLParens+=1),e===2&&(this.numberOfNestedLBraces+=1)}pop(){let e=this.stack.pop();return e===0&&--this.numberOfNestedLBrackets,e===1&&--this.numberOfNestedLParens,e===2&&--this.numberOfNestedLBraces,e}top(){return g(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 v.COMMA:if(this.isWithinGroupExpressionContext()||this.isWithinListExpressionContext())return[...this.stack].reverse().find(e=>[1,0].includes(e));break;case v.RPAREN:if(this.isWithinGroupExpressionContext())return 1;break;case v.RBRACE:if(this.isWithinBlockExpressionContext())return 2;break;case v.RBRACKET:if(this.isWithinListExpressionContext())return 0;break;default:break}}},Jb=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}},Yb=class{constructor(e,t,n,r){this.current=0,this.errors=[],this.contextStack=new qb,this.useSpecifierList=this.contextStack.withContextDo(Kb.BlockExpression,()=>{let e={specifiers:[]},t=()=>this.nodeFactory.create(Kp,e);try{this.consume(`Expect an opening brace '{'`,v.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(v.RBRACE);){try{e.specifiers.push(this.useSpecifier())}catch(n){if(!(n instanceof $))throw n;if(n.partialNode instanceof Gp&&e.specifiers.push(n.partialNode),!this.canHandle(n))throw new $(n.token,t(),n.handlerContext);this.synchronizeUseSpecifierList()}if(this.check(v.IDENTIFIER)&&Za(this.peek()))break;!Ha(this.previous())&&!this.check(v.RBRACE)&&this.logError(this.peek(),T.MISSING_SPACES,`Expect a newline between use specifiers`)}try{this.consume(`Expect a closing brace '}'`,v.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(v.RBRACE))for(K(this.advance());!this.isAtEnd();){let e=this.peek();if(this.check(v.RBRACE)||this.check(v.STRING_LITERAL)||this.check(v.IDENTIFIER)&&Za(e)||Ua(this.previous(),e))break;K(e),this.advance()}},this.synchronizeProgram=()=>{let e=this.peek();e.kind===v.EOF?this.logError(e,T.UNEXPECTED_EOF,`Unexpected EOF`):K(this.advance())},this.synchronizeElementDeclarationName=()=>{for(;!this.isAtEnd();){let e=this.peek();if(Ja(e)||this.check(v.COLON,v.LBRACE,v.LBRACKET))break;K(e),this.advance()}},this.synchronizeElementDeclarationAlias=()=>{for(;!this.isAtEnd();){let e=this.peek();if(this.check(v.COLON,v.LBRACE,v.LBRACKET))break;K(e),this.advance()}},this.blockExpression=this.contextStack.withContextDo(Kb.BlockExpression,()=>{let e={body:[]},t=()=>this.nodeFactory.create(U,e);try{this.consume(`Expect an opening brace '{'`,v.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(v.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 '}'`,v.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(v.RBRACE))for(K(this.advance());!this.isAtEnd();){let e=this.peek();if(this.check(v.RBRACE)||Ua(this.previous(),e))break;K(e),this.advance()}},this.tupleExpression=this.contextStack.withContextDo(Kb.GroupExpression,()=>{let e={elementList:[],commaList:[]},t=()=>this.nodeFactory.create($p,{groupOpenParen:e.tupleOpenParen,groupCloseParen:e.tupleCloseParen,expression:e.elementList[0]}),n=()=>this.nodeFactory.create(Zp,e);try{this.consume(`Expect an opening parenthesis '('`,v.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(v.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(v.RPAREN);)try{this.consume(`Expect a comma ','`,v.COMMA),e.commaList.push(this.previous()),e.elementList.push(this.normalExpression())}catch(t){if(!(t instanceof $))throw t;if(t.partialNode instanceof L&&e.elementList.push(t.partialNode),!this.canHandle(t))throw new $(t.token,n(),t.handlerContext);this.synchronizeTuple()}try{this.consume(`Expect a closing parenthesis ')'`,v.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(v.RPAREN,v.COMMA))break;K(e),this.advance()}},this.listExpression=this.contextStack.withContextDo(Kb.ListExpression,()=>{let e={elementList:[],commaList:[]},t=()=>this.nodeFactory.create(W,e);try{this.consume(`Expect an opening bracket '['`,v.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(v.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(v.RBRACKET);)try{this.consume(`Expect a comma ','`,v.COMMA),e.commaList.push(this.previous()),e.elementList.push(this.attribute())}catch(n){if(!(n instanceof $))throw n;if(n.partialNode instanceof L&&e.elementList.push(n.partialNode),!this.canHandle(n))throw new $(n.token,t(),n.handlerContext);this.synchronizeList()}try{this.consume(`Expect a closing bracket ']'`,v.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(v.COMMA,v.RBRACKET))break;K(e),this.advance()}},this.synchronizeAttributeName=()=>{for(;!this.isAtEnd();){let e=this.peek();if(this.check(v.COMMA,v.RBRACKET,v.COLON))break;K(e),this.advance()}},this.synchronizeAttributeValue=()=>{for(;!this.isAtEnd();){let e=this.peek();if(this.check(v.COMMA,v.RBRACKET))break;K(e),this.advance()}},this.source=e,this.tokens=t,this.nodeFactory=new Jb(n,r),this.filepath=r}isAtEnd(){return this.current>=this.tokens.length||this.tokens[this.current].kind===v.EOF}advance(){return this.isAtEnd()?g(this.tokens):this.tokens[this.current++]}peek(e=0){return e+this.current>=this.tokens.length?g(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(),T.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(K(this.peek()),this.logError(this.advance(),T.UNEXPECTED_TOKEN,e);!this.isAtEnd()&&!this.check(...t);)K(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(R,{body:e,eof:t,source:this.source});return this.gatherInvalid(),this.assignParents(r),new n({ast:r,tokens:this.tokens},this.errors)}assignParents(e){dm(e).forEach(t=>{t instanceof L&&(t.parentNode=e,this.assignParents(t))})}program(){let e=[];for(;!this.isAtEnd();)if(Ya(this.peek())||Qa(this.peek()))try{e.push(this.useDeclaration())}catch(t){if(!(t instanceof $))throw t;t.partialNode instanceof Wp&&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(Wp,e);if(this.advance(),e.useKeyword=this.previous(),this.peek().kind===v.WILDCARD)this.advance(),e.specifiers=this.nodeFactory.create(tm,{token:this.previous()});else try{e.specifiers=this.useSpecifierList()}catch(t){if(!(t instanceof $))throw t;t.partialNode instanceof Kp&&(e.specifiers=t.partialNode)}let n=e.specifiers instanceof tm?`'*'`:`specifier list`;return Za(this.peek())?e.fromKeyword=this.advance():this.logError(this.peek(),T.UNEXPECTED_TOKEN,`Expect 'from' after ${n}`),this.match(v.STRING_LITERAL)?e.importPath=this.previous():this.logError(this.peek(),T.UNEXPECTED_TOKEN,`Expect a string literal path`),t()}useSpecifier(){let e={},t=()=>this.nodeFactory.create(Gp,e);try{this.consume(`Expect an import kind specifier (e.g. table, enum)`,v.IDENTIFIER),e.importKind=this.previous()}catch(e){throw e instanceof $?new $(e.token,t(),e.handlerContext):e}if(this.check(v.IDENTIFIER,v.QUOTED_STRING))try{e.name=this.normalExpression()}catch(n){throw n instanceof $?(n.partialNode instanceof L&&(e.name=n.partialNode),new $(n.token,t(),n.handlerContext)):n}else e.importKind&&this.logError(this.peek(),T.UNEXPECTED_TOKEN,`Expect an element name`);if(Ja(this.peek())){e.asKeyword=this.advance();try{if(!this.check(v.IDENTIFIER,v.QUOTED_STRING))throw this.logError(this.peek(),T.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(z,e);try{this.consume(`Expect an identifier`,v.IDENTIFIER),e.type=this.previous()}catch(e){throw e instanceof $?new $(e.token,t(),e.handlerContext):e}if(Xa(e.type))try{this.consume(`Expect a metadata target kind`,v.IDENTIFIER),e.targetKind=this.previous()}catch(e){throw e instanceof $?new $(e.token,t(),e.handlerContext):e}if(!this.check(v.COLON,v.LBRACE,v.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(Ja(this.peek()))if(e.as=this.advance(),this.check(v.COLON,v.LBRACE,v.LBRACKET))this.logError(this.peek(),T.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(v.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 ':'`,v.LBRACE,v.COLON))return t();try{if(this.match(v.COLON)){e.bodyColon=this.previous();let t=this.expression();t instanceof z?(K(t),this.logError(t,T.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(z,e)}fieldDeclaration(){let e={},t=()=>this.nodeFactory.create(z,e);try{this.consume(`Expect an identifier`,v.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 ':'`,v.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 z?this.errors.push(new E(T.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(z,e)}expression(){let e={args:[]},t=()=>sm(e.callee,e.args,this.nodeFactory)??this.nodeFactory.create(H,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();){Wa(this.previous())||this.logError(n,T.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()||Ha(this.previous()))return!0;let e=this.peek().kind;return[v.RBRACE,v.RBRACKET,v.RPAREN,v.COMMA,v.COLON].includes(e)}commaExpression(){let e=this.check(v.COMMA)?this.nodeFactory.create(im,{prevToken:this.previous()}):this.normalExpression();if(!this.check(v.COMMA))return e;let t={elementList:[e],commaList:[]};do{if(t.commaList.push(this.advance()),this.shouldStopCommaExpression()){t.elementList.push(this.nodeFactory.create(im,{prevToken:this.previous()}));break}if(this.check(v.COMMA)){t.elementList.push(this.nodeFactory.create(im,{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(Qp,t),e.handlerContext)):e}}while(!this.shouldStopCommaExpression()&&this.check(v.COMMA));return this.nodeFactory.create(Qp,t)}shouldStopCommaExpression(){if(this.isAtEnd()||Ha(this.previous()))return!0;let e=this.peek().kind;return[v.RBRACE,v.LBRACE,v.RBRACKET,v.LBRACKET,v.RPAREN,v.LPAREN,v.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===v.LPAREN){let{left:r}=tx(n);if(r<e||Ua(this.previous(),n)&&!this.contextStack.isWithinGroupExpressionContext()&&!this.contextStack.isWithinListExpressionContext())break;try{t=this.nodeFactory.create(G,{callee:t,argumentList:this.tupleExpression()})}catch(e){throw e instanceof $?(t=this.nodeFactory.create(G,{callee:t,argumentList:e.partialNode}),new $(e.token,t,e.handlerContext)):e}}else if(n.kind===v.LBRACKET){if(Wa(this.previous()))break;try{t=this.nodeFactory.create(am,{expression:t,indexer:this.listExpression()})}catch(e){throw e instanceof $?(t=this.nodeFactory.create(am,{expression:t,indexer:e.partialNode}),new $(e.token,t,e.handlerContext)):e}}else if(Ba(n)){let r=n,i=tx(r);if(i.left!==null){if(i.left<=e)break;this.advance(),t=this.nodeFactory.create(Yp,{expression:t,op:r})}else{let n=Zb(r);if(n.left===null||n.left<=e)break;this.advance();try{t=this.nodeFactory.create(Jp,{leftExpression:t,op:r,rightExpression:r.value===`.`?this.extractOperand():this.expression_bp(n.right)})}catch(e){throw e instanceof $?(t=this.nodeFactory.create(Jp,{leftExpression:t,op:r,rightExpression:e.partialNode}),new $(e.token,t,e.handlerContext)):e}}}else break}return t}leftExpression_bp(){let e;if(Ba(this.peek())){let t={};t.op=this.peek();let n=$b(t.op);if(n.right===null)throw this.logError(t.op,T.UNKNOWN_PREFIX_OP,`Unexpected '${t.op.value}' in an expression`),new $(t.op,this.nodeFactory.create(im,{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(V,t),e.handlerContext)):e}e=this.nodeFactory.create(V,t)}else if(e=this.extractOperand(),e instanceof im)throw new $(this.peek(),this.nodeFactory.create(im,{prevToken:this.peek()}),this.contextStack.findHandlerContext(this.tokens,this.current));return e}extractOperand(){return this.check(v.WILDCARD)?this.wildcardExpression():this.check(v.NUMERIC_LITERAL,v.STRING_LITERAL,v.COLOR_LITERAL,v.QUOTED_STRING,v.IDENTIFIER)?this.primaryExpression():this.check(v.FUNCTION_EXPRESSION)?this.functionExpression():this.check(v.LBRACKET)?this.listExpression():this.check(v.LBRACE)?this.blockExpression():this.check(v.LPAREN)?this.tupleExpression():(this.peek().kind===v.EOF?this.logError(this.peek(),T.UNEXPECTED_EOF,`Unexpected EOF`):this.logError(this.peek(),T.INVALID_OPERAND,`Invalid start of operand "${this.peek().value}"`),this.nodeFactory.create(im,{prevToken:this.previous()}))}functionExpression(){let e={};try{this.consume(`Expect a function expression`,v.FUNCTION_EXPRESSION),e.value=this.previous()}catch(t){throw t instanceof $?new $(t.token,this.nodeFactory.create(Xp,e),t.handlerContext):t}return this.nodeFactory.create(Xp,e)}wildcardExpression(){return this.advance(),this.nodeFactory.create(tm,{token:this.previous()})}canBeField(){return this.peek().kind===v.IDENTIFIER&&this.peek(1).kind===v.COLON}primaryExpression(){if(this.match(v.COLOR_LITERAL,v.STRING_LITERAL,v.NUMERIC_LITERAL))return this.nodeFactory.create(rm,{expression:this.nodeFactory.create(em,{literal:this.previous()})});if(this.match(v.QUOTED_STRING,v.IDENTIFIER))return this.nodeFactory.create(rm,{expression:this.nodeFactory.create(nm,{variable:this.previous()})});throw this.logError(this.peek(),T.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(v.COLON,v.RBRACKET,v.COMMA)){let t=this.peek();this.logError(t,T.EMPTY_ATTRIBUTE_NAME,`Expect a non-empty attribute name`),e.name=this.nodeFactory.create(qp,{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(B,e),t.handlerContext);this.synchronizeAttributeName()}return this.match(v.COLON)&&(e.colon=this.previous(),e.value=this.attributeValue()),this.nodeFactory.create(B,e)}attributeValue(){let e;try{e=this.peek().kind===v.IDENTIFIER&&this.peek(1).kind===v.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!==v.IDENTIFIER)return this.primaryExpression();for(;!this.isAtEnd()&&!this.check(v.COLON,v.COMMA,v.RBRACKET);)try{this.consume(`Expect an identifier`,v.IDENTIFIER),e.push(this.previous())}catch(t){throw t instanceof $?new $(t.token,this.nodeFactory.create(qp,{identifiers:e}),t.handlerContext):t}return this.nodeFactory.create(qp,{identifiers:e})}logError(e,t,n){this.errors.push(new E(t,n,e))}},Xb={"+":{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 Zb(e){return Xb[e.value]||{left:null,right:null}}var Qb={"+":{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 $b(e){return Qb[e.value]||{left:null,right:null}}var ex={"(":{left:14,right:null}};function tx(e){return ex[e.value]||{left:null,right:null}}function nx(e){let t=this.getSource(e);return new Gb(t??``,e).lex().chain(n=>new Yb(t??``,n,this.nodeIdGenerator,e).parse()).map(({ast:t,tokens:n})=>({ast:t,tokens:n,path:e}))}function rx(){let e=Cg(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 ix(e){let n=this.symbolMembers(e).getFiltered(t),r=new Map;if(n)for(let e of n){let t=e instanceof Bp?qh.visibleName(this,e)?.at(-1):e.name;if(t===void 0)continue;let n=r.get(t);n||(n=[],r.set(t,n)),n.push(e)}return r}function ax(e,n,r){let i;if(e instanceof xp)i=e;else{let n=this.nodeSymbol(e).getFiltered(t);if(!(n instanceof xp))return;i=n}let a=Array.isArray(n)?n:[n],o=this.symbolMembersLookupMap(i).get(r);if(o)return o.find(e=>!(a.length===1&&e.kind!==a[0]||a.length>1&&!a.includes(e.kind)))}function ox(e){let t=e.originalSymbol;return wg(this).map(n=>n.filter(n=>n instanceof zp&&n.originalSymbol===t&&n!==e))}function sx(){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=>{if(e instanceof Em){let t=e.target(this);if(!t)return;let r=t.intern(),i=n.get(r);i||(i=[],n.set(r,i)),i.push(e);return}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(O(e)){let n=this.nodeReferee(e).getFiltered(t);n&&a(n,e);return}if(e instanceof Zp&&k(e.parentNode)&&e.parentNode.rightExpression===e){let n=e.parentNode.leftExpression;if(n){let e=Ff(n);if(e){let n=this.nodeReferee(e).getFiltered(t);n&&a(n,e)}}}let n=this.nodeMetadata(e).getFiltered(t);n&&o(n);for(let t of dm(e))t instanceof L&&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 Sp&&t.isKind(I.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 cx(e){return this.resolutionIndex().parents.get(e.intern())??[]}function lx(e){return this.resolutionIndex().references.get(e.intern())??[]}function ux(e){return this.resolutionIndex().metadata.get(e.intern())??[]}function dx(e){let t=e.originalSymbol;return wg(this).map(n=>n.filter(n=>n instanceof Bp&&n.originalSymbol===t&&n!==e))}function fx(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 px(e){if(typeof e!=`string`)return{schema:e.schema??`public`,table:e.table};let t=Sg(e);if(t.length===0)return{schema:y,table:``};if(t.length===1)return{schema:y,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 mx(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,I.Table,i)??null;let s=e.lookupMembers(o,I.Schema,r);return s?e.lookupMembers(s,I.Table,i)??null:null}function hx(e){return e.startsWith(`"`)&&e.endsWith(`"`)&&e.length>=2?e.slice(1,-1):e}function gx(e,t){if(!e||!(e instanceof z))return!1;let n=e.name;return n?t.substring(n.start,n.end).includes(`"`):!1}function _x(e,t,n){let r=!_g(t),i=!_g(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 vx(e,t,n,r,i,a){return n===i&&r===a?!1:mx(e,t,i,a)!==null}function yx(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 hx(n.substring(i,a))===t?{start:i,end:e.end}:null}function bx(e){return e.schema===`public`?e.formattedTable:`${e.formattedSchema}.${e.formattedTable}`}function xx(e,t,n,r,i){let a=[],o=new Set,s=bx(r);for(let r of e){if(hx(i.substring(r.start,r.end))!==n)continue;let e=yx(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 Sx(e,n,r){let i=px(n),a=px(r),o=i.schema,s=i.table,c=a.schema,l=a.table,u=mx(this,e,o,s);if(!u||u instanceof zp||vx(this,e,o,s,c,l))return new Map;if(u instanceof Bp&&u.useSpecifierDeclaration instanceof Gp&&u.useSpecifierDeclaration.alias){let n=u.useSpecifierDeclaration;if(this.nodeAlias(n).getFiltered(t)===s)return Cx(this,e,n,u,c,l)}return wx(this,u,o,s,c,l)}function Cx(e,t,n,r,i,a){let o=e.getSource(t)??``;if(!n.alias)return new Map;let s=_x(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,fx(o,c)]])}function wx(e,t,n,r,i,a){let o=t.originalSymbol,s=o.declaration;if(!s||!(s instanceof z))return new Map;let c=s.filepath;if(!c)return new Map;let l=_x(i,a,gx(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:bx(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 xx([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,fx(r,n))}return m}function Tx(e){let t=[],n=new Gb(e,Eo).lex();if(n.getErrors().length>0)return t;let i=new Yb(e,n.getValue(),new Hp,Eo).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?M(e.name)??[]:[],r=n.length>0?n[n.length-1]:``;t.push({name:r,startIndex:e.start,endIndex:e.end})}return t}function Ex(e,t,n){e.push(` ${t} {`),n.forEach(t=>e.push(` ${t}`)),e.push(` }`)}function Dx(e,t){e.push(` ${t} { * }`)}function Ox(e){return e==null?`null`:e.length===0?`empty`:`items`}function kx(e,t){let n=`DiagramView ${vg(e)} {`,r=e=>vg(e.name),i=t?.tables?.map(e=>{let t=vg(e.name);return e.schemaName===`public`?t:`${vg(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:Ox(t.tables),tableGroups:Ox(t.tableGroups),schemas:Ox(t.schemas),stickyNotes:Ox(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`&&Ex(d,`Tables`,i),c.tableGroups===`items`&&Ex(d,`TableGroups`,a),c.schemas===`items`&&Ex(d,`Schemas`,o)):u&&Dx(d,`Tables`),c.stickyNotes===`items`?Ex(d,`Notes`,s):c.stickyNotes===`empty`&&Dx(d,`Notes`),d.push(`}`),d.join(`
21
- `)}function Ax(e,t,n){let r=this.getSource(e)??``,i=n??Tx(r),a=[];for(let e of t){let t=jx(r,e,i);a.push(...t)}return a.sort((e,t)=>t.start-e.start),{newDbml:fx(r,a,!0),edits:a}}function jx(e,t,n){switch(t.operation){case`create`:return Mx(e,t,n);case`update`:return Nx(e,t,n);case`delete`:return Px(e,t,n);default:return[]}}function Mx(e,t,n){if(n.find(e=>e.name===t.name))return Nx(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()||!of(this.peek()))return this.errors.push(new E(T.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`,Va.create(v.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]}}},vx=function(e){return e[e.ListExpression=0]=`ListExpression`,e[e.GroupExpression=1]=`GroupExpression`,e[e.BlockExpression=2]=`BlockExpression`,e}({}),yx=class{constructor(){this.stack=[],this.numberOfNestedLParens=0,this.numberOfNestedLBrackets=0,this.numberOfNestedLBraces=0}push(e){this.stack.push(e),e===0&&(this.numberOfNestedLBrackets+=1),e===1&&(this.numberOfNestedLParens+=1),e===2&&(this.numberOfNestedLBraces+=1)}pop(){let e=this.stack.pop();return e===0&&--this.numberOfNestedLBrackets,e===1&&--this.numberOfNestedLParens,e===2&&--this.numberOfNestedLBraces,e}top(){return g(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 v.COMMA:if(this.isWithinGroupExpressionContext()||this.isWithinListExpressionContext())return[...this.stack].reverse().find(e=>[1,0].includes(e));break;case v.RPAREN:if(this.isWithinGroupExpressionContext())return 1;break;case v.RBRACE:if(this.isWithinBlockExpressionContext())return 2;break;case v.RBRACKET:if(this.isWithinListExpressionContext())return 0;break;default:break}}},bx=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}},xx=class{constructor(e,t,n,r){this.current=0,this.errors=[],this.contextStack=new yx,this.useSpecifierList=this.contextStack.withContextDo(vx.BlockExpression,()=>{let e={specifiers:[]},t=()=>this.nodeFactory.create(qp,e);try{this.consume(`Expect an opening brace '{'`,v.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(v.RBRACE);){try{e.specifiers.push(this.useSpecifier())}catch(n){if(!(n instanceof $))throw n;if(n.partialNode instanceof Kp&&e.specifiers.push(n.partialNode),!this.canHandle(n))throw new $(n.token,t(),n.handlerContext);this.synchronizeUseSpecifierList()}if(this.check(v.IDENTIFIER)&&Za(this.peek()))break;!Ha(this.previous())&&!this.check(v.RBRACE)&&this.logError(this.peek(),T.MISSING_SPACES,`Expect a newline between use specifiers`)}try{this.consume(`Expect a closing brace '}'`,v.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(v.RBRACE))for(G(this.advance());!this.isAtEnd();){let e=this.peek();if(this.check(v.RBRACE)||this.check(v.STRING_LITERAL)||this.check(v.IDENTIFIER)&&Za(e)||Ua(this.previous(),e))break;G(e),this.advance()}},this.synchronizeProgram=()=>{let e=this.peek();e.kind===v.EOF?this.logError(e,T.UNEXPECTED_EOF,`Unexpected EOF`):G(this.advance())},this.synchronizeElementDeclarationName=()=>{for(;!this.isAtEnd();){let e=this.peek();if(Ja(e)||this.check(v.COLON,v.LBRACE,v.LBRACKET))break;G(e),this.advance()}},this.synchronizeElementDeclarationAlias=()=>{for(;!this.isAtEnd();){let e=this.peek();if(this.check(v.COLON,v.LBRACE,v.LBRACKET))break;G(e),this.advance()}},this.blockExpression=this.contextStack.withContextDo(vx.BlockExpression,()=>{let e={body:[]},t=()=>this.nodeFactory.create(H,e);try{this.consume(`Expect an opening brace '{'`,v.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(v.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 '}'`,v.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(v.RBRACE))for(G(this.advance());!this.isAtEnd();){let e=this.peek();if(this.check(v.RBRACE)||Ua(this.previous(),e))break;G(e),this.advance()}},this.tupleExpression=this.contextStack.withContextDo(vx.GroupExpression,()=>{let e={elementList:[],commaList:[]},t=()=>this.nodeFactory.create(em,{groupOpenParen:e.tupleOpenParen,groupCloseParen:e.tupleCloseParen,expression:e.elementList[0]}),n=()=>this.nodeFactory.create(Qp,e);try{this.consume(`Expect an opening parenthesis '('`,v.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(v.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(v.RPAREN);)try{this.consume(`Expect a comma ','`,v.COMMA),e.commaList.push(this.previous()),e.elementList.push(this.normalExpression())}catch(t){if(!(t instanceof $))throw t;if(t.partialNode instanceof I&&e.elementList.push(t.partialNode),!this.canHandle(t))throw new $(t.token,n(),t.handlerContext);this.synchronizeTuple()}try{this.consume(`Expect a closing parenthesis ')'`,v.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(v.RPAREN,v.COMMA))break;G(e),this.advance()}},this.listExpression=this.contextStack.withContextDo(vx.ListExpression,()=>{let e={elementList:[],commaList:[]},t=()=>this.nodeFactory.create(U,e);try{this.consume(`Expect an opening bracket '['`,v.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(v.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(v.RBRACKET);)try{this.consume(`Expect a comma ','`,v.COMMA),e.commaList.push(this.previous()),e.elementList.push(this.attribute())}catch(n){if(!(n instanceof $))throw n;if(n.partialNode instanceof I&&e.elementList.push(n.partialNode),!this.canHandle(n))throw new $(n.token,t(),n.handlerContext);this.synchronizeList()}try{this.consume(`Expect a closing bracket ']'`,v.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(v.COMMA,v.RBRACKET))break;G(e),this.advance()}},this.synchronizeAttributeName=()=>{for(;!this.isAtEnd();){let e=this.peek();if(this.check(v.COMMA,v.RBRACKET,v.COLON))break;G(e),this.advance()}},this.synchronizeAttributeValue=()=>{for(;!this.isAtEnd();){let e=this.peek();if(this.check(v.COMMA,v.RBRACKET))break;G(e),this.advance()}},this.source=e,this.tokens=t,this.nodeFactory=new bx(n,r),this.filepath=r}isAtEnd(){return this.current>=this.tokens.length||this.tokens[this.current].kind===v.EOF}advance(){return this.isAtEnd()?g(this.tokens):this.tokens[this.current++]}peek(e=0){return e+this.current>=this.tokens.length?g(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(),T.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(G(this.peek()),this.logError(this.advance(),T.UNEXPECTED_TOKEN,e);!this.isAtEnd()&&!this.check(...t);)G(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(L,{body:e,eof:t,source:this.source});return this.gatherInvalid(),this.assignParents(r),new n({ast:r,tokens:this.tokens},this.errors)}assignParents(e){fm(e).forEach(t=>{t instanceof I&&(t.parentNode=e,this.assignParents(t))})}program(){let e=[];for(;!this.isAtEnd();)if(Ya(this.peek())||Qa(this.peek()))try{e.push(this.useDeclaration())}catch(t){if(!(t instanceof $))throw t;t.partialNode instanceof Gp&&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(Gp,e);if(this.advance(),e.useKeyword=this.previous(),this.peek().kind===v.WILDCARD)this.advance(),e.specifiers=this.nodeFactory.create(nm,{token:this.previous()});else try{e.specifiers=this.useSpecifierList()}catch(t){if(!(t instanceof $))throw t;t.partialNode instanceof qp&&(e.specifiers=t.partialNode)}let n=e.specifiers instanceof nm?`'*'`:`specifier list`;return Za(this.peek())?e.fromKeyword=this.advance():this.logError(this.peek(),T.UNEXPECTED_TOKEN,`Expect 'from' after ${n}`),this.match(v.STRING_LITERAL)?e.importPath=this.previous():this.logError(this.peek(),T.UNEXPECTED_TOKEN,`Expect a string literal path`),t()}useSpecifier(){let e={},t=()=>this.nodeFactory.create(Kp,e);try{this.consume(`Expect an import kind specifier (e.g. table, enum)`,v.IDENTIFIER),e.importKind=this.previous()}catch(e){throw e instanceof $?new $(e.token,t(),e.handlerContext):e}if(this.check(v.IDENTIFIER,v.QUOTED_STRING))try{e.name=this.normalExpression()}catch(n){throw n instanceof $?(n.partialNode instanceof I&&(e.name=n.partialNode),new $(n.token,t(),n.handlerContext)):n}else e.importKind&&this.logError(this.peek(),T.UNEXPECTED_TOKEN,`Expect an element name`);if(Ja(this.peek())){e.asKeyword=this.advance();try{if(!this.check(v.IDENTIFIER,v.QUOTED_STRING))throw this.logError(this.peek(),T.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(R,e);try{this.consume(`Expect an identifier`,v.IDENTIFIER),e.type=this.previous()}catch(e){throw e instanceof $?new $(e.token,t(),e.handlerContext):e}if(Xa(e.type))try{this.consume(`Expect a metadata target kind`,v.IDENTIFIER),e.targetKind=this.previous()}catch(e){throw e instanceof $?new $(e.token,t(),e.handlerContext):e}if(!this.check(v.COLON,v.LBRACE,v.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(Ja(this.peek()))if(e.as=this.advance(),this.check(v.COLON,v.LBRACE,v.LBRACKET))this.logError(this.peek(),T.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(v.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 ':'`,v.LBRACE,v.COLON))return t();try{if(this.match(v.COLON)){e.bodyColon=this.previous();let t=this.expression();t instanceof R?(G(t),this.logError(t,T.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(R,e)}fieldDeclaration(){let e={},t=()=>this.nodeFactory.create(R,e);try{this.consume(`Expect an identifier`,v.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 ':'`,v.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 R?this.errors.push(new E(T.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(R,e)}expression(){let e={args:[]},t=()=>cm(e.callee,e.args,this.nodeFactory)??this.nodeFactory.create(V,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();){Wa(this.previous())||this.logError(n,T.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()||Ha(this.previous()))return!0;let e=this.peek().kind;return[v.RBRACE,v.RBRACKET,v.RPAREN,v.COMMA,v.COLON].includes(e)}commaExpression(){let e=this.check(v.COMMA)?this.nodeFactory.create(am,{prevToken:this.previous()}):this.normalExpression();if(!this.check(v.COMMA))return e;let t={elementList:[e],commaList:[]};do{if(t.commaList.push(this.advance()),this.shouldStopCommaExpression()){t.elementList.push(this.nodeFactory.create(am,{prevToken:this.previous()}));break}if(this.check(v.COMMA)){t.elementList.push(this.nodeFactory.create(am,{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($p,t),e.handlerContext)):e}}while(!this.shouldStopCommaExpression()&&this.check(v.COMMA));return this.nodeFactory.create($p,t)}shouldStopCommaExpression(){if(this.isAtEnd()||Ha(this.previous()))return!0;let e=this.peek().kind;return[v.RBRACE,v.LBRACE,v.RBRACKET,v.LBRACKET,v.RPAREN,v.LPAREN,v.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===v.LPAREN){let{left:r}=Dx(n);if(r<e||Ua(this.previous(),n)&&!this.contextStack.isWithinGroupExpressionContext()&&!this.contextStack.isWithinListExpressionContext())break;try{t=this.nodeFactory.create(W,{callee:t,argumentList:this.tupleExpression()})}catch(e){throw e instanceof $?(t=this.nodeFactory.create(W,{callee:t,argumentList:e.partialNode}),new $(e.token,t,e.handlerContext)):e}}else if(n.kind===v.LBRACKET){if(Wa(this.previous()))break;try{t=this.nodeFactory.create(om,{expression:t,indexer:this.listExpression()})}catch(e){throw e instanceof $?(t=this.nodeFactory.create(om,{expression:t,indexer:e.partialNode}),new $(e.token,t,e.handlerContext)):e}}else if(Ba(n)){let r=n,i=Dx(r);if(i.left!==null){if(i.left<=e)break;this.advance(),t=this.nodeFactory.create(Xp,{expression:t,op:r})}else{let n=Cx(r);if(n.left===null||n.left<=e)break;this.advance();try{t=this.nodeFactory.create(Yp,{leftExpression:t,op:r,rightExpression:r.value===`.`?this.extractOperand():this.expression_bp(n.right)})}catch(e){throw e instanceof $?(t=this.nodeFactory.create(Yp,{leftExpression:t,op:r,rightExpression:e.partialNode}),new $(e.token,t,e.handlerContext)):e}}}else break}return t}leftExpression_bp(){let e;if(Ba(this.peek())){let t={};t.op=this.peek();let n=Tx(t.op);if(n.right===null)throw this.logError(t.op,T.UNKNOWN_PREFIX_OP,`Unexpected '${t.op.value}' in an expression`),new $(t.op,this.nodeFactory.create(am,{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(B,t),e.handlerContext)):e}e=this.nodeFactory.create(B,t)}else if(e=this.extractOperand(),e instanceof am)throw new $(this.peek(),this.nodeFactory.create(am,{prevToken:this.peek()}),this.contextStack.findHandlerContext(this.tokens,this.current));return e}extractOperand(){return this.check(v.WILDCARD)?this.wildcardExpression():this.check(v.NUMERIC_LITERAL,v.STRING_LITERAL,v.COLOR_LITERAL,v.QUOTED_STRING,v.IDENTIFIER)?this.primaryExpression():this.check(v.FUNCTION_EXPRESSION)?this.functionExpression():this.check(v.LBRACKET)?this.listExpression():this.check(v.LBRACE)?this.blockExpression():this.check(v.LPAREN)?this.tupleExpression():(this.peek().kind===v.EOF?this.logError(this.peek(),T.UNEXPECTED_EOF,`Unexpected EOF`):this.logError(this.peek(),T.INVALID_OPERAND,`Invalid start of operand "${this.peek().value}"`),this.nodeFactory.create(am,{prevToken:this.previous()}))}functionExpression(){let e={};try{this.consume(`Expect a function expression`,v.FUNCTION_EXPRESSION),e.value=this.previous()}catch(t){throw t instanceof $?new $(t.token,this.nodeFactory.create(Zp,e),t.handlerContext):t}return this.nodeFactory.create(Zp,e)}wildcardExpression(){return this.advance(),this.nodeFactory.create(nm,{token:this.previous()})}canBeField(){return this.peek().kind===v.IDENTIFIER&&this.peek(1).kind===v.COLON}primaryExpression(){if(this.match(v.COLOR_LITERAL,v.STRING_LITERAL,v.NUMERIC_LITERAL))return this.nodeFactory.create(im,{expression:this.nodeFactory.create(tm,{literal:this.previous()})});if(this.match(v.QUOTED_STRING,v.IDENTIFIER))return this.nodeFactory.create(im,{expression:this.nodeFactory.create(rm,{variable:this.previous()})});throw this.logError(this.peek(),T.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(v.COLON,v.RBRACKET,v.COMMA)){let t=this.peek();this.logError(t,T.EMPTY_ATTRIBUTE_NAME,`Expect a non-empty attribute name`),e.name=this.nodeFactory.create(Jp,{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(z,e),t.handlerContext);this.synchronizeAttributeName()}return this.match(v.COLON)&&(e.colon=this.previous(),e.value=this.attributeValue()),this.nodeFactory.create(z,e)}attributeValue(){let e;try{e=this.peek().kind===v.IDENTIFIER&&this.peek(1).kind===v.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!==v.IDENTIFIER)return this.primaryExpression();for(;!this.isAtEnd()&&!this.check(v.COLON,v.COMMA,v.RBRACKET);)try{this.consume(`Expect an identifier`,v.IDENTIFIER),e.push(this.previous())}catch(t){throw t instanceof $?new $(t.token,this.nodeFactory.create(Jp,{identifiers:e}),t.handlerContext):t}return this.nodeFactory.create(Jp,{identifiers:e})}logError(e,t,n){this.errors.push(new E(t,n,e))}},Sx={"+":{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 Cx(e){return Sx[e.value]||{left:null,right:null}}var wx={"+":{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 Tx(e){return wx[e.value]||{left:null,right:null}}var Ex={"(":{left:14,right:null}};function Dx(e){return Ex[e.value]||{left:null,right:null}}function Ox(e){let t=this.getSource(e);return new _x(t??``,e).lex().chain(n=>new xx(t??``,n,this.nodeIdGenerator,e).parse()).map(({ast:t,tokens:n})=>({ast:t,tokens:n,path:e}))}function kx(){let e=Ag(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 Ax(e){let n=this.symbolMembers(e).getFiltered(t),r=new Map;if(n)for(let e of n){let t=e instanceof Vp?Jh.visibleName(this,e)?.at(-1):e.name;if(t===void 0)continue;let n=r.get(t);n||(n=[],r.set(t,n)),n.push(e)}return r}function jx(e,n,r){let i;if(e instanceof Sp)i=e;else{let n=this.nodeSymbol(e).getFiltered(t);if(!(n instanceof Sp))return;i=n}let a=Array.isArray(n)?n:[n],o=this.symbolMembersLookupMap(i).get(r);if(o)return o.find(e=>!(a.length===1&&e.kind!==a[0]||a.length>1&&!a.includes(e.kind)))}function Mx(e){let t=e.originalSymbol;return jg(this).map(n=>n.filter(n=>n instanceof Bp&&n.originalSymbol===t&&n!==e))}function Nx(){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=>{if(e instanceof Dm){let t=e.target(this);if(!t)return;let r=t.intern(),i=n.get(r);i||(i=[],n.set(r,i)),i.push(e);return}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(D(e)){let n=this.nodeReferee(e).getFiltered(t);n&&a(n,e);return}if(e instanceof Qp&&O(e.parentNode)&&e.parentNode.rightExpression===e){let n=e.parentNode.leftExpression;if(n){let e=If(n);if(e){let n=this.nodeReferee(e).getFiltered(t);n&&a(n,e)}}}let n=this.nodeMetadata(e).getFiltered(t);n&&o(n);for(let t of fm(e))t instanceof I&&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 Cp&&t.isKind(F.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 Px(e){return this.resolutionIndex().parents.get(e.intern())??[]}function Fx(e){return this.resolutionIndex().references.get(e.intern())??[]}function Ix(e){return this.resolutionIndex().metadata.get(e.intern())??[]}function Lx(e){let t=e.originalSymbol;return jg(this).map(n=>n.filter(n=>n instanceof Vp&&n.originalSymbol===t&&n!==e))}function Rx(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 zx(e){if(typeof e!=`string`)return{schema:e.schema??`public`,table:e.table};let t=kg(e);if(t.length===0)return{schema:y,table:``};if(t.length===1)return{schema:y,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 Bx(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,F.Table,i)??null;let s=e.lookupMembers(o,F.Schema,r);return s?e.lookupMembers(s,F.Table,i)??null:null}function Vx(e){return e.startsWith(`"`)&&e.endsWith(`"`)&&e.length>=2?e.slice(1,-1):e}function Hx(e,t){if(!e||!(e instanceof R))return!1;let n=e.name;return n?t.substring(n.start,n.end).includes(`"`):!1}function Ux(e,t,n){let r=!wg(t),i=!wg(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 Wx(e,t,n,r,i,a){return n===i&&r===a?!1:Bx(e,t,i,a)!==null}function Gx(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 Vx(n.substring(i,a))===t?{start:i,end:e.end}:null}function Kx(e){return e.schema===`public`?e.formattedTable:`${e.formattedSchema}.${e.formattedTable}`}function qx(e,t,n,r,i){let a=[],o=new Set,s=Kx(r);for(let r of e){if(Vx(i.substring(r.start,r.end))!==n)continue;let e=Gx(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 Jx(e,n,r){let i=zx(n),a=zx(r),o=i.schema,s=i.table,c=a.schema,l=a.table,u=Bx(this,e,o,s);if(!u||u instanceof Bp||Wx(this,e,o,s,c,l))return new Map;if(u instanceof Vp&&u.useSpecifierDeclaration instanceof Kp&&u.useSpecifierDeclaration.alias){let n=u.useSpecifierDeclaration;if(this.nodeAlias(n).getFiltered(t)===s)return Yx(this,e,n,u,c,l)}return Xx(this,u,o,s,c,l)}function Yx(e,t,n,r,i,a){let o=e.getSource(t)??``;if(!n.alias)return new Map;let s=Ux(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,Rx(o,c)]])}function Xx(e,t,n,r,i,a){let o=t.originalSymbol,s=o.declaration;if(!s||!(s instanceof R))return new Map;let c=s.filepath;if(!c)return new Map;let l=Ux(i,a,Hx(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:Kx(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 qx([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,Rx(r,n))}return m}function Zx(e){let t=[],n=new _x(e,Eo).lex();if(n.getErrors().length>0)return t;let i=new xx(e,n.getValue(),new Up,Eo).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?j(e.name)??[]:[],r=n.length>0?n[n.length-1]:``;t.push({name:r,startIndex:e.start,endIndex:e.end})}return t}function Qx(e,t,n){e.push(` ${t} {`),n.forEach(t=>e.push(` ${t}`)),e.push(` }`)}function $x(e,t){e.push(` ${t} { * }`)}function eS(e){return e==null?`null`:e.length===0?`empty`:`items`}function tS(e,t){let n=`DiagramView ${Tg(e)} {`,r=e=>Tg(e.name),i=t?.tables?.map(e=>{let t=Tg(e.name);return e.schemaName===`public`?t:`${Tg(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:eS(t.tables),tableGroups:eS(t.tableGroups),schemas:eS(t.schemas),stickyNotes:eS(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`&&Qx(d,`Tables`,i),c.tableGroups===`items`&&Qx(d,`TableGroups`,a),c.schemas===`items`&&Qx(d,`Schemas`,o)):u&&$x(d,`Tables`),c.stickyNotes===`items`?Qx(d,`Notes`,s):c.stickyNotes===`empty`&&$x(d,`Notes`),d.push(`}`),d.join(`
21
+ `)}function nS(e,t,n){let r=this.getSource(e)??``,i=n??Zx(r),a=[];for(let e of t){let t=rS(r,e,i);a.push(...t)}return a.sort((e,t)=>t.start-e.start),{newDbml:Rx(r,a,!0),edits:a}}function rS(e,t,n){switch(t.operation){case`create`:return iS(e,t,n);case`update`:return aS(e,t,n);case`delete`:return oS(e,t,n);default:return[]}}function iS(e,t,n){if(n.find(e=>e.name===t.name))return aS(e,t,n);let r=`
22
22
 
23
- `+kx(t.name,t.visibleEntities)+`
24
- `;return[{start:e.length,end:e.length,newText:r}]}function Nx(e,t,n){let r=n.find(e=>e.name===t.name);if(!r)return[];let i=[];if(t.newName||t.visibleEntities){let e=kx(t.newName||t.name,t.visibleEntities);i.push({start:r.startIndex,end:r.endIndex,newText:e})}return i}function Px(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]===`
23
+ `+tS(t.name,t.visibleEntities)+`
24
+ `;return[{start:e.length,end:e.length,newText:r}]}function aS(e,t,n){let r=n.find(e=>e.name===t.name);if(!r)return[];let i=[];if(t.newName||t.visibleEntities){let e=tS(t.newName||t.name,t.visibleEntities);i.push({start:r.startIndex,end:r.endIndex,newText:e})}return i}function oS(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]===`
25
25
  `;){i--,i>0&&e[i-1]===`\r`&&i--;let t=e.lastIndexOf(`
26
26
  `,i-1)+1;if(e.substring(t,i).trim()!==``){i=r.startIndex,i>0&&e[i-1]===`
27
27
  `&&(i--,i>0&&e[i-1]===`\r`&&i--);break}}return a<e.length&&e[a]===`\r`&&a++,a<e.length&&e[a]===`
28
- `&&a++,[{start:i,end:a,newText:``}]}var Fx=Symbol(`COMPUTING`),Ix=class{constructor(e){this.layout=e,this.nodeIdGenerator=new Hp,this.symbolIdGenerator=new bp,this.symbolFactory=new eo(this.symbolIdGenerator),this.sourceSnapshot=new Map,this.globalCache=new Map,this.globallyQuerying=!1,this.localCache=new Map,this.parseFile=this.localQuery(nx),this.parseProject=this.globalQuery(rx),this.validateNode=this.localQuery($_),this.validateFile=this.localQuery(Wb),this.nodeFullname=this.localQuery(tv),this.nodeAlias=this.localQuery(nv),this.nodeSettings=this.localQuery(ev),this.canonicalName=this.globalQuery(Tb),this.bindNode=this.globalQuery(l_),this.bindFile=this.globalQuery(Bb),this.bindProject=this.globalQuery(Vb),this.interpretSymbol=this.globalQuery(d_),this.interpretMetadata=this.globalQuery(f_),this.interpretFile=this.globalQuery(Hb),this.interpretProject=this.globalQuery(Ub),this.nodeSymbol=this.globalQuery(o_),this.nodeMetadata=this.globalQuery(u_),this.symbolMembers=this.globalQuery(s_),this.symbolMembersLookupMap=this.globalQuery(ix),this.lookupMembers=this.globalQuery(ax),this.nodeReferee=this.globalQuery(c_),this.resolutionIndex=this.globalQuery(sx),this.symbolReferences=this.globalQuery(lx),this.symbolParent=this.globalQuery(cx),this.symbolMetadata=this.globalQuery(ux),this.symbolAliases=this.globalQuery(ox),this.symbolUses=this.globalQuery(dx),this.fileDependencies=this.localQuery(Ob),this.reachableFiles=this.globalQuery(Ab),this.usableMembers=this.globalQuery(Xh),this.nodeAtPosition=this.localQuery(zb),this.renameTable=Sx.bind(this),this.syncDiagramView=Ax.bind(this),this.token={invalidStream:this.localQuery(Rb),flatStream:this.localQuery(Lb)},this.parse={source:e=>this.getSource(e)||``,ast:(e=Eo)=>jb.call(this,e),errors:(e=Eo)=>Mb.call(this,e),warnings:(e=Eo)=>Nb.call(this,e),tokens:(e=Eo)=>Pb.call(this,e),rawDb:(e=Eo)=>Fb.call(this,e),publicSymbolTable:(e=Eo)=>Ib.call(this,e)},this.container={stack:this.localQuery(bb),token:this.localQuery(xb),element:this.localQuery(Sb),scope:this.localQuery(Cb),scopeKind:this.localQuery(wb)}}getSource(e){return this.layout.getSource(e)}cleanStaleLocalCache(e){let t=this.layout.getSource(e),n=e.absolute,r=this.sourceSnapshot.get(n);r===void 0?this.sourceSnapshot.set(n,t):r!==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 kb(this,e))this.cleanStaleLocalCache(t);t&&this.globalCache.clear()}globalQuery(e){let t=Symbol();return((...n)=>{let r=!this.globallyQuerying;r&&(this.globallyQuerying=!0,this.cleanStaleGlobalCache());try{let r=this.globalCache.get(t);r||(r=new Map,this.globalCache.set(t,r));let i=n.length===0?``:n.length===1?Fm(n[0]):n.map(e=>Fm(e)).join(`\0`),a=r.get(i);if(a){if(a===Fx)throw Error(`Cycle detected in query: ${e.name}(${i})`);return a}r.set(i,Fx);try{let t=e.apply(this,n);return r.set(i,t),t}catch(e){throw r.delete(i),e}}finally{r&&(this.globallyQuerying=!1)}})}localQuery(e){let t=Symbol();return((...n)=>{let[r]=n,i=r instanceof L?r.filepath:r;this.cleanStaleLocalCache(i);let a=i.intern(),o=n.length===0?``:n.length===1?Fm(n[0]):n.map(e=>Fm(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===Fx)throw Error(`Cycle detected in query: ${e.name}(${a}, ${o})`);return t}c.set(o,Fx);try{let t=e.apply(this,n);return c.set(o,t),t}catch(e){throw c.delete(o),e}})}findDiagramViewBlocks(e){return Tx(this.getSource(e)??``)}initMonacoServices(e){let t=e?.autocompletion?.triggerCharacters??[];return{definitionProvider:new dy(this),referenceProvider:new py(this),autocompletionProvider:new By(this,{triggerCharacters:t}),diagnosticsProvider:new fy(this)}}},Lx=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(bo.from)}getEntrypoints(){return[...this.files.keys()].map(bo.from).sort((e,t)=>e.absolute.localeCompare(t.absolute))}clone(){return new e(this.files)}};exports.ArrayNode=am,exports.AttributeNode=B,exports.BlockExpressionNode=U,exports.CallExpressionNode=G,exports.CommaExpressionNode=Qp,exports.CompileError=E,exports.CompileErrorCode=T,exports.Compiler=Ix,exports.CompletionItemInsertTextRule=X,exports.CompletionItemKind=Y,exports.DBMLCompletionItemProvider=By,exports.DBMLDefinitionProvider=dy,exports.DBMLDiagnosticsProvider=fy,exports.DBMLReferencesProvider=py,exports.DEFAULT_ENTRY=Eo,exports.ElementDeclarationNode=z,exports.ElementKind=r,exports.EmptyNode=im,exports.FALSY_VALUES=tp,exports.Filepath=bo,exports.FunctionApplicationNode=H,exports.FunctionExpressionNode=Xp,exports.GroupExpressionNode=$p,exports.IdentifierStreamNode=qp,exports.InfixExpressionNode=Jp,exports.ListExpressionNode=W,exports.LiteralNode=em,exports.MarkerSeverity=cy,exports.MemoryProjectLayout=Lx,exports.PostfixExpressionNode=Yp,exports.PrefixExpressionNode=V,exports.PrimaryExpressionNode=rm,exports.ProgramNode=R,exports.ScopeKind=Q,exports.SymbolKind=I,exports.SyntaxNode=L,exports.SyntaxNodeIdGenerator=Hp,exports.SyntaxNodeKind=Up,exports.SyntaxToken=Va,exports.SyntaxTokenKind=v,exports.TRUTHY_VALUES=ep,exports.TupleExpressionNode=Zp,exports.UNHANDLED=t,exports.Uri=Zv,exports.UseDeclarationNode=Wp,exports.UseSpecifierListNode=Kp,exports.UseSpecifierNode=Gp,exports.VariableNode=nm,exports.WildcardNode=tm,exports.addDoubleQuoteIfNeeded=vg,exports.dbmlLanguageConfig=vb,exports.dbmlMonarchTokensProvider=yb,exports.escapeString=bg,exports.extractNumericLiteral=Gf,exports.extractSignedNumber=Zf,exports.formatRecordValue=xg,exports.getRecordValueType=Uo,exports.isBinaryType=Bo,exports.isBooleanType=Ro,exports.isDateTimeType=Vo,exports.isEmptyStringLiteral=Yf,exports.isFloatType=Io,exports.isFunctionExpression=Xf,exports.isIntegerType=Fo,exports.isNullish=Jf,exports.isNumericType=Lo,exports.isOp=za,exports.isOpToken=Ba,exports.isSerialType=Ho,exports.isStringType=zo,exports.isTriviaToken=Ra,exports.isValidIdentifier=_g,exports.normalizeTypeName=Po,exports.splitQualifiedIdentifier=Sg,exports.tryExtractBoolean=np,exports.tryExtractDateTime=cp,exports.tryExtractEnum=rp,exports.tryExtractInteger=$f,exports.tryExtractNumeric=Qf,exports.tryExtractString=ip,exports.unescapeString=yg,exports.validateForeignKeys=xh,exports.validatePrimaryKey=dh,exports.validateUnique=_h;
28
+ `&&a++,[{start:i,end:a,newText:``}]}var sS=Symbol(`COMPUTING`),cS=class{constructor(e){this.layout=e,this.nodeIdGenerator=new Up,this.symbolIdGenerator=new xp,this.symbolFactory=new eo(this.symbolIdGenerator),this.sourceSnapshot=new Map,this.globalCache=new Map,this.globallyQuerying=!1,this.localCache=new Map,this.parseFile=this.localQuery(Ox),this.parseProject=this.globalQuery(kx),this.validateNode=this.localQuery(tv),this.validateFile=this.localQuery(gx),this.nodeFullname=this.localQuery(rv),this.nodeAlias=this.localQuery(iv),this.nodeSettings=this.localQuery(nv),this.canonicalName=this.globalQuery(Zb),this.bindNode=this.globalQuery(d_),this.bindFile=this.globalQuery(fx),this.bindProject=this.globalQuery(px),this.interpretSymbol=this.globalQuery(p_),this.interpretMetadata=this.globalQuery(m_),this.interpretFile=this.globalQuery(mx),this.interpretProject=this.globalQuery(hx),this.nodeSymbol=this.globalQuery(c_),this.nodeMetadata=this.globalQuery(f_),this.symbolMembers=this.globalQuery(l_),this.symbolMembersLookupMap=this.globalQuery(Ax),this.lookupMembers=this.globalQuery(jx),this.nodeReferee=this.globalQuery(u_),this.resolutionIndex=this.globalQuery(Nx),this.symbolReferences=this.globalQuery(Fx),this.symbolParent=this.globalQuery(Px),this.symbolMetadata=this.globalQuery(Ix),this.symbolAliases=this.globalQuery(Mx),this.symbolUses=this.globalQuery(Lx),this.fileDependencies=this.localQuery(ex),this.reachableFiles=this.globalQuery(nx),this.usableMembers=this.globalQuery(Zh),this.nodeAtPosition=this.localQuery(dx),this.renameTable=Jx.bind(this),this.syncDiagramView=nS.bind(this),this.token={invalidStream:this.localQuery(ux),flatStream:this.localQuery(lx)},this.parse={source:e=>this.getSource(e)||``,ast:(e=Eo)=>rx.call(this,e),errors:(e=Eo)=>ix.call(this,e),warnings:(e=Eo)=>ax.call(this,e),tokens:(e=Eo)=>ox.call(this,e),rawDb:(e=Eo)=>sx.call(this,e),publicSymbolTable:(e=Eo)=>cx.call(this,e)},this.container={stack:this.localQuery(Kb),token:this.localQuery(qb),element:this.localQuery(Jb),scope:this.localQuery(Yb),scopeKind:this.localQuery(Xb)}}getSource(e){return this.layout.getSource(e)}cleanStaleLocalCache(e){let t=this.layout.getSource(e),n=e.absolute,r=this.sourceSnapshot.get(n);r===void 0?this.sourceSnapshot.set(n,t):r!==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 tx(this,e))this.cleanStaleLocalCache(t);t&&this.globalCache.clear()}globalQuery(e){let t=Symbol();return((...n)=>{let r=!this.globallyQuerying;r&&(this.globallyQuerying=!0,this.cleanStaleGlobalCache());try{let r=this.globalCache.get(t);r||(r=new Map,this.globalCache.set(t,r));let i=n.length===0?``:n.length===1?Im(n[0]):n.map(e=>Im(e)).join(`\0`),a=r.get(i);if(a){if(a===sS)throw Error(`Cycle detected in query: ${e.name}(${i})`);return a}r.set(i,sS);try{let t=e.apply(this,n);return r.set(i,t),t}catch(e){throw r.delete(i),e}}finally{r&&(this.globallyQuerying=!1)}})}localQuery(e){let t=Symbol();return((...n)=>{let[r]=n,i=r instanceof I?r.filepath:r;this.cleanStaleLocalCache(i);let a=i.intern(),o=n.length===0?``:n.length===1?Im(n[0]):n.map(e=>Im(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===sS)throw Error(`Cycle detected in query: ${e.name}(${a}, ${o})`);return t}c.set(o,sS);try{let t=e.apply(this,n);return c.set(o,t),t}catch(e){throw c.delete(o),e}})}findDiagramViewBlocks(e){return Zx(this.getSource(e)??``)}initMonacoServices(e){let t=e?.autocompletion?.triggerCharacters??[];return{definitionProvider:new py(this),referenceProvider:new hy(this),autocompletionProvider:new ub(this,{triggerCharacters:t}),diagnosticsProvider:new my(this)}}},lS=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(bo.from)}getEntrypoints(){return[...this.files.keys()].map(bo.from).sort((e,t)=>e.absolute.localeCompare(t.absolute))}clone(){return new e(this.files)}};exports.ArrayNode=om,exports.AttributeNode=z,exports.BlockExpressionNode=H,exports.CallExpressionNode=W,exports.CommaExpressionNode=$p,exports.CompileError=E,exports.CompileErrorCode=T,exports.Compiler=cS,exports.CompletionItemInsertTextRule=Y,exports.CompletionItemKind=J,exports.DBMLCompletionItemProvider=ub,exports.DBMLDefinitionProvider=py,exports.DBMLDiagnosticsProvider=my,exports.DBMLReferencesProvider=hy,exports.DEFAULT_ENTRY=Eo,exports.ElementDeclarationNode=R,exports.ElementKind=r,exports.EmptyNode=am,exports.FALSY_VALUES=np,exports.Filepath=bo,exports.FunctionApplicationNode=V,exports.FunctionExpressionNode=Zp,exports.GroupExpressionNode=em,exports.IdentifierStreamNode=Jp,exports.InfixExpressionNode=Yp,exports.ListExpressionNode=U,exports.LiteralNode=tm,exports.MarkerSeverity=uy,exports.MemoryProjectLayout=lS,exports.PostfixExpressionNode=Xp,exports.PrefixExpressionNode=B,exports.PrimaryExpressionNode=im,exports.ProgramNode=L,exports.ScopeKind=Q,exports.SymbolKind=F,exports.SyntaxNode=I,exports.SyntaxNodeIdGenerator=Up,exports.SyntaxNodeKind=Wp,exports.SyntaxToken=Va,exports.SyntaxTokenKind=v,exports.TRUTHY_VALUES=tp,exports.TupleExpressionNode=Qp,exports.UNHANDLED=t,exports.Uri=$v,exports.UseDeclarationNode=Gp,exports.UseSpecifierListNode=qp,exports.UseSpecifierNode=Kp,exports.VariableNode=rm,exports.WildcardNode=nm,exports.addDoubleQuoteIfNeeded=Tg,exports.dbmlLanguageConfig=Wb,exports.dbmlMonarchTokensProvider=Gb,exports.escapeString=Dg,exports.extractNumericLiteral=Kf,exports.extractSignedNumber=Qf,exports.formatRecordValue=Og,exports.getRecordValueType=Uo,exports.isBinaryType=Bo,exports.isBooleanType=Ro,exports.isDateTimeType=Vo,exports.isEmptyStringLiteral=Xf,exports.isFloatType=Io,exports.isFunctionExpression=Zf,exports.isIntegerType=Fo,exports.isNullish=Yf,exports.isNumericType=Lo,exports.isOp=za,exports.isOpToken=Ba,exports.isSerialType=Ho,exports.isStringType=zo,exports.isTriviaToken=Ra,exports.isValidIdentifier=wg,exports.normalizeTypeName=Po,exports.splitQualifiedIdentifier=kg,exports.tryExtractBoolean=rp,exports.tryExtractDateTime=lp,exports.tryExtractEnum=ip,exports.tryExtractInteger=ep,exports.tryExtractNumeric=$f,exports.tryExtractString=ap,exports.unescapeString=Eg,exports.validateForeignKeys=Sh,exports.validatePrimaryKey=fh,exports.validateUnique=vh;