@dbml/core 8.3.1-custom-metadata.3 → 8.3.1-custom-metadata.5

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
@@ -9,7 +9,9 @@ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e=Object.
9
9
  `):``}static getTableGroupSettings(e){let t=[];return e.color&&t.push(`color: ${e.color}`),t.length?` [${t.join(`, `)}]`:``}static exportTableGroups(t,n){let r=t.map(t=>{let r=n.tableGroups[t],i=e.getTableGroupSettings(r),a=r.note?` Note: ${e.escapeNote(r.note)}\n`:``;return`TableGroup ${`"${r.name}"`}${i} {\n${r.tableIds.reduce((e,t)=>{let r=n.tables[t],i=n.schemas[r.schemaId];return`${e}${` ${Dp(i,n)?`"${i.name}".`:``}"${r.name}"`}\n`},``)}${a}}\n`});return r.length?r.join(`
10
10
  `):``}static getStickyNoteSettings(e){let t=``;return e.color&&(t+=`color: ${e.color}`),t?` [${t}]`:``}static exportStickyNotes(t){return wc(t.notes,(t,n)=>{let r=` ${e.escapeNote(n.content)}`,i=e.getStickyNoteSettings(n),a=`Note ${n.name}${i} {\n${r}\n}\n`;return t?`${t}\n${a}`:a},``)}static exportRecords(e){let{records:t}=e;if(!t||dc(t))return``;let n=lc(Object.values(t),e=>`${e.schemaName||``}.${e.tableName}`);return Object.values(n).map(e=>{let{schemaName:t,tableName:n}=e[0],r=t?`${(0,f.addDoubleQuoteIfNeeded)(t)}.${(0,f.addDoubleQuoteIfNeeded)(n)}`:(0,f.addDoubleQuoteIfNeeded)(n),i=[...new Set(e.flatMap(e=>e.columns))];return`Records ${r}(${i.map(f.addDoubleQuoteIfNeeded).join(`, `)}) {\n${e.flatMap(e=>{let t=i.map(t=>e.columns.indexOf(t));return e.values.map(e=>t.map(t=>t===-1?{value:null,type:`expression`}:e[t]))}).map(e=>` ${e.map(f.formatRecordValue).join(`, `)}`).join(`
11
11
  `)}\n}\n`}).join(`
12
- `)}static export(t,n){let r=[],i=t.database[1],{includeRecords:a}=n;return i.schemaIds.forEach(n=>{let{enumIds:i,tableIds:a,tableGroupIds:o,refIds:s}=t.schemas[n];dc(i)||r.push(e.exportEnums(i,t)),dc(a)||r.push(e.exportTables(a,t)),dc(o)||r.push(e.exportTableGroups(o,t)),dc(s)||r.push(e.exportRefs(s,t))}),dc(t.notes)||r.push(e.exportStickyNotes(t)),a&&!dc(t.records)&&r.push(e.exportRecords(t)),r.join(`
12
+ `)}static exportMetadata(t){let n=[],r=t.database[1],i=(t,n)=>`Metadata ${t} {\n${Object.entries(n).map(([t,n])=>` ${t}: ${e.escapeNote(n)}`).join(`
13
+ `)}\n}\n`;return r.schemaIds.forEach(e=>{let{tableIds:r,tableGroupIds:a}=t.schemas[e];r.forEach(e=>{let r=t.tables[e],a=t.schemas[r.schemaId],o=Dp(a,t)?`"${a.name}".`:``;dc(r.metadata)||n.push(i(`Table ${o}"${r.name}"`,r.metadata)),r.fieldIds.map(e=>t.fields[e]).filter(e=>!dc(e.metadata)).forEach(e=>n.push(i(`Column ${o}"${r.name}"."${e.name}"`,e.metadata)))}),a.map(e=>t.tableGroups[e]).filter(e=>!dc(e.metadata)).forEach(e=>n.push(i(`TableGroup "${e.name}"`,e.metadata)))}),Object.values(t.notes).filter(e=>!dc(e.metadata)).forEach(e=>n.push(i(`Note ${e.name}`,e.metadata))),n.join(`
14
+ `)}static export(t,n){let r=[],i=t.database[1],{includeRecords:a}=n;i.schemaIds.forEach(n=>{let{enumIds:i,tableIds:a,tableGroupIds:o,refIds:s}=t.schemas[n];dc(i)||r.push(e.exportEnums(i,t)),dc(a)||r.push(e.exportTables(a,t)),dc(o)||r.push(e.exportTableGroups(o,t)),dc(s)||r.push(e.exportRefs(s,t))}),dc(t.notes)||r.push(e.exportStickyNotes(t)),a&&!dc(t.records)&&r.push(e.exportRecords(t));let o=e.exportMetadata(t);return o&&r.push(o),r.join(`
13
15
  `)}};Ec();var Eee=class e{static exportRecords(e){let t=Object.values(e.records||{});return dc(t)?[]:t.map(e=>{let{schemaName:t,tableName:n,columns:r,values:i}=e,a=t?`\`${t}\`.\`${n}\``:`\`${n}\``,o=r.length>0?`(\`${r.join("`, `")}\`)`:``,s=e=>e.value===null?`NULL`:e.type===`expression`||(0,f.isNumericType)(e.type)?e.value:(0,f.isBooleanType)(e.type)?String(e.value).toUpperCase()===`TRUE`?`TRUE`:`FALSE`:(0,f.isStringType)(e.type)||(0,f.isBinaryType)(e.type)||(0,f.isDateTimeType)(e.type)?`'${e.value.replace(/'/g,`''`).replace(/\\/g,`\\\\`)}'`:`CAST('${e.value.replace(/'/g,`''`).replace(/\\/g,`\\\\`)}' AS ${e.type})`;return`INSERT INTO ${a} ${o}\nVALUES\n ${i.map(e=>`(${e.map(s).join(`, `)})`).join(`,
14
16
  `)};`})}static getFieldLines(e,t){return t.tables[e].fieldIds.map(e=>{let n=t.fields[e],r=``;if(n.enumId){let e=t.enums[n.enumId];r=`\`${n.name}\` ENUM (`;let i=e.valueIds.map(e=>`'${t.enumValues[e].name}'`);r+=`${i.join(`, `)})`}else r=`\`${n.name}\` ${n.type.type_name===`varchar`?`varchar(255)`:n.type.type_name}`;if(n.unique&&(r+=` UNIQUE`),n.pk&&(r+=` PRIMARY KEY`),n.not_null&&(r+=` NOT NULL`),n.increment&&(r+=` AUTO_INCREMENT`),n.checkIds&&n.checkIds.length>0)if(n.checkIds.length===1){let e=t.checks[n.checkIds[0]];e.name&&(r+=` CONSTRAINT \`${e.name}\``),r+=` CHECK (${e.expression})`}else{let e=n.checkIds.map(e=>`(${t.checks[e].expression})`);r+=` CHECK (${e.join(` AND `)})`}return n.dbdefault&&(n.dbdefault.type===`boolean`&&(n.dbdefault.value===null||typeof n.dbdefault.value==`string`&&n.dbdefault.value.toLowerCase()===`null`)||(n.dbdefault.type===`expression`?r+=` DEFAULT (${n.dbdefault.value})`:n.dbdefault.type===`string`?r+=` DEFAULT '${n.dbdefault.value}'`:r+=` DEFAULT ${n.dbdefault.value}`)),n.note&&(r+=` COMMENT '${n.note.replace(/'/g,`''`)}'`),r})}static getCompositePKs(e,t){let n=t.tables[e];return(n.indexIds?n.indexIds.filter(e=>t.indexes[e].pk):[]).map(e=>{let n=t.indexes[e],r=`PRIMARY KEY`,i=[];return n.columnIds.forEach(e=>{let n=t.indexColumns[e],r=``;r=n.type===`expression`?`(${n.value})`:`\`${n.value}\``,i.push(r)}),r+=` (${i.join(`, `)})`,r})}static getCheckLines(e,t){let n=t.tables[e];return!n.checkIds||n.checkIds.length===0?[]:n.checkIds.map(e=>{let n=t.checks[e],r=``;return n.name&&(r=`CONSTRAINT \`${n.name}\` `),r+=`CHECK (${n.expression})`,r})}static getTableContentArr(t,n){return t.map(t=>({tableId:t,fieldContents:e.getFieldLines(t,n),checkContents:e.getCheckLines(t,n),compositePKs:e.getCompositePKs(t,n)}))}static exportTables(t,n){return e.getTableContentArr(t,n).map(e=>{let t=[...e.fieldContents,...e.checkContents,...e.compositePKs],r=n.tables[e.tableId],i=n.schemas[r.schemaId];return`CREATE TABLE ${Dp(i,n)?`\`${i.name}\`.`:``}\`${r.name}\` (\n${t.map(e=>` ${e}`).join(`,
15
17
  `)}\n);\n`})}static buildFieldName(e,t){return`(${e.map(e=>`\`${t.fields[e].name}\``).join(`, `)})`}static buildTableManyToMany(e,t,n,r,i){let a=`CREATE TABLE ${Dp(r,i)?`\`${r.name}\`.`:``}\`${n}\` (\n`,o=[...e.keys()].join("`, `"),s=[...t.keys()].join("`, `");return e.forEach((e,t)=>{a+=` \`${t}\` ${e},\n`}),t.forEach((e,t)=>{a+=` \`${t}\` ${e},\n`}),a+=` PRIMARY KEY (\`${o}\`, \`${s}\`)\n`,a+=`);
@@ -121,4 +123,4 @@ function print() { __p += __j.call(arguments, '') }
121
123
  `,!1),pt=`
122
124
  `,mt=Dt(`
123
125
  `,!1),ht=At(`whitespace`),gt=/^[ \t\r\n\r]/,_t=Ot([` `,` `,`\r`,`
124
- `,`\r`],!1,!1),vt=` `,yt=Dt(` `,!1),S=0,bt=0,xt=[{line:1,column:1}],St=0,Ct=[],wt=0,Tt;if(`startRule`in t){if(!(t.startRule in i))throw Error(`Can't start parsing from rule "`+t.startRule+`".`);a=i[t.startRule]}function Et(e,t){throw t=t===void 0?Mt(bt,S):t,Pt(e,t)}function Dt(e,t){return{type:`literal`,text:e,ignoreCase:t}}function Ot(e,t,n){return{type:`class`,parts:e,inverted:t,ignoreCase:n}}function kt(){return{type:`end`}}function At(e){return{type:`other`,description:e}}function jt(t){var n=xt[t],r;if(n)return n;for(r=t-1;!xt[r];)r--;for(n=xt[r],n={line:n.line,column:n.column};r<t;)e.charCodeAt(r)===10?(n.line++,n.column=1):n.column++,r++;return xt[t]=n,n}function Mt(e,t){var n=jt(e),r=jt(t);return{start:{offset:e,line:n.line,column:n.column},end:{offset:t,line:r.line,column:r.column}}}function Nt(e){S<St||(S>St&&(St=S,Ct=[]),Ct.push(e))}function Pt(e,t){return new r(e,null,null,t)}function Ft(e,t,n){return new r(r.buildMessage(e,t),e,t,n)}function It(){for(var e=S,t=[],r=Lt();r!==n;)t.push(r),r=Lt();return t!==n&&(bt=e,t=o()),e=t,e}function Lt(){for(var e=S,t=[],r=Dn();r!==n;)t.push(r),r=Dn();return t===n?(S=e,e=n):(r=Rt(),r===n?(S=e,e=n):(t=[t,r],e=t)),e===n&&(e=vn(),e===n&&(e=_n(),e===n&&(e=Cn()))),e}function Rt(){var e=S,t=Ht();return t!==n&&(bt=e,t=s(t)),e=t,e===n&&(e=S,t=Bt(),t!==n&&(bt=e,t=c(t)),e=t,e===n&&(e=zt(),e===n&&(e=ln()))),e}function zt(){for(var t=S,r=[],i=On(),a,o,s,c,f,p,m;i!==n;)r.push(i),i=On();if(r!==n)if(i=rn(),i!==n){for(a=[],o=On();o!==n;)a.push(o),o=On();if(a!==n)if(o=pn(),o===n&&(o=un()),o!==n)if(e.charCodeAt(S)===44?(s=l,S++):(s=n,wt===0&&Nt(u)),s!==n){for(c=[],f=On();f!==n;)c.push(f),f=On();if(c!==n)if(f=un(),f!==n){for(p=[],m=Zt();m!==n;)p.push(m),m=Zt();p===n?(S=t,t=n):(bt=t,r=d(o,f,p),t=r)}else S=t,t=n;else S=t,t=n}else S=t,t=n;else S=t,t=n;else S=t,t=n}else S=t,t=n;else S=t,t=n;return t}function Bt(){for(var t=S,r=[],i=On(),a,o,s,c,d,p,m;i!==n;)r.push(i),i=On();if(r!==n)if(i=an(),i!==n){for(a=[],o=On();o!==n;)a.push(o),o=On();if(a!==n)if(o=un(),o!==n)if(e.charCodeAt(S)===44?(s=l,S++):(s=n,wt===0&&Nt(u)),s!==n){for(c=[],d=On();d!==n;)c.push(d),d=On();if(c!==n)if(d=un(),d!==n){for(p=[],m=Vt();m!==n;)p.push(m),m=Vt();p===n?(S=t,t=n):(bt=t,r=f(o,d,p),t=r)}else S=t,t=n;else S=t,t=n}else S=t,t=n;else S=t,t=n;else S=t,t=n}else S=t,t=n;else S=t,t=n;return t}function Vt(){var t=S,r,i,a,o,s,c;if(e.charCodeAt(S)===44?(r=l,S++):(r=n,wt===0&&Nt(u)),r!==n){for(i=[],a=On();a!==n;)i.push(a),a=On();if(i!==n)if(a=on(),a!==n)if(e.charCodeAt(S)===58?(o=p,S++):(o=n,wt===0&&Nt(m)),o!==n){for(s=[],c=On();c!==n;)s.push(c),c=On();s===n?(S=t,t=n):(c=un(),c===n?(S=t,t=n):(bt=t,r=h(c),t=r))}else S=t,t=n;else S=t,t=n;else S=t,t=n}else S=t,t=n;if(t===n){if(t=S,e.charCodeAt(S)===44?(r=l,S++):(r=n,wt===0&&Nt(u)),r!==n){for(i=[],a=On();a!==n;)i.push(a),a=On();if(i!==n)if(a=sn(),a!==n)if(e.charCodeAt(S)===58?(o=p,S++):(o=n,wt===0&&Nt(m)),o!==n){for(s=[],c=On();c!==n;)s.push(c),c=On();s===n?(S=t,t=n):(c=un(),c===n?(S=t,t=n):(bt=t,r=g(c),t=r))}else S=t,t=n;else S=t,t=n;else S=t,t=n}else S=t,t=n;if(t===n)if(t=S,e.charCodeAt(S)===44?(r=l,S++):(r=n,wt===0&&Nt(u)),r!==n){for(i=[],a=On();a!==n;)i.push(a),a=On();if(i!==n)if(a=Qt(),a!==n)if(e.charCodeAt(S)===58?(o=p,S++):(o=n,wt===0&&Nt(m)),o!==n){for(s=[],c=On();c!==n;)s.push(c),c=On();s===n?(S=t,t=n):(c=pn(),c===n?(S=t,t=n):(bt=t,r=_(a,c),t=r))}else S=t,t=n;else S=t,t=n;else S=t,t=n}else S=t,t=n}return t}function Ht(){var e=S,t=$t(),r,i,a,o,s,c;if(t!==n){for(r=[],i=On();i!==n;)r.push(i),i=On();r===n?(S=e,e=n):(i=un(),i===n?(S=e,e=n):(a=yn(),a===n?(S=e,e=n):(o=wn(),o===n?(S=e,e=n):(s=Ut(),s===n?(S=e,e=n):(c=_n(),c===n?(S=e,e=n):(bt=e,t=v(i,s),e=t))))))}else S=e,e=n;return e}function Ut(){for(var e=S,t=[],r=Wt();r!==n;)t.push(r),r=Wt();return t!==n&&(bt=e,t=y(t)),e=t,e}function Wt(){for(var e=S,t=[],r=Dn(),i,a;r!==n;)t.push(r),r=Dn();if(t!==n)if(r=Gt(),r!==n){for(i=[],a=bn();a!==n;)i.push(a),a=bn();i===n?(S=e,e=n):(a=wn(),a===n?(S=e,e=n):(bt=e,t=b(r),e=t))}else S=e,e=n;else S=e,e=n;return e}function Gt(){var e=Kt(),t;return e===n&&(e=S,t=qt(),t!==n&&(bt=e,t=x(t)),e=t,e===n&&(e=S,t=Jt(),t!==n&&(bt=e,t=ee(t)),e=t,e===n&&(e=S,t=Yt(),t!==n&&(bt=e,t=te(t)),e=t))),e}function Kt(){var e=S,t=en(),r,i;if(t!==n){if(r=[],i=On(),i!==n)for(;i!==n;)r.push(i),i=On();else r=n;r===n?(S=e,e=n):(i=yn(),i===n?(S=e,e=n):(t=[t,r,i],e=t))}else S=e,e=n;return e}function qt(){var e=S,t=tn(),r,i;if(t!==n){if(r=[],i=On(),i!==n)for(;i!==n;)r.push(i),i=On();else r=n;r===n?(S=e,e=n):(i=Xt(),i===n?(S=e,e=n):(bt=e,t=ne(i),e=t))}else S=e,e=n;return e}function Jt(){var e=S,t=nn(),r,i,a,o;if(t!==n){if(r=[],i=On(),i!==n)for(;i!==n;)r.push(i),i=On();else r=n;if(r!==n)if(i=un(),i!==n){for(a=[],o=Zt();o!==n;)a.push(o),o=Zt();a===n?(S=e,e=n):(bt=e,t=re(i,a),e=t)}else S=e,e=n;else S=e,e=n}else S=e,e=n;return e}function Yt(){var e=S,t=hn(),r,i;if(t!==n){if(r=[],i=On(),i!==n)for(;i!==n;)r.push(i),i=On();else r=n;r===n?(S=e,e=n):(i=un(),i===n?(S=e,e=n):(bt=e,t=ie(t,i),e=t))}else S=e,e=n;return e}function Xt(){var t=S,r,i;return e.charCodeAt(S)===58?(r=p,S++):(r=n,wt===0&&Nt(m)),r===n?(S=t,t=n):(i=mn(),i===n?(S=t,t=n):(bt=t,r=ae(i),t=r)),t===n&&(t=S,r=un(),r!==n&&(bt=t,r=ae(r)),t=r),t}function Zt(){var t=S,r,i,a,o,s,c;if(e.charCodeAt(S)===44?(r=l,S++):(r=n,wt===0&&Nt(u)),r!==n){for(i=[],a=On();a!==n;)i.push(a),a=On();if(i!==n)if(e.substr(S,4).toLowerCase()===oe?(a=e.substr(S,4),S+=4):(a=n,wt===0&&Nt(se)),a!==n)if(e.charCodeAt(S)===58?(o=p,S++):(o=n,wt===0&&Nt(m)),o!==n){for(s=[],c=On();c!==n;)s.push(c),c=On();s===n?(S=t,t=n):(c=un(),c===n?(S=t,t=n):(bt=t,r=ce(c),t=r))}else S=t,t=n;else S=t,t=n;else S=t,t=n}else S=t,t=n;return t}function Qt(){var t;return e.substr(S,9).toLowerCase()===le?(t=e.substr(S,9),S+=9):(t=n,wt===0&&Nt(ue)),t===n&&(e.substr(S,9).toLowerCase()===de?(t=e.substr(S,9),S+=9):(t=n,wt===0&&Nt(fe))),t}function $t(){var t;return wt++,e.substr(S,12).toLowerCase()===me?(t=e.substr(S,12),S+=12):(t=n,wt===0&&Nt(he)),wt--,t===n&&wt===0&&Nt(pe),t}function en(){var t,r,i;return wt++,t=S,r=gn(),r===n?(S=t,t=n):(e.substr(S,6)===_e?(i=_e,S+=6):(i=n,wt===0&&Nt(ve)),i===n?(S=t,t=n):(r=[r,i],t=r)),wt--,t===n&&(r=n,wt===0&&Nt(ge)),t}function tn(){var t,r,i;return wt++,t=S,r=gn(),r===n?(S=t,t=n):(e.substr(S,11)===be?(i=be,S+=11):(i=n,wt===0&&Nt(xe)),i===n?(S=t,t=n):(r=[r,i],t=r)),wt--,t===n&&(r=n,wt===0&&Nt(ye)),t}function nn(){var t,r,i;return wt++,t=S,r=gn(),r===n?(S=t,t=n):(e.substr(S,17)===Ce?(i=Ce,S+=17):(i=n,wt===0&&Nt(we)),i===n?(S=t,t=n):(r=[r,i],t=r)),wt--,t===n&&(r=n,wt===0&&Nt(Se)),t}function rn(){var t;return wt++,e.substr(S,20).toLowerCase()===Ee?(t=e.substr(S,20),S+=20):(t=n,wt===0&&Nt(De)),wt--,t===n&&wt===0&&Nt(Te),t}function an(){var t;return wt++,e.substr(S,15).toLowerCase()===ke?(t=e.substr(S,15),S+=15):(t=n,wt===0&&Nt(Ae)),wt--,t===n&&wt===0&&Nt(Oe),t}function on(){var t;return wt++,e.substr(S,6)===Me?(t=Me,S+=6):(t=n,wt===0&&Nt(Ne)),wt--,t===n&&wt===0&&Nt(je),t}function sn(){var t;return wt++,e.substr(S,11)===Fe?(t=Fe,S+=11):(t=n,wt===0&&Nt(Ie)),wt--,t===n&&wt===0&&Nt(Pe),t}function cn(){var t;return e.substr(S,3)===Le?(t=Le,S+=3):(t=n,wt===0&&Nt(Re)),t}function ln(){var e=S,t=mn(),r,i;return t===n?(S=e,e=n):(r=yn(),r===n?(S=e,e=n):(i=wn(),i===n&&(i=null),i===n?(S=e,e=n):(t=[t,r,i],e=t))),e}function un(){var e=dn();return e===n&&(e=fn()),e}function dn(){var t=S,r=Sn(),i,a;if(r!==n){for(i=[],ze.test(e.charAt(S))?(a=e.charAt(S),S++):(a=n,wt===0&&Nt(Be));a!==n;)i.push(a),ze.test(e.charAt(S))?(a=e.charAt(S),S++):(a=n,wt===0&&Nt(Be));i===n?(S=t,t=n):(a=Sn(),a===n?(S=t,t=n):(bt=t,r=Ve(i),t=r))}else S=t,t=n;return t}function fn(){var t=S,r=xn(),i,a;if(r!==n){for(i=[],He.test(e.charAt(S))?(a=e.charAt(S),S++):(a=n,wt===0&&Nt(Ue));a!==n;)i.push(a),He.test(e.charAt(S))?(a=e.charAt(S),S++):(a=n,wt===0&&Nt(Ue));i===n?(S=t,t=n):(a=xn(),a===n?(S=t,t=n):(bt=t,r=Ve(i),t=r))}else S=t,t=n;return t}function pn(){var t=S,r,i,a;if(e.charCodeAt(S)===58?(r=p,S++):(r=n,wt===0&&Nt(m)),r!==n){for(i=[],a=gn();a!==n;)i.push(a),a=gn();i===n?(S=t,t=n):(bt=t,r=Ve(i),t=r)}else S=t,t=n;return t}function mn(){var e=S,t=[],r=gn();if(r!==n)for(;r!==n;)t.push(r),r=gn();else t=n;return t!==n&&(bt=e,t=Ve(t)),e=t,e}function hn(){var t=S,r=gn(),i,a,o;if(r!==n)if(e.charCodeAt(S)===46?(i=We,S++):(i=n,wt===0&&Nt(Ge)),i!==n){if(a=[],o=gn(),o!==n)for(;o!==n;)a.push(o),o=gn();else a=n;a===n?(S=t,t=n):(bt=t,r=Ve(a),t=r)}else S=t,t=n;else S=t,t=n;return t}function gn(){var t;return wt++,qe.test(e.charAt(S))?(t=e.charAt(S),S++):(t=n,wt===0&&Nt(Je)),wt--,t===n&&wt===0&&Nt(Ke),t}function _n(){for(var e=S,t=[],r=Dn(),i;r!==n;)t.push(r),r=Dn();return t===n?(S=e,e=n):(r=cn(),r===n?(S=e,e=n):(i=wn(),i===n&&(i=null),i===n?(S=e,e=n):(t=[t,r,i],e=t))),e}function vn(){var t,r,i,a,o;for(wt++,t=S,r=[],i=Dn();i!==n;)r.push(i),i=Dn();return r===n?(S=t,t=n):(e.charCodeAt(S)===35?(i=Xe,S++):(i=n,wt===0&&Nt(Ze)),i===n?(S=t,t=n):(a=yn(),a===n?(S=t,t=n):(o=wn(),o===n&&(o=null),o===n?(S=t,t=n):(r=[r,i,a,o],t=r)))),wt--,t===n&&(r=n,wt===0&&Nt(Ye)),t}function yn(){var t,r;for(wt++,t=[],$e.test(e.charAt(S))?(r=e.charAt(S),S++):(r=n,wt===0&&Nt(et));r!==n;)t.push(r),$e.test(e.charAt(S))?(r=e.charAt(S),S++):(r=n,wt===0&&Nt(et));return wt--,t===n&&(r=n,wt===0&&Nt(Qe)),t}function bn(){var t;return $e.test(e.charAt(S))?(t=e.charAt(S),S++):(t=n,wt===0&&Nt(et)),t}function xn(){var t;return e.charCodeAt(S)===39?(t=tt,S++):(t=n,wt===0&&Nt(nt)),t}function Sn(){var t;return e.charCodeAt(S)===34?(t=rt,S++):(t=n,wt===0&&Nt(it)),t}function Cn(){var e=[],t=Tn();if(t===n&&(t=Dn()),t!==n)for(;t!==n;)e.push(t),t=Tn(),t===n&&(t=Dn());else e=n;return e}function wn(){for(var e=S,t=[],r=On();r!==n;)t.push(r),r=On();return t===n?(S=e,e=n):(r=En(),r===n?(S=e,e=n):(t=[t,r],e=t)),e}function Tn(){var t,r,i;return wt++,t=S,e.substr(S,2)===ot?(r=ot,S+=2):(r=n,wt===0&&Nt(st)),r===n?(S=t,t=n):(ct.test(e.charAt(S))?(i=e.charAt(S),S++):(i=n,wt===0&&Nt(lt)),i===n&&(i=null),i===n?(S=t,t=n):(r=[r,i],t=r)),wt--,t===n&&(r=n,wt===0&&Nt(at)),t}function En(){var t;return wt++,e.substr(S,2)===dt?(t=dt,S+=2):(t=n,wt===0&&Nt(ft)),t===n&&(e.charCodeAt(S)===10?(t=pt,S++):(t=n,wt===0&&Nt(mt))),wt--,t===n&&wt===0&&Nt(ut),t}function Dn(){var t;return wt++,gt.test(e.charAt(S))?(t=e.charAt(S),S++):(t=n,wt===0&&Nt(_t)),wt--,t===n&&wt===0&&Nt(ht),t}function On(){var t;return e.charCodeAt(S)===32?(t=vt,S++):(t=n,wt===0&&Nt(yt)),t}var kn=$7(),An=Q7();let jn={tables:[],refs:[]};function Mn(e){jn.tables.find(t=>t.name==e.name)?Et(`Duplicated table name`):(e.fields.find(e=>e.name===`id`)||e.fields.unshift({name:`id`,type:{type_name:`varchar`}}),jn.tables.push(e))}function Nn(e,t,n){let r=jn.tables.find(t=>t.name===e);r||Et("Table ${tableName} not found"),r.checks||=[];let i={expression:t};n&&(i.name=n),r.checks.push(i)}function Pn(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 Fn(e,t){return e.tableName==t.tableName&&An.isEqual(An.sortBy(e.fieldNames),An.sortBy(t.fieldNames))}function In(e,t){return Fn(e[0],t[0])&&Fn(e[1],t[1])}function Ln(e,t){return In(e.endpoints,t.endpoints)||In(e.endpoints,t.endpoints.slice().reverse())}function Rn(e){e&&(jn.refs.find(t=>Ln(t,e))&&Et(`Duplicated references`),jn.refs.push(e))}function zn(e=[]){if(!(!e||e.length===0))for(let t=0;t<e.length;t+=1)Rn(e[t])}function Bn(e){let{tables:t}=jn,{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=`${kn.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 Vn(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 Hn(e,t){if(!t||t.length===0)return[];let n=[];for(let r=0;r<t.length;r+=1){let i=t[r],a=kn.plural(i),{tables:o}=jn,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 Un(e){let{tables:t,refs:n}=e,r=t.map(e=>{let{name:t}=e;return{name:t,field:`${kn.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=>Ln(t,e))||n.push(e)}}}return e}if(Tt=a(),Tt!==n&&S===e.length)return Tt;throw Tt!==n&&S<e.length&&Nt(kt()),Ft(Ct,St<e.length?e.charAt(St):null,St<e.length?Mt(St,St+1):Mt(St,St))}t.exports={SyntaxError:r,parse:i}})),UNe=u(cAe()),WNe=u(zNe()),GNe=u(BNe()),KNe=u(VNe()),qNe=u(HNe()),JNe=class e{constructor(){this.layout=new f.MemoryProjectLayout,this.DBMLCompiler=new f.Compiler(this.layout)}static parseJSONToDatabase(e){return new Fp(e)}static parseMySQLToJSONv2(e){return Z7(e,`mysql`)}static parseMySQLToJSON(e){return GNe.default.parse(e)}static parsePostgresToJSONv2(e){return Z7(e,`postgres`)}static parsePostgresToJSON(e){return KNe.default.parse(e)}static parseDBMLToJSONv2(e){let t=new f.MemoryProjectLayout;t.setSource(f.DEFAULT_ENTRY,e);let n=new f.Compiler(t),r=YNe(n.parse.errors(f.DEFAULT_ENTRY));if(r.length>0)throw W7.create(r);return n.parse.rawDb(f.DEFAULT_ENTRY)}static parseDBMLToJSON(e){return UNe.default.parse(e)}static parseSchemaRbToJSON(e){return qNe.default.parse(e)}static parseMSSQLToJSON(e){return WNe.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)}getDbmlSource(e){return e=typeof e==`string`?f.Filepath.from(e):e,this.layout.getSource(e)}setDbmlSource(e,t){e=typeof e==`string`?f.Filepath.from(e):e,t===void 0?this.layout.deleteSource(e):this.layout.setSource(e,t)}deleteDbmlSource(e){e=typeof e==`string`?f.Filepath.from(e):e,this.layout.deleteSource(e)}clearDbmlSource(){this.layout.clearSource()}parseDbmlProject(t){t=typeof t==`string`?f.Filepath.from(t):t;let n=this.DBMLCompiler.interpretFile(t),r=YNe(n.getErrors());if(r.length>0)throw W7.create(r);return e.parseJSONToDatabase(n.getValue()||{})}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);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)}}};function YNe(e){return e.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}))}function XNe(e,t,n={isNormalized:!0,includeRecords:!0}){let r=ZNe(n),i=new JNe().parse(e,`dbmlv2`);return $9.export(i.normalize(),t,r)}function ZNe(e={}){if(typeof e==`boolean`)return{isNormalized:e,includeRecords:!0};let{isNormalized:t=!0,includeRecords:n=!0}=e;return{isNormalized:t,includeRecords:n}}var QNe={export:XNe},$9=class{static export(e,t,n={isNormalized:!0,includeRecords:!0}){let{isNormalized:r,includeRecords:i}=ZNe(n),a=e instanceof Fp?e.normalize():e,o=``;switch(t){case`dbml`:o=Tee.export(a,{includeRecords:i});break;case`mysql`:o=Eee.export(a);break;case`postgres`:o=Aee.export(a);break;case`json`:o=Gee.export(e,{isNormalized:r});break;case`mssql`:o=Kee.export(a);break;case`oracle`:o=qee.export(a);break;default:break}return o}},$Ne=e=>new Fp(e),ePe=e=>e.map(e=>{let{name:t,endpoints:n,onDelete:r,onUpdate:i}=e;return new Bke({name:t,endpoints:n.map(e=>new M7(e)),onDelete:r,onUpdate:i}).toJSON()}),tPe=e=>e.map(e=>{let{name:t,schemaName:n,values:r}=e;return new N7({name:t,schemaName:n,values:r})}),nPe=(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})}),rPe=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})}),iPe=(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:nPe(t[c],l),indexes:rPe(n[c]||[]),note:s,checks:r[c]})}),aPe=e=>{let{tables:t,fields:n,indexes:r,refs:i,enums:a,tableConstraints:o,checks:s}=e;try{let e=iPe(t,n,r,s,o),c=tPe(a);return $Ne({schemas:[],tables:e,refs:ePe(i),enums:c,tableGroups:[],aliases:[],project:{}})}catch(e){throw Error(e)}};function oPe(e,t,n={includeRecords:!0}){let{includeRecords:r=!0}=n,i=new JNe().parse(e,t);return $9.export(i.normalize(),`dbml`,{includeRecords:r})}function sPe(e){let t=aPe(e);return $9.export(t.normalize(),`dbml`)}var cPe={import:oPe,generateDbml:sPe};function lPe(e,t,n){let r=new f.MemoryProjectLayout;return r.setSource(f.DEFAULT_ENTRY,n),new f.Compiler(r).renameTable(f.DEFAULT_ENTRY,e,t).get(f.DEFAULT_ENTRY.absolute)??n}function uPe(e,t,n){let r=new f.MemoryProjectLayout;return r.setSource(f.DEFAULT_ENTRY,e),new f.Compiler(r).syncDiagramView(f.DEFAULT_ENTRY,t,n)}function dPe(e){let t=new f.MemoryProjectLayout;return t.setSource(f.DEFAULT_ENTRY,e),new f.Compiler(t).findDiagramViewBlocks(f.DEFAULT_ENTRY)}var fPe=`8.3.1-custom-metadata.3`;exports.CompilerError=W7,Object.defineProperty(exports,"DEFAULT_ENTRY",{enumerable:!0,get:function(){return f.DEFAULT_ENTRY}}),Object.defineProperty(exports,"Filepath",{enumerable:!0,get:function(){return f.Filepath}}),exports.ModelExporter=$9,exports.Parser=JNe,exports.VERSION=fPe,Object.defineProperty(exports,"addDoubleQuoteIfNeeded",{enumerable:!0,get:function(){return f.addDoubleQuoteIfNeeded}}),Object.defineProperty(exports,"dbmlMonarchTokensProvider",{enumerable:!0,get:function(){return f.dbmlMonarchTokensProvider}}),exports.exporter=QNe,exports.findDiagramViewBlocks=dPe,Object.defineProperty(exports,"formatRecordValue",{enumerable:!0,get:function(){return f.formatRecordValue}}),exports.importer=cPe,Object.defineProperty(exports,"isBinaryType",{enumerable:!0,get:function(){return f.isBinaryType}}),Object.defineProperty(exports,"isBooleanType",{enumerable:!0,get:function(){return f.isBooleanType}}),Object.defineProperty(exports,"isDateTimeType",{enumerable:!0,get:function(){return f.isDateTimeType}}),Object.defineProperty(exports,"isFloatType",{enumerable:!0,get:function(){return f.isFloatType}}),Object.defineProperty(exports,"isIntegerType",{enumerable:!0,get:function(){return f.isIntegerType}}),Object.defineProperty(exports,"isNumericType",{enumerable:!0,get:function(){return f.isNumericType}}),Object.defineProperty(exports,"isSerialType",{enumerable:!0,get:function(){return f.isSerialType}}),Object.defineProperty(exports,"isStringType",{enumerable:!0,get:function(){return f.isStringType}}),exports.renameTable=lPe,exports.syncDiagramView=uPe,Object.defineProperty(exports,"tryExtractBoolean",{enumerable:!0,get:function(){return f.tryExtractBoolean}}),Object.defineProperty(exports,"tryExtractDateTime",{enumerable:!0,get:function(){return f.tryExtractDateTime}}),Object.defineProperty(exports,"tryExtractEnum",{enumerable:!0,get:function(){return f.tryExtractEnum}}),Object.defineProperty(exports,"tryExtractInteger",{enumerable:!0,get:function(){return f.tryExtractInteger}}),Object.defineProperty(exports,"tryExtractNumeric",{enumerable:!0,get:function(){return f.tryExtractNumeric}}),Object.defineProperty(exports,"tryExtractString",{enumerable:!0,get:function(){return f.tryExtractString}});
126
+ `,`\r`],!1,!1),vt=` `,yt=Dt(` `,!1),S=0,bt=0,xt=[{line:1,column:1}],St=0,Ct=[],wt=0,Tt;if(`startRule`in t){if(!(t.startRule in i))throw Error(`Can't start parsing from rule "`+t.startRule+`".`);a=i[t.startRule]}function Et(e,t){throw t=t===void 0?Mt(bt,S):t,Pt(e,t)}function Dt(e,t){return{type:`literal`,text:e,ignoreCase:t}}function Ot(e,t,n){return{type:`class`,parts:e,inverted:t,ignoreCase:n}}function kt(){return{type:`end`}}function At(e){return{type:`other`,description:e}}function jt(t){var n=xt[t],r;if(n)return n;for(r=t-1;!xt[r];)r--;for(n=xt[r],n={line:n.line,column:n.column};r<t;)e.charCodeAt(r)===10?(n.line++,n.column=1):n.column++,r++;return xt[t]=n,n}function Mt(e,t){var n=jt(e),r=jt(t);return{start:{offset:e,line:n.line,column:n.column},end:{offset:t,line:r.line,column:r.column}}}function Nt(e){S<St||(S>St&&(St=S,Ct=[]),Ct.push(e))}function Pt(e,t){return new r(e,null,null,t)}function Ft(e,t,n){return new r(r.buildMessage(e,t),e,t,n)}function It(){for(var e=S,t=[],r=Lt();r!==n;)t.push(r),r=Lt();return t!==n&&(bt=e,t=o()),e=t,e}function Lt(){for(var e=S,t=[],r=Dn();r!==n;)t.push(r),r=Dn();return t===n?(S=e,e=n):(r=Rt(),r===n?(S=e,e=n):(t=[t,r],e=t)),e===n&&(e=vn(),e===n&&(e=_n(),e===n&&(e=Cn()))),e}function Rt(){var e=S,t=Ht();return t!==n&&(bt=e,t=s(t)),e=t,e===n&&(e=S,t=Bt(),t!==n&&(bt=e,t=c(t)),e=t,e===n&&(e=zt(),e===n&&(e=ln()))),e}function zt(){for(var t=S,r=[],i=On(),a,o,s,c,f,p,m;i!==n;)r.push(i),i=On();if(r!==n)if(i=rn(),i!==n){for(a=[],o=On();o!==n;)a.push(o),o=On();if(a!==n)if(o=pn(),o===n&&(o=un()),o!==n)if(e.charCodeAt(S)===44?(s=l,S++):(s=n,wt===0&&Nt(u)),s!==n){for(c=[],f=On();f!==n;)c.push(f),f=On();if(c!==n)if(f=un(),f!==n){for(p=[],m=Zt();m!==n;)p.push(m),m=Zt();p===n?(S=t,t=n):(bt=t,r=d(o,f,p),t=r)}else S=t,t=n;else S=t,t=n}else S=t,t=n;else S=t,t=n;else S=t,t=n}else S=t,t=n;else S=t,t=n;return t}function Bt(){for(var t=S,r=[],i=On(),a,o,s,c,d,p,m;i!==n;)r.push(i),i=On();if(r!==n)if(i=an(),i!==n){for(a=[],o=On();o!==n;)a.push(o),o=On();if(a!==n)if(o=un(),o!==n)if(e.charCodeAt(S)===44?(s=l,S++):(s=n,wt===0&&Nt(u)),s!==n){for(c=[],d=On();d!==n;)c.push(d),d=On();if(c!==n)if(d=un(),d!==n){for(p=[],m=Vt();m!==n;)p.push(m),m=Vt();p===n?(S=t,t=n):(bt=t,r=f(o,d,p),t=r)}else S=t,t=n;else S=t,t=n}else S=t,t=n;else S=t,t=n;else S=t,t=n}else S=t,t=n;else S=t,t=n;return t}function Vt(){var t=S,r,i,a,o,s,c;if(e.charCodeAt(S)===44?(r=l,S++):(r=n,wt===0&&Nt(u)),r!==n){for(i=[],a=On();a!==n;)i.push(a),a=On();if(i!==n)if(a=on(),a!==n)if(e.charCodeAt(S)===58?(o=p,S++):(o=n,wt===0&&Nt(m)),o!==n){for(s=[],c=On();c!==n;)s.push(c),c=On();s===n?(S=t,t=n):(c=un(),c===n?(S=t,t=n):(bt=t,r=h(c),t=r))}else S=t,t=n;else S=t,t=n;else S=t,t=n}else S=t,t=n;if(t===n){if(t=S,e.charCodeAt(S)===44?(r=l,S++):(r=n,wt===0&&Nt(u)),r!==n){for(i=[],a=On();a!==n;)i.push(a),a=On();if(i!==n)if(a=sn(),a!==n)if(e.charCodeAt(S)===58?(o=p,S++):(o=n,wt===0&&Nt(m)),o!==n){for(s=[],c=On();c!==n;)s.push(c),c=On();s===n?(S=t,t=n):(c=un(),c===n?(S=t,t=n):(bt=t,r=g(c),t=r))}else S=t,t=n;else S=t,t=n;else S=t,t=n}else S=t,t=n;if(t===n)if(t=S,e.charCodeAt(S)===44?(r=l,S++):(r=n,wt===0&&Nt(u)),r!==n){for(i=[],a=On();a!==n;)i.push(a),a=On();if(i!==n)if(a=Qt(),a!==n)if(e.charCodeAt(S)===58?(o=p,S++):(o=n,wt===0&&Nt(m)),o!==n){for(s=[],c=On();c!==n;)s.push(c),c=On();s===n?(S=t,t=n):(c=pn(),c===n?(S=t,t=n):(bt=t,r=_(a,c),t=r))}else S=t,t=n;else S=t,t=n;else S=t,t=n}else S=t,t=n}return t}function Ht(){var e=S,t=$t(),r,i,a,o,s,c;if(t!==n){for(r=[],i=On();i!==n;)r.push(i),i=On();r===n?(S=e,e=n):(i=un(),i===n?(S=e,e=n):(a=yn(),a===n?(S=e,e=n):(o=wn(),o===n?(S=e,e=n):(s=Ut(),s===n?(S=e,e=n):(c=_n(),c===n?(S=e,e=n):(bt=e,t=v(i,s),e=t))))))}else S=e,e=n;return e}function Ut(){for(var e=S,t=[],r=Wt();r!==n;)t.push(r),r=Wt();return t!==n&&(bt=e,t=y(t)),e=t,e}function Wt(){for(var e=S,t=[],r=Dn(),i,a;r!==n;)t.push(r),r=Dn();if(t!==n)if(r=Gt(),r!==n){for(i=[],a=bn();a!==n;)i.push(a),a=bn();i===n?(S=e,e=n):(a=wn(),a===n?(S=e,e=n):(bt=e,t=b(r),e=t))}else S=e,e=n;else S=e,e=n;return e}function Gt(){var e=Kt(),t;return e===n&&(e=S,t=qt(),t!==n&&(bt=e,t=x(t)),e=t,e===n&&(e=S,t=Jt(),t!==n&&(bt=e,t=ee(t)),e=t,e===n&&(e=S,t=Yt(),t!==n&&(bt=e,t=te(t)),e=t))),e}function Kt(){var e=S,t=en(),r,i;if(t!==n){if(r=[],i=On(),i!==n)for(;i!==n;)r.push(i),i=On();else r=n;r===n?(S=e,e=n):(i=yn(),i===n?(S=e,e=n):(t=[t,r,i],e=t))}else S=e,e=n;return e}function qt(){var e=S,t=tn(),r,i;if(t!==n){if(r=[],i=On(),i!==n)for(;i!==n;)r.push(i),i=On();else r=n;r===n?(S=e,e=n):(i=Xt(),i===n?(S=e,e=n):(bt=e,t=ne(i),e=t))}else S=e,e=n;return e}function Jt(){var e=S,t=nn(),r,i,a,o;if(t!==n){if(r=[],i=On(),i!==n)for(;i!==n;)r.push(i),i=On();else r=n;if(r!==n)if(i=un(),i!==n){for(a=[],o=Zt();o!==n;)a.push(o),o=Zt();a===n?(S=e,e=n):(bt=e,t=re(i,a),e=t)}else S=e,e=n;else S=e,e=n}else S=e,e=n;return e}function Yt(){var e=S,t=hn(),r,i;if(t!==n){if(r=[],i=On(),i!==n)for(;i!==n;)r.push(i),i=On();else r=n;r===n?(S=e,e=n):(i=un(),i===n?(S=e,e=n):(bt=e,t=ie(t,i),e=t))}else S=e,e=n;return e}function Xt(){var t=S,r,i;return e.charCodeAt(S)===58?(r=p,S++):(r=n,wt===0&&Nt(m)),r===n?(S=t,t=n):(i=mn(),i===n?(S=t,t=n):(bt=t,r=ae(i),t=r)),t===n&&(t=S,r=un(),r!==n&&(bt=t,r=ae(r)),t=r),t}function Zt(){var t=S,r,i,a,o,s,c;if(e.charCodeAt(S)===44?(r=l,S++):(r=n,wt===0&&Nt(u)),r!==n){for(i=[],a=On();a!==n;)i.push(a),a=On();if(i!==n)if(e.substr(S,4).toLowerCase()===oe?(a=e.substr(S,4),S+=4):(a=n,wt===0&&Nt(se)),a!==n)if(e.charCodeAt(S)===58?(o=p,S++):(o=n,wt===0&&Nt(m)),o!==n){for(s=[],c=On();c!==n;)s.push(c),c=On();s===n?(S=t,t=n):(c=un(),c===n?(S=t,t=n):(bt=t,r=ce(c),t=r))}else S=t,t=n;else S=t,t=n;else S=t,t=n}else S=t,t=n;return t}function Qt(){var t;return e.substr(S,9).toLowerCase()===le?(t=e.substr(S,9),S+=9):(t=n,wt===0&&Nt(ue)),t===n&&(e.substr(S,9).toLowerCase()===de?(t=e.substr(S,9),S+=9):(t=n,wt===0&&Nt(fe))),t}function $t(){var t;return wt++,e.substr(S,12).toLowerCase()===me?(t=e.substr(S,12),S+=12):(t=n,wt===0&&Nt(he)),wt--,t===n&&wt===0&&Nt(pe),t}function en(){var t,r,i;return wt++,t=S,r=gn(),r===n?(S=t,t=n):(e.substr(S,6)===_e?(i=_e,S+=6):(i=n,wt===0&&Nt(ve)),i===n?(S=t,t=n):(r=[r,i],t=r)),wt--,t===n&&(r=n,wt===0&&Nt(ge)),t}function tn(){var t,r,i;return wt++,t=S,r=gn(),r===n?(S=t,t=n):(e.substr(S,11)===be?(i=be,S+=11):(i=n,wt===0&&Nt(xe)),i===n?(S=t,t=n):(r=[r,i],t=r)),wt--,t===n&&(r=n,wt===0&&Nt(ye)),t}function nn(){var t,r,i;return wt++,t=S,r=gn(),r===n?(S=t,t=n):(e.substr(S,17)===Ce?(i=Ce,S+=17):(i=n,wt===0&&Nt(we)),i===n?(S=t,t=n):(r=[r,i],t=r)),wt--,t===n&&(r=n,wt===0&&Nt(Se)),t}function rn(){var t;return wt++,e.substr(S,20).toLowerCase()===Ee?(t=e.substr(S,20),S+=20):(t=n,wt===0&&Nt(De)),wt--,t===n&&wt===0&&Nt(Te),t}function an(){var t;return wt++,e.substr(S,15).toLowerCase()===ke?(t=e.substr(S,15),S+=15):(t=n,wt===0&&Nt(Ae)),wt--,t===n&&wt===0&&Nt(Oe),t}function on(){var t;return wt++,e.substr(S,6)===Me?(t=Me,S+=6):(t=n,wt===0&&Nt(Ne)),wt--,t===n&&wt===0&&Nt(je),t}function sn(){var t;return wt++,e.substr(S,11)===Fe?(t=Fe,S+=11):(t=n,wt===0&&Nt(Ie)),wt--,t===n&&wt===0&&Nt(Pe),t}function cn(){var t;return e.substr(S,3)===Le?(t=Le,S+=3):(t=n,wt===0&&Nt(Re)),t}function ln(){var e=S,t=mn(),r,i;return t===n?(S=e,e=n):(r=yn(),r===n?(S=e,e=n):(i=wn(),i===n&&(i=null),i===n?(S=e,e=n):(t=[t,r,i],e=t))),e}function un(){var e=dn();return e===n&&(e=fn()),e}function dn(){var t=S,r=Sn(),i,a;if(r!==n){for(i=[],ze.test(e.charAt(S))?(a=e.charAt(S),S++):(a=n,wt===0&&Nt(Be));a!==n;)i.push(a),ze.test(e.charAt(S))?(a=e.charAt(S),S++):(a=n,wt===0&&Nt(Be));i===n?(S=t,t=n):(a=Sn(),a===n?(S=t,t=n):(bt=t,r=Ve(i),t=r))}else S=t,t=n;return t}function fn(){var t=S,r=xn(),i,a;if(r!==n){for(i=[],He.test(e.charAt(S))?(a=e.charAt(S),S++):(a=n,wt===0&&Nt(Ue));a!==n;)i.push(a),He.test(e.charAt(S))?(a=e.charAt(S),S++):(a=n,wt===0&&Nt(Ue));i===n?(S=t,t=n):(a=xn(),a===n?(S=t,t=n):(bt=t,r=Ve(i),t=r))}else S=t,t=n;return t}function pn(){var t=S,r,i,a;if(e.charCodeAt(S)===58?(r=p,S++):(r=n,wt===0&&Nt(m)),r!==n){for(i=[],a=gn();a!==n;)i.push(a),a=gn();i===n?(S=t,t=n):(bt=t,r=Ve(i),t=r)}else S=t,t=n;return t}function mn(){var e=S,t=[],r=gn();if(r!==n)for(;r!==n;)t.push(r),r=gn();else t=n;return t!==n&&(bt=e,t=Ve(t)),e=t,e}function hn(){var t=S,r=gn(),i,a,o;if(r!==n)if(e.charCodeAt(S)===46?(i=We,S++):(i=n,wt===0&&Nt(Ge)),i!==n){if(a=[],o=gn(),o!==n)for(;o!==n;)a.push(o),o=gn();else a=n;a===n?(S=t,t=n):(bt=t,r=Ve(a),t=r)}else S=t,t=n;else S=t,t=n;return t}function gn(){var t;return wt++,qe.test(e.charAt(S))?(t=e.charAt(S),S++):(t=n,wt===0&&Nt(Je)),wt--,t===n&&wt===0&&Nt(Ke),t}function _n(){for(var e=S,t=[],r=Dn(),i;r!==n;)t.push(r),r=Dn();return t===n?(S=e,e=n):(r=cn(),r===n?(S=e,e=n):(i=wn(),i===n&&(i=null),i===n?(S=e,e=n):(t=[t,r,i],e=t))),e}function vn(){var t,r,i,a,o;for(wt++,t=S,r=[],i=Dn();i!==n;)r.push(i),i=Dn();return r===n?(S=t,t=n):(e.charCodeAt(S)===35?(i=Xe,S++):(i=n,wt===0&&Nt(Ze)),i===n?(S=t,t=n):(a=yn(),a===n?(S=t,t=n):(o=wn(),o===n&&(o=null),o===n?(S=t,t=n):(r=[r,i,a,o],t=r)))),wt--,t===n&&(r=n,wt===0&&Nt(Ye)),t}function yn(){var t,r;for(wt++,t=[],$e.test(e.charAt(S))?(r=e.charAt(S),S++):(r=n,wt===0&&Nt(et));r!==n;)t.push(r),$e.test(e.charAt(S))?(r=e.charAt(S),S++):(r=n,wt===0&&Nt(et));return wt--,t===n&&(r=n,wt===0&&Nt(Qe)),t}function bn(){var t;return $e.test(e.charAt(S))?(t=e.charAt(S),S++):(t=n,wt===0&&Nt(et)),t}function xn(){var t;return e.charCodeAt(S)===39?(t=tt,S++):(t=n,wt===0&&Nt(nt)),t}function Sn(){var t;return e.charCodeAt(S)===34?(t=rt,S++):(t=n,wt===0&&Nt(it)),t}function Cn(){var e=[],t=Tn();if(t===n&&(t=Dn()),t!==n)for(;t!==n;)e.push(t),t=Tn(),t===n&&(t=Dn());else e=n;return e}function wn(){for(var e=S,t=[],r=On();r!==n;)t.push(r),r=On();return t===n?(S=e,e=n):(r=En(),r===n?(S=e,e=n):(t=[t,r],e=t)),e}function Tn(){var t,r,i;return wt++,t=S,e.substr(S,2)===ot?(r=ot,S+=2):(r=n,wt===0&&Nt(st)),r===n?(S=t,t=n):(ct.test(e.charAt(S))?(i=e.charAt(S),S++):(i=n,wt===0&&Nt(lt)),i===n&&(i=null),i===n?(S=t,t=n):(r=[r,i],t=r)),wt--,t===n&&(r=n,wt===0&&Nt(at)),t}function En(){var t;return wt++,e.substr(S,2)===dt?(t=dt,S+=2):(t=n,wt===0&&Nt(ft)),t===n&&(e.charCodeAt(S)===10?(t=pt,S++):(t=n,wt===0&&Nt(mt))),wt--,t===n&&wt===0&&Nt(ut),t}function Dn(){var t;return wt++,gt.test(e.charAt(S))?(t=e.charAt(S),S++):(t=n,wt===0&&Nt(_t)),wt--,t===n&&wt===0&&Nt(ht),t}function On(){var t;return e.charCodeAt(S)===32?(t=vt,S++):(t=n,wt===0&&Nt(yt)),t}var kn=$7(),An=Q7();let jn={tables:[],refs:[]};function Mn(e){jn.tables.find(t=>t.name==e.name)?Et(`Duplicated table name`):(e.fields.find(e=>e.name===`id`)||e.fields.unshift({name:`id`,type:{type_name:`varchar`}}),jn.tables.push(e))}function Nn(e,t,n){let r=jn.tables.find(t=>t.name===e);r||Et("Table ${tableName} not found"),r.checks||=[];let i={expression:t};n&&(i.name=n),r.checks.push(i)}function Pn(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 Fn(e,t){return e.tableName==t.tableName&&An.isEqual(An.sortBy(e.fieldNames),An.sortBy(t.fieldNames))}function In(e,t){return Fn(e[0],t[0])&&Fn(e[1],t[1])}function Ln(e,t){return In(e.endpoints,t.endpoints)||In(e.endpoints,t.endpoints.slice().reverse())}function Rn(e){e&&(jn.refs.find(t=>Ln(t,e))&&Et(`Duplicated references`),jn.refs.push(e))}function zn(e=[]){if(!(!e||e.length===0))for(let t=0;t<e.length;t+=1)Rn(e[t])}function Bn(e){let{tables:t}=jn,{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=`${kn.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 Vn(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 Hn(e,t){if(!t||t.length===0)return[];let n=[];for(let r=0;r<t.length;r+=1){let i=t[r],a=kn.plural(i),{tables:o}=jn,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 Un(e){let{tables:t,refs:n}=e,r=t.map(e=>{let{name:t}=e;return{name:t,field:`${kn.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=>Ln(t,e))||n.push(e)}}}return e}if(Tt=a(),Tt!==n&&S===e.length)return Tt;throw Tt!==n&&S<e.length&&Nt(kt()),Ft(Ct,St<e.length?e.charAt(St):null,St<e.length?Mt(St,St+1):Mt(St,St))}t.exports={SyntaxError:r,parse:i}})),UNe=u(cAe()),WNe=u(zNe()),GNe=u(BNe()),KNe=u(VNe()),qNe=u(HNe()),JNe=class e{constructor(){this.layout=new f.MemoryProjectLayout,this.DBMLCompiler=new f.Compiler(this.layout)}static parseJSONToDatabase(e){return new Fp(e)}static parseMySQLToJSONv2(e){return Z7(e,`mysql`)}static parseMySQLToJSON(e){return GNe.default.parse(e)}static parsePostgresToJSONv2(e){return Z7(e,`postgres`)}static parsePostgresToJSON(e){return KNe.default.parse(e)}static parseDBMLToJSONv2(e){let t=new f.MemoryProjectLayout;t.setSource(f.DEFAULT_ENTRY,e);let n=new f.Compiler(t),r=YNe(n.parse.errors(f.DEFAULT_ENTRY));if(r.length>0)throw W7.create(r);return n.parse.rawDb(f.DEFAULT_ENTRY)}static parseDBMLToJSON(e){return UNe.default.parse(e)}static parseSchemaRbToJSON(e){return qNe.default.parse(e)}static parseMSSQLToJSON(e){return WNe.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)}getDbmlSource(e){return e=typeof e==`string`?f.Filepath.from(e):e,this.layout.getSource(e)}setDbmlSource(e,t){e=typeof e==`string`?f.Filepath.from(e):e,t===void 0?this.layout.deleteSource(e):this.layout.setSource(e,t)}deleteDbmlSource(e){e=typeof e==`string`?f.Filepath.from(e):e,this.layout.deleteSource(e)}clearDbmlSource(){this.layout.clearSource()}parseDbmlProject(t){t=typeof t==`string`?f.Filepath.from(t):t;let n=this.DBMLCompiler.interpretFile(t),r=YNe(n.getErrors());if(r.length>0)throw W7.create(r);return e.parseJSONToDatabase(n.getValue()||{})}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);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)}}};function YNe(e){return e.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}))}function XNe(e,t,n={isNormalized:!0,includeRecords:!0}){let r=ZNe(n),i=new JNe().parse(e,`dbmlv2`);return $9.export(i.normalize(),t,r)}function ZNe(e={}){if(typeof e==`boolean`)return{isNormalized:e,includeRecords:!0};let{isNormalized:t=!0,includeRecords:n=!0}=e;return{isNormalized:t,includeRecords:n}}var QNe={export:XNe},$9=class{static export(e,t,n={isNormalized:!0,includeRecords:!0}){let{isNormalized:r,includeRecords:i}=ZNe(n),a=e instanceof Fp?e.normalize():e,o=``;switch(t){case`dbml`:o=Tee.export(a,{includeRecords:i});break;case`mysql`:o=Eee.export(a);break;case`postgres`:o=Aee.export(a);break;case`json`:o=Gee.export(e,{isNormalized:r});break;case`mssql`:o=Kee.export(a);break;case`oracle`:o=qee.export(a);break;default:break}return o}},$Ne=e=>new Fp(e),ePe=e=>e.map(e=>{let{name:t,endpoints:n,onDelete:r,onUpdate:i}=e;return new Bke({name:t,endpoints:n.map(e=>new M7(e)),onDelete:r,onUpdate:i}).toJSON()}),tPe=e=>e.map(e=>{let{name:t,schemaName:n,values:r}=e;return new N7({name:t,schemaName:n,values:r})}),nPe=(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})}),rPe=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})}),iPe=(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:nPe(t[c],l),indexes:rPe(n[c]||[]),note:s,checks:r[c]})}),aPe=e=>{let{tables:t,fields:n,indexes:r,refs:i,enums:a,tableConstraints:o,checks:s}=e;try{let e=iPe(t,n,r,s,o),c=tPe(a);return $Ne({schemas:[],tables:e,refs:ePe(i),enums:c,tableGroups:[],aliases:[],project:{}})}catch(e){throw Error(e)}};function oPe(e,t,n={includeRecords:!0}){let{includeRecords:r=!0}=n,i=new JNe().parse(e,t);return $9.export(i.normalize(),`dbml`,{includeRecords:r})}function sPe(e){let t=aPe(e);return $9.export(t.normalize(),`dbml`)}var cPe={import:oPe,generateDbml:sPe};function lPe(e,t,n){let r=new f.MemoryProjectLayout;return r.setSource(f.DEFAULT_ENTRY,n),new f.Compiler(r).renameTable(f.DEFAULT_ENTRY,e,t).get(f.DEFAULT_ENTRY.absolute)??n}function uPe(e,t,n){let r=new f.MemoryProjectLayout;return r.setSource(f.DEFAULT_ENTRY,e),new f.Compiler(r).syncDiagramView(f.DEFAULT_ENTRY,t,n)}function dPe(e){let t=new f.MemoryProjectLayout;return t.setSource(f.DEFAULT_ENTRY,e),new f.Compiler(t).findDiagramViewBlocks(f.DEFAULT_ENTRY)}var fPe=`8.3.1-custom-metadata.5`;exports.CompilerError=W7,Object.defineProperty(exports,"DEFAULT_ENTRY",{enumerable:!0,get:function(){return f.DEFAULT_ENTRY}}),Object.defineProperty(exports,"Filepath",{enumerable:!0,get:function(){return f.Filepath}}),exports.ModelExporter=$9,exports.Parser=JNe,exports.VERSION=fPe,Object.defineProperty(exports,"addDoubleQuoteIfNeeded",{enumerable:!0,get:function(){return f.addDoubleQuoteIfNeeded}}),Object.defineProperty(exports,"dbmlMonarchTokensProvider",{enumerable:!0,get:function(){return f.dbmlMonarchTokensProvider}}),exports.exporter=QNe,exports.findDiagramViewBlocks=dPe,Object.defineProperty(exports,"formatRecordValue",{enumerable:!0,get:function(){return f.formatRecordValue}}),exports.importer=cPe,Object.defineProperty(exports,"isBinaryType",{enumerable:!0,get:function(){return f.isBinaryType}}),Object.defineProperty(exports,"isBooleanType",{enumerable:!0,get:function(){return f.isBooleanType}}),Object.defineProperty(exports,"isDateTimeType",{enumerable:!0,get:function(){return f.isDateTimeType}}),Object.defineProperty(exports,"isFloatType",{enumerable:!0,get:function(){return f.isFloatType}}),Object.defineProperty(exports,"isIntegerType",{enumerable:!0,get:function(){return f.isIntegerType}}),Object.defineProperty(exports,"isNumericType",{enumerable:!0,get:function(){return f.isNumericType}}),Object.defineProperty(exports,"isSerialType",{enumerable:!0,get:function(){return f.isSerialType}}),Object.defineProperty(exports,"isStringType",{enumerable:!0,get:function(){return f.isStringType}}),exports.renameTable=lPe,exports.syncDiagramView=uPe,Object.defineProperty(exports,"tryExtractBoolean",{enumerable:!0,get:function(){return f.tryExtractBoolean}}),Object.defineProperty(exports,"tryExtractDateTime",{enumerable:!0,get:function(){return f.tryExtractDateTime}}),Object.defineProperty(exports,"tryExtractEnum",{enumerable:!0,get:function(){return f.tryExtractEnum}}),Object.defineProperty(exports,"tryExtractInteger",{enumerable:!0,get:function(){return f.tryExtractInteger}}),Object.defineProperty(exports,"tryExtractNumeric",{enumerable:!0,get:function(){return f.tryExtractNumeric}}),Object.defineProperty(exports,"tryExtractString",{enumerable:!0,get:function(){return f.tryExtractString}});
package/lib/index.mjs CHANGED
@@ -5027,12 +5027,24 @@ var qee = class e {
5027
5027
  }).map((e) => ` ${e.map(u).join(", ")}`).join("\n")}\n}\n`;
5028
5028
  }).join("\n");
5029
5029
  }
5030
+ static exportMetadata(t) {
5031
+ let n = [], r = t.database[1], i = (t, n) => `Metadata ${t} {\n${Object.entries(n).map(([t, n]) => ` ${t}: ${e.escapeNote(n)}`).join("\n")}\n}\n`;
5032
+ return r.schemaIds.forEach((e) => {
5033
+ let { tableIds: r, tableGroupIds: a } = t.schemas[e];
5034
+ r.forEach((e) => {
5035
+ let r = t.tables[e], a = t.schemas[r.schemaId], o = Fp(a, t) ? `"${a.name}".` : "";
5036
+ zc(r.metadata) || n.push(i(`Table ${o}"${r.name}"`, r.metadata)), r.fieldIds.map((e) => t.fields[e]).filter((e) => !zc(e.metadata)).forEach((e) => n.push(i(`Column ${o}"${r.name}"."${e.name}"`, e.metadata)));
5037
+ }), a.map((e) => t.tableGroups[e]).filter((e) => !zc(e.metadata)).forEach((e) => n.push(i(`TableGroup "${e.name}"`, e.metadata)));
5038
+ }), Object.values(t.notes).filter((e) => !zc(e.metadata)).forEach((e) => n.push(i(`Note ${e.name}`, e.metadata))), n.join("\n");
5039
+ }
5030
5040
  static export(t, n) {
5031
5041
  let r = [], i = t.database[1], { includeRecords: a } = n;
5032
- return i.schemaIds.forEach((n) => {
5042
+ i.schemaIds.forEach((n) => {
5033
5043
  let { enumIds: i, tableIds: a, tableGroupIds: o, refIds: s } = t.schemas[n];
5034
5044
  zc(i) || r.push(e.exportEnums(i, t)), zc(a) || r.push(e.exportTables(a, t)), zc(o) || r.push(e.exportTableGroups(o, t)), zc(s) || r.push(e.exportRefs(s, t));
5035
- }), zc(t.notes) || r.push(e.exportStickyNotes(t)), a && !zc(t.records) && r.push(e.exportRecords(t)), r.join("\n");
5045
+ }), zc(t.notes) || r.push(e.exportStickyNotes(t)), a && !zc(t.records) && r.push(e.exportRecords(t));
5046
+ let o = e.exportMetadata(t);
5047
+ return o && r.push(o), r.join("\n");
5036
5048
  }
5037
5049
  };
5038
5050
  //#endregion
@@ -1811301,6 +1811313,6 @@ function HPe(t) {
1811301
1811313
  }
1811302
1811314
  //#endregion
1811303
1811315
  //#region src/utils/version.ts
1811304
- var UPe = "8.3.1-custom-metadata.3";
1811316
+ var UPe = "8.3.1-custom-metadata.5";
1811305
1811317
  //#endregion
1811306
1811318
  export { U7 as CompilerError, t as DEFAULT_ENTRY, r as Filepath, $9 as ModelExporter, Q9 as Parser, UPe as VERSION, o as addDoubleQuoteIfNeeded, c as dbmlMonarchTokensProvider, kPe as exporter, HPe as findDiagramViewBlocks, l as formatRecordValue, zPe as importer, d as isBinaryType, p as isBooleanType, h as isDateTimeType, _ as isFloatType, ee as isIntegerType, v as isNumericType, b as isSerialType, te as isStringType, BPe as renameTable, VPe as syncDiagramView, ne as tryExtractBoolean, re as tryExtractDateTime, ae as tryExtractEnum, oe as tryExtractInteger, se as tryExtractNumeric, ce as 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": "8.3.1-custom-metadata.3",
4
+ "version": "8.3.1-custom-metadata.5",
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": "^8.3.1-custom-metadata.3",
49
+ "@dbml/parse": "^8.3.1-custom-metadata.4",
50
50
  "antlr4": "^4.13.1",
51
51
  "lodash": "^4.18.1",
52
52
  "lodash-es": "^4.18.1",
@@ -57,7 +57,7 @@
57
57
  "devDependencies": {
58
58
  "bluebird": "^3.5.5"
59
59
  },
60
- "gitHead": "be8c21d3525b0001b295695af7057e0e9cfae5d1",
60
+ "gitHead": "9b5601daf1b79ff7c96bc5766027447d1901c280",
61
61
  "engines": {
62
62
  "node": ">=16"
63
63
  }