@dbml/core 6.2.0 → 6.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/index.cjs CHANGED
@@ -126,4 +126,4 @@ function print() { __p += __j.call(arguments, '') }
126
126
  `+n.join(`, `)),`
127
127
  `].join(``);var n}function xe(e){return e.flags===void 0?[e.global?`g`:``,e.ignoreCase?`i`:``,e.multiline?`m`:``,e.unicode?`u`:``,e.sticky?`y`:``].join(``):e.flags}function Se(){for(var e=[].slice.call(arguments),t=e.length,n=0;n<t;n+=1)ae(e[n]);return r(function(n,r){for(var i,a=Array(t),o=0;o<t;o+=1){if(!(i=ne(e[o]._(n,r),i)).status)return i;a[o]=i.value,r=i.index}return ne(b(r,a),i)})}function Ce(){var e=[].slice.call(arguments);if(e.length===0)throw Error(`seqMap needs at least one argument`);var t=e.pop();return ce(t),Se.apply(null,e).map(function(e){return t.apply(null,e)})}function we(){var e=[].slice.call(arguments),t=e.length;if(t===0)return Ae(`zero alternates`);for(var n=0;n<t;n+=1)ae(e[n]);return r(function(t,n){for(var r,i=0;i<e.length;i+=1)if((r=ne(e[i]._(t,n),r)).status)return r;return r})}function Te(e,t){return Ee(e,t).or(ke([]))}function Ee(e,t){return ae(e),ae(t),Ce(e,t.then(e).many(),function(e,t){return[e].concat(t)})}function De(e){le(e);var t=`'`+e+`'`;return r(function(n,r){var i=r+e.length,a=n.slice(r,i);return a===e?b(i,a):te(r,t)})}function Oe(e,t){(function(e){if(!(e instanceof RegExp))throw Error(`not a regexp: `+e);for(var t=xe(e),n=0;n<t.length;n++){var r=t.charAt(n);if(r!==`i`&&r!==`m`&&r!==`u`&&r!==`s`)throw Error(`unsupported regexp flag "`+r+`": `+e)}})(e),arguments.length>=2?se(t):t=0;var n=function(e){return RegExp(`^(?:`+e.source+`)`,xe(e))}(e),i=``+e;return r(function(e,r){var a=n.exec(e.slice(r));if(a){if(0<=t&&t<=a.length){var o=a[0],s=a[t];return b(r+o.length,s)}return te(r,`valid match group (0 to `+a.length+`) in `+i)}return te(r,i)})}function ke(e){return r(function(t,n){return b(n,e)})}function Ae(e){return r(function(t,n){return te(n,e)})}function je(e){if(ee(e))return r(function(t,n){var r=e._(t,n);return r.index=n,r.value=``,r});if(typeof e==`string`)return je(De(e));if(e instanceof RegExp)return je(Oe(e));throw Error(`not a string, regexp, or parser: `+e)}function Me(e){return ae(e),r(function(t,n){var r=e._(t,n),i=t.slice(n,r.index);return r.status?te(n,`not "`+i+`"`):b(n,null)})}function Ne(e){return ce(e),r(function(t,n){var r=oe(t,n);return n<t.length&&e(r)?b(n+1,r):te(n,`a character/byte matching `+e)})}function Pe(e,t){arguments.length<2&&(t=e,e=void 0);var n=r(function(e,r){return n._=t()._,n._(e,r)});return e?n.desc(e):n}function Fe(){return Ae(`fantasy-land/empty`)}i.parse=function(e){if(typeof e!=`string`&&!y(e))throw Error(`.parse must be called with a string or Buffer as its argument`);var t,n=this.skip(ze)._(e,0);return t=n.status?{status:!0,value:n.value}:{status:!1,index:ie(e,n.furthest),expected:n.expected},delete re[e],t},i.tryParse=function(e){var t=this.parse(e);if(t.status)return t.value;var n=be(e,t),r=Error(n);throw r.type=`ParsimmonError`,r.result=t,r},i.assert=function(e,t){return this.chain(function(n){return e(n)?ke(n):Ae(t)})},i.or=function(e){return we(this,e)},i.trim=function(e){return this.wrap(e,e)},i.wrap=function(e,t){return Ce(e,this,t,function(e,t){return t})},i.thru=function(e){return e(this)},i.then=function(e){return ae(e),Se(this,e).map(function(e){return e[1]})},i.many=function(){var e=this;return r(function(t,n){for(var r=[],i=void 0;;){if(!(i=ne(e._(t,n),i)).status)return ne(b(n,r),i);if(n===i.index)throw Error(`infinite loop detected in .many() parser --- calling .many() on a parser which can accept zero characters is usually the cause`);n=i.index,r.push(i.value)}})},i.tieWith=function(e){return le(e),this.map(function(t){if(function(e){if(!v(e))throw Error(`not an array: `+e)}(t),t.length){le(t[0]);for(var n=t[0],r=1;r<t.length;r++)le(t[r]),n+=e+t[r];return n}return``})},i.tie=function(){return this.tieWith(``)},i.times=function(e,t){var n=this;return arguments.length<2&&(t=e),se(e),se(t),r(function(r,i){for(var a=[],o=void 0,s=void 0,c=0;c<e;c+=1){if(s=ne(o=n._(r,i),s),!o.status)return s;i=o.index,a.push(o.value)}for(;c<t&&(s=ne(o=n._(r,i),s),o.status);c+=1)i=o.index,a.push(o.value);return ne(b(i,a),s)})},i.result=function(e){return this.map(function(){return e})},i.atMost=function(e){return this.times(0,e)},i.atLeast=function(e){return Ce(this.times(e),this.many(),function(e,t){return e.concat(t)})},i.map=function(e){ce(e);var t=this;return r(function(n,r){var i=t._(n,r);return i.status?ne(b(i.index,e(i.value)),i):i})},i.contramap=function(e){ce(e);var t=this;return r(function(n,r){var i=t.parse(e(n.slice(r)));return i.status?b(r+n.length,i.value):i})},i.promap=function(e,t){return ce(e),ce(t),this.contramap(e).map(t)},i.skip=function(e){return Se(this,e).map(function(e){return e[0]})},i.mark=function(){return Ce(Ie,this,Ie,function(e,t,n){return{start:e,value:t,end:n}})},i.node=function(e){return Ce(Ie,this,Ie,function(t,n,r){return{name:e,value:n,start:t,end:r}})},i.sepBy=function(e){return Te(this,e)},i.sepBy1=function(e){return Ee(this,e)},i.lookahead=function(e){return this.skip(je(e))},i.notFollowedBy=function(e){return this.skip(Me(e))},i.desc=function(e){v(e)||(e=[e]);var t=this;return r(function(n,r){var i=t._(n,r);return i.status||(i.expected=e),i})},i.fallback=function(e){return this.or(ke(e))},i.ap=function(e){return Ce(e,this,function(e,t){return e(t)})},i.chain=function(e){var t=this;return r(function(n,r){var i=t._(n,r);return i.status?ne(e(i.value)._(n,i.index),i):i})},i.concat=i.or,i.empty=Fe,i.of=ke,i[`fantasy-land/ap`]=i.ap,i[`fantasy-land/chain`]=i.chain,i[`fantasy-land/concat`]=i.concat,i[`fantasy-land/empty`]=i.empty,i[`fantasy-land/of`]=i.of,i[`fantasy-land/map`]=i.map;var Ie=r(function(e,t){return b(t,ie(e,t))}),Le=r(function(e,t){return t>=e.length?te(t,`any character/byte`):b(t+1,oe(e,t))}),Re=r(function(e,t){return b(e.length,e.slice(t))}),ze=r(function(e,t){return t<e.length?te(t,`EOF`):b(t,null)}),Be=Oe(/[0-9]/).desc(`a digit`),Ve=Oe(/[0-9]*/).desc(`optional digits`),He=Oe(/[a-z]/i).desc(`a letter`),Ue=Oe(/[a-z]*/i).desc(`optional letters`),We=Oe(/\s*/).desc(`optional whitespace`),Ge=Oe(/\s+/).desc(`whitespace`),Ke=De(`\r`),qe=De(`
128
128
  `),Je=De(`\r
129
- `),Ye=we(Je,qe,Ke).desc(`newline`),Xe=we(Ye,ze);r.all=Re,r.alt=we,r.any=Le,r.cr=Ke,r.createLanguage=function(e){var t={};for(var n in e)({}).hasOwnProperty.call(e,n)&&function(n){t[n]=Pe(function(){return e[n](t)})}(n);return t},r.crlf=Je,r.custom=function(e){return r(e(b,te))},r.digit=Be,r.digits=Ve,r.empty=Fe,r.end=Xe,r.eof=ze,r.fail=Ae,r.formatError=be,r.index=Ie,r.isParser=ee,r.lazy=Pe,r.letter=He,r.letters=Ue,r.lf=qe,r.lookahead=je,r.makeFailure=te,r.makeSuccess=b,r.newline=Ye,r.noneOf=function(e){return Ne(function(t){return e.indexOf(t)<0}).desc(`none of '`+e+`'`)},r.notFollowedBy=Me,r.of=ke,r.oneOf=function(e){for(var t=e.split(``),n=0;n<t.length;n++)t[n]=`'`+t[n]+`'`;return Ne(function(t){return e.indexOf(t)>=0}).desc(t)},r.optWhitespace=We,r.Parser=r,r.range=function(e,t){return Ne(function(n){return e<=n&&n<=t}).desc(e+`-`+t)},r.regex=Oe,r.regexp=Oe,r.sepBy=Te,r.sepBy1=Ee,r.seq=Se,r.seqMap=Ce,r.seqObj=function(){for(var e,t={},n=0,i=(e=arguments,Array.prototype.slice.call(e)),a=i.length,o=0;o<a;o+=1){var s=i[o];if(!ee(s)){if(v(s)&&s.length===2&&typeof s[0]==`string`&&ee(s[1])){var c=s[0];if(Object.prototype.hasOwnProperty.call(t,c))throw Error(`seqObj: duplicate key `+c);t[c]=!0,n++;continue}throw Error(`seqObj arguments must be parsers or [string, parser] array pairs.`)}}if(n===0)throw Error(`seqObj expects at least one named parser, found zero`);return r(function(e,t){for(var n,r={},o=0;o<a;o+=1){var s,c;if(v(i[o])?(s=i[o][0],c=i[o][1]):(s=null,c=i[o]),!(n=ne(c._(e,t),n)).status)return n;s&&(r[s]=n.value),t=n.index}return ne(b(t,r),n)})},r.string=De,r.succeed=ke,r.takeWhile=function(e){return ce(e),r(function(t,n){for(var r=n;r<t.length&&e(oe(t,r));)r++;return b(r,t.slice(n,r))})},r.test=Ne,r.whitespace=Ge,r[`fantasy-land/empty`]=Fe,r[`fantasy-land/of`]=ke,r.Binary={bitSeq:d,bitSeqObj:function(e){u();var t={},n=0,r=s(function(e){if(v(e)){var r=e;if(r.length!==2)throw Error(`[`+r.join(`, `)+`] should be length 2, got length `+r.length);if(le(r[0]),se(r[1]),Object.prototype.hasOwnProperty.call(t,r[0]))throw Error(`duplicate key in bitSeqObj: `+r[0]);return t[r[0]]=!0,n++,r}return se(e),[null,e]},e);if(n<1)throw Error(`bitSeqObj expects at least one named pair, got [`+e.join(`, `)+`]`);var i=s(function(e){return e[0]},r);return d(s(function(e){return e[1]},r)).map(function(e){return o(function(e,t){return t[0]!==null&&(e[t[0]]=t[1]),e},{},s(function(t,n){return[t,e[n]]},i))})},byte:function(e){if(u(),se(e),e>255)throw Error(`Value specified to byte constructor (`+e+`=0x`+e.toString(16)+`) is larger in value than a single byte.`);var t=(e>15?`0x`:`0x0`)+e.toString(16);return r(function(n,r){var i=oe(n,r);return i===e?b(r+1,i):te(r,t)})},buffer:function(e){return f(`buffer`,e).map(function(e){return Buffer.from(e)})},encodedString:function(e,t){return f(`string`,t).map(function(t){return t.toString(e)})},uintBE:m,uint8BE:m(1),uint16BE:m(2),uint32BE:m(4),uintLE:h,uint8LE:h(1),uint16LE:h(2),uint32LE:h(4),intBE:g,int8BE:g(1),int16BE:g(2),int32BE:g(4),intLE:_,int8LE:_(1),int16LE:_(2),int32LE:_(4),floatBE:f(`floatBE`,4).map(function(e){return e.readFloatBE(0)}),floatLE:f(`floatLE`,4).map(function(e){return e.readFloatLE(0)}),doubleBE:f(`doubleBE`,8).map(function(e){return e.readDoubleBE(0)}),doubleLE:f(`doubleLE`,8).map(function(e){return e.readDoubleLE(0)})},e.exports=r}])})})),t9,PBe,n9,r9=o((()=>{t9=u(e9(),1),PBe=t9.default.createLanguage({WhiteSpaces:e=>t9.default.alt(e.WhiteSpace,e.InlineComment,e.MulLineComment).many().desc(`whitespaces or comments`),WhiteSpace:()=>t9.default.regexp(/\s/).desc(`whitespaces`),InlineComment:()=>t9.default.seq(t9.default.string(`--`),t9.default.regexp(/[^\n\r]*/)).desc(`comments`),MulLineComment:()=>t9.default.regexp(/\/\*[\s\S]+?\*\//).desc(`comments`)}),n9=PBe.WhiteSpaces}));function i9(e){return IBe.default.string(e).skip(n9).desc(`"${e}"`)}function FBe(e){let t=String(e);t=t.replace(/[\s]+/g,`\\s+`);let n=t.lastIndexOf(`/`);return new RegExp(t.slice(1,n),t.slice(n+1))}function a9(e){let t=e,n=e.source;return t=FBe(e),IBe.default.regexp(t).skip(n9).desc(`"${n}"`)}var IBe,LBe=o((()=>{IBe=u(e9(),1),r9()})),RBe,o9,s9,zBe,BBe,VBe,HBe,UBe,WBe,GBe,KBe,qBe,JBe,YBe,c9,XBe,ZBe,l9,QBe,$Be,eVe,tVe,nVe,rVe,iVe,aVe,oVe,sVe,cVe,lVe,uVe,dVe,fVe,pVe,mVe,hVe,gVe,_Ve,vVe,yVe,bVe,xVe,SVe,CVe,wVe,u9,d9,TVe,EVe,DVe,OVe,kVe,AVe,jVe,MVe,NVe,PVe,FVe,IVe,LVe,RVe,zVe,BVe,VVe,HVe,UVe,WVe,f9,GVe,KVe,qVe,JVe,YVe,XVe,ZVe,QVe,$Ve,eHe,tHe,nHe,rHe,iHe,aHe,oHe,sHe,cHe,lHe,uHe,dHe,fHe,pHe,mHe,hHe,gHe,_He,p9,m9,h9,vHe,yHe,bHe,xHe,g9,_9,SHe,CHe,wHe,THe,EHe,DHe,OHe,kHe,v9=o((()=>{LBe(),RBe=a9(/IDENTITY/i),o9=a9(/INDEX/i),s9=a9(/WITH/i),zBe=a9(/ON/i),a9(/OFF/i),VBe=a9(/FILESTREAM_ON/i),HBe=a9(/PRIMARY KEY/i),UBe=a9(/CLUSTERED/i),WBe=a9(/NONCLUSTERED/i),GBe=a9(/COLUMNSTORE/i),KBe=a9(/REFERENCES/i),qBe=a9(/FOREIGN KEY/i),JBe=a9(/CHECK/i),YBe=a9(/CONSTRAINT/i),c9=a9(/UNIQUE/i),a9(/HASH/i),a9(/BUCKET_COUNT/i),l9=a9(/NOT FOR REPLICATION/),QBe=a9(/ON DELETE/i),$Be=a9(/ON UPDATE/i),eVe=a9(/SET NULL/i),tVe=a9(/SET DEFAULT/i),nVe=a9(/NO ACTION/i),rVe=a9(/CASCADE/i),iVe=a9(/CONTENT/i),aVe=a9(/DOCUMENT/i),oVe=a9(/NULL/i),sVe=a9(/NOT NULL/i),cVe=a9(/DEFAULT/i),lVe=a9(/FILESTREAM/i),uVe=a9(/COLLATE/i),dVe=a9(/SPARSE/i),fVe=a9(/ROWGUIDCOL/i),pVe=a9(/MASKED/i),mVe=a9(/ENCRYPTED/i),a9(/FUNCTION/i),gVe=a9(/GENERATED ALWAYS AS ROW/i),_Ve=a9(/START/i),vVe=a9(/END/i),yVe=a9(/HIDDEN/i),bVe=a9(/ASC/i),xVe=a9(/DESC/i),SVe=a9(/TEXTIMAGE_ON/i),CVe=a9(/PERIOD FOR SYSTEM_TIME/i),wVe=a9(/FILETABLE/i),u9=a9(/TABLE/i),d9=a9(/CREATE/i),TVe=a9(/AS/i),EVe=a9(/PERSISTED/i),DVe=a9(/XML COLUMN_SET FOR ALL_SPARSE_COLUMNS/i),OVe=a9(/INCLUDE/i),kVe=a9(/IN/i),AVe=a9(/WHERE/i),jVe=a9(/FOR/i),MVe=a9(/WITH VALUES/i),NVe=a9(/CONNECTION/i),PVe=a9(/TO/i),FVe=a9(/ALTER/i),IVe=a9(/ADD/i),LVe=a9(/SET/i),RVe=a9(/REBUILD/i),zVe=a9(/SWITCH/i),BVe=a9(/ENABLE/i),VVe=a9(/DISABLE/i),a9(/NOCHECK/i),UVe=a9(/DROP/i),WVe=a9(/ALTER COLUMN/i),f9=a9(/GO/i),GVe=a9(/BULK INSERT/i),KVe=a9(/INSERT/i),qVe=a9(/UPDATE/i),JVe=a9(/MERGE/i),YVe=a9(/TRUNCATE TABLE/i),XVe=a9(/BACKUP/i),ZVe=a9(/RESTORE/i),QVe=a9(/CLOSE/i),$Ve=a9(/DENY/i),eHe=a9(/EXECUTE/i),tHe=a9(/EXEC/i),nHe=a9(/GRANT/i),rHe=a9(/OPEN/i),iHe=a9(/REVOKE/i),aHe=a9(/BEGIN/i),a9(/GET/i),sHe=a9(/MOVE/i),cHe=a9(/RECEIVE/i),lHe=a9(/SEND/i),uHe=a9(/RENAME/i),dHe=a9(/DELETE/i),fHe=a9(/IF/i),pHe=a9(/sp_addextendedproperty/i),mHe=a9(/IN/i),hHe=a9(/AND/i),i9(`<`),i9(`>`),p9=i9(`(`),m9=i9(`,`),h9=i9(`)`),i9(`"`),yHe=i9(`'`),i9(`[`),i9(`]`),g9=i9(`=`),_9=i9(`;`),SHe=a9(/@name/i),CHe=a9(/@value/i),wHe=a9(/@level0type/i),THe=a9(/@level0name/i),EHe=a9(/@level1type/i),DHe=a9(/@level1name/i),OHe=a9(/@level2type/i),kHe=a9(/@level2name/i)}));function y9(){return function(e){return C9.default.seqMap(C9.default.index,e,C9.default.index,(t,n,r)=>n?(typeof n.value!=`object`&&(n.value={value:n.value}),n.value.token={start:t,end:r},n):e).skip(n9)}}function b9(e,t=!1){let n=e.sepBy1(m9);return t&&(n=e.sepBy(m9)),C9.default.seq(p9,n,h9).map(e=>e[1])}function x9(e){return function(t){return t.skip(n9).map(t=>(t!==0&&!t&&(t=``),{type:e,value:t}))}}function S9(e){let t=null;return e.length>1&&(t=e[e.length-2]),{name:Zl(e),schemaName:t}}var C9,w9=o((()=>{C9=u(e9(),1),Fu(),v9(),r9()})),T9,E9,D9,O9,k9,AHe,jHe,MHe,A9,j9,NHe,PHe,FHe,IHe,LHe,RHe,zHe,BHe,VHe,M9,HHe,UHe,WHe,GHe,KHe,N9,qHe,P9=o((()=>{T9=u(e9(),1),w9(),v9(),r9(),E9=(0,T9.default)((e,t)=>{let n=t,r=!1,i=``;for(;n<e.length&&(r||!e.slice(n,n+2).match(/GO|;/i));)for(r&&e[n].match(/\]|'|"/i)&&e[n]===i?r=!1:!r&&e[n].match(/\[|"|'/i)&&(r=!0,i=e[n],e[n]===`[`&&(i=`]`)),e[n].match(/\s/)||(n+=1);n<e.length&&e[n].match(/\s/);)n+=1;return e.slice(n,n+2).match(/GO/i)&&--n,T9.default.makeSuccess(n+1,``)}),D9=T9.default.createLanguage({pIgnore:()=>E9,pColumnNames:e=>b9(T9.default.seq(e.pIdentifier,e.pKeywordAscOrDesc.fallback(null)).map(e=>e[0])).desc(`list of column names`),pDotDelimitedName:e=>T9.default.sepBy1(e.pIdentifier,T9.default.string(`.`)).desc(`dot delimited identifier`),pOptionList:e=>b9(e.pOption),pOption:e=>T9.default.seq(e.pIdentifier,g9,T9.default.seq(T9.default.alt(e.pIdentifier,e.pString).many(),T9.default.alt(e.pOptionList,b9(e.pIdentifier.many())).fallback(null))).desc(`option`),pComparsionOp:()=>T9.default.regex(/IS|IS[^\S\r\n]+NOT|=|<>|!=|>|>=|!>|<|<=|!</i).skip(n9).desc(`comparsion operator`),pConst:e=>T9.default.alt(e.pString,e.pUnicode,e.pBinary,e.pScience,e.pMoney,e.pSigned,e.pNumber).desc(`constant`),pFunction:e=>T9.default.seq(e.pIdentifier,b9(e.pFunctionParam,!0)).map(e=>`${e[0]}(${e[1].join(`,`)})`).thru(x9(`function`)).desc(`function constant`),pFunctionParam:e=>T9.default.alt(e.pNumber,e.pIdentifier).desc(`identifier or number paremeter`),pMoney:e=>T9.default.seq(T9.default.regexp(/[+-]\$/),e.pNumber).thru(x9(`money`)).desc(`money constant`),pSigned:e=>T9.default.seq(T9.default.regexp(/[+-]/),e.pNumber).thru(x9(`signed`)).desc(`signed constant`),pUnicode:e=>T9.default.seq(T9.default.string(`N`),e.pString).thru(x9(`unicode`)).desc(`unicode constant`),pString:()=>T9.default.regexp(/'[^']*'/).thru(x9(`string`)).map(e=>{let t=e.value;return e.value=t.slice(1,t.length-1),e}).desc(`string constant`),pNumberList:e=>b9(e.pNumber).desc(`list of number`),pNumber:()=>T9.default.regexp(/[0-9]+(\.[0-9]+)?/).map(Number).thru(x9(`number`)).desc(`number constant`),pBinary:()=>T9.default.regexp(/0x[A-F0-9]*/).thru(x9(`binary`)).desc(`binary constant`),pScience:()=>T9.default.regexp(/[+-]+[0-9]+(\.[0-9E]+)?/).thru(x9(`science`)).desc(`science constant`),pIdentifier:e=>T9.default.alt(e.pRegularIdentifier,e.pDelimitedIdentifier).skip(n9).desc(`identifier`),pDelimitedIdentifier:e=>T9.default.alt(e.pDQDelimitedIdentifier,e.pBracketDelimitedIdentifier).skip(n9).desc(`delimited identifier`),pRegularIdentifier:()=>T9.default.regexp(/^[\w@#][\w@#$]*/).skip(n9),pDQDelimitedIdentifier:()=>T9.default.seq(T9.default.string(`"`),T9.default.regexp(/[^"]*/),T9.default.string(`"`)).map(e=>e[1]).skip(n9),pBracketDelimitedIdentifier:()=>T9.default.seq(T9.default.string(`[`),T9.default.regexp(/[^\]]*/),T9.default.string(`]`)).map(e=>e[1]).skip(n9),pKeywordPKOrUnique:()=>T9.default.alt(HBe.result({type:`pk`,value:!0}),c9.result({type:`unique`,value:!0})),pKeywordClusteredOrNon:()=>T9.default.alt(UBe,WBe),pKeywordAscOrDesc:()=>T9.default.alt(bVe,xVe)}),O9=D9.pColumnNames,k9=D9.pDotDelimitedName,AHe=D9.pOptionList,jHe=D9.pOption,MHe=D9.pComparsionOp,A9=D9.pConst,j9=D9.pFunction,D9.pFunctionParam,D9.pMoney,D9.pSigned,D9.pUnicode,D9.pString,RHe=D9.pNumberList,D9.pNumber,D9.pBinary,D9.pScience,M9=D9.pIdentifier,D9.pDelimitedIdentifier,D9.pRegularIdentifier,D9.pDQDelimitedIdentifier,D9.pBracketDelimitedIdentifier,KHe=D9.pKeywordPKOrUnique,N9=D9.pKeywordClusteredOrNon,D9.pKeywordAscOrDesc}));function JHe(e,t){let n=t.value.endpoints.find(e=>!e.tableName);n.tableName=e.name,n.schemaName=e.schemaName}function YHe(e,t){t.value.tableName=e.name,t.value.schemaName=e.schemaName}function XHe(e,t,n){if(!n)return null;let r=S9(t);return n.forEach(e=>{if(e)switch(e.type){case`refs`:JHe(r,e);break;case`indexes`:case`dbdefault`:case`enums`:YHe(r,e);break;default:break}}),n}var ZHe=o((()=>{w9()}));function QHe(e){return e.many().map(e=>e.join(``)).fallback(null).thru(x9(`token`))}function $He(e){let t=h9.thru(QHe),n=p9.thru(QHe);return F9.default.seq(n,e,t)}function eUe(e){return F9.default.alt($He(e),e)}var F9,tUe,nUe,rUe=o((()=>{F9=u(e9(),1),P9(),v9(),r9(),w9(),Fu(),tUe=F9.default.createLanguage({ExpressionFinal:e=>e.Expression.map(e=>du(e).map(e=>e?e.value:``).join(``)),Expression:e=>eUe(F9.default.seq(F9.default.alt(e.UnaryExpression,e.SimpleExpression),e.BinaryExpressionLR.fallback(null)).skip(n9)),UnaryExpression:e=>{let t=F9.default.regex(/[+\-~]/).thru(x9(`unary_operator`));return eUe(F9.default.seq(t,e.Expression).skip(n9))},BinaryExpressionLR:e=>{let t=F9.default.regexp(/[+\-*/%=!<>&^|]{1,2}/).map(e=>` ${e} `).thru(x9(`binary_operator`)).skip(n9);return F9.default.seq(t,e.Expression).skip(n9)},SimpleExpression:e=>eUe(F9.default.alt(j9,A9,e.ExpressionDDN).skip(n9)),ExpressionDDN:()=>k9.map(e=>e.join(`.`)).thru(x9(`identifier`))}),nUe=tUe.ExpressionFinal}));function iUe(e,t,n){return{tableName:e.name,schemaName:e.schemaName,fieldNames:t,relation:n}}function aUe(e,t){t.forEach(t=>{t.type.match(/ON[^\S\r\n]DELETE/i)&&(e.onDelete=t.setting),t.type.match(/ON[^\S\r\n]UPDATE/i)&&(e.onUpdate=t.setting)})}function oUe(e,t,n,r){let i={};return i.endpoint=iUe(S9(t),n,`1`),aUe(i,r),{type:`inline_refs`,value:[i]}}function sUe(e){return{type:`endpoint`,value:{fieldNames:e}}}function cUe(e,t,n,r,i,a){let o={},s=S9(r);return i||={type:`endpoint`,value:{fieldNames:null}},t.value.relation=`*`,i.value.relation=`1`,i.value.tableName=s.name,i.value.schemaName=s.schemaName,o.endpoints=[t.value,i.value],aUe(o,a),{type:`refs`,value:o}}function lUe(e,t){return{type:e,setting:t.toLowerCase().trim().split(/[ ]+/).join(` `)}}var uUe=o((()=>{w9()})),I9,dUe,fUe,pUe,mUe=o((()=>{I9=u(e9(),1),v9(),P9(),w9(),uUe(),dUe=I9.default.createLanguage({TableConstraintFK:e=>I9.default.seqMap(qBe.fallback(null),e.TableEndpoint,KBe,k9,e.TableEndpoint.fallback(null),e.FKOptions.fallback(null),cUe),TableEndpoint:()=>I9.default.seqMap(O9,sUe).thru(y9()),ColumnConstraintFK:e=>I9.default.seqMap(e.FKKeywords,k9,b9(M9).fallback(null),e.FKOptions.fallback(null),oUe),FKOptions:e=>I9.default.alt(e.FKOnDelete,e.FKOnUpdate,e.FKNFR).many(),FKKeywords:()=>I9.default.seq(qBe.fallback(null),KBe),FKOnDelete:e=>I9.default.seqMap(QBe,e.FKOnOptions,lUe),FKOnUpdate:e=>I9.default.seqMap($Be,e.FKOnOptions,lUe),FKNFR:()=>l9.map(e=>({type:e})),FKOnOptions:()=>I9.default.alt(nVe,rVe,tVe,eVe)}),fUe=dUe.ColumnConstraintFK,pUe=dUe.TableConstraintFK}));function hUe(e,t,n,r=null){let i=[];return e.forEach(e=>{i.push({value:e,type:`column`})}),{type:`indexes`,value:{name:r,unique:t?!0:null,pk:n?!0:null,columns:i}}}function gUe(e,t){return{type:`indexes`,value:{name:t,columns:[]}}}function _Ue(e,t,n,r,i,a){return hUe(a,n,null,t)}function vUe(e,t,n){let r=null,i=null;return e.type===`pk`?r=!0:e.type===`unique`&&(i=!0),hUe(n,i,r)}var yUe=o((()=>{})),L9,R9,bUe,xUe,SUe,CUe,wUe,z9=o((()=>{L9=u(e9(),1),v9(),P9(),w9(),yUe(),R9=L9.default.createLanguage({TableIndex:e=>L9.default.seqMap(o9,M9,c9.fallback(null),N9.fallback(null),GBe.fallback(null),O9,_Ue).thru(y9()).skip(e.IgnoredIndexOptions),TableConstraintIndex:e=>L9.default.seqMap(KHe,N9.fallback(null),O9,vUe).thru(y9()).skip(e.IgnoredIndexOptions),ColumnConstraintIndex:e=>L9.default.seq(KHe).skip(e.IgnoredIndexOptions).map(e=>e[0]),ColumnIndex:e=>L9.default.seqMap(o9,M9,gUe).thru(y9()).skip(e.IgnoredIndexOptions),IgnoredIndexOptions:e=>L9.default.alt(N9,e.IgnoredIndexOption).many(),IgnoredIndexOption:e=>L9.default.alt(e.WithIndexOption,e.ColumnIndexFilestream,e.OnIndexOption,e.WithFillFactorOption),WithIndexOption:()=>L9.default.seq(s9,AHe),WithFillFactorOption:()=>L9.default.seq(s9,jHe),OnIndexOption:()=>L9.default.seq(zBe,L9.default.alt(M9,j9)),ColumnIndexFilestream:()=>L9.default.seq(VBe,M9)}),bUe=R9.ColumnIndex,xUe=R9.IgnoredIndexOption,SUe=R9.TableIndex,CUe=R9.ColumnConstraintIndex,wUe=R9.TableConstraintIndex}));function TUe(e,t){let n={};if(t.type)switch(t.type){case`string`:case`number`:case`boolean`:n.type=t.type;break;default:n.type=`expression`;break}else n.type=`expression`;return n.value=t.value,{type:`dbdefault`,value:n}}function EUe(e,t,n){let r=[];return n.forEach(e=>{r.push({name:e.value.value,token:e.value.token})}),{type:`enums`,value:{name:`${e}_enum`,values:r,fieldName:e}}}function DUe(e,t){return t?{type:t.type,value:{...t.value,name:t.type===`indexes`&&t.value.pk?null:e}}:null}var OUe=o((()=>{})),B9,V9,kUe,AUe,jUe,MUe,NUe,H9=o((()=>{B9=u(e9(),1),v9(),rUe(),P9(),w9(),mUe(),z9(),OUe(),V9=B9.default.createLanguage({TableConstraint:e=>B9.default.seqMap(e.ConstraintName.fallback(null),e.TableConstraintOption,DUe).thru(y9()),TableConstraintOption:e=>B9.default.alt(pUe,wUe,e.ConstraintCheck),ColumnConstraint:e=>B9.default.seq(e.ConstraintName.fallback(null),e.ColumnConstraintOption).map(e=>e[1]),ColumnConstraintOption:e=>B9.default.alt(CUe,fUe,e.ConstraintCheck,e.ConstraintDefault),ConstraintCheck:e=>B9.default.seq(JBe,l9.fallback(null),e.ConstraintCheckExpr).map(e=>e[2]),ConstraintCheckExpr:e=>B9.default.alt(B9.default.seq(p9.fallback(null),e.ConstraintCheckEnum,h9.fallback(null)).map(e=>e[1]),nUe.thru(x9(`expression`))),ConstraintCheckEnum:()=>B9.default.seqMap(M9,mHe,b9(A9.thru(y9())),EUe).thru(y9()),ConstraintDefault:e=>B9.default.seqMap(cVe,e.ConstExpr,TUe),ConstExpr:e=>B9.default.alt(B9.default.seq(p9,e.ConstExpr,h9).map(e=>e[1]),j9,A9,oVe.thru(x9(`boolean`))),ConstraintName:()=>B9.default.seq(YBe,M9).map(e=>e[1])}),kUe=V9.ColumnConstraint,AUe=V9.TableConstraint,jUe=V9.ConstraintCheck,MUe=V9.ConstraintName,NUe=V9.ConstExpr}));function PUe(e,t,n,r,i){let a={};if(t.type)switch(t.type){case`string`:case`number`:case`boolean`:a.type=t.type;break;default:a.type=`expression`;break}else a.type=`expression`;return a.value=t.value,a.fieldName=r,{type:`dbdefault`,value:a}}var FUe=o((()=>{H9()}));function IUe(e,t){let n=t?t.join(`,`):null;return{type:`type`,value:{type_name:n?`${Zl(e)}(${n})`:Zl(e),schemaName:e.length>1?e[0]:null,args:n}}}function LUe(e,t,n){let r={};return r[t.type]=t.value,n.forEach(e=>{e&&(r[e.type]=e.value)}),r.name=e[0],r.inline_refs||=[],{type:`fields`,value:r}}var RUe=o((()=>{Fu()})),U9,W9,zUe,BUe,VUe,HUe=o((()=>{U9=u(e9(),1),v9(),P9(),w9(),z9(),H9(),rUe(),RUe(),W9=U9.default.createLanguage({ColumnsDefinition:e=>U9.default.alt(e.ComputedColumnDefinition.result(null),e.ColumnSetDefinition.result(null),e.ColumnDefinition),ColumnDefinition:e=>U9.default.seqMap(k9,e.DataType,U9.default.alt(e.ColumnSetting,e.IgnoredColumnSetting.result(null)).many().fallback(null),LUe).thru(y9()),ColumnSetDefinition:()=>U9.default.seq(M9,DVe),ComputedColumnDefinition:()=>U9.default.seq(M9,TVe,nUe,U9.default.seq(EVe,sVe.fallback(null)).fallback(null),kUe.fallback(null)),ColumnSetting:e=>U9.default.alt(e.NullOrNot,e.Identity,bUe,kUe),IgnoredColumnSetting:e=>U9.default.alt(e.ColumnSetting1Word,e.ColumnSettingWith,e.ColumnSettingGAAR,e.ColumnSettingCollate),DataType:e=>U9.default.seqMap(k9,b9(U9.default.alt(e.DataTypeXML,M9)).fallback(null),IUe),DataTypeXML:()=>U9.default.seq(U9.default.alt(aVe,iVe),M9).tieWith(` `),NullOrNot:()=>U9.default.alt(oVe.result(!1),sVe.result(!0)).thru(x9(`not_null`)),Identity:()=>RBe.result(!0).skip(RHe.fallback(null)).thru(x9(`increment`)),ColumnSetting1Word:()=>U9.default.alt(lVe,l9,fVe,dVe),ColumnSettingWith:()=>U9.default.seq(U9.default.alt(pVe,mVe),s9,AHe),ColumnSettingCollate:()=>U9.default.seq(uVe,M9),ColumnSettingGAAR:()=>U9.default.seq(gVe,U9.default.alt(_Ve,vVe),yVe.fallback(null))}),W9.Identity,W9.DataType,VUe=W9.ColumnsDefinition})),G9,UUe,WUe,GUe=o((()=>{G9=u(e9(),1),v9(),P9(),w9(),FUe(),mUe(),z9(),H9(),HUe(),UUe=G9.default.createLanguage({AddAction:e=>G9.default.seq(IVe,e.AddOption.sepBy1(m9)).map(e=>e[1]),AddOption:e=>G9.default.alt(e.AddConstraint,VUe.result(null),e.IgnoredAddSystemTimeOption.result(null)),IgnoredAddSystemTimeOption:()=>G9.default.alt(M9,G9.default.regexp(/[(),]/)).many(),AddConstraint:e=>G9.default.seqMap(MUe.fallback(null),e.AddConstraintOption,DUe).thru(y9()),AddConstraintOption:e=>G9.default.alt(pUe,wUe,jUe,e.AddConstraintDefault,e.IgnoredAddConstraintOption.result(null)),IgnoredAddConstraintOption:e=>G9.default.alt(e.AddConstraintConnection),AddConstraintDefault:()=>G9.default.seqMap(cVe,NUe,jVe,M9,MVe.fallback(null),PUe),AddConstraintConnection:()=>G9.default.seq(NVe,b9(G9.default.seq(M9,PVe,M9)))}),WUe=UUe.AddAction})),K9,KUe,qUe,JUe=o((()=>{K9=u(e9(),1),v9(),P9(),ZHe(),GUe(),KUe=K9.default.createLanguage({AlterTable:e=>K9.default.seqMap(e.AlterTableKeywords,k9,e.AlterTableActions,XHe),AlterTableActions:e=>K9.default.alt(WUe,e.IgnoredAlterTableActions),AlterTableKeywords:()=>K9.default.seq(FVe,u9),IgnoredAlterTableActions:e=>K9.default.seq(e.IgnoredAlterTableActionKeywords,E9).result(null),IgnoredAlterTableActionKeywords:()=>K9.default.alt(s9,WVe,UVe,BVe,VVe,JBe,zVe,LVe,RVe)}),qUe=KUe.AlterTable}));function YUe(e,t,n,r,i,a,o,s){let c=S9(o),l=[];return s.forEach(e=>{l.push({value:e,type:`column`})}),{type:`indexes`,value:{name:i,unique:t?!0:null,tableName:c.name,schemaName:c.schemaName,columns:l}}}var XUe=o((()=>{w9()})),q9,ZUe,QUe,$Ue=o((()=>{q9=u(e9(),1),v9(),P9(),w9(),XUe(),z9(),ZUe=q9.default.createLanguage({CreateIndex:e=>q9.default.seqMap(d9,c9.fallback(null),N9.fallback(null),o9,M9,zBe,k9,O9,YUe).thru(y9()).skip(e.IgnoredCreateIndexOptions),IgnoredCreateIndexOptions:e=>q9.default.alt(xUe,e.IncludeIndexOption,e.WhereIndexOption).many(),IncludeIndexOption:()=>q9.default.seq(OVe,O9),WhereIndexOption:e=>q9.default.seq(AVe,e.FilterPredicate),FilterPredicate:e=>q9.default.seq(e.Conjunct,q9.default.seq(hHe,e.Conjunct).fallback(null)),Conjunct:e=>q9.default.alt(e.Disjunct,e.Comparsion),Disjunct:()=>q9.default.seq(M9,kVe,b9(A9)),Comparsion:()=>q9.default.seq(M9,MHe,A9)}),QUe=ZUe.CreateIndex}));function eWe(e,t,n,r){if(!t||t.length===0)return;let i={},a=t[0];i.onUpdate=a.onUpdate,i.onDelete=a.onDelete,i.endpoints=[],i.endpoints.push({tableName:r.name,schemaName:r.schemaName,fieldNames:[n],relation:`*`}),a.endpoint.fieldNames||(a.endpoint.fieldNames=i.endpoints[0].fieldNames),i.endpoints.push(a.endpoint),e.push(i)}function tWe(e,t,n){if(t.enums){let r=t.enums,i=t.type;r.name=`${n.schemaName?`${n.schemaName}_`:``}${n.name}_${t.enums.name}`,i.type_name=r.name,i.args=r.values.map(e=>`'${e.name}'`).join(`, `),e.push(r),t.enums=null}}function nWe(e,t){t.indexes&&=(t.indexes.columns.push({value:t.name,type:`column`}),e.push(t.indexes),null)}function rWe(e,t){let n={fields:[],enums:[],refs:[],indexes:[]};return e.forEach(e=>{if(e&&n[e.type]){if(e.type===`fields`&&(tWe(n.enums,e.value,t),nWe(n.indexes,e.value),eWe(n.refs,e.value.inline_refs,e.value.name,t)),e.type===`refs`){let n=e.value;n.endpoints[0].tableName=t.name,n.endpoints[0].schemaName=t.schemaName}n[e.type].push(e.value)}}),{type:`lines`,value:n}}function iWe(e,t,n,r){let i=S9(t),a=rWe(r,i);return{type:`tables`,value:{...i,...a.value}}}var aWe=o((()=>{w9()})),J9,oWe,sWe,cWe=o((()=>{J9=u(e9(),1),v9(),P9(),w9(),H9(),z9(),HUe(),aWe(),oWe=J9.default.createLanguage({CreateTable:e=>J9.default.seqMap(e.CreateTableKeywords,k9,e.AsFileTableKeywords.fallback(null),b9(e.Line),iWe).thru(y9()).skip(e.IgnoredTableOptions),CreateTableKeywords:()=>J9.default.seq(d9,u9),AsFileTableKeywords:()=>J9.default.seq(TVe,wVe),Line:e=>J9.default.alt(e.SystemTimeTableOption,AUe,SUe,VUe),SystemTimeTableOption:()=>J9.default.seq(CVe,b9(M9)).result(null),IgnoredTableOptions:e=>J9.default.alt(xUe,e.TextImageTableOption).many(),TextImageTableOption:()=>J9.default.seq(SVe,M9)}),sWe=oWe.CreateTable}));function lWe({note:e,level:t}){let n=`unsupported`,r=null,i=null,a=null;return pWe(t)?(r=t[0].name,i=t[1].name,n=`table`):mWe(t)&&(r=t[0].name,i=t[1].name,a=t[2].name,n=`column`),{type:`comment`,value:{type:n,note:e,schemaName:r,tableName:i,columnName:a}}}var uWe,dWe,fWe,pWe,mWe,hWe=o((()=>{uWe=e=>e.toLowerCase()===`schema`,dWe=e=>e.toLowerCase()===`table`,fWe=e=>e.toLowerCase()===`column`,pWe=e=>e.length===2&&uWe(e[0].type)&&dWe(e[1].type),mWe=e=>e.length===3&&uWe(e[0].type)&&dWe(e[1].type)&&fWe(e[2].type)})),Y9,gWe,_We,vWe=o((()=>{Y9=u(e9(),1),v9(),hWe(),w9(),gWe=Y9.default.createLanguage({StartComment:()=>Y9.default.seq(tHe,pHe),EndComment:()=>Y9.default.seq(_9.atMost(1),f9),StartString:()=>Y9.default.alt(yHe,Y9.default.string(`N'`)),ManyDoubleSingleQuote:()=>Y9.default.string(`''`),NoSingleQuote:()=>Y9.default.regex(/[^']/),StringType:e=>Y9.default.alt(e.NoSingleQuote,e.ManyDoubleSingleQuote).atLeast(1).map(e=>e.join(``)),NVarchar:e=>e.StartString.then(e.StringType).skip(yHe),NameOption:e=>SHe.skip(g9).then(e.NVarchar),ValueOption:e=>CHe.skip(g9).then(e.NVarchar),Level0Type:e=>wHe.skip(g9).then(e.NVarchar),Level0Name:e=>THe.skip(g9).then(e.NVarchar),Level1Type:e=>EHe.skip(g9).then(e.NVarchar),Level1Name:e=>DHe.skip(g9).then(e.NVarchar),Level2Type:e=>OHe.skip(g9).then(e.NVarchar),Level2Name:e=>kHe.skip(g9).then(e.NVarchar),Level0Stmt:e=>Y9.default.seqObj([`type`,e.Level0Type],m9,[`name`,e.Level0Name]),Level1Stmt:e=>Y9.default.seqObj([`type`,e.Level1Type],m9,[`name`,e.Level1Name]),Level2Stmt:e=>Y9.default.seqObj([`type`,e.Level2Type],m9,[`name`,e.Level2Name]),Level0Wrapper:e=>Y9.default.alt(Y9.default.seq(e.Level0Stmt.skip(m9),e.Level1Wrapper),e.Level0Stmt).map(e=>Array.isArray(e)?[e[0],...e[1]]:[e]).atMost(1).map(e=>e.length===1?e[0]:e),Level1Wrapper:e=>Y9.default.alt(Y9.default.seq(e.Level1Stmt.skip(m9),e.Level2Stmt),e.Level1Stmt).map(e=>Array.isArray(e)?e:[e]),CommentSyntax:e=>Y9.default.seqObj(e.StartComment,[`name`,e.NameOption],m9,[`note`,e.ValueOption],m9,[`level`,e.Level0Wrapper],e.EndComment).map(lWe).thru(y9())}),_We=gWe.CommentSyntax})),yWe=o((()=>{JUe(),$Ue(),cWe(),vWe()}));function X9(e,t,n){let r=n||`public`;return e.tables.find(e=>(e.schemaName||`public`)===r&&e.name===t)}function bWe(e,t){return e.fields.find(e=>e.name===t)}function xWe(e,t){X9(t,e.tableName,e.schemaName).indexes.push(e),e.tableName=null}function SWe(e,t){e.forEach(e=>{t.push(e)})}function CWe(e,t){SWe(e.enums,t.enums),SWe(e.refs,t.refs),e.enums.forEach(e=>{e.fieldName=null}),e.enums=null,e.refs=null}function wWe(e,t){let n=bWe(X9(t,e.tableName,e.schemaName),e.fieldName);e.fieldName=null,e.tableName=null,n.dbdefault=e}function TWe(e,t){let n=bWe(X9(t,e.tableName,e.schemaName),e.fieldName);e.name=`${e.tableName}_${e.fieldName}_enum`,e.fieldName=null,e.tableName=null,n.type.type_name=e.name,n.type.args=e.values.map(e=>`'${e.name}'`).join(`, `)}function EWe(e,t){let{schemaName:n}=e;n===`dbo`&&(n=null);let r=X9(t,e.tableName,n);r&&(r.note=e.note?{value:e.note}:null)}function DWe(e,t){let{schemaName:n}=e;n===`dbo`&&(n=null);let r=X9(t,e.tableName,n);if(r){let t=bWe(r,e.columnName);t&&(t.note=e.note?{value:e.note}:null)}}function OWe(e,t){e.type===`table`?EWe(e,t):e.type===`column`&&DWe(e,t)}function kWe(e){let t={tables:[],refs:[],indexes:[],enums:[]};return Qa(e).forEach(e=>{if(e){switch(e.type){case`tables`:CWe(e.value,t);break;case`indexes`:xWe(e.value,t);break;case`dbdefault`:wWe(e.value,t);break;case`enums`:TWe(e.value,t);break;case`comment`:OWe(e.value,t);break;default:break}e.type&&t[e.type]&&t[e.type].push(e.value)}}),t.indexes=null,t}var AWe=o((()=>{Fu()})),Z9,jWe,Q9,MWe=o((()=>{Z9=u(e9(),1),v9(),yWe(),r9(),AWe(),P9(),jWe=Z9.default.createLanguage({Statements:e=>n9.then(e.Seperator).then(Z9.default.sepBy(e.StatementTypes,e.Seperator)).skip(e.Seperator).map(kWe),StatementTypes:e=>Z9.default.alt(QUe,sWe,qUe,_We,e.IgnoredStatementTypes),IgnoredStatementTypes:e=>Z9.default.seq(e.IgnoredStatementSyntax,E9),IgnoredStatementSyntax:e=>Z9.default.alt(e.IgnoredDDLSyntax,e.IgnoredDMLSyntax,e.IgnoredBackupAndRestoreSyntax,e.IgnoredServiceBrokerSyntax,e.IgnoredPermissionSyntax,IVe,QVe,LVe,fHe),IgnoredDDLSyntax:e=>Z9.default.alt(e.KeywordCreateWithoutTable,e.KeywordAlterWithoutTable,uVe,UVe,uHe,BVe,VVe),IgnoredDMLSyntax:()=>Z9.default.alt(GVe,KVe,qVe,JVe,YVe,dHe),IgnoredServiceBrokerSyntax:()=>Z9.default.alt(aHe,vVe,sHe,cHe,lHe),IgnoredPermissionSyntax:()=>Z9.default.alt($Ve,eHe,nHe,rHe,iHe),IgnoredBackupAndRestoreSyntax:()=>Z9.default.alt(XVe,ZVe),KeywordCreateWithoutTable:()=>d9.notFollowedBy(u9),KeywordAlterWithoutTable:()=>FVe.notFollowedBy(u9),Seperator:()=>Z9.default.alt(_9,f9,Z9.default.seq(_9,f9)).many()}),Q9=jWe.Statements})),NWe=c({default:()=>PWe},1),PWe,FWe=o((()=>{MWe(),Q9.parseWithPegError=function(e){try{return Q9.tryParse(e)}catch(t){let n={name:`SyntaxError`};console.error(t),n.location={},n.location.start=t.result.index,n.found=e[n.location.start.offset];let r=t.result.expected.pop();throw n.message=`Expected ${`${t.result.expected.join(`, `)}, or ${r}`} but "${n.found}" found.`,n}},PWe=Q9})),IWe=s(((e,t)=>{t.exports=(FWe(),d(NWe))})),LWe=u(ABe(),1),RWe=u(jBe(),1),zWe=u(MBe(),1),BWe=u(NBe(),1),VWe=u(IWe(),1),HWe=class e{constructor(e){this.DBMLCompiler=e||new fce}static parseJSONToDatabase(e){return new hle(e)}static parseMySQLToJSONv2(e){return Z7(e,`mysql`)}static parseMySQLToJSON(e){return LWe.default.parse(e)}static parsePostgresToJSONv2(e){return Z7(e,`postgres`)}static parsePostgresToJSON(e){return RWe.default.parse(e)}static parseDBMLToJSONv2(e,t){let n=t||new fce;n.setSource(e);let r=n.parse.errors().map(e=>({message:e.diagnostic,location:{start:{line:e.nodeOrToken.startPos.line+1,column:e.nodeOrToken.startPos.column+1},end:{line:e.nodeOrToken.endPos.line+1,column:e.nodeOrToken.endPos.column+1}},code:e.code}));if(r.length>0)throw G7.create(r);return n.parse.rawDb()}static parseDBMLToJSON(e){return zWe.default.parse(e)}static parseSchemaRbToJSON(e){return BWe.default.parse(e)}static parseMSSQLToJSON(e){return VWe.default.parseWithPegError(e)}static parseMSSQLToJSONv2(e){return Z7(e,`mssql`)}static parseSnowflakeToJSON(e){return Z7(e,`snowflake`)}static parseOracleToJSON(e){return Z7(e,`oracle`)}static parse(t,n){return new e().parse(t,n)}parse(t,n){try{let r={};switch(n){case`mysql`:r=e.parseMySQLToJSONv2(t);break;case`mysqlLegacy`:r=e.parseMySQLToJSON(t);break;case`postgres`:r=e.parsePostgresToJSONv2(t);break;case`snowflake`:r=e.parseSnowflakeToJSON(t);break;case`postgresLegacy`:r=e.parsePostgresToJSON(t);break;case`dbml`:r=e.parseDBMLToJSON(t);break;case`dbmlv2`:r=e.parseDBMLToJSONv2(t,this.DBMLCompiler);break;case`schemarb`:r=e.parseSchemaRbToJSON(t);break;case`mssqlLegacy`:r=e.parseMSSQLToJSON(t);break;case`mssql`:r=e.parseMSSQLToJSONv2(t);break;case`oracle`:r=e.parseOracleToJSON(t);break;case`json`:r=typeof t==`object`?t:JSON.parse(t);break;default:break}return e.parseJSONToDatabase(r)}catch(e){throw G7.create(e)}}},$9=HWe,UWe=e=>new hle(e),WWe=e=>e.map(e=>{let{name:t,endpoints:n,onDelete:r,onUpdate:i}=e;return new Nhe({name:t,endpoints:n.map(e=>new YT(e)),onDelete:r,onUpdate:i}).toJSON()}),GWe=e=>e.map(e=>{let{name:t,schemaName:n,values:r}=e;return new XT({name:t,schemaName:n,values:r})}),KWe=(e,t)=>e.map(e=>{let n=t[e.name]||{};return new qT({name:e.name,type:e.type,dbdefault:e.dbdefault,not_null:e.not_null,increment:e.increment,pk:n.pk||e.pk,unique:n.unique||e.unique,note:e.note,checks:n.checks})}),qWe=e=>e.map(e=>{let{name:t,unique:n,pk:r,type:i,columns:a}=e;return new KT({name:t,unique:n,pk:r,type:i,columns:a})}),JWe=(e,t,n,r,i)=>e.map(e=>{let{name:a,schemaName:o,note:s}=e,c=o?`${o}.${a}`:`${a}`,l=i[c]||{};return new JT({name:a,schemaName:o,fields:KWe(t[c],l),indexes:qWe(n[c]||[]),note:s,checks:r[c]})}),YWe=e=>{let{tables:t,fields:n,indexes:r,refs:i,enums:a,tableConstraints:o,checks:s}=e;try{let e=JWe(t,n,r,s,o),c=GWe(a);return UWe({schemas:[],tables:e,refs:WWe(i),enums:c,tableGroups:[],aliases:[],project:{}})}catch(e){throw Error(e)}};function XWe(e,t){let n=new $9().parse(e,t);return th.export(n.normalize(),`dbml`)}function ZWe(e){let t=YWe(e);return th.export(t.normalize(),`dbml`)}var QWe={import:XWe,generateDbml:ZWe};function $We(e,t){let n=new $9().parse(e,`dbmlv2`);return th.export(n.normalize(),t)}var eGe={export:$We};function tGe(e,t,n){let r=new fce;return r.setSource(n),r.renameTable(e,t)}const nGe=`6.2.0`,rGe=`6.2.0`;exports.CompilerError=G7,exports.ModelExporter=th,exports.Parser=$9,exports.VERSION=`6.2.0`,exports.exporter=eGe,exports.importer=QWe,exports.renameTable=tGe;
129
+ `),Ye=we(Je,qe,Ke).desc(`newline`),Xe=we(Ye,ze);r.all=Re,r.alt=we,r.any=Le,r.cr=Ke,r.createLanguage=function(e){var t={};for(var n in e)({}).hasOwnProperty.call(e,n)&&function(n){t[n]=Pe(function(){return e[n](t)})}(n);return t},r.crlf=Je,r.custom=function(e){return r(e(b,te))},r.digit=Be,r.digits=Ve,r.empty=Fe,r.end=Xe,r.eof=ze,r.fail=Ae,r.formatError=be,r.index=Ie,r.isParser=ee,r.lazy=Pe,r.letter=He,r.letters=Ue,r.lf=qe,r.lookahead=je,r.makeFailure=te,r.makeSuccess=b,r.newline=Ye,r.noneOf=function(e){return Ne(function(t){return e.indexOf(t)<0}).desc(`none of '`+e+`'`)},r.notFollowedBy=Me,r.of=ke,r.oneOf=function(e){for(var t=e.split(``),n=0;n<t.length;n++)t[n]=`'`+t[n]+`'`;return Ne(function(t){return e.indexOf(t)>=0}).desc(t)},r.optWhitespace=We,r.Parser=r,r.range=function(e,t){return Ne(function(n){return e<=n&&n<=t}).desc(e+`-`+t)},r.regex=Oe,r.regexp=Oe,r.sepBy=Te,r.sepBy1=Ee,r.seq=Se,r.seqMap=Ce,r.seqObj=function(){for(var e,t={},n=0,i=(e=arguments,Array.prototype.slice.call(e)),a=i.length,o=0;o<a;o+=1){var s=i[o];if(!ee(s)){if(v(s)&&s.length===2&&typeof s[0]==`string`&&ee(s[1])){var c=s[0];if(Object.prototype.hasOwnProperty.call(t,c))throw Error(`seqObj: duplicate key `+c);t[c]=!0,n++;continue}throw Error(`seqObj arguments must be parsers or [string, parser] array pairs.`)}}if(n===0)throw Error(`seqObj expects at least one named parser, found zero`);return r(function(e,t){for(var n,r={},o=0;o<a;o+=1){var s,c;if(v(i[o])?(s=i[o][0],c=i[o][1]):(s=null,c=i[o]),!(n=ne(c._(e,t),n)).status)return n;s&&(r[s]=n.value),t=n.index}return ne(b(t,r),n)})},r.string=De,r.succeed=ke,r.takeWhile=function(e){return ce(e),r(function(t,n){for(var r=n;r<t.length&&e(oe(t,r));)r++;return b(r,t.slice(n,r))})},r.test=Ne,r.whitespace=Ge,r[`fantasy-land/empty`]=Fe,r[`fantasy-land/of`]=ke,r.Binary={bitSeq:d,bitSeqObj:function(e){u();var t={},n=0,r=s(function(e){if(v(e)){var r=e;if(r.length!==2)throw Error(`[`+r.join(`, `)+`] should be length 2, got length `+r.length);if(le(r[0]),se(r[1]),Object.prototype.hasOwnProperty.call(t,r[0]))throw Error(`duplicate key in bitSeqObj: `+r[0]);return t[r[0]]=!0,n++,r}return se(e),[null,e]},e);if(n<1)throw Error(`bitSeqObj expects at least one named pair, got [`+e.join(`, `)+`]`);var i=s(function(e){return e[0]},r);return d(s(function(e){return e[1]},r)).map(function(e){return o(function(e,t){return t[0]!==null&&(e[t[0]]=t[1]),e},{},s(function(t,n){return[t,e[n]]},i))})},byte:function(e){if(u(),se(e),e>255)throw Error(`Value specified to byte constructor (`+e+`=0x`+e.toString(16)+`) is larger in value than a single byte.`);var t=(e>15?`0x`:`0x0`)+e.toString(16);return r(function(n,r){var i=oe(n,r);return i===e?b(r+1,i):te(r,t)})},buffer:function(e){return f(`buffer`,e).map(function(e){return Buffer.from(e)})},encodedString:function(e,t){return f(`string`,t).map(function(t){return t.toString(e)})},uintBE:m,uint8BE:m(1),uint16BE:m(2),uint32BE:m(4),uintLE:h,uint8LE:h(1),uint16LE:h(2),uint32LE:h(4),intBE:g,int8BE:g(1),int16BE:g(2),int32BE:g(4),intLE:_,int8LE:_(1),int16LE:_(2),int32LE:_(4),floatBE:f(`floatBE`,4).map(function(e){return e.readFloatBE(0)}),floatLE:f(`floatLE`,4).map(function(e){return e.readFloatLE(0)}),doubleBE:f(`doubleBE`,8).map(function(e){return e.readDoubleBE(0)}),doubleLE:f(`doubleLE`,8).map(function(e){return e.readDoubleLE(0)})},e.exports=r}])})})),t9,PBe,n9,r9=o((()=>{t9=u(e9(),1),PBe=t9.default.createLanguage({WhiteSpaces:e=>t9.default.alt(e.WhiteSpace,e.InlineComment,e.MulLineComment).many().desc(`whitespaces or comments`),WhiteSpace:()=>t9.default.regexp(/\s/).desc(`whitespaces`),InlineComment:()=>t9.default.seq(t9.default.string(`--`),t9.default.regexp(/[^\n\r]*/)).desc(`comments`),MulLineComment:()=>t9.default.regexp(/\/\*[\s\S]+?\*\//).desc(`comments`)}),n9=PBe.WhiteSpaces}));function i9(e){return IBe.default.string(e).skip(n9).desc(`"${e}"`)}function FBe(e){let t=String(e);t=t.replace(/[\s]+/g,`\\s+`);let n=t.lastIndexOf(`/`);return new RegExp(t.slice(1,n),t.slice(n+1))}function a9(e){let t=e,n=e.source;return t=FBe(e),IBe.default.regexp(t).skip(n9).desc(`"${n}"`)}var IBe,LBe=o((()=>{IBe=u(e9(),1),r9()})),RBe,o9,s9,zBe,BBe,VBe,HBe,UBe,WBe,GBe,KBe,qBe,JBe,YBe,c9,XBe,ZBe,l9,QBe,$Be,eVe,tVe,nVe,rVe,iVe,aVe,oVe,sVe,cVe,lVe,uVe,dVe,fVe,pVe,mVe,hVe,gVe,_Ve,vVe,yVe,bVe,xVe,SVe,CVe,wVe,u9,d9,TVe,EVe,DVe,OVe,kVe,AVe,jVe,MVe,NVe,PVe,FVe,IVe,LVe,RVe,zVe,BVe,VVe,HVe,UVe,WVe,f9,GVe,KVe,qVe,JVe,YVe,XVe,ZVe,QVe,$Ve,eHe,tHe,nHe,rHe,iHe,aHe,oHe,sHe,cHe,lHe,uHe,dHe,fHe,pHe,mHe,hHe,gHe,_He,p9,m9,h9,vHe,yHe,bHe,xHe,g9,_9,SHe,CHe,wHe,THe,EHe,DHe,OHe,kHe,v9=o((()=>{LBe(),RBe=a9(/IDENTITY/i),o9=a9(/INDEX/i),s9=a9(/WITH/i),zBe=a9(/ON/i),a9(/OFF/i),VBe=a9(/FILESTREAM_ON/i),HBe=a9(/PRIMARY KEY/i),UBe=a9(/CLUSTERED/i),WBe=a9(/NONCLUSTERED/i),GBe=a9(/COLUMNSTORE/i),KBe=a9(/REFERENCES/i),qBe=a9(/FOREIGN KEY/i),JBe=a9(/CHECK/i),YBe=a9(/CONSTRAINT/i),c9=a9(/UNIQUE/i),a9(/HASH/i),a9(/BUCKET_COUNT/i),l9=a9(/NOT FOR REPLICATION/),QBe=a9(/ON DELETE/i),$Be=a9(/ON UPDATE/i),eVe=a9(/SET NULL/i),tVe=a9(/SET DEFAULT/i),nVe=a9(/NO ACTION/i),rVe=a9(/CASCADE/i),iVe=a9(/CONTENT/i),aVe=a9(/DOCUMENT/i),oVe=a9(/NULL/i),sVe=a9(/NOT NULL/i),cVe=a9(/DEFAULT/i),lVe=a9(/FILESTREAM/i),uVe=a9(/COLLATE/i),dVe=a9(/SPARSE/i),fVe=a9(/ROWGUIDCOL/i),pVe=a9(/MASKED/i),mVe=a9(/ENCRYPTED/i),a9(/FUNCTION/i),gVe=a9(/GENERATED ALWAYS AS ROW/i),_Ve=a9(/START/i),vVe=a9(/END/i),yVe=a9(/HIDDEN/i),bVe=a9(/ASC/i),xVe=a9(/DESC/i),SVe=a9(/TEXTIMAGE_ON/i),CVe=a9(/PERIOD FOR SYSTEM_TIME/i),wVe=a9(/FILETABLE/i),u9=a9(/TABLE/i),d9=a9(/CREATE/i),TVe=a9(/AS/i),EVe=a9(/PERSISTED/i),DVe=a9(/XML COLUMN_SET FOR ALL_SPARSE_COLUMNS/i),OVe=a9(/INCLUDE/i),kVe=a9(/IN/i),AVe=a9(/WHERE/i),jVe=a9(/FOR/i),MVe=a9(/WITH VALUES/i),NVe=a9(/CONNECTION/i),PVe=a9(/TO/i),FVe=a9(/ALTER/i),IVe=a9(/ADD/i),LVe=a9(/SET/i),RVe=a9(/REBUILD/i),zVe=a9(/SWITCH/i),BVe=a9(/ENABLE/i),VVe=a9(/DISABLE/i),a9(/NOCHECK/i),UVe=a9(/DROP/i),WVe=a9(/ALTER COLUMN/i),f9=a9(/GO/i),GVe=a9(/BULK INSERT/i),KVe=a9(/INSERT/i),qVe=a9(/UPDATE/i),JVe=a9(/MERGE/i),YVe=a9(/TRUNCATE TABLE/i),XVe=a9(/BACKUP/i),ZVe=a9(/RESTORE/i),QVe=a9(/CLOSE/i),$Ve=a9(/DENY/i),eHe=a9(/EXECUTE/i),tHe=a9(/EXEC/i),nHe=a9(/GRANT/i),rHe=a9(/OPEN/i),iHe=a9(/REVOKE/i),aHe=a9(/BEGIN/i),a9(/GET/i),sHe=a9(/MOVE/i),cHe=a9(/RECEIVE/i),lHe=a9(/SEND/i),uHe=a9(/RENAME/i),dHe=a9(/DELETE/i),fHe=a9(/IF/i),pHe=a9(/sp_addextendedproperty/i),mHe=a9(/IN/i),hHe=a9(/AND/i),i9(`<`),i9(`>`),p9=i9(`(`),m9=i9(`,`),h9=i9(`)`),i9(`"`),yHe=i9(`'`),i9(`[`),i9(`]`),g9=i9(`=`),_9=i9(`;`),SHe=a9(/@name/i),CHe=a9(/@value/i),wHe=a9(/@level0type/i),THe=a9(/@level0name/i),EHe=a9(/@level1type/i),DHe=a9(/@level1name/i),OHe=a9(/@level2type/i),kHe=a9(/@level2name/i)}));function y9(){return function(e){return C9.default.seqMap(C9.default.index,e,C9.default.index,(t,n,r)=>n?(typeof n.value!=`object`&&(n.value={value:n.value}),n.value.token={start:t,end:r},n):e).skip(n9)}}function b9(e,t=!1){let n=e.sepBy1(m9);return t&&(n=e.sepBy(m9)),C9.default.seq(p9,n,h9).map(e=>e[1])}function x9(e){return function(t){return t.skip(n9).map(t=>(t!==0&&!t&&(t=``),{type:e,value:t}))}}function S9(e){let t=null;return e.length>1&&(t=e[e.length-2]),{name:Zl(e),schemaName:t}}var C9,w9=o((()=>{C9=u(e9(),1),Fu(),v9(),r9()})),T9,E9,D9,O9,k9,AHe,jHe,MHe,A9,j9,NHe,PHe,FHe,IHe,LHe,RHe,zHe,BHe,VHe,M9,HHe,UHe,WHe,GHe,KHe,N9,qHe,P9=o((()=>{T9=u(e9(),1),w9(),v9(),r9(),E9=(0,T9.default)((e,t)=>{let n=t,r=!1,i=``;for(;n<e.length&&(r||!e.slice(n,n+2).match(/GO|;/i));)for(r&&e[n].match(/\]|'|"/i)&&e[n]===i?r=!1:!r&&e[n].match(/\[|"|'/i)&&(r=!0,i=e[n],e[n]===`[`&&(i=`]`)),e[n].match(/\s/)||(n+=1);n<e.length&&e[n].match(/\s/);)n+=1;return e.slice(n,n+2).match(/GO/i)&&--n,T9.default.makeSuccess(n+1,``)}),D9=T9.default.createLanguage({pIgnore:()=>E9,pColumnNames:e=>b9(T9.default.seq(e.pIdentifier,e.pKeywordAscOrDesc.fallback(null)).map(e=>e[0])).desc(`list of column names`),pDotDelimitedName:e=>T9.default.sepBy1(e.pIdentifier,T9.default.string(`.`)).desc(`dot delimited identifier`),pOptionList:e=>b9(e.pOption),pOption:e=>T9.default.seq(e.pIdentifier,g9,T9.default.seq(T9.default.alt(e.pIdentifier,e.pString).many(),T9.default.alt(e.pOptionList,b9(e.pIdentifier.many())).fallback(null))).desc(`option`),pComparsionOp:()=>T9.default.regex(/IS|IS[^\S\r\n]+NOT|=|<>|!=|>|>=|!>|<|<=|!</i).skip(n9).desc(`comparsion operator`),pConst:e=>T9.default.alt(e.pString,e.pUnicode,e.pBinary,e.pScience,e.pMoney,e.pSigned,e.pNumber).desc(`constant`),pFunction:e=>T9.default.seq(e.pIdentifier,b9(e.pFunctionParam,!0)).map(e=>`${e[0]}(${e[1].join(`,`)})`).thru(x9(`function`)).desc(`function constant`),pFunctionParam:e=>T9.default.alt(e.pNumber,e.pIdentifier).desc(`identifier or number paremeter`),pMoney:e=>T9.default.seq(T9.default.regexp(/[+-]\$/),e.pNumber).thru(x9(`money`)).desc(`money constant`),pSigned:e=>T9.default.seq(T9.default.regexp(/[+-]/),e.pNumber).thru(x9(`signed`)).desc(`signed constant`),pUnicode:e=>T9.default.seq(T9.default.string(`N`),e.pString).thru(x9(`unicode`)).desc(`unicode constant`),pString:()=>T9.default.regexp(/'[^']*'/).thru(x9(`string`)).map(e=>{let t=e.value;return e.value=t.slice(1,t.length-1),e}).desc(`string constant`),pNumberList:e=>b9(e.pNumber).desc(`list of number`),pNumber:()=>T9.default.regexp(/[0-9]+(\.[0-9]+)?/).map(Number).thru(x9(`number`)).desc(`number constant`),pBinary:()=>T9.default.regexp(/0x[A-F0-9]*/).thru(x9(`binary`)).desc(`binary constant`),pScience:()=>T9.default.regexp(/[+-]+[0-9]+(\.[0-9E]+)?/).thru(x9(`science`)).desc(`science constant`),pIdentifier:e=>T9.default.alt(e.pRegularIdentifier,e.pDelimitedIdentifier).skip(n9).desc(`identifier`),pDelimitedIdentifier:e=>T9.default.alt(e.pDQDelimitedIdentifier,e.pBracketDelimitedIdentifier).skip(n9).desc(`delimited identifier`),pRegularIdentifier:()=>T9.default.regexp(/^[\w@#][\w@#$]*/).skip(n9),pDQDelimitedIdentifier:()=>T9.default.seq(T9.default.string(`"`),T9.default.regexp(/[^"]*/),T9.default.string(`"`)).map(e=>e[1]).skip(n9),pBracketDelimitedIdentifier:()=>T9.default.seq(T9.default.string(`[`),T9.default.regexp(/[^\]]*/),T9.default.string(`]`)).map(e=>e[1]).skip(n9),pKeywordPKOrUnique:()=>T9.default.alt(HBe.result({type:`pk`,value:!0}),c9.result({type:`unique`,value:!0})),pKeywordClusteredOrNon:()=>T9.default.alt(UBe,WBe),pKeywordAscOrDesc:()=>T9.default.alt(bVe,xVe)}),O9=D9.pColumnNames,k9=D9.pDotDelimitedName,AHe=D9.pOptionList,jHe=D9.pOption,MHe=D9.pComparsionOp,A9=D9.pConst,j9=D9.pFunction,D9.pFunctionParam,D9.pMoney,D9.pSigned,D9.pUnicode,D9.pString,RHe=D9.pNumberList,D9.pNumber,D9.pBinary,D9.pScience,M9=D9.pIdentifier,D9.pDelimitedIdentifier,D9.pRegularIdentifier,D9.pDQDelimitedIdentifier,D9.pBracketDelimitedIdentifier,KHe=D9.pKeywordPKOrUnique,N9=D9.pKeywordClusteredOrNon,D9.pKeywordAscOrDesc}));function JHe(e,t){let n=t.value.endpoints.find(e=>!e.tableName);n.tableName=e.name,n.schemaName=e.schemaName}function YHe(e,t){t.value.tableName=e.name,t.value.schemaName=e.schemaName}function XHe(e,t,n){if(!n)return null;let r=S9(t);return n.forEach(e=>{if(e)switch(e.type){case`refs`:JHe(r,e);break;case`indexes`:case`dbdefault`:case`enums`:YHe(r,e);break;default:break}}),n}var ZHe=o((()=>{w9()}));function QHe(e){return e.many().map(e=>e.join(``)).fallback(null).thru(x9(`token`))}function $He(e){let t=h9.thru(QHe),n=p9.thru(QHe);return F9.default.seq(n,e,t)}function eUe(e){return F9.default.alt($He(e),e)}var F9,tUe,nUe,rUe=o((()=>{F9=u(e9(),1),P9(),v9(),r9(),w9(),Fu(),tUe=F9.default.createLanguage({ExpressionFinal:e=>e.Expression.map(e=>du(e).map(e=>e?e.value:``).join(``)),Expression:e=>eUe(F9.default.seq(F9.default.alt(e.UnaryExpression,e.SimpleExpression),e.BinaryExpressionLR.fallback(null)).skip(n9)),UnaryExpression:e=>{let t=F9.default.regex(/[+\-~]/).thru(x9(`unary_operator`));return eUe(F9.default.seq(t,e.Expression).skip(n9))},BinaryExpressionLR:e=>{let t=F9.default.regexp(/[+\-*/%=!<>&^|]{1,2}/).map(e=>` ${e} `).thru(x9(`binary_operator`)).skip(n9);return F9.default.seq(t,e.Expression).skip(n9)},SimpleExpression:e=>eUe(F9.default.alt(j9,A9,e.ExpressionDDN).skip(n9)),ExpressionDDN:()=>k9.map(e=>e.join(`.`)).thru(x9(`identifier`))}),nUe=tUe.ExpressionFinal}));function iUe(e,t,n){return{tableName:e.name,schemaName:e.schemaName,fieldNames:t,relation:n}}function aUe(e,t){t.forEach(t=>{t.type.match(/ON[^\S\r\n]DELETE/i)&&(e.onDelete=t.setting),t.type.match(/ON[^\S\r\n]UPDATE/i)&&(e.onUpdate=t.setting)})}function oUe(e,t,n,r){let i={};return i.endpoint=iUe(S9(t),n,`1`),aUe(i,r),{type:`inline_refs`,value:[i]}}function sUe(e){return{type:`endpoint`,value:{fieldNames:e}}}function cUe(e,t,n,r,i,a){let o={},s=S9(r);return i||={type:`endpoint`,value:{fieldNames:null}},t.value.relation=`*`,i.value.relation=`1`,i.value.tableName=s.name,i.value.schemaName=s.schemaName,o.endpoints=[t.value,i.value],aUe(o,a),{type:`refs`,value:o}}function lUe(e,t){return{type:e,setting:t.toLowerCase().trim().split(/[ ]+/).join(` `)}}var uUe=o((()=>{w9()})),I9,dUe,fUe,pUe,mUe=o((()=>{I9=u(e9(),1),v9(),P9(),w9(),uUe(),dUe=I9.default.createLanguage({TableConstraintFK:e=>I9.default.seqMap(qBe.fallback(null),e.TableEndpoint,KBe,k9,e.TableEndpoint.fallback(null),e.FKOptions.fallback(null),cUe),TableEndpoint:()=>I9.default.seqMap(O9,sUe).thru(y9()),ColumnConstraintFK:e=>I9.default.seqMap(e.FKKeywords,k9,b9(M9).fallback(null),e.FKOptions.fallback(null),oUe),FKOptions:e=>I9.default.alt(e.FKOnDelete,e.FKOnUpdate,e.FKNFR).many(),FKKeywords:()=>I9.default.seq(qBe.fallback(null),KBe),FKOnDelete:e=>I9.default.seqMap(QBe,e.FKOnOptions,lUe),FKOnUpdate:e=>I9.default.seqMap($Be,e.FKOnOptions,lUe),FKNFR:()=>l9.map(e=>({type:e})),FKOnOptions:()=>I9.default.alt(nVe,rVe,tVe,eVe)}),fUe=dUe.ColumnConstraintFK,pUe=dUe.TableConstraintFK}));function hUe(e,t,n,r=null){let i=[];return e.forEach(e=>{i.push({value:e,type:`column`})}),{type:`indexes`,value:{name:r,unique:t?!0:null,pk:n?!0:null,columns:i}}}function gUe(e,t){return{type:`indexes`,value:{name:t,columns:[]}}}function _Ue(e,t,n,r,i,a){return hUe(a,n,null,t)}function vUe(e,t,n){let r=null,i=null;return e.type===`pk`?r=!0:e.type===`unique`&&(i=!0),hUe(n,i,r)}var yUe=o((()=>{})),L9,R9,bUe,xUe,SUe,CUe,wUe,z9=o((()=>{L9=u(e9(),1),v9(),P9(),w9(),yUe(),R9=L9.default.createLanguage({TableIndex:e=>L9.default.seqMap(o9,M9,c9.fallback(null),N9.fallback(null),GBe.fallback(null),O9,_Ue).thru(y9()).skip(e.IgnoredIndexOptions),TableConstraintIndex:e=>L9.default.seqMap(KHe,N9.fallback(null),O9,vUe).thru(y9()).skip(e.IgnoredIndexOptions),ColumnConstraintIndex:e=>L9.default.seq(KHe).skip(e.IgnoredIndexOptions).map(e=>e[0]),ColumnIndex:e=>L9.default.seqMap(o9,M9,gUe).thru(y9()).skip(e.IgnoredIndexOptions),IgnoredIndexOptions:e=>L9.default.alt(N9,e.IgnoredIndexOption).many(),IgnoredIndexOption:e=>L9.default.alt(e.WithIndexOption,e.ColumnIndexFilestream,e.OnIndexOption,e.WithFillFactorOption),WithIndexOption:()=>L9.default.seq(s9,AHe),WithFillFactorOption:()=>L9.default.seq(s9,jHe),OnIndexOption:()=>L9.default.seq(zBe,L9.default.alt(M9,j9)),ColumnIndexFilestream:()=>L9.default.seq(VBe,M9)}),bUe=R9.ColumnIndex,xUe=R9.IgnoredIndexOption,SUe=R9.TableIndex,CUe=R9.ColumnConstraintIndex,wUe=R9.TableConstraintIndex}));function TUe(e,t){let n={};if(t.type)switch(t.type){case`string`:case`number`:case`boolean`:n.type=t.type;break;default:n.type=`expression`;break}else n.type=`expression`;return n.value=t.value,{type:`dbdefault`,value:n}}function EUe(e,t,n){let r=[];return n.forEach(e=>{r.push({name:e.value.value,token:e.value.token})}),{type:`enums`,value:{name:`${e}_enum`,values:r,fieldName:e}}}function DUe(e,t){return t?{type:t.type,value:{...t.value,name:t.type===`indexes`&&t.value.pk?null:e}}:null}var OUe=o((()=>{})),B9,V9,kUe,AUe,jUe,MUe,NUe,H9=o((()=>{B9=u(e9(),1),v9(),rUe(),P9(),w9(),mUe(),z9(),OUe(),V9=B9.default.createLanguage({TableConstraint:e=>B9.default.seqMap(e.ConstraintName.fallback(null),e.TableConstraintOption,DUe).thru(y9()),TableConstraintOption:e=>B9.default.alt(pUe,wUe,e.ConstraintCheck),ColumnConstraint:e=>B9.default.seq(e.ConstraintName.fallback(null),e.ColumnConstraintOption).map(e=>e[1]),ColumnConstraintOption:e=>B9.default.alt(CUe,fUe,e.ConstraintCheck,e.ConstraintDefault),ConstraintCheck:e=>B9.default.seq(JBe,l9.fallback(null),e.ConstraintCheckExpr).map(e=>e[2]),ConstraintCheckExpr:e=>B9.default.alt(B9.default.seq(p9.fallback(null),e.ConstraintCheckEnum,h9.fallback(null)).map(e=>e[1]),nUe.thru(x9(`expression`))),ConstraintCheckEnum:()=>B9.default.seqMap(M9,mHe,b9(A9.thru(y9())),EUe).thru(y9()),ConstraintDefault:e=>B9.default.seqMap(cVe,e.ConstExpr,TUe),ConstExpr:e=>B9.default.alt(B9.default.seq(p9,e.ConstExpr,h9).map(e=>e[1]),j9,A9,oVe.thru(x9(`boolean`))),ConstraintName:()=>B9.default.seq(YBe,M9).map(e=>e[1])}),kUe=V9.ColumnConstraint,AUe=V9.TableConstraint,jUe=V9.ConstraintCheck,MUe=V9.ConstraintName,NUe=V9.ConstExpr}));function PUe(e,t,n,r,i){let a={};if(t.type)switch(t.type){case`string`:case`number`:case`boolean`:a.type=t.type;break;default:a.type=`expression`;break}else a.type=`expression`;return a.value=t.value,a.fieldName=r,{type:`dbdefault`,value:a}}var FUe=o((()=>{H9()}));function IUe(e,t){let n=t?t.join(`,`):null;return{type:`type`,value:{type_name:n?`${Zl(e)}(${n})`:Zl(e),schemaName:e.length>1?e[0]:null,args:n}}}function LUe(e,t,n){let r={};return r[t.type]=t.value,n.forEach(e=>{e&&(r[e.type]=e.value)}),r.name=e[0],r.inline_refs||=[],{type:`fields`,value:r}}var RUe=o((()=>{Fu()})),U9,W9,zUe,BUe,VUe,HUe=o((()=>{U9=u(e9(),1),v9(),P9(),w9(),z9(),H9(),rUe(),RUe(),W9=U9.default.createLanguage({ColumnsDefinition:e=>U9.default.alt(e.ComputedColumnDefinition.result(null),e.ColumnSetDefinition.result(null),e.ColumnDefinition),ColumnDefinition:e=>U9.default.seqMap(k9,e.DataType,U9.default.alt(e.ColumnSetting,e.IgnoredColumnSetting.result(null)).many().fallback(null),LUe).thru(y9()),ColumnSetDefinition:()=>U9.default.seq(M9,DVe),ComputedColumnDefinition:()=>U9.default.seq(M9,TVe,nUe,U9.default.seq(EVe,sVe.fallback(null)).fallback(null),kUe.fallback(null)),ColumnSetting:e=>U9.default.alt(e.NullOrNot,e.Identity,bUe,kUe),IgnoredColumnSetting:e=>U9.default.alt(e.ColumnSetting1Word,e.ColumnSettingWith,e.ColumnSettingGAAR,e.ColumnSettingCollate),DataType:e=>U9.default.seqMap(k9,b9(U9.default.alt(e.DataTypeXML,M9)).fallback(null),IUe),DataTypeXML:()=>U9.default.seq(U9.default.alt(aVe,iVe),M9).tieWith(` `),NullOrNot:()=>U9.default.alt(oVe.result(!1),sVe.result(!0)).thru(x9(`not_null`)),Identity:()=>RBe.result(!0).skip(RHe.fallback(null)).thru(x9(`increment`)),ColumnSetting1Word:()=>U9.default.alt(lVe,l9,fVe,dVe),ColumnSettingWith:()=>U9.default.seq(U9.default.alt(pVe,mVe),s9,AHe),ColumnSettingCollate:()=>U9.default.seq(uVe,M9),ColumnSettingGAAR:()=>U9.default.seq(gVe,U9.default.alt(_Ve,vVe),yVe.fallback(null))}),W9.Identity,W9.DataType,VUe=W9.ColumnsDefinition})),G9,UUe,WUe,GUe=o((()=>{G9=u(e9(),1),v9(),P9(),w9(),FUe(),mUe(),z9(),H9(),HUe(),UUe=G9.default.createLanguage({AddAction:e=>G9.default.seq(IVe,e.AddOption.sepBy1(m9)).map(e=>e[1]),AddOption:e=>G9.default.alt(e.AddConstraint,VUe.result(null),e.IgnoredAddSystemTimeOption.result(null)),IgnoredAddSystemTimeOption:()=>G9.default.alt(M9,G9.default.regexp(/[(),]/)).many(),AddConstraint:e=>G9.default.seqMap(MUe.fallback(null),e.AddConstraintOption,DUe).thru(y9()),AddConstraintOption:e=>G9.default.alt(pUe,wUe,jUe,e.AddConstraintDefault,e.IgnoredAddConstraintOption.result(null)),IgnoredAddConstraintOption:e=>G9.default.alt(e.AddConstraintConnection),AddConstraintDefault:()=>G9.default.seqMap(cVe,NUe,jVe,M9,MVe.fallback(null),PUe),AddConstraintConnection:()=>G9.default.seq(NVe,b9(G9.default.seq(M9,PVe,M9)))}),WUe=UUe.AddAction})),K9,KUe,qUe,JUe=o((()=>{K9=u(e9(),1),v9(),P9(),ZHe(),GUe(),KUe=K9.default.createLanguage({AlterTable:e=>K9.default.seqMap(e.AlterTableKeywords,k9,e.AlterTableActions,XHe),AlterTableActions:e=>K9.default.alt(WUe,e.IgnoredAlterTableActions),AlterTableKeywords:()=>K9.default.seq(FVe,u9),IgnoredAlterTableActions:e=>K9.default.seq(e.IgnoredAlterTableActionKeywords,E9).result(null),IgnoredAlterTableActionKeywords:()=>K9.default.alt(s9,WVe,UVe,BVe,VVe,JBe,zVe,LVe,RVe)}),qUe=KUe.AlterTable}));function YUe(e,t,n,r,i,a,o,s){let c=S9(o),l=[];return s.forEach(e=>{l.push({value:e,type:`column`})}),{type:`indexes`,value:{name:i,unique:t?!0:null,tableName:c.name,schemaName:c.schemaName,columns:l}}}var XUe=o((()=>{w9()})),q9,ZUe,QUe,$Ue=o((()=>{q9=u(e9(),1),v9(),P9(),w9(),XUe(),z9(),ZUe=q9.default.createLanguage({CreateIndex:e=>q9.default.seqMap(d9,c9.fallback(null),N9.fallback(null),o9,M9,zBe,k9,O9,YUe).thru(y9()).skip(e.IgnoredCreateIndexOptions),IgnoredCreateIndexOptions:e=>q9.default.alt(xUe,e.IncludeIndexOption,e.WhereIndexOption).many(),IncludeIndexOption:()=>q9.default.seq(OVe,O9),WhereIndexOption:e=>q9.default.seq(AVe,e.FilterPredicate),FilterPredicate:e=>q9.default.seq(e.Conjunct,q9.default.seq(hHe,e.Conjunct).fallback(null)),Conjunct:e=>q9.default.alt(e.Disjunct,e.Comparsion),Disjunct:()=>q9.default.seq(M9,kVe,b9(A9)),Comparsion:()=>q9.default.seq(M9,MHe,A9)}),QUe=ZUe.CreateIndex}));function eWe(e,t,n,r){if(!t||t.length===0)return;let i={},a=t[0];i.onUpdate=a.onUpdate,i.onDelete=a.onDelete,i.endpoints=[],i.endpoints.push({tableName:r.name,schemaName:r.schemaName,fieldNames:[n],relation:`*`}),a.endpoint.fieldNames||(a.endpoint.fieldNames=i.endpoints[0].fieldNames),i.endpoints.push(a.endpoint),e.push(i)}function tWe(e,t,n){if(t.enums){let r=t.enums,i=t.type;r.name=`${n.schemaName?`${n.schemaName}_`:``}${n.name}_${t.enums.name}`,i.type_name=r.name,i.args=r.values.map(e=>`'${e.name}'`).join(`, `),e.push(r),t.enums=null}}function nWe(e,t){t.indexes&&=(t.indexes.columns.push({value:t.name,type:`column`}),e.push(t.indexes),null)}function rWe(e,t){let n={fields:[],enums:[],refs:[],indexes:[]};return e.forEach(e=>{if(e&&n[e.type]){if(e.type===`fields`&&(tWe(n.enums,e.value,t),nWe(n.indexes,e.value),eWe(n.refs,e.value.inline_refs,e.value.name,t)),e.type===`refs`){let n=e.value;n.endpoints[0].tableName=t.name,n.endpoints[0].schemaName=t.schemaName}n[e.type].push(e.value)}}),{type:`lines`,value:n}}function iWe(e,t,n,r){let i=S9(t),a=rWe(r,i);return{type:`tables`,value:{...i,...a.value}}}var aWe=o((()=>{w9()})),J9,oWe,sWe,cWe=o((()=>{J9=u(e9(),1),v9(),P9(),w9(),H9(),z9(),HUe(),aWe(),oWe=J9.default.createLanguage({CreateTable:e=>J9.default.seqMap(e.CreateTableKeywords,k9,e.AsFileTableKeywords.fallback(null),b9(e.Line),iWe).thru(y9()).skip(e.IgnoredTableOptions),CreateTableKeywords:()=>J9.default.seq(d9,u9),AsFileTableKeywords:()=>J9.default.seq(TVe,wVe),Line:e=>J9.default.alt(e.SystemTimeTableOption,AUe,SUe,VUe),SystemTimeTableOption:()=>J9.default.seq(CVe,b9(M9)).result(null),IgnoredTableOptions:e=>J9.default.alt(xUe,e.TextImageTableOption).many(),TextImageTableOption:()=>J9.default.seq(SVe,M9)}),sWe=oWe.CreateTable}));function lWe({note:e,level:t}){let n=`unsupported`,r=null,i=null,a=null;return pWe(t)?(r=t[0].name,i=t[1].name,n=`table`):mWe(t)&&(r=t[0].name,i=t[1].name,a=t[2].name,n=`column`),{type:`comment`,value:{type:n,note:e,schemaName:r,tableName:i,columnName:a}}}var uWe,dWe,fWe,pWe,mWe,hWe=o((()=>{uWe=e=>e.toLowerCase()===`schema`,dWe=e=>e.toLowerCase()===`table`,fWe=e=>e.toLowerCase()===`column`,pWe=e=>e.length===2&&uWe(e[0].type)&&dWe(e[1].type),mWe=e=>e.length===3&&uWe(e[0].type)&&dWe(e[1].type)&&fWe(e[2].type)})),Y9,gWe,_We,vWe=o((()=>{Y9=u(e9(),1),v9(),hWe(),w9(),gWe=Y9.default.createLanguage({StartComment:()=>Y9.default.seq(tHe,pHe),EndComment:()=>Y9.default.seq(_9.atMost(1),f9),StartString:()=>Y9.default.alt(yHe,Y9.default.string(`N'`)),ManyDoubleSingleQuote:()=>Y9.default.string(`''`),NoSingleQuote:()=>Y9.default.regex(/[^']/),StringType:e=>Y9.default.alt(e.NoSingleQuote,e.ManyDoubleSingleQuote).atLeast(1).map(e=>e.join(``)),NVarchar:e=>e.StartString.then(e.StringType).skip(yHe),NameOption:e=>SHe.skip(g9).then(e.NVarchar),ValueOption:e=>CHe.skip(g9).then(e.NVarchar),Level0Type:e=>wHe.skip(g9).then(e.NVarchar),Level0Name:e=>THe.skip(g9).then(e.NVarchar),Level1Type:e=>EHe.skip(g9).then(e.NVarchar),Level1Name:e=>DHe.skip(g9).then(e.NVarchar),Level2Type:e=>OHe.skip(g9).then(e.NVarchar),Level2Name:e=>kHe.skip(g9).then(e.NVarchar),Level0Stmt:e=>Y9.default.seqObj([`type`,e.Level0Type],m9,[`name`,e.Level0Name]),Level1Stmt:e=>Y9.default.seqObj([`type`,e.Level1Type],m9,[`name`,e.Level1Name]),Level2Stmt:e=>Y9.default.seqObj([`type`,e.Level2Type],m9,[`name`,e.Level2Name]),Level0Wrapper:e=>Y9.default.alt(Y9.default.seq(e.Level0Stmt.skip(m9),e.Level1Wrapper),e.Level0Stmt).map(e=>Array.isArray(e)?[e[0],...e[1]]:[e]).atMost(1).map(e=>e.length===1?e[0]:e),Level1Wrapper:e=>Y9.default.alt(Y9.default.seq(e.Level1Stmt.skip(m9),e.Level2Stmt),e.Level1Stmt).map(e=>Array.isArray(e)?e:[e]),CommentSyntax:e=>Y9.default.seqObj(e.StartComment,[`name`,e.NameOption],m9,[`note`,e.ValueOption],m9,[`level`,e.Level0Wrapper],e.EndComment).map(lWe).thru(y9())}),_We=gWe.CommentSyntax})),yWe=o((()=>{JUe(),$Ue(),cWe(),vWe()}));function X9(e,t,n){let r=n||`public`;return e.tables.find(e=>(e.schemaName||`public`)===r&&e.name===t)}function bWe(e,t){return e.fields.find(e=>e.name===t)}function xWe(e,t){X9(t,e.tableName,e.schemaName).indexes.push(e),e.tableName=null}function SWe(e,t){e.forEach(e=>{t.push(e)})}function CWe(e,t){SWe(e.enums,t.enums),SWe(e.refs,t.refs),e.enums.forEach(e=>{e.fieldName=null}),e.enums=null,e.refs=null}function wWe(e,t){let n=bWe(X9(t,e.tableName,e.schemaName),e.fieldName);e.fieldName=null,e.tableName=null,n.dbdefault=e}function TWe(e,t){let n=bWe(X9(t,e.tableName,e.schemaName),e.fieldName);e.name=`${e.tableName}_${e.fieldName}_enum`,e.fieldName=null,e.tableName=null,n.type.type_name=e.name,n.type.args=e.values.map(e=>`'${e.name}'`).join(`, `)}function EWe(e,t){let{schemaName:n}=e;n===`dbo`&&(n=null);let r=X9(t,e.tableName,n);r&&(r.note=e.note?{value:e.note}:null)}function DWe(e,t){let{schemaName:n}=e;n===`dbo`&&(n=null);let r=X9(t,e.tableName,n);if(r){let t=bWe(r,e.columnName);t&&(t.note=e.note?{value:e.note}:null)}}function OWe(e,t){e.type===`table`?EWe(e,t):e.type===`column`&&DWe(e,t)}function kWe(e){let t={tables:[],refs:[],indexes:[],enums:[]};return Qa(e).forEach(e=>{if(e){switch(e.type){case`tables`:CWe(e.value,t);break;case`indexes`:xWe(e.value,t);break;case`dbdefault`:wWe(e.value,t);break;case`enums`:TWe(e.value,t);break;case`comment`:OWe(e.value,t);break;default:break}e.type&&t[e.type]&&t[e.type].push(e.value)}}),t.indexes=null,t}var AWe=o((()=>{Fu()})),Z9,jWe,Q9,MWe=o((()=>{Z9=u(e9(),1),v9(),yWe(),r9(),AWe(),P9(),jWe=Z9.default.createLanguage({Statements:e=>n9.then(e.Seperator).then(Z9.default.sepBy(e.StatementTypes,e.Seperator)).skip(e.Seperator).map(kWe),StatementTypes:e=>Z9.default.alt(QUe,sWe,qUe,_We,e.IgnoredStatementTypes),IgnoredStatementTypes:e=>Z9.default.seq(e.IgnoredStatementSyntax,E9),IgnoredStatementSyntax:e=>Z9.default.alt(e.IgnoredDDLSyntax,e.IgnoredDMLSyntax,e.IgnoredBackupAndRestoreSyntax,e.IgnoredServiceBrokerSyntax,e.IgnoredPermissionSyntax,IVe,QVe,LVe,fHe),IgnoredDDLSyntax:e=>Z9.default.alt(e.KeywordCreateWithoutTable,e.KeywordAlterWithoutTable,uVe,UVe,uHe,BVe,VVe),IgnoredDMLSyntax:()=>Z9.default.alt(GVe,KVe,qVe,JVe,YVe,dHe),IgnoredServiceBrokerSyntax:()=>Z9.default.alt(aHe,vVe,sHe,cHe,lHe),IgnoredPermissionSyntax:()=>Z9.default.alt($Ve,eHe,nHe,rHe,iHe),IgnoredBackupAndRestoreSyntax:()=>Z9.default.alt(XVe,ZVe),KeywordCreateWithoutTable:()=>d9.notFollowedBy(u9),KeywordAlterWithoutTable:()=>FVe.notFollowedBy(u9),Seperator:()=>Z9.default.alt(_9,f9,Z9.default.seq(_9,f9)).many()}),Q9=jWe.Statements})),NWe=c({default:()=>PWe},1),PWe,FWe=o((()=>{MWe(),Q9.parseWithPegError=function(e){try{return Q9.tryParse(e)}catch(t){let n={name:`SyntaxError`};console.error(t),n.location={},n.location.start=t.result.index,n.found=e[n.location.start.offset];let r=t.result.expected.pop();throw n.message=`Expected ${`${t.result.expected.join(`, `)}, or ${r}`} but "${n.found}" found.`,n}},PWe=Q9})),IWe=s(((e,t)=>{t.exports=(FWe(),d(NWe))})),LWe=u(ABe(),1),RWe=u(jBe(),1),zWe=u(MBe(),1),BWe=u(NBe(),1),VWe=u(IWe(),1),HWe=class e{constructor(e){this.DBMLCompiler=e||new fce}static parseJSONToDatabase(e){return new hle(e)}static parseMySQLToJSONv2(e){return Z7(e,`mysql`)}static parseMySQLToJSON(e){return LWe.default.parse(e)}static parsePostgresToJSONv2(e){return Z7(e,`postgres`)}static parsePostgresToJSON(e){return RWe.default.parse(e)}static parseDBMLToJSONv2(e,t){let n=t||new fce;n.setSource(e);let r=n.parse.errors().map(e=>({message:e.diagnostic,location:{start:{line:e.nodeOrToken.startPos.line+1,column:e.nodeOrToken.startPos.column+1},end:{line:e.nodeOrToken.endPos.line+1,column:e.nodeOrToken.endPos.column+1}},code:e.code}));if(r.length>0)throw G7.create(r);return n.parse.rawDb()}static parseDBMLToJSON(e){return zWe.default.parse(e)}static parseSchemaRbToJSON(e){return BWe.default.parse(e)}static parseMSSQLToJSON(e){return VWe.default.parseWithPegError(e)}static parseMSSQLToJSONv2(e){return Z7(e,`mssql`)}static parseSnowflakeToJSON(e){return Z7(e,`snowflake`)}static parseOracleToJSON(e){return Z7(e,`oracle`)}static parse(t,n){return new e().parse(t,n)}parse(t,n){try{let r={};switch(n){case`mysql`:r=e.parseMySQLToJSONv2(t);break;case`mysqlLegacy`:r=e.parseMySQLToJSON(t);break;case`postgres`:r=e.parsePostgresToJSONv2(t);break;case`snowflake`:r=e.parseSnowflakeToJSON(t);break;case`postgresLegacy`:r=e.parsePostgresToJSON(t);break;case`dbml`:r=e.parseDBMLToJSON(t);break;case`dbmlv2`:r=e.parseDBMLToJSONv2(t,this.DBMLCompiler);break;case`schemarb`:r=e.parseSchemaRbToJSON(t);break;case`mssqlLegacy`:r=e.parseMSSQLToJSON(t);break;case`mssql`:r=e.parseMSSQLToJSONv2(t);break;case`oracle`:r=e.parseOracleToJSON(t);break;case`json`:r=typeof t==`object`?t:JSON.parse(t);break;default:break}return e.parseJSONToDatabase(r)}catch(e){throw G7.create(e)}}},$9=HWe,UWe=e=>new hle(e),WWe=e=>e.map(e=>{let{name:t,endpoints:n,onDelete:r,onUpdate:i}=e;return new Nhe({name:t,endpoints:n.map(e=>new YT(e)),onDelete:r,onUpdate:i}).toJSON()}),GWe=e=>e.map(e=>{let{name:t,schemaName:n,values:r}=e;return new XT({name:t,schemaName:n,values:r})}),KWe=(e,t)=>e.map(e=>{let n=t[e.name]||{};return new qT({name:e.name,type:e.type,dbdefault:e.dbdefault,not_null:e.not_null,increment:e.increment,pk:n.pk||e.pk,unique:n.unique||e.unique,note:e.note,checks:n.checks})}),qWe=e=>e.map(e=>{let{name:t,unique:n,pk:r,type:i,columns:a}=e;return new KT({name:t,unique:n,pk:r,type:i,columns:a})}),JWe=(e,t,n,r,i)=>e.map(e=>{let{name:a,schemaName:o,note:s}=e,c=o?`${o}.${a}`:`${a}`,l=i[c]||{};return new JT({name:a,schemaName:o,fields:KWe(t[c],l),indexes:qWe(n[c]||[]),note:s,checks:r[c]})}),YWe=e=>{let{tables:t,fields:n,indexes:r,refs:i,enums:a,tableConstraints:o,checks:s}=e;try{let e=JWe(t,n,r,s,o),c=GWe(a);return UWe({schemas:[],tables:e,refs:WWe(i),enums:c,tableGroups:[],aliases:[],project:{}})}catch(e){throw Error(e)}};function XWe(e,t){let n=new $9().parse(e,t);return th.export(n.normalize(),`dbml`)}function ZWe(e){let t=YWe(e);return th.export(t.normalize(),`dbml`)}var QWe={import:XWe,generateDbml:ZWe};function $We(e,t){let n=new $9().parse(e,`dbmlv2`);return th.export(n.normalize(),t)}var eGe={export:$We};function tGe(e,t,n){let r=new fce;return r.setSource(n),r.renameTable(e,t)}const nGe=`6.2.1`,rGe=`6.2.1`;exports.CompilerError=G7,exports.ModelExporter=th,exports.Parser=$9,exports.VERSION=`6.2.1`,exports.exporter=eGe,exports.importer=QWe,exports.renameTable=tGe;
package/lib/index.js CHANGED
@@ -1812537,5 +1812537,5 @@ function renameTable(_, HY, P) {
1812537
1812537
  let UY = new Compiler();
1812538
1812538
  return UY.setSource(P), UY.renameTable(_, HY);
1812539
1812539
  }
1812540
- const VERSION = "6.2.0";
1812540
+ const VERSION = "6.2.1";
1812541
1812541
  export { CompilerError, ModelExporter_default as ModelExporter, Parser_default as Parser, VERSION, export_default as exporter, import_default as importer, renameTable };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://json.schemastore.org/package",
3
3
  "name": "@dbml/core",
4
- "version": "6.2.0",
4
+ "version": "6.2.1",
5
5
  "description": "> TODO: description",
6
6
  "author": "Holistics <dev@holistics.io>",
7
7
  "license": "Apache-2.0",
@@ -48,7 +48,7 @@
48
48
  "lint:fix": "eslint --fix ."
49
49
  },
50
50
  "dependencies": {
51
- "@dbml/parse": "^6.2.0",
51
+ "@dbml/parse": "^6.2.1",
52
52
  "antlr4": "^4.13.1",
53
53
  "lodash": "^4.17.15",
54
54
  "lodash-es": "^4.17.15",
@@ -58,7 +58,7 @@
58
58
  "devDependencies": {
59
59
  "bluebird": "^3.5.5"
60
60
  },
61
- "gitHead": "10e5ddf632432ea6a1636504fd33a8c53f6108ed",
61
+ "gitHead": "403ffd5a0d15bbf0f2b22db2c507659ce3f8fe35",
62
62
  "engines": {
63
63
  "node": ">=16"
64
64
  }
package/types/index.d.ts CHANGED
@@ -6,40 +6,4 @@ import { renameTable } from './transform';
6
6
  export { renameTable, importer, exporter, ModelExporter, Parser };
7
7
  export { CompilerDiagnostic, CompilerError as CompilerDiagnostics, EditorPosition, ErrorCode, WarningLevel, } from './parse/error';
8
8
 
9
- // Export normalized types
10
- export type {
11
- NormalizedDatabase,
12
- NormalizedDatabaseIdMap,
13
- NormalizedModel,
14
- NormalizedSchema,
15
- NormalizedSchemaIdMap,
16
- NormalizedTable,
17
- NormalizedTableIdMap,
18
- NormalizedField,
19
- NormalizedFieldIdMap,
20
- NormalizedIndex,
21
- NormalizedIndexIdMap,
22
- NormalizedIndexColumn,
23
- NormalizedIndexColumnIdMap,
24
- NormalizedEnum,
25
- NormalizedEnumIdMap,
26
- NormalizedEnumValue,
27
- NormalizedEnumValueIdMap,
28
- NormalizedRef,
29
- NormalizedRefIdMap,
30
- NormalizedEndpoint,
31
- NormalizedEndpointIdMap,
32
- NormalizedTableGroup,
33
- NormalizedTableGroupIdMap,
34
- NormalizedNote,
35
- NormalizedNoteIdMap,
36
- NormalizedCheck,
37
- NormalizedCheckIdMap,
38
- NormalizedTablePartial,
39
- NormalizedTablePartialIdMap,
40
- Project,
41
- RawDatabase,
42
- TableRecord,
43
- NormalizedRecords,
44
- RawSchema,
45
- } from './model_structure';
9
+ export * from './model_structure';
@@ -33,8 +33,10 @@ export interface TableRecord extends RawTableRecord {
33
33
  id: number;
34
34
  }
35
35
 
36
- export interface NormalizedRecords {
37
- [_id: number]: TableRecord;
36
+ export type NormalizedRecord = TableRecord;
37
+
38
+ export interface NormalizedRecordIdMap {
39
+ [_id: number]: NormalizedRecord;
38
40
  }
39
41
 
40
42
  export interface RawDatabase {
@@ -307,5 +309,6 @@ export interface NormalizedModel {
307
309
  notes: NormalizedNoteIdMap;
308
310
  checks: NormalizedCheckIdMap;
309
311
  tablePartials: NormalizedTablePartialIdMap;
312
+ records: NormalizedRecordIdMap;
310
313
  }
311
314
  export default Database;
@@ -1,8 +1,17 @@
1
- import Element from './element';
1
+ import Element, { Token } from './element';
2
2
  import Field from './field';
3
3
  import Ref from './ref';
4
4
  import DbState from './dbState';
5
5
  import { NormalizedModel } from './database';
6
+
7
+ export interface RawEndpoint {
8
+ schemaName: string | null;
9
+ tableName: string;
10
+ fieldNames: string[];
11
+ relation: '1' | '*';
12
+ token: Token;
13
+ }
14
+
6
15
  declare class Endpoint extends Element {
7
16
  relation: any;
8
17
  schemaName: string;
@@ -14,7 +14,10 @@ interface RawField {
14
14
  token: Token;
15
15
  not_null: boolean;
16
16
  note: RawNote;
17
- dbdefault: any;
17
+ dbdefault?: {
18
+ type: 'number' | 'string' | 'boolean' | 'expression';
19
+ value: number | string;
20
+ };
18
21
  increment: boolean;
19
22
  checks?: any[];
20
23
  table: Table;
@@ -14,78 +14,17 @@ export { default as StickyNote } from './stickyNote';
14
14
  export { default as Check } from './check';
15
15
  export { default as TablePartial } from './tablePartial';
16
16
 
17
- // Export normalized individual types
18
- export type {
19
- NormalizedDatabase,
20
- NormalizedDatabaseIdMap,
21
- NormalizedModel,
22
- } from './database';
23
-
24
- export type {
25
- NormalizedSchema,
26
- NormalizedSchemaIdMap,
27
- } from './schema';
28
-
29
- export type {
30
- NormalizedTable,
31
- NormalizedTableIdMap,
32
- } from './table';
33
-
34
- export type {
35
- NormalizedField,
36
- NormalizedFieldIdMap,
37
- } from './field';
38
-
39
- export type {
40
- NormalizedIndex,
41
- NormalizedIndexIdMap,
42
- } from './indexes';
43
-
44
- export type {
45
- NormalizedIndexColumn,
46
- NormalizedIndexColumnIdMap,
47
- } from './indexColumn';
48
-
49
- export type {
50
- NormalizedEnum,
51
- NormalizedEnumIdMap,
52
- } from './enum';
53
-
54
- export type {
55
- NormalizedEnumValue,
56
- NormalizedEnumValueIdMap,
57
- } from './enumValue';
58
-
59
- export type {
60
- NormalizedRef,
61
- NormalizedRefIdMap,
62
- } from './ref';
63
-
64
- export type {
65
- NormalizedEndpoint,
66
- NormalizedEndpointIdMap,
67
- } from './endpoint';
68
-
69
- export type {
70
- NormalizedTableGroup,
71
- NormalizedTableGroupIdMap,
72
- } from './tableGroup';
73
-
74
- export type {
75
- NormalizedNote,
76
- NormalizedNoteIdMap,
77
- } from './stickyNote';
78
-
79
- export type {
80
- NormalizedTablePartial,
81
- NormalizedTablePartialIdMap,
82
- } from './tablePartial';
83
-
84
- export type {
85
- NormalizedCheck,
86
- NormalizedCheckIdMap,
87
- } from './check';
88
-
89
- // Export other types
90
- export type { Project, RawDatabase, TableRecord, NormalizedRecords } from './database';
91
- export type { RawSchema } from './schema';
17
+ export * from './database';
18
+ export * from './schema';
19
+ export * from './table';
20
+ export * from './field';
21
+ export * from './indexes';
22
+ export * from './indexColumn';
23
+ export * from './enum';
24
+ export * from './enumValue';
25
+ export * from './ref';
26
+ export * from './endpoint';
27
+ export * from './tableGroup';
28
+ export * from './stickyNote';
29
+ export * from './tablePartial';
30
+ export * from './check';
@@ -2,13 +2,15 @@ import Element, { Token } from './element';
2
2
  import Database from './database';
3
3
  import DbState from './dbState';
4
4
  import { NormalizedModel } from './database';
5
- interface RawStickyNote {
5
+
6
+ export interface RawStickyNote {
6
7
  name: string;
7
8
  content: string;
8
9
  database: Database;
9
10
  token: Token;
10
11
  headerColor: string;
11
12
  }
13
+
12
14
  declare class StickyNote extends Element {
13
15
  name: string;
14
16
  content: string;