@dbml/core 7.0.1-alpha.0 → 7.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/LICENSE CHANGED
File without changes
package/README.md CHANGED
File without changes
package/lib/index.cjs CHANGED
@@ -145,4 +145,4 @@ function print() { __p += __j.call(arguments, '') }
145
145
  `,!1),mt=`
146
146
  `,ht=Ot(`
147
147
  `,!1),gt=jt(`whitespace`),_t=/^[ \t\r\n\r]/,vt=kt([` `,` `,`\r`,`
148
- `,`\r`],!1,!1),yt=` `,bt=Ot(` `,!1),x=0,xt=0,St=[{line:1,column:1}],Ct=0,wt=[],Tt=0,Et;if(`startRule`in t){if(!(t.startRule in i))throw Error(`Can't start parsing from rule "`+t.startRule+`".`);a=i[t.startRule]}function Dt(e,t){throw t=t===void 0?Nt(xt,x):t,Ft(e,t)}function Ot(e,t){return{type:`literal`,text:e,ignoreCase:t}}function kt(e,t,n){return{type:`class`,parts:e,inverted:t,ignoreCase:n}}function At(){return{type:`end`}}function jt(e){return{type:`other`,description:e}}function Mt(t){var n=St[t],r;if(n)return n;for(r=t-1;!St[r];)r--;for(n=St[r],n={line:n.line,column:n.column};r<t;)e.charCodeAt(r)===10?(n.line++,n.column=1):n.column++,r++;return St[t]=n,n}function Nt(e,t){var n=Mt(e),r=Mt(t);return{start:{offset:e,line:n.line,column:n.column},end:{offset:t,line:r.line,column:r.column}}}function Pt(e){x<Ct||(x>Ct&&(Ct=x,wt=[]),wt.push(e))}function Ft(e,t){return new r(e,null,null,t)}function It(e,t,n){return new r(r.buildMessage(e,t),e,t,n)}function Lt(){for(var e=x,t=[],r=Rt();r!==n;)t.push(r),r=Rt();return t!==n&&(xt=e,t=o()),e=t,e}function Rt(){for(var e=x,t=[],r=On();r!==n;)t.push(r),r=On();return t===n?(x=e,e=n):(r=zt(),r===n?(x=e,e=n):(t=[t,r],e=t)),e===n&&(e=yn(),e===n&&(e=vn(),e===n&&(e=wn()))),e}function zt(){var e=x,t=Ut();return t!==n&&(xt=e,t=s(t)),e=t,e===n&&(e=x,t=Vt(),t!==n&&(xt=e,t=c(t)),e=t,e===n&&(e=Bt(),e===n&&(e=un()))),e}function Bt(){for(var t=x,r=[],i=kn(),a,o,s,c,f,p,m;i!==n;)r.push(i),i=kn();if(r!==n)if(i=an(),i!==n){for(a=[],o=kn();o!==n;)a.push(o),o=kn();if(a!==n)if(o=mn(),o===n&&(o=dn()),o!==n)if(e.charCodeAt(x)===44?(s=l,x++):(s=n,Tt===0&&Pt(u)),s!==n){for(c=[],f=kn();f!==n;)c.push(f),f=kn();if(c!==n)if(f=dn(),f!==n){for(p=[],m=Qt();m!==n;)p.push(m),m=Qt();p===n?(x=t,t=n):(xt=t,r=d(o,f,p),t=r)}else x=t,t=n;else x=t,t=n}else x=t,t=n;else x=t,t=n;else x=t,t=n}else x=t,t=n;else x=t,t=n;return t}function Vt(){for(var t=x,r=[],i=kn(),a,o,s,c,d,p,m;i!==n;)r.push(i),i=kn();if(r!==n)if(i=on(),i!==n){for(a=[],o=kn();o!==n;)a.push(o),o=kn();if(a!==n)if(o=dn(),o!==n)if(e.charCodeAt(x)===44?(s=l,x++):(s=n,Tt===0&&Pt(u)),s!==n){for(c=[],d=kn();d!==n;)c.push(d),d=kn();if(c!==n)if(d=dn(),d!==n){for(p=[],m=Ht();m!==n;)p.push(m),m=Ht();p===n?(x=t,t=n):(xt=t,r=f(o,d,p),t=r)}else x=t,t=n;else x=t,t=n}else x=t,t=n;else x=t,t=n;else x=t,t=n}else x=t,t=n;else x=t,t=n;return t}function Ht(){var t=x,r,i,a,o,s,c;if(e.charCodeAt(x)===44?(r=l,x++):(r=n,Tt===0&&Pt(u)),r!==n){for(i=[],a=kn();a!==n;)i.push(a),a=kn();if(i!==n)if(a=sn(),a!==n)if(e.charCodeAt(x)===58?(o=p,x++):(o=n,Tt===0&&Pt(m)),o!==n){for(s=[],c=kn();c!==n;)s.push(c),c=kn();s===n?(x=t,t=n):(c=dn(),c===n?(x=t,t=n):(xt=t,r=h(c),t=r))}else x=t,t=n;else x=t,t=n;else x=t,t=n}else x=t,t=n;if(t===n){if(t=x,e.charCodeAt(x)===44?(r=l,x++):(r=n,Tt===0&&Pt(u)),r!==n){for(i=[],a=kn();a!==n;)i.push(a),a=kn();if(i!==n)if(a=cn(),a!==n)if(e.charCodeAt(x)===58?(o=p,x++):(o=n,Tt===0&&Pt(m)),o!==n){for(s=[],c=kn();c!==n;)s.push(c),c=kn();s===n?(x=t,t=n):(c=dn(),c===n?(x=t,t=n):(xt=t,r=g(c),t=r))}else x=t,t=n;else x=t,t=n;else x=t,t=n}else x=t,t=n;if(t===n)if(t=x,e.charCodeAt(x)===44?(r=l,x++):(r=n,Tt===0&&Pt(u)),r!==n){for(i=[],a=kn();a!==n;)i.push(a),a=kn();if(i!==n)if(a=$t(),a!==n)if(e.charCodeAt(x)===58?(o=p,x++):(o=n,Tt===0&&Pt(m)),o!==n){for(s=[],c=kn();c!==n;)s.push(c),c=kn();s===n?(x=t,t=n):(c=mn(),c===n?(x=t,t=n):(xt=t,r=_(a,c),t=r))}else x=t,t=n;else x=t,t=n;else x=t,t=n}else x=t,t=n}return t}function Ut(){var e=x,t=en(),r,i,a,o,s,c;if(t!==n){for(r=[],i=kn();i!==n;)r.push(i),i=kn();r===n?(x=e,e=n):(i=dn(),i===n?(x=e,e=n):(a=bn(),a===n?(x=e,e=n):(o=Tn(),o===n?(x=e,e=n):(s=Wt(),s===n?(x=e,e=n):(c=vn(),c===n?(x=e,e=n):(xt=e,t=ee(i,s),e=t))))))}else x=e,e=n;return e}function Wt(){for(var e=x,t=[],r=Gt();r!==n;)t.push(r),r=Gt();return t!==n&&(xt=e,t=v(t)),e=t,e}function Gt(){for(var e=x,t=[],r=On(),i,a;r!==n;)t.push(r),r=On();if(t!==n)if(r=Kt(),r!==n){for(i=[],a=xn();a!==n;)i.push(a),a=xn();i===n?(x=e,e=n):(a=Tn(),a===n?(x=e,e=n):(xt=e,t=y(r),e=t))}else x=e,e=n;else x=e,e=n;return e}function Kt(){var e=qt(),t;return e===n&&(e=x,t=Jt(),t!==n&&(xt=e,t=b(t)),e=t,e===n&&(e=x,t=Yt(),t!==n&&(xt=e,t=te(t)),e=t,e===n&&(e=x,t=Xt(),t!==n&&(xt=e,t=ne(t)),e=t))),e}function qt(){var e=x,t=tn(),r,i;if(t!==n){if(r=[],i=kn(),i!==n)for(;i!==n;)r.push(i),i=kn();else r=n;r===n?(x=e,e=n):(i=bn(),i===n?(x=e,e=n):(t=[t,r,i],e=t))}else x=e,e=n;return e}function Jt(){var e=x,t=nn(),r,i;if(t!==n){if(r=[],i=kn(),i!==n)for(;i!==n;)r.push(i),i=kn();else r=n;r===n?(x=e,e=n):(i=Zt(),i===n?(x=e,e=n):(xt=e,t=re(i),e=t))}else x=e,e=n;return e}function Yt(){var e=x,t=rn(),r,i,a,o;if(t!==n){if(r=[],i=kn(),i!==n)for(;i!==n;)r.push(i),i=kn();else r=n;if(r!==n)if(i=dn(),i!==n){for(a=[],o=Qt();o!==n;)a.push(o),o=Qt();a===n?(x=e,e=n):(xt=e,t=ie(i,a),e=t)}else x=e,e=n;else x=e,e=n}else x=e,e=n;return e}function Xt(){var e=x,t=gn(),r,i;if(t!==n){if(r=[],i=kn(),i!==n)for(;i!==n;)r.push(i),i=kn();else r=n;r===n?(x=e,e=n):(i=dn(),i===n?(x=e,e=n):(xt=e,t=ae(t,i),e=t))}else x=e,e=n;return e}function Zt(){var t=x,r,i;return e.charCodeAt(x)===58?(r=p,x++):(r=n,Tt===0&&Pt(m)),r===n?(x=t,t=n):(i=hn(),i===n?(x=t,t=n):(xt=t,r=oe(i),t=r)),t===n&&(t=x,r=dn(),r!==n&&(xt=t,r=oe(r)),t=r),t}function Qt(){var t=x,r,i,a,o,s,c;if(e.charCodeAt(x)===44?(r=l,x++):(r=n,Tt===0&&Pt(u)),r!==n){for(i=[],a=kn();a!==n;)i.push(a),a=kn();if(i!==n)if(e.substr(x,4).toLowerCase()===se?(a=e.substr(x,4),x+=4):(a=n,Tt===0&&Pt(ce)),a!==n)if(e.charCodeAt(x)===58?(o=p,x++):(o=n,Tt===0&&Pt(m)),o!==n){for(s=[],c=kn();c!==n;)s.push(c),c=kn();s===n?(x=t,t=n):(c=dn(),c===n?(x=t,t=n):(xt=t,r=le(c),t=r))}else x=t,t=n;else x=t,t=n;else x=t,t=n}else x=t,t=n;return t}function $t(){var t;return e.substr(x,9).toLowerCase()===ue?(t=e.substr(x,9),x+=9):(t=n,Tt===0&&Pt(de)),t===n&&(e.substr(x,9).toLowerCase()===fe?(t=e.substr(x,9),x+=9):(t=n,Tt===0&&Pt(pe))),t}function en(){var t;return Tt++,e.substr(x,12).toLowerCase()===he?(t=e.substr(x,12),x+=12):(t=n,Tt===0&&Pt(ge)),Tt--,t===n&&Tt===0&&Pt(me),t}function tn(){var t,r,i;return Tt++,t=x,r=_n(),r===n?(x=t,t=n):(e.substr(x,6)===ve?(i=ve,x+=6):(i=n,Tt===0&&Pt(ye)),i===n?(x=t,t=n):(r=[r,i],t=r)),Tt--,t===n&&(r=n,Tt===0&&Pt(_e)),t}function nn(){var t,r,i;return Tt++,t=x,r=_n(),r===n?(x=t,t=n):(e.substr(x,11)===xe?(i=xe,x+=11):(i=n,Tt===0&&Pt(Se)),i===n?(x=t,t=n):(r=[r,i],t=r)),Tt--,t===n&&(r=n,Tt===0&&Pt(be)),t}function rn(){var t,r,i;return Tt++,t=x,r=_n(),r===n?(x=t,t=n):(e.substr(x,17)===we?(i=we,x+=17):(i=n,Tt===0&&Pt(Te)),i===n?(x=t,t=n):(r=[r,i],t=r)),Tt--,t===n&&(r=n,Tt===0&&Pt(Ce)),t}function an(){var t;return Tt++,e.substr(x,20).toLowerCase()===De?(t=e.substr(x,20),x+=20):(t=n,Tt===0&&Pt(Oe)),Tt--,t===n&&Tt===0&&Pt(Ee),t}function on(){var t;return Tt++,e.substr(x,15).toLowerCase()===Ae?(t=e.substr(x,15),x+=15):(t=n,Tt===0&&Pt(je)),Tt--,t===n&&Tt===0&&Pt(ke),t}function sn(){var t;return Tt++,e.substr(x,6)===Ne?(t=Ne,x+=6):(t=n,Tt===0&&Pt(Pe)),Tt--,t===n&&Tt===0&&Pt(Me),t}function cn(){var t;return Tt++,e.substr(x,11)===Ie?(t=Ie,x+=11):(t=n,Tt===0&&Pt(Le)),Tt--,t===n&&Tt===0&&Pt(Fe),t}function ln(){var t;return e.substr(x,3)===Re?(t=Re,x+=3):(t=n,Tt===0&&Pt(ze)),t}function un(){var e=x,t=hn(),r,i;return t===n?(x=e,e=n):(r=bn(),r===n?(x=e,e=n):(i=Tn(),i===n&&(i=null),i===n?(x=e,e=n):(t=[t,r,i],e=t))),e}function dn(){var e=fn();return e===n&&(e=pn()),e}function fn(){var t=x,r=Cn(),i,a;if(r!==n){for(i=[],Be.test(e.charAt(x))?(a=e.charAt(x),x++):(a=n,Tt===0&&Pt(Ve));a!==n;)i.push(a),Be.test(e.charAt(x))?(a=e.charAt(x),x++):(a=n,Tt===0&&Pt(Ve));i===n?(x=t,t=n):(a=Cn(),a===n?(x=t,t=n):(xt=t,r=He(i),t=r))}else x=t,t=n;return t}function pn(){var t=x,r=Sn(),i,a;if(r!==n){for(i=[],Ue.test(e.charAt(x))?(a=e.charAt(x),x++):(a=n,Tt===0&&Pt(We));a!==n;)i.push(a),Ue.test(e.charAt(x))?(a=e.charAt(x),x++):(a=n,Tt===0&&Pt(We));i===n?(x=t,t=n):(a=Sn(),a===n?(x=t,t=n):(xt=t,r=He(i),t=r))}else x=t,t=n;return t}function mn(){var t=x,r,i,a;if(e.charCodeAt(x)===58?(r=p,x++):(r=n,Tt===0&&Pt(m)),r!==n){for(i=[],a=_n();a!==n;)i.push(a),a=_n();i===n?(x=t,t=n):(xt=t,r=He(i),t=r)}else x=t,t=n;return t}function hn(){var e=x,t=[],r=_n();if(r!==n)for(;r!==n;)t.push(r),r=_n();else t=n;return t!==n&&(xt=e,t=He(t)),e=t,e}function gn(){var t=x,r=_n(),i,a,o;if(r!==n)if(e.charCodeAt(x)===46?(i=Ge,x++):(i=n,Tt===0&&Pt(Ke)),i!==n){if(a=[],o=_n(),o!==n)for(;o!==n;)a.push(o),o=_n();else a=n;a===n?(x=t,t=n):(xt=t,r=He(a),t=r)}else x=t,t=n;else x=t,t=n;return t}function _n(){var t;return Tt++,Je.test(e.charAt(x))?(t=e.charAt(x),x++):(t=n,Tt===0&&Pt(Ye)),Tt--,t===n&&Tt===0&&Pt(qe),t}function vn(){for(var e=x,t=[],r=On(),i;r!==n;)t.push(r),r=On();return t===n?(x=e,e=n):(r=ln(),r===n?(x=e,e=n):(i=Tn(),i===n&&(i=null),i===n?(x=e,e=n):(t=[t,r,i],e=t))),e}function yn(){var t,r,i,a,o;for(Tt++,t=x,r=[],i=On();i!==n;)r.push(i),i=On();return r===n?(x=t,t=n):(e.charCodeAt(x)===35?(i=Ze,x++):(i=n,Tt===0&&Pt(Qe)),i===n?(x=t,t=n):(a=bn(),a===n?(x=t,t=n):(o=Tn(),o===n&&(o=null),o===n?(x=t,t=n):(r=[r,i,a,o],t=r)))),Tt--,t===n&&(r=n,Tt===0&&Pt(Xe)),t}function bn(){var t,r;for(Tt++,t=[],et.test(e.charAt(x))?(r=e.charAt(x),x++):(r=n,Tt===0&&Pt(tt));r!==n;)t.push(r),et.test(e.charAt(x))?(r=e.charAt(x),x++):(r=n,Tt===0&&Pt(tt));return Tt--,t===n&&(r=n,Tt===0&&Pt($e)),t}function xn(){var t;return et.test(e.charAt(x))?(t=e.charAt(x),x++):(t=n,Tt===0&&Pt(tt)),t}function Sn(){var t;return e.charCodeAt(x)===39?(t=nt,x++):(t=n,Tt===0&&Pt(rt)),t}function Cn(){var t;return e.charCodeAt(x)===34?(t=it,x++):(t=n,Tt===0&&Pt(at)),t}function wn(){var e=[],t=En();if(t===n&&(t=On()),t!==n)for(;t!==n;)e.push(t),t=En(),t===n&&(t=On());else e=n;return e}function Tn(){for(var e=x,t=[],r=kn();r!==n;)t.push(r),r=kn();return t===n?(x=e,e=n):(r=Dn(),r===n?(x=e,e=n):(t=[t,r],e=t)),e}function En(){var t,r,i;return Tt++,t=x,e.substr(x,2)===st?(r=st,x+=2):(r=n,Tt===0&&Pt(ct)),r===n?(x=t,t=n):(lt.test(e.charAt(x))?(i=e.charAt(x),x++):(i=n,Tt===0&&Pt(ut)),i===n&&(i=null),i===n?(x=t,t=n):(r=[r,i],t=r)),Tt--,t===n&&(r=n,Tt===0&&Pt(ot)),t}function Dn(){var t;return Tt++,e.substr(x,2)===ft?(t=ft,x+=2):(t=n,Tt===0&&Pt(pt)),t===n&&(e.charCodeAt(x)===10?(t=mt,x++):(t=n,Tt===0&&Pt(ht))),Tt--,t===n&&Tt===0&&Pt(dt),t}function On(){var t;return Tt++,_t.test(e.charAt(x))?(t=e.charAt(x),x++):(t=n,Tt===0&&Pt(vt)),Tt--,t===n&&Tt===0&&Pt(gt),t}function kn(){var t;return e.charCodeAt(x)===32?(t=yt,x++):(t=n,Tt===0&&Pt(bt)),t}var An=$7(),jn=Q7();let Mn={tables:[],refs:[]};function Nn(e){Mn.tables.find(t=>t.name==e.name)?Dt(`Duplicated table name`):(e.fields.find(e=>e.name===`id`)||e.fields.unshift({name:`id`,type:{type_name:`varchar`}}),Mn.tables.push(e))}function Pn(e,t,n){let r=Mn.tables.find(t=>t.name===e);r||Dt("Table ${tableName} not found"),r.checks||=[];let i={expression:t};n&&(i.name=n),r.checks.push(i)}function Fn(e=[],t=[]){let n=t.find(e=>e.name===`primary_key`);return n?e.find(e=>e.name===n.value)?e.map(({name:e,type:t})=>({name:e,type:t,PK:n.value===field.name})):[{name:n.value,type:{type_name:`varchar`},PK:!0}].concat(e):e}function In(e,t){return e.tableName==t.tableName&&jn.isEqual(jn.sortBy(e.fieldNames),jn.sortBy(t.fieldNames))}function Ln(e,t){return In(e[0],t[0])&&In(e[1],t[1])}function Rn(e,t){return Ln(e.endpoints,t.endpoints)||Ln(e.endpoints,t.endpoints.slice().reverse())}function zn(e){e&&(Mn.refs.find(t=>Rn(t,e))&&Dt(`Duplicated references`),Mn.refs.push(e))}function Bn(e=[]){if(!(!e||e.length===0))for(let t=0;t<e.length;t+=1)zn(e[t])}function Vn(e){let{tables:t}=Mn,{endpoints:n}=e,r=t.find(e=>e.name===n[0].tableName);if(!r||!t.find(e=>e.name===n[1].tableName))return null;if(!n[0].fieldNames){let e=`${An.singular(n[1].tableName)}_id`;if(n[0].fieldNames=[e],!r.fields.find(t=>t.name===e))return null;n[0].fieldNames=[e]}return n[1].fieldNames||(n[1].fieldNames=[`id`]),e}function Hn(e,t,n){let r=[{tableName:e,relation:`1`},{tableName:t,relation:`1`}],i={};for(let e=0;e<n.length;e+=1){let t=n[e];t.columnName&&(r[0].fieldNames=[t.columnName]),t.primaryKey&&(r[1].fieldNames=[t.primaryKey]),t.onDelete&&(i={...i,onDelete:t.onDelete}),t.onUpdate&&(i={...i,onUpdate:t.onUpdate})}return{name:`fk_rails_${e}_${t}`,endpoints:r,...i}}function Un(e,t){if(!t||t.length===0)return[];let n=[];for(let r=0;r<t.length;r+=1){let i=t[r],a=An.plural(i),{tables:o}=Mn,s=o.find(e=>e.name===a);if(!s)continue;let c=`${i}_id`,l=e.fields.find(e=>e.name===c),u=s.fields.find(e=>e.name===`id`);l||e.fields.push({name:c,type:{type_name:u?u.type.type_name:`varchar`}}),n.push({name:`fk_rails_${e.name}_${a}`,endpoints:[{tableName:e.name,fieldNames:[c],relation:`1`},{tableName:a,fieldNames:[`id`],relation:`1`}]})}return n}function Wn(e){let{tables:t,refs:n}=e,r=t.map(e=>{let{name:t}=e;return{name:t,field:`${An.singular(t)}_id`}});for(let e=0;e<t.length;e+=1){let i=t[e],{fields:a}=i;for(let e=0;e<a.length;e+=1){let t=a[e],o=r.find(e=>e.field===t.name);if(o){let e={name:`fk_rails_${i.name}_${o.name}`,endpoints:[{tableName:i.name,fieldNames:[t.name],relation:`1`},{tableName:o.name,fieldNames:[`id`],relation:`1`}]};n.find(t=>Rn(t,e))||n.push(e)}}}return e}if(Et=a(),Et!==n&&x===e.length)return Et;throw Et!==n&&x<e.length&&Pt(At()),It(wt,Ct<e.length?e.charAt(Ct):null,Ct<e.length?Nt(Ct,Ct+1):Nt(Ct,Ct))}t.exports={SyntaxError:r,parse:i}})),Z3e=u(W1e()),Q3e=u(q3e()),$3e=u(J3e()),e6e=u(Y3e()),t6e=u(X3e()),n6e=class e{constructor(e){this.DBMLCompiler=e||new hv}static parseJSONToDatabase(e){return new Iy(e)}static parseMySQLToJSONv2(e){return Z7(e,`mysql`)}static parseMySQLToJSON(e){return $3e.default.parse(e)}static parsePostgresToJSONv2(e){return Z7(e,`postgres`)}static parsePostgresToJSON(e){return e6e.default.parse(e)}static parseDBMLToJSONv2(e,t){let n=t||new hv;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 W7.create(r);return n.parse.rawDb()}static parseDBMLToJSON(e){return Z3e.default.parse(e)}static parseSchemaRbToJSON(e){return t6e.default.parse(e)}static parseMSSQLToJSON(e){return Q3e.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 W7.create(e)}}},r6e=n6e;function i6e(e,t,n={isNormalized:!0,includeRecords:!0}){let r=a6e(n),i=new r6e().parse(e,`dbmlv2`);return $9.export(i.normalize(),t,r)}function a6e(e={}){if(typeof e==`boolean`)return{isNormalized:e,includeRecords:!0};let{isNormalized:t=!0,includeRecords:n=!0}=e;return{isNormalized:t,includeRecords:n}}var o6e={export:i6e},s6e=class{static export(e,t,n={isNormalized:!0,includeRecords:!0}){let{isNormalized:r,includeRecords:i}=a6e(n),a=e instanceof Iy?e.normalize():e,o=``;switch(t){case`dbml`:o=nve.export(a,{includeRecords:i});break;case`mysql`:o=ive.export(a);break;case`postgres`:o=lve.export(a);break;case`json`:o=Hve.export(e,{isNormalized:r});break;case`mssql`:o=Wve.export(a);break;case`oracle`:o=Kve.export(a);break;default:break}return o}},$9=s6e,c6e=e=>new Iy(e),l6e=e=>e.map(e=>{let{name:t,endpoints:n,onDelete:r,onUpdate:i}=e;return new S1e({name:t,endpoints:n.map(e=>new M7(e)),onDelete:r,onUpdate:i}).toJSON()}),u6e=e=>e.map(e=>{let{name:t,schemaName:n,values:r}=e;return new N7({name:t,schemaName:n,values:r})}),d6e=(e,t)=>e.map(e=>{let n=t[e.name]||{};return new A7({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})}),f6e=e=>e.map(e=>{let{name:t,unique:n,pk:r,type:i,columns:a}=e;return new k7({name:t,unique:n,pk:r,type:i,columns:a})}),p6e=(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 j7({name:a,schemaName:o,fields:d6e(t[c],l),indexes:f6e(n[c]||[]),note:s,checks:r[c]})}),m6e=e=>{let{tables:t,fields:n,indexes:r,refs:i,enums:a,tableConstraints:o,checks:s}=e;try{let e=p6e(t,n,r,s,o),c=u6e(a);return c6e({schemas:[],tables:e,refs:l6e(i),enums:c,tableGroups:[],aliases:[],project:{}})}catch(e){throw Error(e)}};function h6e(e,t,n={includeRecords:!0}){let{includeRecords:r=!0}=n,i=new r6e().parse(e,t);return $9.export(i.normalize(),`dbml`,{includeRecords:r})}function g6e(e){let t=m6e(e);return $9.export(t.normalize(),`dbml`)}var _6e={import:h6e,generateDbml:g6e};function v6e(e,t,n){let r=new hv;return r.setSource(n),r.renameTable(e,t)}function y6e(e,t,n){let r=new hv;return r.setSource(e),r.syncDiagramView(t,n)}function b6e(e){let t=new hv;return t.setSource(e),t.findDiagramViewBlocks()}const x6e=`7.0.1-alpha.0`,S6e=`7.0.1-alpha.0`;exports.CompilerError=W7,exports.ModelExporter=$9,exports.Parser=r6e,exports.VERSION=`7.0.1-alpha.0`,exports.addDoubleQuoteIfNeeded=$_,exports.dbmlMonarchTokensProvider=npe,exports.exporter=o6e,exports.findDiagramViewBlocks=b6e,exports.formatRecordValue=Dfe,exports.importer=_6e,exports.isBinaryType=Gh,exports.isBooleanType=Uh,exports.isDateTimeType=Kh,exports.isFloatType=Vh,exports.isIntegerType=Bh,exports.isNumericType=Hh,exports.isSerialType=qh,exports.isStringType=Wh,exports.renameTable=v6e,exports.syncDiagramView=y6e,exports.tryExtractBoolean=F_,exports.tryExtractDateTime=L_,exports.tryExtractEnum=Ide,exports.tryExtractInteger=Nde,exports.tryExtractNumeric=P_,exports.tryExtractString=I_;
148
+ `,`\r`],!1,!1),yt=` `,bt=Ot(` `,!1),x=0,xt=0,St=[{line:1,column:1}],Ct=0,wt=[],Tt=0,Et;if(`startRule`in t){if(!(t.startRule in i))throw Error(`Can't start parsing from rule "`+t.startRule+`".`);a=i[t.startRule]}function Dt(e,t){throw t=t===void 0?Nt(xt,x):t,Ft(e,t)}function Ot(e,t){return{type:`literal`,text:e,ignoreCase:t}}function kt(e,t,n){return{type:`class`,parts:e,inverted:t,ignoreCase:n}}function At(){return{type:`end`}}function jt(e){return{type:`other`,description:e}}function Mt(t){var n=St[t],r;if(n)return n;for(r=t-1;!St[r];)r--;for(n=St[r],n={line:n.line,column:n.column};r<t;)e.charCodeAt(r)===10?(n.line++,n.column=1):n.column++,r++;return St[t]=n,n}function Nt(e,t){var n=Mt(e),r=Mt(t);return{start:{offset:e,line:n.line,column:n.column},end:{offset:t,line:r.line,column:r.column}}}function Pt(e){x<Ct||(x>Ct&&(Ct=x,wt=[]),wt.push(e))}function Ft(e,t){return new r(e,null,null,t)}function It(e,t,n){return new r(r.buildMessage(e,t),e,t,n)}function Lt(){for(var e=x,t=[],r=Rt();r!==n;)t.push(r),r=Rt();return t!==n&&(xt=e,t=o()),e=t,e}function Rt(){for(var e=x,t=[],r=On();r!==n;)t.push(r),r=On();return t===n?(x=e,e=n):(r=zt(),r===n?(x=e,e=n):(t=[t,r],e=t)),e===n&&(e=yn(),e===n&&(e=vn(),e===n&&(e=wn()))),e}function zt(){var e=x,t=Ut();return t!==n&&(xt=e,t=s(t)),e=t,e===n&&(e=x,t=Vt(),t!==n&&(xt=e,t=c(t)),e=t,e===n&&(e=Bt(),e===n&&(e=un()))),e}function Bt(){for(var t=x,r=[],i=kn(),a,o,s,c,f,p,m;i!==n;)r.push(i),i=kn();if(r!==n)if(i=an(),i!==n){for(a=[],o=kn();o!==n;)a.push(o),o=kn();if(a!==n)if(o=mn(),o===n&&(o=dn()),o!==n)if(e.charCodeAt(x)===44?(s=l,x++):(s=n,Tt===0&&Pt(u)),s!==n){for(c=[],f=kn();f!==n;)c.push(f),f=kn();if(c!==n)if(f=dn(),f!==n){for(p=[],m=Qt();m!==n;)p.push(m),m=Qt();p===n?(x=t,t=n):(xt=t,r=d(o,f,p),t=r)}else x=t,t=n;else x=t,t=n}else x=t,t=n;else x=t,t=n;else x=t,t=n}else x=t,t=n;else x=t,t=n;return t}function Vt(){for(var t=x,r=[],i=kn(),a,o,s,c,d,p,m;i!==n;)r.push(i),i=kn();if(r!==n)if(i=on(),i!==n){for(a=[],o=kn();o!==n;)a.push(o),o=kn();if(a!==n)if(o=dn(),o!==n)if(e.charCodeAt(x)===44?(s=l,x++):(s=n,Tt===0&&Pt(u)),s!==n){for(c=[],d=kn();d!==n;)c.push(d),d=kn();if(c!==n)if(d=dn(),d!==n){for(p=[],m=Ht();m!==n;)p.push(m),m=Ht();p===n?(x=t,t=n):(xt=t,r=f(o,d,p),t=r)}else x=t,t=n;else x=t,t=n}else x=t,t=n;else x=t,t=n;else x=t,t=n}else x=t,t=n;else x=t,t=n;return t}function Ht(){var t=x,r,i,a,o,s,c;if(e.charCodeAt(x)===44?(r=l,x++):(r=n,Tt===0&&Pt(u)),r!==n){for(i=[],a=kn();a!==n;)i.push(a),a=kn();if(i!==n)if(a=sn(),a!==n)if(e.charCodeAt(x)===58?(o=p,x++):(o=n,Tt===0&&Pt(m)),o!==n){for(s=[],c=kn();c!==n;)s.push(c),c=kn();s===n?(x=t,t=n):(c=dn(),c===n?(x=t,t=n):(xt=t,r=h(c),t=r))}else x=t,t=n;else x=t,t=n;else x=t,t=n}else x=t,t=n;if(t===n){if(t=x,e.charCodeAt(x)===44?(r=l,x++):(r=n,Tt===0&&Pt(u)),r!==n){for(i=[],a=kn();a!==n;)i.push(a),a=kn();if(i!==n)if(a=cn(),a!==n)if(e.charCodeAt(x)===58?(o=p,x++):(o=n,Tt===0&&Pt(m)),o!==n){for(s=[],c=kn();c!==n;)s.push(c),c=kn();s===n?(x=t,t=n):(c=dn(),c===n?(x=t,t=n):(xt=t,r=g(c),t=r))}else x=t,t=n;else x=t,t=n;else x=t,t=n}else x=t,t=n;if(t===n)if(t=x,e.charCodeAt(x)===44?(r=l,x++):(r=n,Tt===0&&Pt(u)),r!==n){for(i=[],a=kn();a!==n;)i.push(a),a=kn();if(i!==n)if(a=$t(),a!==n)if(e.charCodeAt(x)===58?(o=p,x++):(o=n,Tt===0&&Pt(m)),o!==n){for(s=[],c=kn();c!==n;)s.push(c),c=kn();s===n?(x=t,t=n):(c=mn(),c===n?(x=t,t=n):(xt=t,r=_(a,c),t=r))}else x=t,t=n;else x=t,t=n;else x=t,t=n}else x=t,t=n}return t}function Ut(){var e=x,t=en(),r,i,a,o,s,c;if(t!==n){for(r=[],i=kn();i!==n;)r.push(i),i=kn();r===n?(x=e,e=n):(i=dn(),i===n?(x=e,e=n):(a=bn(),a===n?(x=e,e=n):(o=Tn(),o===n?(x=e,e=n):(s=Wt(),s===n?(x=e,e=n):(c=vn(),c===n?(x=e,e=n):(xt=e,t=ee(i,s),e=t))))))}else x=e,e=n;return e}function Wt(){for(var e=x,t=[],r=Gt();r!==n;)t.push(r),r=Gt();return t!==n&&(xt=e,t=v(t)),e=t,e}function Gt(){for(var e=x,t=[],r=On(),i,a;r!==n;)t.push(r),r=On();if(t!==n)if(r=Kt(),r!==n){for(i=[],a=xn();a!==n;)i.push(a),a=xn();i===n?(x=e,e=n):(a=Tn(),a===n?(x=e,e=n):(xt=e,t=y(r),e=t))}else x=e,e=n;else x=e,e=n;return e}function Kt(){var e=qt(),t;return e===n&&(e=x,t=Jt(),t!==n&&(xt=e,t=b(t)),e=t,e===n&&(e=x,t=Yt(),t!==n&&(xt=e,t=te(t)),e=t,e===n&&(e=x,t=Xt(),t!==n&&(xt=e,t=ne(t)),e=t))),e}function qt(){var e=x,t=tn(),r,i;if(t!==n){if(r=[],i=kn(),i!==n)for(;i!==n;)r.push(i),i=kn();else r=n;r===n?(x=e,e=n):(i=bn(),i===n?(x=e,e=n):(t=[t,r,i],e=t))}else x=e,e=n;return e}function Jt(){var e=x,t=nn(),r,i;if(t!==n){if(r=[],i=kn(),i!==n)for(;i!==n;)r.push(i),i=kn();else r=n;r===n?(x=e,e=n):(i=Zt(),i===n?(x=e,e=n):(xt=e,t=re(i),e=t))}else x=e,e=n;return e}function Yt(){var e=x,t=rn(),r,i,a,o;if(t!==n){if(r=[],i=kn(),i!==n)for(;i!==n;)r.push(i),i=kn();else r=n;if(r!==n)if(i=dn(),i!==n){for(a=[],o=Qt();o!==n;)a.push(o),o=Qt();a===n?(x=e,e=n):(xt=e,t=ie(i,a),e=t)}else x=e,e=n;else x=e,e=n}else x=e,e=n;return e}function Xt(){var e=x,t=gn(),r,i;if(t!==n){if(r=[],i=kn(),i!==n)for(;i!==n;)r.push(i),i=kn();else r=n;r===n?(x=e,e=n):(i=dn(),i===n?(x=e,e=n):(xt=e,t=ae(t,i),e=t))}else x=e,e=n;return e}function Zt(){var t=x,r,i;return e.charCodeAt(x)===58?(r=p,x++):(r=n,Tt===0&&Pt(m)),r===n?(x=t,t=n):(i=hn(),i===n?(x=t,t=n):(xt=t,r=oe(i),t=r)),t===n&&(t=x,r=dn(),r!==n&&(xt=t,r=oe(r)),t=r),t}function Qt(){var t=x,r,i,a,o,s,c;if(e.charCodeAt(x)===44?(r=l,x++):(r=n,Tt===0&&Pt(u)),r!==n){for(i=[],a=kn();a!==n;)i.push(a),a=kn();if(i!==n)if(e.substr(x,4).toLowerCase()===se?(a=e.substr(x,4),x+=4):(a=n,Tt===0&&Pt(ce)),a!==n)if(e.charCodeAt(x)===58?(o=p,x++):(o=n,Tt===0&&Pt(m)),o!==n){for(s=[],c=kn();c!==n;)s.push(c),c=kn();s===n?(x=t,t=n):(c=dn(),c===n?(x=t,t=n):(xt=t,r=le(c),t=r))}else x=t,t=n;else x=t,t=n;else x=t,t=n}else x=t,t=n;return t}function $t(){var t;return e.substr(x,9).toLowerCase()===ue?(t=e.substr(x,9),x+=9):(t=n,Tt===0&&Pt(de)),t===n&&(e.substr(x,9).toLowerCase()===fe?(t=e.substr(x,9),x+=9):(t=n,Tt===0&&Pt(pe))),t}function en(){var t;return Tt++,e.substr(x,12).toLowerCase()===he?(t=e.substr(x,12),x+=12):(t=n,Tt===0&&Pt(ge)),Tt--,t===n&&Tt===0&&Pt(me),t}function tn(){var t,r,i;return Tt++,t=x,r=_n(),r===n?(x=t,t=n):(e.substr(x,6)===ve?(i=ve,x+=6):(i=n,Tt===0&&Pt(ye)),i===n?(x=t,t=n):(r=[r,i],t=r)),Tt--,t===n&&(r=n,Tt===0&&Pt(_e)),t}function nn(){var t,r,i;return Tt++,t=x,r=_n(),r===n?(x=t,t=n):(e.substr(x,11)===xe?(i=xe,x+=11):(i=n,Tt===0&&Pt(Se)),i===n?(x=t,t=n):(r=[r,i],t=r)),Tt--,t===n&&(r=n,Tt===0&&Pt(be)),t}function rn(){var t,r,i;return Tt++,t=x,r=_n(),r===n?(x=t,t=n):(e.substr(x,17)===we?(i=we,x+=17):(i=n,Tt===0&&Pt(Te)),i===n?(x=t,t=n):(r=[r,i],t=r)),Tt--,t===n&&(r=n,Tt===0&&Pt(Ce)),t}function an(){var t;return Tt++,e.substr(x,20).toLowerCase()===De?(t=e.substr(x,20),x+=20):(t=n,Tt===0&&Pt(Oe)),Tt--,t===n&&Tt===0&&Pt(Ee),t}function on(){var t;return Tt++,e.substr(x,15).toLowerCase()===Ae?(t=e.substr(x,15),x+=15):(t=n,Tt===0&&Pt(je)),Tt--,t===n&&Tt===0&&Pt(ke),t}function sn(){var t;return Tt++,e.substr(x,6)===Ne?(t=Ne,x+=6):(t=n,Tt===0&&Pt(Pe)),Tt--,t===n&&Tt===0&&Pt(Me),t}function cn(){var t;return Tt++,e.substr(x,11)===Ie?(t=Ie,x+=11):(t=n,Tt===0&&Pt(Le)),Tt--,t===n&&Tt===0&&Pt(Fe),t}function ln(){var t;return e.substr(x,3)===Re?(t=Re,x+=3):(t=n,Tt===0&&Pt(ze)),t}function un(){var e=x,t=hn(),r,i;return t===n?(x=e,e=n):(r=bn(),r===n?(x=e,e=n):(i=Tn(),i===n&&(i=null),i===n?(x=e,e=n):(t=[t,r,i],e=t))),e}function dn(){var e=fn();return e===n&&(e=pn()),e}function fn(){var t=x,r=Cn(),i,a;if(r!==n){for(i=[],Be.test(e.charAt(x))?(a=e.charAt(x),x++):(a=n,Tt===0&&Pt(Ve));a!==n;)i.push(a),Be.test(e.charAt(x))?(a=e.charAt(x),x++):(a=n,Tt===0&&Pt(Ve));i===n?(x=t,t=n):(a=Cn(),a===n?(x=t,t=n):(xt=t,r=He(i),t=r))}else x=t,t=n;return t}function pn(){var t=x,r=Sn(),i,a;if(r!==n){for(i=[],Ue.test(e.charAt(x))?(a=e.charAt(x),x++):(a=n,Tt===0&&Pt(We));a!==n;)i.push(a),Ue.test(e.charAt(x))?(a=e.charAt(x),x++):(a=n,Tt===0&&Pt(We));i===n?(x=t,t=n):(a=Sn(),a===n?(x=t,t=n):(xt=t,r=He(i),t=r))}else x=t,t=n;return t}function mn(){var t=x,r,i,a;if(e.charCodeAt(x)===58?(r=p,x++):(r=n,Tt===0&&Pt(m)),r!==n){for(i=[],a=_n();a!==n;)i.push(a),a=_n();i===n?(x=t,t=n):(xt=t,r=He(i),t=r)}else x=t,t=n;return t}function hn(){var e=x,t=[],r=_n();if(r!==n)for(;r!==n;)t.push(r),r=_n();else t=n;return t!==n&&(xt=e,t=He(t)),e=t,e}function gn(){var t=x,r=_n(),i,a,o;if(r!==n)if(e.charCodeAt(x)===46?(i=Ge,x++):(i=n,Tt===0&&Pt(Ke)),i!==n){if(a=[],o=_n(),o!==n)for(;o!==n;)a.push(o),o=_n();else a=n;a===n?(x=t,t=n):(xt=t,r=He(a),t=r)}else x=t,t=n;else x=t,t=n;return t}function _n(){var t;return Tt++,Je.test(e.charAt(x))?(t=e.charAt(x),x++):(t=n,Tt===0&&Pt(Ye)),Tt--,t===n&&Tt===0&&Pt(qe),t}function vn(){for(var e=x,t=[],r=On(),i;r!==n;)t.push(r),r=On();return t===n?(x=e,e=n):(r=ln(),r===n?(x=e,e=n):(i=Tn(),i===n&&(i=null),i===n?(x=e,e=n):(t=[t,r,i],e=t))),e}function yn(){var t,r,i,a,o;for(Tt++,t=x,r=[],i=On();i!==n;)r.push(i),i=On();return r===n?(x=t,t=n):(e.charCodeAt(x)===35?(i=Ze,x++):(i=n,Tt===0&&Pt(Qe)),i===n?(x=t,t=n):(a=bn(),a===n?(x=t,t=n):(o=Tn(),o===n&&(o=null),o===n?(x=t,t=n):(r=[r,i,a,o],t=r)))),Tt--,t===n&&(r=n,Tt===0&&Pt(Xe)),t}function bn(){var t,r;for(Tt++,t=[],et.test(e.charAt(x))?(r=e.charAt(x),x++):(r=n,Tt===0&&Pt(tt));r!==n;)t.push(r),et.test(e.charAt(x))?(r=e.charAt(x),x++):(r=n,Tt===0&&Pt(tt));return Tt--,t===n&&(r=n,Tt===0&&Pt($e)),t}function xn(){var t;return et.test(e.charAt(x))?(t=e.charAt(x),x++):(t=n,Tt===0&&Pt(tt)),t}function Sn(){var t;return e.charCodeAt(x)===39?(t=nt,x++):(t=n,Tt===0&&Pt(rt)),t}function Cn(){var t;return e.charCodeAt(x)===34?(t=it,x++):(t=n,Tt===0&&Pt(at)),t}function wn(){var e=[],t=En();if(t===n&&(t=On()),t!==n)for(;t!==n;)e.push(t),t=En(),t===n&&(t=On());else e=n;return e}function Tn(){for(var e=x,t=[],r=kn();r!==n;)t.push(r),r=kn();return t===n?(x=e,e=n):(r=Dn(),r===n?(x=e,e=n):(t=[t,r],e=t)),e}function En(){var t,r,i;return Tt++,t=x,e.substr(x,2)===st?(r=st,x+=2):(r=n,Tt===0&&Pt(ct)),r===n?(x=t,t=n):(lt.test(e.charAt(x))?(i=e.charAt(x),x++):(i=n,Tt===0&&Pt(ut)),i===n&&(i=null),i===n?(x=t,t=n):(r=[r,i],t=r)),Tt--,t===n&&(r=n,Tt===0&&Pt(ot)),t}function Dn(){var t;return Tt++,e.substr(x,2)===ft?(t=ft,x+=2):(t=n,Tt===0&&Pt(pt)),t===n&&(e.charCodeAt(x)===10?(t=mt,x++):(t=n,Tt===0&&Pt(ht))),Tt--,t===n&&Tt===0&&Pt(dt),t}function On(){var t;return Tt++,_t.test(e.charAt(x))?(t=e.charAt(x),x++):(t=n,Tt===0&&Pt(vt)),Tt--,t===n&&Tt===0&&Pt(gt),t}function kn(){var t;return e.charCodeAt(x)===32?(t=yt,x++):(t=n,Tt===0&&Pt(bt)),t}var An=$7(),jn=Q7();let Mn={tables:[],refs:[]};function Nn(e){Mn.tables.find(t=>t.name==e.name)?Dt(`Duplicated table name`):(e.fields.find(e=>e.name===`id`)||e.fields.unshift({name:`id`,type:{type_name:`varchar`}}),Mn.tables.push(e))}function Pn(e,t,n){let r=Mn.tables.find(t=>t.name===e);r||Dt("Table ${tableName} not found"),r.checks||=[];let i={expression:t};n&&(i.name=n),r.checks.push(i)}function Fn(e=[],t=[]){let n=t.find(e=>e.name===`primary_key`);return n?e.find(e=>e.name===n.value)?e.map(({name:e,type:t})=>({name:e,type:t,PK:n.value===field.name})):[{name:n.value,type:{type_name:`varchar`},PK:!0}].concat(e):e}function In(e,t){return e.tableName==t.tableName&&jn.isEqual(jn.sortBy(e.fieldNames),jn.sortBy(t.fieldNames))}function Ln(e,t){return In(e[0],t[0])&&In(e[1],t[1])}function Rn(e,t){return Ln(e.endpoints,t.endpoints)||Ln(e.endpoints,t.endpoints.slice().reverse())}function zn(e){e&&(Mn.refs.find(t=>Rn(t,e))&&Dt(`Duplicated references`),Mn.refs.push(e))}function Bn(e=[]){if(!(!e||e.length===0))for(let t=0;t<e.length;t+=1)zn(e[t])}function Vn(e){let{tables:t}=Mn,{endpoints:n}=e,r=t.find(e=>e.name===n[0].tableName);if(!r||!t.find(e=>e.name===n[1].tableName))return null;if(!n[0].fieldNames){let e=`${An.singular(n[1].tableName)}_id`;if(n[0].fieldNames=[e],!r.fields.find(t=>t.name===e))return null;n[0].fieldNames=[e]}return n[1].fieldNames||(n[1].fieldNames=[`id`]),e}function Hn(e,t,n){let r=[{tableName:e,relation:`1`},{tableName:t,relation:`1`}],i={};for(let e=0;e<n.length;e+=1){let t=n[e];t.columnName&&(r[0].fieldNames=[t.columnName]),t.primaryKey&&(r[1].fieldNames=[t.primaryKey]),t.onDelete&&(i={...i,onDelete:t.onDelete}),t.onUpdate&&(i={...i,onUpdate:t.onUpdate})}return{name:`fk_rails_${e}_${t}`,endpoints:r,...i}}function Un(e,t){if(!t||t.length===0)return[];let n=[];for(let r=0;r<t.length;r+=1){let i=t[r],a=An.plural(i),{tables:o}=Mn,s=o.find(e=>e.name===a);if(!s)continue;let c=`${i}_id`,l=e.fields.find(e=>e.name===c),u=s.fields.find(e=>e.name===`id`);l||e.fields.push({name:c,type:{type_name:u?u.type.type_name:`varchar`}}),n.push({name:`fk_rails_${e.name}_${a}`,endpoints:[{tableName:e.name,fieldNames:[c],relation:`1`},{tableName:a,fieldNames:[`id`],relation:`1`}]})}return n}function Wn(e){let{tables:t,refs:n}=e,r=t.map(e=>{let{name:t}=e;return{name:t,field:`${An.singular(t)}_id`}});for(let e=0;e<t.length;e+=1){let i=t[e],{fields:a}=i;for(let e=0;e<a.length;e+=1){let t=a[e],o=r.find(e=>e.field===t.name);if(o){let e={name:`fk_rails_${i.name}_${o.name}`,endpoints:[{tableName:i.name,fieldNames:[t.name],relation:`1`},{tableName:o.name,fieldNames:[`id`],relation:`1`}]};n.find(t=>Rn(t,e))||n.push(e)}}}return e}if(Et=a(),Et!==n&&x===e.length)return Et;throw Et!==n&&x<e.length&&Pt(At()),It(wt,Ct<e.length?e.charAt(Ct):null,Ct<e.length?Nt(Ct,Ct+1):Nt(Ct,Ct))}t.exports={SyntaxError:r,parse:i}})),Z3e=u(W1e()),Q3e=u(q3e()),$3e=u(J3e()),e6e=u(Y3e()),t6e=u(X3e()),n6e=class e{constructor(e){this.DBMLCompiler=e||new hv}static parseJSONToDatabase(e){return new Iy(e)}static parseMySQLToJSONv2(e){return Z7(e,`mysql`)}static parseMySQLToJSON(e){return $3e.default.parse(e)}static parsePostgresToJSONv2(e){return Z7(e,`postgres`)}static parsePostgresToJSON(e){return e6e.default.parse(e)}static parseDBMLToJSONv2(e,t){let n=t||new hv;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 W7.create(r);return n.parse.rawDb()}static parseDBMLToJSON(e){return Z3e.default.parse(e)}static parseSchemaRbToJSON(e){return t6e.default.parse(e)}static parseMSSQLToJSON(e){return Q3e.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 W7.create(e)}}},r6e=n6e;function i6e(e,t,n={isNormalized:!0,includeRecords:!0}){let r=a6e(n),i=new r6e().parse(e,`dbmlv2`);return $9.export(i.normalize(),t,r)}function a6e(e={}){if(typeof e==`boolean`)return{isNormalized:e,includeRecords:!0};let{isNormalized:t=!0,includeRecords:n=!0}=e;return{isNormalized:t,includeRecords:n}}var o6e={export:i6e},s6e=class{static export(e,t,n={isNormalized:!0,includeRecords:!0}){let{isNormalized:r,includeRecords:i}=a6e(n),a=e instanceof Iy?e.normalize():e,o=``;switch(t){case`dbml`:o=nve.export(a,{includeRecords:i});break;case`mysql`:o=ive.export(a);break;case`postgres`:o=lve.export(a);break;case`json`:o=Hve.export(e,{isNormalized:r});break;case`mssql`:o=Wve.export(a);break;case`oracle`:o=Kve.export(a);break;default:break}return o}},$9=s6e,c6e=e=>new Iy(e),l6e=e=>e.map(e=>{let{name:t,endpoints:n,onDelete:r,onUpdate:i}=e;return new S1e({name:t,endpoints:n.map(e=>new M7(e)),onDelete:r,onUpdate:i}).toJSON()}),u6e=e=>e.map(e=>{let{name:t,schemaName:n,values:r}=e;return new N7({name:t,schemaName:n,values:r})}),d6e=(e,t)=>e.map(e=>{let n=t[e.name]||{};return new A7({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})}),f6e=e=>e.map(e=>{let{name:t,unique:n,pk:r,type:i,columns:a}=e;return new k7({name:t,unique:n,pk:r,type:i,columns:a})}),p6e=(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 j7({name:a,schemaName:o,fields:d6e(t[c],l),indexes:f6e(n[c]||[]),note:s,checks:r[c]})}),m6e=e=>{let{tables:t,fields:n,indexes:r,refs:i,enums:a,tableConstraints:o,checks:s}=e;try{let e=p6e(t,n,r,s,o),c=u6e(a);return c6e({schemas:[],tables:e,refs:l6e(i),enums:c,tableGroups:[],aliases:[],project:{}})}catch(e){throw Error(e)}};function h6e(e,t,n={includeRecords:!0}){let{includeRecords:r=!0}=n,i=new r6e().parse(e,t);return $9.export(i.normalize(),`dbml`,{includeRecords:r})}function g6e(e){let t=m6e(e);return $9.export(t.normalize(),`dbml`)}var _6e={import:h6e,generateDbml:g6e};function v6e(e,t,n){let r=new hv;return r.setSource(n),r.renameTable(e,t)}function y6e(e,t,n){let r=new hv;return r.setSource(e),r.syncDiagramView(t,n)}function b6e(e){let t=new hv;return t.setSource(e),t.findDiagramViewBlocks()}const x6e=`7.1.0`,S6e=`7.1.0`;exports.CompilerError=W7,exports.ModelExporter=$9,exports.Parser=r6e,exports.VERSION=`7.1.0`,exports.addDoubleQuoteIfNeeded=$_,exports.dbmlMonarchTokensProvider=npe,exports.exporter=o6e,exports.findDiagramViewBlocks=b6e,exports.formatRecordValue=Dfe,exports.importer=_6e,exports.isBinaryType=Gh,exports.isBooleanType=Uh,exports.isDateTimeType=Kh,exports.isFloatType=Vh,exports.isIntegerType=Bh,exports.isNumericType=Hh,exports.isSerialType=qh,exports.isStringType=Wh,exports.renameTable=v6e,exports.syncDiagramView=y6e,exports.tryExtractBoolean=F_,exports.tryExtractDateTime=L_,exports.tryExtractEnum=Ide,exports.tryExtractInteger=Nde,exports.tryExtractNumeric=P_,exports.tryExtractString=I_;
package/lib/index.mjs CHANGED
@@ -1822037,5 +1822037,5 @@ function findDiagramViewBlocks(_) {
1822037
1822037
  let HY = new Compiler();
1822038
1822038
  return HY.setSource(_), HY.findDiagramViewBlocks();
1822039
1822039
  }
1822040
- const VERSION = "7.0.1-alpha.0";
1822040
+ const VERSION = "7.1.0";
1822041
1822041
  export { CompilerError, ModelExporter_default as ModelExporter, Parser_default as Parser, VERSION, addDoubleQuoteIfNeeded, dbmlMonarchTokensProvider, export_default as exporter, findDiagramViewBlocks, formatRecordValue, import_default as importer, isBinaryType, isBooleanType, isDateTimeType, isFloatType, isIntegerType, isNumericType, isSerialType, isStringType, renameTable, syncDiagramView, tryExtractBoolean, tryExtractDateTime, tryExtractEnum, tryExtractInteger, tryExtractNumeric, tryExtractString };
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": "7.0.1-alpha.0",
4
+ "version": "7.1.0",
5
5
  "description": "> TODO: description",
6
6
  "author": "Holistics <dev@holistics.io>",
7
7
  "license": "Apache-2.0",
@@ -46,7 +46,7 @@
46
46
  "lint:fix": "eslint --fix ."
47
47
  },
48
48
  "dependencies": {
49
- "@dbml/parse": "^7.0.1-alpha.0",
49
+ "@dbml/parse": "^7.1.0",
50
50
  "antlr4": "^4.13.1",
51
51
  "lodash": "^4.17.15",
52
52
  "lodash-es": "^4.17.15",
@@ -57,7 +57,7 @@
57
57
  "devDependencies": {
58
58
  "bluebird": "^3.5.5"
59
59
  },
60
- "gitHead": "293c44d86dc64c67d834c00047d07bee142cbb84",
60
+ "gitHead": "ff4e35e824dfebc5237678dc03c983b409fbddc9",
61
61
  "engines": {
62
62
  "node": ">=16"
63
63
  }
File without changes
File without changes
File without changes
File without changes
File without changes
package/types/index.d.ts CHANGED
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes