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

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.
Files changed (30) hide show
  1. package/dist/dbml-parse.js +18 -18
  2. package/dist/dbml-parse.mjs +7517 -7708
  3. package/dist/src/compiler/index.d.ts +2 -2
  4. package/dist/src/compiler/queries/container/element.d.ts +2 -2
  5. package/dist/src/core/global_modules/metadata/attach.d.ts +6 -0
  6. package/dist/src/core/global_modules/metadata/bind.d.ts +2 -2
  7. package/dist/src/core/global_modules/metadata/fieldRegistry.d.ts +4 -0
  8. package/dist/src/core/global_modules/metadata/interpret.d.ts +3 -12
  9. package/dist/src/core/global_modules/metadata/metadataField.d.ts +17 -0
  10. package/dist/src/core/global_modules/metadata/resolve.d.ts +10 -3
  11. package/dist/src/core/global_modules/note/interpret.d.ts +3 -1
  12. package/dist/src/core/global_modules/program/interpret.d.ts +0 -4
  13. package/dist/src/core/global_modules/records/utils/constraints/helper.d.ts +4 -17
  14. package/dist/src/core/global_modules/table/interpret.d.ts +7 -1
  15. package/dist/src/core/global_modules/tableGroup/interpret.d.ts +3 -1
  16. package/dist/src/core/global_modules/utils.d.ts +2 -2
  17. package/dist/src/core/local_modules/metadata/utils.d.ts +7 -0
  18. package/dist/src/core/local_modules/metadata/validate.d.ts +2 -2
  19. package/dist/src/core/parser/parser.d.ts +0 -1
  20. package/dist/src/core/types/errors.d.ts +3 -5
  21. package/dist/src/core/types/nodes.d.ts +7 -24
  22. package/dist/src/core/types/schemaJson.d.ts +5 -10
  23. package/dist/src/core/types/symbol/metadata.d.ts +9 -5
  24. package/dist/src/core/types/symbol/symbols.d.ts +6 -7
  25. package/dist/src/core/utils/interpret.d.ts +11 -1
  26. package/dist/src/core/utils/span.d.ts +2 -2
  27. package/dist/src/core/utils/validate.d.ts +0 -5
  28. package/dist/src/index.d.ts +1 -1
  29. package/package.json +2 -2
  30. package/dist/src/core/global_modules/metadata/overlap.d.ts +0 -14
@@ -1,28 +1,28 @@
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`),b=function(e){return e[e.UNKNOWN_SYMBOL=1e3]=`UNKNOWN_SYMBOL`,e[e.UNEXPECTED_SYMBOL=1001]=`UNEXPECTED_SYMBOL`,e[e.UNEXPECTED_EOF=1002]=`UNEXPECTED_EOF`,e[e.UNEXPECTED_NEWLINE=1003]=`UNEXPECTED_NEWLINE`,e[e.UNKNOWN_TOKEN=1004]=`UNKNOWN_TOKEN`,e[e.UNEXPECTED_TOKEN=1005]=`UNEXPECTED_TOKEN`,e[e.UNEXPECTED_ELEMENT_DECLARATION=1006]=`UNEXPECTED_ELEMENT_DECLARATION`,e[e.MISSING_SPACES=1007]=`MISSING_SPACES`,e[e.UNKNOWN_PREFIX_OP=1008]=`UNKNOWN_PREFIX_OP`,e[e.INVALID_OPERAND=1009]=`INVALID_OPERAND`,e[e.EMPTY_ATTRIBUTE_NAME=1010]=`EMPTY_ATTRIBUTE_NAME`,e[e.INVALID_ESCAPE_SEQUENCE=1011]=`INVALID_ESCAPE_SEQUENCE`,e[e.INVALID_NAME=3e3]=`INVALID_NAME`,e[e.UNEXPECTED_NAME=3001]=`UNEXPECTED_NAME`,e[e.NAME_NOT_FOUND=3002]=`NAME_NOT_FOUND`,e[e.DUPLICATE_NAME=3003]=`DUPLICATE_NAME`,e[e.INVALID_ALIAS=3004]=`INVALID_ALIAS`,e[e.UNEXPECTED_ALIAS=3005]=`UNEXPECTED_ALIAS`,e[e.UNEXPECTED_SETTINGS=3006]=`UNEXPECTED_SETTINGS`,e[e.INVALID_SETTINGS=3007]=`INVALID_SETTINGS`,e[e.UNEXPECTED_SIMPLE_BODY=3008]=`UNEXPECTED_SIMPLE_BODY`,e[e.UNEXPECTED_COMPLEX_BODY=3009]=`UNEXPECTED_COMPLEX_BODY`,e[e.INVALID_TABLE_CONTEXT=3010]=`INVALID_TABLE_CONTEXT`,e[e.UNKNOWN_TABLE_SETTING=3011]=`UNKNOWN_TABLE_SETTING`,e[e.DUPLICATE_TABLE_SETTING=3012]=`DUPLICATE_TABLE_SETTING`,e[e.INVALID_TABLEGROUP_CONTEXT=3013]=`INVALID_TABLEGROUP_CONTEXT`,e[e.INVALID_TABLEGROUP_ELEMENT_NAME=3014]=`INVALID_TABLEGROUP_ELEMENT_NAME`,e[e.DUPLICATE_TABLEGROUP_ELEMENT_NAME=3015]=`DUPLICATE_TABLEGROUP_ELEMENT_NAME`,e[e.DUPLICATE_TABLEGROUP_FIELD_NAME=3016]=`DUPLICATE_TABLEGROUP_FIELD_NAME`,e[e.INVALID_TABLEGROUP_FIELD=3017]=`INVALID_TABLEGROUP_FIELD`,e[e.EMPTY_TABLE=3018]=`EMPTY_TABLE`,e[e.INVALID_COLUMN=3019]=`INVALID_COLUMN`,e[e.INVALID_COLUMN_NAME=3020]=`INVALID_COLUMN_NAME`,e[e.UNKNOWN_COLUMN_SETTING=3021]=`UNKNOWN_COLUMN_SETTING`,e[e.INVALID_COLUMN_TYPE=3022]=`INVALID_COLUMN_TYPE`,e[e.DUPLICATE_COLUMN_NAME=3023]=`DUPLICATE_COLUMN_NAME`,e[e.DUPLICATE_COLUMN_SETTING=3024]=`DUPLICATE_COLUMN_SETTING`,e[e.INVALID_COLUMN_SETTING_VALUE=3025]=`INVALID_COLUMN_SETTING_VALUE`,e[e.INVALID_ENUM_CONTEXT=3026]=`INVALID_ENUM_CONTEXT`,e[e.INVALID_ENUM_ELEMENT_NAME=3027]=`INVALID_ENUM_ELEMENT_NAME`,e[e.INVALID_ENUM_ELEMENT=3028]=`INVALID_ENUM_ELEMENT`,e[e.DUPLICATE_ENUM_ELEMENT_NAME=3029]=`DUPLICATE_ENUM_ELEMENT_NAME`,e[e.UNKNOWN_ENUM_ELEMENT_SETTING=3030]=`UNKNOWN_ENUM_ELEMENT_SETTING`,e[e.DUPLICATE_ENUM_ELEMENT_SETTING=3031]=`DUPLICATE_ENUM_ELEMENT_SETTING`,e[e.INVALID_ENUM_ELEMENT_SETTING=3032]=`INVALID_ENUM_ELEMENT_SETTING`,e[e.EMPTY_ENUM=3033]=`EMPTY_ENUM`,e[e.INVALID_REF_CONTEXT=3034]=`INVALID_REF_CONTEXT`,e[e.UNKNOWN_REF_SETTING=3035]=`UNKNOWN_REF_SETTING`,e[e.DUPLICATE_REF_SETTING=3036]=`DUPLICATE_REF_SETTING`,e[e.INVALID_REF_SETTING_VALUE=3037]=`INVALID_REF_SETTING_VALUE`,e[e.INVALID_REF_RELATIONSHIP=3038]=`INVALID_REF_RELATIONSHIP`,e[e.INVALID_REF_FIELD=3039]=`INVALID_REF_FIELD`,e[e.EMPTY_REF=3040]=`EMPTY_REF`,e[e.REF_REDEFINED=3041]=`REF_REDEFINED`,e[e.INVALID_NOTE_CONTEXT=3042]=`INVALID_NOTE_CONTEXT`,e[e.INVALID_NOTE=3043]=`INVALID_NOTE`,e[e.NOTE_REDEFINED=3044]=`NOTE_REDEFINED`,e[e.NOTE_CONTENT_REDEFINED=3045]=`NOTE_CONTENT_REDEFINED`,e[e.EMPTY_NOTE=3046]=`EMPTY_NOTE`,e[e.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_CONTEXT=5006]=`INVALID_METADATA_CONTEXT`,e[e.INVALID_METADATA_TARGET_KIND=5007]=`INVALID_METADATA_TARGET_KIND`,e[e.INVALID_METADATA_FIELD=5008]=`INVALID_METADATA_FIELD`,e[e.DUPLICATE_METADATA_FIELD=5009]=`DUPLICATE_METADATA_FIELD`,e[e.METADATA_TARGET_NOT_FOUND=5010]=`METADATA_TARGET_NOT_FOUND`,e}({}),x=class e extends Error{constructor(t,n,r){super(n),this.code=t,this.diagnostic=n,this.nodeOrToken=r,this.start=r.start,this.end=r.end,this.name=this.constructor.name,Object.setPrototypeOf(this,e.prototype)}toWarning(){return new Do(this.code,this.message,this.nodeOrToken)}get filepath(){return this.nodeOrToken.filepath}},Do=class extends Error{constructor(e,t,n){super(t),this.code=e,this.diagnostic=t,this.nodeOrToken=n,this.start=n.start,this.end=n.end,this.name=this.constructor.name,Object.setPrototypeOf(this,x.prototype)}get filepath(){return this.nodeOrToken.filepath}};function Oo(e){return!!e.match(/(\p{L}|_|\p{M})/gu)}function ko(e){if(!e)return!1;let t=e[0];return t>=`0`&&t<=`9`}function Ao(e){let[t]=e;return ko(t)||Oo(t)&&t.toLowerCase()>=`a`&&t.toLowerCase()<=`f`}function jo(e){return Oo(e)||ko(e)}function Mo(e){let t=O(e);return t!==void 0&&t.length>0}function No(e){return Po(e)}function Po(e){return e instanceof mc&&e.expression instanceof pc}function Fo(e){return!!e.bodyColon}function Io(e){return e instanceof I&&e.op?.value===`~`&&w(e.expression)}function Lo(e){return e===`-`||e===`<>`||e===`>`||e===`<`}function Ro(e){if(!(e instanceof mc)||!(e.expression instanceof dc)||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(!Ao(t[e]))return!1;return!0}function zo(e){return Ro(e)?!0:Jo(e)&&e.expression.variable.value.toLowerCase()===`none`}function Bo(e){if(C(e)||Vo(e)||Jo(e)&&[`true`,`false`,`null`].includes(e.expression.variable.value.toLowerCase())||e instanceof I&&To.includes(e.op?.value)&&Vo(e.expression)||e instanceof sc)return!0;if(!e||!Yo(e))return!1;let t=ps(e);return t.length===2||t.length===3}function Vo(e){return e instanceof I?To.includes(e.op.value)?Vo(e.expression):!1:e instanceof mc&&e.expression instanceof dc&&e.expression.literal?.kind===v.NUMERIC_LITERAL}function Ho(e){if(!(e instanceof I)||!Lo(e.op?.value))return!1;let t=O(e.expression);return t!==void 0&&t.length>0}function Uo(e){return e instanceof cc&&e.elementList.every(w)}function Wo(e){if(!(e instanceof B||T(e)||e instanceof mc||e instanceof gc))return!1;for(;e instanceof B||e instanceof gc;)if(e instanceof B){if(e.callee===void 0||e.argumentList===void 0||!e.argumentList.elementList.every(e=>Vo(e)||C(e)||Jo(e)))return!1;e=e.callee}else if(e instanceof gc){if(e.array===void 0||e.indexer===void 0||!e.indexer.elementList.every(e=>!e.colon&&!e.value&&Vo(e.name)))return!1;e=e.array}let t=O(e);return t!==void 0&&t.length>0}function Go(e){return C(e)||Ro(e)}function Ko(e,t,n){let r=[];return t.length>1&&r.push(...t.map(t=>new x(n.duplicate,`'${e}' can only appear once`,t))),t.forEach(t=>{Go(t.value)||r.push(new x(n.invalidValue,`'${e}' must be a string or a color literal`,t.value||t.name||t))}),r}function S(e){let t={},r=[];return e?(e.elementList.forEach(e=>{if(!e.name)return;if(e.name instanceof mc){r.push(new x(b.INVALID_SETTINGS,`A setting name must be a stream of identifiers`,e.name));return}let n=ls(e.name)?.toLowerCase();if(!n)return;let i=t[n];i?i.push(e):t[n]=[e]}),new n(t,r)):new n(t)}function C(e){return e instanceof mc&&(e.expression instanceof pc&&e.expression.variable instanceof Va&&e.expression.variable.kind===v.QUOTED_STRING||e.expression instanceof dc&&e.expression.literal?.kind===v.STRING_LITERAL)}function w(e){return e instanceof mc&&e.expression instanceof pc&&e.expression.variable instanceof Va}function qo(e){return e?e instanceof fc:!1}function Jo(e){return e instanceof mc&&e.expression instanceof pc&&e.expression.variable?.kind===v.IDENTIFIER}function T(e){return e instanceof ac&&e.leftExpression instanceof N&&e.rightExpression instanceof N&&e.op?.value===`.`}function Yo(e){return w(e)?!0:T(e)&&w(e.rightExpression)&&Yo(e.leftExpression)}function E(e,t){return e instanceof P&&e.isKind(t)}function Xo(e){return e instanceof ec}function Zo(e,t){return e instanceof tc&&(t===void 0||e.isKind(t))}function Qo(e){return e instanceof $s}function D(e,...t){return e instanceof L&&e.parent instanceof P&&e.parent.isKind(...t)}function $o(e,t){let n=e.parent;return n instanceof P&&n.isKind(t)&&!!n.body&&n.body.strictlyContains(e)}function es(e,t){let n=e.parentOfKind(L);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 ts(e){return!!e.parentOfKind(z)}function ns(e,t){let n=e.parentOfKind(F);return!n||(n.name instanceof mc?A(n.name):ls(n.name))?.toLowerCase()!==t?!1:!!n.value?.containsEq(e)}function rs(e){return!(e instanceof ac)||!Lo(e.op?.value)?!1:ms(e.leftExpression)!==void 0&&ms(e.rightExpression)!==void 0}function is(e){let t=ms(e.leftExpression),n=ms(e.rightExpression);if(t===void 0||n===void 0)return!1;let{tupleElements:r}=t,{tupleElements:i}=n;return r?.length===i?.length}function as(e){return e instanceof mc&&e.expression instanceof pc||e instanceof sc}function os(e){if(w(e))return e;if(T(e)){let t=e.rightExpression;if(t&&w(t))return t}}function ss(e){let t=e.parentNode;return!T(t)||t.rightExpression!==e?!1:!(T(t.parentNode)&&t.parentNode.leftExpression===t)}function cs(e){if(w(e))return e.expression.variable}function ls(e){if(e===void 0)return;let t=e.identifiers.map(e=>e.value).join(` `);if(t!==``)return t}function us(e){if(!(e instanceof P))return;let t=O(e?.name);return t===void 0?void 0:t.join(`.`)}function ds(e){return e.elementList.length===0}function fs(e){return e?.body?e.body instanceof R?e.body.body:[e.body]:[]}function ps(e){if(!e)return;if(!T(e))return[e];let t=ps(e.leftExpression);if(t)return t.push(e.rightExpression),t}function O(e){if(e===void 0)return;let t=ps(e);if(!t)return;let n=[];for(let e of t){let t=A(e);if(typeof t!=`string`)return;n.push(t)}return n}function ms(e){if(e===void 0)return;let t=ps(e);if(!t||t.length===0)return;let n=[];if(!w(g(t))){let e=t.pop();if(Uo(e))n=e.elementList;else return}let r=t;if(r.every(w))return{variables:r,tupleElements:n}}function hs(e){if(as(e))return e instanceof sc?{functional:[e],nonFunctional:[]}:{functional:[],nonFunctional:[e]};if(e instanceof cc&&e.elementList.every(as))return{functional:e.elementList.filter(e=>e instanceof sc),nonFunctional:e.elementList.filter(w)}}function k(e){if(C(e))return e.expression instanceof pc?e?.expression?.variable?.value:e.expression.literal.value}function gs(e){return e instanceof mc&&e.expression instanceof dc&&e.expression.literal?.kind===v.NUMERIC_LITERAL?Number(e.expression.literal.value):null}function _s(e){if(!(e instanceof B)||!e.callee)return;let t=ps(e.callee);if(!t||t.length===0||!t.every(w))return;let n=[];return Uo(e.argumentList)&&(n=[...e.argumentList.elementList]),{variables:t,args:n}}function A(e){if(w(e))return e.expression.variable.value}function vs(e){let t=e?.expression.variable?.value;return t===void 0?void 0:t}function ys(e){return e instanceof I?`${e.op?.value}${ys(e.expression)}`:e.expression.literal.value}function bs(e){return e instanceof I?e.op?.value===`-`?-bs(e.expression):bs(e.expression):Number.parseFloat(e.expression.literal.value)}function j(e){return{start:{offset:e.startPos.offset,line:e.startPos.line+1,column:e.startPos.column+1},end:{offset:e.endPos.offset,line:e.endPos.line+1,column:e.endPos.column+1},filepath:e.filepath}}function xs(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=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(`
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 Ss(e){let t=O(e);return!t||t.length===0?{schemaName:[],name:``}:{name:t[t.length-1],schemaName:t.slice(0,-1)}}function Cs(e){if(Ro(e))return e.expression.literal.value;if(Jo(e)&&A(e)?.toLowerCase()===`none`)return Co}function ws(e){if(e){if(C(e)){let t=k(e);if(t!==void 0)return{value:t,type:`string`}}if(Vo(e))return{type:`number`,value:bs(e)};if(Jo(e))return{value:e.expression.variable.value.toLowerCase(),type:`boolean`};if(e instanceof sc&&e.value)return{value:e.value.value,type:`expression`};if(Yo(e)){let t=ps(e)?.at(-1),n=t?A(t):void 0;if(n!==void 0)return{value:n,type:`string`}}}}function Ts(e,t){let r=``,i=null;if(t instanceof B){if(i=(t.argumentList?.elementList??[]).map(e=>Vo(e)?ys(e):C(e)?k(e):A(e)).join(`,`),r=`(${i})`,!t.callee)return new n({schemaName:null,type_name:``,args:i});t=t.callee}for(;t instanceof B||t instanceof gc;)if(t instanceof B){if(r=`(${(t.argumentList?.elementList??[]).map(e=>Vo(e)?ys(e):C(e)?k(e):A(e)).join(`,`)})${r}`,!t.callee)break;t=t.callee}else if(t instanceof gc){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}=Ss(t);return o.length>1?new n({schemaName:o[0]??null,type_name:`${a}${r}`,args:i},[new x(b.UNSUPPORTED,`Nested schema is not supported`,t)]):new n({schemaName:o.length===0?null:o[0],type_name:`${a}${r}`,args:i})}var M=function(e){return e.Schema=`Schema`,e.Table=`Table`,e.Column=`Column`,e.TableGroup=`TableGroup`,e.TableGroupField=`TableGroup field`,e.Enum=`Enum`,e.EnumField=`Enum field`,e.StickyNote=`Note`,e.TablePartial=`TablePartial`,e.PartialInjection=`PartialInjection`,e.DiagramView=`DiagramView`,e.DiagramViewTopLevelWildcard=`DiagramView top-level wildcard`,e.DiagramViewTable=`DiagramView table`,e.DiagramViewTableGroup=`DiagramView tablegroup`,e.DiagramViewNote=`DiagramView note`,e.DiagramViewSchema=`DiagramView schema`,e.Metadata=`Metadata`,e.Program=`Program`,e}({}),Es={Table:`Table`,Enum:`Enum`,TableGroup:`TableGroup`,TablePartial:`TablePartial`,Note:`Note`,Schema:`Schema`,Metadata:`Metadata`},Ds=function(e){return e.Table=`table`,e.Schema=`schema`,e.Column=`column`,e.TableGroup=`tablegroup`,e.Note=`note`,e}({}),Os=[`table`,`column`,`tablegroup`,`note`],ks=class{constructor(){this.id=0}reset(){this.id=0}nextId(){return this.id++}},As=class{constructor({kind:e,declaration:t,name:n},r,i){this.id=r,this.kind=e,this.declaration=t,this.filepath=i,this.name=n}get originalFilepath(){return this.originalSymbol.filepath}intern(){return`symbol@${this.filepath.intern()}:${this.id}`}isKind(...e){return e.includes(this.kind)}canonicalName(e,t){return e.canonicalName(t,this).getValue()}interpretedName(e,t){if(!t)return{schema:null,name:this.name??``};let n=this.canonicalName(e,t);return n?{schema:n.schema===`public`?null:n.schema,name:n.name}:{schema:null,name:this.name??``}}settings(e){if(this.declaration)return e.nodeSettings(this.declaration).getFiltered(t)}get token(){if(this.declaration)return j(this.declaration)}references(e){return e.symbolReferences(this)}metadata(e){return e.symbolMetadata(this)}members(e){let n=e.symbolMembers(this);return n.hasValue(t)?[]:n.getValue()}},js=class e extends As{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}},Ms=class extends As{constructor({declaration:e,name:t},n,r){super({kind:`Enum`,declaration:e,name:t},n,r)}get canBeImported(){return!0}get originalSymbol(){return this}},Ns=class extends As{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=xs(k(i));if(a)return{value:a,token:j(r)}}},Ps=class extends As{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 Xs))}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=xs(k(i));if(a)return{value:a,token:j(r)}}headercolor(e){if(!this.declaration)return;let n=e.nodeSettings(this.declaration).getFiltered(t);return n?.[i.HeaderColor]?.length?Cs(n[i.HeaderColor].at(0)?.value):void 0}refs(e){return this.metadata(e).filter(e=>e.kind===vc.Ref)}checks(e){return this.metadata(e).filter(e=>e.kind===vc.TableChecks)}indexes(e){return this.metadata(e).filter(e=>e.kind===vc.Indexes)}records(e){return this.metadata(e).filter(e=>e.kind===vc.Records)}resolvedPartials(e){return this.partialInjections(e).flatMap(n=>{if(!(n.declaration instanceof L)||!Io(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===vc.Indexes));return[...t,...n]}mergedChecks(e){let t=this.checks(e),n=this.resolvedPartials(e).flatMap(t=>t.metadata(e).filter(e=>e.kind===vc.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=Cs(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=xs(k(a));if(o)return{value:o,token:j(i)}},r=n(this);for(let t of this.resolvedPartials(e)){let e=n(t);e&&(r=e)}return r}},Fs=class extends As{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}increment(e){return this.declaration?!!e.nodeSettings(this.declaration).getFiltered(t)?.[i.Increment]?.length:!1}default(e){if(!this.declaration)return;let n=e.nodeSettings(this.declaration).getFiltered(t)?.[i.Default]?.at(0)?.value;if(n)return ws(n)}type(e){if(!(this.declaration instanceof L))return;let n=Ts(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 Ms?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===vc.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=xs(k(i));if(a)return{value:a,token:j(r)}}},Is=class extends As{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?Cs(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=xs(k(i));if(a)return{value:a,token:j(r)}}},Ls=class extends As{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}},Rs=class extends As{constructor({declaration:e,name:t},n,r){super({kind:`Note`,declaration:e,name:t},n,r)}get canBeImported(){return!0}get originalSymbol(){return this}},zs=class extends As{constructor({declaration:e,name:t},n,r){super({kind:`TablePartial`,declaration:e,name:t},n,r)}get canBeImported(){return!0}get originalSymbol(){return this}},Bs=class extends As{constructor({declaration:e,name:t},n,r){super({kind:`PartialInjection`,declaration:e,name:t},n,r)}get canBeImported(){return!1}get originalSymbol(){return this}},Vs=class extends As{constructor({declaration:e,name:t},n,r){super({kind:`DiagramView`,declaration:e,name:t},n,r)}get canBeImported(){return!1}get originalSymbol(){return this}},Hs=class extends As{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}},Us=class extends As{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}},Ws=class extends As{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}},Gs=class extends As{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}},Ks=class extends As{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}},qs=class extends As{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 js&&r.inNestedSchema(e,t))return!0;return!1}},Js=class extends As{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}},Ys=class extends As{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(ec);return!e||e.isReuse}get originalSymbol(){return this.usedSymbol?this.usedSymbol.originalSymbol:this}},Xs=class extends Fs{constructor({declaration:e,name:t,injectionDeclaration:n},r,i){super({declaration:e,name:t},r,i),this.injectionDeclaration=n,this.name=t}},Zs=class{constructor(){this.id=0}reset(){this.id=0}nextId(){return this.id++}},N=class{constructor(e,t,n,r){this.id=e,this.kind=t,this.filepath=n;let i=r.find(e=>e!==void 0&&!Number.isNaN(e.start));i?(this.startPos=i.startPos,this.fullStart=i instanceof 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 P||e instanceof $s)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}},Qs=function(e){return e.PROGRAM=`<program>`,e.ELEMENT_DECLARATION=`<element-declaration>`,e.METADATA_DECLARATION=`<metadata-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}({}),$s=class extends N{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>`)}get metadata(){return this.body.filter(e=>e.kind===`<metadata-declaration>`)}},ec=class extends N{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)}},tc=class extends N{constructor({importKind:e,subKind:t,name:n,asKeyword:r,alias:i},a,o){super(a,`<use-specifier>`,o,[e,t,n,r,i]),this.importKind=e,this.subKind=t,this.name=n,this.asKeyword=r,this.alias=i}isKind(...e){return this.importKind?.value!==void 0&&e.map(e=>e.toLowerCase()).includes(this.importKind.value.toLowerCase())}getSymbolKind(){let e=this.importKind?.value?.toLowerCase();if(e!==void 0)return Object.values(M).find(t=>t.toLowerCase()===e)}},nc=class extends N{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}},rc=class extends N{constructor({metadataKeyword:e,targetKind:t,targetName:n,bodyColon:r,body:i},a,o){super(a,`<metadata-declaration>`,o,[e,t,n,r,i]),this.metadataKeyword=e,this.targetKind=t,this.targetName=n,this.bodyColon=r,this.body=i}getTargetKind(){let e=this.targetKind?.value?.toLowerCase();if(e!==void 0)return Os.find(t=>t===e)}},P=class e extends N{constructor({type:t,name:n,as:r,alias:i,attributeList:a,bodyColon:o,body:s},c,l){if(super(c,`<element-declaration>`,l,[t,n,r,i,a,o,s]),s&&o&&!(s instanceof L||s instanceof e))throw Error(`If an element has a simple body, it must be a function application node`);this.type=t,this.name=n,this.as=r,this.alias=i,this.attributeList=a,this.bodyColon=o,this.body=s}isKind(...e){return e.some(e=>this.type?.value.toLowerCase()===e)}getElementKind(){return Object.values(r).find(e=>this.isKind(e))}},ic=class extends N{constructor({identifiers:e=[]},t,n){super(t,`<identifier-stream>`,n,e||[]),this.identifiers=e}},F=class extends N{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}},I=class extends N{constructor({op:e,expression:t},n,r){super(n,`<prefix-expression>`,r,[e,t]),this.op=e,this.expression=t}},ac=class extends N{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}},oc=class extends N{constructor({op:e,expression:t},n,r){super(n,`<postfix-expression>`,r,[t,e]),this.op=e,this.expression=t}},sc=class extends N{constructor({value:e},t,n){super(t,`<function-expression>`,n,[e]),this.value=e}},L=class extends N{constructor({callee:e,args:t=[]},n,r){super(n,`<function-application>`,r,[e,...t]),this.callee=e,this.args=t}},R=class extends N{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}},z=class extends N{constructor({listOpenBracket:e,elementList:t=[],commaList:n=[],listCloseBracket:r},i,a){super(i,`<list-expression>`,a,[e,..._c(t,n),r]),this.listOpenBracket=e,this.elementList=t,this.commaList=n,this.listCloseBracket=r}},cc=class extends N{constructor({tupleOpenParen:e,elementList:t=[],commaList:n=[],tupleCloseParen:r},i,a){super(i,`<tuple-expression>`,a,[e,..._c(t,n),r]),this.tupleOpenParen=e,this.elementList=t,this.commaList=n,this.tupleCloseParen=r}},lc=class extends N{constructor({elementList:e=[],commaList:t=[]},n,r){super(n,`<comma-expression>`,r,[..._c(e,t)]),this.elementList=e,this.commaList=t}},uc=class extends cc{constructor({groupOpenParen:e,expression:t,groupCloseParen:n},r,i){super({tupleOpenParen:e,elementList:t&&[t],commaList:[],tupleCloseParen:n},r,i),this.kind=`<group-expression>`}},B=class extends N{constructor({callee:e,argumentList:t},n,r){super(n,`<call-expression>`,r,[e,t]),this.callee=e,this.argumentList=t}},dc=class extends N{constructor({literal:e},t,n){super(t,`<literal>`,n,[e]),this.literal=e}},fc=class extends N{constructor({token:e},t,n){super(t,`<wildcard>`,n,[e]),this.token=e}},pc=class extends N{constructor({variable:e},t,n){super(t,`<variable>`,n,[e]),this.variable=e}},mc=class extends N{constructor({expression:e},t,n){super(t,`<primary-expression>`,n,[e]),this.expression=e}},hc=class extends N{constructor({prevToken:e},t,n){let r=Va.create(v.SPACE,n,e.endPos,e.endPos,` `,!1);super(t,`<dummy>`,n,[r])}},gc=class extends N{constructor({expression:e,indexer:t},n,r){super(n,`<array>`,r,[e,t]),this.array=e,this.indexer=t}};function _c(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)}var vc=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}({}),yc=class e{static{this.id=0}constructor(t){this.declaration=t,this.id=++e.id}intern(){return`metadata@${this.declaration.filepath.intern()}:${this.id}`}reachableOwners(e,n){let r=this.declaration.filepath;return e.reachableFiles().flatMap(n=>e.nodeSymbol(e.parseFile(n).getValue().ast).getFiltered(t)||[]).filter(t=>e.reachableFiles(t.filepath).some(e=>e.equals(r))&&n.every(n=>t.inNestedSchema(e,n)))}},bc=class extends yc{constructor(e){super(e),this.kind=`ref`}container(e){let n=this.declaration.parentOfKind(P);if(n?.isKind(r.Table))return e.nodeSymbol(n).getFiltered(t)}leftColumns(e){if(this.declaration instanceof P){let t=fs(this.declaration)[0];if(!(t instanceof L))return[];let n=t.callee;return n instanceof ac?Dc(e,n.leftExpression):[]}if(this.declaration instanceof F){let n=this.declaration.parentOfKind(L);if(!n)return[];let r=e.nodeSymbol(n).getFiltered(t);return r?[r]:[]}return[]}rightColumns(e){if(this.declaration instanceof P){let t=fs(this.declaration)[0];if(!(t instanceof L))return[];let n=t.callee;return n instanceof ac?Dc(e,n.rightExpression):[]}if(this.declaration instanceof F){let t=this.declaration.value;return t instanceof I?Dc(e,t.expression):[]}return[]}leftTable(e){if(this.declaration instanceof P){let t=fs(this.declaration)[0];if(!(t instanceof L))return;let n=t.callee;return n instanceof ac?Oc(e,n.leftExpression):void 0}if(this.declaration instanceof F)return this.container(e)}rightTable(e){if(this.declaration instanceof P){let t=fs(this.declaration)[0];if(!(t instanceof L))return;let n=t.callee;return n instanceof ac?Oc(e,n.rightExpression):void 0}if(this.declaration instanceof F){let t=this.declaration.value;return t instanceof I?Oc(e,t.expression)??this.container(e):void 0}}op(e){if(this.declaration instanceof P){let e=fs(this.declaration)[0];if(!(e instanceof L))return;let t=e.callee;return t instanceof ac?t.op?.value:void 0}if(this.declaration instanceof F){let e=this.declaration.value;return e instanceof I?e.op?.value:void 0}}active(e){if(!(this.declaration instanceof P))return!0;let n=fs(this.declaration)[0];return n?!e.nodeSettings(n).getFiltered(t)?.[i.Inactive]?.length:!0}leftToken(){if(this.declaration instanceof P){let e=fs(this.declaration)[0];if(e instanceof L){let t=e.callee;if(t instanceof ac&&t.leftExpression)return t.leftExpression}}if(this.declaration instanceof F){let e=this.declaration.parentOfKind(L);if(e)return e}return this.declaration}rightToken(){if(this.declaration instanceof P){let e=fs(this.declaration)[0];if(e instanceof L){let t=e.callee;if(t instanceof ac&&t.rightExpression)return t.rightExpression}}return this.declaration instanceof F,this.declaration}owners(e){let t=this.leftTable(e),n=this.rightTable(e);return!t||!n?[]:this.reachableOwners(e,[t,n])}},xc=class extends yc{constructor(e){super(e),this.kind=`partial ref`}container(e){let n=this.declaration.parentOfKind(P);if(n?.isKind(r.TablePartial))return e.nodeSymbol(n).getFiltered(t)}leftColumns(e){if(!(this.declaration instanceof F))return[];let n=this.declaration.parentOfKind(L);if(!n)return[];let r=e.nodeSymbol(n).getFiltered(t);return r?[r]:[]}rightColumns(e){if(!(this.declaration instanceof F))return[];let t=this.declaration.value;return t instanceof I?Dc(e,t.expression):[]}leftTablePartial(e){if(this.declaration instanceof F)return this.container(e)}rightTable(e){if(!(this.declaration instanceof F))return;let t=this.declaration.value;if(t instanceof I)return Oc(e,t.expression)??this.container(e)}op(e){if(!(this.declaration instanceof F))return;let t=this.declaration.value;if(t instanceof I)return t.op?.value}leftToken(){if(this.declaration instanceof F){let e=this.declaration.parentOfKind(L);if(e)return e}return this.declaration}rightToken(){return this.declaration instanceof F,this.declaration}owners(e){let t=this.leftTablePartial(e),n=this.rightTable(e);return!t||!n?[]:this.reachableOwners(e,[t,n])}},Sc=class extends yc{constructor(e){super(e),this.kind=`table checks`,this.ownerTable=e.parentNode?.parentOfKind(P)}owners(e){if(!this.ownerTable)return[];let n=e.nodeSymbol(this.ownerTable).getFiltered(t);return n?[n.originalSymbol]:[]}},Cc=class extends yc{constructor(e){super(e),this.kind=`indexes`,this.ownerTable=e.parentNode?.parentOfKind(P)}owners(e){if(!this.ownerTable)return[];let n=e.nodeSymbol(this.ownerTable).getFiltered(t);return n?[n.originalSymbol]:[]}},wc=class extends yc{constructor(e){super(e),this.kind=`records`}table(e){let n=this.declaration,i=n.parent;if(i instanceof P&&i.isKind(r.Table))return e.nodeSymbol(i).getFiltered(t);let a=n.name;if(!(a instanceof B))return;let o=_s(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.reachableOwners(e,[t]):[]}},Tc=class extends yc{constructor(e){super(e),this.kind=`metadata element`}target(e){let n=this.declaration.targetName;if(!n)return;let r=n instanceof ac&&n.rightExpression?n.rightExpression:n;return e.nodeReferee(r).getFiltered(t)?.originalSymbol}owners(e){let n=this.target(e);if(!n)return[];if(n.kind===M.Column){let r=n.declaration?.parentOfKind(P),i=r?e.nodeSymbol(r).getFiltered(t)?.originalSymbol:void 0;if(!i)return[];n=i}return this.reachableOwners(e,[n])}},Ec=class extends yc{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 Dc(e,n){if(!n)return[];let r=ms(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 Oc(e,n){if(!n)return;let r=ms(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 kc=class{constructor(e,t){this.compiler=e,this.declarationNode=t}bind(){return[]}},Ac=class{constructor(e,t){this.compiler=e,this.declarationNode=t}interpret(){let e=this.declarationNode.body;return e instanceof R?new n(e.body.flatMap(e=>{if(!(e instanceof L))return[];let t=j(e),n=e.callee instanceof sc?e.callee.value?.value??``:``,r,a=e.args.find(e=>e instanceof z);return a&&(r=k(S(a).getValue()[i.Name]?.at(0)?.value)),{expression:n,name:r,token:t}})):new n([])}},jc={nodeMetadata(t,i){if(E(i,r.Checks)){let t=i.parent;return!t||!E(t,r.Table)&&!E(t,r.TablePartial)?n.create(e):n.create(new Sc(i))}return n.create(e)},bindNode(t,i){return E(i,r.Checks)?n.create(void 0,new kc(t,i).bind()):n.create(e)},interpretMetadata(t,r){return r.kind===vc.TableChecks?r.declaration instanceof P?new Ac(t,r.declaration).interpret():n.create(void 0):n.create(e)}};function Mc(e,t,n){let r=t,i=e;if(i instanceof B&&i.argumentList&&(r=[i.argumentList,...r],i=i.callee),!i||!Jo(i)||r.length===0)return;let a=[...r],o=cs(i),s=a.pop();if(!(s instanceof R))return;let c=g(a)instanceof z?a.pop():void 0;if(a.length===3){let e=cs(a[1]);return!e||!Ja(e)?void 0:n.create(P,{type:o,name:a[0],as:e,alias:a[2],attributeList:c,body:s})}if(a.length===1)return n.create(P,{type:o,name:a[0],attributeList:c,body:s});if(a.length===0)return n.create(P,{type:o,attributeList:c,body:s})}function V(e){e&&(e instanceof Va?Nc(e):Pc(e))}function Nc(e){e.kind!==v.EOF&&(e.isInvalid=!0)}function Pc(e){if(e instanceof P)V(e.type),V(e.name),V(e.as),V(e.alias),V(e.bodyColon),V(e.attributeList),V(e.body);else if(e instanceof rc)V(e.metadataKeyword),V(e.targetKind),V(e.targetName),V(e.bodyColon),V(e.body);else if(e instanceof ic)e.identifiers.forEach(V);else if(e instanceof F)V(e.name),V(e.colon),V(e.value);else if(e instanceof I)V(e.op),V(e.expression);else if(e instanceof ac)V(e.leftExpression),V(e.op),V(e.rightExpression);else if(e instanceof oc)V(e.op),V(e.expression);else if(e instanceof R)V(e.blockOpenBrace),e.body.forEach(V),V(e.blockCloseBrace);else if(e instanceof z)V(e.listOpenBracket),e.commaList.forEach(V),e.elementList.forEach(V),V(e.listCloseBracket);else if(e instanceof cc)V(e.tupleOpenParen),e.commaList.forEach(V),e.elementList.forEach(V),V(e.tupleCloseParen);else if(e instanceof lc)e.commaList.forEach(V),e.elementList.forEach(V);else if(e instanceof B)V(e.callee),V(e.argumentList);else if(e instanceof L)V(e.callee),e.args.forEach(V);else if(e instanceof mc)V(e.expression);else if(e instanceof sc)V(e.value);else if(e instanceof pc)V(e.variable);else if(e instanceof dc)V(e.literal);else if(e instanceof uc)throw Error(`This case is handled by the TupleExpressionNode case`);else if(e instanceof gc)V(e.array),V(e.indexer);else if(e instanceof $s)e.body.forEach(V),V(e.eof);else if(!(e instanceof hc))if(e instanceof ec)V(e.useKeyword),V(e.specifiers),V(e.fromKeyword),V(e.importPath);else if(e instanceof nc)V(e.openBrace),e.specifiers.forEach(V),V(e.closeBrace);else if(e instanceof tc)V(e.importKind),V(e.name),V(e.asKeyword),V(e.alias);else if(e instanceof fc)V(e.token);else throw Error(`Unreachable case in markInvalidNode`)}function Fc(...e){return e.filter(e=>e!==void 0)}function Ic(e){if(e instanceof $s)return Fc(...e.body,e.eof);if(e instanceof P)return Fc(e.type,e.name,e.as,e.alias,e.attributeList,e.bodyColon,e.body);if(e instanceof rc)return Fc(e.metadataKeyword,e.targetKind,e.targetName,e.bodyColon,e.body);if(e instanceof F)return Fc(e.name,e.colon,e.value);if(e instanceof ic)return e.identifiers;if(e instanceof dc)return e.literal?[e.literal]:[];if(e instanceof pc)return Fc(e.variable);if(e instanceof I)return Fc(e.op,e.expression);if(e instanceof ac)return Fc(e.leftExpression,e.op,e.rightExpression);if(e instanceof oc)return Fc(e.expression,e.op);if(e instanceof sc)return Fc(e.value);if(e instanceof L)return Fc(e.callee,...e.args);if(e instanceof R)return Fc(e.blockOpenBrace,...e.body,e.blockCloseBrace);if(e instanceof z)return Fc(e.listOpenBracket,...Lc(e.elementList,e.commaList),e.listCloseBracket);if(e instanceof cc)return Fc(e.tupleOpenParen,...Lc(e.elementList,e.commaList),e.tupleCloseParen);if(e instanceof lc)return Fc(...Lc(e.elementList,e.commaList));if(e instanceof B)return Fc(e.callee,e.argumentList);if(e instanceof mc)return Fc(e.expression);if(e instanceof gc)return Fc(e.array,e.indexer);if(e instanceof hc)return[];if(e instanceof ec)return Fc(e.useKeyword,e.specifiers,e.fromKeyword,e.importPath);if(e instanceof nc)return Fc(e.openBrace,...e.specifiers,e.closeBrace);if(e instanceof tc)return Fc(e.importKind,e.name,e.asKeyword,e.alias);if(e instanceof fc)return Fc(e.token);throw e instanceof uc?Error(`This case is already handled by TupleExpressionNode`):Error(`Unreachable - no other possible cases`)}function Lc(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 Rc(e,t){return e.reachableFiles(t.filepath).every(t=>e.bindFile(t).getErrors().length===0)}function zc(e){if(!e)return[];if(w(e))return[{variables:[e],tupleElements:[]}];if(e instanceof ac){let t=ms(e);return t?[t]:[...zc(e.leftExpression),...zc(e.rightExpression)]}if(e instanceof I||e instanceof oc)return zc(e.expression);if(e instanceof cc){let t=ms(e);return t?[t]:e.elementList.flatMap(zc)}return[]}function Bc(e,n){let r=n.parentNode;if(!r||!T(r)||r.rightExpression!==n)return;let i=r.leftExpression;for(;T(i);)i=i.rightExpression;return e.nodeReferee(i).getFiltered(t)??void 0}function Vc(e){switch(e){case`<`:return[`1`,`*`];case`<>`:return[`*`,`*`];case`>`:return[`*`,`1`];case`-`:return[`1`,`1`];default:return}}function Hc(e,n){let r=e.symbolMembers(n).getFiltered(t);if(r)return r.find(e=>e instanceof js&&e.isPublicSchema())}function Uc(e,n){let r=e.parseFile(n).getValue().ast;return e.nodeSymbol(r).getFiltered(t)}var Wc=class{constructor(e,t){this.compiler=e,this.declarationNode=t}bind(){return this.declarationNode.body instanceof R?this.bindBody(this.declarationNode.body):[]}bindBody(e){let[,t]=_(e.body,e=>e instanceof L);return this.bindSubElements(t)}bindSubElements(e){return e.flatMap(e=>!e.type||!(e.body instanceof R)?[]: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 L);return t.flatMap(e=>!e.callee||qo(e.callee)?[]:[e.callee,...e.args].flatMap(zc).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 L);return t.flatMap(e=>!e.callee||qo(e.callee)?[]:zc(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 L);return t.flatMap(e=>!e.callee||qo(e.callee)?[]:zc(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 L);return t.flatMap(e=>!e.callee||qo(e.callee)?[]:zc(e.callee).flatMap(e=>e.variables.flatMap(e=>this.compiler.nodeReferee(e).getErrors())))}},Gc=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 R&&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 L&&qo(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 P),n=new Set;for(let e of t){let t=e.type?.value.toLowerCase();t&&n.add(t),e.body instanceof R&&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 L&&qo(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 L))continue;let e=n.callee&&os(n.callee),r=e&&this.compiler.nodeReferee(e).getFiltered(t);if(r?.declaration instanceof P){let e=O(r.declaration.name)??[];if(e.length>0){let t=e[e.length-1],n=e.length>1?e.slice(0,-1).join(`.`):y;i.push({name:t,schemaName:n});continue}}let a=O(n.callee)??[];if(a.length===0)continue;let o=a[a.length-1],s=a.length>1?a[0]: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(M.TableGroup)),e=>e.originalSymbol.intern()).flatMap(e=>e.name===void 0?[]:{name:e.name}):[]}};function Kc(e){return e==null?e:Array.isArray(e)?e.map(String).join(`\0`):typeof e==`object`&&`intern`in e?e.intern():e}var qc=function(e){return e.Table=`table`,e}({}),Jc={getDuplicateError(e,t,n){return new x(b.DUPLICATE_NAME,`DiagramView '${e}' already exists in schema '${t}'`,n)},getFieldDuplicateError(e,t,n){return new x(b.DUPLICATE_DIAGRAMVIEW_FIELD,`Duplicate ${t} ${e}`,n)}},Yc={nodeSymbol(i,a){let o=i.nodeFullname(a).getFiltered(t)?.at(-1);return E(a,r.DiagramView)?new n(i.symbolFactory.create(Vs,{declaration:a,name:o},a.filepath)):D(a,r.DiagramView)&&a instanceof fc?new n(i.symbolFactory.create(Hs,{declaration:a,name:o},a.filepath)):D(a,r.DiagramViewNotes)?new n(i.symbolFactory.create(Gs,{declaration:a,name:o},a.filepath)):D(a,r.DiagramViewTables)?new n(i.symbolFactory.create(Us,{declaration:a,name:o},a.filepath)):D(a,r.DiagramViewTableGroups)?new n(i.symbolFactory.create(Ws,{declaration:a,name:o},a.filepath)):D(a,r.DiagramViewSchemas)?new n(i.symbolFactory.create(Ks,{declaration:a,name:o},a.filepath)):n.create(e)},nodeReferee(i,a){if(a.parent&&ts(a))return n.create(e);let o=Xc(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)?Zc(i,c,a):o.isKind(r.DiagramViewNotes)?Qc(i,c,a,M.StickyNote):o.isKind(r.DiagramViewTableGroups)?Qc(i,c,a,M.TableGroup):o.isKind(r.DiagramViewSchemas)?$c(i,c,a):n.create(e):n.create(void 0)},symbolMembers(i,a){if(!a.isKind(M.DiagramView))return n.create(e);if(!a.declaration)return n.create([]);let o=a.declaration;if(!E(o,r.DiagramView))return n.create([]);let s=[],c=[];for(let e of fs(o))if(e instanceof L){let n=i.nodeSymbol(e).getFiltered(t);n&&c.push(n)}else e instanceof P&&c.push(...fs(e).flatMap(e=>i.nodeSymbol(e).getFiltered(t)??[]));let l=new Map;for(let e of c){if(!e.isKind(M.DiagramViewSchema,M.DiagramViewTableGroup,M.DiagramViewTable,M.DiagramViewNote)||!e.declaration)continue;let n=(i.nodeFullname(e.declaration).getFiltered(t)||[]).map(Dg).join(`.`),r=`${e.kind}:${n}`;if(n!==void 0){let t=e.declaration,i=l.get(r);i?(s.push(Jc.getFieldDuplicateError(n,e.kind,i)),s.push(Jc.getFieldDuplicateError(n,e.kind,t))):l.set(r,t)}}return n.create(c,s)},bindNode(i,a){if(!E(a,r.DiagramView))return n.create(e);let o=new Wc(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 Vs?r.declaration instanceof P?new Gc(t,r.declaration,r,i).interpret():n.create(void 0):n.create(e)}};function Xc(e){let t=e.parentOfKind(L);if(!t)return;let n=t.parentNode;if(!(n instanceof R))return;let i=n.parentNode;if(!(i instanceof P)||!i.isKind(r.DiagramViewTables,r.DiagramViewNotes,r.DiagramViewTableGroups,r.DiagramViewSchemas))return;let a=i.parentNode;if(!(a instanceof R))return;let o=a.parentNode;if(!(!(o instanceof P)||!o.isKind(r.DiagramView)))return i}function Zc(e,r,i){let a=vs(i);if(a===void 0)return n.create(void 0);if(T(i.parentNode)){let t=Bc(e,i);if(t){if(t.isKind(M.Schema)){let r=ss(i),o=e.lookupMembers(t,r?M.Table:M.Schema,a);return o?n.create(o):new n(void 0,[new x(b.BINDING_ERROR,`Could not find ${r?`table`:`schema`} '${a}'`,i)])}return new n(void 0)}let o=e.lookupMembers(r,M.Schema,a);return o?n.create(o):new n(void 0,[new x(b.BINDING_ERROR,`Could not find schema '${a}'`,i)])}let o=e.symbolMembers(r).getFiltered(t)||[];for(let e of o){let t=e.name;if(e.isKind(M.Table)&&a===t)return n.create(e)}let s=e.lookupMembers(r,M.Table,a);return s?n.create(s):new n(void 0,[new x(b.BINDING_ERROR,`Could not find table '${a}'`,i)])}function Qc(e,t,r,i){let a=vs(r);if(a===void 0)return n.create(void 0);let o=e.lookupMembers(t,i,a);return o?n.create(o):new n(void 0,[new x(b.BINDING_ERROR,`Could not find ${i===M.StickyNote?`note`:`tablegroup`} '${a}'`,r)])}function $c(e,t,r){let i=vs(r);if(i===void 0)return n.create(void 0);let a=e.lookupMembers(t,M.Schema,i);return a?n.create(a):new n(void 0,[new x(b.BINDING_ERROR,`Could not find schema '${i}'`,r)])}var el=class{constructor(e,t){this.compiler=e,this.declarationNode=t}bind(){return this.declarationNode.body instanceof R?this.bindBody(this.declarationNode.body):[]}bindBody(e){if(!e||e instanceof L)return[];let t=e.body.filter(e=>e instanceof P);return this.bindSubElements(t)}bindSubElements(e){return e.flatMap(e=>e.type?this.compiler.bindNode(e).getErrors():[])}},tl=class{constructor(e,t,n){this.compiler=e,this.declarationNode=t.declaration,this.symbol=t,this.filepath=n,this.enum={values:[]}}interpret(){this.enum.token=j(this.declarationNode);let e=[...this.interpretName(),...this.interpretBody(this.declarationNode.body)];return n.create(this.enum,e)}interpretName(){let{name:e,schema:t}=this.symbol.interpretedName(this.compiler,this.filepath);return this.enum.name=e,this.enum.schemaName=t,[]}interpretBody(e){return e.body.flatMap(e=>{let t=e,n={};n.token=j(t),n.name=A(t.callee);let r=S(t.args[0]).getValue().note?.at(0);return n.note=r&&{value:xs(k(r.value)),token:j(r)},this.enum.values.push(n),[]})}},nl={getDuplicateError(e,t,n){return new x(b.DUPLICATE_NAME,`Enum '${e}' already exists in schema '${t}'`,n)},getFieldDuplicateError(e,t){return new x(b.DUPLICATE_COLUMN_NAME,`Duplicate enum field '${e}'`,t)}},rl={nodeSymbol(i,a){let o=i.nodeFullname(a).getFiltered(t)?.at(-1);return E(a,r.Enum)?new n(i.symbolFactory.create(Ms,{declaration:a,name:o},a.filepath)):D(a,r.Enum)?new n(i.symbolFactory.create(Ns,{declaration:a,name:o},a.filepath)):n.create(e)},symbolMembers(r,i){if(!i.isKind(M.Enum))return n.create(e);let a=i.declaration;if(!(a instanceof P))return new n([]);let o=fs(a),s=[],c=[];for(let e of o){let n=r.nodeSymbol(e),i=n.getFiltered(t);i&&(s.push(i),c.push(...n.getErrors()))}let l=new Map;for(let e of s){if(!e.isKind(M.EnumField)||!e.declaration)continue;let t=e.name;if(t!==void 0){let n=e.declaration,r=l.get(t);r?(c.push(nl.getFieldDuplicateError(t,r)),c.push(nl.getFieldDuplicateError(t,n))):l.set(t,n)}}return new n(s,c)},bindNode(i,a){if(!E(a,r.Enum))return n.create(e);let o=new el(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 Ms?new tl(t,r,i).interpret():n.create(e)}},il=class{constructor(e,t){this.compiler=e,this.declarationNode=t}bind(){return!(this.declarationNode.parent instanceof P)||!this.declarationNode.parent.isKind(r.Table)&&!this.declarationNode.parent.isKind(r.TablePartial)||!(this.declarationNode.body instanceof R)?[]:this.bindBody(this.declarationNode.body)}get ownerContainerKind(){return this.declarationNode.parent.isKind(r.TablePartial)?`TablePartial`:`Table`}bindBody(e){if(!e)return[];if(e instanceof L)return this.bindFields([e]);let[t,n]=_(e.body,e=>e instanceof L);return[...this.bindFields(t),...this.bindSubElements(n)]}bindFields(e){return e.flatMap(e=>{if(!e.callee)return[];let n=O(this.declarationNode.parent.name)?.join(`.`)??`<unnamed>`;return[e.callee,...e.args].flatMap(zc).flatMap(e=>e.variables.length>1?[]:e.variables.length?e.variables[0]:e.tupleElements).flatMap(e=>{let r=vs(e);if(r===void 0)return[];let i=this.compiler.nodeReferee(e);return!i.getValue()||i.hasValue(t)?new x(b.BINDING_ERROR,`No column named '${r}' inside ${this.ownerContainerKind} '${n}'`,e):[]})})}bindSubElements(e){return e.flatMap(e=>e.type?this.compiler.bindNode(e).getErrors():[])}},al=class{constructor(e,t){this.compiler=e,this.node=t}interpret(){let e=this.node.body;return e instanceof R?new n(e.body.flatMap(e=>{if(!(e instanceof L)||!e.callee)return[];let n=[],r=j(e),a=[e.callee,...e.args],o,s,c,l,u;g(a)instanceof z&&a.pop();let d=this.compiler.nodeSettings(e).getFiltered(t);if(d){o=!!d[i.PK]?.length||void 0,s=!!d[i.Unique]?.length||void 0,c=k(d[i.Name]?.at(0)?.value);let e=d[i.Note]?.at(0);if(e){let t=k(e.value);t!==void 0&&(l={value:t,token:j(e)})}u=A(d[i.Type]?.at(0)?.value)}let f=a.flatMap(e=>{if(!(e instanceof B))return e;let t=[],n=e;for(;n instanceof B&&(n.argumentList&&t.push(n.argumentList),n.callee);)n=n.callee;return t.push(n),t});for(let e of f){let t=hs(e);if(t){for(let e of t.functional)n.push({value:e.value?.value??``,type:`expression`,token:j(e)});for(let e of t.nonFunctional)n.push({value:vs(e)??``,type:`column`,token:j(e)})}}return[{columns:n,pk:o,unique:s,name:c,note:l,type:u,token:r}]})):new n([])}},ol={nodeMetadata(t,i){if(!E(i,r.Indexes))return n.create(e);let a=i.parent;return!a||!E(a,r.Table)&&!E(a,r.TablePartial)?n.create(e):n.create(new Cc(i))},nodeReferee(i,a){if(!w(a)||ts(a))return n.create(e);let o=a;for(;o&&!E(o,r.Indexes);)o=o.parent;if(!o)return n.create(e);let s=o.parent;if(!s||!E(s,r.Table)&&!E(s,r.TablePartial))return n.create(e);let c=i.nodeSymbol(s).getFiltered(t);if(!c)return new n(void 0);let l=w(a)?a.expression.variable?.value??``:``,u=i.lookupMembers(c,M.Column,l);if(u)return n.create(u);let d=E(s,r.TablePartial)?`TablePartial`:`Table`;return new n(void 0,[new x(b.BINDING_ERROR,`Column '${l}' does not exist in ${d} 'public.${c.name}'`,a)])},bindNode(t,i){return E(i,r.Indexes)?n.create(void 0,new il(t,i).bind()):n.create(e)},interpretMetadata(t,r){return r.kind===vc.Indexes?r.declaration instanceof P?new al(t,r.declaration).interpret():n.create(void 0):n.create(e)}};function sl(e,n){let r=ps(n);if(!r||r.length===0)return;let i=r[r.length-1];if(i instanceof cc){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 cc)return;let o=e.nodeReferee(a).getFiltered(t);if(o)return[o.originalSymbol]}function cl(e,t,n,r){let i=e.map(e=>e.intern()).sort().join(`,`),a=t.map(e=>e.intern()).sort().join(`,`);if(i===a)return[new x(b.SAME_ENDPOINT,`Two endpoints are the same`,n)];let o=i<a?`${i}-${a}`:`${a}-${i}`,s=r.get(o);return s?[new x(b.CIRCULAR_REF,`References with same endpoints exist`,n),new x(b.CIRCULAR_REF,`References with same endpoints exist`,s)]:(r.set(o,n),[])}var ll=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 P&&e.isKind(r.Project));a.length>1&&a.forEach(t=>e.push(new x(b.PROJECT_REDEFINED,`Only one project can exist`,t)));for(let t of i.body)if(t instanceof P&&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(...ul(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 P)||!t.type)continue;let i=t;E(i,r.Ref)&&e.push(...this.checkStandaloneRefs(i,n)),E(i,r.Table)&&e.push(...this.checkInlineRefs(i,n)),E(i,r.TablePartial)&&e.push(...this.checkTablePartialSelfRefs(i))}}return e}checkStandaloneRefs(e,t){let n=[];for(let r of fs(e)){if(!(r instanceof L)||!r.callee||!rs(r.callee))continue;let i=r.callee;if(!i.leftExpression||!i.rightExpression)continue;let a=sl(this.compiler,i.leftExpression),o=sl(this.compiler,i.rightExpression);!a||!o||n.push(...cl(a,o,e,t))}return n}checkInlineRefs(e,n){let r=[];for(let a of fs(e)){if(!(a instanceof L)||!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 I)||!i.op||!Lo(i.op.value)||!i.expression)continue;let a=sl(this.compiler,i.expression);if(!a)continue;let o=[e.originalSymbol];r.push(...cl(o,a,t,n))}}return r}checkTablePartialSelfRefs(e){let n=[];for(let r of fs(e)){if(!(r instanceof L)||!r.callee)continue;let e=A(r.callee);if(!e)continue;let a=this.compiler.nodeSettings(r).getFiltered(t);if(!a)continue;let o=a[i.Ref];if(!(!o||o.length===0))for(let t of o){let r=t.value;r instanceof I&&(!r.op||!Lo(r.op.value)||r.expression&&w(r.expression)&&r.expression.expression.variable?.value===e&&n.push(new x(b.SAME_ENDPOINT,`Two endpoints are the same`,t)))}}return n}checkTableGroups(){let e=[],n=new Map,i=this.compiler.reachableFiles(this.ast.filepath);for(let a of i){let i=this.compiler.parseFile(a).getFiltered(t);if(!i)continue;let{ast:o}=i;for(let i of o.body){if(!(i instanceof P)||!i.type)continue;let a=i;if(!E(a,r.TableGroup))continue;let o=a.name?O(a.name):void 0,s=o?o.join(`.`):`<unknown>`,c=fs(a);for(let r of c){if(!(r instanceof L)||!r.callee)continue;let i=ps(r.callee);if(!i||i.length===0)continue;let a=i[i.length-1],o=this.compiler.nodeReferee(a).getFiltered(t)?.originalSymbol;if(!o)continue;let c=n.get(o.id);if(c){let t=O(r.callee),n=t?t.join(`.`):`<unknown>`;e.push(new x(b.TABLE_REAPPEAR_IN_TABLEGROUP,`Table "${n}" already appears in group "${c.groupName}"`,r))}else n.set(o.id,{groupName:s,node:r})}}}return e}};function ul(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 js&&a.push(...ul(e,t,r));return a}function dl(e,t,n){t.isKind(M.Table)?e.externals.tables.push(n):t.isKind(M.Enum)?e.externals.enums.push(n):t.isKind(M.TableGroup)?e.externals.tableGroups.push(n):t.isKind(M.TablePartial)?e.externals.tablePartials.push(n):t.isKind(M.StickyNote)&&e.externals.notes.push(n)}var fl={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`])},pl={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`])},ml={mysql:new Set([`bool`,`boolean`,`bit`]),postgres:new Set([`bool`,`boolean`]),mssql:new Set([`bit`]),oracle:new Set([]),snowflake:new Set([`boolean`])},hl={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`])},gl={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`])},_l={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`])},vl={mysql:new Set([]),postgres:new Set([`serial`,`smallserial`,`bigserial`]),mssql:new Set([]),oracle:new Set([]),snowflake:new Set([])};function yl(e){return e.toLowerCase().trim().replace(/\s+/g,` `)}function bl(e,t){let n=yl(e);return t?fl[t].has(n):Object.values(fl).some(e=>e.has(n))}function xl(e,t){let n=yl(e);return t?pl[t].has(n):Object.values(pl).some(e=>e.has(n))}function Sl(e,t){return bl(e,t)||xl(e,t)}function Cl(e,t){let n=yl(e);return t?ml[t].has(n):Object.values(ml).some(e=>e.has(n))}function wl(e,t){let n=yl(e);return t?hl[t].has(n):Object.values(hl).some(e=>e.has(n))}function Tl(e,t){let n=yl(e);return t?gl[t].has(n):Object.values(gl).some(e=>e.has(n))}function El(e,t){let n=yl(e);return t?_l[t].has(n):Object.values(_l).some(e=>e.has(n))}function Dl(e,t){let n=yl(e);return t?vl[t].has(n):Object.values(vl).some(e=>e.has(n))}function Ol(e,t){if(t)return`string`;if(bl(e))return`integer`;if(xl(e))return`real`;if(Cl(e))return`bool`;if(wl(e))return`string`;let n=yl(e);return n===`date`?`date`:n===`time`||n===`timetz`||n===`time with time zone`||n===`time without time zone`?`time`:El(e)?`datetime`:e}var kl=class extends Error{},Al=class extends kl{constructor(e){super(`Invalid DateTime: ${e.toMessage()}`)}},jl=class extends kl{constructor(e){super(`Invalid Interval: ${e.toMessage()}`)}},Ml=class extends kl{constructor(e){super(`Invalid Duration: ${e.toMessage()}`)}},Nl=class extends kl{},Pl=class extends kl{constructor(e){super(`Invalid unit ${e}`)}},Fl=class extends kl{},Il=class extends kl{constructor(){super(`Zone is an abstract class`)}},H=`numeric`,Ll=`short`,Rl=`long`,zl={year:H,month:H,day:H},Bl={year:H,month:Ll,day:H},Vl={year:H,month:Ll,day:H,weekday:Ll},Hl={year:H,month:Rl,day:H},Ul={year:H,month:Rl,day:H,weekday:Rl},Wl={hour:H,minute:H},Gl={hour:H,minute:H,second:H},Kl={hour:H,minute:H,second:H,timeZoneName:Ll},ql={hour:H,minute:H,second:H,timeZoneName:Rl},Jl={hour:H,minute:H,hourCycle:`h23`},Yl={hour:H,minute:H,second:H,hourCycle:`h23`},Xl={hour:H,minute:H,second:H,hourCycle:`h23`,timeZoneName:Ll},Zl={hour:H,minute:H,second:H,hourCycle:`h23`,timeZoneName:Rl},Ql={year:H,month:H,day:H,hour:H,minute:H},$l={year:H,month:H,day:H,hour:H,minute:H,second:H},eu={year:H,month:Ll,day:H,hour:H,minute:H},tu={year:H,month:Ll,day:H,hour:H,minute:H,second:H},nu={year:H,month:Ll,day:H,weekday:Ll,hour:H,minute:H},ru={year:H,month:Rl,day:H,hour:H,minute:H,timeZoneName:Ll},iu={year:H,month:Rl,day:H,hour:H,minute:H,second:H,timeZoneName:Ll},au={year:H,month:Rl,day:H,weekday:Rl,hour:H,minute:H,timeZoneName:Rl},ou={year:H,month:Rl,day:H,weekday:Rl,hour:H,minute:H,second:H,timeZoneName:Rl},su=class{get type(){throw new Il}get name(){throw new Il}get ianaName(){return this.name}get isUniversal(){throw new Il}offsetName(e,t){throw new Il}formatOffset(e,t){throw new Il}offset(e){throw new Il}equals(e){throw new Il}get isValid(){throw new Il}},cu=null,lu=class e extends su{static get instance(){return cu===null&&(cu=new e),cu}get type(){return`system`}get name(){return new Intl.DateTimeFormat().resolvedOptions().timeZone}get isUniversal(){return!1}offsetName(e,{format:t,locale:n}){return Yd(e,t,n)}formatOffset(e,t){return $d(this.offset(e),t)}offset(e){return-new Date(e).getTimezoneOffset()}equals(e){return e.type===`system`}get isValid(){return!0}},uu=new Map;function du(e){let t=uu.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`}),uu.set(e,t)),t}var fu={year:0,month:1,day:2,era:3,hour:4,minute:5,second:6};function pu(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 mu(e,t){let n=e.formatToParts(t),r=[];for(let e=0;e<n.length;e++){let{type:t,value:i}=n[e],a=fu[t];t===`era`?r[a]=i:W(a)||(r[a]=parseInt(i,10))}return r}var hu=new Map,gu=class e extends su{static create(t){let n=hu.get(t);return n===void 0&&hu.set(t,n=new e(t)),n}static resetCache(){hu.clear(),uu.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 Yd(e,t,n,this.name)}formatOffset(e,t){return $d(this.offset(e),t)}offset(e){if(!this.valid)return NaN;let t=new Date(e);if(isNaN(t))return NaN;let n=du(this.name),[r,i,a,o,s,c,l]=n.formatToParts?mu(n,t):pu(n,t);o===`BC`&&(r=-Math.abs(r)+1);let u=Gd({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}},_u={};function vu(e,t={}){let n=JSON.stringify([e,t]),r=_u[n];return r||(r=new Intl.ListFormat(e,t),_u[n]=r),r}var yu=new Map;function bu(e,t={}){let n=JSON.stringify([e,t]),r=yu.get(n);return r===void 0&&(r=new Intl.DateTimeFormat(e,t),yu.set(n,r)),r}var xu=new Map;function Su(e,t={}){let n=JSON.stringify([e,t]),r=xu.get(n);return r===void 0&&(r=new Intl.NumberFormat(e,t),xu.set(n,r)),r}var Cu=new Map;function wu(e,t={}){let{base:n,...r}=t,i=JSON.stringify([e,r]),a=Cu.get(i);return a===void 0&&(a=new Intl.RelativeTimeFormat(e,t),Cu.set(i,a)),a}var Tu=null;function Eu(){return Tu||(Tu=new Intl.DateTimeFormat().resolvedOptions().locale,Tu)}var Du=new Map;function Ou(e){let t=Du.get(e);return t===void 0&&(t=new Intl.DateTimeFormat(e).resolvedOptions(),Du.set(e,t)),t}var ku=new Map;function Au(e){let t=ku.get(e);if(!t){let n=new Intl.Locale(e);t=`getWeekInfo`in n?n.getWeekInfo():n.weekInfo,`minimalDays`in t||(t={...Bu,...t}),ku.set(e,t)}return t}function ju(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=bu(e).resolvedOptions(),r=e}catch{let i=e.substring(0,n);t=bu(i).resolvedOptions(),r=i}let{numberingSystem:i,calendar:a}=t;return[r,i,a]}}function Mu(e,t,n){return n||t?(e.includes(`-u-`)||(e+=`-u`),n&&(e+=`-ca-${n}`),t&&(e+=`-nu-${t}`),e):e}function Nu(e){let t=[];for(let n=1;n<=12;n++){let r=K.utc(2009,n,1);t.push(e(r))}return t}function Pu(e){let t=[];for(let n=1;n<=7;n++){let r=K.utc(2016,11,13+n);t.push(e(r))}return t}function Fu(e,t,n,r){let i=e.listingMode();return i===`error`?null:i===`en`?n(t):r(t)}function Iu(e){return e.numberingSystem&&e.numberingSystem!==`latn`?!1:e.numberingSystem===`latn`||!e.locale||e.locale.startsWith(`en`)||Ou(e.locale).numberingSystem===`latn`}var Lu=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=Su(e,t)}}format(e){if(this.inf){let t=this.floor?Math.floor(e):e;return this.inf.format(t)}else return Ld(this.floor?Math.floor(e):Vd(e,3),this.padTo)}},Ru=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&&gu.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=bu(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()}},zu=class{constructor(e,t,n){this.opts={style:`long`,...n},!t&&Od()&&(this.rtf=wu(e,n))}format(e,t){return this.rtf?this.rtf.format(e,t):yf(t,e,this.opts.numeric,this.opts.style!==`long`)}formatToParts(e,t){return this.rtf?this.rtf.formatToParts(e,t):[]}},Bu={firstDay:1,minimalDays:4,weekend:[6,7]},U=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||od.defaultLocale;return new e(o||(a?`en-US`:Eu()),n||od.defaultNumberingSystem,r||od.defaultOutputCalendar,Pd(i)||od.defaultWeekSettings,o)}static resetCache(){Tu=null,yu.clear(),xu.clear(),Cu.clear(),Du.clear(),ku.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]=ju(e);this.locale=a,this.numberingSystem=t||o||null,this.outputCalendar=n||s||null,this.weekSettings=r,this.intl=Mu(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??=Iu(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,Pd(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 Fu(this,e,af,()=>{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]=Nu(t)}return this.monthsCache[i][e]})}weekdays(e,t=!1){return Fu(this,e,lf,()=>{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]=Pu(e=>this.extract(e,n,`weekday`))),this.weekdaysCache[r][e]})}meridiems(){return Fu(this,void 0,()=>uf,()=>{if(!this.meridiemCache){let e={hour:`numeric`,hourCycle:`h12`};this.meridiemCache=[K.utc(2016,11,13,9),K.utc(2016,11,13,19)].map(t=>this.extract(t,e,`dayperiod`))}return this.meridiemCache})}eras(e){return Fu(this,e,mf,()=>{let t={era:e};return this.eraCache[e]||(this.eraCache[e]=[K.utc(-40,1,1),K.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 Lu(this.intl,e.forceSimple||this.fastNumbers,e)}dtFormatter(e,t={}){return new Ru(e,this.intl,t)}relFormatter(e={}){return new zu(this.intl,this.isEnglish(),e)}listFormatter(e={}){return vu(this.intl,e)}isEnglish(){return this.locale===`en`||this.locale.toLowerCase()===`en-us`||Ou(this.intl).locale.startsWith(`en-us`)}getWeekSettings(){return this.weekSettings?this.weekSettings:kd()?Au(this.locale):Bu}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})`}},Vu=null,Hu=class e extends su{static get utcInstance(){return Vu===null&&(Vu=new e(0)),Vu}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(Xd(n[1],n[2]))}return null}constructor(e){super(),this.fixed=e}get type(){return`fixed`}get name(){return this.fixed===0?`UTC`:`UTC${$d(this.fixed,`narrow`)}`}get ianaName(){return this.fixed===0?`Etc/UTC`:`Etc/GMT${$d(-this.fixed,`narrow`)}`}offsetName(){return this.name}formatOffset(e,t){return $d(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}},Uu=class extends su{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 Wu(e,t){if(W(e)||e===null)return t;if(e instanceof su)return e;if(Ed(e)){let n=e.toLowerCase();return n==="default"?t:n===`local`||n===`system`?lu.instance:n===`utc`||n===`gmt`?Hu.utcInstance:Hu.parseSpecifier(n)||gu.create(e)}else if(wd(e))return Hu.instance(e);else if(typeof e==`object`&&`offset`in e&&typeof e.offset==`function`)return e;else return new Uu(e)}var Gu={arab:`[٠-٩]`,arabext:`[۰-۹]`,bali:`[᭐-᭙]`,beng:`[০-৯]`,deva:`[०-९]`,fullwide:`[0-9]`,gujr:`[૦-૯]`,hanidec:`[〇|一|二|三|四|五|六|七|八|九]`,khmr:`[០-៩]`,knda:`[೦-೯]`,laoo:`[໐-໙]`,limb:`[᥆-᥏]`,mlym:`[൦-൯]`,mong:`[᠐-᠙]`,mymr:`[၀-၉]`,orya:`[୦-୯]`,tamldec:`[௦-௯]`,telu:`[౦-౯]`,thai:`[๐-๙]`,tibt:`[༠-༩]`,latn:`\\d`},Ku={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]},qu=Gu.hanidec.replace(/[\[|\]]/g,``).split(``);function Ju(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(Gu.hanidec)!==-1)t+=qu.indexOf(e[n]);else for(let e in Ku){let[n,i]=Ku[e];r>=n&&r<=i&&(t+=r-n)}}return parseInt(t,10)}else return t}var Yu=new Map;function Xu(){Yu.clear()}function Zu({numberingSystem:e},t=``){let n=e||`latn`,r=Yu.get(n);r===void 0&&(r=new Map,Yu.set(n,r));let i=r.get(t);return i===void 0&&(i=RegExp(`${Gu[n]}${t}`),r.set(t,i)),i}var Qu=()=>Date.now(),$u=`system`,ed=null,td=null,nd=null,rd=60,id,ad=null,od=class{static get now(){return Qu}static set now(e){Qu=e}static set defaultZone(e){$u=e}static get defaultZone(){return Wu($u,lu.instance)}static get defaultLocale(){return ed}static set defaultLocale(e){ed=e}static get defaultNumberingSystem(){return td}static set defaultNumberingSystem(e){td=e}static get defaultOutputCalendar(){return nd}static set defaultOutputCalendar(e){nd=e}static get defaultWeekSettings(){return ad}static set defaultWeekSettings(e){ad=Pd(e)}static get twoDigitCutoffYear(){return rd}static set twoDigitCutoffYear(e){rd=e%100}static get throwOnInvalid(){return id}static set throwOnInvalid(e){id=e}static resetCaches(){U.resetCache(),gu.resetCache(),K.resetCache(),Xu()}},sd=class{constructor(e,t){this.reason=e,this.explanation=t}toMessage(){return this.explanation?`${this.reason}: ${this.explanation}`:this.reason}},cd=[0,31,59,90,120,151,181,212,243,273,304,334],ld=[0,31,60,91,121,152,182,213,244,274,305,335];function ud(e,t){return new sd(`unit out of range`,`you specified ${t} (of type ${typeof t}) as a ${e}, which is invalid`)}function dd(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 fd(e,t,n){return n+(Hd(e)?ld:cd)[t-1]}function pd(e,t){let n=Hd(e)?ld:cd,r=n.findIndex(e=>e<t),i=t-n[r];return{month:r+1,day:i}}function md(e,t){return(e-t+7)%7+1}function hd(e,t=4,n=1){let{year:r,month:i,day:a}=e,o=fd(r,i,a),s=md(dd(r,i,a),n),c=Math.floor((o-s+14-t)/7),l;return c<1?(l=r-1,c=qd(l,t,n)):c>qd(r,t,n)?(l=r+1,c=1):l=r,{weekYear:l,weekNumber:c,weekday:s,...ef(e)}}function gd(e,t=4,n=1){let{weekYear:r,weekNumber:i,weekday:a}=e,o=md(dd(r,1,t),n),s=Ud(r),c=i*7+a-o-7+t,l;c<1?(l=r-1,c+=Ud(l)):c>s?(l=r+1,c-=Ud(r)):l=r;let{month:u,day:d}=pd(l,c);return{year:l,month:u,day:d,...ef(e)}}function _d(e){let{year:t,month:n,day:r}=e;return{year:t,ordinal:fd(t,n,r),...ef(e)}}function vd(e){let{year:t,ordinal:n}=e,{month:r,day:i}=pd(t,n);return{year:t,month:r,day:i,...ef(e)}}function yd(e,t){if(!W(e.localWeekday)||!W(e.localWeekNumber)||!W(e.localWeekYear)){if(!W(e.weekday)||!W(e.weekNumber)||!W(e.weekYear))throw new Nl(`Cannot mix locale-based week fields with ISO-based week fields`);return W(e.localWeekday)||(e.weekday=e.localWeekday),W(e.localWeekNumber)||(e.weekNumber=e.localWeekNumber),W(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 bd(e,t=4,n=1){let r=Td(e.weekYear),i=Fd(e.weekNumber,1,qd(e.weekYear,t,n)),a=Fd(e.weekday,1,7);return r?i?a?!1:ud(`weekday`,e.weekday):ud(`week`,e.weekNumber):ud(`weekYear`,e.weekYear)}function xd(e){let t=Td(e.year),n=Fd(e.ordinal,1,Ud(e.year));return t?n?!1:ud(`ordinal`,e.ordinal):ud(`year`,e.year)}function Sd(e){let t=Td(e.year),n=Fd(e.month,1,12),r=Fd(e.day,1,Wd(e.year,e.month));return t?n?r?!1:ud(`day`,e.day):ud(`month`,e.month):ud(`year`,e.year)}function Cd(e){let{hour:t,minute:n,second:r,millisecond:i}=e,a=Fd(t,0,23)||t===24&&n===0&&r===0&&i===0,o=Fd(n,0,59),s=Fd(r,0,59),c=Fd(i,0,999);return a?o?s?c?!1:ud(`millisecond`,i):ud(`second`,r):ud(`minute`,n):ud(`hour`,t)}function W(e){return e===void 0}function wd(e){return typeof e==`number`}function Td(e){return typeof e==`number`&&e%1==0}function Ed(e){return typeof e==`string`}function Dd(e){return Object.prototype.toString.call(e)===`[object Date]`}function Od(){try{return typeof Intl<`u`&&!!Intl.RelativeTimeFormat}catch{return!1}}function kd(){try{return typeof Intl<`u`&&!!Intl.Locale&&(`weekInfo`in Intl.Locale.prototype||`getWeekInfo`in Intl.Locale.prototype)}catch{return!1}}function Ad(e){return Array.isArray(e)?e:[e]}function jd(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 Md(e,t){return t.reduce((t,n)=>(t[n]=e[n],t),{})}function Nd(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function Pd(e){if(e==null)return null;if(typeof e!=`object`)throw new Fl(`Week settings must be an object`);if(!Fd(e.firstDay,1,7)||!Fd(e.minimalDays,1,7)||!Array.isArray(e.weekend)||e.weekend.some(e=>!Fd(e,1,7)))throw new Fl(`Invalid week settings`);return{firstDay:e.firstDay,minimalDays:e.minimalDays,weekend:Array.from(e.weekend)}}function Fd(e,t,n){return Td(e)&&e>=t&&e<=n}function Id(e,t){return e-t*Math.floor(e/t)}function Ld(e,t=2){let n=e<0,r;return r=n?`-`+(``+-e).padStart(t,`0`):(``+e).padStart(t,`0`),r}function Rd(e){if(!(W(e)||e===null||e===``))return parseInt(e,10)}function zd(e){if(!(W(e)||e===null||e===``))return parseFloat(e)}function Bd(e){if(!(W(e)||e===null||e===``)){let t=parseFloat(`0.`+e)*1e3;return Math.floor(t)}}function Vd(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 Hd(e){return e%4==0&&(e%100!=0||e%400==0)}function Ud(e){return Hd(e)?366:365}function Wd(e,t){let n=Id(t-1,12)+1,r=e+(t-n)/12;return n===2?Hd(r)?29:28:[31,null,31,30,31,30,31,31,30,31,30,31][n-1]}function Gd(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 Kd(e,t,n){return-md(dd(e,1,t),n)+t-1}function qd(e,t=4,n=1){let r=Kd(e,t,n),i=Kd(e+1,t,n);return(Ud(e)-r+i)/7}function Jd(e){return e>99?e:e>od.twoDigitCutoffYear?1900+e:2e3+e}function Yd(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 Xd(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 Zd(e){let t=Number(e);if(typeof e==`boolean`||e===``||!Number.isFinite(t))throw new Fl(`Invalid unit value ${e}`);return t}function Qd(e,t){let n={};for(let r in e)if(Nd(e,r)){let i=e[r];if(i==null)continue;n[t(r)]=Zd(i)}return n}function $d(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}${Ld(n,2)}:${Ld(r,2)}`;case`narrow`:return`${i}${n}${r>0?`:${r}`:``}`;case`techie`:return`${i}${Ld(n,2)}${Ld(r,2)}`;default:throw RangeError(`Value format ${t} is out of range for property format`)}}function ef(e){return Md(e,[`hour`,`minute`,`second`,`millisecond`])}var tf=[`January`,`February`,`March`,`April`,`May`,`June`,`July`,`August`,`September`,`October`,`November`,`December`],nf=[`Jan`,`Feb`,`Mar`,`Apr`,`May`,`Jun`,`Jul`,`Aug`,`Sep`,`Oct`,`Nov`,`Dec`],rf=[`J`,`F`,`M`,`A`,`M`,`J`,`J`,`A`,`S`,`O`,`N`,`D`];function af(e){switch(e){case`narrow`:return[...rf];case`short`:return[...nf];case`long`:return[...tf];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 of=[`Monday`,`Tuesday`,`Wednesday`,`Thursday`,`Friday`,`Saturday`,`Sunday`],sf=[`Mon`,`Tue`,`Wed`,`Thu`,`Fri`,`Sat`,`Sun`],cf=[`M`,`T`,`W`,`T`,`F`,`S`,`S`];function lf(e){switch(e){case`narrow`:return[...cf];case`short`:return[...sf];case`long`:return[...of];case`numeric`:return[`1`,`2`,`3`,`4`,`5`,`6`,`7`];default:return null}}var uf=[`AM`,`PM`],df=[`Before Christ`,`Anno Domini`],ff=[`BC`,`AD`],pf=[`B`,`A`];function mf(e){switch(e){case`narrow`:return[...pf];case`short`:return[...ff];case`long`:return[...df];default:return null}}function hf(e){return uf[e.hour<12?0:1]}function gf(e,t){return lf(t)[e.weekday-1]}function _f(e,t){return af(t)[e.month-1]}function vf(e,t){return mf(t)[e.year<0?0:1]}function yf(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 bf(e,t){let n=``;for(let r of e)r.literal?n+=r.val:n+=t(r.val);return n}var xf={D:zl,DD:Bl,DDD:Hl,DDDD:Ul,t:Wl,tt:Gl,ttt:Kl,tttt:ql,T:Jl,TT:Yl,TTT:Xl,TTTT:Zl,f:Ql,ff:eu,fff:ru,ffff:au,F:$l,FF:tu,FFF:iu,FFFF:ou},Sf=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 xf[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 Ld(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?hf(t):a({hour:`numeric`,hourCycle:`h12`},`dayperiod`),c=(e,n)=>r?_f(t,e):a(n?{month:e}:{month:e,day:`numeric`},`month`),l=(e,n)=>r?gf(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?vf(t,e):a({era:e},`era`);return bf(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 bf(o,a(c,{isNegativeDuration:c<0,largestUnit:Object.keys(c.values)[0]}))}},Cf=/[A-Za-z_+-]{1,256}(?::?\/[A-Za-z0-9_+-]{1,256}(?:\/[A-Za-z0-9_+-]{1,256})?)?/;function wf(...e){let t=e.reduce((e,t)=>e+t.source,``);return RegExp(`^${t}$`)}function Tf(...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 Ef(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 Df(...e){return(t,n)=>{let r={},i;for(i=0;i<e.length;i++)r[e[i]]=Rd(t[n+i]);return[r,null,n+i]}}var Of=/(?:([Zz])|([+-]\d\d)(?::?(\d\d))?)/,kf=`(?:${Of.source}?(?:\\[(${Cf.source})\\])?)?`,Af=/(\d\d)(?::?(\d\d)(?::?(\d\d)(?:[.,](\d{1,30}))?)?)?/,jf=RegExp(`${Af.source}${kf}`),Mf=RegExp(`(?:[Tt]${jf.source})?`),Nf=/([+-]\d{6}|\d{4})(?:-?(\d\d)(?:-?(\d\d))?)?/,Pf=/(\d{4})-?W(\d\d)(?:-?(\d))?/,Ff=/(\d{4})-?(\d{3})/,If=Df(`weekYear`,`weekNumber`,`weekDay`),Lf=Df(`year`,`ordinal`),Rf=/(\d{4})-(\d\d)-(\d\d)/,zf=RegExp(`${Af.source} ?(?:${Of.source}|(${Cf.source}))?`),Bf=RegExp(`(?: ${zf.source})?`);function Vf(e,t,n){let r=e[t];return W(r)?n:Rd(r)}function Hf(e,t){return[{year:Vf(e,t),month:Vf(e,t+1,1),day:Vf(e,t+2,1)},null,t+3]}function Uf(e,t){return[{hours:Vf(e,t,0),minutes:Vf(e,t+1,0),seconds:Vf(e,t+2,0),milliseconds:Bd(e[t+3])},null,t+4]}function Wf(e,t){let n=!e[t]&&!e[t+1],r=Xd(e[t+1],e[t+2]);return[{},n?null:Hu.instance(r),t+3]}function Gf(e,t){return[{},e[t]?gu.create(e[t]):null,t+1]}var Kf=RegExp(`^T?${Af.source}$`),qf=/^-?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 Jf(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(zd(n)),months:f(zd(r)),weeks:f(zd(i)),days:f(zd(a)),hours:f(zd(o)),minutes:f(zd(s)),seconds:f(zd(c),c===`-0`),milliseconds:f(Bd(l),d)}]}var Yf={GMT:0,EDT:-240,EST:-300,CDT:-300,CST:-360,MDT:-360,MST:-420,PDT:-420,PST:-480};function Xf(e,t,n,r,i,a,o){let s={year:t.length===2?Jd(Rd(t)):Rd(t),month:nf.indexOf(n)+1,day:Rd(r),hour:Rd(i),minute:Rd(a)};return o&&(s.second=Rd(o)),e&&(s.weekday=e.length>3?of.indexOf(e)+1:sf.indexOf(e)+1),s}var Zf=/^(?:(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 Qf(e){let[,t,n,r,i,a,o,s,c,l,u,d]=e,f=Xf(t,i,r,n,a,o,s),p;return p=c?Yf[c]:l?0:Xd(u,d),[f,new Hu(p)]}function $f(e){return e.replace(/\([^()]*\)|[\n\t]/g,` `).replace(/(\s\s+)/g,` `).trim()}var ep=/^(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$/,tp=/^(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$/,np=/^(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 rp(e){let[,t,n,r,i,a,o,s]=e;return[Xf(t,i,r,n,a,o,s),Hu.utcInstance]}function ip(e){let[,t,n,r,i,a,o,s]=e;return[Xf(t,s,n,r,i,a,o),Hu.utcInstance]}var ap=wf(Nf,Mf),op=wf(Pf,Mf),sp=wf(Ff,Mf),cp=wf(jf),lp=Tf(Hf,Uf,Wf,Gf),up=Tf(If,Uf,Wf,Gf),dp=Tf(Lf,Uf,Wf,Gf),fp=Tf(Uf,Wf,Gf);function pp(e){return Ef(e,[ap,lp],[op,up],[sp,dp],[cp,fp])}function mp(e){return Ef($f(e),[Zf,Qf])}function hp(e){return Ef(e,[ep,rp],[tp,rp],[np,ip])}function gp(e){return Ef(e,[qf,Jf])}var _p=Tf(Uf);function vp(e){return Ef(e,[Kf,_p])}var yp=wf(Rf,Bf),bp=wf(zf),xp=Tf(Uf,Wf,Gf);function Sp(e){return Ef(e,[yp,lp],[bp,xp])}var Cp=`Invalid Duration`,wp={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}},Tp={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},...wp},Ep=146097/400,Dp=146097/4800,Op={years:{quarters:4,months:12,weeks:Ep/7,days:Ep,hours:Ep*24,minutes:Ep*24*60,seconds:Ep*24*60*60,milliseconds:Ep*24*60*60*1e3},quarters:{months:3,weeks:Ep/28,days:Ep/4,hours:Ep*24/4,minutes:Ep*24*60/4,seconds:Ep*24*60*60/4,milliseconds:Ep*24*60*60*1e3/4},months:{weeks:Dp/7,days:Dp,hours:Dp*24,minutes:Dp*24*60,seconds:Dp*24*60*60,milliseconds:Dp*24*60*60*1e3},...wp},kp=[`years`,`quarters`,`months`,`weeks`,`days`,`hours`,`minutes`,`seconds`,`milliseconds`],Ap=kp.slice(0).reverse();function jp(e,t,n=!1){return new Fp({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 Mp(e,t){let n=t.milliseconds??0;for(let r of Ap.slice(1))t[r]&&(n+=t[r]*e[r].milliseconds);return n}function Np(e,t){let n=Mp(e,t)<0?-1:1;kp.reduceRight((r,i)=>{if(W(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),kp.reduce((n,r)=>{if(W(t[r]))return n;if(n){let i=t[n]%1;t[n]-=i,t[r]+=i*e[n][r]}return r},null)}function Pp(e){let t={};for(let[n,r]of Object.entries(e))r!==0&&(t[n]=r);return t}var Fp=class e{constructor(e){let t=e.conversionAccuracy===`longterm`||!1,n=t?Op:Tp;e.matrix&&(n=e.matrix),this.values=e.values,this.loc=e.loc||U.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 Fl(`Duration.fromObject: argument expected to be an object, got ${t===null?`null`:typeof t}`);return new e({values:Qd(t,e.normalizeUnit),loc:U.fromObject(n),conversionAccuracy:n.conversionAccuracy,matrix:n.matrix})}static fromDurationLike(t){if(wd(t))return e.fromMillis(t);if(e.isDuration(t))return t;if(typeof t==`object`)return e.fromObject(t);throw new Fl(`Unknown duration argument ${t} of type ${typeof t}`)}static fromISO(t,n){let[r]=gp(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]=vp(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 Fl(`need to specify a reason the Duration is invalid`);let r=t instanceof sd?t:new sd(t,n);if(od.throwOnInvalid)throw new Ml(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 Pl(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?Sf.create(this.loc,n).formatDurationFromString(this,e):Cp}toHuman(e={}){if(!this.isValid)return Cp;let t=e.showZeros!==!1,n=kp.map(n=>{let r=this.values[n];return W(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+=Vd(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},K.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?Mp(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 kp)(Nd(n.values,e)||Nd(this.values,e))&&(r[e]=n.get(e)+this.get(e));return jp(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]=Zd(e(this.values[n],n));return jp(this,{values:t},!0)}get(t){return this[e.normalizeUnit(t)]}set(t){if(!this.isValid)return this;let n={...this.values,...Qd(t,e.normalizeUnit)};return jp(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 jp(this,i)}as(e){return this.isValid?this.shiftTo(e).get(e):NaN}normalize(){if(!this.isValid)return this;let e=this.toObject();return Np(this.matrix,e),jp(this,{values:e},!0)}rescale(){if(!this.isValid)return this;let e=Pp(this.normalize().shiftToAll().toObject());return jp(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 kp)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;wd(i[e])&&(t+=i[e]);let o=Math.trunc(t);n[e]=o,r[e]=(t*1e3-o*1e3)/1e3}else wd(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 Np(this.matrix,n),jp(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 jp(this,{values:e},!0)}removeZeros(){if(!this.isValid)return this;let e=Pp(this.values);return jp(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 kp)if(!t(this.values[n],e.values[n]))return!1;return!0}},Ip=`Invalid Interval`;function Lp(e,t){return!e||!e.isValid?Rp.invalid(`missing or invalid start`):!t||!t.isValid?Rp.invalid(`missing or invalid end`):t<e?Rp.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 Rp=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 Fl(`need to specify a reason the Interval is invalid`);let r=t instanceof sd?t:new sd(t,n);if(od.throwOnInvalid)throw new jl(r);return new e({invalid:r})}static fromDateTimes(t,n){let r=Bm(t),i=Bm(n);return Lp(r,i)??new e({start:r,end:i})}static after(t,n){let r=Fp.fromDurationLike(n),i=Bm(t);return e.fromDateTimes(i,i.plus(r))}static before(t,n){let r=Fp.fromDurationLike(n),i=Bm(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=K.fromISO(r,n),a=t.isValid}catch{a=!1}let o,s;try{o=K.fromISO(i,n),s=o.isValid}catch{s=!1}if(a&&s)return e.fromDateTimes(t,o);if(a){let r=Fp.fromISO(i,n);if(r.isValid)return e.after(t,r)}else if(s){let t=Fp.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(Bm).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=Fp.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()})`:Ip}[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=zl,t={}){return this.isValid?Sf.create(this.s.loc.clone(t),e).formatInterval(this):Ip}toISO(e){return this.isValid?`${this.s.toISO(e)}/${this.e.toISO(e)}`:Ip}toISODate(){return this.isValid?`${this.s.toISODate()}/${this.e.toISODate()}`:Ip}toISOTime(e){return this.isValid?`${this.s.toISOTime(e)}/${this.e.toISOTime(e)}`:Ip}toFormat(e,{separator:t=` – `}={}){return this.isValid?`${this.s.toFormat(e)}${t}${this.e.toFormat(e)}`:Ip}toDuration(e,t){return this.isValid?this.e.diff(this.s,e,t):Fp.invalid(this.invalidReason)}mapEndpoints(t){return e.fromDateTimes(t(this.s),t(this.e))}},zp=class{static hasDST(e=od.defaultZone){let t=K.now().setZone(e).set({month:12});return!e.isUniversal&&t.offset!==t.set({month:6}).offset}static isValidIANAZone(e){return gu.isValidZone(e)}static normalizeZone(e){return Wu(e,od.defaultZone)}static getStartOfWeek({locale:e=null,locObj:t=null}={}){return(t||U.create(e)).getStartOfWeek()}static getMinimumDaysInFirstWeek({locale:e=null,locObj:t=null}={}){return(t||U.create(e)).getMinDaysInFirstWeek()}static getWeekendWeekdays({locale:e=null,locObj:t=null}={}){return(t||U.create(e)).getWeekendDays().slice()}static months(e=`long`,{locale:t=null,numberingSystem:n=null,locObj:r=null,outputCalendar:i=`gregory`}={}){return(r||U.create(t,n,i)).months(e)}static monthsFormat(e=`long`,{locale:t=null,numberingSystem:n=null,locObj:r=null,outputCalendar:i=`gregory`}={}){return(r||U.create(t,n,i)).months(e,!0)}static weekdays(e=`long`,{locale:t=null,numberingSystem:n=null,locObj:r=null}={}){return(r||U.create(t,n,null)).weekdays(e)}static weekdaysFormat(e=`long`,{locale:t=null,numberingSystem:n=null,locObj:r=null}={}){return(r||U.create(t,n,null)).weekdays(e,!0)}static meridiems({locale:e=null}={}){return U.create(e).meridiems()}static eras(e=`short`,{locale:t=null}={}){return U.create(t,null,`gregory`).eras(e)}static features(){return{relative:Od(),localeWeek:kd()}}};function Bp(e,t){let n=e=>e.toUTC(0,{keepLocalTime:!0}).startOf(`day`).valueOf(),r=n(t)-n(e);return Math.floor(Fp.fromMillis(r).as(`days`))}function Vp(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=Bp(e,t);return(n-n%7)/7}],[`days`,Bp]],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 Hp(e,t,n,r){let[i,a,o,s]=Vp(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=Fp.fromObject(a,r);return l.length>0?Fp.fromMillis(c,r).shiftTo(...l).plus(u):u}var Up=`missing Intl.DateTimeFormat.formatToParts support`;function G(e,t=e=>e){return{regex:e,deser:([e])=>t(Ju(e))}}var Wp=`[ \xA0]`,Gp=new RegExp(Wp,`g`);function Kp(e){return e.replace(/\./g,`\\.?`).replace(Gp,Wp)}function qp(e){return e.replace(/\./g,``).replace(Gp,` `).toLowerCase()}function Jp(e,t){return e===null?null:{regex:RegExp(e.map(Kp).join(`|`)),deser:([n])=>e.findIndex(e=>qp(n)===qp(e))+t}}function Yp(e,t){return{regex:e,deser:([,e,t])=>Xd(e,t),groups:t}}function Xp(e){return{regex:e,deser:([e])=>e}}function Zp(e){return e.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,`\\$&`)}function Qp(e,t){let n=Zu(t),r=Zu(t,`{2}`),i=Zu(t,`{3}`),a=Zu(t,`{4}`),o=Zu(t,`{6}`),s=Zu(t,`{1,2}`),c=Zu(t,`{1,3}`),l=Zu(t,`{1,6}`),u=Zu(t,`{1,9}`),d=Zu(t,`{2,4}`),f=Zu(t,`{4,6}`),p=e=>({regex:RegExp(Zp(e.val)),deser:([e])=>e,literal:!0}),m=(m=>{if(e.literal)return p(m);switch(m.val){case`G`:return Jp(t.eras(`short`),0);case`GG`:return Jp(t.eras(`long`),0);case`y`:return G(l);case`yy`:return G(d,Jd);case`yyyy`:return G(a);case`yyyyy`:return G(f);case`yyyyyy`:return G(o);case`M`:return G(s);case`MM`:return G(r);case`MMM`:return Jp(t.months(`short`,!0),1);case`MMMM`:return Jp(t.months(`long`,!0),1);case`L`:return G(s);case`LL`:return G(r);case`LLL`:return Jp(t.months(`short`,!1),1);case`LLLL`:return Jp(t.months(`long`,!1),1);case`d`:return G(s);case`dd`:return G(r);case`o`:return G(c);case`ooo`:return G(i);case`HH`:return G(r);case`H`:return G(s);case`hh`:return G(r);case`h`:return G(s);case`mm`:return G(r);case`m`:return G(s);case`q`:return G(s);case`qq`:return G(r);case`s`:return G(s);case`ss`:return G(r);case`S`:return G(c);case`SSS`:return G(i);case`u`:return Xp(u);case`uu`:return Xp(s);case`uuu`:return G(n);case`a`:return Jp(t.meridiems(),0);case`kkkk`:return G(a);case`kk`:return G(d,Jd);case`W`:return G(s);case`WW`:return G(r);case`E`:case`c`:return G(n);case`EEE`:return Jp(t.weekdays(`short`,!1),1);case`EEEE`:return Jp(t.weekdays(`long`,!1),1);case`ccc`:return Jp(t.weekdays(`short`,!0),1);case`cccc`:return Jp(t.weekdays(`long`,!0),1);case`Z`:case`ZZ`:return Yp(RegExp(`([+-]${s.source})(?::(${r.source}))?`),2);case`ZZZ`:return Yp(RegExp(`([+-]${s.source})(${r.source})?`),2);case`z`:return Xp(/[a-z_+-/]{1,256}?/i);case` `:return Xp(/[^\S\n\r]/);default:return p(m)}})(e)||{invalidReason:Up};return m.token=e,m}var $p={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 em(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=$p[o];if(typeof s==`object`&&(s=s[a]),s)return{literal:!1,val:s}}function tm(e){return[`^${e.map(e=>e.regex).reduce((e,t)=>`${e}(${t.source})`,``)}$`,e]}function nm(e,t,n){let r=e.match(t);if(r){let e={},t=1;for(let i in n)if(Nd(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 rm(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 W(e.z)||(n=gu.create(e.z)),W(e.Z)||(n||=new Hu(e.Z),r=e.Z),W(e.q)||(e.M=(e.q-1)*3+1),W(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),W(e.u)||(e.S=Bd(e.u)),[Object.keys(e).reduce((n,r)=>{let i=t(r);return i&&(n[i]=e[r]),n},{}),n,r]}var im=null;function am(){return im||=K.fromMillis(1555555555555),im}function om(e,t){if(e.literal)return e;let n=dm(Sf.macroTokenToFormatOpts(e.val),t);return n==null||n.includes(void 0)?e:n}function sm(e,t){return Array.prototype.concat(...e.map(e=>om(e,t)))}var cm=class{constructor(e,t){if(this.locale=e,this.format=t,this.tokens=sm(Sf.parseFormat(t),e),this.units=this.tokens.map(t=>Qp(t,e)),this.disqualifyingUnit=this.units.find(e=>e.invalidReason),!this.disqualifyingUnit){let[e,t]=tm(this.units);this.regex=RegExp(e,`i`),this.handlers=t}}explainFromTokens(e){if(this.isValid){let[t,n]=nm(e,this.regex,this.handlers),[r,i,a]=n?rm(n):[null,null,void 0];if(Nd(n,`a`)&&Nd(n,`H`))throw new Nl(`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 lm(e,t,n){return new cm(e,n).explainFromTokens(t)}function um(e,t,n){let{result:r,zone:i,specificOffset:a,invalidReason:o}=lm(e,t,n);return[r,i,a,o]}function dm(e,t){if(!e)return null;let n=Sf.create(t,e).dtFormatter(am()),r=n.formatToParts(),i=n.resolvedOptions();return r.map(t=>em(t,e,i))}var fm=`Invalid DateTime`,pm=864e13;function mm(e){return new sd(`unsupported zone`,`the zone "${e.name}" is not supported`)}function hm(e){return e.weekData===null&&(e.weekData=hd(e.c)),e.weekData}function gm(e){return e.localWeekData===null&&(e.localWeekData=hd(e.c,e.loc.getMinDaysInFirstWeek(),e.loc.getStartOfWeek())),e.localWeekData}function _m(e,t){let n={ts:e.ts,zone:e.zone,c:e.c,o:e.o,loc:e.loc,invalid:e.invalid};return new K({...n,...t,old:n})}function vm(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 ym(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 bm(e,t,n){return vm(Gd(e),t,n)}function xm(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,Wd(r,i))+Math.trunc(t.days)+Math.trunc(t.weeks)*7},o=Fp.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]=vm(Gd(a),n,e.zone);return o!==0&&(s+=o,c=e.zone.offset(s)),{ts:s,o:c}}function Sm(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=K.fromObject(e,{...n,zone:r,specificOffset:a});return o?i:i.setZone(s)}else return K.invalid(new sd(`unparsable`,`the input "${i}" can't be parsed as ${r}`))}function Cm(e,t,n=!0){return e.isValid?Sf.create(U.create(`en-US`),{allowZ:n,forceSimple:!0}).formatDateTimeFromString(e,t):null}function wm(e,t,n){let r=e.c.year>9999||e.c.year<0,i=``;if(r&&e.c.year>=0&&(i+=`+`),i+=Ld(e.c.year,r?6:4),n===`year`)return i;if(t){if(i+=`-`,i+=Ld(e.c.month),n===`month`)return i;i+=`-`}else if(i+=Ld(e.c.month),n===`month`)return i;return i+=Ld(e.c.day),i}function Tm(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+=Ld(e.c.hour),o===`hour`)break;if(t){if(c+=`:`,c+=Ld(e.c.minute),o===`minute`)break;s&&(c+=`:`,c+=Ld(e.c.second))}else{if(c+=Ld(e.c.minute),o===`minute`)break;s&&(c+=Ld(e.c.second))}if(o===`second`)break;s&&(!r||e.c.millisecond!==0)&&(c+=`.`,c+=Ld(e.c.millisecond,3))}return i&&(e.isOffsetFixed&&e.offset===0&&!a?c+=`Z`:e.o<0?(c+=`-`,c+=Ld(Math.trunc(-e.o/60)),c+=`:`,c+=Ld(Math.trunc(-e.o%60))):(c+=`+`,c+=Ld(Math.trunc(e.o/60)),c+=`:`,c+=Ld(Math.trunc(e.o%60)))),a&&(c+=`[`+e.zone.ianaName+`]`),c}var Em={month:1,day:1,hour:0,minute:0,second:0,millisecond:0},Dm={weekNumber:1,weekday:1,hour:0,minute:0,second:0,millisecond:0},Om={ordinal:1,hour:0,minute:0,second:0,millisecond:0},km=[`year`,`month`,`day`,`hour`,`minute`,`second`,`millisecond`],Am=[`weekYear`,`weekNumber`,`weekday`,`hour`,`minute`,`second`,`millisecond`],jm=[`year`,`ordinal`,`hour`,`minute`,`second`,`millisecond`];function Mm(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 Pl(e);return t}function Nm(e){switch(e.toLowerCase()){case`localweekday`:case`localweekdays`:return`localWeekday`;case`localweeknumber`:case`localweeknumbers`:return`localWeekNumber`;case`localweekyear`:case`localweekyears`:return`localWeekYear`;default:return Mm(e)}}function Pm(e){if(Rm===void 0&&(Rm=od.now()),e.type!==`iana`)return e.offset(Rm);let t=e.name,n=zm.get(t);return n===void 0&&(n=e.offset(Rm),zm.set(t,n)),n}function Fm(e,t){let n=Wu(t.zone,od.defaultZone);if(!n.isValid)return K.invalid(mm(n));let r=U.fromObject(t),i,a;if(W(e.year))i=od.now();else{for(let t of km)W(e[t])&&(e[t]=Em[t]);let t=Sd(e)||Cd(e);if(t)return K.invalid(t);let r=Pm(n);[i,a]=bm(e,r,n)}return new K({ts:i,zone:n,loc:r,o:a})}function Im(e,t,n){let r=W(n.round)?!0:n.round,i=W(n.rounding)?`trunc`:n.rounding,a=(e,a)=>(e=Vd(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 Lm(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 Rm,zm=new Map,K=class e{constructor(e){let t=e.zone||od.defaultZone,n=e.invalid||(Number.isNaN(e.ts)?new sd(`invalid input`):null)||(t.isValid?null:mm(t));this.ts=W(e.ts)?od.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=wd(e.o)&&!e.old?e.o:t.offset(this.ts);r=ym(this.ts,a),n=Number.isNaN(r.year)?new sd(`invalid input`):null,r=n?null:r,i=n?null:a}this._zone=t,this.loc=e.loc||U.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]=Lm(arguments),[n,r,i,a,o,s,c]=t;return Fm({year:n,month:r,day:i,hour:a,minute:o,second:s,millisecond:c},e)}static utc(){let[e,t]=Lm(arguments),[n,r,i,a,o,s,c]=t;return e.zone=Hu.utcInstance,Fm({year:n,month:r,day:i,hour:a,minute:o,second:s,millisecond:c},e)}static fromJSDate(t,n={}){let r=Dd(t)?t.valueOf():NaN;if(Number.isNaN(r))return e.invalid(`invalid input`);let i=Wu(n.zone,od.defaultZone);return i.isValid?new e({ts:r,zone:i,loc:U.fromObject(n)}):e.invalid(mm(i))}static fromMillis(t,n={}){if(!wd(t))throw new Fl(`fromMillis requires a numerical input, but received a ${typeof t} with value ${t}`);return t<-864e13||t>pm?e.invalid(`Timestamp out of range`):new e({ts:t,zone:Wu(n.zone,od.defaultZone),loc:U.fromObject(n)})}static fromSeconds(t,n={}){if(wd(t))return new e({ts:t*1e3,zone:Wu(n.zone,od.defaultZone),loc:U.fromObject(n)});throw new Fl(`fromSeconds requires a numerical input`)}static fromObject(t,n={}){t||={};let r=Wu(n.zone,od.defaultZone);if(!r.isValid)return e.invalid(mm(r));let i=U.fromObject(n),a=Qd(t,Nm),{minDaysInFirstWeek:o,startOfWeek:s}=yd(a,i),c=od.now(),l=W(n.specificOffset)?r.offset(c):n.specificOffset,u=!W(a.ordinal),d=!W(a.year),f=!W(a.month)||!W(a.day),p=d||f,m=a.weekYear||a.weekNumber;if((p||u)&&m)throw new Nl(`Can't mix weekYear/weekNumber units with year/month/day or ordinals`);if(f&&u)throw new Nl(`Can't mix ordinal dates with month/day`);let ee=m||a.weekday&&!p,te,ne,re=ym(c,l);ee?(te=Am,ne=Dm,re=hd(re,o,s)):u?(te=jm,ne=Om,re=_d(re)):(te=km,ne=Em);let ie=!1;for(let e of te){let t=a[e];W(t)?ie?a[e]=ne[e]:a[e]=re[e]:ie=!0}let ae=(ee?bd(a,o,s):u?xd(a):Sd(a))||Cd(a);if(ae)return e.invalid(ae);let[oe,se]=bm(ee?gd(a,o,s):u?vd(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]=pp(e);return Sm(n,r,t,`ISO 8601`,e)}static fromRFC2822(e,t={}){let[n,r]=mp(e);return Sm(n,r,t,`RFC 2822`,e)}static fromHTTP(e,t={}){let[n,r]=hp(e);return Sm(n,r,t,`HTTP`,t)}static fromFormat(t,n,r={}){if(W(t)||W(n))throw new Fl(`fromFormat requires an input string and a format`);let{locale:i=null,numberingSystem:a=null}=r,[o,s,c,l]=um(U.fromOpts({locale:i,numberingSystem:a,defaultToEN:!0}),t,n);return l?e.invalid(l):Sm(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]=Sp(e);return Sm(n,r,t,`SQL`,e)}static invalid(t,n=null){if(!t)throw new Fl(`need to specify a reason the DateTime is invalid`);let r=t instanceof sd?t:new sd(t,n);if(od.throwOnInvalid)throw new Al(r);return new e({invalid:r})}static isDateTime(e){return e&&e.isLuxonDateTime||!1}static parseFormatForOpts(e,t={}){let n=dm(e,U.fromObject(t));return n?n.map(e=>e?e.val:null).join(``):null}static expandFormat(e,t={}){return sm(Sf.parseFormat(e),U.fromObject(t)).map(e=>e.val).join(``)}static resetCache(){Rm=void 0,zm.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?hm(this).weekYear:NaN}get weekNumber(){return this.isValid?hm(this).weekNumber:NaN}get weekday(){return this.isValid?hm(this).weekday:NaN}get isWeekend(){return this.isValid&&this.loc.getWeekendDays().includes(this.weekday)}get localWeekday(){return this.isValid?gm(this).weekday:NaN}get localWeekNumber(){return this.isValid?gm(this).weekNumber:NaN}get localWeekYear(){return this.isValid?gm(this).weekYear:NaN}get ordinal(){return this.isValid?_d(this.c).ordinal:NaN}get monthShort(){return this.isValid?zp.months(`short`,{locObj:this.loc})[this.month-1]:null}get monthLong(){return this.isValid?zp.months(`long`,{locObj:this.loc})[this.month-1]:null}get weekdayShort(){return this.isValid?zp.weekdays(`short`,{locObj:this.loc})[this.weekday-1]:null}get weekdayLong(){return this.isValid?zp.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=Gd(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=ym(s,a),u=ym(c,o);return l.hour===u.hour&&l.minute===u.minute&&l.second===u.second&&l.millisecond===u.millisecond?[_m(this,{ts:s}),_m(this,{ts:c})]:[this]}get isInLeapYear(){return Hd(this.year)}get daysInMonth(){return Wd(this.year,this.month)}get daysInYear(){return this.isValid?Ud(this.year):NaN}get weeksInWeekYear(){return this.isValid?qd(this.weekYear):NaN}get weeksInLocalWeekYear(){return this.isValid?qd(this.localWeekYear,this.loc.getMinDaysInFirstWeek(),this.loc.getStartOfWeek()):NaN}resolvedLocaleOptions(e={}){let{locale:t,numberingSystem:n,calendar:r}=Sf.create(this.loc.clone(e),e).resolvedOptions(this);return{locale:t,numberingSystem:n,outputCalendar:r}}toUTC(e=0,t={}){return this.setZone(Hu.instance(e),t)}toLocal(){return this.setZone(od.defaultZone)}setZone(t,{keepLocalTime:n=!1,keepCalendarTime:r=!1}={}){if(t=Wu(t,od.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]=bm(r,n,t)}return _m(this,{ts:e,zone:t})}else return e.invalid(mm(t))}reconfigure({locale:e,numberingSystem:t,outputCalendar:n}={}){let r=this.loc.clone({locale:e,numberingSystem:t,outputCalendar:n});return _m(this,{loc:r})}setLocale(e){return this.reconfigure({locale:e})}set(e){if(!this.isValid)return this;let t=Qd(e,Nm),{minDaysInFirstWeek:n,startOfWeek:r}=yd(t,this.loc),i=!W(t.weekYear)||!W(t.weekNumber)||!W(t.weekday),a=!W(t.ordinal),o=!W(t.year),s=!W(t.month)||!W(t.day),c=o||s,l=t.weekYear||t.weekNumber;if((c||a)&&l)throw new Nl(`Can't mix weekYear/weekNumber units with year/month/day or ordinals`);if(s&&a)throw new Nl(`Can't mix ordinal dates with month/day`);let u;i?u=gd({...hd(this.c,n,r),...t},n,r):W(t.ordinal)?(u={...this.toObject(),...t},W(t.day)&&(u.day=Math.min(Wd(u.year,u.month),u.day))):u=vd({..._d(this.c),...t});let[d,f]=bm(u,this.o,this.zone);return _m(this,{ts:d,o:f})}plus(e){if(!this.isValid)return this;let t=Fp.fromDurationLike(e);return _m(this,xm(this,t))}minus(e){if(!this.isValid)return this;let t=Fp.fromDurationLike(e).negate();return _m(this,xm(this,t))}startOf(e,{useLocaleWeeks:t=!1}={}){if(!this.isValid)return this;let n={},r=Fp.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?Sf.create(this.loc.redefaultToEN(t)).formatDateTimeFromString(this,e):fm}toLocaleString(e=zl,t={}){return this.isValid?Sf.create(this.loc.clone(t),e).formatDateTime(this):fm}toLocaleParts(e={}){return this.isValid?Sf.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=Mm(a);let o=e===`extended`,s=wm(this,o,a);return km.indexOf(a)>=3&&(s+=`T`),s+=Tm(this,o,t,n,r,i,a),s}toISODate({format:e=`extended`,precision:t=`day`}={}){return this.isValid?wm(this,e===`extended`,Mm(t)):null}toISOWeekDate(){return Cm(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=Mm(o),(r&&km.indexOf(o)>=3?`T`:``)+Tm(this,a===`extended`,t,e,n,i,o)):null}toRFC2822(){return Cm(this,`EEE, dd LLL yyyy HH:mm:ss ZZZ`,!1)}toHTTP(){return Cm(this.toUTC(),`EEE, dd LLL yyyy HH:mm:ss 'GMT'`)}toSQLDate(){return this.isValid?wm(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`)),Cm(this,r,!0)}toSQL(e={}){return this.isValid?`${this.toSQLDate()} ${this.toSQLTime(e)}`:null}toString(){return this.isValid?this.toISO():fm}[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 Fp.invalid(`created by diffing an invalid DateTime`);let r={locale:this.locale,numberingSystem:this.numberingSystem,...n},i=Ad(t).map(Fp.normalizeUnit),a=e.valueOf()>this.valueOf(),o=Hp(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?Rp.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),Im(n,this.plus(r),{...t,numeric:`always`,units:i,unit:a})}toRelativeCalendar(t={}){return this.isValid?Im(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 Fl(`min requires all arguments be DateTimes`);return jd(t,e=>e.valueOf(),Math.min)}static max(...t){if(!t.every(e.isDateTime))throw new Fl(`max requires all arguments be DateTimes`);return jd(t,e=>e.valueOf(),Math.max)}static fromFormatExplain(e,t,n={}){let{locale:r=null,numberingSystem:i=null}=n;return lm(U.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 cm(U.fromOpts({locale:n,numberingSystem:r,defaultToEN:!0}),e)}static fromFormatParser(t,n,r={}){if(W(t)||W(n))throw new Fl(`fromFormatParser requires an input string and a format parser`);let{locale:i=null,numberingSystem:a=null}=r,o=U.fromOpts({locale:i,numberingSystem:a,defaultToEN:!0});if(!o.equals(n.locale))throw new Fl(`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):Sm(s,c,r,`format ${n.format}`,t,l)}static get DATE_SHORT(){return zl}static get DATE_MED(){return Bl}static get DATE_MED_WITH_WEEKDAY(){return Vl}static get DATE_FULL(){return Hl}static get DATE_HUGE(){return Ul}static get TIME_SIMPLE(){return Wl}static get TIME_WITH_SECONDS(){return Gl}static get TIME_WITH_SHORT_OFFSET(){return Kl}static get TIME_WITH_LONG_OFFSET(){return ql}static get TIME_24_SIMPLE(){return Jl}static get TIME_24_WITH_SECONDS(){return Yl}static get TIME_24_WITH_SHORT_OFFSET(){return Xl}static get TIME_24_WITH_LONG_OFFSET(){return Zl}static get DATETIME_SHORT(){return Ql}static get DATETIME_SHORT_WITH_SECONDS(){return $l}static get DATETIME_MED(){return eu}static get DATETIME_MED_WITH_SECONDS(){return tu}static get DATETIME_MED_WITH_WEEKDAY(){return nu}static get DATETIME_FULL(){return ru}static get DATETIME_FULL_WITH_SECONDS(){return iu}static get DATETIME_HUGE(){return au}static get DATETIME_HUGE_WITH_SECONDS(){return ou}};function Bm(e){if(K.isDateTime(e))return e;if(e&&e.valueOf&&wd(e.valueOf()))return K.fromJSDate(e);if(e&&typeof e==`object`)return K.fromObject(e);throw new Fl(`Unknown datetime argument: ${e}, of type ${typeof e}`)}function Vm(e){return Jo(e)?e.expression.variable?.value?.toLowerCase()===`null`:e instanceof hc}function Hm(e){return k(e)===``}function Um(e){return e instanceof sc}function Wm(e){let t=gs(e);if(t!==null)return t;if(Vo(e)&&e instanceof I&&e.expression){let t=e.op?.value,n=gs(e.expression);if(n!==null)return t===`-`?-n:n}return null}function Gm(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=Wm(e);if(t!==null)return t;let n=k(e);if(n!==void 0){let e=Number(n);if(!isNaN(e))return e}return null}function Km(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=Wm(e);if(t!==null)return Number.isInteger(t)?t:null;let n=k(e);if(n!==void 0){let e=Number(n);if(!isNaN(e)&&Number.isInteger(e))return e}return null}var qm=[`true`,`yes`,`y`,`t`,`1`],Jm=[`false`,`no`,`n`,`f`,`0`];function Ym(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 qm.includes(t)?!0:Jm.includes(t)?!1:null}if(Jo(e)){let t=e.expression.variable?.value?.toLowerCase();if(t===`true`)return!0;if(t===`false`)return!1}let t=gs(e);if(t===0)return!1;if(t===1)return!0;let n=k(e)?.toLowerCase();if(n){if(qm.includes(n))return!0;if(Jm.includes(n))return!1}return null}function Xm(e){if(e==null)return null;if(typeof e==`string`)return e;let t=O(e);return t?g(t):k(e)??null}function Zm(e){if(e==null)return null;if(typeof e==`string`)return e;if(typeof e==`number`||typeof e==`boolean`)return e.toString();let t=k(e)??null??Gm(e)??Ym(e);return t===null?null:t.toString()}var Qm=[`yyyy-MM-dd`,`M/d/yyyy`,`d MMM yyyy`,`MMM d, yyyy`],$m=[`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`],eh=[`HH:mm:ss`,`HH:mm:ssZZ`,`HH:mm:ss.SSS`,`HH:mm:ss.SSSZZ`];function th(e){if(e==null)return null;let t=typeof e==`string`?e:k(e)??null;if(t===null)return null;for(let e of eh){let n=K.fromFormat(t,e,{setZone:!0});if(n.isValid)return n.toISOTime({suppressMilliseconds:!0,includeOffset:r(n)})}for(let e of Qm){let n=K.fromFormat(t,e,{setZone:!0});if(n.isValid)return n.toISODate()}for(let e of $m){let n=K.fromFormat(t,e,{setZone:!0});if(n.isValid)return n.toISO({suppressMilliseconds:!0,includeOffset:r(n)})}let n=K.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 nh(e,t){let n=e.type(t),r=e.default(t);return{name:e.name??``,pk:e.pk(t),unique:e.unique(t),increment:e.increment(t),notNull:e.nullable(t)===!1,dbdefault:r,typeName:n?.name??``}}function rh(e){return e.values.map(t=>{let n={};return e.columns.forEach((e,r)=>{n[e]=t[r]}),n})}function ih(e,t){return e?`${e}.${t}`:`${y}.${t}`}function ah(e,t,n){return t.map((t,r)=>{let i=e[t]?.value;if(i==null&&n&&n[r]){let e=n[r];if(e?.dbdefault)return JSON.stringify(e.dbdefault.value)}return JSON.stringify(i)}).join(`|`)}function oh(e,t,n){return t.some((t,r)=>{let i=e[t]?.value;return i==null&&n&&n[r]&&n[r]?.dbdefault?!1:i==null})}function sh(e){return e.increment||Dl(e.typeName)}function ch(e,t,n){return e?`${e}.${t}.${n}`:`${t}.${n}`}function lh(e,t,n){return n.length===1?ch(e,t,n[0]):`(${n.map(n=>ch(e,t,n)).join(`, `)})`}function uh(e,t){return t.length===1?JSON.stringify(e[t[0]]?.value):`(${t.map(t=>JSON.stringify(e[t]?.value)).join(`, `)})`}function dh(e,t,n){let{token:r}=t,i=e.nodeAtPosition(r.filepath,r.start.offset)??e.parse.ast(r.filepath);return new Do(b.INVALID_RECORDS_FIELD,n,i)}var fh=e=>e>1?`Composite PK`:`PK`;function ph(e,t,n,r){if(Oa(r.values))return[];let i=t.mergedColumns(e).map(t=>nh(t,e)),a=ka(i,`name`),o=rh(r),s=vh(t,i,e),c=new Set(r.columns);return xa(s,i=>mh(e,t,n,i,o,c,a,r))}function mh(e,t,n,r,i,a,o,s){let c=t.schema(e),l=t.name??``,u=_h(n,r,a,o,c,l,s);if(!Oa(u))return u;let d=Qr(r.map(e=>o[e])),f=d.every(e=>e&&sh(e)),[p,m]=_(i,e=>oh(e,r,d)),ee=f?[]:hh(e,p,r,c,l),te=gh(e,m,r,d,c,l);return[...ee,...te]}function hh(e,t,n,r,i){if(Oa(t))return[];let a=`NULL in ${fh(n.length)}: ${lh(r,i,n)} cannot be NULL`;return xa(t,t=>n.map(n=>dh(e,t[n],a)))}function gh(e,t,n,r,i,a){return xa(ma(wa(t,e=>ah(e,n,r)),e=>e.length>1),t=>{let r=fh(n.length),o=lh(i,a,n);return xa(t,t=>{let i=`Duplicate ${r}: ${o} = ${uh(t,n)}`;return n.map(n=>dh(e,t[n],i))})})}function _h(e,t,n,r,i,a,o){let s=da(t,Array.from(n));if(Oa(s))return[];let c=s.filter(e=>{let t=r[e];return!!(t&&!sh(t)&&!t.dbdefault)});if(Oa(c))return[];let l=`${fh(c.length)}: Column ${lh(i,a,c)} is missing from record and has no default value`;return o.values.map(()=>new Do(b.INVALID_RECORDS_FIELD,l,e))}function vh(e,t,n){return[...t.filter(e=>e.pk).map(e=>[e.name]),...e.mergedIndexes(n).flatMap(e=>{let t=n.interpretMetadata(e,e.declaration.filepath).getValue();return Array.isArray(t)?t.filter(e=>e.pk).map(e=>e.columns.map(e=>e.value)):[]})]}var yh=e=>e>1?`Composite UNIQUE`:`UNIQUE`;function bh(e,t,n){if(Oa(n.values))return[];let r=t.mergedColumns(e).map(t=>nh(t,e)),i=ka(r,`name`),a=rh(n),o=t.schema(e),s=t.name??``;return xa(xh(t,r,e),t=>Sh(e,a,t,Qr(t.map(e=>i[e])),o,s))}function xh(e,t,n){return[...t.filter(e=>e.unique).map(e=>[e.name]),...e.mergedIndexes(n).flatMap(e=>{let t=n.interpretMetadata(e,e.declaration.filepath).getValue();return Array.isArray(t)?t.filter(e=>e.unique).map(e=>e.columns.map(e=>e.value)):[]})]}function Sh(e,t,n,r,i,a){return xa(ma(wa(t.filter(e=>!oh(e,n,r)),e=>ah(e,n,r)),e=>e.length>1),t=>{let r=yh(n.length),o=lh(i,a,n);return xa(t,t=>{let i=`Duplicate ${r}: ${o} = ${uh(t,n)}`;return n.map(n=>dh(e,t[n],i))})})}function Ch(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(ih(a,e),i)}return r}function wh(e,t,n,r){let i=Ch(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(ih(e.schemaName,e.tableName))):!1),t=>Eh(e,t,i,r))}function Th(e,t,n,r,i,a){if(!t.record||Oa(t.record.values))return[];let o=rh(t.record),s=n.record?rh(n.record):[],c=new Set(s.map(e=>ah(e,i.fieldNames))),l=o.filter(e=>!oh(e,r.fieldNames)).filter(e=>{let t=ah(e,r.fieldNames);return!c.has(t)}),u=t.tableSymbol.interpretedName(e,a),d=n.tableSymbol.interpretedName(e,a);return xa(l,t=>{let n=lh(u.schema,u.name,r.fieldNames),a=lh(d.schema,d.name,i.fieldNames),o=`FK violation: ${n} = ${uh(t,r.fieldNames)} does not exist in ${a}`;return r.fieldNames.map(n=>dh(e,t[n],o))})}function Eh(e,t,n,r){if(!t.endpoints)return[];let[i,a]=t.endpoints,o=n.get(ih(i.schemaName,i.tableName)),s=n.get(ih(a.schemaName,a.tableName));return!o||!s?[]:Dh(e,o,s,i,a,r)}function Dh(e,t,n,r,i,a){let o=r.relation,s=i.relation;return o===`1`&&s===`1`||o===`*`&&s===`*`?[...Th(e,t,n,r,i,a),...Th(e,n,t,i,r,a)]:o===`*`&&s===`1`?Th(e,t,n,r,i,a):o===`1`&&s===`*`?Th(e,n,t,i,r,a):[]}var Oh=function(e){return e.Note=`note`,e.Color=`color`,e.HeaderColor=`headercolor`,e}({}),kh={[Ds.Table]:[{metaKey:`note`,field:`note`,reshape:`note`},{metaKey:`headercolor`,field:`headerColor`,reshape:`headercolor`}],[Ds.TableGroup]:[{metaKey:`note`,field:`note`,reshape:`note`},{metaKey:`color`,field:`color`,reshape:`color`}],[Ds.Note]:[{metaKey:`color`,field:`color`,reshape:`color`}],[Ds.Column]:[{metaKey:`note`,field:`note`,reshape:`note`}]};function Ah(e,t){if(e===void 0)return;let n=kh[e];if(!n)return;let r=t.toLowerCase();return n.find(e=>e.metaKey===r)}var jh=class{constructor(e,t,n){this.errors=[],this.warnings=[],this.emittedBySymbol=new Map,this.compiler=e,this.programSymbol=t,this.programNode=t.declaration,this.filepath=n,this.db={schemas:[],tables:[],notes:[],refs:[],enums:[],tableGroups:[],aliases:[],tablePartials:[],records:[],diagramViews:[],token:j(this.programNode),externals:{tables:[],enums:[],tableGroups:[],tablePartials:[],notes:[]}}}interpret(){return this.interpretAllSymbols(),this.interpretAllMetadata(),this.interpretAllAliases(),this.warnings.push(...this.validateRecords()),new n(this.db,this.errors,this.warnings)}interpretAllSymbols(){for(let e of this.programSymbol.declaration.declarations){let n=this.compiler.nodeSymbol(e).getFiltered(t);if(!n||n instanceof Ys)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 js);for(;n.length>0;){let r=n.shift(),i=this.compiler.symbolMembers(r).getFiltered(t)??[];for(let t of i){if(t instanceof js){n.push(t);continue}if(!(t instanceof Ys))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 Ps?n.interpretedName(this.compiler,n.filepath):{name:n.name??``,schema:null},a=n instanceof Ps?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}]};dl(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 wc))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??``})}let i=new Map;for(let a of e){let e=this.compiler.interpretMetadata(a,this.filepath);if(e.hasValue(t))continue;this.errors.push(...e.getErrors()),this.warnings.push(...e.getWarnings());let o=e.getValue();if(o!==void 0)switch(a.kind){case vc.Ref:{let e=o,[t,r]=e.endpoints??[];if(t&&r){let e=[t.schemaName,t.tableName,t.fieldNames.join(`,`),r.schemaName,r.tableName,r.fieldNames.join(`,`)].join(`|`),i=[r.schemaName,r.tableName,r.fieldNames.join(`,`),t.schemaName,t.tableName,t.fieldNames.join(`,`)].join(`|`);if(n.has(e)||n.has(i)){this.errors.push(new x(b.SAME_ENDPOINT,`Ref with same endpoints already exists`,a.declaration));break}n.add(e)}this.db.refs.push(e);break}case vc.Records:if(a instanceof wc){let e=a.table(this.compiler)?.originalSymbol.intern()??``,t=e?r.get(e):void 0;if(t&&t.count>1){this.errors.push(new x(b.DUPLICATE_RECORDS_FOR_TABLE,`Duplicate Records blocks for the same Table '${t.tableName}' - A Table can only have one Records block`,a.declaration));break}}this.db.records.push(o);break;case vc.Project:this.db.project=o;break;case vc.MetadataElement:if(a instanceof Tc){let e=a.target(this.compiler),t=o;if(e){let n=e.intern(),r=i.get(n);r?(Object.assign(r.values,t.values),Object.assign(r.valueTokens,t.valueTokens)):i.set(n,{targetSymbol:e,kind:t.target.kind,name:t.target.name,values:{...t.values},valueTokens:{...t.valueTokens}})}}break;default:break}}for(let{targetSymbol:e,kind:t,name:n,values:r,valueTokens:a}of i.values())this.attachMetadata(e,t,n,r,a)}promoteOverlapKeys(e,t,n,r){let i=Os.includes(t)?t:void 0,a=i?kh[i]:void 0;if(a)for(let t of a){let i=Object.keys(n).find(e=>e.toLowerCase()===t.metaKey);if(i===void 0)continue;let a=n[i];if(a!==void 0)switch(t.reshape){case Oh.Note:e.note={value:String(a),token:r[i]};break;case Oh.Color:e.color=a;break;case Oh.HeaderColor:e.headerColor=a;break}}}attachMetadata(e,n,r,i,a){if(e.kind===M.Column){let o=e.declaration?.parentOfKind(P),s=o?this.compiler.nodeSymbol(o).getFiltered(t)?.originalSymbol:void 0,c=s?this.emittedBySymbol.get(s.intern()):void 0,l=r.at(-1),u=c?.fields.find(e=>e.name===l);u&&(u.metadata={...u.metadata,...i},this.promoteOverlapKeys(u,n,i,a));return}let o=this.emittedBySymbol.get(e.originalSymbol.intern());o&&(o.metadata={...o.metadata,...i},this.promoteOverlapKeys(o,n,i,a))}interpretAllAliases(){let e=this.compiler.symbolMembers(this.programSymbol).getFiltered(t)??[];for(let t of e){if(!(t instanceof Js)||!t.isKind(M.Table))continue;let{name:e,schema:n}=t.originalSymbol.interpretedName(this.compiler,this.filepath),r={name:t.name,kind:qc.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 js))continue;let r=this.compiler.symbolMembers(e).getFiltered(t)??[];for(let e of r){if(!e.isKind(M.Table))continue;let t=e.originalSymbol;if(!(t instanceof Ps))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 wc))continue;let i=r.table(this.compiler);if(!(i instanceof Ps))continue;let a=this.compiler.interpretMetadata(r,this.filepath);if(a.hasValue(t))continue;let o=a.getValue();if(!o)continue;e.push(...ph(this.compiler,i,r.declaration,o)),e.push(...bh(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(...wh(this.compiler,[...this.db.refs,...a],n,this.filepath)),e}collectPartialRefs(e){let t=this.compiler.symbolMetadata(this.programSymbol).filter(e=>e instanceof xc),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 Xs&&t.declaration===e.declaration)))continue;let l=Vc(s);if(!l)continue;let u=a instanceof zs&&a.originalSymbol===e.originalSymbol?r:a,d=r.interpretedName(this.compiler,this.filepath),f=u.interpretedName(this.compiler,this.filepath),p={schemaName:d.schema,tableName:d.name,fieldNames:t.map(e=>e.name??``),relation:l[0],token:j(i.leftToken())},m={schemaName:f.schema,tableName:f.name,fieldNames:o.map(e=>e.name??``),relation:l[1],token:j(i.rightToken())};n.push({token:j(i.declaration),endpoints:[p,m]})}return n}pushElement(e,t){if(!Array.isArray(t))switch(e.kind){case M.Table:this.db.tables.push(t),this.recordEmitted(e,t);break;case M.Enum:this.db.enums.push(t);break;case M.TableGroup:this.db.tableGroups.push(t),this.recordEmitted(e,t);break;case M.TablePartial:this.db.tablePartials.push(t);break;case M.StickyNote:this.db.notes.push(t),this.recordEmitted(e,t);break;case M.DiagramView:this.db.diagramViews.push(t);break;default:break}}recordEmitted(e,t){this.emittedBySymbol.set(e.originalSymbol.intern(),t)}},Mh={nodeSymbol(t,r){return Qo(r)?n.create(t.symbolFactory.create(qs,{declaration:r,name:r.filepath.absolute},r.filepath)):n.create(e)},symbolMembers(r,i){if(!i.isKind(M.Program))return n.create(e);if(!(i.declaration instanceof $s))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(M.Schema));return s?n.create([...a.values(),...s]):n.create([...a.values()])},bindNode(t,r){return Qo(r)?new ll(r,t).resolve():n.create(e)},interpretSymbol(t,r,i){if(!(r instanceof qs))return n.create(e);if(!(r.declaration instanceof $s))return n.create(void 0);if(!Rc(t,r.declaration)){let e=t.reachableFiles(i).flatMap(e=>t.bindFile(e).getErrors());return n.create(void 0,e)}return new jh(t,r,i).interpret()}},Nh=class{constructor(e,t){this.compiler=e,this.declarationNode=t}bind(){return this.declarationNode.body instanceof R?this.bindBody(this.declarationNode.body):[]}bindBody(e){if(!e||e instanceof L)return[];let t=e.body.filter(e=>e instanceof P);return this.bindSubElements(t)}bindSubElements(e){return e.flatMap(e=>e.type?this.compiler.bindNode(e).getErrors():[])}},Ph=class{constructor(e,t,n){this.declarationNode=t,this.compiler=e,this.filepath=n,this.project={enums:[],refs:[],tableGroups:[],tables:[],tablePartials:[]}}interpret(){this.project.token=j(this.declarationNode);let e=[...this.interpretName(this.declarationNode.name),...this.interpretBody(this.declarationNode.body)];return new n(this.project,e)}interpretName(e){if(!e)return this.project.name=null,[];let{name:t}=Ss(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 R?t.body.body[0]?.callee:t.body?.callee,n=e?k(e):void 0;return n&&(this.project.note={value:xs(n),token:j(t)}),[]}case r.TablePartial:{let e=this.interpretSubElement(t);return e.getValue()&&this.project.tablePartials?.push(e.getValue()),e.getErrors()}default:return this.project[t.type.value.toLowerCase()]=k(t.body.callee),[]}})}},Fh={nodeMetadata(t,i){return E(i,r.Project)?n.create(new Ec(i)):n.create(e)},bindNode(t,i){return E(i,r.Project)?n.create(void 0,new Nh(t,i).bind()):n.create(e)},interpretMetadata(t,r,i){return!(r instanceof Ec)||!(r.declaration instanceof P)?n.create(e):new Ph(t,r.declaration,i).interpret()}},Ih=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 R&&e.push(...this.bindBody(this.declarationNode.body)),e}bindRecordsName(e){return this.declarationNode.parent instanceof $s?this.bindTopLevelName(e):this.bindInsideTableName(e)}bindTopLevelName(e){let n=_s(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=us(o.declaration)??`<invalid name>`,c=i.flatMap(e=>this.compiler.nodeReferee(e).getErrors());for(let e of n.args){let n=vs(e)??`<unnamed>`,r=this.compiler.nodeReferee(e).getFiltered(t);if(!r){c.push(new x(b.BINDING_ERROR,`Column '${n}' does not exist in Table '${s}'`,e));continue}let i=this.boundColumns.get(r);i&&(c.push(new x(b.DUPLICATE_COLUMN_REFERENCES_IN_RECORDS,`Column '${n}' is referenced more than once in a Records for Table '${s}'`,i)),c.push(new x(b.DUPLICATE_COLUMN_REFERENCES_IN_RECORDS,`Column '${n}' is referenced more than once in a Records for Table '${s}'`,e))),this.boundColumns.set(r,e)}return c}bindInsideTableName(e){let n=this.declarationNode.parent;if(!(n instanceof P)||!n.isKind(r.Table)||!this.compiler.nodeSymbol(n).getFiltered(t)||!Uo(e))return[];let i=us(n)??`<invalid name>`,a=[];for(let n of e.elementList){let e=vs(n)??`<unnamed>`;if(!this.compiler.nodeReferee(n).getFiltered(t)){a.push(new x(b.BINDING_ERROR,`Column '${e}' does not exist in Table '${i}'`,n));continue}}return a}bindBody(e){if(!e)return[];if(e instanceof L)return this.bindDataRow(e);let t=e.body.filter(e=>e instanceof L),n=e.body.filter(e=>e instanceof P);return[...this.bindDataRows(t),...this.bindSubElements(n)]}bindDataRows(e){return e.flatMap(e=>this.bindDataRow(e))}bindDataRow(e){return e.callee?(e.callee instanceof lc?e.callee.elementList:[e.callee]).flatMap(zc).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():[])}},Lh=class{constructor(e,t,n){this.compiler=e,this.metadata=t,this.element=t.declaration,this.filepath=n}interpret(){let e=[],t=[],r=Rh(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=zh(n,r.columns,this.compiler);e.push(...a.getErrors()),t.push(...a.getWarnings());let o=a.getValue();o.row&&i.push(o.row)}let a=j(this.element);return new n({schemaName:r.schemaName,tableName:r.tableName,columns:r.columns.map(e=>e.name??``),values:i,token:a},e,t)}};function Rh(e,n,i){let a=e.name,o=e.parent;if(o instanceof P&&o.isKind(r.Table)){let e=n.nodeSymbol(o).getFiltered(t);if(!(e instanceof Ps))return;let r=e.mergedColumns(n),s=e.interpretedName(n,i),c=s.schema,l=s.name;return a?{schemaName:c,tableName:l,columns:a.elementList.flatMap(e=>r.find(t=>t.name===A(e))||[])}:{schemaName:c,tableName:l,columns:r}}let s=_s(a);if(!s)return;let c=s.variables.map(e=>e.expression.variable?.value??``),l=c.at(-1)??``,u=c.length>1?c.slice(0,-1).join(`.`):void 0,d=n.parseFile(e.filepath).getValue().ast,f=n.nodeSymbol(d).getFiltered(t);if(!f)return;let p;if(u){let e=n.lookupMembers(f,M.Schema,u);e&&(p=n.lookupMembers(e,M.Table,l))}if(p||=n.lookupMembers(f,M.Table,l),!p)return;let m=p.originalSymbol;if(!(m instanceof Ps))return;let ee=m.mergedColumns(n),te=s.args.map(e=>ee.find(t=>t.name===A(e))).filter(Boolean),ne=m.interpretedName(n,i);return{schemaName:ne.schema,tableName:ne.name,columns:te}}function zh(e,t,r){let i=[],a=[],o={},s=e.callee instanceof lc?e.callee.elementList:[e.callee];if(s.length!==t.length)return i.push(new x(b.INVALID_RECORDS_FIELD,`Expected ${t.length} values but got ${s.length}`,e)),new n({row:null,columnNodes:{}},i,a);let c=[];for(let e=0;e<t.length;e++){let n=s[e],l=t[e];o[l.name??``]=n;let u=Vh(n,l,r);i.push(...u.getErrors()),a.push(...u.getWarnings());let d=u.getValue();c.push(d??{value:null,type:`expression`,token:j(n)})}return new n({row:c,columnNodes:o},i,a)}function Bh(e){return e instanceof sc&&e.value?.value||``}function Vh(e,t,r){let i=j(e),a=t.type(r),o=(a?.name??``).split(`(`)[0],s=!!a?.enumSymbol,c=t.increment(r),l=t.nullable(r)===!1,u=t.default(r),d=t.name??``,f=Ol(o,s),p=Zm(e),m=p===null?Bh(e):p,ee=p===null?`expression`:f;if(e instanceof sc)return new n({value:e.value?.value||``,type:`expression`,token:i},[],[]);if(Vm(e)||Hm(e)&&!wl(o)){let t=u&&u.value.toString().toLowerCase()!==`null`,r=Dl(o);return l&&!t&&!c&&!r?new n({value:null,type:f,token:i},[],[new Do(b.INVALID_RECORDS_FIELD,`NULL not allowed for non-nullable column '${d}' without default and increment`,e)]):new n({value:null,type:f,token:i},[],[])}if(s){let a=t.type(r)?.enumSymbol,o=a?a.members(r).filter(e=>e.isKind(M.EnumField)).map(e=>e.name).filter(Boolean):[],s=k(e);return s===void 0&&(s=w(e)?e.expression.variable.value:void 0),o.includes(s)?new n({value:s,type:f,token:i},[],[]):new n({value:s,type:f,token:i},[],[new Do(b.INVALID_RECORDS_FIELD,`Invalid enum value for column '${d}'`,e)])}if(bl(o)||xl(o)||Dl(o)){let t=Wm(e);if(t===null)return new n({value:m,type:ee,token:i},[],[new Do(b.INVALID_RECORDS_FIELD,`Invalid numeric value for column '${d}'`,e)]);if(bl(o)&&!Number.isInteger(t))return new n({value:Math.floor(t),type:f,token:i},[],[new Do(b.INVALID_RECORDS_FIELD,`Invalid integer value ${t} for column '${d}': expected integer, got decimal`,e)]);let r=xl(o)&&a?.args?.length?{precision:Number(a.args[0]),scale:a.args.length>=2?Number(a.args[1]):0}:void 0;if(xl(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 Do(b.INVALID_RECORDS_FIELD,`Numeric value ${t} for column '${d}' exceeds precision: expected at most ${a} total digits, got ${u}`,e)]);if(p>o)return new n({value:t,type:f,token:i},[],[new Do(b.INVALID_RECORDS_FIELD,`Numeric value ${t} for column '${d}' exceeds scale: expected at most ${o} decimal digits, got ${p}`,e)])}return new n({value:t,type:f,token:i},[],[])}if(Cl(o)){let t=Ym(e);return t===null?new n({value:m,type:ee,token:i},[],[new Do(b.INVALID_RECORDS_FIELD,`Invalid boolean value for column '${d}'`,e)]):new n({value:t,type:f,token:i},[],[])}if(El(o)){let t=th(e);return t===null?new n({value:m,type:ee,token:i},[],[new Do(b.INVALID_RECORDS_FIELD,`Invalid datetime value for column '${d}', expected valid datetime format (e.g., 'YYYY-MM-DD', 'HH:MM:SS', 'YYYY-MM-DD HH:MM:SS', 'MM/DD/YYYY', 'D MMM YYYY', or 'MMM D, YYYY')`,e)]):new n({value:t,type:f,token:i},[],[])}if(wl(o)){let t=Zm(e);if(t===null)return new n({value:m,type:ee,token:i},[],[new Do(b.INVALID_RECORDS_FIELD,`Invalid string value for column '${d}'`,e)]);let r=a?.args?.length?Number(a.args[0]):void 0;if(r&&!Number.isNaN(r)){let a=r,o=new TextEncoder().encode(t).length;if(o>a)return new n({value:t,type:f,token:i},[],[new Do(b.INVALID_RECORDS_FIELD,`String value for column '${d}' exceeds maximum length: expected at most ${a} bytes (UTF-8), got ${o} bytes`,e)])}return new n({value:t,type:`string`,token:i},[],[])}return new n({value:m,type:ee,token:i},[],[])}var Hh={nodeMetadata(t,i){if(!E(i,r.Records))return n.create(e);let a=i.parent;if(a&&E(a,r.Table))return n.create(new wc(i));let o=i.name;return o instanceof B&&o.callee?n.create(new wc(i)):n.create(e)},nodeReferee(i,a){if(!w(a))return n.create(e);let o=a.parentOfKind(P);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(cc);if(l?.parentNode===o)return Uh(i,o,a);let u=a.parentOfKind(B);return u?.parentNode===o&&l?.parentNode===u?Wh(i,u,a):u?.parentNode===o&&u.callee?.containsEq(a)?Gh(i,c,a):qh(i,c,a)},bindNode(t,i){return E(i,r.Records)?n.create(void 0,new Ih(t,i).bind()):n.create(e)},interpretMetadata(t,r,i){return r instanceof wc?r.declaration instanceof P?new Lh(t,r,i).interpret():n.create(void 0):n.create(e)}};function Uh(e,i,a){let o=i.parent;if(o instanceof P&&o.isKind(r.Table)){let n=e.nodeSymbol(o).getFiltered(t);if(n)return Kh(e,n,a)}return new n(void 0)}function Wh(e,r,i){if(r.callee){let n;if(w(r.callee))n=e.nodeReferee(r.callee).getFiltered(t);else{let i=ps(r.callee);if(i&&i.length>0){let r=i[i.length-1];n=e.nodeReferee(r).getFiltered(t)}}if(n)return Kh(e,n,i)}return new n(void 0)}function Gh(e,t,r){if(!w(r))return new n(void 0);let i=vs(r)??``;if(!T(r.parentNode)){let a=e.lookupMembers(t,[M.Table,M.Schema],i);return a?n.create(a):new n(void 0,[new x(b.BINDING_ERROR,`Table '${i}' does not exist in Schema 'public'`,r)])}let a=Bc(e,r);if(!a){let a=e.lookupMembers(t,[M.Table,M.Schema],i);return a?n.create(a):new n(void 0,[new x(b.BINDING_ERROR,`Table or schema '${i}' does not exist`,r)])}if(a.isKind(M.Schema)){let t=e.lookupMembers(a,[M.Table,M.Schema],i);return t?n.create(t):new n(void 0,[new x(b.BINDING_ERROR,`Table or schema '${i}' does not exist`,r)])}return new n(void 0)}function Kh(e,t,r){if(!w(r))return new n(void 0);let i=vs(r)??``,a=e.lookupMembers(t,M.Column,i);return a?n.create(a):new n(void 0,[new x(b.BINDING_ERROR,`Column '${i}' does not exist in Table 'public.${t.name}'`,r)])}function qh(e,t,r){if(!w(r))return new n(void 0);let i=vs(r)??``;if(!T(r.parentNode))return new n(void 0);let a=Bc(e,r);if(a){if(a.isKind(M.Schema)){let t=e.lookupMembers(a,[M.Enum,M.Schema],i);return t?n.create(t):new n(void 0,[new x(b.BINDING_ERROR,`Enum or schema '${i}' does not exist`,r)])}if(a.isKind(M.Enum)){let t=e.lookupMembers(a,M.EnumField,i);return t?n.create(t):new n(void 0,[new x(b.BINDING_ERROR,`Enum field '${i}' does not exist in Enum 'public.${a.name}'`,r)])}return new n(void 0)}let o=r.parentNode;if(o.leftExpression===r){if(T(o.parentNode)&&o.parentNode.leftExpression===o){let a=e.lookupMembers(t,M.Schema,i);return a?n.create(a):new n(void 0,[new x(b.BINDING_ERROR,`Schema '${i}' does not exist in Schema 'public'`,r)])}let a=e.lookupMembers(t,M.Enum,i);return a?n.create(a):new n(void 0,[new x(b.BINDING_ERROR,`Enum '${i}' does not exist in Schema 'public'`,r)])}return new n(void 0)}var Jh=class{constructor(e,t){this.compiler=e,this.declarationNode=t}bind(){return!(this.declarationNode.parent instanceof $s)&&!this.declarationNode.parent?.isKind(r.Project)?[]:this.bindBody(this.declarationNode.body)}bindBody(e){if(!e)return[];if(e instanceof L)return this.bindFields([e]);let[t,n]=_(e.body,e=>e instanceof L);return[...this.bindFields(t),...this.bindSubElements(n)]}bindFields(e){return e.flatMap(e=>e.callee?[e.callee,...e.args].flatMap(zc).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():[])}},Yh=class{constructor(e,t,n){this.compiler=e,this.filepath=n,this.metadata=t,this.declarationNode=t.declaration,this.ref={}}interpret(){this.ref.token=j(this.declarationNode);let e=[...this.interpretName(),...this.interpretBody()];return n.create(this.ref,e)}interpretName(){if(!(this.declarationNode instanceof P))return[];let e=[],t=O(this.declarationNode.name)??[];return this.ref.name=t.pop()||null,t.length>1&&e.push(new x(b.UNSUPPORTED,`Nested schema is not supported`,this.declarationNode.name)),this.ref.schemaName=t.join(`.`)||null,e}interpretBody(){let e=this.metadata.op(this.compiler),t=this.metadata.leftColumns(this.compiler),n=this.metadata.leftTable(this.compiler),r=this.metadata.rightColumns(this.compiler),i=this.metadata.rightTable(this.compiler);if(La(t,r).every(([e,t])=>e?.originalSymbol===t?.originalSymbol))return[new x(b.SAME_ENDPOINT,`Two endpoints are the same`,this.declarationNode)];let a=Vc(e),o=n?.interpretedName(this.compiler,this.filepath),s=i?.interpretedName(this.compiler,this.filepath),c=j(this.metadata.leftToken()),l=j(this.metadata.rightToken());if(this.ref.endpoints=this.declarationNode instanceof P?[{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 P))return[];let u=fs(this.declarationNode)[0];if(u.args[0]){let e=S(u.args[0]).getValue(),t=e.delete?.at(0)?.value;this.ref.onDelete=t instanceof ic?ls(t):A(t);let n=e.update?.at(0)?.value;this.ref.onUpdate=n instanceof ic?ls(n):A(n),this.ref.color=e.color?.length?Cs(e.color?.at(0)?.value):void 0,this.ref.inactive=e.inactive?.length?!0:void 0}return[]}};function Xh(e){let t=e.parent;for(;t;){if(t instanceof P&&t.isKind(r.Ref))return t.body?.containsEq(e)??!1;t=t.parent}return!1}var Zh={nodeReferee(r,i){if(!w(i)&&!T(i)||!Xh(i)||i.parentOfKind(F))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(E(a,r.Ref)){let t=fs(a)[0];if(!(t instanceof L)||!t.callee)return n.create(e);let r=t.callee;return!(r instanceof ac)||!r.op?n.create(e):n.create(new bc(a))}if(a instanceof F){if(!(a.name instanceof ic)||ls(a.name)?.toLowerCase()!==i.Ref)return n.create(e);let t=a.parent;return t instanceof P&&t.isKind(r.TablePartial)?n.create(new xc(a)):n.create(new bc(a))}return n.create(e)},bindNode(t,i){return E(i,r.Ref)?n.create(void 0,new Jh(t,i).bind()):n.create(e)},interpretMetadata(t,r,i){return r instanceof bc?new Yh(t,r,i).interpret():n.create(e)}};function Qh(e,r,i){if(!w(i))return new n(void 0);let a=vs(i)??``;if(!T(i.parentNode)){let r=i.parentNode;if(r&&T(r.parentNode)&&r.parentNode.rightExpression===r){let o=r.parentNode.leftExpression,s=T(o)?o.rightExpression??o:o,c=e.nodeReferee(s).getFiltered(t);if(c?.isKind(M.Table)){let r=e.lookupMembers(c,M.Column,a);if(r)return n.create(r);let o=c.declaration?e.nodeFullname(c.declaration).getFiltered(t)?.join(`.`)??c.name:c.name;return new n(void 0,[new x(b.BINDING_ERROR,`Column '${a}' does not exist in Table '${o}'`,i)])}}return n.create(void 0)}let o=Bc(e,i);if(o){if(o.isKind(M.Schema)){let t=e.lookupMembers(o,[M.Table,M.Schema],a);return t?n.create(t):new n(void 0,[new x(b.BINDING_ERROR,`Table or schema '${a}' does not exist`,i)])}if(o.isKind(M.Table)){let r=e.lookupMembers(o,M.Column,a);return r?n.create(r):new n(void 0,[new x(b.BINDING_ERROR,`Column '${a}' does not exist in Table '${o.declaration?e.nodeFullname(o.declaration).getFiltered(t)?.join(`.`)??o.name:o.name}'`,i)])}return new n(void 0)}let s=i.parentNode;if(s.leftExpression===i){if(T(s.parentNode)&&s.parentNode.leftExpression===s){let t=e.lookupMembers(r,M.Schema,a);return t?n.create(t):new n(void 0,[new x(b.BINDING_ERROR,`Schema '${a}' does not exist`,i)])}let t=Hc(e,r);if(t){let r=e.lookupMembers(t,M.Table,a);if(r)return n.create(r)}let o=e.lookupMembers(r,M.Table,a);return o?n.create(o):new n(void 0,[new x(b.BINDING_ERROR,`Table '${a}' does not exist in Schema 'public'`,i)])}return new n(void 0)}var $h={visibleName(e,n){let r=n instanceof N?n:n.useSpecifierDeclaration instanceof tc?n.useSpecifierDeclaration:n.declaration;if(r instanceof tc&&n instanceof As&&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]}},eg={nodeSymbol(r,i){if(!Zo(i)||!i.name)return n.create(e);let a=i.getSymbolKind();if(a===void 0||a===M.Schema)return n.create(e);let o=r.nodeReferee(i.name).getFiltered(t);return o&&!o.canBeImported?n.create(e):n.create(r.symbolFactory.create(Ys,{useSpecifierDeclaration:i,declaration:o?.declaration,usedSymbol:o,kind:a,name:$h.visibleName(r,i)?.at(-1)},i.filepath),o===void 0?[new x(b.BINDING_ERROR,`Failed to resolve the import of ${a} '${(O(i.name)||[]).map(Dg).join(`.`)}'`,i)]:[])},symbolMembers(r,i){if(!(i instanceof Ys))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(!w(i)&&!Yo(i))return n.create(e);let a=i.parentOfKind(tc);if(!a)return n.create(e);let o=a.name===i||T(a.name)&&a.name.rightExpression===i?a.getSymbolKind():M.Schema;if(o===void 0)return n.create(void 0);let s=O(i.parentOfKind(ac)),c=A(i)??s?.at(-1);if(c===void 0)return n.create(void 0);let l=i.parentOfKind(ec);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 x(b.BINDING_ERROR,`Import path must be relative, got '${l.importPath.value}'`,i)]);if(!r.layout.exists(u))return n.create(void 0,[new x(b.NONEXISTENT_MODULE,`${o} '${s?.join(`.`)??c}' does not exist in file ${u.toString()}. Does the file exist?`,i)]);let d=i.parentOfKind(ac)?.leftExpression;if(d&&d!==i){let e=r.nodeReferee(d).getFiltered(t);if(!e)return n.create(void 0);let a=r.lookupMembers(e,o,c);return a?n.create(a):new n(void 0,[new x(b.BINDING_ERROR,`Could not find ${o} '${c}'`,i)])}let f=tg(r,u,c,o);return f?n.create(f):n.create(void 0,[new x(b.BINDING_ERROR,`${o} '${c}' does not exist in file ${u.toString()}`,i)])},bindNode(t,r){if(Xo(r)){let e=[];if(r.importPath?.value){let n=xo(r.filepath,r.importPath.value);n?t.layout.exists(n)||e.push(new x(b.NONEXISTENT_MODULE,`Failed to resolve the non-existent file '${r.importPath.value}'`,r.importPath)):e.push(new x(b.BINDING_ERROR,`Import path must be relative, got '${r.importPath.value}'`,r.importPath))}if(r.specifiers){let n=t.bindNode(r.specifiers);e.push(...n.getErrors())}return new n(void 0,e)}return r instanceof nc?new n(void 0,r.specifiers.flatMap(e=>t.bindNode(e).getErrors())):Zo(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 Ys))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 tg(e,n,r,i,a=new Set){if(!n||a.has(n.intern()))return;a.add(n.intern());let o=e.usableMembers(n).getFiltered(t);if(!o)return;let s=o.nonSchemaMembers.find(e=>e.name===r&&e.isKind(i));if(s)return s;let c=o.schemaMembers.find(e=>e.name===r);if(c?.isKind(M.Schema))return c;for(let t of o.reuses.selective)if(O(t.alias??t.name)?.at(-1)===r){let o=t.parentOfKind(ec);if(o?.importPath?.value){let s=tg(e,xo(n,o.importPath.value),O(t.name)?.at(-1)??r,i,a);if(s)return s}}for(let{importPath:t}of o.reuses.wildcard){let n=tg(e,t,r,i,a);if(n)return n}}function ng(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=ig(this,r),{nonSchemaMembers:a,schemaMembers:o}=e instanceof qs?ag(this,e,i):og(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 rg(e,n,r){let i=n.qualifiedName,a;if(a=r instanceof tc?$h.visibleName(e,r):e.nodeFullname(r).getFiltered(t),!a)return{kind:`none`};let o=r instanceof tc&&r.getSymbolKind()===M.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 ig(e,t){let n=e.parseFile(t),{ast:r}=n.getValue(),i=[],a=[],o=[],s=[];for(let e of r.body){if(!(e instanceof ec)||!e.specifiers||!e.importPath)continue;let n=xo(t,e.importPath.value);n&&(e.isReuse?e.specifiers instanceof fc?i.push({importPath:n,node:e.specifiers}):a.push(...e.specifiers.specifiers):e.specifiers instanceof fc?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 ag(e,n,r){let{ast:i,selectiveUses:a,selectiveReuses:o}=r,s=n.filepath,c=new Map([[y,e.symbolFactory.create(js,{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(js,{name:i},s))}sg(e,[...a,...o],c,s);for(let t of e.reachableFiles(s))for(let n of lg(e,t))c.has(n)||c.set(n,e.symbolFactory.create(js,{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 og(e,n,r){let{ast:i,selectiveUses:a,selectiveReuses:o}=r,s=[],c=new Map;for(let r of i.body){if(!(r instanceof P))continue;let i=rg(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(Js,{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(js,{name:i.schemaName,parent:n},n.filepath))}cg(e,[...a,...o],n,c);let l=n.qualifiedName;for(let t of e.reachableFiles(n.filepath))for(let r of ug(e,t,l))c.has(r)||c.set(r,e.symbolFactory.create(js,{name:r,parent:n},n.filepath));return{nonSchemaMembers:s,schemaMembers:[...c.values()]}}function sg(e,t,n,r){for(let i of t){if(i.getSymbolKind()!==M.Schema)continue;let t=$h.visibleName(e,i)?.at(0);t!==void 0&&!n.has(t)&&n.set(t,e.symbolFactory.create(js,{name:t},r))}}function cg(e,t,n,r){let i=n.qualifiedName;for(let a of t){if(a.getSymbolKind()!==M.Schema)continue;let t=$h.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(js,{name:o,parent:n},n.filepath))}}function lg(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=ig(e,n);for(let t of[...a.selectiveUses,...a.selectiveReuses]){if(t.getSymbolKind()!==M.Schema)continue;let n=$h.visibleName(e,t)?.at(0);n!==void 0&&i.push(n)}return i}function ug(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=ig(e,n);for(let t of[...o.selectiveUses,...o.selectiveReuses]){if(t.getSymbolKind()!==M.Schema)continue;let n=$h.visibleName(e,t);!n||n.length<=r.length||r.every((e,t)=>e===n[t])&&a.push(n[r.length])}return a}var dg=class{constructor(e,t){this.compiler=e,this.declarationNode=t}bind(){return this.declarationNode.body instanceof R?this.bindBody(this.declarationNode.body):[]}bindBody(e){if(!e)return[];if(e instanceof L)return this.bindFields([e]);let[t,n]=_(e.body,e=>e instanceof L);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 z){let e=S(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=>!Io(e.callee)))}tryToBindColumnType(e){let t=ms(e);if(!t)return;let n=t.variables.pop();n&&this.compiler.nodeReferee(n).getErrors()}tryToBindEnumFieldRef(e){if(C(e))return[];if(w(e)){let t=e.expression.variable?.value?.toLowerCase();if(t&&So.includes(t))return[]}let t=ms(e);if(!t){if(T(e)){let t=e,n=[];return t.leftExpression&&n.push(...this.compiler.nodeReferee(t.leftExpression).getErrors()),t.rightExpression&&n.push(...this.compiler.nodeReferee(t.rightExpression).getErrors()),n}return[]}let n=t.variables.pop(),r=t.variables.pop();if(!n||!r)return[];let i=[],a=t.variables;for(let e of a)i.push(...this.compiler.nodeReferee(e).getErrors());return i.push(...this.compiler.nodeReferee(r).getErrors()),i.push(...this.compiler.nodeReferee(n).getErrors()),i}bindInlineRef(e){return zc(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 fg(e){if(!e)return;let t=k(e);if(t!==void 0)return t;let n=gs(e);if(n!==null)return n;let r=A(e);if(r!==void 0)return r===`true`?!0:r===`false`?!1:r;let i=Cs(e);if(i!==void 0)return i}var pg=[`headercolor`,`note`],mg=[`color`,`note`],hg=[`color`],gg=[`pk`,`primary key`,`unique`,`note`,`ref`,`default`,`check`,`increment`,`not null`,`null`];function _g(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];if(!e?.value)continue;let a=fg(e.value);a!==void 0&&(r[t]=a)}return r}var vg=class{constructor(e,t,n){this.compiler=e,this.declarationNode=t.declaration,this.filepath=n,this.metadata={target:void 0,values:{},valueTokens:{},token:void 0}}interpret(){this.metadata.token=j(this.declarationNode);let e=[...this.interpretTarget(),...this.interpretValues(this.declarationNode.body)];return new n(this.metadata,e)}interpretTarget(){let e=this.declarationNode.getTargetKind()??``,t=O(this.declarationNode.targetName)??[];return this.metadata.target={kind:e,name:t},[]}interpretValues(e){if(!(e instanceof R))return[];for(let t of e.body){if(!(t instanceof P))continue;let e=t.type?.value;if(!e)continue;let n=fg(t.body instanceof L?t.body.callee:void 0);this.metadata.values[e]=e===`note`&&typeof n==`string`?xs(n):n,this.metadata.valueTokens[e]=j(t)}return[]}},yg=class{constructor(e,t,n,r){this.compiler=e,this.declarationNode=t,this.symbol=n,this.filepath=r,this.table={name:void 0,schemaName:void 0,alias:null,fields:[],token:void 0,indexes:[],partials:[],checks:[]},this.pkColumns=[]}interpret(){this.table.token=this.symbol?.token??j(this.declarationNode);let e=[];if(this.symbol){let{name:e,schema:t}=this.symbol.interpretedName(this.compiler,this.filepath);this.table.name=e,this.table.schemaName=t}else e.push(...this.interpretName(this.declarationNode.name));let t=[...e,...this.interpretAlias(this.declarationNode.alias),...this.interpretSettingList(this.declarationNode.attributeList),...this.interpretBody(this.declarationNode.body)];return this.pkColumns.length>=2&&(this.table.indexes.push({columns:this.pkColumns.map(({name:e,token:t})=>({value:e,type:`column`,token:t})),token:{start:{offset:-1,line:-1,column:-1},end:{offset:-1,line:-1,column:-1},filepath:this.declarationNode.filepath},pk:!0}),this.pkColumns.forEach(e=>{e.pk=!1})),n.create(this.table,t)}interpretName(e){let{name:t,schemaName:n}=Ss(e);return n.length>1?(this.table.name=t,this.table.schemaName=n.join(`.`),[new x(b.UNSUPPORTED,`Nested schema is not supported`,e)]):(this.table.name=t,this.table.schemaName=n.length?n[0]:null,[])}interpretAlias(e){if(!e)return[];let t=vs(e);return t&&(this.table.alias=t),[]}interpretSettingList(e){let t=S(e).getValue();this.table.headerColor=t[i.HeaderColor]?.length?Cs(t[i.HeaderColor]?.at(0)?.value):void 0;let[n]=t[i.Note]||[];this.table.note=n&&{value:xs(k(n?.value)),token:j(n)};let r=_g(t,pg);return Object.keys(r).length>0&&(this.table.metadata=r),[]}interpretBody(e){let[t,n]=_(e.body,e=>e instanceof L);return[...this.interpretFields(t),...this.interpretSubElements(n)]}interpretSubElements(e){return e.flatMap(e=>{switch(e.getElementKind()){case r.Note:return this.table.note={value:xs(k(e.body instanceof R?e.body.body[0].callee:e.body.callee)),token:j(e)},[];case r.Indexes:return this.interpretIndexes(e);case r.Checks:return this.interpretChecks(e);case r.Records:return[];default:return[]}})}interpretInjection(e,n){let r=[],i={order:n,token:j(e)};i.name=A(e.expression)||``;let a=e.expression?this.compiler.nodeReferee(e.expression).getFiltered(t):void 0,o=this.compiler.parseFile(this.filepath).getValue().ast,s=this.compiler.nodeSymbol(o).getFiltered(t);if(a&&!s.inNestedSchema(this.compiler,a)){let n=this.compiler.nodeSymbol(this.declarationNode).getFiltered(t),o=n?(this.compiler.symbolUses(n).getFiltered(t)??[]).find(e=>e.filepath.equals(this.filepath)):void 0;r.push(new x(b.UNSUPPORTED,`TablePartial ${i.name} from '${a.filepath}' should be imported. Currently, importing a table that uses a table partial requires that table partial to also be in scope.`,o?.useSpecifierDeclaration??e))}return this.table.partials.push(i),r}interpretFields(e){let n=this.symbol??this.compiler.nodeSymbol(this.declarationNode).getFiltered(t),r=(n?this.compiler.symbolMembers(n).getFiltered(t)??[]:[]).filter(e=>e.isKind(M.Column)).length?[]:[new x(b.EMPTY_TABLE,`A Table must have at least one column`,this.declarationNode)],i=e.flatMap((e,t)=>Io(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=vs(e.callee),r.token=j(e);let o=Ts(this.compiler,e.args[0]);r.type=o.getValue(),n.push(...o.getErrors()),r.pk=a?.pk(this.compiler)||!1,r.unique=a?.unique(this.compiler)||!1,r.increment=a?.increment(this.compiler)||void 0;let s=a?.nullable(this.compiler);r.not_null=s===void 0?void 0:!s,r.dbdefault=a?.default(this.compiler),r.note=a?.note(this.compiler);let c=this.compiler.nodeSettings(e).getFiltered(t)??{},l=_g(c,gg);Object.keys(l).length>0&&(r.metadata=l);let u=this.compiler.parseFile(this.filepath).getValue().ast,d=this.compiler.nodeSymbol(u).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(d&&i.length>0&&!i.some(e=>e===d))return[];let a=this.compiler.interpretMetadata(r,this.filepath);if(a.hasValue(t))return[];n.push(...a.getErrors());let o=a.getValue();if(!o?.endpoints?.[0])return[];let s=o.endpoints[0],c=r.op(this.compiler);return c?{schemaName:s.schemaName,tableName:s.tableName,fieldNames:s.fieldNames,relation:c,token:s.token}:[]}),r.checks=(c[i.Check]||[]).map(e=>({token:j(e),expression:e.value.value.value})),this.table.fields.push(r),r.pk&&this.pkColumns.push(r),n}interpretIndexes(e){let n=this.compiler.nodeMetadata(e).getFiltered(t);if(!n)return[];let r=this.compiler.interpretMetadata(n,this.filepath);if(r.hasValue(t))return[];let i=r.getValue();return Array.isArray(i)?this.table.indexes.push(...i):i&&this.table.indexes.push(i),r.getErrors()}interpretChecks(e){let n=this.compiler.nodeMetadata(e).getFiltered(t);if(!n)return[];let r=this.compiler.interpretMetadata(n,this.filepath);if(r.hasValue(t))return[];let i=r.getValue();return Array.isArray(i)?this.table.checks.push(...i):i&&this.table.checks.push(i),r.getErrors()}},bg={getDuplicateError(e,t,n){return new x(b.DUPLICATE_NAME,`Table '${e}' already exists in schema '${t}'`,n)},getColumnDuplicateError(e,t){return new x(b.DUPLICATE_COLUMN_NAME,`Duplicate column '${e}'`,t)},getPartialInjectionDuplicateError(e,t){return new x(b.DUPLICATE_TABLE_PARTIAL_INJECTION_NAME,`Duplicate table partial injection '${e}'`,t)}},xg={nodeSymbol(i,a){let o=i.nodeFullname(a).getFiltered(t)?.at(-1);return E(a,r.Table)?new n(i.symbolFactory.create(Ps,{declaration:a,name:o},a.filepath)):D(a,r.Table)?Io(a.callee)?new n(i.symbolFactory.create(Bs,{declaration:a,name:o},a.filepath)):new n(i.symbolFactory.create(Fs,{declaration:a,name:o},a.filepath)):n.create(e)},symbolMembers(r,i){if(!i.isKind(M.Table))return n.create(e);let a=i.declaration;if(!(a instanceof P))return new n([]);let o=fs(a),s=[],c=[];for(let e of o){let n=r.nodeSymbol(e),i=n.getFiltered(t);i&&(s.push(i),c.push(...n.getErrors()))}let l=new Map;for(let e of s){if(!e.isKind(M.Column,M.PartialInjection)||!e.declaration)continue;let t=`${e.kind}:${e.name}`;if(e.name!==void 0){let n=e.declaration instanceof P&&e.declaration.name?e.declaration.name:e.declaration,r=l.get(t);r?e.isKind(M.Column)?(c.push(bg.getColumnDuplicateError(e.name,r)),c.push(bg.getColumnDuplicateError(e.name,n))):(c.push(bg.getPartialInjectionDuplicateError(e.name,r)),c.push(bg.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 L)||!Io(n.declaration.callee))continue;let i=n.declaration.callee.expression,o=A(i);if(i===void 0||o===void 0)continue;let l=r.nodeReferee(i).getFiltered(t);if(!l){c.push(new x(b.BINDING_ERROR,`TablePartial '${o}' does not exist in Schema 'public'`,i||a));continue}let d=r.symbolMembers(l).getFiltered(t);if(d){let t=d.flatMap(e=>{if(!e.declaration)return[];let t=e.name;return t===void 0?e:r.symbolFactory.create(Xs,{kind:M.Column,injectionDeclaration:n.declaration,declaration:e.declaration,name:t},a.filepath)});u.push({index:e,partialMembers:t})}}for(let e=u.length-1;e>=0;e--){let{index:t,partialMembers:n}=u[e];s.splice(t,0,...n)}let d=new Set(s.filter(e=>e.isKind(M.Column)&&!(e instanceof Xs)).map(e=>e.name));return new n(Pa([...s.filter(e=>!(e instanceof Xs&&d.has(e.name)))].reverse(),e=>e.isKind(M.Column)?e.name:e).reverse(),c)},nodeReferee(a,o){if(!$o(o,r.Table))return n.create(e);let s=a.parseFile(o.filepath).getValue().ast,c=a.nodeSymbol(s).getValue();return c===t?n.create(void 0):w(o)&&o.parentNode instanceof I&&o.parentNode.op?.value===`~`?Sg(a,c,o):es(o,1)?Cg(a,c,o):ns(o,i.Ref)?wg(a,c,o):es(o,0)?n.create(e):Tg(a,c,o)},bindNode(i,a){if(!E(a,r.Table))return n.create(e);let o=new dg(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 Ps?r.declaration instanceof P?new yg(t,r.declaration,r,i).interpret():n.create(void 0):n.create(e)}};function Sg(e,r,i){let a=A(i)??``,o=e.symbolMembers(r).getFiltered(t);if(o){let t=o.find(e=>e instanceof js&&e.isPublicSchema());if(t){let r=e.lookupMembers(t,M.TablePartial,a);if(r)return n.create(r)}}let s=e.lookupMembers(r,M.TablePartial,a);return s?n.create(s):new n(void 0,[new x(b.BINDING_ERROR,`TablePartial '${a}' does not exist in Schema 'public'`,i)])}function Cg(e,t,r){if(!w(r))return new n(void 0);let i=vs(r)??``;if(!T(r.parentNode))return n.create(e.lookupMembers(t,M.Enum,i));let a=Bc(e,r);if(a){if(a.isKind(M.Schema)){let t=ss(r),o=e.lookupMembers(a,t?M.Enum:M.Schema,i);return o?n.create(o):new n(void 0,[new x(b.BINDING_ERROR,t?`Enum '${i}' does not exist in Schema 'public'`:`Schema '${i}' does not exist in Schema 'public'`,r)])}return new n(void 0)}if(r.parentNode.leftExpression===r){let a=e.lookupMembers(t,M.Schema,i);return a?n.create(a):new n(void 0,[new x(b.BINDING_ERROR,`Schema '${i}' does not exist in Schema 'public'`,r)])}return new n(void 0)}function wg(e,i,a){if(!w(a))return new n(void 0);let o=vs(a)??``;if(!T(a.parentNode)){let s=a.parent,c=s instanceof P&&s.isKind(r.Table)?e.nodeSymbol(s).getFiltered(t):void 0;if(c){let t=e.lookupMembers(c,M.Column,o);if(t)return n.create(t)}let l=e.lookupMembers(i,M.Column,o);return l?n.create(l):new n(void 0,[new x(b.BINDING_ERROR,`Column '${o}' does not exist in Table 'public.${c?.name??``}'`,a)])}let s=Bc(e,a);if(s){if(s.isKind(M.Schema)){let t=e.lookupMembers(s,[M.Table,M.Schema],o);return t?n.create(t):new n(void 0,[new x(b.BINDING_ERROR,`Table or schema '${o}' does not exist`,a)])}if(s.isKind(M.Table)){let t=e.lookupMembers(s,M.Column,o);return t?n.create(t):new n(void 0,[new x(b.BINDING_ERROR,`Column '${o}' does not exist in Table 'public.${s.name}'`,a)])}return new n(void 0)}let c=a.parentNode;if(c.leftExpression===a){if(T(c.parentNode)&&c.parentNode.leftExpression===c){let t=e.lookupMembers(i,M.Schema,o);return t?n.create(t):new n(void 0,[new x(b.BINDING_ERROR,`Schema '${o}' does not exist in Schema 'public'`,a)])}let t=e.lookupMembers(i,M.Table,o);return t?n.create(t):new n(void 0,[new x(b.BINDING_ERROR,`Table '${o}' does not exist in Schema 'public'`,a)])}return new n(void 0)}function Tg(e,t,r){if(!w(r))return new n(void 0);let i=vs(r)??``;if(!T(r.parentNode))return So.includes(i.toLowerCase())?new n(void 0):n.create(e.lookupMembers(t,M.Enum,i));let a=Bc(e,r);if(a){if(a.isKind(M.Schema)){let t=e.lookupMembers(a,[M.Enum,M.Schema],i);return t?n.create(t):new n(void 0,[new x(b.BINDING_ERROR,`Enum or schema '${i}' does not exist`,r)])}if(a.isKind(M.Enum)){let t=e.lookupMembers(a,M.EnumField,i);return t?n.create(t):new n(void 0,[new x(b.BINDING_ERROR,`Enum field '${i}' does not exist in Enum 'public.${a.name}'`,r)])}return new n(void 0)}let o=r.parentNode;if(o.leftExpression===r){if(T(o.parentNode)&&o.parentNode.leftExpression===o){let a=e.lookupMembers(t,M.Schema,i);return a?n.create(a):new n(void 0,[new x(b.BINDING_ERROR,`Schema '${i}' does not exist in Schema 'public'`,r)])}let a=e.lookupMembers(t,M.Enum,i);return a?n.create(a):new n(void 0,[new x(b.BINDING_ERROR,`Enum '${i}' does not exist in Schema 'public'`,r)])}return new n(void 0)}function Eg(e){return e?e.split(``).every(e=>Oo(e)||ko(e))&&!ko(e[0]):!1}function Dg(e){return Eg(e)?e:`"${kg(e)}"`}function Og(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 kg(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 Ag(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`'${kg(e)}'`;let{value:t,type:n}=e;if(t==null||Cl(n)&&typeof t==`string`&&t.toLowerCase()===`null`)return`null`;if(n===`expression`)return typeof t==`string`&&t.toLowerCase().trim()===`null`?`null`:`\`${t}\``;if(Cl(n)){let e=Ym(t);return e===null?`\`${t}\``:e?`true`:`false`}if(Sl(n)){let e=Gm(t);return e===null?`\`${t}\``:String(e)}if(El(n)){let e=th(t);return e===null?`\`${t}\``:`'${kg(e)}'`}let r=Zm(t);return r===null?`\`${t}\``:`'${kg(r)}'`}function jg(e){return(e.match(/"(?:[^"\\]|\\.)*"|[^."]+/g)||[]).map(e=>e.startsWith(`"`)&&e.endsWith(`"`)?Og(e.slice(1,-1)):e.trim()).filter(e=>e.length>0)}function Mg(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 Ng(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 js&&n.isKind(M.Schema)){let o=e.symbolMembers(n);i.push(...o.getErrors()),a.push(...o.getWarnings()),r.push(...o.getFiltered(t)??[])}}return new n(r,i,a)}var Pg=class{constructor(e,t){this.compiler=e,this.declarationNode=t}bind(){return this.declarationNode.body instanceof R?this.bindBody(this.declarationNode.body):[]}bindBody(e){if(!e)return[];if(e instanceof L)return this.bindFields([e]);let[t,n]=_(e.body,e=>e instanceof L);return[...this.bindFields(t),...this.bindSubElements(n)]}bindFields(e){return e.flatMap(e=>e.callee?[e.callee,...e.args].flatMap(zc).flatMap(e=>{let n=e.variables.pop();if(!n)return[];let r=this.compiler.nodeReferee(n),i=r.getFiltered(t);return i instanceof Ys?[...r.getErrors(),new x(b.BINDING_ERROR,`TableGroup cannot reference imported table '${i.name}'`,n)]:r.getErrors()}):[])}bindSubElements(e){return e.flatMap(e=>e.type?this.compiler.bindNode(e).getErrors():[])}},Fg=class{constructor(e,t,n){this.compiler=e,this.symbol=t,this.declarationNode=t.declaration,this.filepath=n,this.tableGroup={tables:[]}}interpret(){let e=[];return this.tableGroup.token=j(this.declarationNode),e.push(...this.interpretName(this.declarationNode.name),...this.interpretSettingList(this.declarationNode.attributeList),...this.interpretBody(this.declarationNode.body)),n.create(this.tableGroup,e)}interpretName(e){let t=[],{name:n,schemaName:r}=Ss(e);return r.length>=2&&(this.tableGroup.name=n,this.tableGroup.schemaName=r.join(`.`),t.push(new x(b.UNSUPPORTED,`Nested schema is not supported`,this.declarationNode.name))),this.tableGroup.name=n,this.tableGroup.schemaName=r[0]||null,t}interpretBody(e){let[t,n]=_(e.body,e=>e instanceof L);return[...this.interpretFields(t),...this.interpretSubElements(n)]}interpretSubElements(e){return e.flatMap(e=>{switch(e.getElementKind()){case r.Note:this.tableGroup.note={value:xs(k(e.body instanceof R?e.body.body[0].callee:e.body.callee)),token:j(e)};break;default:break}return[]})}interpretFields(e){let n=[];return this.tableGroup.tables=e.map(e=>{let r=e.callee?this.compiler.nodeReferee(e.callee).getFiltered(t):void 0;if(r?.isKind(M.Table)){let{name:e,schema:t}=r.interpretedName(this.compiler,this.filepath);return{name:e,schemaName:t}}let i=O(e.callee);return i.length>2&&n.push(new x(b.UNSUPPORTED,`Nested schema is not supported`,e)),{name:i.pop(),schemaName:i.join(`.`)||null}}),n}interpretSettingList(e){let t=S(e).getValue();this.tableGroup.color=t.color?.length?Cs(t.color?.at(0)?.value):void 0;let[n]=t.note||[];this.tableGroup.note=n&&{value:xs(k(n?.value)),token:j(n)};let r=_g(t,mg);return Object.keys(r).length>0&&(this.tableGroup.metadata=r),[]}},Ig={getDuplicateError(e,t,n){return new x(b.DUPLICATE_NAME,`TableGroup '${e}' already exists in schema '${t}'`,n)},getFieldDuplicateError(e,t){return new x(b.DUPLICATE_NAME,`Duplicate TableGroupField '${e}'`,t)}},Lg={nodeSymbol(i,a){let o=i.nodeFullname(a).getFiltered(t),s=o?.at(-1);return E(a,r.TableGroup)?new n(i.symbolFactory.create(Is,{declaration:a,name:s},a.filepath)):D(a,r.TableGroup)?new n(i.symbolFactory.create(Ls,{declaration:a,name:o?.map(Dg).join(`.`)},a.filepath)):n.create(e)},symbolMembers(r,i){if(i.isKind(M.TableGroup)){let e=i.declaration;if(!(e instanceof P))return new n([]);let a=fs(e),o=[],s=[];for(let e of a){let n=r.nodeSymbol(e),i=n.getFiltered(t);i&&(o.push(i),s.push(...n.getErrors()))}let c=new Map;for(let e of o){if(!e.isKind(M.TableGroupField)||!e.declaration)continue;let t=`${e.kind}:${e.name}`;if(e.name!==void 0){let n=e.declaration instanceof P&&e.declaration.name?e.declaration.name:e.declaration,r=c.get(t);r?(s.push(Ig.getFieldDuplicateError(e.name,r)),s.push(Ig.getFieldDuplicateError(e.name,n))):c.set(t,n)}}return new n(o,s)}return i.isKind(M.TableGroupField)?new n([]):n.create(e)},nodeReferee(i,a){if(!w(a)||!$o(a,r.TableGroup)||a.parent&&ts(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):Rg(i,s,a)},bindNode(i,a){if(!E(a,r.TableGroup))return n.create(e);let o=new Pg(i,a).bind(),s=i.nodeSymbol(a).getFiltered(t);return s&&o.push(...i.symbolMembers(s).getErrors()),n.create(void 0,o)},interpretSymbol(t,i,a){let o=i.declaration;return!E(o,r.TableGroup)||!(i instanceof Is)?n.create(e):Rc(t,o)?new Fg(t,i,a).interpret():n.create(void 0)}};function Rg(e,r,i){let a=vs(i)??``;if(!T(i.parentNode)){let o=e.symbolMembers(r).getFiltered(t);if(o){let t=o.find(e=>e instanceof js&&e.isPublicSchema());if(t){let r=e.lookupMembers(t,M.Table,a);if(r)return n.create(r)}}let s=e.lookupMembers(r,M.Table,a);return s?n.create(s):new n(void 0,[new x(b.BINDING_ERROR,`Table '${a}' does not exist in Schema 'public'`,i)])}let o=Bc(e,i);if(o){if(o.isKind(M.Schema)){let t=e.lookupMembers(o,[M.Table,M.Schema],a);return t?n.create(t):new n(void 0,[new x(b.BINDING_ERROR,`Table or schema '${a}' does not exist`,i)])}return new n(void 0)}let s=e.lookupMembers(r,M.Schema,a);return s?n.create(s):new n(void 0,[new x(b.BINDING_ERROR,`Schema '${a}' does not exist`,i)])}var zg=class{constructor(e,t){this.compiler=e,this.declarationNode=t}bind(){return this.declarationNode.body instanceof R?this.bindBody(this.declarationNode.body):[]}bindBody(e){if(!e)return[];if(e instanceof L)return this.bindFields([e]);let[t,n]=_(e.body,e=>e instanceof L);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 z){let e=S(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=ms(e);if(!t)return[];let n=t.variables.pop();return n?this.compiler.nodeReferee(n).getErrors():[]}bindInlineRef(e){return zc(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():[])}},Bg=class{constructor(e,t,n){this.compiler=e,this.declarationNode=t.declaration,this.symbol=t,this.filepath=n,this.tablePartial={name:void 0,fields:[],token:void 0,indexes:[],checks:[]},this.pkColumns=[]}interpret(){this.tablePartial.token=this.symbol?.token??j(this.declarationNode),this.symbol?this.tablePartial.name=this.symbol.interpretedName(this.compiler,this.filepath).name:this.interpretName(this.declarationNode.name);let e=[...this.interpretSettingList(this.declarationNode.attributeList),...this.interpretBody(this.declarationNode.body)];return this.pkColumns.length>=2&&(this.tablePartial.indexes.push({columns:this.pkColumns.map(({name:e,token:t})=>({value:e,type:`column`,token:t})),pk:!0,token:{start:{offset:-1,line:-1,column:-1},end:{offset:-1,line:-1,column:-1},filepath:this.declarationNode.filepath}}),this.pkColumns.forEach(e=>{e.pk=!1})),new n(this.tablePartial,e)}interpretName(e){let{name:t}=Ss(e);return this.tablePartial.name=t,[]}interpretSettingList(e){let t=S(e).getValue(),n=va(t[i.HeaderColor]);this.tablePartial.headerColor=n?Cs(n.value):void 0;let[r]=t[i.Note]||[];return this.tablePartial.note=r&&{value:xs(k(r?.value)),token:j(r)},[]}interpretBody(e){let[t,n]=_(e.body,e=>e instanceof L);return[...this.interpretFields(t),...this.interpretSubElements(n)]}interpretSubElements(e){return e.flatMap(e=>{switch(e.getElementKind()){case r.Note:return this.tablePartial.note={value:xs(k(e.body instanceof R?e.body.body[0].callee:e.body.callee)),token:j(e)},[];case r.Indexes:return this.interpretIndexes(e);case r.Checks:return this.interpretChecks(e);default:return[]}})}interpretFields(e){return e.flatMap(e=>this.interpretColumn(e))}interpretColumn(e){let n=[],r={},a=this.compiler.nodeSymbol(e).getFiltered(t);r.name=vs(e.callee)??``,r.token=j(e);let o=Ts(this.compiler,e.args[0]);r.type=o.getValue(),n.push(...o.getErrors()),r.pk=a?.pk(this.compiler)||void 0,r.unique=a?.unique(this.compiler)||void 0,r.increment=a?.increment(this.compiler)||void 0;let s=a?.nullable(this.compiler);r.not_null=s===void 0?void 0:!s,r.dbdefault=a?.default(this.compiler),r.note=a?.note(this.compiler);let c=this.compiler.nodeSettings(e).getFiltered(t)??{},l=_g(c,gg);Object.keys(l).length>0&&(r.metadata=l);let u=this.compiler.parseFile(this.filepath).getValue().ast,d=this.compiler.nodeSymbol(u).getFiltered(t);return r.inline_refs=(c[i.Ref]||[]).flatMap(e=>{let n=this.compiler.nodeMetadata(e).getFiltered(t);if(!(n instanceof xc))return[];let r=n.owners(this.compiler);if(d&&r.length>0&&!r.some(e=>e===d))return[];let i=n.op(this.compiler);if(!i)return[];let a=n.rightTable(this.compiler),o=n.rightColumns(this.compiler);if(!a||o.length===0)return[];let s=a.interpretedName(this.compiler,this.filepath);return{schemaName:s.schema,tableName:s.name,fieldNames:o.map(e=>e.name??``),relation:i,token:j(n.rightToken())}}),r.checks=(c[i.Check]||[]).map(e=>({token:j(e),expression:e.value.value.value})),this.tablePartial.fields?.push(r),r.pk&&this.pkColumns.push(r),n}interpretIndexes(e){let n=this.compiler.nodeMetadata(e).getFiltered(t);if(!n)return[];let r=this.compiler.interpretMetadata(n,this.filepath);if(r.hasValue(t))return[];let i=r.getValue();return Array.isArray(i)?this.tablePartial.indexes?.push(...i):i&&this.tablePartial.indexes?.push(i),r.getErrors()}interpretChecks(e){let n=this.compiler.nodeMetadata(e).getFiltered(t);if(!n)return[];let r=this.compiler.interpretMetadata(n,this.filepath);if(r.hasValue(t))return[];let i=r.getValue();return Array.isArray(i)?this.tablePartial.checks?.push(...i):i&&this.tablePartial.checks?.push(i),r.getErrors()}},Vg={getDuplicateError(e,t,n){return new x(b.DUPLICATE_NAME,`TablePartial '${e}' already exists in schema '${t}'`,n)}},Hg={nodeSymbol(i,a){let o=i.nodeFullname(a).getFiltered(t)?.at(-1);return E(a,r.TablePartial)?new n(i.symbolFactory.create(zs,{declaration:a,name:o},a.filepath)):D(a,r.TablePartial)?new n(i.symbolFactory.create(Fs,{declaration:a,name:o},a.filepath)):n.create(e)},symbolMembers(i,a){if(a.isKind(M.TablePartial)){let e=a.declaration;if(!(e instanceof P))return new n([]);let r=fs(e),o=[],s=[];for(let e of r){let n=i.nodeSymbol(e),r=n.getFiltered(t);r&&(o.push(r),s.push(...n.getErrors()))}let c=new Map;for(let e of o){if(!e.isKind(M.Column)||!e.declaration)continue;let t=e.name;if(t!==void 0){let n=e.declaration instanceof P&&e.declaration.name?e.declaration.name:e.declaration,r=c.get(t);r?(s.push(bg.getColumnDuplicateError(t,r)),s.push(bg.getColumnDuplicateError(t,n))):c.set(t,n)}}return new n(o,s)}return a.isKind(M.Column)&&E(a.declaration?.parent,r.TablePartial)?new n([]):n.create(e)},nodeReferee(a,o){if(!w(o)&&!T(o)||!$o(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):es(o,1)?Ug(a,c,o):ns(o,i.Ref)?Wg(a,c,o):Gg(a,c,o)},bindNode(i,a){if(!E(a,r.TablePartial))return n.create(e);let o=new zg(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 zs?r.declaration instanceof P?new Bg(t,r,i).interpret():n.create(void 0):n.create(e)}};function Ug(e,t,r){if(!w(r))return new n(void 0);let i=vs(r)??``;if(!T(r.parentNode))return n.create(e.lookupMembers(t,M.Enum,i));let a=Bc(e,r);if(a){if(a.isKind(M.Schema)){let t=e.lookupMembers(a,[M.Enum,M.Schema],i);return t?n.create(t):new n(void 0,[new x(b.BINDING_ERROR,`Enum or schema '${i}' does not exist`,r)])}return new n(void 0)}if(r.parentNode.leftExpression===r){let a=e.lookupMembers(t,M.Schema,i);return a?n.create(a):new n(void 0,[new x(b.BINDING_ERROR,`Schema '${i}' does not exist in Schema 'public'`,r)])}return new n(void 0)}function Wg(e,i,a){if(!w(a))return new n(void 0);let o=vs(a)??``;if(!T(a.parentNode)){let s=a.parent;if(s instanceof P&&s.isKind(r.TablePartial)){let r=e.nodeSymbol(s).getFiltered(t);if(r){let t=e.lookupMembers(r,M.Column,o);return t?n.create(t):new n(void 0,[new x(b.BINDING_ERROR,`Column '${o}' does not exist in TablePartial '${r.name}'`,a)])}}let c=e.lookupMembers(i,M.Column,o);return c?n.create(c):new n(void 0,[new x(b.BINDING_ERROR,`Column '${o}' does not exist`,a)])}let s=Bc(e,a);if(s){if(s.isKind(M.Schema)){let t=e.lookupMembers(s,[M.Table,M.Schema],o);return t?n.create(t):new n(void 0,[new x(b.BINDING_ERROR,`Table or schema '${o}' does not exist`,a)])}if(s.isKind(M.Table)){let t=e.lookupMembers(s,M.Column,o);return t?n.create(t):new n(void 0,[new x(b.BINDING_ERROR,`Column '${o}' does not exist in Table 'public.${s.name}'`,a)])}return new n(void 0)}let c=a.parentNode;if(c.leftExpression===a){if(T(c.parentNode)&&c.parentNode.leftExpression===c){let t=e.lookupMembers(i,M.Schema,o);return t?n.create(t):new n(void 0,[new x(b.BINDING_ERROR,`Schema '${o}' does not exist in Schema 'public'`,a)])}let t=e.lookupMembers(i,M.Table,o);return t?n.create(t):new n(void 0,[new x(b.BINDING_ERROR,`Table '${o}' does not exist in Schema 'public'`,a)])}return new n(void 0)}function Gg(e,t,r){if(!w(r))return new n(void 0);let i=vs(r)??``;if(!T(r.parentNode))return So.includes(i.toLowerCase())?new n(void 0):n.create(e.lookupMembers(t,M.Enum,i));let a=Bc(e,r);if(a){if(a.isKind(M.Schema)){let t=e.lookupMembers(a,[M.Enum,M.Schema],i);return t?n.create(t):new n(void 0,[new x(b.BINDING_ERROR,`Enum or schema '${i}' does not exist`,r)])}if(a.isKind(M.Enum)){let t=e.lookupMembers(a,M.EnumField,i);return t?n.create(t):new n(void 0,[new x(b.BINDING_ERROR,`Enum field '${i}' does not exist in Enum 'public.${a.name}'`,r)])}return new n(void 0)}let o=r.parentNode;if(o.leftExpression===r){if(T(o.parentNode)&&o.parentNode.leftExpression===o){let a=e.lookupMembers(t,M.Schema,i);return a?n.create(a):new n(void 0,[new x(b.BINDING_ERROR,`Schema '${i}' does not exist in Schema 'public'`,r)])}let a=e.lookupMembers(t,M.Enum,i);return a?n.create(a):new n(void 0,[new x(b.BINDING_ERROR,`Enum '${i}' does not exist in Schema 'public'`,r)])}return new n(void 0)}var Kg={symbolMembers(r,i){if(!i.isKind(M.Schema)||!(i instanceof js))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=Jg(r,i,e,c);l.push(...n.getErrors());let a=n.getFiltered(t);a&&s.push(a),s.push(...Yg(r,i,e))}for(let{importPath:e,node:t}of o.reuses.wildcard)s.push(...Zg(r,i,e,t,c));for(let e of o.uses.selective){let n=Jg(r,i,e,c);l.push(...n.getErrors());let a=n.getFiltered(t);a&&s.push(a),s.push(...Yg(r,i,e))}for(let{importPath:e,node:t}of o.uses.wildcard)s.push(...Zg(r,i,e,t,c));s.push(...c.values());let u=[...s];{let e=s.filter(e=>e.isKind(M.TableGroup));if(!i.isPublicSchema()){let n=r.usableMembers(i.filepath).getFiltered(t)?.schemaMembers.find(e=>e.isPublicSchema());if(n){let i=r.symbolMembers(n).getFiltered(t);i&&e.push(...i.filter(e=>e.isKind(M.TableGroup)))}}for(let t of e)u.push(...$g(r,i,t))}let d=new Set,f=u.filter(e=>{if(e instanceof Ys&&e.isKind(M.Schema))return!1;let t=`${e.originalSymbol.intern()}:${e.name??``}`;return d.has(t)?!1:(d.add(t),!0)}),p=new Map;for(let e of f){let t=`${e.kind}:${e.name}`;if(p.get(t)){if(e.isKind(M.Schema))continue;let t=e instanceof Ys?e.useSpecifierDeclaration??e.declaration:e.declaration instanceof P&&e.declaration.name?e.declaration.name:e.declaration;t&&e.name!==void 0&&l.push(qg(e.kind,e.name,a.join(`.`),t))}else p.set(t,e)}return new n(f,l)}};function qg(e,t,n,r){switch(e){case M.Table:return bg.getDuplicateError(t,n,r);case M.Enum:return nl.getDuplicateError(t,n,r);case M.TablePartial:return Vg.getDuplicateError(t,n,r);case M.TableGroup:return Ig.getDuplicateError(t,n,r);case M.DiagramView:return Jc.getDuplicateError(t,n,r);default:return new x(b.DUPLICATE_NAME,`Duplicate ${e} '${t}' in schema '${n}'`,r)}}function Jg(e,r,i,a){let o=rg(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(js,{name:o.schemaName,parent:r},r.filepath)),n.create(void 0)}function Yg(e,n,r,i=new Set){if(r.getSymbolKind()!==M.Schema||!r.name)return[];let a=e.nodeReferee(r.name).getFiltered(t);if(!a||!a.isKind(M.Schema))return[];let o=$h.visibleName(e,r),s=n.qualifiedName;return!o||o.length!==s.length||!o.every((e,t)=>e===s[t])?[]:Xg(e,n,r,a,i)}function Xg(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(Ys,{kind:t.kind,declaration:t.originalSymbol.declaration,usedSymbol:t.originalSymbol,useSpecifierDeclaration:r,name:t.name},n.filepath));for(let t of[...c])t.isKind(M.TableGroup)&&c.push(...$g(e,n,t));for(let i of s.reuses.selective)if(c.push(...Yg(e,n,i,a)),rg(e,n,i).kind===`direct`){let a=e.nodeSymbol(i).getFiltered(t);a&&a.canBeImported&&c.push(e.symbolFactory.create(Ys,{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=Qg(e,t,n.qualifiedName);i&&c.push(...Xg(e,n,r,i,a))}return c}function Zg(e,n,r,i,a,o=new Set){if(o.has(r))return[];o.add(r);let s=Qg(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(Ys,{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(js,{name:t.name},n.filepath));let{reuses:{selective:u,wildcard:d}}=c;for(let r of u){let i=Jg(e,n,r,a).getFiltered(t);i&&l.push(i),l.push(...Yg(e,n,r))}for(let{importPath:t}of d)l.push(...Zg(e,n,t,i,a,o));return l}function Qg(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 $g(e,n,r){if(!r.isKind(M.TableGroup)||!(r instanceof Ys))return[];let i=r.originalSymbol,a=e.symbolMembers(i).getFiltered(t);if(!a)return[];let o=n.qualifiedName,s=[];for(let t of a){if(!t.isKind(M.TableGroupField)||!t.declaration)continue;let n=t.declaration.callee;if(!n)continue;let i=O(n);if(!i||i.length===0)continue;let a=i.length<=1?[y]:i.slice(0,-1);if(a.length!==o.length||!o.every((e,t)=>e===a[t]))continue;let c=t.declaration.filepath,l=e_(e,c,i);l&&s.push(e.symbolFactory.create(Ys,{kind:M.Table,declaration:l.declaration,usedSymbol:l,useSpecifierDeclaration:void 0,name:l.name},r.filepath))}return s}function e_(e,n,r){if(r.length===1){let i=e.usableMembers(n).getFiltered(t);return i?i.nonSchemaMembers.find(e=>e.isKind(M.Table)&&e.name===r[0]):void 0}let i=r[0],a=r[r.length-1],o=e.usableMembers(n).getFiltered(t);if(!o)return;let s=o.schemaMembers.find(e=>e.name===i);if(!s)return;let c=e.usableMembers(s).getFiltered(t);if(c)return c.nonSchemaMembers.find(e=>e.isKind(M.Table)&&e.name===a)}var t_=class{constructor(e,t){this.compiler=e,this.declarationNode=t}bind(){return this.bindBody(this.declarationNode.body)}bindBody(e){if(!e||e instanceof L)return[];let t=e.body.filter(e=>e instanceof P);return this.bindSubElements(t)}bindSubElements(e){return e.flatMap(e=>e.type?this.compiler.bindNode(e).getErrors():[])}},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=j(this.declarationNode);let e=[...this.interpretName(),...this.interpretSettingList(this.declarationNode.attributeList),...this.interpretBody(this.declarationNode.body)];return n.create(this.note,e)}interpretName(){let{name:e}=this.symbol.interpretedName(this.compiler,this.filepath);return this.note.name=e,[]}interpretSettingList(e){let t=S(e).getValue();t.color?.length&&(this.note.color=Cs(t.color.at(0)?.value));let n=_g(t,hg);return Object.keys(n).length>0&&(this.note.metadata=n),[]}interpretBody(e){let[t,n]=_(e.body,e=>e instanceof L);return t.length!==1||n.length>0?[new x(b.INVALID_NOTE,`Invalid note syntax`,e)]:[...this.interpretNote(t[0])]}interpretNote(e){let t=k(e.callee)??``;return this.note.content=xs(t),[]}},r_={nodeSymbol(i,a){return!E(a,r.Note)||!(a.parentNode instanceof $s)?n.create(e):new n(i.symbolFactory.create(Rs,{declaration:a,name:i.nodeFullname(a).getFiltered(t)?.at(-1)},a.filepath))},symbolMembers(t,r){return r.isKind(M.StickyNote)?new n([]):n.create(e)},bindNode(t,i){return E(i,r.Note)?n.create(void 0,new t_(t,i).bind()):n.create(e)},interpretSymbol(t,r,i){return r instanceof Rs?r.declaration instanceof P?new n_(t,r,i).interpret():n.create(void 0):n.create(e)}};function i_(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?i_(e,a,n.slice(1)):a}var a_={[Ds.Column]:{parentKind:Ds.Table,symbolKind:M.Column},[Ds.Table]:{parentKind:Ds.Schema,symbolKind:M.Table},[Ds.Schema]:{parentKind:Ds.Schema,symbolKind:M.Schema},[Ds.Note]:{parentKind:Ds.Schema,symbolKind:M.StickyNote},[Ds.TableGroup]:{parentKind:Ds.Schema,symbolKind:M.TableGroup}};function o_(e,t){if(e.length===0||e.length===1&&t===Ds.Schema&&e[0]===`public`)return[];let{parentKind:n,symbolKind:r}=a_[t];return[...o_(e.slice(0,-1),n),{name:e.at(-1),symbolKind:r}]}function s_(e,t){let n=Uc(e,t.filepath);if(!n)return;let r=t.getTargetKind(),i=O(t.targetName);if(!i?.length||!r)return;let a=o_(i,r),{name:o,symbolKind:s}=a[0];if(o===`public`&&s===M.Schema){let t=Hc(e,n);if(t)return i_(e,t,a.slice(1))}return i_(e,n,a)}var c_=class{constructor(e,t){this.compiler=e,this.declarationNode=t}bind(){return[...this.bindTargetElement(this.declarationNode.targetName),...this.bindBody(this.declarationNode.body)]}bindTargetElement(e){let t=this.declarationNode.getTargetKind();return!O(e)?.length||!t||s_(this.compiler,this.declarationNode)?[]:[new x(b.BINDING_ERROR,`cannot find metadata target element`,e??this.declarationNode)]}bindBody(e){return e instanceof R?e.body.filter(e=>e instanceof P).flatMap(e=>e.type?this.compiler.bindNode(e).getErrors():[]):[]}},l_=[eg,xg,rl,Hh,ol,jc,Zh,Fh,Lg,Hg,r_,{nodeMetadata(t,r){return r instanceof rc?new n(new Tc(r)):new n(e)},nodeReferee(t,r){if(!w(r))return new n(e);let i=r.parentOfKind(rc);return!i||!i.targetName?.containsEq(r)?new n(e):!O(i.targetName)||!i.getTargetKind()?new n(void 0):new n(s_(t,i))},bindNode(t,r){return r instanceof rc?new n(void 0,new c_(t,r).bind()):new n(e)},interpretMetadata(t,r,i){return r instanceof Tc?r.declaration instanceof rc?new vg(t,r,i).interpret():new n(void 0):new n(e)}},Kg,Yc,Mh];function u_(t,...r){for(let i of l_){let a=i[t];if(a){let t=a(...r);if(t instanceof n&&!t.hasValue(e))return t}}return n.create(e)}function d_(r){let i=u_(`nodeSymbol`,this,r);return i.hasValue(e)?n.create(t):i}function f_(r){let i=u_(`symbolMembers`,this,r);return i.hasValue(e)?n.create(t):i}function p_(r){let i=u_(`nodeReferee`,this,r);return i.hasValue(e)?n.create(t):i}function m_(r){let i=u_(`bindNode`,this,r);return i.hasValue(e)?n.create(t):i}function h_(r){let i=u_(`nodeMetadata`,this,r);return i.hasValue(e)?n.create(t):i}function g_(r,i){let a=u_(`interpretSymbol`,this,r,i);return a.hasValue(e)?n.create(t):a}function __(r,i){let a=u_(`interpretMetadata`,this,r,i);return a.hasValue(e)?n.create(t):a}var v_=class{constructor(e,t){this.compiler=e,this.declarationNode=t}validate(){return[...this.validateContext(),...this.validateName(this.declarationNode.name),...this.validateAlias(this.declarationNode.alias),...this.validateSettingList(this.declarationNode.attributeList),...this.validateBody(this.declarationNode.body)]}validateContext(){let e=new x(b.INVALID_CHECKS_CONTEXT,`A Checks can only appear inside a Table or a TablePartial`,this.declarationNode);return this.declarationNode.parent instanceof $s?[e]:this.declarationNode.parent?.isKind(r.Table,r.TablePartial)?[]:[e]}validateName(e){return e?[new x(b.UNEXPECTED_NAME,`A Checks shouldn't have a name`,e)]:[]}validateAlias(e){return e?[new x(b.UNEXPECTED_ALIAS,`A Checks shouldn't have an alias`,e)]:[]}validateSettingList(e){return e?[new x(b.UNEXPECTED_SETTINGS,`A Checks shouldn't have a setting list`,e)]:[]}validateBody(e){if(!e)return[];if(e instanceof L)return[new x(b.UNEXPECTED_SIMPLE_BODY,`A Checks must have a complex body`,e)];let[t,n]=_(e.body,e=>e instanceof L);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 z&&t.push(...this.validateFieldSetting(n.pop())),(n.length>1||!(n[0]instanceof sc))&&t.push(new x(b.INVALID_CHECKS_FIELD,`A check field must be a function expression`,e)),t})}validateFieldSetting(e){let t=S(e),n=t.getErrors(),r=t.getValue();for(let[e,t]of Object.entries(r))switch(e){case`name`:t.length>1&&t.forEach(t=>n.push(new x(b.DUPLICATE_CHECK_SETTING,`'${e}' can only appear once`,t))),t.forEach(t=>{C(t.value)||n.push(new x(b.INVALID_CHECK_SETTING_VALUE,`'${e}' must be a string`,t))});break;default:t.forEach(t=>n.push(new x(b.UNKNOWN_CHECK_SETTING,`Unknown check setting '${e}'`,t)))}return n}validateSubElements(e){return e.flatMap(e=>e.type?this.compiler.validateNode(e).getErrors():[])}},y_={validateNode(t,i){if(!E(i,r.Checks))return n.create(e);let a=new v_(t,i);return n.create(void 0,a.validate())},nodeFullname(t,i){return E(i,r.Checks)?i.name?new n(void 0,[new x(b.UNEXPECTED_NAME,`A Checks shouldn't have a name`,i.name)]):new n(void 0):n.create(e)},nodeAlias(t,i){return E(i,r.Checks)?i.alias?new n(void 0,[new x(b.UNEXPECTED_ALIAS,`A Checks shouldn't have an alias`,i.alias)]):new n(void 0):n.create(e)},nodeSettings(t,i){return E(i,r.Checks)?i.attributeList?new n({},[new x(b.UNEXPECTED_SETTINGS,`A Checks shouldn't have a setting list`,i.attributeList)]):new n({}):n.create(e)}},b_=class{constructor(e,t){this.declarationNode=t,this.compiler=e}validate(){return[...this.validateContext(),...this.validateName(this.declarationNode.name),...this.validateAlias(this.declarationNode.alias),...this.validateSettingList(this.declarationNode.attributeList),...this.validateBody(this.declarationNode.body)]}validateContext(){let e=this.declarationNode.parent;return e instanceof P&&(e.isKind(r.Project)||e.isKind(r.Metadata))?[]:[new x(b.INVALID_CUSTOM_CONTEXT,`A Custom element can only appear in a Project`,this.declarationNode)]}validateName(e){return e?[new x(b.UNEXPECTED_NAME,`A Custom element shouldn't have a name`,e)]:[]}validateAlias(e){return e?[new x(b.UNEXPECTED_NAME,`A Custom element shouldn't have an alias`,e)]:[]}validateSettingList(e){return e?[new x(b.UNEXPECTED_SETTINGS,`A Custom element shouldn't have a setting list`,e)]:[]}validateBody(e){if(!e)return[];if(e instanceof R)return[new x(b.UNEXPECTED_COMPLEX_BODY,`A Custom element can only have an inline field`,e)];let t=[];return C(e.callee)||t.push(new x(b.INVALID_CUSTOM_ELEMENT_VALUE,`A Custom element value can only be a string`,e)),e.args.length>0&&t.push(...e.args.map(e=>new x(b.INVALID_CUSTOM_ELEMENT_VALUE,`A Custom element value can only be a string`,e))),t}};function x_(e){return e instanceof P&&!!e.type?.value}var S_={validateNode(t,r){if(!x_(r))return n.create(e);let i=new b_(t,r);return n.create(void 0,i.validate())},nodeFullname(t,r){return x_(r)?r.name?new n(void 0,[new x(b.UNEXPECTED_NAME,`A custom field shouldn't have a name`,r.name)]):new n(void 0):n.create(e)},nodeAlias(t,r){return x_(r)?r.alias?new n(void 0,[new x(b.UNEXPECTED_NAME,`A custom field shouldn't have an alias`,r.alias)]):new n(void 0):n.create(e)},nodeSettings(t,r){return x_(r)?r.attributeList?new n({},[new x(b.UNEXPECTED_SETTINGS,`A custom field shouldn't have a setting list`,r.attributeList)]):new n({}):n.create(e)}},C_=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 P?[new x(b.INVALID_DIAGRAMVIEW_CONTEXT,`DiagramView must appear top-level`,this.declarationNode)]:[]}validateName(e){return e?Po(e)?[]:[new x(b.INVALID_NAME,`A DiagramView name must be a single identifier`,e)]:[new x(b.NAME_NOT_FOUND,`A DiagramView must have a name`,this.declarationNode)]}validateAlias(e){return e?[new x(b.UNEXPECTED_ALIAS,`A DiagramView shouldn't have an alias`,e)]:[]}validateSettingList(e){let t=S(e),n=t.getErrors(),r=t.getValue();for(let e of Object.keys(r))n.push(...r[e].map(t=>new x(b.UNEXPECTED_SETTINGS,`Unknown '${e}' setting for DiagramView`,t)));return n}validateBody(e){if(!e)return{errors:[],warnings:[]};if(e instanceof L)return{errors:[new x(b.UNEXPECTED_SIMPLE_BODY,`A DiagramView's body must be a block`,e)],warnings:[]};let[t,n]=_(e.body,e=>e instanceof L),r=this.validateSubElements(n);return{errors:[...this.validateFields(t),...r.errors],warnings:r.warnings}}validateFields(e){return e.flatMap(e=>qo(e.callee)?e.args.length>0?e.args.map(e=>new x(b.INVALID_DIAGRAMVIEW_FIELD,`DiagramView field should only have a single name`,e)):[]:[new x(b.INVALID_DIAGRAMVIEW_FIELD,`Fields are not allowed at DiagramView level. Use Tables, Notes, TableGroups, or Schemas blocks instead.`,e)])}validateSubElements(e){let t=[],n=[],r=[`tables`,`notes`,`tablegroups`,`schemas`];for(let i of e){if(!i.type)continue;let e=i.type.value.toLowerCase();if(!r.includes(e)){t.push(new x(b.INVALID_DIAGRAMVIEW_FIELD,`Unknown block type "${i.type.value}" in DiagramView. Allowed: Tables, Notes, TableGroups, Schemas`,i));continue}let a=this.validateSubBlock(i);t.push(...a.errors),n.push(...a.warnings)}return{errors:t,warnings:n}}validateSubBlock(e){let t=[],n=[];if(Fo(e))return t.push(new x(b.UNEXPECTED_SIMPLE_BODY,`${e.type?.value} body must be a block`,e.bodyColon)),{errors:t,warnings:n};if(!e.body||!(e.body instanceof R))return{errors:t,warnings:n};let r=e.body,i=r.body.some(e=>e instanceof L&&qo(e.callee)),a=r.body.some(e=>e instanceof L&&!qo(e.callee));return i&&a&&n.push(new Do(b.INVALID_DIAGRAMVIEW_FIELD,`Wildcard (*) combined with specific items in ${e.type?.value} block. Specific items will be ignored.`,e)),t.push(...this.validateSubBlockFields(e)),{errors:t,warnings:n}}validateSubBlockFields(e){let t=[];if(!e.body||!(e.body instanceof R))return t;let n=e.body.body.filter(e=>e instanceof L);for(let e of n)qo(e.callee)||(e.args.length>0||!O(e.callee))&&t.push(...e.args.map(e=>new x(b.INVALID_DIAGRAMVIEW_FIELD,`DiagramView field should only have a single name`,e)));return t}},w_={validateNode(t,i){if(!E(i,r.DiagramView))return n.create(e);let{errors:a,warnings:o}=new C_(t,i).validate();return n.create(void 0,a,o)},nodeFullname(t,i){if(E(i,r.DiagramView)){if(!i.name)return new n(void 0,[new x(b.NAME_NOT_FOUND,`A DiagramView must have a name`,i)]);let e=O(i.name);return e?new n(e):new n(void 0)}else if(D(i,r.DiagramViewTables,r.DiagramViewNotes,r.DiagramViewSchemas,r.DiagramViewTableGroups)){let e=O(i.callee);return e?(e.length===1&&D(i,r.DiagramViewTables)&&e.unshift(y),new n(e)):new n(void 0)}return new n(e)},nodeAlias(t,i){return E(i,r.DiagramView)?new n(void 0):n.create(e)}},T_=class{constructor(e,t){this.compiler=e,this.declarationNode=t}validate(){return[...this.validateContext(),...this.validateName(this.declarationNode.name),...this.validateAlias(this.declarationNode.alias),...this.validateSettingList(this.declarationNode.attributeList),...this.validateBody(this.declarationNode.body)]}validateContext(){return this.declarationNode.parent instanceof P?[new x(b.INVALID_PROJECT_CONTEXT,`An Enum can only appear top-level`,this.declarationNode)]:[]}validateName(e){return e?e instanceof fc?[new x(b.INVALID_NAME,`Wildcard (*) is not allowed as an Enum name`,e)]:Mo(e)?[]:[new x(b.INVALID_NAME,`An Enum name must be of the form <enum> or <schema>.<enum>`,e)]:[new x(b.NAME_NOT_FOUND,`An Enum must have a name`,this.declarationNode)]}validateAlias(e){return e?[new x(b.UNEXPECTED_ALIAS,`An Enum shouldn't have an alias`,e)]:[]}validateSettingList(e){return e?[new x(b.UNEXPECTED_SETTINGS,`An Enum shouldn't have a setting list`,e)]:[]}validateBody(e){if(!e)return[];if(e instanceof L)return this.validateFields([e]);let[t,n]=_(e.body,e=>e instanceof L);return[...this.validateFields(t),...this.validateSubElements(n)]}validateFields(e){if(e.length===0)return[new x(b.EMPTY_ENUM,`An Enum must have at least one element`,this.declarationNode)];let t=[];for(let n of e){n.callee&&!w(n.callee)&&t.push(new x(b.INVALID_ENUM_ELEMENT_NAME,`An enum field must be an identifier or a quoted identifier`,n.callee));let e=[...n.args];g(e)instanceof z?(t.push(...this.validateFieldSettings(g(e))),e.pop()):e[0]instanceof z&&(t.push(...this.validateFieldSettings(e[0])),e.shift()),e.length>0&&t.push(...e.map(e=>new x(b.INVALID_ENUM_ELEMENT,`An Enum must have only a field and optionally a setting list`,e)))}return t}validateFieldSettings(e){let t=S(e),n=t.getErrors(),r=t.getValue();for(let e in r){let t=r[e];if(t)switch(e){case i.Note:t.length>1&&t.forEach(e=>n.push(new x(b.DUPLICATE_ENUM_ELEMENT_SETTING,`'note' can only appear once`,e))),t.forEach(e=>{C(e.value)||n.push(new x(b.INVALID_ENUM_ELEMENT_SETTING,`'note' must be a string`,e))});break;default:t.forEach(t=>n.push(new x(b.UNKNOWN_ENUM_ELEMENT_SETTING,`Unknown enum field setting '${e}'`,t)))}}return n}validateSubElements(e){return e.flatMap(e=>e.type?this.compiler.validateNode(e).getErrors():[])}},E_={validateNode(t,i){return E(i,r.Enum)?n.create(void 0,new T_(t,i).validate()):n.create(e)},nodeFullname(t,i){if(E(i,r.Enum)){if(!i.name)return new n(void 0,[new x(b.NAME_NOT_FOUND,`An Enum must have a name`,i)]);if(!Mo(i.name))return new n(void 0,[new x(b.INVALID_NAME,`An Enum name must be of the form <enum> or <schema>.<enum>`,i.name)]);let e=O(i.name);return e?.length===1&&e.unshift(y),new n(e)}if(D(i,r.Enum)){let e=A(i.callee);return new n(e===void 0?void 0:[e])}return n.create(e)},nodeAlias(t,i){return E(i,r.Enum)?i.alias?new n(void 0,[new x(b.UNEXPECTED_ALIAS,`An Enum shouldn't have an alias`,i.alias)]):new n(void 0):D(i,r.Enum)?new n(void 0):n.create(e)},nodeSettings(t,a){if(E(a,r.Enum))return a.attributeList?new n({},[new x(b.UNEXPECTED_SETTINGS,`An Enum shouldn't have a setting list`,a.attributeList)]):new n({});if(D(a,r.Enum)){let e=[...a.args],t;if(g(e)instanceof z?t=g(e):e[0]instanceof z&&(t=e[0]),!t)return new n({});let r=S(t),o=r.getErrors(),s=r.getValue(),c={};for(let[e,t]of Object.entries(s))switch(e){case i.Note:t.length>1&&t.forEach(e=>o.push(new x(b.DUPLICATE_ENUM_ELEMENT_SETTING,`'note' can only appear once`,e))),t.forEach(e=>{C(e.value)||o.push(new x(b.INVALID_ENUM_ELEMENT_SETTING,`'note' must be a string`,e))}),c[e]=t;break;default:t.forEach(t=>o.push(new x(b.UNKNOWN_ENUM_ELEMENT_SETTING,`Unknown enum field setting '${e}'`,t)))}return new n(c,o)}return n.create(e)}},D_=class{constructor(e,t){this.compiler=e,this.declarationNode=t}validate(){return[...this.validateContext(),...this.validateName(this.declarationNode.name),...this.validateAlias(this.declarationNode.alias),...this.validateSettingList(this.declarationNode.attributeList),...this.validateBody(this.declarationNode.body)]}validateContext(){let e=new x(b.INVALID_INDEXES_CONTEXT,`An Indexes can only appear inside a Table or a TablePartial`,this.declarationNode);return this.declarationNode.parent instanceof $s?[e]:this.declarationNode.parent?.isKind(r.Table,r.TablePartial)?[]:[e]}validateName(e){return e?[new x(b.UNEXPECTED_NAME,`An Indexes shouldn't have a name`,e)]:[]}validateAlias(e){return e?[new x(b.UNEXPECTED_ALIAS,`An Indexes shouldn't have an alias`,e)]:[]}validateSettingList(e){return e?[new x(b.UNEXPECTED_SETTINGS,`An Indexes shouldn't have a setting list`,e)]:[]}validateBody(e){if(!e)return[];if(e instanceof L)return[new x(b.UNEXPECTED_SIMPLE_BODY,`An Indexes must have a complex body`,e)];let[t,n]=_(e.body,e=>e instanceof L);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 z&&t.push(...this.validateFieldSetting(n.pop())),n.forEach(e=>{for(;e instanceof B;)e.argumentList&&hs(e.argumentList)===void 0&&t.push(new x(b.INVALID_INDEXES_FIELD,`An index field must be an identifier, a quoted identifier, a functional expression or a tuple of such`,e.argumentList)),e=e.callee;hs(e)===void 0&&t.push(new x(b.INVALID_INDEXES_FIELD,`An index field must be an identifier, a quoted identifier, a functional expression or a tuple of such`,e))}),t})}validateFieldSetting(e){let t=S(e),n=t.getErrors(),r=t.getValue();for(let[e,t]of Object.entries(r))switch(e){case`note`:case`name`:t.length>1&&t.forEach(t=>n.push(new x(b.DUPLICATE_INDEX_SETTING,`'${e}' can only appear once`,t))),t.forEach(t=>{C(t.value)||n.push(new x(b.INVALID_INDEX_SETTING_VALUE,`'${e}' must be a string`,t))});break;case`unique`:case`pk`:t.length>1&&t.forEach(t=>n.push(new x(b.DUPLICATE_INDEX_SETTING,`'${e}' can only appear once`,t))),t.forEach(t=>{t.value!==void 0&&n.push(new x(b.INVALID_INDEX_SETTING_VALUE,`'${e}' must not have a value`,t))});break;case`type`:t.length>1&&t.forEach(e=>n.push(new x(b.DUPLICATE_INDEX_SETTING,`'type' can only appear once`,e))),t.forEach(e=>{w(e.value)||n.push(new x(b.INVALID_INDEX_SETTING_VALUE,`'type' must be "btree" or "hash"`,e))});break;default:t.forEach(t=>n.push(new x(b.UNKNOWN_INDEX_SETTING,`Unknown index setting '${e}'`,t)))}return n}validateSubElements(e){return e.flatMap(e=>e.type?this.compiler.validateNode(e).getErrors():[])}},O_={validateNode(t,i){return E(i,r.Indexes)?n.create(void 0,new D_(t,i).validate()):n.create(e)},nodeFullname(t,i){return E(i,r.Indexes)?i.name?new n(void 0,[new x(b.UNEXPECTED_NAME,`An Indexes shouldn't have a name`,i.name)]):new n(void 0):D(i,r.Indexes)?new n(void 0):n.create(e)},nodeAlias(t,i){return E(i,r.Indexes)?i.alias?new n(void 0,[new x(b.UNEXPECTED_ALIAS,`An Indexes shouldn't have an alias`,i.alias)]):new n(void 0):D(i,r.Indexes)?new n(void 0):n.create(e)},nodeSettings(t,a){if(E(a,r.Indexes))return a.attributeList?new n({},[new x(b.UNEXPECTED_SETTINGS,`An Indexes shouldn't have a setting list`,a.attributeList)]):new n({});if(D(a,r.Indexes)){let e=[a.callee,...a.args],t;if(g(e)instanceof z&&(t=g(e)),!t)return new n({});let r=S(t),o=r.getErrors(),s=r.getValue(),c={};for(let[e,t]of Object.entries(s))switch(e){case i.Note:case i.Name:t.length>1&&t.forEach(t=>o.push(new x(b.DUPLICATE_INDEX_SETTING,`'${e}' can only appear once`,t))),t.forEach(t=>{C(t.value)||o.push(new x(b.INVALID_INDEX_SETTING_VALUE,`'${e}' must be a string`,t))}),c[e]=t;break;case i.Unique:case i.PK:t.length>1&&t.forEach(t=>o.push(new x(b.DUPLICATE_INDEX_SETTING,`'${e}' can only appear once`,t))),t.forEach(t=>{t.value!==void 0&&o.push(new x(b.INVALID_INDEX_SETTING_VALUE,`'${e}' must not have a value`,t))}),c[e]=t;break;case i.Type:t.length>1&&t.forEach(e=>o.push(new x(b.DUPLICATE_INDEX_SETTING,`'type' can only appear once`,e))),t.forEach(e=>{w(e.value)||o.push(new x(b.INVALID_INDEX_SETTING_VALUE,`'type' must be "btree" or "hash"`,e))}),c[e]=t;break;default:t.forEach(t=>o.push(new x(b.UNKNOWN_INDEX_SETTING,`Unknown index setting '${e}'`,t)))}return new n(c,o)}return n.create(e)}},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(){let e=this.declarationNode.parent;return!(e instanceof $s)&&!(e instanceof P&&e.isKind(r.Table,r.TableGroup,r.TablePartial,r.Metadata,r.Project))?[new x(b.INVALID_NOTE_CONTEXT,`A Note can only appear inside a Table, a TableGroup, a TablePartial, a Metadata or a Project. Sticky note can only appear at the global scope.`,this.declarationNode)]:[]}validateName(e){return this.compiler.nodeFullname(this.declarationNode).getErrors()}validateAlias(e){return e?[new x(b.UNEXPECTED_ALIAS,`A Note shouldn't have an alias`,e)]:[]}isStickyNote(){return this.declarationNode.parent instanceof $s}validateSettingList(e){if(!e)return[];if(!this.isStickyNote())return[new x(b.UNEXPECTED_SETTINGS,`A Note shouldn't have a setting list`,e)];let t=S(e),n=t.getErrors();return Sa(t.getValue(),(e,t)=>{switch(t){case i.Color:e.length>1&&n.push(...e.map(e=>new x(b.DUPLICATE_NOTE_SETTING,`'color' can only appear once`,e))),e.forEach(e=>{zo(e.value)||n.push(new x(b.INVALID_NOTE_SETTING_VALUE,`'color' must be a color literal or 'none'`,e.value||e.name))});break;default:n.push(...Ko(t,e,{duplicate:b.DUPLICATE_NOTE_SETTING,invalidValue:b.INVALID_NOTE_SETTING_VALUE}))}}),n}validateBody(e){if(!e)return[];if(e instanceof L)return this.validateFields([e]);let[t,n]=_(e.body,e=>e instanceof L);return[...this.validateFields(t),...this.validateSubElements(n)]}validateFields(e){let t=[];return e.length===0?[new x(b.EMPTY_NOTE,`A Note must have a content`,this.declarationNode)]:(e.length>1&&e.slice(1).forEach(e=>t.push(new x(b.NOTE_CONTENT_REDEFINED,`A Note can only contain one string`,e))),C(e[0].callee)||t.push(new x(b.INVALID_NOTE,`A Note content must be a quoted string`,e[0])),e[0].args.length>0&&t.push(...e[0].args.map(e=>new x(b.INVALID_NOTE,`A Note can only contain one quoted string`,e))),t)}validateSubElements(e){return e.flatMap(e=>e.type?this.compiler.validateNode(e).getErrors():[])}},A_={validateNode(t,i){return E(i,r.Note)?n.create(void 0,new k_(t,i).validate()):n.create(e)},nodeFullname(t,i){if(!E(i,r.Note))return n.create(e);if(!(i.parent instanceof $s))return i.name?new n(void 0,[new x(b.UNEXPECTED_NAME,`A Note shouldn't have a name`,i.name)]):new n(void 0);if(!i.name)return new n(void 0,[new x(b.INVALID_NAME,`Sticky note must have a name`,i)]);if(i.name instanceof fc)return new n(void 0,[new x(b.INVALID_NAME,`Wildcard (*) is not allowed as a Note name`,i.name)]);let a=O(i.name);return a===void 0?new n(void 0,[new x(b.INVALID_NAME,`Invalid name for sticky note `,i)]):new n(a)},nodeAlias(t,i){return E(i,r.Note)?i.alias?new n(void 0,[new x(b.UNEXPECTED_ALIAS,`A Note shouldn't have an alias`,i.alias)]):new n(void 0):n.create(e)},nodeSettings(t,i){return E(i,r.Note)?i.attributeList?new n({},[new x(b.UNEXPECTED_SETTINGS,`A Note shouldn't have a setting list`,i.attributeList)]):new n({}):n.create(e)}},j_=class{constructor(e,t){this.compiler=e,this.declarationNode=t}validate(){return[...this.validateTargetKind(),...this.validateTargetName(this.declarationNode.targetName),...this.validateBody(this.declarationNode.body)]}validateTargetKind(){return this.declarationNode.getTargetKind()?[]:[new x(b.INVALID_METADATA_TARGET_KIND,`A Metadata target kind must be one of: ${Os.join(`, `)}`,this.declarationNode.targetKind??this.declarationNode)]}validateTargetName(e){return e?e instanceof gc?[new x(b.INVALID_NAME,`Invalid array as Metadata target's name.`,e)]:e instanceof fc?[new x(b.INVALID_NAME,`Wildcard (*) is not allowed as a Metadata target's name`,e)]:Mo(e)?[]:[new x(b.INVALID_NAME,`A Metadata target's name must be a schema-qualified name`,e)]:[new x(b.NAME_NOT_FOUND,`A Metadata target must have a name`,this.declarationNode)]}validateBody(e){if(!e)return[];if(e instanceof L)return[new x(b.UNEXPECTED_SIMPLE_BODY,`A Metadata's body must be a block`,e)];let[t,n]=_(e.body,e=>e instanceof L);return[...this.validateFields(t),...this.validateSubElements(n)]}validateFields(e){return e.map(e=>new x(b.INVALID_METADATA_FIELD,`A Metadata field must use the 'key: value' syntax`,e))}validateSubElements(e){let t={},n=this.declarationNode.getTargetKind(),r=e.flatMap(e=>{if(!e.type)return[];let r=e.type.value.toLowerCase();t[r]||(t[r]=[]),t[r].push(e);let i=Ah(n,r);return i?e.body instanceof R?[new x(b.UNEXPECTED_COMPLEX_BODY,`A Metadata field can only have an inline value`,e.body)]:(i.reshape===Oh.Color||i.reshape===Oh.HeaderColor)&&!zo(e.body?.callee)?[new x(b.INVALID_METADATA_FIELD,`'${e.type.value}' must be a color literal or 'none'`,e)]:i.reshape===Oh.Note&&!C(e.body?.callee)?[new x(b.INVALID_METADATA_FIELD,`'${e.type.value}' must be a string`,e)]:[]:e.body instanceof R?[new x(b.UNEXPECTED_COMPLEX_BODY,`A Metadata field can only have an inline value`,e.body)]:Go(e.body instanceof L?e.body.callee:void 0)?[]:[new x(b.INVALID_METADATA_FIELD,`A Metadata field value must be a scalar value`,e.body??e)]});return r.push(...Object.values(t).flatMap(e=>e.length<=1?[]:e.map(e=>new x(b.DUPLICATE_METADATA_FIELD,`Duplicate Metadata fields are defined`,e)))),r}},M_={validateNode(t,r){return r instanceof rc?new n(void 0,new j_(t,r).validate()):new n(e)},nodeFullname(t,r){return r instanceof rc?new n(void 0):new n(e)},nodeAlias(t,r){return r instanceof rc?new n(void 0):new n(e)},nodeSettings(t,r){return r instanceof rc?new n({}):new n(e)}},N_=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)}},P_={validateNode(t,r){return Qo(r)?n.create(void 0,new N_(t,r).validate().getErrors()):n.create(e)},nodeFullname(t,r){return Qo(r)?new n(void 0):n.create(e)},nodeAlias(t,r){return Qo(r)?new n(void 0):n.create(e)},nodeSettings(t,r){return Qo(r)?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).getErrors(),...this.validateAlias(this.declarationNode.alias).getErrors(),...this.validateSettingList(this.declarationNode.attributeList).getErrors(),...this.validateBody(this.declarationNode.body)]}validateContext(){return this.declarationNode.parent instanceof P?[new x(b.INVALID_PROJECT_CONTEXT,`A Project can only appear top-level`,this.declarationNode)]:[]}validateName(e){return e?Po(e)?new n(O(e)):new n(void 0,[new x(b.INVALID_NAME,`A Project's name is optional or must be an identifier or a quoted identifer`,e)]):new n(void 0)}validateAlias(e){return e?new n(void 0,[new x(b.UNEXPECTED_ALIAS,`A Project shouldn't have an alias`,e)]):new n(void 0)}validateSettingList(e){return e?new n({},[new x(b.UNEXPECTED_SETTINGS,`A Project shouldn't have a setting list`,e)]):new n({})}validateBody(e){if(!e)return[];if(e instanceof L)return[new x(b.UNEXPECTED_SIMPLE_BODY,`A Project's body must be a block`,e)];let[t,n]=_(e.body,e=>e instanceof L);return[...t.map(e=>new x(b.INVALID_PROJECT_FIELD,`A Project can not have inline fields`,e)),...this.validateSubElements(n)]}validateSubElements(e){return e.flatMap(e=>e.type?this.compiler.validateNode(e).getErrors():[])}},I_={validateNode(t,i){return E(i,r.Project)?n.create(void 0,new F_(t,i).validate()):n.create(e)},nodeFullname(t,i){return E(i,r.Project)?i.name?Po(i.name)?new n(O(i.name)):new n(void 0,[new x(b.INVALID_NAME,`A Project's name is optional or must be an identifier or a quoted identifer`,i.name)]):new n(void 0):D(i,r.Project)?new n(void 0):n.create(e)},nodeAlias(t,i){return E(i,r.Project)&&i.alias?new n(void 0,[new x(b.UNEXPECTED_ALIAS,`A Project shouldn't have an alias`,i.alias)]):D(i,r.Project)?new n(void 0):n.create(e)},nodeSettings(t,i){return E(i,r.Project)?i.attributeList?new n({},[new x(b.UNEXPECTED_SETTINGS,`A Project shouldn't have a setting list`,i.attributeList)]):new n({}):D(i,r.Project)?new n({}):n.create(e)}},L_=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 $s||e instanceof P&&e.isKind(r.Table)?[]:[new x(b.INVALID_RECORDS_CONTEXT,`Records can only appear at top-level or inside a Table`,this.declarationNode)]}validateName(e){return e instanceof fc?[new x(b.INVALID_NAME,`Wildcard (*) is not allowed as a Records name`,e)]:this.declarationNode.parent instanceof $s?this.validateTopLevelName(e):this.validateInsideTableName(e)}validateTopLevelName(e){if(!(e instanceof B))return[new x(b.INVALID_RECORDS_NAME,`Records at top-level must have a name in the form of table(col1, col2, ...) or schema.table(col1, col2, ...)`,e||this.declarationNode.type||this.declarationNode)];let t=[];return(!e.callee||!Mo(e.callee))&&t.push(new x(b.INVALID_RECORDS_NAME,`Records table reference must be a valid table name`,e.callee||e)),(!e.argumentList||!Uo(e.argumentList))&&t.push(new x(b.INVALID_RECORDS_NAME,`Records column list must be simple column names`,e.argumentList||e)),t}validateInsideTableName(e){return e&&!Uo(e)?[new x(b.INVALID_RECORDS_NAME,`Records inside a Table can only have a column list like (col1, col2, ...)`,e)]:[]}validateAlias(e){return e?[new x(b.UNEXPECTED_ALIAS,`Records cannot have an alias`,e)]:[]}validateSettingList(e){return e?[new x(b.UNEXPECTED_SETTINGS,`Records cannot have a setting list`,e)]:[]}validateBody(e){if(!e)return[];if(e instanceof L)return this.validateDataRow(e);let[t,n]=_(e.body,e=>e instanceof L);return[...this.validateDataRows(t),...this.validateSubElements(n)]}validateDataRows(e){return e.flatMap(e=>this.validateDataRow(e))}validateDataRow(e){let t=[];if(!e.callee||e.args.length>0)return t.push(new x(b.INVALID_RECORDS_FIELD,`Invalid record row structure`,e)),t;if(e.callee instanceof lc)for(let n of e.callee.elementList)this.isValidRecordValue(n)||t.push(new x(b.INVALID_RECORDS_FIELD,`Records can only contain simple values (literals, null, true, false, or enum references). Complex expressions are not allowed.`,n));else this.isValidRecordValue(e.callee)||t.push(new x(b.INVALID_RECORDS_FIELD,`Records can only contain simple values (literals, null, true, false, or enum references). Complex expressions are not allowed.`,e.callee));return t}isValidRecordValue(e){if(e instanceof hc||Vo(e)||C(e)||e instanceof sc)return!0;if(w(e)){let t=e.expression.variable.value.toLowerCase();return So.includes(t)}if(T(e)){let t=O(e);return t!==void 0&&t.length>0}return!1}validateSubElements(e){return e.flatMap(e=>e.type?this.compiler.validateNode(e).getErrors():[])}},R_={validateNode(t,i){return E(i,r.Records)?n.create(void 0,new L_(t,i).validate()):n.create(e)},nodeFullname(i,a){if(E(a,r.Records)){if(a.name instanceof fc)return new n(void 0,[new x(b.INVALID_NAME,`Wildcard (*) is not allowed as a Records name`,a.name)]);if(a.parent instanceof $s){if(!(a.name instanceof B))return new n(void 0,[new x(b.INVALID_RECORDS_NAME,`Records at top-level must have a name in the form of table(col1, col2, ...) or schema.table(col1, col2, ...)`,a.name||a.type||a)]);let e=[];(!a.name.callee||!Mo(a.name.callee))&&e.push(new x(b.INVALID_RECORDS_NAME,`Records table reference must be a valid table name`,a.name.callee||a.name)),(!a.name.argumentList||!Uo(a.name.argumentList))&&e.push(new x(b.INVALID_RECORDS_NAME,`Records column list must be simple column names`,a.name.argumentList||a.name));let t=O(a.name.callee);return t?.length===1&&t.unshift(y),new n(t,e)}else{let e=a.parent&&i.nodeFullname(a.parent).getFiltered(t);return a.name&&!Uo(a.name)?new n(e,[new x(b.INVALID_RECORDS_NAME,`Records inside a Table can only have a column list like (col1, col2, ...)`,a.name)]):new n(e)}}return D(a,r.Records)?new n(void 0):n.create(e)},nodeAlias(t,i){return E(i,r.Records)?i.alias?new n(void 0,[new x(b.UNEXPECTED_ALIAS,`Records cannot have an alias`,i.alias)]):new n(void 0):D(i,r.Records)?new n(void 0):n.create(e)},nodeSettings(t,i){return E(i,r.Records)?i.attributeList?new n({},[new x(b.UNEXPECTED_SETTINGS,`Records cannot have a setting list`,i.attributeList)]):new n({}):D(i,r.Records)?new n({}):n.create(e)}},z_=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 $s?[]:[new x(b.INVALID_REF_CONTEXT,`A Ref must appear top-level`,this.declarationNode)]}validateName(e){return e?e instanceof fc?[new x(b.INVALID_NAME,`Wildcard (*) is not allowed as a Ref name`,e)]:Po(e)?[]:[new x(b.INVALID_NAME,`A Ref's name is optional or must be an identifier or a quoted identifer`,e)]:[]}validateAlias(e){return e?[new x(b.UNEXPECTED_ALIAS,`A Ref shouldn't have an alias`,e)]:[]}validateSettingList(e){return e?[new x(b.UNEXPECTED_SETTINGS,`A Ref shouldn't have a setting list`,e)]:[]}validateBody(e){if(!e)return[];if(e instanceof L)return this.validateFields([e]);let[t,n]=_(e.body,e=>e instanceof L);return[...this.validateFields(t),...this.validateSubElements(n)]}validateFields(e){if(e.length===0)return[new x(b.EMPTY_REF,`A Ref must have at least one field`,this.declarationNode)];let t=[];return e.length>1&&t.push(...e.slice(1).map(e=>new x(b.REF_REDEFINED,`A Ref can only contain one binary relationship`,e))),e.forEach(e=>{if(e.callee&&!rs(e.callee)&&t.push(new x(b.INVALID_REF_FIELD,`A Ref field must be a binary relationship`,e.callee)),e.callee&&rs(e.callee)){let n=ms(e.callee.leftExpression)??{variables:[],tupleElements:[]},r=n.variables.length+Math.min(n.tupleElements.length,1),i=ms(e.callee.rightExpression)??{variables:[],tupleElements:[]},a=i.variables.length+Math.min(i.tupleElements.length,1);r<2&&t.push(new x(b.INVALID_REF_FIELD,`Invalid column reference`,e.callee.leftExpression||e.callee)),a<2&&t.push(new x(b.INVALID_REF_FIELD,`Invalid column reference`,e.callee.rightExpression||e.callee))}e.callee&&!is(e.callee)&&t.push(new x(b.UNEQUAL_FIELDS_BINARY_REF,`Unequal fields in ref endpoints`,e.callee));let n=[...e.args];if(g(n)instanceof z){let e=this.validateFieldSettings(g(n));t.push(...e),n.pop()}else n[0]instanceof z&&(t.push(...this.validateFieldSettings(n[0])),n.shift());n.length>0&&t.push(...n.map(e=>new x(b.INVALID_REF_FIELD,`A Ref field should only have a single binary relationship`,e)))}),t}validateFieldSettings(e){return V_(e).getErrors()}validateSubElements(e){return e.flatMap(e=>e.type?this.compiler.validateNode(e).getErrors():[])}};function B_(e){if(!(w(e)&&e.expression.variable.kind!==v.QUOTED_STRING)&&!(e instanceof ic))return!1;let t;if(t=e instanceof ic?ls(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 V_(e){let t=S(e),r=t.getErrors(),a=t.getValue(),o={};for(let[e,t]of Object.entries(a))switch(e){case i.Delete:case i.Update:t.length>1&&t.forEach(t=>r.push(new x(b.DUPLICATE_REF_SETTING,`'${e}' can only appear once`,t))),t.forEach(t=>{B_(t.value)||r.push(new x(b.INVALID_REF_SETTING_VALUE,`'${e}' can only have values "cascade", "no action", "set null", "set default" or "restrict"`,t))}),o[e]=t;break;case i.Color:t.length>1&&r.push(...t.map(e=>new x(b.DUPLICATE_REF_SETTING,`'color' can only appear once`,e))),t.forEach(e=>{Ro(e.value)||r.push(new x(b.INVALID_REF_SETTING_VALUE,`'color' must be a color literal`,e))}),o[e]=t;break;case i.Inactive:t.length>1&&r.push(...t.map(e=>new x(b.DUPLICATE_REF_SETTING,`'inactive' can only appear once`,e))),t.forEach(e=>{e.value&&r.push(new x(b.INVALID_REF_SETTING_VALUE,`'inactive' cannot have a value`,e))}),o[e]=t;break;default:t.forEach(t=>r.push(new x(b.UNKNOWN_REF_SETTING,`Unknown ref setting '${e}'`,t)))}return new n(o,r)}var H_={validateNode(t,i){return E(i,r.Ref)?n.create(void 0,new z_(t,i).validate()):n.create(e)},nodeFullname(t,i){return E(i,r.Ref)?i.name?Po(i.name)?new n(O(i.name)):new n(void 0,[new x(b.INVALID_NAME,`A Ref's name is optional or must be an identifier or a quoted identifer`,i.name)]):new n(void 0):D(i,r.Ref)?new n(void 0):n.create(e)},nodeAlias(t,i){return E(i,r.Ref)?i.alias?new n(void 0,[new x(b.UNEXPECTED_ALIAS,`A Ref shouldn't have an alias`,i.alias)]):new n(void 0):D(i,r.Ref)?new n(void 0):n.create(e)},nodeSettings(t,i){if(E(i,r.Ref))return i.attributeList?new n({},[new x(b.UNEXPECTED_SETTINGS,`A Ref shouldn't have a setting list`,i.attributeList)]):new n({});if(D(i,r.Ref)){let e=[...i.args],t;return g(e)instanceof z?t=g(e):e[0]instanceof z&&(t=e[0]),t?V_(t):new n({})}return 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 P?[new x(b.INVALID_TABLE_CONTEXT,`Table must appear top-level`,this.declarationNode)]:[]}validateName(e){return e?e instanceof gc?[new x(b.INVALID_NAME,`Invalid array as Table name, maybe you forget to add a space between the name and the setting list?`,e)]:e instanceof fc?[new x(b.INVALID_NAME,`Wildcard (*) is not allowed as a Table name`,e)]:Mo(e)?[]:[new x(b.INVALID_NAME,`A Table name must be of the form <table> or <schema>.<table>`,e)]:[new x(b.NAME_NOT_FOUND,`A Table must have a name`,this.declarationNode)]}validateAlias(e){return e?No(e)?[]:[new x(b.INVALID_ALIAS,`Table aliases can only contain alphanumeric and underscore unless surrounded by double quotes`,e)]:[]}validateSettingList(e){let t=S(e),n=t.getErrors();return Sa(t.getValue(),(e,t)=>{switch(t){case i.HeaderColor:e.length>1&&n.push(...e.map(e=>new x(b.DUPLICATE_TABLE_SETTING,`'headercolor' can only appear once`,e))),e.forEach(e=>{Ro(e.value)||n.push(new x(b.INVALID_TABLE_SETTING_VALUE,`'headercolor' must be a color literal`,e.value||e.name))});break;case i.Note:e.length>1&&n.push(...e.map(e=>new x(b.DUPLICATE_TABLE_SETTING,`'note' can only appear once`,e))),e.forEach(e=>{C(e.value)||n.push(new x(b.INVALID_TABLE_SETTING_VALUE,`'note' must be a string literal`,e.value||e.name))});break;default:n.push(...Ko(t,e,{duplicate:b.DUPLICATE_TABLE_SETTING,invalidValue:b.INVALID_TABLE_SETTING_VALUE}))}}),n}validateBody(e){if(!e)return[];if(e instanceof L)return[new x(b.UNEXPECTED_SIMPLE_BODY,`A Table's body must be a block`,e)];let[t,n]=_(e.body,e=>e instanceof L);return[...this.validateFields(t),...this.validateSubElements(n)]}validateFields(e){let t=e=>{let t=[];if(!e.callee)return[];e.args.length===0&&t.push(new x(b.INVALID_COLUMN,`A column must have a type`,e.callee)),w(e.callee)||t.push(new x(b.INVALID_COLUMN_NAME,`A column name must be an identifier or a quoted identifier`,e.callee)),e.args[0]&&!Wo(e.args[0])&&t.push(new x(b.INVALID_COLUMN_TYPE,`Invalid column type`,e.args[0]));let n=e.args.slice(1);return t.push(...this.validateFieldSetting(n)),t},n=e=>{let t=[];return e.callee?(Io(e.callee)||t.push(new x(b.INVALID_TABLE_PARTIAL_INJECTION,`A partial injection should be of the form ~<table-partial>`,e.callee)),e.args.length&&t.push(...e.args.map(e=>new x(b.INVALID_TABLE_PARTIAL_INJECTION,`A partial injection does not have any trailing attributes`,e))),t):[]};return e.flatMap(e=>e.callee instanceof I&&e.callee.op?.value===`~`?n(e):t(e))}validateFieldSetting(e){if(!e.slice(0,-1).every(Jo)||!e.slice(-1).every(e=>Jo(e)||e instanceof z))return e.map(e=>new x(b.INVALID_COLUMN,`These fields must be some inline settings optionally ended with a setting list`,e));if(e.length===0)return[];let t;g(e)instanceof z&&(t=e.pop());let n=S(t),r=n.getErrors(),a=n.getValue();e.forEach(e=>{let t=(A(e)??``).toLowerCase();if(t!==i.PK&&t!==i.Unique){r.push(new x(b.INVALID_SETTINGS,"Inline column settings can only be `pk` or `unique`",e));return}a[t]===void 0?a[t]=[e]:a[t].push(e)});let o=a[i.PK]||[],s=a[i.PrimaryKey]||[];return o.length>=1&&s.length>=1&&r.push(...[...o,...s].map(e=>new x(b.DUPLICATE_COLUMN_SETTING,`Either one of 'primary key' and 'pk' can appear`,e))),Sa(a,(e,t)=>{switch(t){case i.Note:e.length>1&&r.push(...e.map(e=>new x(b.DUPLICATE_COLUMN_SETTING,`note can only appear once`,e))),e.forEach(e=>{C(e.value)||r.push(new x(b.INVALID_COLUMN_SETTING_VALUE,`'note' must be a quoted string`,e.value||e.name))});break;case i.Ref:e.forEach(e=>{Ho(e.value)||r.push(new x(b.INVALID_COLUMN_SETTING_VALUE,`'ref' must be a valid unary relationship`,e.value||e.name))});break;case i.PrimaryKey:e.length>1&&r.push(...e.map(e=>new x(b.DUPLICATE_COLUMN_SETTING,`primary key can only appear once`,e))),e.forEach(e=>{e.value!==void 0&&r.push(new x(b.INVALID_COLUMN_SETTING_VALUE,`'primary key' must not have a value`,e.value||e.name))});break;case i.PK:e.length>1&&r.push(...e.map(e=>new x(b.DUPLICATE_COLUMN_SETTING,`'pk' can only appear once`,e))),e.forEach(e=>{e instanceof F&&e.value!==void 0&&r.push(new x(b.INVALID_COLUMN_SETTING_VALUE,`'pk' must not have a value`,e.value||e.name))});break;case i.NotNull:{e.length>1&&r.push(...e.map(e=>new x(b.DUPLICATE_COLUMN_SETTING,`'not null' can only appear once`,e)));let t=a[i.Null]||[];e.length>=1&&t.length>=1&&r.push(...[...e,...t].map(e=>new x(b.CONFLICTING_SETTING,`'not null' and 'null' can not be set at the same time`,e))),e.forEach(e=>{e.value!==void 0&&r.push(new x(b.INVALID_COLUMN_SETTING_VALUE,`'not null' must not have a value`,e.value||e.name))});break}case i.Null:e.length>1&&r.push(...e.map(e=>new x(b.DUPLICATE_COLUMN_SETTING,`'null' can only appear once`,e))),e.forEach(e=>{e.value!==void 0&&r.push(new x(b.INVALID_COLUMN_SETTING_VALUE,`'null' must not have a value`,e.value||e.name))});break;case i.Unique:e.length>1&&r.push(...e.map(e=>new x(b.DUPLICATE_COLUMN_SETTING,`'unique' can only appear once`,e))),e.forEach(e=>{e instanceof F&&e.value!==void 0&&r.push(new x(b.INVALID_COLUMN_SETTING_VALUE,`'unique' must not have a value`,e.value||e.name))});break;case i.Increment:e.length>1&&r.push(...e.map(e=>new x(b.DUPLICATE_COLUMN_SETTING,`'increment' can only appear once`,e))),e.forEach(e=>{e instanceof F&&e.value!==void 0&&r.push(new x(b.INVALID_COLUMN_SETTING_VALUE,`'increment' must not have a value`,e.value||e.name))});break;case i.Default:e.length>1&&r.push(...e.map(e=>new x(b.DUPLICATE_COLUMN_SETTING,`'default' can only appear once`,e))),e.forEach(e=>{Bo(e.value)||r.push(new x(b.INVALID_COLUMN_SETTING_VALUE,`'default' must be an enum value, a string literal, number literal, function expression, true, false or null`,e.value||e.name))});break;case i.Check:e.forEach(e=>{e.value instanceof sc||r.push(new x(b.INVALID_COLUMN_SETTING_VALUE,`'check' must be a function expression`,e.value||e.name))});break;default:r.push(...Ko(t,e,{duplicate:b.DUPLICATE_COLUMN_SETTING,invalidValue:b.INVALID_COLUMN_SETTING_VALUE}))}}),r}validateSubElements(e){let t=e.flatMap(e=>e.type?this.compiler.validateNode(e).getErrors():[]),n=e.filter(e=>e.isKind(r.Note));return n.length>1&&t.push(...n.map(e=>new x(b.NOTE_REDEFINED,`Duplicate notes are defined`,e))),t}};function W_(e){let t=S(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 x(b.DUPLICATE_TABLE_SETTING,`'headercolor' can only appear once`,e))),e.forEach(e=>{Ro(e.value)||r.push(new x(b.INVALID_TABLE_SETTING_VALUE,`'headercolor' must be a color literal`,e.value||e.name))});break;case i.Note:e.length>1&&r.push(...e.map(e=>new x(b.DUPLICATE_TABLE_SETTING,`'note' can only appear once`,e))),e.forEach(e=>{C(e.value)||r.push(new x(b.INVALID_TABLE_SETTING_VALUE,`'note' must be a string literal`,e.value||e.name))});break;default:r.push(...Ko(t,e,{duplicate:b.DUPLICATE_TABLE_SETTING,invalidValue:b.INVALID_TABLE_SETTING_VALUE}))}}),new n(a,r)}function G_(e){if(!e.slice(0,-1).every(Jo)||!e.slice(-1).every(e=>Jo(e)||e instanceof z))return new n({},e.map(e=>new x(b.INVALID_COLUMN,`These fields must be some inline settings optionally ended with a setting list`,e)));if(e.length===0)return new n({});let t;g(e)instanceof z&&(t=e.pop());let r=S(t),a=r.getErrors(),o=r.getValue();e.forEach(e=>{let t=(A(e)??``).toLowerCase();if(t!==i.PK&&t!==i.Unique){a.push(new x(b.INVALID_SETTINGS,"Inline column settings can only be `pk` or `unique`",e));return}o[t]===void 0?o[t]=[e]:o[t].push(e)});let s=o[i.PK]||[],c=o[i.PrimaryKey]||[];return s.length>=1&&c.length>=1&&a.push(...[...s,...c].map(e=>new x(b.DUPLICATE_COLUMN_SETTING,`Either one of 'primary key' and 'pk' can appear`,e))),Sa(o,(e,t)=>{switch(t){case i.Note:e.length>1&&a.push(...e.map(e=>new x(b.DUPLICATE_COLUMN_SETTING,`note can only appear once`,e))),e.forEach(e=>{C(e.value)||a.push(new x(b.INVALID_COLUMN_SETTING_VALUE,`'note' must be a quoted string`,e.value||e.name))});break;case i.Ref:e.forEach(e=>{Ho(e.value)||a.push(new x(b.INVALID_COLUMN_SETTING_VALUE,`'ref' must be a valid unary relationship`,e.value||e.name))});break;case i.PrimaryKey:e.length>1&&a.push(...e.map(e=>new x(b.DUPLICATE_COLUMN_SETTING,`primary key can only appear once`,e))),e.forEach(e=>{e.value!==void 0&&a.push(new x(b.INVALID_COLUMN_SETTING_VALUE,`'primary key' must not have a value`,e.value||e.name))});break;case i.PK:e.length>1&&a.push(...e.map(e=>new x(b.DUPLICATE_COLUMN_SETTING,`'pk' can only appear once`,e))),e.forEach(e=>{e instanceof F&&e.value!==void 0&&a.push(new x(b.INVALID_COLUMN_SETTING_VALUE,`'pk' must not have a value`,e.value||e.name))});break;case i.NotNull:{e.length>1&&a.push(...e.map(e=>new x(b.DUPLICATE_COLUMN_SETTING,`'not null' can only appear once`,e)));let t=o[i.Null]||[];e.length>=1&&t.length>=1&&a.push(...[...e,...t].map(e=>new x(b.CONFLICTING_SETTING,`'not null' and 'null' can not be set at the same time`,e))),e.forEach(e=>{e.value!==void 0&&a.push(new x(b.INVALID_COLUMN_SETTING_VALUE,`'not null' must not have a value`,e.value||e.name))});break}case i.Null:e.length>1&&a.push(...e.map(e=>new x(b.DUPLICATE_COLUMN_SETTING,`'null' can only appear once`,e))),e.forEach(e=>{e.value!==void 0&&a.push(new x(b.INVALID_COLUMN_SETTING_VALUE,`'null' must not have a value`,e.value||e.name))});break;case i.Unique:e.length>1&&a.push(...e.map(e=>new x(b.DUPLICATE_COLUMN_SETTING,`'unique' can only appear once`,e))),e.forEach(e=>{e instanceof F&&e.value!==void 0&&a.push(new x(b.INVALID_COLUMN_SETTING_VALUE,`'unique' must not have a value`,e.value||e.name))});break;case i.Increment:e.length>1&&a.push(...e.map(e=>new x(b.DUPLICATE_COLUMN_SETTING,`'increment' can only appear once`,e))),e.forEach(e=>{e instanceof F&&e.value!==void 0&&a.push(new x(b.INVALID_COLUMN_SETTING_VALUE,`'increment' must not have a value`,e.value||e.name))});break;case i.Default:e.length>1&&a.push(...e.map(e=>new x(b.DUPLICATE_COLUMN_SETTING,`'default' can only appear once`,e))),e.forEach(e=>{Bo(e.value)||a.push(new x(b.INVALID_COLUMN_SETTING_VALUE,`'default' must be an enum value, a string literal, number literal, function expression, true, false or null`,e.value||e.name))});break;case i.Check:e.forEach(e=>{e.value instanceof sc||a.push(new x(b.INVALID_COLUMN_SETTING_VALUE,`'check' must be a function expression`,e.value||e.name))});break;default:a.push(...Ko(t,e,{duplicate:b.DUPLICATE_COLUMN_SETTING,invalidValue:b.INVALID_COLUMN_SETTING_VALUE}))}}),new n(o,a)}var K_={validateNode(t,i){return E(i,r.Table)?n.create(void 0,new U_(t,i).validate()):n.create(e)},nodeFullname(t,i){if(E(i,r.Table)){if(!i.name)return new n(void 0,[new x(b.NAME_NOT_FOUND,`A Table must have a name`,i)]);if(i.name instanceof gc)return new n(void 0,[new x(b.INVALID_NAME,`Invalid array as Table name, maybe you forget to add a space between the name and the setting list?`,i.name)]);let e=O(i.name);return e?.length===1&&e.unshift(y),new n(e)}if(D(i,r.Table)){if(Io(i.callee)){let e=A(i.callee.expression);return new n(e?[e]:void 0)}let e=A(i.callee);return new n(e?[e]:void 0)}return n.create(e)},nodeAlias(t,i){return E(i,r.Table)?i.alias?No(i.alias)?new n(A(i.alias)):new n(void 0,[new x(b.INVALID_ALIAS,`Table aliases can only contain alphanumeric and underscore unless surrounded by double quotes`,i.alias)]):new n(void 0):D(i,r.Table)?new n(void 0):n.create(e)},nodeSettings(t,i){return E(i,r.Table)?i.attributeList?W_(i.attributeList):new n({}):D(i,r.Table)?G_(i.args.slice(1)):n.create(e)}},q_=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 P?[new x(b.INVALID_TABLEGROUP_CONTEXT,`TableGroup must appear top-level`,this.declarationNode)]:[]}validateName(e){return e?e instanceof fc?[new x(b.INVALID_NAME,`Wildcard (*) is not allowed as a TableGroup name`,e)]:Po(e)?[]:[new x(b.INVALID_NAME,`A TableGroup name must be a single identifier`,e)]:[new x(b.NAME_NOT_FOUND,`A TableGroup must have a name`,this.declarationNode)]}validateAlias(e){return e?[new x(b.UNEXPECTED_ALIAS,`A TableGroup shouldn't have an alias`,e)]:[]}validateSettingList(e){let t=S(e),n=t.getErrors(),r=t.getValue();for(let[e,t]of Object.entries(r))switch(e){case`color`:t.length>1&&n.push(...t.map(e=>new x(b.DUPLICATE_TABLE_SETTING,`'color' can only appear once`,e))),t.forEach(e=>{Ro(e.value)||n.push(new x(b.INVALID_TABLE_SETTING_VALUE,`'color' must be a color literal`,e.value||e.name))});break;case`note`:t.length>1&&n.push(...t.map(e=>new x(b.DUPLICATE_TABLE_SETTING,`'note' can only appear once`,e))),t.filter(e=>!C(e.value)).forEach(e=>{n.push(new x(b.INVALID_TABLE_SETTING_VALUE,`'note' must be a string literal`,e.value||e.name))});break;default:n.push(...Ko(e,t,{duplicate:b.DUPLICATE_TABLE_SETTING,invalidValue:b.INVALID_TABLE_SETTING_VALUE}));break}return n}validateBody(e){if(!e)return[];if(e instanceof L)return[new x(b.UNEXPECTED_SIMPLE_BODY,`A TableGroup's body must be a block`,e)];let[t,n]=_(e.body,e=>e instanceof L);return[...this.validateFields(t),...this.validateSubElements(n)]}validateFields(e){return e.flatMap(e=>{let t=[];return e.callee&&O(e.callee)===void 0&&t.push(new x(b.INVALID_TABLEGROUP_FIELD,`A TableGroup field must be of the form <table> or <schema>.<table>`,e.callee)),e.args.length>0&&t.push(...e.args.map(e=>new x(b.INVALID_TABLEGROUP_FIELD,`A TableGroup field should only have a single Table name`,e))),t})}validateSubElements(e){let t=e.flatMap(e=>e.type?this.compiler.validateNode(e).getErrors():[]),n=e.filter(e=>e.isKind(r.Note));return n.length>1&&t.push(...n.map(e=>new x(b.NOTE_REDEFINED,`Duplicate notes are defined`,e))),t}};function J_(e){let t=S(e),r=t.getErrors(),i=t.getValue(),a={};for(let[e,t]of Object.entries(i))switch(e){case`color`:t.length>1&&r.push(...t.map(e=>new x(b.DUPLICATE_TABLE_SETTING,`'color' can only appear once`,e))),t.forEach(e=>{Ro(e.value)||r.push(new x(b.INVALID_TABLE_SETTING_VALUE,`'color' must be a color literal`,e.value||e.name))}),a[e]=t;break;case`note`:t.length>1&&r.push(...t.map(e=>new x(b.DUPLICATE_TABLE_SETTING,`'note' can only appear once`,e))),t.filter(e=>!C(e.value)).forEach(e=>{r.push(new x(b.INVALID_TABLE_SETTING_VALUE,`'note' must be a string literal`,e.value||e.name))}),a[e]=t;break;default:r.push(...Ko(e,t,{duplicate:b.DUPLICATE_TABLE_SETTING,invalidValue:b.INVALID_TABLE_SETTING_VALUE})),a[e]=t;break}return new n(a,r)}var Y_={validateNode(t,i){return E(i,r.TableGroup)?n.create(void 0,new q_(t,i).validate()):n.create(e)},nodeFullname(t,i){if(E(i,r.TableGroup))return i.name?Po(i.name)?new n(O(i.name)):new n(void 0,[new x(b.INVALID_NAME,`A TableGroup name must be a single identifier`,i.name)]):new n(void 0,[new x(b.NAME_NOT_FOUND,`A TableGroup must have a name`,i)]);if(D(i,r.TableGroup)){let e=O(i.callee);return e?.length===1&&e.unshift(y),new n(e)}return n.create(e)},nodeAlias(t,i){return E(i,r.TableGroup)?i.alias?new n(void 0,[new x(b.UNEXPECTED_ALIAS,`A TableGroup shouldn't have an alias`,i.alias)]):new n(void 0):D(i,r.TableGroup)?new n(void 0):n.create(e)},nodeSettings(t,i){return E(i,r.TableGroup)?J_(i.attributeList):D(i,r.TableGroup)?new n({}):n.create(e)}},X_=class{constructor(e,t){this.compiler=e,this.declarationNode=t}validate(){return[...this.validateContext(),...this.validateName(this.declarationNode.name),...this.validateAlias(this.declarationNode.alias),...this.validateSettingList(this.declarationNode.attributeList),...this.validateBody(this.declarationNode.body)]}validateContext(){return this.declarationNode.parent instanceof P?[new x(b.INVALID_TABLE_PARTIAL_CONTEXT,`TablePartial must appear top-level`,this.declarationNode)]:[]}validateName(e){return e?e instanceof fc?[new x(b.INVALID_NAME,`Wildcard (*) is not allowed as a TablePartial name`,e)]:Po(e)?[]:[new x(b.INVALID_NAME,`A TablePartial name must be an identifier or a quoted identifer`,e)]:[new x(b.NAME_NOT_FOUND,`A TablePartial must have a name`,this.declarationNode)]}validateAlias(e){return e?[new x(b.UNEXPECTED_ALIAS,`A TablePartial shouldn't have an alias`,e)]:[]}validateSettingList(e){let t=S(e),n=t.getErrors();return Sa(t.getValue(),(e,t)=>{switch(t){case i.HeaderColor:e.length>1&&n.push(...e.map(e=>new x(b.DUPLICATE_TABLE_PARTIAL_SETTING,`'${t}' can only appear once`,e))),e.forEach(e=>{Ro(e.value)||n.push(new x(b.INVALID_TABLE_PARTIAL_SETTING_VALUE,`'${t}' must be a color literal`,e.value||e.name))});break;case i.Note:e.length>1&&n.push(...e.map(e=>new x(b.DUPLICATE_TABLE_PARTIAL_SETTING,`'${t}' can only appear once`,e))),e.forEach(e=>{C(e.value)||n.push(new x(b.INVALID_TABLE_PARTIAL_SETTING_VALUE,`'${t}' must be a string literal`,e.value||e.name))});break;default:n.push(...e.map(e=>new x(b.UNKNOWN_TABLE_PARTIAL_SETTING,`Unknown '${t}' setting`,e)))}}),n}validateBody(e){if(!e)return[];if(e instanceof L)return[new x(b.UNEXPECTED_SIMPLE_BODY,`A TablePartial's body must be a block`,e)];let[t,n]=_(e.body,e=>e instanceof L);return[...this.validateFields(t),...this.validateSubElements(n)]}validateFields(e){return e.flatMap(e=>{if(!e.callee)return[];let t=[];e.args.length===0&&t.push(new x(b.INVALID_COLUMN,`A column must have a type`,e.callee)),w(e.callee)||t.push(new x(b.INVALID_COLUMN_NAME,`A column name must be an identifier or a quoted identifier`,e.callee)),e.args[0]&&!Wo(e.args[0])&&t.push(new x(b.INVALID_COLUMN_TYPE,`Invalid column type`,e.args[0]));let n=e.args.slice(1);return t.push(...this.validateFieldSetting(n)),t})}validateFieldSetting(e){let t=g(e);if(!e.slice(0,-1).every(Jo)||!(Jo(t)||t instanceof z))return e.map(e=>new x(b.INVALID_COLUMN,`These fields must be some inline settings optionally ended with a setting list`,e));if(e.length===0)return[];let n;g(e)instanceof z&&(n=e.pop());let r=S(n),a=r.getErrors(),o=r.getValue();e.forEach(e=>{let t=(A(e)??``).toLowerCase();if(t!==i.PK&&t!==i.Unique){a.push(new x(b.INVALID_SETTINGS,"Inline column settings can only be `pk` or `unique`",e));return}o[t]===void 0?o[t]=[e]:o[t].push(e)});let s=o[i.PK]||[],c=o[i.PrimaryKey]||[];return s.length>=1&&c.length>=1&&a.push(...[...s,...c].map(e=>new x(b.DUPLICATE_COLUMN_SETTING,`Either one of 'primary key' and 'pk' can appear`,e))),Sa(o,(e,t)=>{switch(t){case i.Note:e.length>1&&a.push(...e.map(e=>new x(b.DUPLICATE_COLUMN_SETTING,`'${t}' can only appear once`,e))),e.forEach(e=>{C(e.value)||a.push(new x(b.INVALID_COLUMN_SETTING_VALUE,`'${t}' must be a quoted string`,e.value||e.name))});break;case i.Ref:e.forEach(e=>{Ho(e.value)||a.push(new x(b.INVALID_COLUMN_SETTING_VALUE,`'${t}' must be a valid unary relationship`,e.value||e.name))});break;case i.PrimaryKey:e.length>1&&a.push(...e.map(e=>new x(b.DUPLICATE_COLUMN_SETTING,`'${t}' can only appear once`,e))),e.forEach(e=>{e.value!==void 0&&a.push(new x(b.INVALID_COLUMN_SETTING_VALUE,`'${t}' must not have a value`,e.value||e.name))});break;case i.PK:e.length>1&&a.push(...e.map(e=>new x(b.DUPLICATE_COLUMN_SETTING,`'${t}' can only appear once`,e))),e.forEach(e=>{e instanceof F&&e.value!==void 0&&a.push(new x(b.INVALID_COLUMN_SETTING_VALUE,`'${t}' must not have a value`,e.value||e.name))});break;case i.NotNull:{e.length>1&&a.push(...e.map(e=>new x(b.DUPLICATE_COLUMN_SETTING,`'${t}' can only appear once`,e)));let n=o[i.Null]||[];e.length>=1&&n.length>=1&&a.push(...[...e,...n].map(e=>new x(b.CONFLICTING_SETTING,`'not null' and 'null' can not be set at the same time`,e))),e.forEach(e=>{e.value!==void 0&&a.push(new x(b.INVALID_COLUMN_SETTING_VALUE,`'${t}' must not have a value`,e.value||e.name))});break}case i.Null:e.length>1&&a.push(...e.map(e=>new x(b.DUPLICATE_COLUMN_SETTING,`'${t}' can only appear once`,e))),e.forEach(e=>{e.value!==void 0&&a.push(new x(b.INVALID_COLUMN_SETTING_VALUE,`'${t}' must not have a value`,e.value||e.name))});break;case i.Unique:e.length>1&&a.push(...e.map(e=>new x(b.DUPLICATE_COLUMN_SETTING,`'${t}' can only appear once`,e))),e.forEach(e=>{e instanceof F&&e.value!==void 0&&a.push(new x(b.INVALID_COLUMN_SETTING_VALUE,`'${t}' must not have a value`,e.value||e.name))});break;case i.Increment:e.length>1&&a.push(...e.map(e=>new x(b.DUPLICATE_COLUMN_SETTING,`'${t}' can only appear once`,e))),e.forEach(e=>{e instanceof F&&e.value!==void 0&&a.push(new x(b.INVALID_COLUMN_SETTING_VALUE,`'${t}' must not have a value`,e.value||e.name))});break;case i.Default:e.length>1&&a.push(...e.map(e=>new x(b.DUPLICATE_COLUMN_SETTING,`'${t}' can only appear once`,e))),e.forEach(e=>{Bo(e.value)||a.push(new x(b.INVALID_COLUMN_SETTING_VALUE,`'${t}' must be a string literal, number literal, function expression, true, false or null`,e.value||e.name))});break;case i.Check:e.forEach(e=>{e.value instanceof sc||a.push(new x(b.INVALID_COLUMN_SETTING_VALUE,`'check' must be a function expression`,e.value||e.name))});break;default:a.push(...Ko(t,e,{duplicate:b.DUPLICATE_COLUMN_SETTING,invalidValue:b.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 x(b.NOTE_REDEFINED,`Duplicate notes are defined`,e))),t}};function Z_(e){let t=S(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 x(b.DUPLICATE_TABLE_PARTIAL_SETTING,`'${t}' can only appear once`,e))),e.forEach(e=>{Ro(e.value)||r.push(new x(b.INVALID_TABLE_PARTIAL_SETTING_VALUE,`'${t}' must be a color literal`,e.value||e.name))});break;case i.Note:e.length>1&&r.push(...e.map(e=>new x(b.DUPLICATE_TABLE_PARTIAL_SETTING,`'${t}' can only appear once`,e))),e.forEach(e=>{C(e.value)||r.push(new x(b.INVALID_TABLE_PARTIAL_SETTING_VALUE,`'${t}' must be a string literal`,e.value||e.name))});break;default:r.push(...e.map(e=>new x(b.UNKNOWN_TABLE_PARTIAL_SETTING,`Unknown '${t}' setting`,e)))}}),new n(a,r)}function Q_(e){let t=g(e);if(e.length>0&&(!e.slice(0,-1).every(Jo)||!(Jo(t)||t instanceof z)))return new n({},e.map(e=>new x(b.INVALID_COLUMN,`These fields must be some inline settings optionally ended with a setting list`,e)));if(e.length===0)return new n({});let r;g(e)instanceof z&&(r=e.pop());let a=S(r),o=a.getErrors(),s=a.getValue();e.forEach(e=>{let t=(A(e)??``).toLowerCase();if(t!==i.PK&&t!==i.Unique){o.push(new x(b.INVALID_SETTINGS,"Inline column settings can only be `pk` or `unique`",e));return}s[t]===void 0?s[t]=[e]:s[t].push(e)});let c=s[i.PK]||[],l=s[i.PrimaryKey]||[];return c.length>=1&&l.length>=1&&o.push(...[...c,...l].map(e=>new x(b.DUPLICATE_COLUMN_SETTING,`Either one of 'primary key' and 'pk' can appear`,e))),Sa(s,(e,t)=>{switch(t){case i.Note:e.length>1&&o.push(...e.map(e=>new x(b.DUPLICATE_COLUMN_SETTING,`'${t}' can only appear once`,e))),e.forEach(e=>{C(e.value)||o.push(new x(b.INVALID_COLUMN_SETTING_VALUE,`'${t}' must be a quoted string`,e.value||e.name))});break;case i.Ref:e.forEach(e=>{Ho(e.value)||o.push(new x(b.INVALID_COLUMN_SETTING_VALUE,`'${t}' must be a valid unary relationship`,e.value||e.name))});break;case i.PrimaryKey:e.length>1&&o.push(...e.map(e=>new x(b.DUPLICATE_COLUMN_SETTING,`'${t}' can only appear once`,e))),e.forEach(e=>{e.value!==void 0&&o.push(new x(b.INVALID_COLUMN_SETTING_VALUE,`'${t}' must not have a value`,e.value||e.name))});break;case i.PK:e.length>1&&o.push(...e.map(e=>new x(b.DUPLICATE_COLUMN_SETTING,`'${t}' can only appear once`,e))),e.forEach(e=>{e instanceof F&&e.value!==void 0&&o.push(new x(b.INVALID_COLUMN_SETTING_VALUE,`'${t}' must not have a value`,e.value||e.name))});break;case i.NotNull:{e.length>1&&o.push(...e.map(e=>new x(b.DUPLICATE_COLUMN_SETTING,`'${t}' can only appear once`,e)));let n=s[i.Null]||[];e.length>=1&&n.length>=1&&o.push(...[...e,...n].map(e=>new x(b.CONFLICTING_SETTING,`'not null' and 'null' can not be set at the same time`,e))),e.forEach(e=>{e.value!==void 0&&o.push(new x(b.INVALID_COLUMN_SETTING_VALUE,`'${t}' must not have a value`,e.value||e.name))});break}case i.Null:e.length>1&&o.push(...e.map(e=>new x(b.DUPLICATE_COLUMN_SETTING,`'${t}' can only appear once`,e))),e.forEach(e=>{e.value!==void 0&&o.push(new x(b.INVALID_COLUMN_SETTING_VALUE,`'${t}' must not have a value`,e.value||e.name))});break;case i.Unique:e.length>1&&o.push(...e.map(e=>new x(b.DUPLICATE_COLUMN_SETTING,`'${t}' can only appear once`,e))),e.forEach(e=>{e instanceof F&&e.value!==void 0&&o.push(new x(b.INVALID_COLUMN_SETTING_VALUE,`'${t}' must not have a value`,e.value||e.name))});break;case i.Increment:e.length>1&&o.push(...e.map(e=>new x(b.DUPLICATE_COLUMN_SETTING,`'${t}' can only appear once`,e))),e.forEach(e=>{e instanceof F&&e.value!==void 0&&o.push(new x(b.INVALID_COLUMN_SETTING_VALUE,`'${t}' must not have a value`,e.value||e.name))});break;case i.Default:e.length>1&&o.push(...e.map(e=>new x(b.DUPLICATE_COLUMN_SETTING,`'${t}' can only appear once`,e))),e.forEach(e=>{Bo(e.value)||o.push(new x(b.INVALID_COLUMN_SETTING_VALUE,`'${t}' must be a string literal, number literal, function expression, true, false or null`,e.value||e.name))});break;case i.Check:e.forEach(e=>{e.value instanceof sc||o.push(new x(b.INVALID_COLUMN_SETTING_VALUE,`'check' must be a function expression`,e.value||e.name))});break;default:o.push(...Ko(t,e,{duplicate:b.DUPLICATE_COLUMN_SETTING,invalidValue:b.INVALID_COLUMN_SETTING_VALUE}))}}),new n(s,o)}var $_={validateNode(t,i){return E(i,r.TablePartial)?n.create(void 0,new X_(t,i).validate()):n.create(e)},nodeFullname(t,i){if(E(i,r.TablePartial))return i.name?Po(i.name)?new n(O(i.name)):new n(void 0,[new x(b.INVALID_NAME,`A TablePartial name must be an identifier or a quoted identifer`,i.name)]):new n(void 0,[new x(b.NAME_NOT_FOUND,`A TablePartial must have a name`,i)]);if(D(i,r.TablePartial)){let e=A(i.callee);return new n(e?[e]:void 0)}return n.create(e)},nodeAlias(t,i){return E(i,r.TablePartial)?i.alias?new n(void 0,[new x(b.UNEXPECTED_ALIAS,`A TablePartial shouldn't have an alias`,i.alias)]):new n(A(i.alias)):D(i,r.TablePartial)?new n(void 0):n.create(e)},nodeSettings(t,i){return E(i,r.TablePartial)?Z_(i.attributeList):D(i,r.TablePartial)?Q_(i.args.slice(1)):n.create(e)}},ev=class{constructor(e,t){this.compiler=e,this.declarationNode=t}validate(){return[...this.validateContext(),...this.validateBody()]}validateContext(){return this.declarationNode.parent instanceof $s?[]:[new x(b.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 x(b.INVALID_USE_SPECIFIER_NAME,`Import path must be a relative path (starting with './' or '../')`,this.declarationNode.importPath)),this.declarationNode.specifiers instanceof fc)return[];for(let t of this.declarationNode.specifiers?.specifiers||[])e.push(...this.validateSpecifier(t));return e}validateSpecifier(e){let t=[];return e.importKind===void 0?t.push(new x(b.INVALID_USE_SPECIFIER_KIND,`A use specifier must have a type (e.g. table, enum)`,e)):e.isKind(...Object.values(Es))||t.push(new x(b.INVALID_USE_SPECIFIER_KIND,`'${e.importKind.value}' is not a valid specifier type`,e.importKind)),[...t,...this.compiler.nodeFullname(e).getErrors(),...this.compiler.nodeAlias(e).getErrors()]}},tv=[K_,E_,R_,O_,y_,H_,I_,Y_,$_,A_,M_,w_,P_,{validateNode(t,r){return r instanceof ec?n.create(void 0,new ev(t,r).validate()):n.create(e)},nodeFullname(t,r){if(!Zo(r))return n.create(e);let i=O(r.name);return!i||i.length===0?n.create(void 0,[new x(b.INVALID_NAME,`Use specifiers must have a valid name (simple name or schema-qualified name)`,r)]):r.isKind(Es.TableGroup)&&i.length>1?n.create(i,[new x(b.INVALID_USE_SPECIFIER_NAME,`A TableGroup name must be a simple name`,r)]):r.isKind(Es.TablePartial)&&i.length>1?n.create(i,[new x(b.INVALID_USE_SPECIFIER_NAME,`A TablePartial name must be a simple name`,r)]):r.isKind(Es.Note)&&i.length>1?n.create(i,[new x(b.INVALID_USE_SPECIFIER_NAME,`A Sticky note name must be a simple name`,r)]):(i.length===1&&!r.isKind(Es.Schema)&&i.unshift(y),new n(i))},nodeAlias(t,r){return Zo(r)?r.alias?No(r.alias)?new n(A(r.alias)):new n(void 0,[new x(b.INVALID_ALIAS,`Use aliases can only contain alphanumeric and underscore unless surrounded by double quotes`,r.alias)]):new n(void 0):n.create(e)},nodeSettings(t,r){return r instanceof ec?n.create({}):n.create(e)}},S_];function nv(t,...r){for(let n of tv){let i=n[t];if(i){let t=i(...r);if(!t.hasValue(e))return t}}return n.create(e)}function rv(r){let i=nv(`validateNode`,this,r);return i.hasValue(e)?n.create(t):i}function iv(r){let i=nv(`nodeSettings`,this,r);return i.hasValue(e)?n.create(t):i}function av(r){let i=nv(`nodeFullname`,this,r);return i.hasValue(e)?n.create(t):i}function ov(r){let i=nv(`nodeAlias`,this,r);return i.hasValue(e)?n.create(t):i}var sv=typeof document<`u`&&document.location&&document.location.hash.indexOf(`pseudo=true`)>=0;function cv(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}),sv&&(n=`[`+n.replace(/[aouei]/g,`$&$&`)+`]`),n}function lv(e,t,...n){return cv(t,n)}var uv=!1,dv=!1,fv=!1,pv=!1,mv=void 0,hv=typeof self==`object`?self:typeof global==`object`?global:{},gv=void 0;hv.vscode!==void 0&&hv.vscode.process!==void 0?gv=hv.vscode.process:typeof process<`u`&&(gv=process);var _v=typeof gv?.versions?.electron==`string`&&gv?.type===`renderer`;if(typeof navigator==`object`&&!_v)mv=navigator.userAgent,uv=mv.indexOf(`Windows`)>=0,dv=mv.indexOf(`Macintosh`)>=0,(mv.indexOf(`Macintosh`)>=0||mv.indexOf(`iPad`)>=0||mv.indexOf(`iPhone`)>=0)&&navigator.maxTouchPoints&&navigator.maxTouchPoints,fv=mv.indexOf(`Linux`)>=0,mv?.indexOf(`Mobi`),pv=!0,lv({key:`ensureLoaderPluginIsLoaded`,comment:[`{Locked}`]},`_`),navigator.language;else if(typeof gv==`object`){uv=gv.platform===`win32`,dv=gv.platform===`darwin`,fv=gv.platform===`linux`,fv&&gv.env.SNAP&&gv.env.SNAP_REVISION,gv.env.CI||gv.env.BUILD_ARTIFACTSTAGINGDIRECTORY;let e=gv.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 vv=uv,yv=dv;pv&&hv.importScripts;var bv=mv,xv=typeof hv.postMessage==`function`&&!hv.importScripts;(()=>{if(xv){let e=[];hv.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}),hv.postMessage({vscodeScheduleAsyncWork:r},`*`)}}return e=>setTimeout(e)})();var Sv=!!(bv&&bv.indexOf(`Chrome`)>=0);bv&&bv.indexOf(`Firefox`),!Sv&&bv&&bv.indexOf(`Safari`),bv&&bv.indexOf(`Edg/`),bv&&bv.indexOf(`Android`);var Cv;if(hv.vscode!==void 0&&hv.vscode.process!==void 0){let e=hv.vscode.process;Cv={get platform(){return e.platform},get arch(){return e.arch},get env(){return e.env},cwd(){return e.cwd()}}}else Cv=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 vv?`win32`:yv?`darwin`:`linux`},get arch(){},get env(){return{}},cwd(){return`/`}};var wv=Cv.cwd,Tv=Cv.env,Ev=Cv.platform,Dv=65,Ov=97,kv=90,Av=122,jv=46,Mv=47,Nv=92,Pv=58,Fv=63,Iv=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 Lv(e,t){if(typeof e!=`object`||!e)throw new Iv(t,`Object`,e)}function Rv(e,t){if(typeof e!=`string`)throw new Iv(t,`string`,e)}var zv=Ev===`win32`;function q(e){return e===Mv||e===Nv}function Bv(e){return e===Mv}function Vv(e){return e>=Dv&&e<=kv||e>=Ov&&e<=Av}function Hv(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=Mv;if(r(c)){if(!(o===l-1||s===1))if(s===2){if(i.length<2||a!==2||i.charCodeAt(i.length-1)!==jv||i.charCodeAt(i.length-2)!==jv){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===jv&&s!==-1?++s:s=-1}return i}function Uv(e,t){Lv(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 Wv={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],Rv(a,`path`),a.length===0)continue}else t.length===0?a=wv():(a=Tv[`=${t}`]||wv(),(a===void 0||a.slice(0,2).toLowerCase()!==t.toLowerCase()&&a.charCodeAt(2)===Nv)&&(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 Vv(u)&&a.charCodeAt(1)===Pv&&(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=Hv(n,!r,`\\`,q),r?`${t}\\${n}`:`${t}${n}`||`.`},normalize(e){Rv(e,`path`);let t=e.length;if(t===0)return`.`;let n=0,r,i=!1,a=e.charCodeAt(0);if(t===1)return Bv(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 Vv(a)&&e.charCodeAt(1)===Pv&&(r=e.slice(0,2),n=2,t>2&&q(e.charCodeAt(2))&&(i=!0,n=3));let o=n<t?Hv(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){Rv(e,`path`);let t=e.length;if(t===0)return!1;let n=e.charCodeAt(0);return q(n)||t>2&&Vv(n)&&e.charCodeAt(1)===Pv&&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];Rv(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 Wv.normalize(t)},relative(e,t){if(Rv(e,`from`),Rv(t,`to`),e===t)return``;let n=Wv.resolve(e),r=Wv.resolve(t);if(n===r||(e=n.toLowerCase(),t=r.toLowerCase(),e===t))return``;let i=0;for(;i<e.length&&e.charCodeAt(i)===Nv;)i++;let a=e.length;for(;a-1>i&&e.charCodeAt(a-1)===Nv;)a--;let o=a-i,s=0;for(;s<t.length&&t.charCodeAt(s)===Nv;)s++;let c=t.length;for(;c-1>s&&t.charCodeAt(c-1)===Nv;)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===Nv&&(d=f)}if(f!==u){if(d===-1)return r}else{if(l>u){if(t.charCodeAt(s+f)===Nv)return r.slice(s+f+1);if(f===2)return r.slice(s+f)}o>u&&(e.charCodeAt(i+f)===Nv?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)===Nv)&&(p+=p.length===0?`..`:`\\..`);return s+=d,p.length>0?`${p}${r.slice(s,c)}`:(r.charCodeAt(s)===Nv&&++s,r.slice(s,c))},toNamespacedPath(e){if(typeof e!=`string`||e.length===0)return e;let t=Wv.resolve(e);if(t.length<=2)return e;if(t.charCodeAt(0)===Nv){if(t.charCodeAt(1)===Nv){let e=t.charCodeAt(2);if(e!==Fv&&e!==jv)return`\\\\?\\UNC\\${t.slice(2)}`}}else if(Vv(t.charCodeAt(0))&&t.charCodeAt(1)===Pv&&t.charCodeAt(2)===Nv)return`\\\\?\\${t}`;return e},dirname(e){Rv(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 Vv(i)&&e.charCodeAt(1)===Pv&&(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&&Rv(t,`ext`),Rv(e,`path`);let n=0,r=-1,i=!0,a;if(e.length>=2&&Vv(e.charCodeAt(0))&&e.charCodeAt(1)===Pv&&(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){Rv(e,`path`);let t=0,n=-1,r=0,i=-1,a=!0,o=0;e.length>=2&&e.charCodeAt(1)===Pv&&Vv(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===jv?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:Uv.bind(null,`\\`),parse(e){Rv(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(Vv(i)&&e.charCodeAt(1)===Pv){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===jv?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},Gv=(()=>{if(zv){let e=/\\/g;return()=>{let t=wv().replace(e,`/`);return t.slice(t.indexOf(`/`))}}return()=>wv()})(),Kv={resolve(...e){let t=``,n=!1;for(let r=e.length-1;r>=-1&&!n;r--){let i=r>=0?e[r]:Gv();Rv(i,`path`),i.length!==0&&(t=`${i}/${t}`,n=i.charCodeAt(0)===Mv)}return t=Hv(t,!n,`/`,Bv),n?`/${t}`:t.length>0?t:`.`},normalize(e){if(Rv(e,`path`),e.length===0)return`.`;let t=e.charCodeAt(0)===Mv,n=e.charCodeAt(e.length-1)===Mv;return e=Hv(e,!t,`/`,Bv),e.length===0?t?`/`:n?`./`:`.`:(n&&(e+=`/`),t?`/${e}`:e)},isAbsolute(e){return Rv(e,`path`),e.length>0&&e.charCodeAt(0)===Mv},join(...e){if(e.length===0)return`.`;let t;for(let n=0;n<e.length;++n){let r=e[n];Rv(r,`path`),r.length>0&&(t===void 0?t=r:t+=`/${r}`)}return t===void 0?`.`:Kv.normalize(t)},relative(e,t){if(Rv(e,`from`),Rv(t,`to`),e===t||(e=Kv.resolve(e),t=Kv.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===Mv&&(o=s)}if(s===a)if(i>a){if(t.charCodeAt(1+s)===Mv)return t.slice(1+s+1);if(s===0)return t.slice(1+s)}else r>a&&(e.charCodeAt(1+s)===Mv?o=s:s===0&&(o=0));let c=``;for(s=1+o+1;s<=n;++s)(s===n||e.charCodeAt(s)===Mv)&&(c+=c.length===0?`..`:`/..`);return`${c}${t.slice(1+o)}`},toNamespacedPath(e){return e},dirname(e){if(Rv(e,`path`),e.length===0)return`.`;let t=e.charCodeAt(0)===Mv,n=-1,r=!0;for(let t=e.length-1;t>=1;--t)if(e.charCodeAt(t)===Mv){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&&Rv(t,`ext`),Rv(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===Mv){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)===Mv){if(!i){n=a+1;break}}else r===-1&&(i=!1,r=a+1);return r===-1?``:e.slice(n,r)},extname(e){Rv(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===Mv){if(!i){n=o+1;break}continue}r===-1&&(i=!1,r=o+1),s===jv?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:Uv.bind(null,`/`),parse(e){Rv(e,`path`);let t={root:``,dir:``,base:``,ext:``,name:``};if(e.length===0)return t;let n=e.charCodeAt(0)===Mv,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===Mv){if(!s){a=c+1;break}continue}o===-1&&(s=!1,o=c+1),t===jv?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};Kv.win32=Wv.win32=Wv,Kv.posix=Wv.posix=Kv,zv?Wv.normalize:Kv.normalize,zv?Wv.resolve:Kv.resolve,zv?Wv.relative:Kv.relative,zv?Wv.dirname:Kv.dirname,zv?Wv.basename:Kv.basename,zv?Wv.extname:Kv.extname,zv?Wv.sep:Kv.sep;var qv=/^\w[\w\d+.-]*$/,Jv=/^\//,Yv=/^\/\//;function Xv(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&&!qv.test(e.scheme))throw Error(`[UriError]: Scheme contains illegal characters.`);if(e.path){if(e.authority){if(!Jv.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(Yv.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 Zv(e,t){return!e&&!t?`file`:e}function Qv(e,t){switch(e){case`https`:case`http`:case`file`:t?t[0]!==$v&&(t=$v+t):t=$v;break}return t}var J=``,$v=`/`,ey=/^(([^:/?#]+?):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/,ty=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=Zv(e,a),this.authority=t||J,this.path=Qv(this.scheme,n||J),this.query=r||J,this.fragment=i||J,Xv(this,a))}get fsPath(){return sy(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 ry(t,n,r,i,a)}static parse(e,t=!1){let n=ey.exec(e);return n?new ry(n[2]||J,dy(n[4]||J),dy(n[5]||J),dy(n[7]||J),dy(n[9]||J),t):new ry(J,J,J,J,J)}static file(e){let t=J;if(vv&&(e=e.replace(/\\/g,$v)),e[0]===$v&&e[1]===$v){let n=e.indexOf($v,2);n===-1?(t=e.substring(2),e=$v):(t=e.substring(2,n),e=e.substring(n)||$v)}return new ry(`file`,t,e,J,J)}static from(e,t){return new ry(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=vv&&t.scheme===`file`?e.file(Wv.join(sy(t,!0),...n)).path:Kv.join(t.path,...n),t.with({path:r})}toString(e=!1){return cy(this,e)}toJSON(){return this}static revive(t){if(!t||t instanceof e)return t;{let e=new ry(t);return e._formatted=t.external??null,e._fsPath=t._sep===ny?t.fsPath??null:null,e}}},ny=vv?1:void 0,ry=class extends ty{constructor(){super(...arguments),this._formatted=null,this._fsPath=null}get fsPath(){return this._fsPath||=sy(this,!1),this._fsPath}toString(e=!1){return e?cy(this,!0):(this._formatted||=cy(this,!1),this._formatted)}toJSON(){let e={$mid:1};return this._fsPath&&(e.fsPath=this._fsPath,e._sep=ny),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}},iy={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 ay(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=iy[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 oy(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+=iy[r]):t!==void 0&&(t+=e[n])}return t===void 0?e:t}function sy(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,vv&&(n=n.replace(/\//g,`\\`)),n}function cy(e,t){let n=t?oy:ay,r=``,{scheme:i,authority:a,path:o,query:s,fragment:c}=e;if(i&&(r+=i,r+=`:`),(a||i===`file`)&&(r+=$v,r+=$v),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:ay(c,!1,!1)),r}function ly(e){try{return decodeURIComponent(e)}catch{return e.length>3?e.substr(0,3)+ly(e.substr(3)):e}}var uy=/(%[0-9A-Za-z][0-9A-Za-z])+/g;function dy(e){return e.match(uy)?e.replace(uy,e=>ly(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}({}),fy=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 py(e,t){return e.getOffsetAt(t)}function my(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 hy=class{constructor(e){this.compiler=e}provideDefinition(e,n){let{uri:r}=e,i=bo.fromUri(String(e.uri)),a=py(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&&[Qs.PRIMARY_EXPRESSION,Qs.VARIABLE].includes(e.kind)&&({declaration:i}=n),i){let{startPos:e,endPos:t}=i,n=r;return r&&i.filepath&&(n=ty.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[]}},gy=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`?fy.Error:fy.Warning}},_y=class{constructor(e){this.compiler=e}provideReferences(e,n){let{uri:r}=e,i=bo.fromUri(String(r)),a=py(e,n);this.compiler.bindProject();let o=[...this.compiler.container.stack(i,a)];for(;o.length!==0;){let e=o.pop();if(e&&[Qs.ELEMENT_DECLARATION,Qs.FUNCTION_APPLICATION,Qs.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=ty.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 vy(e,t){return e>=t.start&&e<t.end}function yy(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 by(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 nc)for(let t of e.specifiers.specifiers){let e,n;if(t.name?(e=t.importKind?.value,n=A(t.name)):t.importKind&&(n=t.importKind.value??void 0),n){let i=t.alias?A(t.alias):void 0;r.push({kind:e,name:n,alias:i})}}else e.specifiers instanceof fc&&r.push({name:`*`});r.length===0&&!(e.specifiers instanceof fc)||n.push({startOffset:e.fullStart,endOffset:e.fullEnd,sourceFile:t,specifiers:r,node:e})}return n}function xy(e,t,n,r,i,a){let o=by(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:Sy(Na([...e.specifiers.filter(e=>e.name!==`*`).map(e=>`${e.kind??n} ${e.name}${e.alias?` as ${e.alias}`:``}`),l]),s,`
7
- `),removeRange:Cy(a,e.startOffset,e.endOffset)}}return{topInsert:Sy([l],s,`
8
- `)}}function Sy(e,t,n){return`use {${n}${e.map(e=>` ${e}`).join(n)}${n}} from '${t}'${n}${n}`}function Cy(e,t,n){let r=e.lastIndexOf(`
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(`
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 wy(e){switch(e){case M.Schema:return Y.Module;case M.Table:case M.TablePartial:case M.Metadata:return Y.Class;case M.Column:case M.TableGroupField:return Y.Field;case M.Enum:return Y.Enum;case M.EnumField:return Y.EnumMember;case M.TableGroup:return Y.Struct;default:return Y.Text}}function Ty(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 Ey(e){return{...e,suggestions:e.suggestions.map(e=>({...e,insertText:` ${e.insertText}`}))}}function Dy(e){return{...e,suggestions:e.suggestions.map(e=>({...e,insertText:e.quoted?e.insertText:Dg(e.insertText??``),quoted:!0}))}}function Oy(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 ky(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(Ay(e,c,t.kind,s,r,o)))}}return i}function Ay(e,t,n,r,i,a){let o=xy(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=jy(a,o.removeRange.startOffset),t=jy(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:wy(n),detail:`from ${r.basename}`,sortText:`zzz_${wy(n).toString().padStart(2,`0`)}_${t}`,range:void 0,additionalTextEdits:s}}function jy(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 My(e,t,n,i,a){let o=e.container.element(i,a);return!(o instanceof P)||!o.isKind(r.Records)||!(o.body instanceof R)||!o.body||!vy(a,o.body)||t.getLineContent(n.lineNumber).trim()!==``?null:o.parent instanceof $s?Ny(e,o):Py(e,o)}function Ny(e,n){if(!(n.name instanceof B))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 Fs||r instanceof Xs))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 Py(e,n){let r=n.parent;if(!(r instanceof P))return Z();let i=e.nodeSymbol(r).getFiltered(t);if(!(i instanceof Ps))return Z();let a;if(n.name instanceof cc){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 Fs||r instanceof Xs))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 Fy(e,t,n,r,i){let a=e.parse.ast(t);for(let o of a.body)if(o instanceof ec&&n>=o.start&&n<=o.fullEnd)return Iy(e,t,n,o,i,r);return null}function Iy(e,t,n,r,i,a){if(r.importPath&&vy(n,r.importPath))return Vy(e,t,r.importPath,i,r);if(r.importPath&&n>=r.importPath.end)return Z();if(r.fromKeyword&&n>r.fromKeyword.end)return Vy(e,t,void 0,i,r);if(r.specifiers instanceof nc){if(!r.specifiers.openBrace){let e=By();return Ty(r.useKeyword,n)?Ey(e):e}return Ly(e,t,n,r.specifiers,r.importPath,a)}if(r.specifiers instanceof fc)return Z();let o=By();return Ty(r.useKeyword,n)?Ey(o):o}function Ly(e,t,n,r,i,a){for(let o of r.specifiers){let r=!Number.isNaN(o.start)&&n>=o.start&&n<=o.end,s=a===o.importKind||a===o.asKeyword;if(r||s){if(o.importKind&&n>o.importKind.end){let n=o.getSymbolKind();if(n!==void 0&&n!==M.Schema)return zy(e,t,i,n)}return Ry()}}return Ry()}function Ry(){return{suggestions:Object.keys(Es).map(e=>({label:e.toLowerCase(),insertText:`${e.toLowerCase()} `,insertTextRules:X.KeepWhitespace,kind:Y.Keyword,range:void 0}))}}function zy(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 Ys&&!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:wy(i),range:void 0}))}}function By(){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 Vy(e,t,n,r,i){let a=t.dirname,o=n?n.value:`./`,s=n===void 0,c;if(n){let e=my(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(Uy(e,n,Hy(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 Hy(e){let t=e.specifiers;return t instanceof nc?t.specifiers.flatMap(e=>{let t=A(e.name),n=e.importKind?.value.toLowerCase();return!t||!n?[]:[{name:t,kind:n}]}):[]}function Uy(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 Wy=class{constructor(e,t={}){this.compiler=e,this.triggerCharacters=t.triggerCharacters??[]}provideCompletionItems(e,t){let n=bo.fromUri(String(e.uri)),r=py(e,t),i=My(this.compiler,e,t,n,r);if(i!==null)return i;let a=this.compiler.token.flatStream(n),{token:o,index:s}=this.compiler.container.token(n,r),c=s===void 0?a[0]:a[s+1];if([...o?.trailingTrivia||[],...o?.leadingTrivia||[],...c?.leadingTrivia||[]].find(e=>qa(e)&&vy(r,e)))return Z();if(s===void 0)return rb();let l=Fy(this.compiler,n,r,o,e);if(l!==null)return l;if([v.STRING_LITERAL,v.QUOTED_STRING].includes(o.kind)&&vy(r,o))return Z();let u=this.compiler.container.element(n,r);if(this.compiler.container.scopeKind(n,r)===Q.TOPLEVEL||u instanceof P&&u.type&&u.type.start<=r&&u.type.end>=r)return rb();let d=[...this.compiler.container.stack(n,r)].reverse();for(let e of d)if(e instanceof I)switch(e.op?.value){case`>`:case`<`:case`<>`:case`-`:return Ky(this.compiler,n,r,e);case`~`:return Gy(this.compiler,n,r);default:}else if(e instanceof ac)switch(e.op?.value){case`>`:case`<`:case`<>`:case`-`:return Ky(this.compiler,n,r,e);case`.`:return tb(this.compiler,n,r,e);default:}else if(e instanceof F)return Zy(this.compiler,n,r,e);else if(e instanceof z)return Zy(this.compiler,n,r,e);else if(e instanceof cc)return Yy(this.compiler,n,r,e);else if(e instanceof lc)return Xy(this.compiler,n,r);else if(e instanceof B)return pb(this.compiler,n,r,e);else if(e instanceof L)return nb(this.compiler,n,r,e);else if(e instanceof P){if(yy(r,e))return fb(this.compiler,n,r,e);if(e.bodyColon&&r>=e.bodyColon.end||e.body&&vy(r,e.body))return nb(this.compiler,n,r,void 0)}else if(e instanceof rc){if(yy(r,e))return db(this.compiler,n,r,e);if(e.bodyColon&&r>=e.bodyColon.end||e.body&&vy(r,e.body))return nb(this.compiler,n,r,void 0)}return Z()}};function Gy(e,t,n){return Jy(e,t,n,e.parse.ast(t),[M.TablePartial])}function Ky(e,t,n,r){let i=e.container.scopeKind(t,n);if([Q.REF,Q.TABLE,Q.TABLEPARTIAL].includes(i)){let i=Jy(e,t,n,e.container.element(t,n),[M.Table,M.Schema,M.Column]);return Ty(r.op,n)?Ey(i):i}return Z()}function qy(e,n,r){let i=e.symbolMembers(n).getFiltered(t);return i?Dy({suggestions:i.filter(e=>r.includes(e.kind)).filter(e=>!(e instanceof js&&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:wy(e.kind),sortText:wy(e.kind).toString().padStart(2,`0`),detail:i,range:void 0}}).filter(e=>e.label!==``)}):Z()}function Jy(e,n,r,i,a){if(i===void 0)return Z();let o=i,s={suggestions:[]},c;for(;o;){o instanceof $s&&(c=o);let n=e.nodeSymbol(o).getFiltered(t);if(n){let t=qy(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 P||o instanceof rc?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 ky(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 Dy(s)}function Yy(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 B&&t.argumentList===a)return pb(e,n,i,t);if(s instanceof P&&s.isKind(r.Records)&&!(s.name instanceof B)&&yy(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=qy(e,i,[M.Column]);return ds(a)?Oy(t):t}}switch(o){case Q.INDEXES:return _b(e,n,i);case Q.REF:for(;c.length>0;){let t=c.pop();if(t instanceof ac&&t.op?.value===`.`)return tb(e,n,i,t)}return sb(e,n,i);default:break}return Z()}function Xy(e,t,n){return e.container.scopeKind(t,n)===Q.RECORDS?Jy(e,t,n,e.container.element(t,n),[M.Schema,M.Enum,M.EnumField]):Z()}function Zy(e,t,n,r){let{token:i}=e.container.token(t,n);if([v.COMMA,v.LBRACKET].includes(i?.kind)){let r=Qy(e,t,n);return i?.kind===v.COMMA&&Ty(i,n)?Ey(r):r}if(r.name&&r.name.start<=n&&r.name.end>=n)return Qy(e,t,n);if(r.name instanceof ic){let a=$y(e,t,n,ls(r.name)??``);return i?.kind===v.COLON&&Ty(i,n)?Ey(a):a}return Z()}function Qy(e,t,n){let r=e.container.element(t,n);if(r instanceof $s)return Z();let a=e.container.scopeKind(t,n);if(r.body&&!vy(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 $y(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 Jy(e,t,n,e.container.element(t,n),[M.Schema,M.Enum]);default:break}return Z()}function eb(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 P||a instanceof rc?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 tb(e,n,r,i){let a=ps(i)??[];return a.pop(),a.some(e=>!w(e))?Z():Dy({suggestions:eb(e,a.map(e=>A(e)),e.container.element(n,r)).flatMap(n=>e.symbolMembers(n).getFiltered(t)||[]).flatMap(e=>{let t=e.name;return t===void 0?[]:{label:t,insertText:t,kind:wy(e.kind),range:void 0}})})}function nb(e,t,n,i){switch(e.container.scopeKind(t,n)){case Q.TABLE:case Q.TABLEPARTIAL:return ab(e,t,n,i);case Q.PROJECT:return ob(e,t,n,i);case Q.INDEXES:return hb(e,t,n);case Q.ENUM:return ib(e,t,n,i);case Q.REF:{let r=sb(e,t,n);return e.container.token(t,n).token?.kind===v.COLON&&Ty(e.container.token(t,n).token,n)?Ey(r):r}case Q.TABLEGROUP:return mb(e,t);case Q.DIAGRAMVIEW:return bb();case Q.CUSTOM:{let i=e.container.element(t,n);if(i instanceof P){let a=i.parentNode,o=a instanceof R?a.parentNode:void 0;if(o instanceof P&&o.isKind(r.DiagramView))return xb(e,t,n,i)}return Z()}default:return Z()}}function rb(){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 ib(e,t,n,r){return r?.callee&&vb(n,r)===1?Jy(e,t,n,e.container.element(t,n),[M.Schema,M.Table,M.Column]):Z()}function ab(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=vb(n,r);return a===0?{suggestions:i.map(e=>({label:e,insertText:e,insertTextRules:X.KeepWhitespace,kind:Y.Keyword,range:void 0}))}:a===1?gb(e,t,n):Z()}function ob(e,t,n,r){return!r?.callee||vb(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 sb(e,t,n){return Jy(e,t,n,e.container.element(t,n),[M.Schema,M.Table,M.Column])}var cb={[Ds.Table]:[M.Schema,M.Table],[Ds.Column]:[M.Schema,M.Table,M.Column],[Ds.TableGroup]:[M.Schema,M.TableGroup],[Ds.Note]:[M.Schema,M.StickyNote]},lb={[Ds.Table]:`Table`,[Ds.Column]:`Column`,[Ds.TableGroup]:`TableGroup`,[Ds.Note]:`Note`};function ub(){return{suggestions:Os.map(e=>{let t=lb[e]??e;return{label:t,insertText:t,insertTextRules:X.KeepWhitespace,kind:Y.Keyword,range:void 0}})}}function db(e,t,n,r){let i=r.targetKind?.value?.toLowerCase();if(!i||n<=r.targetKind.end&&n>=r.targetKind.start)return ub();let a=cb[i];return a?Jy(e,t,n,r.parent,a):Z()}function fb(e,t,n,i){return i.isKind(r.Records)?Jy(e,t,n,i.parent,[M.Schema,M.Table]):Z()}function pb(e,n,i,a){let o=e.container.element(n,i),s=a.callee&&vy(i,a.callee),c=a.argumentList&&vy(i,a.argumentList);if(o instanceof P&&o.isKind(r.Records)&&yy(i,o)){if(s)return Jy(e,n,i,o.parent,[M.Schema,M.Table]);if(!c)return Z();let r=a.callee;if(!r)return Z();let l=ps(r)??[r],u=l[l.length-1],d=u?e.nodeReferee(u).getFiltered(t):void 0;if(!d)return Z();let f=qy(e,d,[M.Column]),{argumentList:p}=a;return!p||!ds(p)?f:Oy(f)}let l=[...e.container.stack(n,i)];for(let o of l){if(!c||!(o instanceof L)||o.callee!==a||(A(a.callee)??``).toLowerCase()!==r.Records)continue;let s=e.nodeSymbol(e.container.element(n,i)).getFiltered(t);if(!s)return Z();let l=qy(e,s,[M.Column]),{argumentList:u}=a;return!u||!ds(u)?l:Oy(l)}return Z()}function mb(e,t){return{suggestions:[...Dy({suggestions:(e.parse.publicSymbolTable(t)??[]).flatMap(e=>{if(e.kind!==M.Table&&e.kind!==M.Schema)return[];let t=e.name;return t===void 0||e instanceof js&&e.isPublicSchema()?[]:{label:t,insertText:t,insertTextRules:X.KeepWhitespace,kind:wy(e.kind),range:void 0}})}).suggestions,...[`Note`].map(e=>({label:e,insertText:e,insertTextRules:X.KeepWhitespace,kind:Y.Keyword,range:void 0}))]}}function hb(e,t,n){return _b(e,t,n)}function gb(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})),...Jy(e,t,n,e.container.element(t,n),[M.Enum,M.Schema]).suggestions]}}function _b(e,n,r){let i=e.container.element(n,r)?.parent,a=i?e.nodeSymbol(i).getFiltered(t):void 0;if(!a||!a?.isKind(M.Table))return Z();let o=e.symbolMembers(a).getFiltered(t);return o?Dy({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:wy(M.Column),range:void 0}:[]})}):Z()}function vb(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 yb={label:`*`,insertText:`*`,insertTextRules:X.KeepWhitespace,kind:Y.Keyword,range:void 0};function bb(){return{suggestions:[...[`Tables`,`TableGroups`,`Notes`,`Schemas`].map(e=>({label:e,insertText:e,insertTextRules:X.KeepWhitespace,kind:Y.Keyword,range:void 0})),yb]}}function xb(e,t,n,i){switch(i.getElementKind()){case r.DiagramViewTables:return{suggestions:[yb,...Jy(e,t,n,e.parse.ast(t),[M.Table,M.Schema]).suggestions]};case r.DiagramViewTableGroups:return{suggestions:[yb,...Jy(e,t,n,e.parse.ast(t),[M.TableGroup]).suggestions]};case r.DiagramViewSchemas:return{suggestions:[yb,{label:y,insertText:y,insertTextRules:X.KeepWhitespace,kind:Y.Module,range:void 0},...Jy(e,t,n,e.parse.ast(t),[M.Schema]).suggestions]};case r.DiagramViewNotes:return{suggestions:[yb,...Jy(e,t,n,e.parse.ast(t),[M.StickyNote]).suggestions]};default:return Z()}}var Sb={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*[}\]].*)$/}},Cb={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 wb(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=Ic(s).find(e=>vy(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 L){let i=this.getSource(e)||``;for(let e=r.end;e<t;e+=1)i[e]===`
12
- `&&(c.pop(),n=!0)}else r instanceof I||r instanceof ac?this.container.token(e,t).token!==r.op&&(c.pop(),n=!0):r instanceof z?r.listCloseBracket&&r.end<=t&&(c.pop(),n=!0):r instanceof cc?r.tupleCloseParen&&r.end<=t&&(c.pop(),n=!0):r instanceof lc?r.end<=t&&(c.pop(),n=!0):r instanceof R?r.blockCloseBrace&&r.end<=t&&(c.pop(),n=!0):r instanceof ic||r.end<t&&(c.pop(),n=!0);if(n){let e=g(c);(e instanceof P||e instanceof rc)&&e.end<=t&&c.pop()}if(!n)break}return c}function Tb(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 Eb(e,t){let n=this.container.stack(e,t);for(let e=n.length-1;e>=0;--e)if(n[e]instanceof P||n[e]instanceof rc)return n[e];return this.parse.ast(e)}function Db(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 Ob(e,t){let n=this.container.element(e,t);if(n instanceof $s)return Q.TOPLEVEL;if(n instanceof rc)return Q.METADATA;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 kb(e,t){let r=t.originalSymbol;if(r.filepath.equals(e))return n.create(jb(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=Ab(this,e);if(i.length>0)return n.create({schema:i.join(`.`),name:t});let a=jb(this,r);return a?n.create({...a,name:t}):n.create({schema:y,name:t})}return n.create(jb(this,r))}function Ab(e,t){let n=[],r=t;for(;r;){let t=e.symbolParent(r).find(e=>e instanceof js&&e.isKind(M.Schema));if(!t||t.isPublicSchema())break;n.unshift(t.name??``),r=t}return n}function jb(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 Mb(e){let{ast:t}=this.parseFile(e).getValue(),n=[],r=new Set;for(let i of t.body){if(!(i instanceof ec)||!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 Nb(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 Pb(e){return Nb(this,e?[e]:this.layout.getEntrypoints())}function Fb(e){return this.bindFile(e),this.parseFile(e).getValue().ast}function Ib(e){return this.interpretFile(e).getErrors()}function Lb(e){return this.interpretFile(e).getWarnings()}function Rb(e){return this.parseFile(e).getValue().tokens}function zb(e){let n=this.parseFile(e).getValue().ast,r=this.nodeSymbol(n).getFiltered(t);if(r)return this.interpretSymbol(r,e).getFiltered(t)}function Bb(e){let n=this.parseFile(e).getValue().ast,r=this.nodeSymbol(n).getFiltered(t);if(r)return this.symbolMembers(r).getFiltered(t)}function Vb(e){return this.parseFile(e).getValue().tokens.flatMap(e=>[...e.leadingInvalid,e,...e.trailingInvalid])}function Hb(e){return this.parseFile(e).getValue().tokens.filter($a)}function Ub(e,t){let n=this.parse.ast(e);for(;;){let e=Ic(n).find(e=>vy(t,e));if(e===void 0)return n;if(e instanceof Va)return e;n=e}}function Wb(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 Gb(){let e=Mg(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 Kb(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 qb(){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 Jb(e){return this.parseFile(e).chain(({ast:e})=>this.validateNode(e).map(()=>void 0))}var Yb=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 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===`
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
- `: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(Oo(e)){this.identifier();break}if(ko(e)){this.numericLiteralOrIdentifier();break}this.addToken(v.OP,!0),this.errors.push(new x(b.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
- `))&&!this.check(t);)this.peek()===`\\`&&!i?(this.advance(),o+=this.escapedString()):o+=this.advance();if(this.isAtEnd()&&!r){let t=this.createToken(e,!0);this.tokens.push(t),this.errors.push(new x(b.UNEXPECTED_EOF,`EOF reached while parsing`,t));return}if(this.check(`
16
- `)&&!n){let t=this.createToken(e,!0);this.tokens.push(t),this.errors.push(new x(b.UNEXPECTED_NEWLINE,`Invalid newline encountered while parsing`,t));return}a&&this.match(t),this.tokens.push(Va.create(e,this.filepath,this.start,this.current,o,!1))}singleLineStringLiteral(){this.consumeUntil(v.STRING_LITERAL,`'`,{allowNewline:!1,allowEof:!1,raw:!1})}multilineStringLiteral(){this.consumeUntil(v.STRING_LITERAL,`'''`,{allowNewline:!0,allowEof:!1,raw:!1})}functionExpression(){this.consumeUntil(v.FUNCTION_EXPRESSION,"`",{allowNewline:!0,allowEof:!1,raw:!0})}quotedVariable(){this.consumeUntil(v.QUOTED_STRING,`"`,{allowNewline:!1,allowEof:!1,raw:!1})}singleLineComment(){this.consumeUntil(v.SINGLE_LINE_COMMENT,`
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()&&jo(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&&ko(n)){for(this.advance(),t&&this.advance();!this.isAtEnd()&&ko(this.peek());)this.advance();if(this.isAtEnd()||!jo(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&&!jo(this.peek()))return this.addToken(v.NUMERIC_LITERAL);if(!t&&!ko(this.peek()))break;this.advance()}if(e>0){for(;!this.isAtEnd()&&(this.check(`.`)||jo(this.peek()));)this.advance();let e=this.createToken(v.NUMERIC_LITERAL,!0);this.tokens.push(e),this.errors.push(new x(b.UNKNOWN_TOKEN,`Invalid number`,e))}else{for(;!this.isAtEnd()&&jo(this.peek());)this.advance();let e=this.createToken(v.IDENTIFIER,!1);this.tokens.push(e)}}colorLiteral(){for(;!this.isAtEnd()&&jo(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(`
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
+ `))&&!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(`
16
+ `)&&!n){let t=this.createToken(e,!0);this.tokens.push(t),this.errors.push(new E(T.UNEXPECTED_NEWLINE,`Invalid newline encountered while parsing`,t));return}a&&this.match(t),this.tokens.push(Va.create(e,this.filepath,this.start,this.current,o,!1))}singleLineStringLiteral(){this.consumeUntil(v.STRING_LITERAL,`'`,{allowNewline:!1,allowEof:!1,raw:!1})}multilineStringLiteral(){this.consumeUntil(v.STRING_LITERAL,`'''`,{allowNewline:!0,allowEof:!1,raw:!1})}functionExpression(){this.consumeUntil(v.FUNCTION_EXPRESSION,"`",{allowNewline:!0,allowEof:!1,raw:!0})}quotedVariable(){this.consumeUntil(v.QUOTED_STRING,`"`,{allowNewline:!1,allowEof:!1,raw:!1})}singleLineComment(){this.consumeUntil(v.SINGLE_LINE_COMMENT,`
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()||!jo(this.peek()))return this.errors.push(new x(b.INVALID_ESCAPE_SEQUENCE,`Invalid unicode escape sequence '\\u${t}', only unicode escape sequences of the form '\\uHHHH' where H is a hexadecimal number are allowed`,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]}}},Xb=function(e){return e[e.ListExpression=0]=`ListExpression`,e[e.GroupExpression=1]=`GroupExpression`,e[e.BlockExpression=2]=`BlockExpression`,e}({}),Zb=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}}},Qb=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}},$b=class{constructor(e,t,n,r){this.current=0,this.errors=[],this.contextStack=new Zb,this.useSpecifierList=this.contextStack.withContextDo(Xb.BlockExpression,()=>{let e={specifiers:[]},t=()=>this.nodeFactory.create(nc,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 tc&&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(),b.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(V(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;V(e),this.advance()}},this.synchronizeProgram=()=>{let e=this.peek();e.kind===v.EOF?this.logError(e,b.UNEXPECTED_EOF,`Unexpected EOF`):V(this.advance())},this.synchronizeElementDeclarationName=()=>{for(;!this.isAtEnd();){let e=this.peek();if(Ja(e)||this.check(v.COLON,v.LBRACE,v.LBRACKET))break;V(e),this.advance()}},this.synchronizeElementDeclarationAlias=()=>{for(;!this.isAtEnd();){let e=this.peek();if(this.check(v.COLON,v.LBRACE,v.LBRACKET))break;V(e),this.advance()}},this.blockExpression=this.contextStack.withContextDo(Xb.BlockExpression,()=>{let e={body:[]},t=()=>this.nodeFactory.create(R,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(V(this.advance());!this.isAtEnd();){let e=this.peek();if(this.check(v.RBRACE)||Ua(this.previous(),e))break;V(e),this.advance()}},this.tupleExpression=this.contextStack.withContextDo(Xb.GroupExpression,()=>{let e={elementList:[],commaList:[]},t=()=>this.nodeFactory.create(uc,{groupOpenParen:e.tupleOpenParen,groupCloseParen:e.tupleCloseParen,expression:e.elementList[0]}),n=()=>this.nodeFactory.create(cc,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 N&&e.elementList.push(t.partialNode),!this.canHandle(t))throw new $(t.token,n(),t.handlerContext);this.synchronizeTuple()}try{this.consume(`Expect a closing parenthesis ')'`,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;V(e),this.advance()}},this.listExpression=this.contextStack.withContextDo(Xb.ListExpression,()=>{let e={elementList:[],commaList:[]},t=()=>this.nodeFactory.create(z,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 N&&e.elementList.push(n.partialNode),!this.canHandle(n))throw new $(n.token,t(),n.handlerContext);this.synchronizeList()}try{this.consume(`Expect a closing bracket ']'`,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;V(e),this.advance()}},this.synchronizeAttributeName=()=>{for(;!this.isAtEnd();){let e=this.peek();if(this.check(v.COMMA,v.RBRACKET,v.COLON))break;V(e),this.advance()}},this.synchronizeAttributeValue=()=>{for(;!this.isAtEnd();){let e=this.peek();if(this.check(v.COMMA,v.RBRACKET))break;V(e),this.advance()}},this.source=e,this.tokens=t,this.nodeFactory=new Qb(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(),b.UNEXPECTED_TOKEN,e),new $(this.peek(),void 0,this.contextStack.findHandlerContext(this.tokens,this.current))}discardUntil(e,...t){if(this.isAtEnd()||!this.check(...t)){for(V(this.peek()),this.logError(this.advance(),b.UNEXPECTED_TOKEN,e);!this.isAtEnd()&&!this.check(...t);)V(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($s,{body:e,eof:t,source:this.source});return this.gatherInvalid(),this.assignParents(r),new n({ast:r,tokens:this.tokens},this.errors)}assignParents(e){Ic(e).forEach(t=>{t instanceof N&&(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 ec&&e.push(t.partialNode),this.synchronizeProgram()}else if(Xa(this.peek()))try{e.push(this.metadataDeclaration())}catch(t){if(!(t instanceof $))throw t;t.partialNode instanceof rc&&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(ec,e);if(this.advance(),e.useKeyword=this.previous(),this.peek().kind===v.WILDCARD)this.advance(),e.specifiers=this.nodeFactory.create(fc,{token:this.previous()});else try{e.specifiers=this.useSpecifierList()}catch(t){if(!(t instanceof $))throw t;t.partialNode instanceof nc&&(e.specifiers=t.partialNode)}let n=e.specifiers instanceof fc?`'*'`:`specifier list`;return Za(this.peek())?e.fromKeyword=this.advance():this.logError(this.peek(),b.UNEXPECTED_TOKEN,`Expect 'from' after ${n}`),this.match(v.STRING_LITERAL)?e.importPath=this.previous():this.logError(this.peek(),b.UNEXPECTED_TOKEN,`Expect a string literal path`),t()}useSpecifier(){let e={},t=()=>this.nodeFactory.create(tc,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(e.importKind?.value.toLowerCase()===r.Metadata&&this.check(v.IDENTIFIER)&&(this.consume(`Expect a metadata target kind`,v.IDENTIFIER),e.subKind=this.previous()),this.check(v.IDENTIFIER,v.QUOTED_STRING))try{e.name=this.normalExpression()}catch(n){throw n instanceof $?(n.partialNode instanceof N&&(e.name=n.partialNode),new $(n.token,t(),n.handlerContext)):n}else e.importKind&&this.logError(this.peek(),b.UNEXPECTED_TOKEN,`Expect an element name`);if(Ja(this.peek())){e.asKeyword=this.advance();try{if(!this.check(v.IDENTIFIER,v.QUOTED_STRING))throw this.logError(this.peek(),b.UNEXPECTED_TOKEN,`Expect an alias name after 'as'`),new $(this.peek(),t(),this.contextStack.findHandlerContext(this.tokens,this.current));e.alias=this.normalExpression()}catch(e){if(!(e instanceof $))throw e;if(!this.canHandle(e))throw new $(e.token,t(),e.handlerContext)}}return t()}metadataDeclaration(){let e={},t=()=>this.nodeFactory.create(rc,e);this.advance(),e.metadataKeyword=this.previous();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.targetName=this.normalExpression()}catch(n){if(!(n instanceof $))throw n;if(e.targetName=n.partialNode,!this.canHandle(n))throw new $(n.token,t(),n.handlerContext);this.synchronizeElementDeclarationName()}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 P?(V(t),this.logError(t,b.UNEXPECTED_ELEMENT_DECLARATION,`An element's simple body must not be an element declaration`)):e.body=t}else e.body=this.blockExpression()}catch(n){throw n instanceof $?(e.body=n.partialNode,new $(n.token,t(),n.handlerContext)):n}return this.nodeFactory.create(rc,e)}elementDeclaration(){let e={},t=()=>this.nodeFactory.create(P,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(!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(),b.UNEXPECTED_TOKEN,`Expect an alias`);else try{e.alias=this.normalExpression()}catch(n){if(!(n instanceof $))throw n;if(e.alias=n.partialNode,!this.canHandle(n))throw new $(n.token,t(),n.handlerContext);this.synchronizeElementDeclarationAlias()}try{e.attributeList=this.check(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 P?(V(t),this.logError(t,b.UNEXPECTED_ELEMENT_DECLARATION,`An element's simple body must not be an element declaration`)):e.body=t}else e.body=this.blockExpression()}catch(n){throw n instanceof $?(e.body=n.partialNode,new $(n.token,t(),n.handlerContext)):n}return this.nodeFactory.create(P,e)}fieldDeclaration(){let e={},t=()=>this.nodeFactory.create(P,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 P?this.errors.push(new x(b.INVALID_ELEMENT_IN_SIMPLE_BODY,`Simple body cannot be an element declaration`,t)):e.body=t}catch(n){throw n instanceof $?(e.body=n.partialNode,new $(n.token,t(),n.handlerContext)):n}return this.nodeFactory.create(P,e)}expression(){let e={args:[]},t=()=>Mc(e.callee,e.args,this.nodeFactory)??this.nodeFactory.create(L,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,b.MISSING_SPACES,`Expect a following space`);try{n=this.commaExpression(),e.args.push(n)}catch(r){throw r instanceof $?(n=r.partialNode,e.args.push(n),new $(r.token,t(),r.handlerContext)):r}}return t()}shouldStopFunctionApplication(){if(this.isAtEnd()||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(hc,{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(hc,{prevToken:this.previous()}));break}if(this.check(v.COMMA)){t.elementList.push(this.nodeFactory.create(hc,{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(lc,t),e.handlerContext)):e}}while(!this.shouldStopCommaExpression()&&this.check(v.COMMA));return this.nodeFactory.create(lc,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}=ax(n);if(r<e||Ua(this.previous(),n)&&!this.contextStack.isWithinGroupExpressionContext()&&!this.contextStack.isWithinListExpressionContext())break;try{t=this.nodeFactory.create(B,{callee:t,argumentList:this.tupleExpression()})}catch(e){throw e instanceof $?(t=this.nodeFactory.create(B,{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(gc,{expression:t,indexer:this.listExpression()})}catch(e){throw e instanceof $?(t=this.nodeFactory.create(gc,{expression:t,indexer:e.partialNode}),new $(e.token,t,e.handlerContext)):e}}else if(Ba(n)){let r=n,i=ax(r);if(i.left!==null){if(i.left<=e)break;this.advance(),t=this.nodeFactory.create(oc,{expression:t,op:r})}else{let n=tx(r);if(n.left===null||n.left<=e)break;this.advance();try{t=this.nodeFactory.create(ac,{leftExpression:t,op:r,rightExpression:r.value===`.`?this.extractOperand():this.expression_bp(n.right)})}catch(e){throw e instanceof $?(t=this.nodeFactory.create(ac,{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=rx(t.op);if(n.right===null)throw this.logError(t.op,b.UNKNOWN_PREFIX_OP,`Unexpected '${t.op.value}' in an expression`),new $(t.op,this.nodeFactory.create(hc,{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(I,t),e.handlerContext)):e}e=this.nodeFactory.create(I,t)}else if(e=this.extractOperand(),e instanceof hc)throw new $(this.peek(),this.nodeFactory.create(hc,{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(),b.UNEXPECTED_EOF,`Unexpected EOF`):this.logError(this.peek(),b.INVALID_OPERAND,`Invalid start of operand "${this.peek().value}"`),this.nodeFactory.create(hc,{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(sc,e),t.handlerContext):t}return this.nodeFactory.create(sc,e)}wildcardExpression(){return this.advance(),this.nodeFactory.create(fc,{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(mc,{expression:this.nodeFactory.create(dc,{literal:this.previous()})});if(this.match(v.QUOTED_STRING,v.IDENTIFIER))return this.nodeFactory.create(mc,{expression:this.nodeFactory.create(pc,{variable:this.previous()})});throw this.logError(this.peek(),b.UNEXPECTED_TOKEN,`Expect a variable or literal`),new $(this.peek(),void 0,this.contextStack.findHandlerContext(this.tokens,this.current))}attribute(){let e={};if(this.check(v.COLON,v.RBRACKET,v.COMMA)){let t=this.peek();this.logError(t,b.EMPTY_ATTRIBUTE_NAME,`Expect a non-empty attribute name`),e.name=this.nodeFactory.create(ic,{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(F,e),t.handlerContext);this.synchronizeAttributeName()}return this.match(v.COLON)&&(e.colon=this.previous(),e.value=this.attributeValue()),this.nodeFactory.create(F,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(ic,{identifiers:e}),t.handlerContext):t}return this.nodeFactory.create(ic,{identifiers:e})}logError(e,t,n){this.errors.push(new x(t,n,e))}},ex={"+":{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 tx(e){return ex[e.value]||{left:null,right:null}}var nx={"+":{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 rx(e){return nx[e.value]||{left:null,right:null}}var ix={"(":{left:14,right:null}};function ax(e){return ix[e.value]||{left:null,right:null}}function ox(e){let t=this.getSource(e);return new Yb(t??``,e).lex().chain(n=>new $b(t??``,n,this.nodeIdGenerator,e).parse()).map(({ast:t,tokens:n})=>({ast:t,tokens:n,path:e}))}function sx(){let e=Mg(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 cx(e){let n=this.symbolMembers(e).getFiltered(t),r=new Map;if(n)for(let e of n){let t=e instanceof Ys?$h.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 lx(e,n,r){let i;if(e instanceof As)i=e;else{let n=this.nodeSymbol(e).getFiltered(t);if(!(n instanceof As))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 ux(e){let t=e.originalSymbol;return Ng(this).map(n=>n.filter(n=>n instanceof Js&&n.originalSymbol===t&&n!==e))}function dx(){let e=new Map,n=new Map,r=this.parseProject();this.bindProject();let i=new Set,a=(t,n)=>{if(i.has(n))return;i.add(n);let r=t.intern(),a=e.get(r);a||(a=[],e.set(r,a)),a.push(n);let o=t.originalSymbol;if(o!==t){let t=o.intern(),r=e.get(t);r||(r=[],e.set(t,r)),r.push(n)}},o=e=>{for(let t of e.owners(this)){let r=t.intern(),i=n.get(r);i||(i=[],n.set(r,i)),i.push(e)}};for(let e of r.values()){let n=e.getValue().ast,r=e=>{if(w(e)){let n=this.nodeReferee(e).getFiltered(t);n&&a(n,e);return}if(e instanceof cc&&T(e.parentNode)&&e.parentNode.rightExpression===e){let n=e.parentNode.leftExpression;if(n){let e=os(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 Ic(e))t instanceof N&&r(t)};r(n)}let s=new Map,c=new Set;function l(e,n){let r=n.intern();if(c.has(r))return;c.add(r);let i=e.symbolMembers(n).getFiltered(t);if(i)for(let t of i){let r=t.intern(),i=s.get(r);i||(i=[],s.set(r,i)),i.push(n),t instanceof js&&t.isKind(M.Schema)&&l(e,t)}}for(let e of r.values()){let n=e.getValue().ast,r=this.nodeSymbol(n).getFiltered(t);r&&l(this,r)}return{references:e,metadata:n,parents:s}}function fx(e){return this.resolutionIndex().parents.get(e.intern())??[]}function px(e){return this.resolutionIndex().references.get(e.intern())??[]}function mx(e){return this.resolutionIndex().metadata.get(e.intern())??[]}function hx(e){let t=e.originalSymbol;return Ng(this).map(n=>n.filter(n=>n instanceof Ys&&n.originalSymbol===t&&n!==e))}function gx(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 _x(e){if(typeof e!=`string`)return{schema:e.schema??`public`,table:e.table};let t=jg(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 vx(e,n,r,i){let a=e.parseFile(n).getValue().ast,o=e.nodeSymbol(a).getFiltered(t);if(!o)return null;if(r===`public`)return e.lookupMembers(o,M.Table,i)??null;let s=e.lookupMembers(o,M.Schema,r);return s?e.lookupMembers(s,M.Table,i)??null:null}function yx(e){return e.startsWith(`"`)&&e.endsWith(`"`)&&e.length>=2?e.slice(1,-1):e}function bx(e,t){if(!e||!(e instanceof P))return!1;let n=e.name;return n?t.substring(n.start,n.end).includes(`"`):!1}function xx(e,t,n){let r=!Eg(t),i=!Eg(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 Sx(e,t,n,r,i,a){return n===i&&r===a?!1:vx(e,t,i,a)!==null}function Cx(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 yx(n.substring(i,a))===t?{start:i,end:e.end}:null}function wx(e){return e.schema===`public`?e.formattedTable:`${e.formattedSchema}.${e.formattedTable}`}function Tx(e,t,n,r,i){let a=[],o=new Set,s=wx(r);for(let r of e){if(yx(i.substring(r.start,r.end))!==n)continue;let e=Cx(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 Ex(e,n,r){let i=_x(n),a=_x(r),o=i.schema,s=i.table,c=a.schema,l=a.table,u=vx(this,e,o,s);if(!u||u instanceof Js||Sx(this,e,o,s,c,l))return new Map;if(u instanceof Ys&&u.useSpecifierDeclaration instanceof tc&&u.useSpecifierDeclaration.alias){let n=u.useSpecifierDeclaration;if(this.nodeAlias(n).getFiltered(t)===s)return Dx(this,e,n,u,c,l)}return Ox(this,u,o,s,c,l)}function Dx(e,t,n,r,i,a){let o=e.getSource(t)??``;if(!n.alias)return new Map;let s=xx(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,gx(o,c)]])}function Ox(e,t,n,r,i,a){let o=t.originalSymbol,s=o.declaration;if(!s||!(s instanceof P))return new Map;let c=s.filepath;if(!c)return new Map;let l=xx(i,a,bx(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:wx(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 Tx([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,gx(r,n))}return m}function kx(e){let t=[],n=new Yb(e,Eo).lex();if(n.getErrors().length>0)return t;let i=new $b(e,n.getValue(),new Zs,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?O(e.name)??[]:[],r=n.length>0?n[n.length-1]:``;t.push({name:r,startIndex:e.start,endIndex:e.end})}return t}function Ax(e,t,n){e.push(` ${t} {`),n.forEach(t=>e.push(` ${t}`)),e.push(` }`)}function jx(e,t){e.push(` ${t} { * }`)}function Mx(e){return e==null?`null`:e.length===0?`empty`:`items`}function Nx(e,t){let n=`DiagramView ${Dg(e)} {`,r=e=>Dg(e.name),i=t?.tables?.map(e=>{let t=Dg(e.name);return e.schemaName===`public`?t:`${Dg(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:Mx(t.tables),tableGroups:Mx(t.tableGroups),schemas:Mx(t.schemas),stickyNotes:Mx(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`&&Ax(d,`Tables`,i),c.tableGroups===`items`&&Ax(d,`TableGroups`,a),c.schemas===`items`&&Ax(d,`Schemas`,o)):u&&jx(d,`Tables`),c.stickyNotes===`items`?Ax(d,`Notes`,s):c.stickyNotes===`empty`&&jx(d,`Notes`),d.push(`}`),d.join(`
21
- `)}function Px(e,t,n){let r=this.getSource(e)??``,i=n??kx(r),a=[];for(let e of t){let t=Fx(r,e,i);a.push(...t)}return a.sort((e,t)=>t.start-e.start),{newDbml:gx(r,a,!0),edits:a}}function Fx(e,t,n){switch(t.operation){case`create`:return Ix(e,t,n);case`update`:return Lx(e,t,n);case`delete`:return Rx(e,t,n);default:return[]}}function Ix(e,t,n){if(n.find(e=>e.name===t.name))return Lx(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]}}},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=`
22
22
 
23
- `+Nx(t.name,t.visibleEntities)+`
24
- `;return[{start:e.length,end:e.length,newText:r}]}function Lx(e,t,n){let r=n.find(e=>e.name===t.name);if(!r)return[];let i=[];if(t.newName||t.visibleEntities){let e=Nx(t.newName||t.name,t.visibleEntities);i.push({start:r.startIndex,end:r.endIndex,newText:e})}return i}function Rx(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
+ `+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]===`
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 zx=Symbol(`COMPUTING`),Bx=class{constructor(e){this.layout=e,this.nodeIdGenerator=new Zs,this.symbolIdGenerator=new ks,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(sx),this.validateNode=this.localQuery(rv),this.validateFile=this.localQuery(Jb),this.nodeFullname=this.localQuery(av),this.nodeAlias=this.localQuery(ov),this.nodeSettings=this.localQuery(iv),this.canonicalName=this.globalQuery(kb),this.bindNode=this.globalQuery(m_),this.bindFile=this.globalQuery(Wb),this.bindProject=this.globalQuery(Gb),this.interpretSymbol=this.globalQuery(g_),this.interpretMetadata=this.globalQuery(__),this.interpretFile=this.globalQuery(Kb),this.interpretProject=this.globalQuery(qb),this.nodeSymbol=this.globalQuery(d_),this.nodeMetadata=this.globalQuery(h_),this.symbolMembers=this.globalQuery(f_),this.symbolMembersLookupMap=this.globalQuery(cx),this.lookupMembers=this.globalQuery(lx),this.nodeReferee=this.globalQuery(p_),this.resolutionIndex=this.globalQuery(dx),this.symbolReferences=this.globalQuery(px),this.symbolParent=this.globalQuery(fx),this.symbolMetadata=this.globalQuery(mx),this.symbolAliases=this.globalQuery(ux),this.symbolUses=this.globalQuery(hx),this.fileDependencies=this.localQuery(Mb),this.reachableFiles=this.globalQuery(Pb),this.usableMembers=this.globalQuery(ng),this.nodeAtPosition=this.localQuery(Ub),this.renameTable=Ex.bind(this),this.syncDiagramView=Px.bind(this),this.token={invalidStream:this.localQuery(Hb),flatStream:this.localQuery(Vb)},this.parse={source:e=>this.getSource(e)||``,ast:(e=Eo)=>Fb.call(this,e),errors:(e=Eo)=>Ib.call(this,e),warnings:(e=Eo)=>Lb.call(this,e),tokens:(e=Eo)=>Rb.call(this,e),rawDb:(e=Eo)=>zb.call(this,e),publicSymbolTable:(e=Eo)=>Bb.call(this,e)},this.container={stack:this.localQuery(wb),token:this.localQuery(Tb),element:this.localQuery(Eb),scope:this.localQuery(Db),scopeKind:this.localQuery(Ob)}}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 Nb(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?Kc(n[0]):n.map(e=>Kc(e)).join(`\0`),a=r.get(i);if(a){if(a===zx)throw Error(`Cycle detected in query: ${e.name}(${i})`);return a}r.set(i,zx);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 N?r.filepath:r;this.cleanStaleLocalCache(i);let a=i.intern(),o=n.length===0?``:n.length===1?Kc(n[0]):n.map(e=>Kc(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===zx)throw Error(`Cycle detected in query: ${e.name}(${a}, ${o})`);return t}c.set(o,zx);try{let t=e.apply(this,n);return c.set(o,t),t}catch(e){throw c.delete(o),e}})}findDiagramViewBlocks(e){return kx(this.getSource(e)??``)}initMonacoServices(e){let t=e?.autocompletion?.triggerCharacters??[];return{definitionProvider:new hy(this),referenceProvider:new _y(this),autocompletionProvider:new Wy(this,{triggerCharacters:t}),diagnosticsProvider:new gy(this)}}},Vx=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=gc,exports.AttributeNode=F,exports.BlockExpressionNode=R,exports.CallExpressionNode=B,exports.CommaExpressionNode=lc,exports.CompileError=x,exports.CompileErrorCode=b,exports.Compiler=Bx,exports.CompletionItemInsertTextRule=X,exports.CompletionItemKind=Y,exports.DBMLCompletionItemProvider=Wy,exports.DBMLDefinitionProvider=hy,exports.DBMLDiagnosticsProvider=gy,exports.DBMLReferencesProvider=_y,exports.DEFAULT_ENTRY=Eo,exports.ElementDeclarationNode=P,exports.ElementKind=r,exports.EmptyNode=hc,exports.FALSY_VALUES=Jm,exports.Filepath=bo,exports.FunctionApplicationNode=L,exports.FunctionExpressionNode=sc,exports.GroupExpressionNode=uc,exports.IdentifierStreamNode=ic,exports.InfixExpressionNode=ac,exports.ListExpressionNode=z,exports.LiteralNode=dc,exports.MarkerSeverity=fy,exports.MemoryProjectLayout=Vx,exports.MetadataDeclarationNode=rc,exports.PostfixExpressionNode=oc,exports.PrefixExpressionNode=I,exports.PrimaryExpressionNode=mc,exports.ProgramNode=$s,exports.ScopeKind=Q,exports.SymbolKind=M,exports.SyntaxNode=N,exports.SyntaxNodeIdGenerator=Zs,exports.SyntaxNodeKind=Qs,exports.SyntaxToken=Va,exports.SyntaxTokenKind=v,exports.TRUTHY_VALUES=qm,exports.TupleExpressionNode=cc,exports.UNHANDLED=t,exports.Uri=ty,exports.UseDeclarationNode=ec,exports.UseSpecifierListNode=nc,exports.UseSpecifierNode=tc,exports.VariableNode=pc,exports.WildcardNode=fc,exports.addDoubleQuoteIfNeeded=Dg,exports.dbmlLanguageConfig=Sb,exports.dbmlMonarchTokensProvider=Cb,exports.escapeString=kg,exports.extractNumericLiteral=gs,exports.extractSignedNumber=Wm,exports.formatRecordValue=Ag,exports.getRecordValueType=Ol,exports.isBinaryType=Tl,exports.isBooleanType=Cl,exports.isDateTimeType=El,exports.isEmptyStringLiteral=Hm,exports.isFloatType=xl,exports.isFunctionExpression=Um,exports.isIntegerType=bl,exports.isNullish=Vm,exports.isNumericType=Sl,exports.isOp=za,exports.isOpToken=Ba,exports.isSerialType=Dl,exports.isStringType=wl,exports.isTriviaToken=Ra,exports.isValidIdentifier=Eg,exports.normalizeTypeName=yl,exports.splitQualifiedIdentifier=jg,exports.tryExtractBoolean=Ym,exports.tryExtractDateTime=th,exports.tryExtractEnum=Xm,exports.tryExtractInteger=Km,exports.tryExtractNumeric=Gm,exports.tryExtractString=Zm,exports.unescapeString=Og,exports.validateForeignKeys=wh,exports.validatePrimaryKey=ph,exports.validateUnique=bh;
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;