@dbml/core 6.3.0-alpha.4 → 6.3.0-alpha.6
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 +4 -4
- package/lib/index.mjs +17 -17
- package/package.json +2 -2
package/lib/index.cjs
CHANGED
|
@@ -36,10 +36,10 @@ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e=Object.
|
|
|
36
36
|
`)}\n);\n`]})}static getFieldLines(e,t,n){return t.tables[e].fieldIds.map(e=>{let r=t.fields[e],i=``;if(r.increment){let e=new Set([`BIGINT`,`INT`,`INTEGER`,`SMALLINT`]),t=new Set([`SMALLSERIAL`,`SERIAL`,`BIGSERIAL`]),n=r.type.type_name.toUpperCase(),a=``;a=e.has(n)?`${n} GENERATED BY DEFAULT AS IDENTITY`:t.has(n)?n:`SERIAL`,i=`"${r.name}" ${a}`}else if(!r.type.schemaName||!eme(r.type.schemaName)){let e=r.type.type_name,t=e.toUpperCase(),n=!tme.includes(t)&&(O_(e)||nme.includes(t))?`"${e}"`:e;i=`"${r.name}" ${n}`}else if(r.type.originalTypeName)i=`"${r.name}" "${r.type.schemaName}"."${r.type.originalTypeName}"`;else{let e=`${O_(r.type.schemaName)?`"${r.type.schemaName}".`:`${r.type.schemaName}.`}${O_(r.type.type_name)?`"${r.type.type_name}"`:r.type.type_name}`,t=`"${r.type.schemaName}"."${r.type.type_name}"`;!n.has(t)&&!Jpe(t)&&(e=e.replaceAll(`"`,``)),i=`"${r.name}" ${e}`}if(r.unique&&(i+=` UNIQUE`),r.pk&&(i+=` PRIMARY KEY`),r.not_null&&(i+=` NOT NULL`),r.checkIds&&r.checkIds.length>0)if(r.checkIds.length===1){let e=t.checks[r.checkIds[0]];e.name&&(i+=` CONSTRAINT "${e.name}"`),i+=` CHECK (${e.expression})`}else{let e=r.checkIds.map(e=>`(${t.checks[e].expression})`);i+=` CHECK (${e.join(` AND `)})`}return r.dbdefault&&(r.dbdefault.type===`expression`?i+=` DEFAULT (${r.dbdefault.value})`:r.dbdefault.type===`string`?i+=` DEFAULT '${r.dbdefault.value}'`:i+=` DEFAULT ${r.dbdefault.value}`),i})}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,r){return t.map(t=>({tableId:t,fieldContents:e.getFieldLines(t,n,r),checkContents:e.getCheckLines(t,n),compositePKs:e.getCompositePKs(t,n)}))}static exportTables(t,n,r){return e.getTableContentArr(t,n,r).map(e=>{let t=[...e.fieldContents,...e.checkContents,...e.compositePKs],r=n.tables[e.tableId],i=n.schemas[r.schemaId];return`CREATE TABLE ${k_(i,n)?`"${i.name}".`:``}"${r.name}" (\n${t.map(e=>` ${e}`).join(`,
|
|
37
37
|
`)}\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 ${k_(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+=`);
|
|
38
38
|
|
|
39
|
-
`,a}static buildForeignKeyManyToMany(e,t,n,r,i,a,o){let s=[...e.keys()].join(`", "`);return`ALTER TABLE ${k_(i,o)?`"${i.name}".`:``}"${n}" ADD FOREIGN KEY ("${s}") REFERENCES ${k_(a,o)?`"${a.name}".`:``}"${r}" ${t};\n\n`}static exportRefs(e,t,n){return e.map(e=>{let r=``,i=t.refs[e],a=i.endpointIds.findIndex(e=>t.endpoints[e].relation===`1`),o=a===-1?0:a,s=i.endpointIds[1-o],c=i.endpointIds[o],l=t.endpoints[s],u=t.endpoints[c],d=t.fields[u.fieldIds[0]],f=t.tables[d.tableId],p=t.schemas[f.schemaId],m=this.buildFieldName(u.fieldIds,t,`postgres`),h=t.fields[l.fieldIds[0]],g=t.tables[h.tableId],_=t.schemas[g.schemaId],ee=this.buildFieldName(l.fieldIds,t,`postgres`);if(a===-1){let e=A_(u.fieldIds,t),i=j_(l.fieldIds,t,e),a=M_(f.name,g.name,n);r+=this.buildTableManyToMany(e,i,a,p,t),r+=this.buildForeignKeyManyToMany(e,m,a,f.name,p,p,t),r+=this.buildForeignKeyManyToMany(i,ee,a,g.name,p,_,t)}else r=`ALTER TABLE ${k_(_,t)?`"${_.name}".`:``}"${g.name}" ADD `,i.name&&(r+=`CONSTRAINT "${i.name}" `),r+=`FOREIGN KEY ${ee} REFERENCES ${k_(p,t)?`"${p.name}".`:``}"${f.name}" ${m}`,i.onDelete&&(r+=` ON DELETE ${i.onDelete.toUpperCase()}`),i.onUpdate&&(r+=` ON UPDATE ${i.onUpdate.toUpperCase()}`),r
|
|
39
|
+
`,a}static buildForeignKeyManyToMany(e,t,n,r,i,a,o){let s=[...e.keys()].join(`", "`);return`ALTER TABLE ${k_(i,o)?`"${i.name}".`:``}"${n}" ADD FOREIGN KEY ("${s}") REFERENCES ${k_(a,o)?`"${a.name}".`:``}"${r}" ${t} DEFERRABLE INITIALLY IMMEDIATE;\n\n`}static exportRefs(e,t,n){return e.map(e=>{let r=``,i=t.refs[e],a=i.endpointIds.findIndex(e=>t.endpoints[e].relation===`1`),o=a===-1?0:a,s=i.endpointIds[1-o],c=i.endpointIds[o],l=t.endpoints[s],u=t.endpoints[c],d=t.fields[u.fieldIds[0]],f=t.tables[d.tableId],p=t.schemas[f.schemaId],m=this.buildFieldName(u.fieldIds,t,`postgres`),h=t.fields[l.fieldIds[0]],g=t.tables[h.tableId],_=t.schemas[g.schemaId],ee=this.buildFieldName(l.fieldIds,t,`postgres`);if(a===-1){let e=A_(u.fieldIds,t),i=j_(l.fieldIds,t,e),a=M_(f.name,g.name,n);r+=this.buildTableManyToMany(e,i,a,p,t),r+=this.buildForeignKeyManyToMany(e,m,a,f.name,p,p,t),r+=this.buildForeignKeyManyToMany(i,ee,a,g.name,p,_,t)}else r=`ALTER TABLE ${k_(_,t)?`"${_.name}".`:``}"${g.name}" ADD `,i.name&&(r+=`CONSTRAINT "${i.name}" `),r+=`FOREIGN KEY ${ee} REFERENCES ${k_(p,t)?`"${p.name}".`:``}"${f.name}" ${m}`,i.onDelete&&(r+=` ON DELETE ${i.onDelete.toUpperCase()}`),i.onUpdate&&(r+=` ON UPDATE ${i.onUpdate.toUpperCase()}`),r+=` DEFERRABLE INITIALLY IMMEDIATE;
|
|
40
40
|
`;return r})}static exportIndexes(e,t){return e.filter(e=>!t.indexes[e].pk).map(e=>{let n=t.indexes[e],r=t.tables[n.tableId],i=t.schemas[r.schemaId],a=`CREATE`;n.unique&&(a+=` UNIQUE`);let o=n.name?`"${n.name}"`:``;a+=` INDEX`,o&&(a+=` ${o}`),a+=` ON ${k_(i,t)?`"${i.name}".`:``}"${r.name}"`,n.type&&(a+=` USING ${n.type.toUpperCase()}`);let s=[];return n.columnIds.forEach(e=>{let n=t.indexColumns[e],r=``;r=n.type===`expression`?`(${n.value})`:`"${n.value}"`,s.push(r)}),a+=` (${s.join(`, `)})`,a+=`;
|
|
41
41
|
`,a})}static exportComments(e,t){return e.map(e=>{let n=`COMMENT ON`,r=t.tables[e.tableId],i=t.schemas[r.schemaId];switch(e.type){case`table`:n+=` TABLE ${k_(i,t)?`"${i.name}".`:``}"${r.name}" IS '${r.note.replace(/'/g,`''`)}'`;break;case`column`:{let a=t.fields[e.fieldId];n+=` COLUMN ${k_(i,t)?`"${i.name}".`:``}"${r.name}"."${a.name}" IS '${a.note.replace(/'/g,`''`)}'`;break}default:break}return n+=`;
|
|
42
|
-
`,n})}static export(t){let n=t.database[1],r=new Set(Object.values(t.tables).map(e=>e.name)),i=new Set,a=n.schemaIds.reduce((n,r)=>{let a=t.schemas[r],{enumIds:o}=a;return k_(a,t)&&n.schemas.push(`CREATE SCHEMA "${a.name}";\n`),Fu(o)||e.exportEnums(o,t).forEach(e=>{let[t,r]=e;n.enums.push(r),i.add(t)}),n},{schemas:[],enums:[],tables:[],indexes:[],comments:[],refs:[]}),o=n.schemaIds.reduce((n,a)=>{let{tableIds:o,refIds:s}=t.schemas[a];Fu(o)||n.tables.push(...e.exportTables(o,t,i));let c=ao(o.map(e=>t.tables[e].indexIds));Fu(c)||n.indexes.push(...e.exportIndexes(c,t));let l=ao(o.map(e=>{let{fieldIds:n,note:r}=t.tables[e],i=n.filter(e=>t.fields[e].note).map(t=>({type:`column`,fieldId:t,tableId:e}));return r?[{type:`table`,tableId:e}].concat(i):i}));return Fu(l)||n.comments.push(...e.exportComments(l,t)),Fu(s)||n.refs.push(...e.exportRefs(s,t,r)),n},a),s=e.exportRecords(t),c=Fu(s)?[]:[`--
|
|
42
|
+
`,n})}static export(t){let n=t.database[1],r=new Set(Object.values(t.tables).map(e=>e.name)),i=new Set,a=n.schemaIds.reduce((n,r)=>{let a=t.schemas[r],{enumIds:o}=a;return k_(a,t)&&n.schemas.push(`CREATE SCHEMA "${a.name}";\n`),Fu(o)||e.exportEnums(o,t).forEach(e=>{let[t,r]=e;n.enums.push(r),i.add(t)}),n},{schemas:[],enums:[],tables:[],indexes:[],comments:[],refs:[]}),o=n.schemaIds.reduce((n,a)=>{let{tableIds:o,refIds:s}=t.schemas[a];Fu(o)||n.tables.push(...e.exportTables(o,t,i));let c=ao(o.map(e=>t.tables[e].indexIds));Fu(c)||n.indexes.push(...e.exportIndexes(c,t));let l=ao(o.map(e=>{let{fieldIds:n,note:r}=t.tables[e],i=n.filter(e=>t.fields[e].note).map(t=>({type:`column`,fieldId:t,tableId:e}));return r?[{type:`table`,tableId:e}].concat(i):i}));return Fu(l)||n.comments.push(...e.exportComments(l,t)),Fu(s)||n.refs.push(...e.exportRefs(s,t,r)),n},a),s=e.exportRecords(t),c=Fu(s)?[]:[`-- Defer constraint checking for INSERT`,`BEGIN;`,`SET CONSTRAINTS ALL DEFERRED;`,``,...s,``,`COMMIT;`];return ac(o.schemas,o.enums,o.tables,o.indexes,o.comments,o.refs,c).join(`
|
|
43
43
|
`)}},ime=rme,ame=class{static export(e,t=!0){return t?JSON.stringify(e,null,2):JSON.stringify(e.export(),null,2)}},ome=ame;Yu();var sme=class e{static exportRecords(e){let t=Object.values(e.records||{});return Fu(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`||rh(e.type)?e.value:ih(e.type)?String(e.value).toUpperCase()===`TRUE`?`1`:`0`:ah(e.type)||sh(e.type)?`'${e.value.replace(/'/g,`''`)}'`:oh(e.type)?`0x${e.value}`:`CAST('${e.value.replace(/'/g,`''`)}' AS ${e.type})`;return`INSERT INTO ${a} ${o}\nVALUES\n ${i.map(e=>`(${e.map(s).join(`, `)})`).join(`,
|
|
44
44
|
`)};\nGO`})}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}] nvarchar(255) NOT NULL CHECK ([${n.name}] IN (`;let i=e.valueIds.map(e=>`'${t.enumValues[e].name}'`);r+=`${i.join(`, `)}))`}else r=`[${n.name}] ${n.type.type_name===`varchar`?`nvarchar(255)`:n.type.type_name}`;if(n.unique&&(r+=` UNIQUE`),n.pk&&(r+=` PRIMARY KEY`),n.not_null&&(r+=` NOT NULL`),n.increment&&(r+=` IDENTITY(1, 1)`),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===`expression`?r+=` DEFAULT (${n.dbdefault.value})`:n.dbdefault.type===`string`?r+=` DEFAULT '${n.dbdefault.value}'`:r+=` DEFAULT (${n.dbdefault.value})`),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 ${k_(i,n)?`[${i.name}].`:``}[${r.name}] (\n${t.map(e=>` ${e}`).join(`,
|
|
45
45
|
`)}\n)\nGO\n`})}static buildTableManyToMany(e,t,n,r,i){let a=`CREATE TABLE ${k_(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+=`);
|
|
@@ -53,7 +53,7 @@ GO
|
|
|
53
53
|
`,e.type){case`table`:i+=`@name = N'Table_Description',
|
|
54
54
|
`,i+=`@value = '${n.note.replace(/'/g,`''`)}',\n`,i+=`@level0type = N'Schema', @level0name = '${k_(r,t)?`${r.name}`:`dbo`}',\n`,i+=`@level1type = N'Table', @level1name = '${n.name}';\n`;break;case`column`:{let a=t.fields[e.fieldId];i+=`@name = N'Column_Description',
|
|
55
55
|
`,i+=`@value = '${a.note.replace(/'/g,`''`)}',\n`,i+=`@level0type = N'Schema', @level0name = '${k_(r,t)?`${r.name}`:`dbo`}',\n`,i+=`@level1type = N'Table', @level1name = '${n.name}',\n`,i+=`@level2type = N'Column', @level2name = '${a.name}';\n`;break}default:break}return i+=`GO
|
|
56
|
-
`,i})}static export(t){let n=t.database[1],r=new Set(Object.values(t.tables).map(e=>e.name)),i=n.schemaIds.reduce((n,i)=>{let a=t.schemas[i],{tableIds:o,refIds:s}=a;k_(a,t)&&n.schemas.push(`CREATE SCHEMA [${a.name}]\nGO\n`),Fu(o)||n.tables.push(...e.exportTables(o,t));let c=ao(o.map(e=>t.tables[e].indexIds));Fu(c)||n.indexes.push(...e.exportIndexes(c,t));let l=ao(o.map(e=>{let{fieldIds:n,note:r}=t.tables[e],i=n.filter(e=>t.fields[e].note).map(t=>({type:`column`,fieldId:t,tableId:e}));return r?[{type:`table`,tableId:e}].concat(i):i}));return Fu(l)||n.comments.push(...e.exportComments(l,t)),Fu(s)||n.refs.push(...e.exportRefs(s,t,r)),n},{schemas:[],enums:[],tables:[],indexes:[],comments:[],refs:[]}),a=e.exportRecords(t),o=Fu(a)?[]:[`-- Disable constraint checks for
|
|
56
|
+
`,i})}static export(t){let n=t.database[1],r=new Set(Object.values(t.tables).map(e=>e.name)),i=n.schemaIds.reduce((n,i)=>{let a=t.schemas[i],{tableIds:o,refIds:s}=a;k_(a,t)&&n.schemas.push(`CREATE SCHEMA [${a.name}]\nGO\n`),Fu(o)||n.tables.push(...e.exportTables(o,t));let c=ao(o.map(e=>t.tables[e].indexIds));Fu(c)||n.indexes.push(...e.exportIndexes(c,t));let l=ao(o.map(e=>{let{fieldIds:n,note:r}=t.tables[e],i=n.filter(e=>t.fields[e].note).map(t=>({type:`column`,fieldId:t,tableId:e}));return r?[{type:`table`,tableId:e}].concat(i):i}));return Fu(l)||n.comments.push(...e.exportComments(l,t)),Fu(s)||n.refs.push(...e.exportRefs(s,t,r)),n},{schemas:[],enums:[],tables:[],indexes:[],comments:[],refs:[]}),a=e.exportRecords(t),o=Fu(a)?[]:(()=>{let e=[...new Set(Object.values(t.records||{}).map(e=>e.schemaName?`[${e.schemaName}].[${e.tableName}]`:`[${e.tableName}]`))];return[`-- Disable constraint checks for tables with data`,...e.map(e=>`ALTER TABLE ${e} NOCHECK CONSTRAINT ALL;\nGO`),``,...a,``,`-- Re-enable constraint checks`,...e.map(e=>`ALTER TABLE ${e} WITH CHECK CHECK CONSTRAINT ALL;\nGO`)]})();return ac(i.schemas,i.enums,i.tables,i.indexes,i.comments,i.refs,o).join(`
|
|
57
57
|
`)}},cme=sme;Yu();var lme=class{static exportRecords(e){let t=Object.values(e.records||{});return Fu(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`||rh(e.type)?e.value:ih(e.type)?String(e.value).toUpperCase()===`TRUE`?`1`:`0`:ah(e.type)||sh(e.type)?`'${e.value.replace(/'/g,`''`)}'`:oh(e.type)?`HEXTORAW('${e.value}')`:`CAST('${e.value.replace(/'/g,`''`)}' AS ${e.type})`;return i.length>1?`INSERT ALL\n${i.map(e=>` INTO ${a} ${o} VALUES (${e.map(s).join(`, `)})`).join(`
|
|
58
58
|
`)}\nSELECT * FROM dual;`:`INSERT INTO ${a} ${o}\nVALUES (${i[0].map(s).join(`, `)});`})}static buildSchemaToTableNameSetMap(e){let t=new Map;return hu(e.tables,n=>{let r=e.schemas[n.schemaId],i=t.get(r.name);if(!i){t.set(r.name,new Set([n.name]));return}i.add(n.name)}),t}static buildTableNameWithSchema(e,t,n){return`${k_(t,e)?`${N_(t.name,`oracle`)}.`:``}${N_(n.name,`oracle`)}`}static exportSchema(e){return`CREATE USER ${N_(e,`oracle`)}\nNO AUTHENTICATION
|
|
59
59
|
DEFAULT TABLESPACE system
|
|
@@ -134,4 +134,4 @@ function print() { __p += __j.call(arguments, '') }
|
|
|
134
134
|
`+n.join(`, `)),`
|
|
135
135
|
`].join(``);var n}function Se(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 Ce(){for(var e=[].slice.call(arguments),t=e.length,n=0;n<t;n+=1)oe(e[n]);return r(function(n,r){for(var i,a=Array(t),o=0;o<t;o+=1){if(!(i=re(e[o]._(n,r),i)).status)return i;a[o]=i.value,r=i.index}return re(y(r,a),i)})}function we(){var e=[].slice.call(arguments);if(e.length===0)throw Error(`seqMap needs at least one argument`);var t=e.pop();return le(t),Ce.apply(null,e).map(function(e){return t.apply(null,e)})}function Te(){var e=[].slice.call(arguments),t=e.length;if(t===0)return je(`zero alternates`);for(var n=0;n<t;n+=1)oe(e[n]);return r(function(t,n){for(var r,i=0;i<e.length;i+=1)if((r=re(e[i]._(t,n),r)).status)return r;return r})}function Ee(e,t){return De(e,t).or(Ae([]))}function De(e,t){return oe(e),oe(t),we(e,t.then(e).many(),function(e,t){return[e].concat(t)})}function Oe(e){ue(e);var t=`'`+e+`'`;return r(function(n,r){var i=r+e.length,a=n.slice(r,i);return a===e?y(i,a):ne(r,t)})}function ke(e,t){(function(e){if(!(e instanceof RegExp))throw Error(`not a regexp: `+e);for(var t=Se(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?ce(t):t=0;var n=function(e){return RegExp(`^(?:`+e.source+`)`,Se(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 y(r+o.length,s)}return ne(r,`valid match group (0 to `+a.length+`) in `+i)}return ne(r,i)})}function Ae(e){return r(function(t,n){return y(n,e)})}function je(e){return r(function(t,n){return ne(n,e)})}function Me(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 Me(Oe(e));if(e instanceof RegExp)return Me(ke(e));throw Error(`not a string, regexp, or parser: `+e)}function Ne(e){return oe(e),r(function(t,n){var r=e._(t,n),i=t.slice(n,r.index);return r.status?ne(n,`not "`+i+`"`):y(n,null)})}function Pe(e){return le(e),r(function(t,n){var r=se(t,n);return n<t.length&&e(r)?y(n+1,r):ne(n,`a character/byte matching `+e)})}function Fe(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 Ie(){return je(`fantasy-land/empty`)}i.parse=function(e){if(typeof e!=`string`&&!te(e))throw Error(`.parse must be called with a string or Buffer as its argument`);var t,n=this.skip(Be)._(e,0);return t=n.status?{status:!0,value:n.value}:{status:!1,index:ae(e,n.furthest),expected:n.expected},delete ie[e],t},i.tryParse=function(e){var t=this.parse(e);if(t.status)return t.value;var n=xe(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)?Ae(n):je(t)})},i.or=function(e){return Te(this,e)},i.trim=function(e){return this.wrap(e,e)},i.wrap=function(e,t){return we(e,this,t,function(e,t){return t})},i.thru=function(e){return e(this)},i.then=function(e){return oe(e),Ce(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=re(e._(t,n),i)).status)return re(y(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 ue(e),this.map(function(t){if(function(e){if(!v(e))throw Error(`not an array: `+e)}(t),t.length){ue(t[0]);for(var n=t[0],r=1;r<t.length;r++)ue(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),ce(e),ce(t),r(function(r,i){for(var a=[],o=void 0,s=void 0,c=0;c<e;c+=1){if(s=re(o=n._(r,i),s),!o.status)return s;i=o.index,a.push(o.value)}for(;c<t&&(s=re(o=n._(r,i),s),o.status);c+=1)i=o.index,a.push(o.value);return re(y(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 we(this.times(e),this.many(),function(e,t){return e.concat(t)})},i.map=function(e){le(e);var t=this;return r(function(n,r){var i=t._(n,r);return i.status?re(y(i.index,e(i.value)),i):i})},i.contramap=function(e){le(e);var t=this;return r(function(n,r){var i=t.parse(e(n.slice(r)));return i.status?y(r+n.length,i.value):i})},i.promap=function(e,t){return le(e),le(t),this.contramap(e).map(t)},i.skip=function(e){return Ce(this,e).map(function(e){return e[0]})},i.mark=function(){return we(Le,this,Le,function(e,t,n){return{start:e,value:t,end:n}})},i.node=function(e){return we(Le,this,Le,function(t,n,r){return{name:e,value:n,start:t,end:r}})},i.sepBy=function(e){return Ee(this,e)},i.sepBy1=function(e){return De(this,e)},i.lookahead=function(e){return this.skip(Me(e))},i.notFollowedBy=function(e){return this.skip(Ne(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(Ae(e))},i.ap=function(e){return we(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?re(e(i.value)._(n,i.index),i):i})},i.concat=i.or,i.empty=Ie,i.of=Ae,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 Le=r(function(e,t){return y(t,ae(e,t))}),Re=r(function(e,t){return t>=e.length?ne(t,`any character/byte`):y(t+1,se(e,t))}),ze=r(function(e,t){return y(e.length,e.slice(t))}),Be=r(function(e,t){return t<e.length?ne(t,`EOF`):y(t,null)}),Ve=ke(/[0-9]/).desc(`a digit`),He=ke(/[0-9]*/).desc(`optional digits`),Ue=ke(/[a-z]/i).desc(`a letter`),We=ke(/[a-z]*/i).desc(`optional letters`),Ge=ke(/\s*/).desc(`optional whitespace`),Ke=ke(/\s+/).desc(`whitespace`),qe=Oe(`\r`),Je=Oe(`
|
|
136
136
|
`),Ye=Oe(`\r
|
|
137
|
-
`),Xe=Te(Ye,Je,qe).desc(`newline`),Ze=Te(Xe,Be);r.all=ze,r.alt=Te,r.any=Re,r.cr=qe,r.createLanguage=function(e){var t={};for(var n in e)({}).hasOwnProperty.call(e,n)&&function(n){t[n]=Fe(function(){return e[n](t)})}(n);return t},r.crlf=Ye,r.custom=function(e){return r(e(y,ne))},r.digit=Ve,r.digits=He,r.empty=Ie,r.end=Ze,r.eof=Be,r.fail=je,r.formatError=xe,r.index=Le,r.isParser=ee,r.lazy=Fe,r.letter=Ue,r.letters=We,r.lf=Je,r.lookahead=Me,r.makeFailure=ne,r.makeSuccess=y,r.newline=Xe,r.noneOf=function(e){return Pe(function(t){return e.indexOf(t)<0}).desc(`none of '`+e+`'`)},r.notFollowedBy=Ne,r.of=Ae,r.oneOf=function(e){for(var t=e.split(``),n=0;n<t.length;n++)t[n]=`'`+t[n]+`'`;return Pe(function(t){return e.indexOf(t)>=0}).desc(t)},r.optWhitespace=Ge,r.Parser=r,r.range=function(e,t){return Pe(function(n){return e<=n&&n<=t}).desc(e+`-`+t)},r.regex=ke,r.regexp=ke,r.sepBy=Ee,r.sepBy1=De,r.seq=Ce,r.seqMap=we,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=re(c._(e,t),n)).status)return n;s&&(r[s]=n.value),t=n.index}return re(y(t,r),n)})},r.string=Oe,r.succeed=Ae,r.takeWhile=function(e){return le(e),r(function(t,n){for(var r=n;r<t.length&&e(se(t,r));)r++;return y(r,t.slice(n,r))})},r.test=Pe,r.whitespace=Ke,r[`fantasy-land/empty`]=Ie,r[`fantasy-land/of`]=Ae,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(ue(r[0]),ce(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 ce(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(),ce(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=se(n,r);return i===e?y(r+1,i):ne(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}])})})),n9,UJe,r9,i9=o((()=>{n9=u(t9()),UJe=n9.default.createLanguage({WhiteSpaces:e=>n9.default.alt(e.WhiteSpace,e.InlineComment,e.MulLineComment).many().desc(`whitespaces or comments`),WhiteSpace:()=>n9.default.regexp(/\s/).desc(`whitespaces`),InlineComment:()=>n9.default.seq(n9.default.string(`--`),n9.default.regexp(/[^\n\r]*/)).desc(`comments`),MulLineComment:()=>n9.default.regexp(/\/\*[\s\S]+?\*\//).desc(`comments`)}),r9=UJe.WhiteSpaces}));function a9(e){return GJe.default.string(e).skip(r9).desc(`"${e}"`)}function WJe(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 o9(e){let t=e,n=e.source;return t=WJe(e),GJe.default.regexp(t).skip(r9).desc(`"${n}"`)}var GJe,KJe=o((()=>{GJe=u(t9()),i9()})),qJe,s9,c9,JJe,YJe,XJe,ZJe,QJe,$Je,eYe,tYe,nYe,rYe,iYe,l9,aYe,oYe,u9,sYe,cYe,lYe,uYe,dYe,fYe,pYe,mYe,hYe,gYe,_Ye,vYe,yYe,bYe,xYe,SYe,CYe,wYe,TYe,EYe,DYe,OYe,kYe,AYe,jYe,MYe,NYe,d9,f9,PYe,FYe,IYe,LYe,RYe,zYe,BYe,VYe,HYe,UYe,WYe,GYe,KYe,qYe,JYe,YYe,XYe,ZYe,QYe,$Ye,p9,eXe,tXe,nXe,rXe,iXe,aXe,oXe,sXe,cXe,lXe,uXe,dXe,fXe,pXe,mXe,hXe,gXe,_Xe,vXe,yXe,bXe,xXe,SXe,CXe,wXe,TXe,EXe,m9,h9,g9,DXe,OXe,kXe,AXe,_9,v9,jXe,MXe,NXe,PXe,FXe,IXe,LXe,RXe,y9=o((()=>{KJe(),qJe=o9(/IDENTITY/i),s9=o9(/INDEX/i),c9=o9(/WITH/i),JJe=o9(/ON/i),o9(/OFF/i),XJe=o9(/FILESTREAM_ON/i),ZJe=o9(/PRIMARY KEY/i),QJe=o9(/CLUSTERED/i),$Je=o9(/NONCLUSTERED/i),eYe=o9(/COLUMNSTORE/i),tYe=o9(/REFERENCES/i),nYe=o9(/FOREIGN KEY/i),rYe=o9(/CHECK/i),iYe=o9(/CONSTRAINT/i),l9=o9(/UNIQUE/i),o9(/HASH/i),o9(/BUCKET_COUNT/i),u9=o9(/NOT FOR REPLICATION/),sYe=o9(/ON DELETE/i),cYe=o9(/ON UPDATE/i),lYe=o9(/SET NULL/i),uYe=o9(/SET DEFAULT/i),dYe=o9(/NO ACTION/i),fYe=o9(/CASCADE/i),pYe=o9(/CONTENT/i),mYe=o9(/DOCUMENT/i),hYe=o9(/NULL/i),gYe=o9(/NOT NULL/i),_Ye=o9(/DEFAULT/i),vYe=o9(/FILESTREAM/i),yYe=o9(/COLLATE/i),bYe=o9(/SPARSE/i),xYe=o9(/ROWGUIDCOL/i),SYe=o9(/MASKED/i),CYe=o9(/ENCRYPTED/i),o9(/FUNCTION/i),TYe=o9(/GENERATED ALWAYS AS ROW/i),EYe=o9(/START/i),DYe=o9(/END/i),OYe=o9(/HIDDEN/i),kYe=o9(/ASC/i),AYe=o9(/DESC/i),jYe=o9(/TEXTIMAGE_ON/i),MYe=o9(/PERIOD FOR SYSTEM_TIME/i),NYe=o9(/FILETABLE/i),d9=o9(/TABLE/i),f9=o9(/CREATE/i),PYe=o9(/AS/i),FYe=o9(/PERSISTED/i),IYe=o9(/XML COLUMN_SET FOR ALL_SPARSE_COLUMNS/i),LYe=o9(/INCLUDE/i),RYe=o9(/IN/i),zYe=o9(/WHERE/i),BYe=o9(/FOR/i),VYe=o9(/WITH VALUES/i),HYe=o9(/CONNECTION/i),UYe=o9(/TO/i),WYe=o9(/ALTER/i),GYe=o9(/ADD/i),KYe=o9(/SET/i),qYe=o9(/REBUILD/i),JYe=o9(/SWITCH/i),YYe=o9(/ENABLE/i),XYe=o9(/DISABLE/i),o9(/NOCHECK/i),QYe=o9(/DROP/i),$Ye=o9(/ALTER COLUMN/i),p9=o9(/GO/i),eXe=o9(/BULK INSERT/i),tXe=o9(/INSERT/i),nXe=o9(/UPDATE/i),rXe=o9(/MERGE/i),iXe=o9(/TRUNCATE TABLE/i),aXe=o9(/BACKUP/i),oXe=o9(/RESTORE/i),sXe=o9(/CLOSE/i),cXe=o9(/DENY/i),lXe=o9(/EXECUTE/i),uXe=o9(/EXEC/i),dXe=o9(/GRANT/i),fXe=o9(/OPEN/i),pXe=o9(/REVOKE/i),mXe=o9(/BEGIN/i),o9(/GET/i),gXe=o9(/MOVE/i),_Xe=o9(/RECEIVE/i),vXe=o9(/SEND/i),yXe=o9(/RENAME/i),bXe=o9(/DELETE/i),xXe=o9(/IF/i),SXe=o9(/sp_addextendedproperty/i),CXe=o9(/IN/i),wXe=o9(/AND/i),a9(`<`),a9(`>`),m9=a9(`(`),h9=a9(`,`),g9=a9(`)`),a9(`"`),OXe=a9(`'`),a9(`[`),a9(`]`),_9=a9(`=`),v9=a9(`;`),jXe=o9(/@name/i),MXe=o9(/@value/i),NXe=o9(/@level0type/i),PXe=o9(/@level0name/i),FXe=o9(/@level1type/i),IXe=o9(/@level1name/i),LXe=o9(/@level2type/i),RXe=o9(/@level2name/i)}));function b9(){return function(e){return w9.default.seqMap(w9.default.index,e,w9.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(r9)}}function x9(e,t=!1){let n=e.sepBy1(h9);return t&&(n=e.sepBy(h9)),w9.default.seq(m9,n,g9).map(e=>e[1])}function S9(e){return function(t){return t.skip(r9).map(t=>(t!==0&&!t&&(t=``),{type:e,value:t}))}}function C9(e){let t=null;return e.length>1&&(t=e[e.length-2]),{name:lu(e),schemaName:t}}var w9,T9=o((()=>{w9=u(t9()),Yu(),y9(),i9()})),E9,D9,O9,k9,A9,zXe,BXe,VXe,j9,M9,HXe,UXe,WXe,GXe,KXe,qXe,JXe,YXe,XXe,N9,ZXe,QXe,$Xe,eZe,tZe,P9,nZe,F9=o((()=>{E9=u(t9()),T9(),y9(),i9(),D9=(0,E9.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,E9.default.makeSuccess(n+1,``)}),O9=E9.default.createLanguage({pIgnore:()=>D9,pColumnNames:e=>x9(E9.default.seq(e.pIdentifier,e.pKeywordAscOrDesc.fallback(null)).map(e=>e[0])).desc(`list of column names`),pDotDelimitedName:e=>E9.default.sepBy1(e.pIdentifier,E9.default.string(`.`)).desc(`dot delimited identifier`),pOptionList:e=>x9(e.pOption),pOption:e=>E9.default.seq(e.pIdentifier,_9,E9.default.seq(E9.default.alt(e.pIdentifier,e.pString).many(),E9.default.alt(e.pOptionList,x9(e.pIdentifier.many())).fallback(null))).desc(`option`),pComparsionOp:()=>E9.default.regex(/IS|IS[^\S\r\n]+NOT|=|<>|!=|>|>=|!>|<|<=|!</i).skip(r9).desc(`comparsion operator`),pConst:e=>E9.default.alt(e.pString,e.pUnicode,e.pBinary,e.pScience,e.pMoney,e.pSigned,e.pNumber).desc(`constant`),pFunction:e=>E9.default.seq(e.pIdentifier,x9(e.pFunctionParam,!0)).map(e=>`${e[0]}(${e[1].join(`,`)})`).thru(S9(`function`)).desc(`function constant`),pFunctionParam:e=>E9.default.alt(e.pNumber,e.pIdentifier).desc(`identifier or number paremeter`),pMoney:e=>E9.default.seq(E9.default.regexp(/[+-]\$/),e.pNumber).thru(S9(`money`)).desc(`money constant`),pSigned:e=>E9.default.seq(E9.default.regexp(/[+-]/),e.pNumber).thru(S9(`signed`)).desc(`signed constant`),pUnicode:e=>E9.default.seq(E9.default.string(`N`),e.pString).thru(S9(`unicode`)).desc(`unicode constant`),pString:()=>E9.default.regexp(/'[^']*'/).thru(S9(`string`)).map(e=>{let t=e.value;return e.value=t.slice(1,t.length-1),e}).desc(`string constant`),pNumberList:e=>x9(e.pNumber).desc(`list of number`),pNumber:()=>E9.default.regexp(/[0-9]+(\.[0-9]+)?/).map(Number).thru(S9(`number`)).desc(`number constant`),pBinary:()=>E9.default.regexp(/0x[A-F0-9]*/).thru(S9(`binary`)).desc(`binary constant`),pScience:()=>E9.default.regexp(/[+-]+[0-9]+(\.[0-9E]+)?/).thru(S9(`science`)).desc(`science constant`),pIdentifier:e=>E9.default.alt(e.pRegularIdentifier,e.pDelimitedIdentifier).skip(r9).desc(`identifier`),pDelimitedIdentifier:e=>E9.default.alt(e.pDQDelimitedIdentifier,e.pBracketDelimitedIdentifier).skip(r9).desc(`delimited identifier`),pRegularIdentifier:()=>E9.default.regexp(/^[\w@#][\w@#$]*/).skip(r9),pDQDelimitedIdentifier:()=>E9.default.seq(E9.default.string(`"`),E9.default.regexp(/[^"]*/),E9.default.string(`"`)).map(e=>e[1]).skip(r9),pBracketDelimitedIdentifier:()=>E9.default.seq(E9.default.string(`[`),E9.default.regexp(/[^\]]*/),E9.default.string(`]`)).map(e=>e[1]).skip(r9),pKeywordPKOrUnique:()=>E9.default.alt(ZJe.result({type:`pk`,value:!0}),l9.result({type:`unique`,value:!0})),pKeywordClusteredOrNon:()=>E9.default.alt(QJe,$Je),pKeywordAscOrDesc:()=>E9.default.alt(kYe,AYe)}),k9=O9.pColumnNames,A9=O9.pDotDelimitedName,zXe=O9.pOptionList,BXe=O9.pOption,VXe=O9.pComparsionOp,j9=O9.pConst,M9=O9.pFunction,O9.pFunctionParam,O9.pMoney,O9.pSigned,O9.pUnicode,O9.pString,qXe=O9.pNumberList,O9.pNumber,O9.pBinary,O9.pScience,N9=O9.pIdentifier,O9.pDelimitedIdentifier,O9.pRegularIdentifier,O9.pDQDelimitedIdentifier,O9.pBracketDelimitedIdentifier,tZe=O9.pKeywordPKOrUnique,P9=O9.pKeywordClusteredOrNon,O9.pKeywordAscOrDesc}));function rZe(e,t){let n=t.value.endpoints.find(e=>!e.tableName);n.tableName=e.name,n.schemaName=e.schemaName}function iZe(e,t){t.value.tableName=e.name,t.value.schemaName=e.schemaName}function aZe(e,t,n){if(!n)return null;let r=C9(t);return n.forEach(e=>{if(e)switch(e.type){case`refs`:rZe(r,e);break;case`indexes`:case`dbdefault`:case`enums`:iZe(r,e);break;default:break}}),n}var oZe=o((()=>{T9()}));function sZe(e){return e.many().map(e=>e.join(``)).fallback(null).thru(S9(`token`))}function cZe(e){let t=g9.thru(sZe),n=m9.thru(sZe);return I9.default.seq(n,e,t)}function lZe(e){return I9.default.alt(cZe(e),e)}var I9,uZe,dZe,fZe=o((()=>{I9=u(t9()),F9(),y9(),i9(),T9(),Yu(),uZe=I9.default.createLanguage({ExpressionFinal:e=>e.Expression.map(e=>Su(e).map(e=>e?e.value:``).join(``)),Expression:e=>lZe(I9.default.seq(I9.default.alt(e.UnaryExpression,e.SimpleExpression),e.BinaryExpressionLR.fallback(null)).skip(r9)),UnaryExpression:e=>{let t=I9.default.regex(/[+\-~]/).thru(S9(`unary_operator`));return lZe(I9.default.seq(t,e.Expression).skip(r9))},BinaryExpressionLR:e=>{let t=I9.default.regexp(/[+\-*/%=!<>&^|]{1,2}/).map(e=>` ${e} `).thru(S9(`binary_operator`)).skip(r9);return I9.default.seq(t,e.Expression).skip(r9)},SimpleExpression:e=>lZe(I9.default.alt(M9,j9,e.ExpressionDDN).skip(r9)),ExpressionDDN:()=>A9.map(e=>e.join(`.`)).thru(S9(`identifier`))}),dZe=uZe.ExpressionFinal}));function pZe(e,t,n){return{tableName:e.name,schemaName:e.schemaName,fieldNames:t,relation:n}}function mZe(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 hZe(e,t,n,r){let i={};return i.endpoint=pZe(C9(t),n,`1`),mZe(i,r),{type:`inline_refs`,value:[i]}}function gZe(e){return{type:`endpoint`,value:{fieldNames:e}}}function _Ze(e,t,n,r,i,a){let o={},s=C9(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],mZe(o,a),{type:`refs`,value:o}}function vZe(e,t){return{type:e,setting:t.toLowerCase().trim().split(/[ ]+/).join(` `)}}var yZe=o((()=>{T9()})),L9,bZe,xZe,SZe,CZe=o((()=>{L9=u(t9()),y9(),F9(),T9(),yZe(),bZe=L9.default.createLanguage({TableConstraintFK:e=>L9.default.seqMap(nYe.fallback(null),e.TableEndpoint,tYe,A9,e.TableEndpoint.fallback(null),e.FKOptions.fallback(null),_Ze),TableEndpoint:()=>L9.default.seqMap(k9,gZe).thru(b9()),ColumnConstraintFK:e=>L9.default.seqMap(e.FKKeywords,A9,x9(N9).fallback(null),e.FKOptions.fallback(null),hZe),FKOptions:e=>L9.default.alt(e.FKOnDelete,e.FKOnUpdate,e.FKNFR).many(),FKKeywords:()=>L9.default.seq(nYe.fallback(null),tYe),FKOnDelete:e=>L9.default.seqMap(sYe,e.FKOnOptions,vZe),FKOnUpdate:e=>L9.default.seqMap(cYe,e.FKOnOptions,vZe),FKNFR:()=>u9.map(e=>({type:e})),FKOnOptions:()=>L9.default.alt(dYe,fYe,uYe,lYe)}),xZe=bZe.ColumnConstraintFK,SZe=bZe.TableConstraintFK}));function wZe(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 TZe(e,t){return{type:`indexes`,value:{name:t,columns:[]}}}function EZe(e,t,n,r,i,a){return wZe(a,n,null,t)}function DZe(e,t,n){let r=null,i=null;return e.type===`pk`?r=!0:e.type===`unique`&&(i=!0),wZe(n,i,r)}var OZe=o((()=>{})),R9,z9,kZe,AZe,jZe,MZe,NZe,B9=o((()=>{R9=u(t9()),y9(),F9(),T9(),OZe(),z9=R9.default.createLanguage({TableIndex:e=>R9.default.seqMap(s9,N9,l9.fallback(null),P9.fallback(null),eYe.fallback(null),k9,EZe).thru(b9()).skip(e.IgnoredIndexOptions),TableConstraintIndex:e=>R9.default.seqMap(tZe,P9.fallback(null),k9,DZe).thru(b9()).skip(e.IgnoredIndexOptions),ColumnConstraintIndex:e=>R9.default.seq(tZe).skip(e.IgnoredIndexOptions).map(e=>e[0]),ColumnIndex:e=>R9.default.seqMap(s9,N9,TZe).thru(b9()).skip(e.IgnoredIndexOptions),IgnoredIndexOptions:e=>R9.default.alt(P9,e.IgnoredIndexOption).many(),IgnoredIndexOption:e=>R9.default.alt(e.WithIndexOption,e.ColumnIndexFilestream,e.OnIndexOption,e.WithFillFactorOption),WithIndexOption:()=>R9.default.seq(c9,zXe),WithFillFactorOption:()=>R9.default.seq(c9,BXe),OnIndexOption:()=>R9.default.seq(JJe,R9.default.alt(N9,M9)),ColumnIndexFilestream:()=>R9.default.seq(XJe,N9)}),kZe=z9.ColumnIndex,AZe=z9.IgnoredIndexOption,jZe=z9.TableIndex,MZe=z9.ColumnConstraintIndex,NZe=z9.TableConstraintIndex}));function PZe(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 FZe(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 IZe(e,t){return t?{type:t.type,value:{...t.value,name:t.type===`indexes`&&t.value.pk?null:e}}:null}var LZe=o((()=>{})),V9,H9,RZe,zZe,BZe,VZe,HZe,U9=o((()=>{V9=u(t9()),y9(),fZe(),F9(),T9(),CZe(),B9(),LZe(),H9=V9.default.createLanguage({TableConstraint:e=>V9.default.seqMap(e.ConstraintName.fallback(null),e.TableConstraintOption,IZe).thru(b9()),TableConstraintOption:e=>V9.default.alt(SZe,NZe,e.ConstraintCheck),ColumnConstraint:e=>V9.default.seq(e.ConstraintName.fallback(null),e.ColumnConstraintOption).map(e=>e[1]),ColumnConstraintOption:e=>V9.default.alt(MZe,xZe,e.ConstraintCheck,e.ConstraintDefault),ConstraintCheck:e=>V9.default.seq(rYe,u9.fallback(null),e.ConstraintCheckExpr).map(e=>e[2]),ConstraintCheckExpr:e=>V9.default.alt(V9.default.seq(m9.fallback(null),e.ConstraintCheckEnum,g9.fallback(null)).map(e=>e[1]),dZe.thru(S9(`expression`))),ConstraintCheckEnum:()=>V9.default.seqMap(N9,CXe,x9(j9.thru(b9())),FZe).thru(b9()),ConstraintDefault:e=>V9.default.seqMap(_Ye,e.ConstExpr,PZe),ConstExpr:e=>V9.default.alt(V9.default.seq(m9,e.ConstExpr,g9).map(e=>e[1]),M9,j9,hYe.thru(S9(`boolean`))),ConstraintName:()=>V9.default.seq(iYe,N9).map(e=>e[1])}),RZe=H9.ColumnConstraint,zZe=H9.TableConstraint,BZe=H9.ConstraintCheck,VZe=H9.ConstraintName,HZe=H9.ConstExpr}));function UZe(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 WZe=o((()=>{U9()}));function GZe(e,t){let n=t?t.join(`,`):null;return{type:`type`,value:{type_name:n?`${lu(e)}(${n})`:lu(e),schemaName:e.length>1?e[0]:null,args:n}}}function KZe(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 qZe=o((()=>{Yu()})),W9,G9,JZe,YZe,XZe,ZZe=o((()=>{W9=u(t9()),y9(),F9(),T9(),B9(),U9(),fZe(),qZe(),G9=W9.default.createLanguage({ColumnsDefinition:e=>W9.default.alt(e.ComputedColumnDefinition.result(null),e.ColumnSetDefinition.result(null),e.ColumnDefinition),ColumnDefinition:e=>W9.default.seqMap(A9,e.DataType,W9.default.alt(e.ColumnSetting,e.IgnoredColumnSetting.result(null)).many().fallback(null),KZe).thru(b9()),ColumnSetDefinition:()=>W9.default.seq(N9,IYe),ComputedColumnDefinition:()=>W9.default.seq(N9,PYe,dZe,W9.default.seq(FYe,gYe.fallback(null)).fallback(null),RZe.fallback(null)),ColumnSetting:e=>W9.default.alt(e.NullOrNot,e.Identity,kZe,RZe),IgnoredColumnSetting:e=>W9.default.alt(e.ColumnSetting1Word,e.ColumnSettingWith,e.ColumnSettingGAAR,e.ColumnSettingCollate),DataType:e=>W9.default.seqMap(A9,x9(W9.default.alt(e.DataTypeXML,N9)).fallback(null),GZe),DataTypeXML:()=>W9.default.seq(W9.default.alt(mYe,pYe),N9).tieWith(` `),NullOrNot:()=>W9.default.alt(hYe.result(!1),gYe.result(!0)).thru(S9(`not_null`)),Identity:()=>qJe.result(!0).skip(qXe.fallback(null)).thru(S9(`increment`)),ColumnSetting1Word:()=>W9.default.alt(vYe,u9,xYe,bYe),ColumnSettingWith:()=>W9.default.seq(W9.default.alt(SYe,CYe),c9,zXe),ColumnSettingCollate:()=>W9.default.seq(yYe,N9),ColumnSettingGAAR:()=>W9.default.seq(TYe,W9.default.alt(EYe,DYe),OYe.fallback(null))}),G9.Identity,G9.DataType,XZe=G9.ColumnsDefinition})),K9,QZe,$Ze,eQe=o((()=>{K9=u(t9()),y9(),F9(),T9(),WZe(),CZe(),B9(),U9(),ZZe(),QZe=K9.default.createLanguage({AddAction:e=>K9.default.seq(GYe,e.AddOption.sepBy1(h9)).map(e=>e[1]),AddOption:e=>K9.default.alt(e.AddConstraint,XZe.result(null),e.IgnoredAddSystemTimeOption.result(null)),IgnoredAddSystemTimeOption:()=>K9.default.alt(N9,K9.default.regexp(/[(),]/)).many(),AddConstraint:e=>K9.default.seqMap(VZe.fallback(null),e.AddConstraintOption,IZe).thru(b9()),AddConstraintOption:e=>K9.default.alt(SZe,NZe,BZe,e.AddConstraintDefault,e.IgnoredAddConstraintOption.result(null)),IgnoredAddConstraintOption:e=>K9.default.alt(e.AddConstraintConnection),AddConstraintDefault:()=>K9.default.seqMap(_Ye,HZe,BYe,N9,VYe.fallback(null),UZe),AddConstraintConnection:()=>K9.default.seq(HYe,x9(K9.default.seq(N9,UYe,N9)))}),$Ze=QZe.AddAction})),q9,tQe,nQe,rQe=o((()=>{q9=u(t9()),y9(),F9(),oZe(),eQe(),tQe=q9.default.createLanguage({AlterTable:e=>q9.default.seqMap(e.AlterTableKeywords,A9,e.AlterTableActions,aZe),AlterTableActions:e=>q9.default.alt($Ze,e.IgnoredAlterTableActions),AlterTableKeywords:()=>q9.default.seq(WYe,d9),IgnoredAlterTableActions:e=>q9.default.seq(e.IgnoredAlterTableActionKeywords,D9).result(null),IgnoredAlterTableActionKeywords:()=>q9.default.alt(c9,$Ye,QYe,YYe,XYe,rYe,JYe,KYe,qYe)}),nQe=tQe.AlterTable}));function iQe(e,t,n,r,i,a,o,s){let c=C9(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 aQe=o((()=>{T9()})),J9,oQe,sQe,cQe=o((()=>{J9=u(t9()),y9(),F9(),T9(),aQe(),B9(),oQe=J9.default.createLanguage({CreateIndex:e=>J9.default.seqMap(f9,l9.fallback(null),P9.fallback(null),s9,N9,JJe,A9,k9,iQe).thru(b9()).skip(e.IgnoredCreateIndexOptions),IgnoredCreateIndexOptions:e=>J9.default.alt(AZe,e.IncludeIndexOption,e.WhereIndexOption).many(),IncludeIndexOption:()=>J9.default.seq(LYe,k9),WhereIndexOption:e=>J9.default.seq(zYe,e.FilterPredicate),FilterPredicate:e=>J9.default.seq(e.Conjunct,J9.default.seq(wXe,e.Conjunct).fallback(null)),Conjunct:e=>J9.default.alt(e.Disjunct,e.Comparsion),Disjunct:()=>J9.default.seq(N9,RYe,x9(j9)),Comparsion:()=>J9.default.seq(N9,VXe,j9)}),sQe=oQe.CreateIndex}));function lQe(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 uQe(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 dQe(e,t){t.indexes&&=(t.indexes.columns.push({value:t.name,type:`column`}),e.push(t.indexes),null)}function fQe(e,t){let n={fields:[],enums:[],refs:[],indexes:[]};return e.forEach(e=>{if(e&&n[e.type]){if(e.type===`fields`&&(uQe(n.enums,e.value,t),dQe(n.indexes,e.value),lQe(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 pQe(e,t,n,r){let i=C9(t),a=fQe(r,i);return{type:`tables`,value:{...i,...a.value}}}var mQe=o((()=>{T9()})),Y9,hQe,gQe,_Qe=o((()=>{Y9=u(t9()),y9(),F9(),T9(),U9(),B9(),ZZe(),mQe(),hQe=Y9.default.createLanguage({CreateTable:e=>Y9.default.seqMap(e.CreateTableKeywords,A9,e.AsFileTableKeywords.fallback(null),x9(e.Line),pQe).thru(b9()).skip(e.IgnoredTableOptions),CreateTableKeywords:()=>Y9.default.seq(f9,d9),AsFileTableKeywords:()=>Y9.default.seq(PYe,NYe),Line:e=>Y9.default.alt(e.SystemTimeTableOption,zZe,jZe,XZe),SystemTimeTableOption:()=>Y9.default.seq(MYe,x9(N9)).result(null),IgnoredTableOptions:e=>Y9.default.alt(AZe,e.TextImageTableOption).many(),TextImageTableOption:()=>Y9.default.seq(jYe,N9)}),gQe=hQe.CreateTable}));function vQe({note:e,level:t}){let n=`unsupported`,r=null,i=null,a=null;return SQe(t)?(r=t[0].name,i=t[1].name,n=`table`):CQe(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 yQe,bQe,xQe,SQe,CQe,wQe=o((()=>{yQe=e=>e.toLowerCase()===`schema`,bQe=e=>e.toLowerCase()===`table`,xQe=e=>e.toLowerCase()===`column`,SQe=e=>e.length===2&&yQe(e[0].type)&&bQe(e[1].type),CQe=e=>e.length===3&&yQe(e[0].type)&&bQe(e[1].type)&&xQe(e[2].type)})),X9,TQe,EQe,DQe=o((()=>{X9=u(t9()),y9(),wQe(),T9(),TQe=X9.default.createLanguage({StartComment:()=>X9.default.seq(uXe,SXe),EndComment:()=>X9.default.seq(v9.atMost(1),p9),StartString:()=>X9.default.alt(OXe,X9.default.string(`N'`)),ManyDoubleSingleQuote:()=>X9.default.string(`''`),NoSingleQuote:()=>X9.default.regex(/[^']/),StringType:e=>X9.default.alt(e.NoSingleQuote,e.ManyDoubleSingleQuote).atLeast(1).map(e=>e.join(``)),NVarchar:e=>e.StartString.then(e.StringType).skip(OXe),NameOption:e=>jXe.skip(_9).then(e.NVarchar),ValueOption:e=>MXe.skip(_9).then(e.NVarchar),Level0Type:e=>NXe.skip(_9).then(e.NVarchar),Level0Name:e=>PXe.skip(_9).then(e.NVarchar),Level1Type:e=>FXe.skip(_9).then(e.NVarchar),Level1Name:e=>IXe.skip(_9).then(e.NVarchar),Level2Type:e=>LXe.skip(_9).then(e.NVarchar),Level2Name:e=>RXe.skip(_9).then(e.NVarchar),Level0Stmt:e=>X9.default.seqObj([`type`,e.Level0Type],h9,[`name`,e.Level0Name]),Level1Stmt:e=>X9.default.seqObj([`type`,e.Level1Type],h9,[`name`,e.Level1Name]),Level2Stmt:e=>X9.default.seqObj([`type`,e.Level2Type],h9,[`name`,e.Level2Name]),Level0Wrapper:e=>X9.default.alt(X9.default.seq(e.Level0Stmt.skip(h9),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=>X9.default.alt(X9.default.seq(e.Level1Stmt.skip(h9),e.Level2Stmt),e.Level1Stmt).map(e=>Array.isArray(e)?e:[e]),CommentSyntax:e=>X9.default.seqObj(e.StartComment,[`name`,e.NameOption],h9,[`note`,e.ValueOption],h9,[`level`,e.Level0Wrapper],e.EndComment).map(vQe).thru(b9())}),EQe=TQe.CommentSyntax})),OQe=o((()=>{rQe(),cQe(),_Qe(),DQe()}));function Z9(e,t,n){let r=n||`public`;return e.tables.find(e=>(e.schemaName||`public`)===r&&e.name===t)}function kQe(e,t){return e.fields.find(e=>e.name===t)}function AQe(e,t){Z9(t,e.tableName,e.schemaName).indexes.push(e),e.tableName=null}function jQe(e,t){e.forEach(e=>{t.push(e)})}function MQe(e,t){jQe(e.enums,t.enums),jQe(e.refs,t.refs),e.enums.forEach(e=>{e.fieldName=null}),e.enums=null,e.refs=null}function NQe(e,t){let n=kQe(Z9(t,e.tableName,e.schemaName),e.fieldName);e.fieldName=null,e.tableName=null,n.dbdefault=e}function PQe(e,t){let n=kQe(Z9(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 FQe(e,t){let{schemaName:n}=e;n===`dbo`&&(n=null);let r=Z9(t,e.tableName,n);r&&(r.note=e.note?{value:e.note}:null)}function IQe(e,t){let{schemaName:n}=e;n===`dbo`&&(n=null);let r=Z9(t,e.tableName,n);if(r){let t=kQe(r,e.columnName);t&&(t.note=e.note?{value:e.note}:null)}}function LQe(e,t){e.type===`table`?FQe(e,t):e.type===`column`&&IQe(e,t)}function RQe(e){let t={tables:[],refs:[],indexes:[],enums:[]};return ao(e).forEach(e=>{if(e){switch(e.type){case`tables`:MQe(e.value,t);break;case`indexes`:AQe(e.value,t);break;case`dbdefault`:NQe(e.value,t);break;case`enums`:PQe(e.value,t);break;case`comment`:LQe(e.value,t);break;default:break}e.type&&t[e.type]&&t[e.type].push(e.value)}}),t.indexes=null,t}var zQe=o((()=>{Yu()})),Q9,BQe,$9,VQe=o((()=>{Q9=u(t9()),y9(),OQe(),i9(),zQe(),F9(),BQe=Q9.default.createLanguage({Statements:e=>r9.then(e.Seperator).then(Q9.default.sepBy(e.StatementTypes,e.Seperator)).skip(e.Seperator).map(RQe),StatementTypes:e=>Q9.default.alt(sQe,gQe,nQe,EQe,e.IgnoredStatementTypes),IgnoredStatementTypes:e=>Q9.default.seq(e.IgnoredStatementSyntax,D9),IgnoredStatementSyntax:e=>Q9.default.alt(e.IgnoredDDLSyntax,e.IgnoredDMLSyntax,e.IgnoredBackupAndRestoreSyntax,e.IgnoredServiceBrokerSyntax,e.IgnoredPermissionSyntax,GYe,sXe,KYe,xXe),IgnoredDDLSyntax:e=>Q9.default.alt(e.KeywordCreateWithoutTable,e.KeywordAlterWithoutTable,yYe,QYe,yXe,YYe,XYe),IgnoredDMLSyntax:()=>Q9.default.alt(eXe,tXe,nXe,rXe,iXe,bXe),IgnoredServiceBrokerSyntax:()=>Q9.default.alt(mXe,DYe,gXe,_Xe,vXe),IgnoredPermissionSyntax:()=>Q9.default.alt(cXe,lXe,dXe,fXe,pXe),IgnoredBackupAndRestoreSyntax:()=>Q9.default.alt(aXe,oXe),KeywordCreateWithoutTable:()=>f9.notFollowedBy(d9),KeywordAlterWithoutTable:()=>WYe.notFollowedBy(d9),Seperator:()=>Q9.default.alt(v9,p9,Q9.default.seq(v9,p9)).many()}),$9=BQe.Statements})),HQe=c({default:()=>UQe},1),UQe,WQe=o((()=>{VQe(),$9.parseWithPegError=function(e){try{return $9.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}},UQe=$9})),GQe=s(((e,t)=>{t.exports=(WQe(),d(HQe))})),KQe=u(zJe()),qQe=u(BJe()),JQe=u(VJe()),YQe=u(HJe()),XQe=u(GQe()),ZQe=class e{constructor(e){this.DBMLCompiler=e||new E_}static parseJSONToDatabase(e){return new Hme(e)}static parseMySQLToJSONv2(e){return Q7(e,`mysql`)}static parseMySQLToJSON(e){return KQe.default.parse(e)}static parsePostgresToJSONv2(e){return Q7(e,`postgres`)}static parsePostgresToJSON(e){return qQe.default.parse(e)}static parseDBMLToJSONv2(e,t){let n=t||new E_;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 K7.create(r);return n.parse.rawDb()}static parseDBMLToJSON(e){return JQe.default.parse(e)}static parseSchemaRbToJSON(e){return YQe.default.parse(e)}static parseMSSQLToJSON(e){return XQe.default.parseWithPegError(e)}static parseMSSQLToJSONv2(e){return Q7(e,`mssql`)}static parseSnowflakeToJSON(e){return Q7(e,`snowflake`)}static parseOracleToJSON(e){return Q7(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 K7.create(e)}}},QQe=ZQe,$Qe=e=>new Hme(e),e$e=e=>e.map(e=>{let{name:t,endpoints:n,onDelete:r,onUpdate:i}=e;return new oE({name:t,endpoints:n.map(e=>new aE(e)),onDelete:r,onUpdate:i}).toJSON()}),t$e=e=>e.map(e=>{let{name:t,schemaName:n,values:r}=e;return new sE({name:t,schemaName:n,values:r})}),n$e=(e,t)=>e.map(e=>{let n=t[e.name]||{};return new rE({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})}),r$e=e=>e.map(e=>{let{name:t,unique:n,pk:r,type:i,columns:a}=e;return new nE({name:t,unique:n,pk:r,type:i,columns:a})}),i$e=(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 iE({name:a,schemaName:o,fields:n$e(t[c],l),indexes:r$e(n[c]||[]),note:s,checks:r[c]})}),a$e=e=>{let{tables:t,fields:n,indexes:r,refs:i,enums:a,tableConstraints:o,checks:s}=e;try{let e=i$e(t,n,r,s,o),c=t$e(a);return $Qe({schemas:[],tables:e,refs:e$e(i),enums:c,tableGroups:[],aliases:[],project:{}})}catch(e){throw Error(e)}};function o$e(e,t){let n=new QQe().parse(e,t);return F_.export(n.normalize(),`dbml`)}function s$e(e){let t=a$e(e);return F_.export(t.normalize(),`dbml`)}var c$e={import:o$e,generateDbml:s$e};function l$e(e,t){let n=new QQe().parse(e,`dbmlv2`);return F_.export(n.normalize(),t)}var u$e={export:l$e};function d$e(e,t,n){let r=new E_;return r.setSource(n),r.renameTable(e,t)}const f$e=`6.3.0-alpha.4`,p$e=`6.3.0-alpha.4`;exports.CompilerError=K7,exports.ModelExporter=F_,exports.Parser=QQe,exports.VERSION=`6.3.0-alpha.4`,exports.addDoubleQuoteIfNeeded=u_,exports.exporter=u$e,exports.formatRecordValue=zfe,exports.importer=c$e,exports.isBinaryType=oh,exports.isBooleanType=ih,exports.isDateTimeType=sh,exports.isFloatType=nh,exports.isIntegerType=th,exports.isNumericType=rh,exports.isSerialType=ch,exports.isStringType=ah,exports.renameTable=d$e,exports.tryExtractBoolean=Xg,exports.tryExtractDateTime=Qg,exports.tryExtractEnum=cfe,exports.tryExtractInteger=afe,exports.tryExtractNumeric=Yg,exports.tryExtractString=Zg;
|
|
137
|
+
`),Xe=Te(Ye,Je,qe).desc(`newline`),Ze=Te(Xe,Be);r.all=ze,r.alt=Te,r.any=Re,r.cr=qe,r.createLanguage=function(e){var t={};for(var n in e)({}).hasOwnProperty.call(e,n)&&function(n){t[n]=Fe(function(){return e[n](t)})}(n);return t},r.crlf=Ye,r.custom=function(e){return r(e(y,ne))},r.digit=Ve,r.digits=He,r.empty=Ie,r.end=Ze,r.eof=Be,r.fail=je,r.formatError=xe,r.index=Le,r.isParser=ee,r.lazy=Fe,r.letter=Ue,r.letters=We,r.lf=Je,r.lookahead=Me,r.makeFailure=ne,r.makeSuccess=y,r.newline=Xe,r.noneOf=function(e){return Pe(function(t){return e.indexOf(t)<0}).desc(`none of '`+e+`'`)},r.notFollowedBy=Ne,r.of=Ae,r.oneOf=function(e){for(var t=e.split(``),n=0;n<t.length;n++)t[n]=`'`+t[n]+`'`;return Pe(function(t){return e.indexOf(t)>=0}).desc(t)},r.optWhitespace=Ge,r.Parser=r,r.range=function(e,t){return Pe(function(n){return e<=n&&n<=t}).desc(e+`-`+t)},r.regex=ke,r.regexp=ke,r.sepBy=Ee,r.sepBy1=De,r.seq=Ce,r.seqMap=we,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=re(c._(e,t),n)).status)return n;s&&(r[s]=n.value),t=n.index}return re(y(t,r),n)})},r.string=Oe,r.succeed=Ae,r.takeWhile=function(e){return le(e),r(function(t,n){for(var r=n;r<t.length&&e(se(t,r));)r++;return y(r,t.slice(n,r))})},r.test=Pe,r.whitespace=Ke,r[`fantasy-land/empty`]=Ie,r[`fantasy-land/of`]=Ae,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(ue(r[0]),ce(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 ce(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(),ce(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=se(n,r);return i===e?y(r+1,i):ne(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}])})})),n9,UJe,r9,i9=o((()=>{n9=u(t9()),UJe=n9.default.createLanguage({WhiteSpaces:e=>n9.default.alt(e.WhiteSpace,e.InlineComment,e.MulLineComment).many().desc(`whitespaces or comments`),WhiteSpace:()=>n9.default.regexp(/\s/).desc(`whitespaces`),InlineComment:()=>n9.default.seq(n9.default.string(`--`),n9.default.regexp(/[^\n\r]*/)).desc(`comments`),MulLineComment:()=>n9.default.regexp(/\/\*[\s\S]+?\*\//).desc(`comments`)}),r9=UJe.WhiteSpaces}));function a9(e){return GJe.default.string(e).skip(r9).desc(`"${e}"`)}function WJe(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 o9(e){let t=e,n=e.source;return t=WJe(e),GJe.default.regexp(t).skip(r9).desc(`"${n}"`)}var GJe,KJe=o((()=>{GJe=u(t9()),i9()})),qJe,s9,c9,JJe,YJe,XJe,ZJe,QJe,$Je,eYe,tYe,nYe,rYe,iYe,l9,aYe,oYe,u9,sYe,cYe,lYe,uYe,dYe,fYe,pYe,mYe,hYe,gYe,_Ye,vYe,yYe,bYe,xYe,SYe,CYe,wYe,TYe,EYe,DYe,OYe,kYe,AYe,jYe,MYe,NYe,d9,f9,PYe,FYe,IYe,LYe,RYe,zYe,BYe,VYe,HYe,UYe,WYe,GYe,KYe,qYe,JYe,YYe,XYe,ZYe,QYe,$Ye,p9,eXe,tXe,nXe,rXe,iXe,aXe,oXe,sXe,cXe,lXe,uXe,dXe,fXe,pXe,mXe,hXe,gXe,_Xe,vXe,yXe,bXe,xXe,SXe,CXe,wXe,TXe,EXe,m9,h9,g9,DXe,OXe,kXe,AXe,_9,v9,jXe,MXe,NXe,PXe,FXe,IXe,LXe,RXe,y9=o((()=>{KJe(),qJe=o9(/IDENTITY/i),s9=o9(/INDEX/i),c9=o9(/WITH/i),JJe=o9(/ON/i),o9(/OFF/i),XJe=o9(/FILESTREAM_ON/i),ZJe=o9(/PRIMARY KEY/i),QJe=o9(/CLUSTERED/i),$Je=o9(/NONCLUSTERED/i),eYe=o9(/COLUMNSTORE/i),tYe=o9(/REFERENCES/i),nYe=o9(/FOREIGN KEY/i),rYe=o9(/CHECK/i),iYe=o9(/CONSTRAINT/i),l9=o9(/UNIQUE/i),o9(/HASH/i),o9(/BUCKET_COUNT/i),u9=o9(/NOT FOR REPLICATION/),sYe=o9(/ON DELETE/i),cYe=o9(/ON UPDATE/i),lYe=o9(/SET NULL/i),uYe=o9(/SET DEFAULT/i),dYe=o9(/NO ACTION/i),fYe=o9(/CASCADE/i),pYe=o9(/CONTENT/i),mYe=o9(/DOCUMENT/i),hYe=o9(/NULL/i),gYe=o9(/NOT NULL/i),_Ye=o9(/DEFAULT/i),vYe=o9(/FILESTREAM/i),yYe=o9(/COLLATE/i),bYe=o9(/SPARSE/i),xYe=o9(/ROWGUIDCOL/i),SYe=o9(/MASKED/i),CYe=o9(/ENCRYPTED/i),o9(/FUNCTION/i),TYe=o9(/GENERATED ALWAYS AS ROW/i),EYe=o9(/START/i),DYe=o9(/END/i),OYe=o9(/HIDDEN/i),kYe=o9(/ASC/i),AYe=o9(/DESC/i),jYe=o9(/TEXTIMAGE_ON/i),MYe=o9(/PERIOD FOR SYSTEM_TIME/i),NYe=o9(/FILETABLE/i),d9=o9(/TABLE/i),f9=o9(/CREATE/i),PYe=o9(/AS/i),FYe=o9(/PERSISTED/i),IYe=o9(/XML COLUMN_SET FOR ALL_SPARSE_COLUMNS/i),LYe=o9(/INCLUDE/i),RYe=o9(/IN/i),zYe=o9(/WHERE/i),BYe=o9(/FOR/i),VYe=o9(/WITH VALUES/i),HYe=o9(/CONNECTION/i),UYe=o9(/TO/i),WYe=o9(/ALTER/i),GYe=o9(/ADD/i),KYe=o9(/SET/i),qYe=o9(/REBUILD/i),JYe=o9(/SWITCH/i),YYe=o9(/ENABLE/i),XYe=o9(/DISABLE/i),o9(/NOCHECK/i),QYe=o9(/DROP/i),$Ye=o9(/ALTER COLUMN/i),p9=o9(/GO/i),eXe=o9(/BULK INSERT/i),tXe=o9(/INSERT/i),nXe=o9(/UPDATE/i),rXe=o9(/MERGE/i),iXe=o9(/TRUNCATE TABLE/i),aXe=o9(/BACKUP/i),oXe=o9(/RESTORE/i),sXe=o9(/CLOSE/i),cXe=o9(/DENY/i),lXe=o9(/EXECUTE/i),uXe=o9(/EXEC/i),dXe=o9(/GRANT/i),fXe=o9(/OPEN/i),pXe=o9(/REVOKE/i),mXe=o9(/BEGIN/i),o9(/GET/i),gXe=o9(/MOVE/i),_Xe=o9(/RECEIVE/i),vXe=o9(/SEND/i),yXe=o9(/RENAME/i),bXe=o9(/DELETE/i),xXe=o9(/IF/i),SXe=o9(/sp_addextendedproperty/i),CXe=o9(/IN/i),wXe=o9(/AND/i),a9(`<`),a9(`>`),m9=a9(`(`),h9=a9(`,`),g9=a9(`)`),a9(`"`),OXe=a9(`'`),a9(`[`),a9(`]`),_9=a9(`=`),v9=a9(`;`),jXe=o9(/@name/i),MXe=o9(/@value/i),NXe=o9(/@level0type/i),PXe=o9(/@level0name/i),FXe=o9(/@level1type/i),IXe=o9(/@level1name/i),LXe=o9(/@level2type/i),RXe=o9(/@level2name/i)}));function b9(){return function(e){return w9.default.seqMap(w9.default.index,e,w9.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(r9)}}function x9(e,t=!1){let n=e.sepBy1(h9);return t&&(n=e.sepBy(h9)),w9.default.seq(m9,n,g9).map(e=>e[1])}function S9(e){return function(t){return t.skip(r9).map(t=>(t!==0&&!t&&(t=``),{type:e,value:t}))}}function C9(e){let t=null;return e.length>1&&(t=e[e.length-2]),{name:lu(e),schemaName:t}}var w9,T9=o((()=>{w9=u(t9()),Yu(),y9(),i9()})),E9,D9,O9,k9,A9,zXe,BXe,VXe,j9,M9,HXe,UXe,WXe,GXe,KXe,qXe,JXe,YXe,XXe,N9,ZXe,QXe,$Xe,eZe,tZe,P9,nZe,F9=o((()=>{E9=u(t9()),T9(),y9(),i9(),D9=(0,E9.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,E9.default.makeSuccess(n+1,``)}),O9=E9.default.createLanguage({pIgnore:()=>D9,pColumnNames:e=>x9(E9.default.seq(e.pIdentifier,e.pKeywordAscOrDesc.fallback(null)).map(e=>e[0])).desc(`list of column names`),pDotDelimitedName:e=>E9.default.sepBy1(e.pIdentifier,E9.default.string(`.`)).desc(`dot delimited identifier`),pOptionList:e=>x9(e.pOption),pOption:e=>E9.default.seq(e.pIdentifier,_9,E9.default.seq(E9.default.alt(e.pIdentifier,e.pString).many(),E9.default.alt(e.pOptionList,x9(e.pIdentifier.many())).fallback(null))).desc(`option`),pComparsionOp:()=>E9.default.regex(/IS|IS[^\S\r\n]+NOT|=|<>|!=|>|>=|!>|<|<=|!</i).skip(r9).desc(`comparsion operator`),pConst:e=>E9.default.alt(e.pString,e.pUnicode,e.pBinary,e.pScience,e.pMoney,e.pSigned,e.pNumber).desc(`constant`),pFunction:e=>E9.default.seq(e.pIdentifier,x9(e.pFunctionParam,!0)).map(e=>`${e[0]}(${e[1].join(`,`)})`).thru(S9(`function`)).desc(`function constant`),pFunctionParam:e=>E9.default.alt(e.pNumber,e.pIdentifier).desc(`identifier or number paremeter`),pMoney:e=>E9.default.seq(E9.default.regexp(/[+-]\$/),e.pNumber).thru(S9(`money`)).desc(`money constant`),pSigned:e=>E9.default.seq(E9.default.regexp(/[+-]/),e.pNumber).thru(S9(`signed`)).desc(`signed constant`),pUnicode:e=>E9.default.seq(E9.default.string(`N`),e.pString).thru(S9(`unicode`)).desc(`unicode constant`),pString:()=>E9.default.regexp(/'[^']*'/).thru(S9(`string`)).map(e=>{let t=e.value;return e.value=t.slice(1,t.length-1),e}).desc(`string constant`),pNumberList:e=>x9(e.pNumber).desc(`list of number`),pNumber:()=>E9.default.regexp(/[0-9]+(\.[0-9]+)?/).map(Number).thru(S9(`number`)).desc(`number constant`),pBinary:()=>E9.default.regexp(/0x[A-F0-9]*/).thru(S9(`binary`)).desc(`binary constant`),pScience:()=>E9.default.regexp(/[+-]+[0-9]+(\.[0-9E]+)?/).thru(S9(`science`)).desc(`science constant`),pIdentifier:e=>E9.default.alt(e.pRegularIdentifier,e.pDelimitedIdentifier).skip(r9).desc(`identifier`),pDelimitedIdentifier:e=>E9.default.alt(e.pDQDelimitedIdentifier,e.pBracketDelimitedIdentifier).skip(r9).desc(`delimited identifier`),pRegularIdentifier:()=>E9.default.regexp(/^[\w@#][\w@#$]*/).skip(r9),pDQDelimitedIdentifier:()=>E9.default.seq(E9.default.string(`"`),E9.default.regexp(/[^"]*/),E9.default.string(`"`)).map(e=>e[1]).skip(r9),pBracketDelimitedIdentifier:()=>E9.default.seq(E9.default.string(`[`),E9.default.regexp(/[^\]]*/),E9.default.string(`]`)).map(e=>e[1]).skip(r9),pKeywordPKOrUnique:()=>E9.default.alt(ZJe.result({type:`pk`,value:!0}),l9.result({type:`unique`,value:!0})),pKeywordClusteredOrNon:()=>E9.default.alt(QJe,$Je),pKeywordAscOrDesc:()=>E9.default.alt(kYe,AYe)}),k9=O9.pColumnNames,A9=O9.pDotDelimitedName,zXe=O9.pOptionList,BXe=O9.pOption,VXe=O9.pComparsionOp,j9=O9.pConst,M9=O9.pFunction,O9.pFunctionParam,O9.pMoney,O9.pSigned,O9.pUnicode,O9.pString,qXe=O9.pNumberList,O9.pNumber,O9.pBinary,O9.pScience,N9=O9.pIdentifier,O9.pDelimitedIdentifier,O9.pRegularIdentifier,O9.pDQDelimitedIdentifier,O9.pBracketDelimitedIdentifier,tZe=O9.pKeywordPKOrUnique,P9=O9.pKeywordClusteredOrNon,O9.pKeywordAscOrDesc}));function rZe(e,t){let n=t.value.endpoints.find(e=>!e.tableName);n.tableName=e.name,n.schemaName=e.schemaName}function iZe(e,t){t.value.tableName=e.name,t.value.schemaName=e.schemaName}function aZe(e,t,n){if(!n)return null;let r=C9(t);return n.forEach(e=>{if(e)switch(e.type){case`refs`:rZe(r,e);break;case`indexes`:case`dbdefault`:case`enums`:iZe(r,e);break;default:break}}),n}var oZe=o((()=>{T9()}));function sZe(e){return e.many().map(e=>e.join(``)).fallback(null).thru(S9(`token`))}function cZe(e){let t=g9.thru(sZe),n=m9.thru(sZe);return I9.default.seq(n,e,t)}function lZe(e){return I9.default.alt(cZe(e),e)}var I9,uZe,dZe,fZe=o((()=>{I9=u(t9()),F9(),y9(),i9(),T9(),Yu(),uZe=I9.default.createLanguage({ExpressionFinal:e=>e.Expression.map(e=>Su(e).map(e=>e?e.value:``).join(``)),Expression:e=>lZe(I9.default.seq(I9.default.alt(e.UnaryExpression,e.SimpleExpression),e.BinaryExpressionLR.fallback(null)).skip(r9)),UnaryExpression:e=>{let t=I9.default.regex(/[+\-~]/).thru(S9(`unary_operator`));return lZe(I9.default.seq(t,e.Expression).skip(r9))},BinaryExpressionLR:e=>{let t=I9.default.regexp(/[+\-*/%=!<>&^|]{1,2}/).map(e=>` ${e} `).thru(S9(`binary_operator`)).skip(r9);return I9.default.seq(t,e.Expression).skip(r9)},SimpleExpression:e=>lZe(I9.default.alt(M9,j9,e.ExpressionDDN).skip(r9)),ExpressionDDN:()=>A9.map(e=>e.join(`.`)).thru(S9(`identifier`))}),dZe=uZe.ExpressionFinal}));function pZe(e,t,n){return{tableName:e.name,schemaName:e.schemaName,fieldNames:t,relation:n}}function mZe(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 hZe(e,t,n,r){let i={};return i.endpoint=pZe(C9(t),n,`1`),mZe(i,r),{type:`inline_refs`,value:[i]}}function gZe(e){return{type:`endpoint`,value:{fieldNames:e}}}function _Ze(e,t,n,r,i,a){let o={},s=C9(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],mZe(o,a),{type:`refs`,value:o}}function vZe(e,t){return{type:e,setting:t.toLowerCase().trim().split(/[ ]+/).join(` `)}}var yZe=o((()=>{T9()})),L9,bZe,xZe,SZe,CZe=o((()=>{L9=u(t9()),y9(),F9(),T9(),yZe(),bZe=L9.default.createLanguage({TableConstraintFK:e=>L9.default.seqMap(nYe.fallback(null),e.TableEndpoint,tYe,A9,e.TableEndpoint.fallback(null),e.FKOptions.fallback(null),_Ze),TableEndpoint:()=>L9.default.seqMap(k9,gZe).thru(b9()),ColumnConstraintFK:e=>L9.default.seqMap(e.FKKeywords,A9,x9(N9).fallback(null),e.FKOptions.fallback(null),hZe),FKOptions:e=>L9.default.alt(e.FKOnDelete,e.FKOnUpdate,e.FKNFR).many(),FKKeywords:()=>L9.default.seq(nYe.fallback(null),tYe),FKOnDelete:e=>L9.default.seqMap(sYe,e.FKOnOptions,vZe),FKOnUpdate:e=>L9.default.seqMap(cYe,e.FKOnOptions,vZe),FKNFR:()=>u9.map(e=>({type:e})),FKOnOptions:()=>L9.default.alt(dYe,fYe,uYe,lYe)}),xZe=bZe.ColumnConstraintFK,SZe=bZe.TableConstraintFK}));function wZe(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 TZe(e,t){return{type:`indexes`,value:{name:t,columns:[]}}}function EZe(e,t,n,r,i,a){return wZe(a,n,null,t)}function DZe(e,t,n){let r=null,i=null;return e.type===`pk`?r=!0:e.type===`unique`&&(i=!0),wZe(n,i,r)}var OZe=o((()=>{})),R9,z9,kZe,AZe,jZe,MZe,NZe,B9=o((()=>{R9=u(t9()),y9(),F9(),T9(),OZe(),z9=R9.default.createLanguage({TableIndex:e=>R9.default.seqMap(s9,N9,l9.fallback(null),P9.fallback(null),eYe.fallback(null),k9,EZe).thru(b9()).skip(e.IgnoredIndexOptions),TableConstraintIndex:e=>R9.default.seqMap(tZe,P9.fallback(null),k9,DZe).thru(b9()).skip(e.IgnoredIndexOptions),ColumnConstraintIndex:e=>R9.default.seq(tZe).skip(e.IgnoredIndexOptions).map(e=>e[0]),ColumnIndex:e=>R9.default.seqMap(s9,N9,TZe).thru(b9()).skip(e.IgnoredIndexOptions),IgnoredIndexOptions:e=>R9.default.alt(P9,e.IgnoredIndexOption).many(),IgnoredIndexOption:e=>R9.default.alt(e.WithIndexOption,e.ColumnIndexFilestream,e.OnIndexOption,e.WithFillFactorOption),WithIndexOption:()=>R9.default.seq(c9,zXe),WithFillFactorOption:()=>R9.default.seq(c9,BXe),OnIndexOption:()=>R9.default.seq(JJe,R9.default.alt(N9,M9)),ColumnIndexFilestream:()=>R9.default.seq(XJe,N9)}),kZe=z9.ColumnIndex,AZe=z9.IgnoredIndexOption,jZe=z9.TableIndex,MZe=z9.ColumnConstraintIndex,NZe=z9.TableConstraintIndex}));function PZe(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 FZe(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 IZe(e,t){return t?{type:t.type,value:{...t.value,name:t.type===`indexes`&&t.value.pk?null:e}}:null}var LZe=o((()=>{})),V9,H9,RZe,zZe,BZe,VZe,HZe,U9=o((()=>{V9=u(t9()),y9(),fZe(),F9(),T9(),CZe(),B9(),LZe(),H9=V9.default.createLanguage({TableConstraint:e=>V9.default.seqMap(e.ConstraintName.fallback(null),e.TableConstraintOption,IZe).thru(b9()),TableConstraintOption:e=>V9.default.alt(SZe,NZe,e.ConstraintCheck),ColumnConstraint:e=>V9.default.seq(e.ConstraintName.fallback(null),e.ColumnConstraintOption).map(e=>e[1]),ColumnConstraintOption:e=>V9.default.alt(MZe,xZe,e.ConstraintCheck,e.ConstraintDefault),ConstraintCheck:e=>V9.default.seq(rYe,u9.fallback(null),e.ConstraintCheckExpr).map(e=>e[2]),ConstraintCheckExpr:e=>V9.default.alt(V9.default.seq(m9.fallback(null),e.ConstraintCheckEnum,g9.fallback(null)).map(e=>e[1]),dZe.thru(S9(`expression`))),ConstraintCheckEnum:()=>V9.default.seqMap(N9,CXe,x9(j9.thru(b9())),FZe).thru(b9()),ConstraintDefault:e=>V9.default.seqMap(_Ye,e.ConstExpr,PZe),ConstExpr:e=>V9.default.alt(V9.default.seq(m9,e.ConstExpr,g9).map(e=>e[1]),M9,j9,hYe.thru(S9(`boolean`))),ConstraintName:()=>V9.default.seq(iYe,N9).map(e=>e[1])}),RZe=H9.ColumnConstraint,zZe=H9.TableConstraint,BZe=H9.ConstraintCheck,VZe=H9.ConstraintName,HZe=H9.ConstExpr}));function UZe(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 WZe=o((()=>{U9()}));function GZe(e,t){let n=t?t.join(`,`):null;return{type:`type`,value:{type_name:n?`${lu(e)}(${n})`:lu(e),schemaName:e.length>1?e[0]:null,args:n}}}function KZe(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 qZe=o((()=>{Yu()})),W9,G9,JZe,YZe,XZe,ZZe=o((()=>{W9=u(t9()),y9(),F9(),T9(),B9(),U9(),fZe(),qZe(),G9=W9.default.createLanguage({ColumnsDefinition:e=>W9.default.alt(e.ComputedColumnDefinition.result(null),e.ColumnSetDefinition.result(null),e.ColumnDefinition),ColumnDefinition:e=>W9.default.seqMap(A9,e.DataType,W9.default.alt(e.ColumnSetting,e.IgnoredColumnSetting.result(null)).many().fallback(null),KZe).thru(b9()),ColumnSetDefinition:()=>W9.default.seq(N9,IYe),ComputedColumnDefinition:()=>W9.default.seq(N9,PYe,dZe,W9.default.seq(FYe,gYe.fallback(null)).fallback(null),RZe.fallback(null)),ColumnSetting:e=>W9.default.alt(e.NullOrNot,e.Identity,kZe,RZe),IgnoredColumnSetting:e=>W9.default.alt(e.ColumnSetting1Word,e.ColumnSettingWith,e.ColumnSettingGAAR,e.ColumnSettingCollate),DataType:e=>W9.default.seqMap(A9,x9(W9.default.alt(e.DataTypeXML,N9)).fallback(null),GZe),DataTypeXML:()=>W9.default.seq(W9.default.alt(mYe,pYe),N9).tieWith(` `),NullOrNot:()=>W9.default.alt(hYe.result(!1),gYe.result(!0)).thru(S9(`not_null`)),Identity:()=>qJe.result(!0).skip(qXe.fallback(null)).thru(S9(`increment`)),ColumnSetting1Word:()=>W9.default.alt(vYe,u9,xYe,bYe),ColumnSettingWith:()=>W9.default.seq(W9.default.alt(SYe,CYe),c9,zXe),ColumnSettingCollate:()=>W9.default.seq(yYe,N9),ColumnSettingGAAR:()=>W9.default.seq(TYe,W9.default.alt(EYe,DYe),OYe.fallback(null))}),G9.Identity,G9.DataType,XZe=G9.ColumnsDefinition})),K9,QZe,$Ze,eQe=o((()=>{K9=u(t9()),y9(),F9(),T9(),WZe(),CZe(),B9(),U9(),ZZe(),QZe=K9.default.createLanguage({AddAction:e=>K9.default.seq(GYe,e.AddOption.sepBy1(h9)).map(e=>e[1]),AddOption:e=>K9.default.alt(e.AddConstraint,XZe.result(null),e.IgnoredAddSystemTimeOption.result(null)),IgnoredAddSystemTimeOption:()=>K9.default.alt(N9,K9.default.regexp(/[(),]/)).many(),AddConstraint:e=>K9.default.seqMap(VZe.fallback(null),e.AddConstraintOption,IZe).thru(b9()),AddConstraintOption:e=>K9.default.alt(SZe,NZe,BZe,e.AddConstraintDefault,e.IgnoredAddConstraintOption.result(null)),IgnoredAddConstraintOption:e=>K9.default.alt(e.AddConstraintConnection),AddConstraintDefault:()=>K9.default.seqMap(_Ye,HZe,BYe,N9,VYe.fallback(null),UZe),AddConstraintConnection:()=>K9.default.seq(HYe,x9(K9.default.seq(N9,UYe,N9)))}),$Ze=QZe.AddAction})),q9,tQe,nQe,rQe=o((()=>{q9=u(t9()),y9(),F9(),oZe(),eQe(),tQe=q9.default.createLanguage({AlterTable:e=>q9.default.seqMap(e.AlterTableKeywords,A9,e.AlterTableActions,aZe),AlterTableActions:e=>q9.default.alt($Ze,e.IgnoredAlterTableActions),AlterTableKeywords:()=>q9.default.seq(WYe,d9),IgnoredAlterTableActions:e=>q9.default.seq(e.IgnoredAlterTableActionKeywords,D9).result(null),IgnoredAlterTableActionKeywords:()=>q9.default.alt(c9,$Ye,QYe,YYe,XYe,rYe,JYe,KYe,qYe)}),nQe=tQe.AlterTable}));function iQe(e,t,n,r,i,a,o,s){let c=C9(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 aQe=o((()=>{T9()})),J9,oQe,sQe,cQe=o((()=>{J9=u(t9()),y9(),F9(),T9(),aQe(),B9(),oQe=J9.default.createLanguage({CreateIndex:e=>J9.default.seqMap(f9,l9.fallback(null),P9.fallback(null),s9,N9,JJe,A9,k9,iQe).thru(b9()).skip(e.IgnoredCreateIndexOptions),IgnoredCreateIndexOptions:e=>J9.default.alt(AZe,e.IncludeIndexOption,e.WhereIndexOption).many(),IncludeIndexOption:()=>J9.default.seq(LYe,k9),WhereIndexOption:e=>J9.default.seq(zYe,e.FilterPredicate),FilterPredicate:e=>J9.default.seq(e.Conjunct,J9.default.seq(wXe,e.Conjunct).fallback(null)),Conjunct:e=>J9.default.alt(e.Disjunct,e.Comparsion),Disjunct:()=>J9.default.seq(N9,RYe,x9(j9)),Comparsion:()=>J9.default.seq(N9,VXe,j9)}),sQe=oQe.CreateIndex}));function lQe(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 uQe(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 dQe(e,t){t.indexes&&=(t.indexes.columns.push({value:t.name,type:`column`}),e.push(t.indexes),null)}function fQe(e,t){let n={fields:[],enums:[],refs:[],indexes:[]};return e.forEach(e=>{if(e&&n[e.type]){if(e.type===`fields`&&(uQe(n.enums,e.value,t),dQe(n.indexes,e.value),lQe(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 pQe(e,t,n,r){let i=C9(t),a=fQe(r,i);return{type:`tables`,value:{...i,...a.value}}}var mQe=o((()=>{T9()})),Y9,hQe,gQe,_Qe=o((()=>{Y9=u(t9()),y9(),F9(),T9(),U9(),B9(),ZZe(),mQe(),hQe=Y9.default.createLanguage({CreateTable:e=>Y9.default.seqMap(e.CreateTableKeywords,A9,e.AsFileTableKeywords.fallback(null),x9(e.Line),pQe).thru(b9()).skip(e.IgnoredTableOptions),CreateTableKeywords:()=>Y9.default.seq(f9,d9),AsFileTableKeywords:()=>Y9.default.seq(PYe,NYe),Line:e=>Y9.default.alt(e.SystemTimeTableOption,zZe,jZe,XZe),SystemTimeTableOption:()=>Y9.default.seq(MYe,x9(N9)).result(null),IgnoredTableOptions:e=>Y9.default.alt(AZe,e.TextImageTableOption).many(),TextImageTableOption:()=>Y9.default.seq(jYe,N9)}),gQe=hQe.CreateTable}));function vQe({note:e,level:t}){let n=`unsupported`,r=null,i=null,a=null;return SQe(t)?(r=t[0].name,i=t[1].name,n=`table`):CQe(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 yQe,bQe,xQe,SQe,CQe,wQe=o((()=>{yQe=e=>e.toLowerCase()===`schema`,bQe=e=>e.toLowerCase()===`table`,xQe=e=>e.toLowerCase()===`column`,SQe=e=>e.length===2&&yQe(e[0].type)&&bQe(e[1].type),CQe=e=>e.length===3&&yQe(e[0].type)&&bQe(e[1].type)&&xQe(e[2].type)})),X9,TQe,EQe,DQe=o((()=>{X9=u(t9()),y9(),wQe(),T9(),TQe=X9.default.createLanguage({StartComment:()=>X9.default.seq(uXe,SXe),EndComment:()=>X9.default.seq(v9.atMost(1),p9),StartString:()=>X9.default.alt(OXe,X9.default.string(`N'`)),ManyDoubleSingleQuote:()=>X9.default.string(`''`),NoSingleQuote:()=>X9.default.regex(/[^']/),StringType:e=>X9.default.alt(e.NoSingleQuote,e.ManyDoubleSingleQuote).atLeast(1).map(e=>e.join(``)),NVarchar:e=>e.StartString.then(e.StringType).skip(OXe),NameOption:e=>jXe.skip(_9).then(e.NVarchar),ValueOption:e=>MXe.skip(_9).then(e.NVarchar),Level0Type:e=>NXe.skip(_9).then(e.NVarchar),Level0Name:e=>PXe.skip(_9).then(e.NVarchar),Level1Type:e=>FXe.skip(_9).then(e.NVarchar),Level1Name:e=>IXe.skip(_9).then(e.NVarchar),Level2Type:e=>LXe.skip(_9).then(e.NVarchar),Level2Name:e=>RXe.skip(_9).then(e.NVarchar),Level0Stmt:e=>X9.default.seqObj([`type`,e.Level0Type],h9,[`name`,e.Level0Name]),Level1Stmt:e=>X9.default.seqObj([`type`,e.Level1Type],h9,[`name`,e.Level1Name]),Level2Stmt:e=>X9.default.seqObj([`type`,e.Level2Type],h9,[`name`,e.Level2Name]),Level0Wrapper:e=>X9.default.alt(X9.default.seq(e.Level0Stmt.skip(h9),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=>X9.default.alt(X9.default.seq(e.Level1Stmt.skip(h9),e.Level2Stmt),e.Level1Stmt).map(e=>Array.isArray(e)?e:[e]),CommentSyntax:e=>X9.default.seqObj(e.StartComment,[`name`,e.NameOption],h9,[`note`,e.ValueOption],h9,[`level`,e.Level0Wrapper],e.EndComment).map(vQe).thru(b9())}),EQe=TQe.CommentSyntax})),OQe=o((()=>{rQe(),cQe(),_Qe(),DQe()}));function Z9(e,t,n){let r=n||`public`;return e.tables.find(e=>(e.schemaName||`public`)===r&&e.name===t)}function kQe(e,t){return e.fields.find(e=>e.name===t)}function AQe(e,t){Z9(t,e.tableName,e.schemaName).indexes.push(e),e.tableName=null}function jQe(e,t){e.forEach(e=>{t.push(e)})}function MQe(e,t){jQe(e.enums,t.enums),jQe(e.refs,t.refs),e.enums.forEach(e=>{e.fieldName=null}),e.enums=null,e.refs=null}function NQe(e,t){let n=kQe(Z9(t,e.tableName,e.schemaName),e.fieldName);e.fieldName=null,e.tableName=null,n.dbdefault=e}function PQe(e,t){let n=kQe(Z9(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 FQe(e,t){let{schemaName:n}=e;n===`dbo`&&(n=null);let r=Z9(t,e.tableName,n);r&&(r.note=e.note?{value:e.note}:null)}function IQe(e,t){let{schemaName:n}=e;n===`dbo`&&(n=null);let r=Z9(t,e.tableName,n);if(r){let t=kQe(r,e.columnName);t&&(t.note=e.note?{value:e.note}:null)}}function LQe(e,t){e.type===`table`?FQe(e,t):e.type===`column`&&IQe(e,t)}function RQe(e){let t={tables:[],refs:[],indexes:[],enums:[]};return ao(e).forEach(e=>{if(e){switch(e.type){case`tables`:MQe(e.value,t);break;case`indexes`:AQe(e.value,t);break;case`dbdefault`:NQe(e.value,t);break;case`enums`:PQe(e.value,t);break;case`comment`:LQe(e.value,t);break;default:break}e.type&&t[e.type]&&t[e.type].push(e.value)}}),t.indexes=null,t}var zQe=o((()=>{Yu()})),Q9,BQe,$9,VQe=o((()=>{Q9=u(t9()),y9(),OQe(),i9(),zQe(),F9(),BQe=Q9.default.createLanguage({Statements:e=>r9.then(e.Seperator).then(Q9.default.sepBy(e.StatementTypes,e.Seperator)).skip(e.Seperator).map(RQe),StatementTypes:e=>Q9.default.alt(sQe,gQe,nQe,EQe,e.IgnoredStatementTypes),IgnoredStatementTypes:e=>Q9.default.seq(e.IgnoredStatementSyntax,D9),IgnoredStatementSyntax:e=>Q9.default.alt(e.IgnoredDDLSyntax,e.IgnoredDMLSyntax,e.IgnoredBackupAndRestoreSyntax,e.IgnoredServiceBrokerSyntax,e.IgnoredPermissionSyntax,GYe,sXe,KYe,xXe),IgnoredDDLSyntax:e=>Q9.default.alt(e.KeywordCreateWithoutTable,e.KeywordAlterWithoutTable,yYe,QYe,yXe,YYe,XYe),IgnoredDMLSyntax:()=>Q9.default.alt(eXe,tXe,nXe,rXe,iXe,bXe),IgnoredServiceBrokerSyntax:()=>Q9.default.alt(mXe,DYe,gXe,_Xe,vXe),IgnoredPermissionSyntax:()=>Q9.default.alt(cXe,lXe,dXe,fXe,pXe),IgnoredBackupAndRestoreSyntax:()=>Q9.default.alt(aXe,oXe),KeywordCreateWithoutTable:()=>f9.notFollowedBy(d9),KeywordAlterWithoutTable:()=>WYe.notFollowedBy(d9),Seperator:()=>Q9.default.alt(v9,p9,Q9.default.seq(v9,p9)).many()}),$9=BQe.Statements})),HQe=c({default:()=>UQe},1),UQe,WQe=o((()=>{VQe(),$9.parseWithPegError=function(e){try{return $9.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}},UQe=$9})),GQe=s(((e,t)=>{t.exports=(WQe(),d(HQe))})),KQe=u(zJe()),qQe=u(BJe()),JQe=u(VJe()),YQe=u(HJe()),XQe=u(GQe()),ZQe=class e{constructor(e){this.DBMLCompiler=e||new E_}static parseJSONToDatabase(e){return new Hme(e)}static parseMySQLToJSONv2(e){return Q7(e,`mysql`)}static parseMySQLToJSON(e){return KQe.default.parse(e)}static parsePostgresToJSONv2(e){return Q7(e,`postgres`)}static parsePostgresToJSON(e){return qQe.default.parse(e)}static parseDBMLToJSONv2(e,t){let n=t||new E_;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 K7.create(r);return n.parse.rawDb()}static parseDBMLToJSON(e){return JQe.default.parse(e)}static parseSchemaRbToJSON(e){return YQe.default.parse(e)}static parseMSSQLToJSON(e){return XQe.default.parseWithPegError(e)}static parseMSSQLToJSONv2(e){return Q7(e,`mssql`)}static parseSnowflakeToJSON(e){return Q7(e,`snowflake`)}static parseOracleToJSON(e){return Q7(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 K7.create(e)}}},QQe=ZQe,$Qe=e=>new Hme(e),e$e=e=>e.map(e=>{let{name:t,endpoints:n,onDelete:r,onUpdate:i}=e;return new oE({name:t,endpoints:n.map(e=>new aE(e)),onDelete:r,onUpdate:i}).toJSON()}),t$e=e=>e.map(e=>{let{name:t,schemaName:n,values:r}=e;return new sE({name:t,schemaName:n,values:r})}),n$e=(e,t)=>e.map(e=>{let n=t[e.name]||{};return new rE({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})}),r$e=e=>e.map(e=>{let{name:t,unique:n,pk:r,type:i,columns:a}=e;return new nE({name:t,unique:n,pk:r,type:i,columns:a})}),i$e=(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 iE({name:a,schemaName:o,fields:n$e(t[c],l),indexes:r$e(n[c]||[]),note:s,checks:r[c]})}),a$e=e=>{let{tables:t,fields:n,indexes:r,refs:i,enums:a,tableConstraints:o,checks:s}=e;try{let e=i$e(t,n,r,s,o),c=t$e(a);return $Qe({schemas:[],tables:e,refs:e$e(i),enums:c,tableGroups:[],aliases:[],project:{}})}catch(e){throw Error(e)}};function o$e(e,t){let n=new QQe().parse(e,t);return F_.export(n.normalize(),`dbml`)}function s$e(e){let t=a$e(e);return F_.export(t.normalize(),`dbml`)}var c$e={import:o$e,generateDbml:s$e};function l$e(e,t){let n=new QQe().parse(e,`dbmlv2`);return F_.export(n.normalize(),t)}var u$e={export:l$e};function d$e(e,t,n){let r=new E_;return r.setSource(n),r.renameTable(e,t)}const f$e=`6.3.0-alpha.6`,p$e=`6.3.0-alpha.6`;exports.CompilerError=K7,exports.ModelExporter=F_,exports.Parser=QQe,exports.VERSION=`6.3.0-alpha.6`,exports.addDoubleQuoteIfNeeded=u_,exports.exporter=u$e,exports.formatRecordValue=zfe,exports.importer=c$e,exports.isBinaryType=oh,exports.isBooleanType=ih,exports.isDateTimeType=sh,exports.isFloatType=nh,exports.isIntegerType=th,exports.isNumericType=rh,exports.isSerialType=ch,exports.isStringType=ah,exports.renameTable=d$e,exports.tryExtractBoolean=Xg,exports.tryExtractDateTime=Qg,exports.tryExtractEnum=cfe,exports.tryExtractInteger=afe,exports.tryExtractNumeric=Yg,exports.tryExtractString=Zg;
|
package/lib/index.mjs
CHANGED
|
@@ -11794,7 +11794,7 @@ var POSTGRES_BUILTIN_TYPES = /* @__PURE__ */ "SMALLINT.INTEGER.INT.BIGINT.DECIMA
|
|
|
11794
11794
|
}
|
|
11795
11795
|
static buildForeignKeyManyToMany(_, HY, P, UY, WY, GY, KY) {
|
|
11796
11796
|
let qY = [..._.keys()].join("\", \"");
|
|
11797
|
-
return `ALTER TABLE ${shouldPrintSchema$1(WY, KY) ? `"${WY.name}".` : ""}"${P}" ADD FOREIGN KEY ("${qY}") REFERENCES ${shouldPrintSchema$1(GY, KY) ? `"${GY.name}".` : ""}"${UY}" ${HY};\n\n`;
|
|
11797
|
+
return `ALTER TABLE ${shouldPrintSchema$1(WY, KY) ? `"${WY.name}".` : ""}"${P}" ADD FOREIGN KEY ("${qY}") REFERENCES ${shouldPrintSchema$1(GY, KY) ? `"${GY.name}".` : ""}"${UY}" ${HY} DEFERRABLE INITIALLY IMMEDIATE;\n\n`;
|
|
11798
11798
|
}
|
|
11799
11799
|
static exportRefs(_, HY, P) {
|
|
11800
11800
|
return _.map((_) => {
|
|
@@ -11802,7 +11802,7 @@ var POSTGRES_BUILTIN_TYPES = /* @__PURE__ */ "SMALLINT.INTEGER.INT.BIGINT.DECIMA
|
|
|
11802
11802
|
if (GY === -1) {
|
|
11803
11803
|
let _ = buildJunctionFields1(XY.fieldIds, HY), WY = buildJunctionFields2(YY.fieldIds, HY, _), GY = buildNewTableName(QY.name, nX.name, P);
|
|
11804
11804
|
UY += this.buildTableManyToMany(_, WY, GY, $Y, HY), UY += this.buildForeignKeyManyToMany(_, eX, GY, QY.name, $Y, $Y, HY), UY += this.buildForeignKeyManyToMany(WY, iX, GY, nX.name, $Y, rX, HY);
|
|
11805
|
-
} else UY = `ALTER TABLE ${shouldPrintSchema$1(rX, HY) ? `"${rX.name}".` : ""}"${nX.name}" ADD `, WY.name && (UY += `CONSTRAINT "${WY.name}" `), UY += `FOREIGN KEY ${iX} REFERENCES ${shouldPrintSchema$1($Y, HY) ? `"${$Y.name}".` : ""}"${QY.name}" ${eX}`, WY.onDelete && (UY += ` ON DELETE ${WY.onDelete.toUpperCase()}`), WY.onUpdate && (UY += ` ON UPDATE ${WY.onUpdate.toUpperCase()}`), UY += ";\n";
|
|
11805
|
+
} else UY = `ALTER TABLE ${shouldPrintSchema$1(rX, HY) ? `"${rX.name}".` : ""}"${nX.name}" ADD `, WY.name && (UY += `CONSTRAINT "${WY.name}" `), UY += `FOREIGN KEY ${iX} REFERENCES ${shouldPrintSchema$1($Y, HY) ? `"${$Y.name}".` : ""}"${QY.name}" ${eX}`, WY.onDelete && (UY += ` ON DELETE ${WY.onDelete.toUpperCase()}`), WY.onUpdate && (UY += ` ON UPDATE ${WY.onUpdate.toUpperCase()}`), UY += " DEFERRABLE INITIALLY IMMEDIATE;\n";
|
|
11806
11806
|
return UY;
|
|
11807
11807
|
});
|
|
11808
11808
|
}
|
|
@@ -11868,13 +11868,12 @@ var POSTGRES_BUILTIN_TYPES = /* @__PURE__ */ "SMALLINT.INTEGER.INT.BIGINT.DECIMA
|
|
|
11868
11868
|
}));
|
|
11869
11869
|
return isEmpty_default(YY) || P.comments.push(..._.exportComments(YY, HY)), isEmpty_default(qY) || P.refs.push(..._.exportRefs(qY, HY, UY)), P;
|
|
11870
11870
|
}, GY), qY = _.exportRecords(HY), JY = isEmpty_default(qY) ? [] : [
|
|
11871
|
-
"--
|
|
11871
|
+
"-- Defer constraint checking for INSERT",
|
|
11872
11872
|
"BEGIN;",
|
|
11873
|
-
"SET
|
|
11873
|
+
"SET CONSTRAINTS ALL DEFERRED;",
|
|
11874
11874
|
"",
|
|
11875
11875
|
...qY,
|
|
11876
11876
|
"",
|
|
11877
|
-
"SET session_replication_role = DEFAULT;",
|
|
11878
11877
|
"COMMIT;"
|
|
11879
11878
|
];
|
|
11880
11879
|
return concat_default(KY.schemas, KY.enums, KY.tables, KY.indexes, KY.comments, KY.refs, JY).join("\n");
|
|
@@ -12027,17 +12026,18 @@ var SqlServerExporter_default = class _ {
|
|
|
12027
12026
|
indexes: [],
|
|
12028
12027
|
comments: [],
|
|
12029
12028
|
refs: []
|
|
12030
|
-
}), GY = _.exportRecords(HY), KY = isEmpty_default(GY) ? [] :
|
|
12031
|
-
|
|
12032
|
-
|
|
12033
|
-
|
|
12034
|
-
|
|
12035
|
-
|
|
12036
|
-
|
|
12037
|
-
|
|
12038
|
-
|
|
12039
|
-
|
|
12040
|
-
|
|
12029
|
+
}), GY = _.exportRecords(HY), KY = isEmpty_default(GY) ? [] : (() => {
|
|
12030
|
+
let _ = [...new Set(Object.values(HY.records || {}).map((_) => _.schemaName ? `[${_.schemaName}].[${_.tableName}]` : `[${_.tableName}]`))];
|
|
12031
|
+
return [
|
|
12032
|
+
"-- Disable constraint checks for tables with data",
|
|
12033
|
+
..._.map((_) => `ALTER TABLE ${_} NOCHECK CONSTRAINT ALL;\nGO`),
|
|
12034
|
+
"",
|
|
12035
|
+
...GY,
|
|
12036
|
+
"",
|
|
12037
|
+
"-- Re-enable constraint checks",
|
|
12038
|
+
..._.map((_) => `ALTER TABLE ${_} WITH CHECK CHECK CONSTRAINT ALL;\nGO`)
|
|
12039
|
+
];
|
|
12040
|
+
})();
|
|
12041
12041
|
return concat_default(WY.schemas, WY.enums, WY.tables, WY.indexes, WY.comments, WY.refs, KY).join("\n");
|
|
12042
12042
|
}
|
|
12043
12043
|
};
|
|
@@ -1817577,5 +1817577,5 @@ function renameTable(_, HY, P) {
|
|
|
1817577
1817577
|
let UY = new Compiler();
|
|
1817578
1817578
|
return UY.setSource(P), UY.renameTable(_, HY);
|
|
1817579
1817579
|
}
|
|
1817580
|
-
const VERSION = "6.3.0-alpha.
|
|
1817580
|
+
const VERSION = "6.3.0-alpha.6";
|
|
1817581
1817581
|
export { CompilerError, ModelExporter_default as ModelExporter, Parser_default as Parser, VERSION, addDoubleQuoteIfNeeded, export_default as exporter, formatRecordValue, import_default as importer, isBinaryType, isBooleanType, isDateTimeType, isFloatType, isIntegerType, isNumericType, isSerialType, isStringType, renameTable, 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": "6.3.0-alpha.
|
|
4
|
+
"version": "6.3.0-alpha.6",
|
|
5
5
|
"description": "> TODO: description",
|
|
6
6
|
"author": "Holistics <dev@holistics.io>",
|
|
7
7
|
"license": "Apache-2.0",
|
|
@@ -56,7 +56,7 @@
|
|
|
56
56
|
"devDependencies": {
|
|
57
57
|
"bluebird": "^3.5.5"
|
|
58
58
|
},
|
|
59
|
-
"gitHead": "
|
|
59
|
+
"gitHead": "aab1a85e6ffee9185e0ee160536723938e2f1fc7",
|
|
60
60
|
"engines": {
|
|
61
61
|
"node": ">=16"
|
|
62
62
|
}
|