@dbml/core 6.3.0-alpha.5 → 6.3.0-alpha.7

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
@@ -39,7 +39,7 @@ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e=Object.
39
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)?[]:[`-- 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(`
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;`,`SET CONSTRAINTS ALL IMMEDIATE;`];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 INSERT`,`EXEC sp_MSforeachtable "ALTER TABLE ? NOCHECK CONSTRAINT all";`,`GO`,``,...a,``,`-- Re-enable constraint checks`,`EXEC sp_MSforeachtable "ALTER TABLE ? WITH CHECK CHECK CONSTRAINT all";`,`GO`];return ac(i.schemas,i.enums,i.tables,i.indexes,i.comments,i.refs,o).join(`
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
@@ -62,7 +62,7 @@ QUOTA UNLIMITED ON system;
62
62
  `}static getFieldLines(e,t){return t.tables[e].fieldIds.map(e=>{let n=t.fields[e],r=N_(n.name,`oracle`),i=r;if(n.enumId){let e=t.enums[n.enumId].valueIds.map(e=>`'${t.enumValues[e].name}'`).join(`, `);i+=` nvarchar2(255) NOT NULL CHECK (${r} IN (${e}))`}else i+=` ${n.type.type_name}`;let a={...n};if(a.increment&&(i+=` GENERATED AS IDENTITY`,a.dbdefault=null,a.not_null=!1),a.dbdefault&&(a.dbdefault.type===`string`?i+=` DEFAULT '${a.dbdefault.value}'`:i+=` DEFAULT ${a.dbdefault.value}`),a.unique&&(i+=` UNIQUE`),a.pk&&(i+=` PRIMARY KEY`),a.not_null&&(i+=` NOT NULL`),a.checkIds&&a.checkIds.length>0)if(a.checkIds.length===1){let e=t.checks[a.checkIds[0]];e.name&&(i+=` CONSTRAINT "${e.name}"`),i+=` CHECK (${e.expression})`}else{let e=a.checkIds.map(e=>`(${t.checks[e].expression})`);i+=` CHECK (${e.join(` AND `)})`}return 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 getTableContents(e,t){return e.map(e=>({tableId:e,fieldContents:this.getFieldLines(e,t),checkContents:this.getCheckLines(e,t),compositePKs:this.getCompositePKs(e,t)}))}static exportTables(e,t){return this.getTableContents(e,t).map(e=>{let n=[...e.fieldContents,...e.checkContents,...e.compositePKs],r=t.tables[e.tableId],i=t.schemas[r.schemaId];return`CREATE TABLE ${this.buildTableNameWithSchema(t,i,r)} (\n${n.map(e=>` ${e}`).join(`,
63
63
  `)}\n);\n`})}static buildReferenceFieldNamesString(e,t){return`(${e.map(e=>`"${t.fields[e].name}"`).join(`, `)})`}static buildTableManyToMany(e,t,n){let r=`CREATE TABLE ${n} (\n`;e.forEach((e,t)=>{r+=` "${t}" ${e},\n`}),t.forEach((e,t)=>{r+=` "${t}" ${e},\n`});let i=[...e.keys()].join("`, `"),a=[...t.keys()].join("`, `");return r+=` PRIMARY KEY ("${i}", "${a}")\n);\n`,r}static buildForeignKeyManyToMany(e,t,n,r){return`ALTER TABLE ${e} ADD FOREIGN KEY ("${[...t.keys()].join("`, `")}") REFERENCES ${n} ${r} DEFERRABLE INITIALLY IMMEDIATE;\n`}static exportReferencesAndNewTablesIfExists(e,t,n){let r={refs:[],tables:[]};return e.forEach(e=>{let 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=t.endpoints[s],l=t.fields[c.fieldIds[0]],u=t.tables[l.tableId],d=t.schemas[u.schemaId],f=this.buildReferenceFieldNamesString(c.fieldIds,t),p=i.endpointIds[o],m=t.endpoints[p],h=t.fields[m.fieldIds[0]],g=t.tables[h.tableId],_=t.schemas[g.schemaId],ee=this.buildReferenceFieldNamesString(m.fieldIds,t);if(a!==-1){let e=`ALTER TABLE ${this.buildTableNameWithSchema(t,d,u)} ADD`;i.name&&(e+=` CONSTRAINT ${N_(i.name,`oracle`)}`);let n=this.buildTableNameWithSchema(t,_,g);e+=` FOREIGN KEY ${f} REFERENCES ${n} ${ee}`,i.onDelete&&(e+=` ON DELETE ${i.onDelete.toUpperCase()}`),e+=` DEFERRABLE INITIALLY IMMEDIATE;
64
64
  `,r.refs.push(e);return}let v=A_(m.fieldIds,t),te=j_(c.fieldIds,t,v),y=Ype(_,g.name,u.name,n),ne=n.get(_);ne?ne.add(y):n.set(_,new Set([y]));let re=`${k_(_,t)?`"${_.name}".`:``}"${y}"`;r.tables.push(this.buildTableManyToMany(v,te,re));let ie=this.buildTableNameWithSchema(t,_,g);r.refs.push(this.buildForeignKeyManyToMany(re,v,ie,ee));let ae=this.buildTableNameWithSchema(t,d,u);r.refs.push(this.buildForeignKeyManyToMany(re,te,ae,f))}),r}static exportReferenceGrants(e,t){if(Object.keys(e.schemas).length<=1)return[];let n=[];return t.forEach(t=>{let r=e.refs[t],i=r.endpointIds.findIndex(t=>e.endpoints[t].relation===`1`),a=i===-1?0:i,o=r.endpointIds[a],s=e.endpoints[o],c=e.fields[s.fieldIds[0]],l=e.tables[c.tableId],u=e.schemas[l.schemaId],d=r.endpointIds[1-a],f=e.endpoints[d],p=e.fields[f.fieldIds[0]],m=e.tables[p.tableId],h=e.schemas[m.schemaId];if(u.name===h.name){n.push(``);return}let g=this.buildTableNameWithSchema(e,u,l);if(n.push(g),i!==-1)return;let _=this.buildTableNameWithSchema(e,h,m);n.push(_)}),n.filter((e,t)=>e&&n.indexOf(e)===t).map(e=>`GRANT REFERENCES ON ${e} TO PUBLIC;\n`)}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`),a+=` INDEX`,n.name&&(a+=` ${N_(n.name,`oracle`)}`);let o=this.buildTableNameWithSchema(t,i,r);a+=` ON ${o}`;let s=[];n.columnIds.forEach(e=>{let n=t.indexColumns[e],r=``;r=n.type===`expression`?`${n.value}`:`"${n.value}"`,s.push(r)});let c=s.join(`, `);return a+=` (${c});\n`,a})}static exportComments(e,t){return e.map(e=>{let n=`COMMENT ON`,r=t.tables[e.tableId],i=t.schemas[r.schemaId],a=this.buildTableNameWithSchema(t,i,r);switch(e.type){case`table`:n+=` TABLE ${a} IS '${r.note.replace(/'/g,`''`)}'`;break;case`column`:{let r=t.fields[e.fieldId];n+=` COLUMN ${a}.${N_(r.name,`oracle`)} IS '${r.note.replace(/'/g,`''`)}'`;break}default:break}return n+=`;
65
- `,n})}static export(e){let t=e.database[1],n=this.buildSchemaToTableNameSetMap(e),r=t.schemaIds.reduce((t,r)=>{let i=e.schemas[r],{tableIds:a,refIds:o}=i;k_(i,e)&&t.schemas.push(this.exportSchema(i.name)),Fu(a)||t.tables.push(...this.exportTables(a,e));let s=ao(a.map(t=>e.tables[t].indexIds));Fu(s)||t.indexes.push(...this.exportIndexes(s,e));let c=ao(a.map(t=>{let{fieldIds:n,note:r}=e.tables[t],i=n.filter(t=>e.fields[t].note).map(e=>({type:`column`,fieldId:e,tableId:t}));return r?[{type:`table`,tableId:t}].concat(i):i}));if(Fu(c)||t.comments.push(...this.exportComments(c,e)),!Fu(o)){let{refs:r,tables:i}=this.exportReferencesAndNewTablesIfExists(o,e,n);t.tables.push(...i),t.refs.push(...r),t.referenceGrants.push(...this.exportReferenceGrants(e,o))}return t},{schemas:[],tables:[],indexes:[],comments:[],referenceGrants:[],refs:[]}),i=this.exportRecords(e),a=Fu(i)?[]:[`-- Disable constraint checking for INSERT`,`SET CONSTRAINTS ALL DEFERRED;`,``,...i,``,`COMMIT;`];return ac(r.schemas,r.tables,r.indexes,r.comments,r.referenceGrants,r.refs,a).join(`
65
+ `,n})}static export(e){let t=e.database[1],n=this.buildSchemaToTableNameSetMap(e),r=t.schemaIds.reduce((t,r)=>{let i=e.schemas[r],{tableIds:a,refIds:o}=i;k_(i,e)&&t.schemas.push(this.exportSchema(i.name)),Fu(a)||t.tables.push(...this.exportTables(a,e));let s=ao(a.map(t=>e.tables[t].indexIds));Fu(s)||t.indexes.push(...this.exportIndexes(s,e));let c=ao(a.map(t=>{let{fieldIds:n,note:r}=e.tables[t],i=n.filter(t=>e.fields[t].note).map(e=>({type:`column`,fieldId:e,tableId:t}));return r?[{type:`table`,tableId:t}].concat(i):i}));if(Fu(c)||t.comments.push(...this.exportComments(c,e)),!Fu(o)){let{refs:r,tables:i}=this.exportReferencesAndNewTablesIfExists(o,e,n);t.tables.push(...i),t.refs.push(...r),t.referenceGrants.push(...this.exportReferenceGrants(e,o))}return t},{schemas:[],tables:[],indexes:[],comments:[],referenceGrants:[],refs:[]}),i=this.exportRecords(e),a=Fu(i)?[]:[`-- Disable constraint checking for INSERT`,`SET CONSTRAINTS ALL DEFERRED;`,``,...i,``,`COMMIT;`,`SET CONSTRAINTS ALL IMMEDIATE;`];return ac(r.schemas,r.tables,r.indexes,r.comments,r.referenceGrants,r.refs,a).join(`
66
66
  `)}},ume=lme,dme=class{static export(e={},t=``,n=!0){let r=``,i=n?e:e.normalize();switch(t){case`dbml`:r=Zpe.export(i);break;case`mysql`:r=$pe.export(i);break;case`postgres`:r=ime.export(i);break;case`json`:r=ome.export(e,n);break;case`mssql`:r=cme.export(i);break;case`oracle`:r=ume.export(i);break;default:break}return r}},F_=dme,fme=class extends Error{constructor(e,t={start:{line:1,column:1}}){super(e),this.location=t,this.error=`error`}},pme=class{constructor(e){this.token=e}bind(e){this.selection=e}error(e){throw new fme(e,this.token)}},I_=pme,mme=class extends I_{constructor({token:e,name:t,expression:n,table:r,column:i=null,injectedPartial:a=null}={}){super(e),this.name=t,this.expression=n,this.table=r,this.column=i,this.injectedPartial=a,this.dbState=this.table.dbState,this.generateId()}generateId(){this.id=this.dbState.generateId(`checkId`)}export(){return{...this.shallowExport()}}exportParentIds(){return{tableId:this.table.id,columnId:this.column?.id,injectedPartialId:this.injectedPartial?.id}}shallowExport(){return{name:this.name,expression:this.expression}}normalize(e){e.checks[this.id]={id:this.id,...this.shallowExport(),...this.exportParentIds()}}},L_=mme;Yu();var hme=class extends I_{constructor({name:e,type:t,unique:n,pk:r,token:i,not_null:a,note:o,dbdefault:s,increment:c,checks:l=[],table:u={},noteToken:d=null,injectedPartial:f=null,injectedToken:p=null}={}){super(i),e||this.error(`Field must have a name`),t||this.error(`Field must have a type`),this.name=e,this.type=t,this.unique=n,this.pk=r,this.not_null=a,this.note=o?E(o,`value`,o):null,this.noteToken=o?E(o,`token`,d):null,this.dbdefault=s,this.increment=c,this.checks=[],this.endpoints=[],this.table=u,this.injectedPartial=f,this.injectedToken=p,this.dbState=this.table.dbState,this.generateId(),this.bindType(),this.processChecks(l)}generateId(){this.id=this.dbState.generateId(`fieldId`)}bindType(){let e=this.type.type_name,t=this.type.schemaName||`public`;if(this.type.schemaName){let n=this.table.schema.database.findEnum(t,e);if(!n){this.type.type_name=`${t}.${e}`,this.type.originalTypeName=e;return}this._enum=n,n.pushField(this)}else{let n=this.table.schema.database.findEnum(t,e);if(!n)return;this._enum=n,n.pushField(this)}}pushEndpoint(e){this.endpoints.push(e)}export(){return{...this.shallowExport()}}exportParentIds(){return{tableId:this.table.id,enumId:this._enum?this._enum.id:null}}exportChildIds(){return{endpointIds:this.endpoints.map(e=>e.id)}}shallowExport(){return{name:this.name,type:this.type,unique:this.unique,pk:this.pk,not_null:this.not_null,note:this.note,dbdefault:this.dbdefault,increment:this.increment,injectedPartialId:this.injectedPartial?.id??null,checkIds:this.checks.map(e=>e.id)}}normalize(e){e.fields[this.id]={id:this.id,...this.shallowExport(),...this.exportChildIds(),...this.exportParentIds()},this.checks.forEach(t=>t.normalize(e))}processChecks(e){e.forEach(e=>{this.checks.push(new L_({...e,table:this.table,column:this}))})}},gme=hme,_me=class extends I_{constructor({type:e,value:t,index:n,token:r}){super(),this.type=e,this.value=t,this.index=n,this.token=r,this.dbState=this.index.dbState,this.generateId()}generateId(){this.id=this.dbState.generateId(`indexColumnId`)}export(){return{...this.shallowExport()}}exportParentIds(){return{indexId:this.index.id}}shallowExport(){return{type:this.type,value:this.value}}normalize(e){e.indexColumns[this.id]={id:this.id,...this.shallowExport(),...this.exportParentIds()}}},vme=_me,yme=class extends I_{constructor({columns:e,type:t,unique:n,pk:r,token:i,name:a,note:o,table:s={},injectedPartial:c=null}={}){super(i),this.name=a,this.type=t,this.unique=n,this.note=o?o.value:null,this.noteToken=o?o.token:null,this.pk=r,this.columns=[],this.table=s,this.injectedPartial=c,this.dbState=this.table.dbState,this.generateId(),this.processIndexColumns(e)}generateId(){this.id=this.dbState.generateId(`indexId`)}processIndexColumns(e){e.forEach(e=>{this.pushIndexColumn(new vme({...e,index:this}))})}pushIndexColumn(e){this.checkIndexColumn(e),this.columns.push(e)}checkIndexColumn(e){this.columns.some(t=>t.type===e.type&&t.value===e.value)&&e.error(`Index column ${e.value} existed`)}export(){return{...this.shallowExport(),...this.exportChild()}}exportChild(){return{columns:this.columns.map(e=>e.export())}}exportChildIds(){return{columnIds:this.columns.map(e=>e.id)}}exportParentIds(){return{tableId:this.table.id}}shallowExport(){return{name:this.name,type:this.type,unique:this.unique,pk:this.pk,note:this.note,injectedPartialId:this.injectedPartial?.id}}normalize(e){e.indexes[this.id]={id:this.id,...this.shallowExport(),...this.exportChildIds(),...this.exportParentIds()},this.columns.forEach(t=>t.normalize(e))}},bme=yme;Yu();var xme=class extends I_{constructor({name:e,alias:t,note:n,fields:r=[],indexes:i=[],checks:a=[],schema:o={},token:s,headerColor:c,noteToken:l=null,partials:u=[]}={}){super(s),this.name=e,this.alias=t,this.note=n?E(n,`value`,n):null,this.noteToken=n?E(n,`token`,l):null,this.headerColor=c,this.fields=[],this.indexes=[],this.checks=[],this.schema=o,this.partials=u,this.dbState=this.schema.dbState,this.generateId(),this.processFields(r),this.processPartials(),this.checkFieldCount(),this.processIndexes(i),this.processChecks(a)}generateId(){this.id=this.dbState.generateId(`tableId`)}checkFieldCount(){this.fields.length===0&&this.error(`Table must have at least one field`)}processFields(e){e.forEach(e=>{this.pushField(new gme({...e,table:this}))})}pushField(e){this.checkField(e),this.fields.push(e)}checkField(e){this.fields.some(t=>t.name===e.name)&&e.error(`Field "${e.name}" existed in table ${P_(this.schema)?`"${this.schema.name}".`:``}"${this.name}"`)}processIndexes(e){e.forEach(e=>{this.pushIndex(new bme({...e,table:this}))})}pushIndex(e){this.checkIndex(e),this.indexes.push(e)}checkIndex(e){e.columns.forEach(t=>{t.type===`column`&&!this.findField(t.value)&&e.error(`Column "${t.value}" do not exist in table ${P_(this.schema)?`"${this.schema.name}".`:``}"${this.name}"`)})}processChecks(e){e.forEach(e=>{this.pushCheck(new L_({...e,table:this}))})}pushCheck(e){this.checks.push(e)}findField(e){return this.fields.find(t=>t.name===e)}checkSameId(e){return this.schema.checkSameId(e.schemaName||`public`)&&(this.name===e.name||this.alias===e.name||this.name===e.alias||this.alias&&this.alias===e.alias)}processPartials(){if(!this.partials?.length)return;let e=new Set(this.fields.map(e=>e.name)),t=new Set;Ru(this.note)||t.add(`note`),Ru(this.headerColor)||t.add(`headerColor`);let n=this.partials.sort((e,t)=>t.order-e.order);n.toReversed().forEach(e=>{this.fields.splice(e.order,0,`dummy`)}),n.forEach(n=>{let r=this.schema.database.findTablePartial(n.name);if(r||this.error(`Table partial ${n.name} not found`,n.token),n.id=r.id,r.fields){let t=r.fields.filter(t=>!e.has(t.name)).map(t=>(e.add(t.name),t.inline_refs&&t.inline_refs.forEach(e=>{let n={token:t.token,endpoints:[{tableName:this.name,schemaName:this.schema?.name,fieldNames:[t.name],relation:[`-`,`<`].includes(e.relation)?`1`:`*`,token:t.token},{tableName:e.tableName,schemaName:e.schemaName,fieldNames:e.fieldNames,relation:[`-`,`>`].includes(e.relation)?`1`:`*`,token:e.token}],injectedPartial:r};this.schema.database.injectedRawRefs.push(n)}),new gme({...t,noteToken:null,table:this,injectedPartial:r,injectedToken:n.token})));this.fields.splice(n.order,1,...t)}else this.fields.splice(n.order,1);!t.has(`note`)&&!Ru(r.note)&&(this.noteToken=null,this.note=r.note,t.add(`note`)),!t.has(`headerColor`)&&!Ru(r.headerColor)&&(this.headerColor=r.headerColor,t.add(`headerColor`)),r.indexes.forEach(e=>{this.indexes.push(new bme({...e,table:this,injectedPartial:r}))}),r.checks.forEach(e=>{this.checks.push(new L_({...e,name:e.name&&`${this.name}.${e.name}`,table:this,injectedPartial:r}))})})}export(){return{...this.shallowExport(),...this.exportChild()}}exportChild(){return{fields:this.fields.map(e=>e.export()),indexes:this.indexes.map(e=>e.export())}}exportChildIds(){return{fieldIds:this.fields.map(e=>e.id),indexIds:this.indexes.map(e=>e.id),checkIds:this.checks.map(e=>e.id)}}exportParentIds(){return{schemaId:this.schema.id,groupId:this.group?this.group.id:null}}shallowExport(){return{name:this.name,alias:this.alias,note:this.note,headerColor:this.headerColor,partials:this.partials}}normalize(e){e.tables[this.id]={id:this.id,...this.shallowExport(),...this.exportChildIds(),...this.exportParentIds()},this.fields.forEach(t=>t.normalize(e)),this.indexes.forEach(t=>t.normalize(e)),this.checks.forEach(t=>t.normalize(e))}},Sme=xme;Yu();var Cme=class extends I_{constructor({name:e,token:t,note:n,_enum:r,noteToken:i=null}={}){super(t),e||this.error(`Enum value must have a name`),this.name=e,this.note=n?E(n,`value`,n):null,this.noteToken=n?E(n,`token`,i):null,this._enum=r,this.dbState=this._enum.dbState,this.generateId()}generateId(){this.id=this.dbState.generateId(`enumValueId`)}export(){return{...this.shallowExport()}}exportParentIds(){return{enumId:this._enum.id}}shallowExport(){return{name:this.name,note:this.note}}normalize(e){e.enumValues[this.id]={id:this.id,...this.shallowExport(),...this.exportParentIds()}}},wme=Cme;Yu();var Tme=class extends I_{constructor({name:e,token:t,values:n,note:r,schema:i,noteToken:a=null}={}){super(t),e||this.error(`Enum must have a name`),this.name=e,this.note=r?E(r,`value`,r):null,this.noteToken=r?E(r,`token`,a):null,this.values=[],this.fields=[],this.schema=i,this.dbState=this.schema.dbState,this.generateId(),this.processValues(n)}generateId(){this.id=this.dbState.generateId(`enumId`)}processValues(e){e.forEach(e=>{this.pushValue(new wme({...e,_enum:this}))})}pushValue(e){this.checkValue(e),this.values.push(e)}checkValue(e){this.values.some(t=>t.name===e.name)&&e.error(`Enum value "${e.name}" existed in enum ${P_(this.schema)?`"${this.schema.name}".`:``}"${this.name}"`)}pushField(e){this.checkField(e),this.fields.push(e)}checkField(e){this.fields.some(t=>t.id===e.id)&&this.error(`Field ${P_(e.table.schema)?`"${e.table.schema.name}".`:``}"${e.table.name}"."${e.name}" already associated with enum ${P_(this.schema)?`"${this.schema.name}".`:``}${this.name}"`)}export(){return{...this.shallowExport(),...this.exportChild()}}exportChild(){return{values:this.values.map(e=>e.export())}}exportChildIds(){return{valueIds:this.values.map(e=>e.id),fieldIds:this.fields.map(e=>e.id)}}exportParentIds(){return{schemaId:this.schema.id}}shallowExport(){return{name:this.name,note:this.note}}normalize(e){e.enums[this.id]={id:this.id,...this.shallowExport(),...this.exportChildIds(),...this.exportParentIds()},this.values.forEach(t=>t.normalize(e))}},Eme=Tme;Yu();var Dme=class extends I_{constructor({name:e,token:t,tables:n=[],schema:r={},note:i,color:a,noteToken:o=null}){super(t),this.name=e,this.tables=[],this.schema=r,this.dbState=this.schema.dbState,this.note=i?E(i,`value`,i):null,this.noteToken=i?E(i,`token`,o):null,this.color=a,this.generateId(),this.processTables(n)}generateId(){this.id=this.dbState.generateId(`tableGroupId`)}processTables(e){e.forEach(e=>{let t=this.schema.database.findTable(e.schemaName,e.name);t||this.error(`Table ${e.schemaName?`"${e.schemaName}".`:``}${e.name} don't exist`),this.pushTable(t)})}pushTable(e){this.checkTable(e),this.tables.push(e),e.group=this}checkTable(e){this.tables.some(t=>t.id===e.id)&&this.error(`Table ${P_(e.schema)?`"${e.schema.name}".`:``}.${e.name} is already in the group`),e.group&&this.error(`Table ${P_(e.schema)?`"${e.schema.name}".`:``}.${e.name} is already in group ${P_(e.group.schema)?`"${e.group.schema.name}".`:``}${e.group.name}`)}export(){return{...this.shallowExport(),...this.exportChild()}}exportChild(){return{tables:this.tables.map(e=>({tableName:e.name,schemaName:e.schema.name}))}}exportChildIds(){return{tableIds:this.tables.map(e=>e.id)}}exportParentIds(){return{schemaId:this.schema.id}}shallowExport(){return{name:this.name,note:this.note,color:this.color}}normalize(e){e.tableGroups[this.id]={id:this.id,...this.shallowExport(),...this.exportChildIds(),...this.exportParentIds()}}},Ome=Dme,kme=class extends I_{constructor({tableName:e,schemaName:t,fieldNames:n,relation:r,token:i,ref:a}){super(i),this.relation=r,this.schemaName=t,this.tableName=e,this.fieldNames=n,this.fields=[],this.ref=a,this.dbState=this.ref.dbState,this.generateId();let o=a.schema.database.findOrCreateSchema(t||`public`).database.findTable(t,e);o||this.error(`Can't find table ${eme(t)?`"${t}".`:``}"${e}"`),this.setFields(n,o)}generateId(){this.id=this.dbState.generateId(`endpointId`)}equals(e){return this.fields.length===e.fields.length?this.compareFields(e):!1}compareFields(e){let t=this.fields.map(e=>e.id).sort(),n=e.fields.map(e=>e.id).sort();for(let e=0;e<t.length;e+=1)if(t[e]!==n[e])return!1;return!0}export(){return{...this.shallowExport()}}exportParentIds(){return{refId:this.ref.id,fieldIds:this.fields.map(e=>e.id)}}shallowExport(){return{schemaName:this.schemaName,tableName:this.tableName,fieldNames:this.fieldNames,relation:this.relation}}setFields(e,t){let n=e&&e.length?[...e]:[];if(!n.length){let e=t.fields.find(e=>e.pk);if(e)n.push(e.name);else{let e=t.indexes.find(e=>e.pk);e?n=e.columns.map(e=>e.value):this.error(`Can't find primary or composite key in table ${P_(t.schema)?`"${t.schema.name}".`:``}"${t.name}"`)}}n.forEach(e=>{let n=t.findField(e);n||this.error(`Can't find field ${P_(t.schema)?`"${t.schema.name}".`:``}"${e}" in table "${t.name}"`),this.fields.push(n),n.pushEndpoint(this)})}normalize(e){e.endpoints[this.id]={id:this.id,...this.shallowExport(),...this.exportParentIds()}}},Ame=kme;function jme(e,t){return e[0].equals(t[0])&&e[1].equals(t[1])}var Mme=class extends I_{constructor({name:e,color:t,endpoints:n,onDelete:r,onUpdate:i,token:a,schema:o={},injectedPartial:s=null}={}){super(a),this.name=e,this.color=t,this.onDelete=r,this.onUpdate=i,this.endpoints=[],this.schema=o,this.injectedPartial=s,this.dbState=this.schema.dbState,this.generateId(),this.processEndpoints(n)}generateId(){this.id=this.dbState.generateId(`refId`)}processEndpoints(e){e.forEach(e=>{this.endpoints.push(new Ame({...e,ref:this})),e.schemaName}),this.endpoints[0].equals(this.endpoints[1])&&this.error(`Two endpoints are the same`),this.endpoints[0].fields.length!==this.endpoints[1].fields.length&&this.error(`Two endpoints have unequal number of fields`)}equals(e){return jme(this.endpoints,e.endpoints)||jme(this.endpoints,e.endpoints.slice().reverse())}export(){return{...this.shallowExport(),...this.exportChild()}}shallowExport(){return{name:this.name,color:this.color,onDelete:this.onDelete,onUpdate:this.onUpdate,injectedPartialId:this.injectedPartial?.id}}exportChild(){return{endpoints:this.endpoints.map(e=>e.export())}}exportChildIds(){return{endpointIds:this.endpoints.map(e=>e.id)}}exportParentIds(){return{schemaId:this.schema.id}}normalize(e){e.refs[this.id]={id:this.id,...this.shallowExport(),...this.exportChildIds(),...this.exportParentIds()},this.endpoints.forEach(t=>t.normalize(e))}},Nme=Mme;Yu();var Pme=class extends I_{constructor({name:e,alias:t,note:n,tables:r=[],refs:i=[],enums:a=[],tableGroups:o=[],token:s,database:c={},noteToken:l=null}={}){super(s),this.tables=[],this.enums=[],this.tableGroups=[],this.refs=[],this.name=e,this.note=n?E(n,`value`,n):null,this.noteToken=n?E(n,`token`,l):null,this.alias=t,this.database=c,this.dbState=this.database.dbState,this.generateId(),this.processEnums(a),this.processTables(r),this.processRefs(i),this.processTableGroups(o)}generateId(){this.id=this.dbState.generateId(`schemaId`)}processTables(e){e.forEach(e=>{this.pushTable(new Sme({...e,schema:this}))})}pushTable(e){this.checkTable(e),this.tables.push(e)}checkTable(e){this.tables.some(t=>t.name===e.name)&&e.error(`Table ${P_(this)?`"${this.name}".`:``}"${e.name}" existed`)}findTable(e){return this.tables.find(t=>t.name===e)}processEnums(e){e.forEach(e=>{this.pushEnum(new Eme({...e,schema:this}))})}pushEnum(e){this.checkEnum(e),this.enums.push(e)}checkEnum(e){this.enums.some(t=>t.name===e.name)&&e.error(`Enum ${P_(this)?`"${this.name}".`:``}"${e.name}" existed`)}processRefs(e){e.forEach(e=>{this.pushRef(new Nme({...e,schema:this}))})}pushRef(e){this.checkRef(e),this.refs.push(e)}checkRef(e){if(this.refs.some(t=>t.equals(e))){let t=e.endpoints[0],n=t.fieldNames.map(JSON.stringify).join(`, `),r=e.endpoints[1],i=r.fieldNames.map(JSON.stringify).join(`, `),a=`"${t.schemaName?`${t.schemaName}"."`:``}${t.tableName}"(${n})`,o=`"${r.schemaName?`${r.schemaName}"."`:``}${r.tableName}"(${i})`;e.error(`Reference with the same endpoints already exists: ${a} references ${o}`)}}processTableGroups(e){e.forEach(e=>{this.pushTableGroup(new Ome({...e,schema:this}))})}pushTableGroup(e){this.checkTableGroup(e),this.tableGroups.push(e)}checkTableGroup(e){this.tableGroups.some(t=>t.name===e.name)&&e.error(`Table Group ${P_(this)?`"${this.name}".`:``}"${e.name}" existed`)}checkSameId(e){return this.name===e.name||this.alias===e.name||this.name===e.alias||this.alias&&this.alias===e.alias}export(){return{...this.shallowExport(),...this.exportChild()}}exportChild(){return{tables:this.tables.map(e=>e.export()),enums:this.enums.map(e=>e.export()),tableGroups:this.tableGroups.map(e=>e.export()),refs:this.refs.map(e=>e.export())}}exportChildIds(){return{tableIds:this.tables.map(e=>e.id),enumIds:this.enums.map(e=>e.id),tableGroupIds:this.tableGroups.map(e=>e.id),refIds:this.refs.map(e=>e.id)}}exportParentIds(){return{databaseId:this.database.id}}shallowExport(){return{name:this.name,note:this.note,alias:this.alias}}normalize(e){e.schemas[this.id]={id:this.id,...this.shallowExport(),...this.exportChildIds(),...this.exportParentIds()},this.tables.forEach(t=>t.normalize(e)),this.enums.forEach(t=>t.normalize(e)),this.tableGroups.forEach(t=>t.normalize(e)),this.refs.forEach(t=>t.normalize(e))}},Fme=Pme,Ime=class extends I_{constructor({name:e,content:t,headerColor:n,token:r,database:i={}}={}){super(r),this.name=e,this.content=t,this.headerColor=n,this.database=i,this.dbState=this.database.dbState,this.generateId()}generateId(){this.id=this.dbState.generateId(`noteId`)}export(){return{name:this.name,content:this.content,headerColor:this.headerColor}}normalize(e){e.notes[this.id]={id:this.id,...this.export()}}},Lme=Ime,Rme=class{constructor(){this.dbId=1,this.schemaId=1,this.enumId=1,this.tableGroupId=1,this.refId=1,this.tableId=1,this.noteId=1,this.enumValueId=1,this.endpointId=1,this.indexId=1,this.checkId=1,this.fieldId=1,this.indexColumnId=1,this.recordId=1,this.tablePartialId=1}generateId(e){let t=this[e];return this[e]+=1,t}};Yu();var zme=class extends I_{constructor({name:e,note:t,fields:n=[],indexes:r=[],checks:i=[],token:a,headerColor:o,noteToken:s=null,dbState:c}={}){super(a),this.name=e,this.note=t?E(t,`value`,t):null,this.noteToken=t?E(t,`token`,s):null,this.headerColor=o,this.fields=n,this.indexes=r,this.checks=i,this.dbState=c,this.generateId()}generateId(){this.id=this.dbState.generateId(`tablePartialId`)}export(){return{...this.shallowExport()}}shallowExport(){return{name:this.name,note:this.note,headerColor:this.headerColor,fields:this.fields,indexes:this.indexes}}normalize(e){e.tablePartials[this.id]={id:this.id,...this.shallowExport()}}},Bme=zme;Yu();var Vme=class extends I_{constructor({schemas:e=[],tables:t=[],notes:n=[],enums:r=[],refs:i=[],tableGroups:a=[],project:o={},aliases:s=[],records:c=[],tablePartials:l=[]}){super(),this.dbState=new Rme,this.generateId(),this.hasDefaultSchema=!1,this.schemas=[],this.notes=[],this.note=o.note?E(o,`note.value`,o.note):null,this.noteToken=o.note?E(o,`note.token`,o.noteToken):null,this.databaseType=o.database_type,this.name=o.name,this.token=o.token,this.aliases=s,this.records=[],this.tablePartials=[],this.injectedRawRefs=[],this.processNotes(n),this.processRecords(c),this.processTablePartials(l),this.processSchemas(e),this.processSchemaElements(r,Gpe),this.processSchemaElements(t,Upe),this.processSchemaElements(n,`note`),this.processSchemaElements(i,`ref`),this.processSchemaElements(a,qpe),this.injectedRawRefs.forEach(e=>{let t=this.findOrCreateSchema(D_),n=new Nme({...e,schema:t});t.refs.some(e=>e.equals(n))||t.pushRef(n)})}generateId(){this.id=this.dbState.generateId(`dbId`)}processNotes(e){e.forEach(e=>{this.pushNote(new Lme({...e,database:this}))})}processRecords(e){e.forEach(({schemaName:e,tableName:t,columns:n,values:r})=>{this.records.push({id:this.dbState.generateId(`recordId`),schemaName:e,tableName:t,columns:n,values:r})})}processTablePartials(e){e.forEach(e=>{this.tablePartials.push(new Bme({...e,dbState:this.dbState}))})}pushNote(e){this.checkNote(e),this.notes.push(e)}checkNote(e){this.notes.some(t=>t.name===e.name)&&e.error(`Notes ${e.name} existed`)}processSchemas(e){e.forEach(e=>{this.pushSchema(new Fme({...e,database:this}))})}pushSchema(e){this.checkSchema(e),this.schemas.push(e)}checkSchema(e){this.schemas.some(t=>t.name===e.name)&&e.error(`Schemas ${e.name} existed`)}processSchemaElements(e,t){let n;e.forEach(e=>{switch(e.schemaName?(n=this.findOrCreateSchema(e.schemaName),e.schemaName):n=this.findOrCreateSchema(D_),t){case Upe:n.pushTable(new Sme({...e,schema:n}));break;case Gpe:n.pushEnum(new Eme({...e,schema:n}));break;case qpe:n.pushTableGroup(new Ome({...e,schema:n}));break;case`ref`:n.pushRef(new Nme({...e,schema:n}));break;default:break}})}findOrCreateSchema(e){let t=this.schemas.find(t=>t.name===e||t.alias===e);return t||(t=new Fme({name:e,note:{value:e===`public`?`Default ${Zo(D_)} Schema`:null},database:this}),this.pushSchema(t)),t}findTableAlias(e){let t=this.aliases.find(t=>t.name===e);if(!t||t.kind!==`table`)return null;let n=t.value.schemaName||`public`,r=this.schemas.find(e=>e.name===n);if(!r)return null;let{tableName:i}=t.value;return r.tables.find(e=>e.name===i)}findTable(e,t){let n=null;if(!e&&(n=this.findTableAlias(t),n))return n;let r=this.findOrCreateSchema(e||`public`);return r||this.error(`Schema ${e||`public`} don't exist`),r.findTable(t)}findEnum(e,t){let n=this.schemas.find(t=>t.name===e||t.alias===e);return n?n.enums.find(e=>e.name===t):null}findTablePartial(e){return this.tablePartials.find(t=>t.name===e)}export(){return{...this.exportChild()}}shallowExport(){return{hasDefaultSchema:this.hasDefaultSchema,note:this.note,databaseType:this.databaseType,name:this.name}}exportChild(){return{schemas:this.schemas.map(e=>e.export()),notes:this.notes.map(e=>e.export()),records:this.records.map(e=>({...e}))}}exportChildIds(){return{schemaIds:this.schemas.map(e=>e.id),noteIds:this.notes.map(e=>e.id)}}normalize(){let e={database:{[this.id]:{id:this.id,...this.shallowExport(),...this.exportChildIds()}},schemas:{},notes:{},refs:{},enums:{},tableGroups:{},tables:{},endpoints:{},enumValues:{},indexes:{},indexColumns:{},checks:{},fields:{},records:{},tablePartials:{}};return this.schemas.forEach(t=>t.normalize(e)),this.notes.forEach(t=>t.normalize(e)),this.records.forEach(t=>{e.records[t.id]={...t}}),this.tablePartials.forEach(t=>t.normalize(e)),e}},Hme=Vme,Ume={763:()=>{}},Wme={};function R_(e){var t=Wme[e];if(t!==void 0)return t.exports;var n=Wme[e]={exports:{}};return Ume[e](n,n.exports,R_),n.exports}R_.d=(e,t)=>{for(var n in t)R_.o(t,n)&&!R_.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},R_.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var z_={};R_.d(z_,{MG:()=>uv,fr:()=>Ihe,sR:()=>hge,Zo:()=>Fv,iH:()=>xge,rt:()=>xv,jB:()=>Tge,M8:()=>rge,$t:()=>Pv,aq:()=>fge,pG:()=>yv,eP:()=>uge,KU:()=>Nv,zW:()=>_ge,IX:()=>q_,mY:()=>J_,a7:()=>lv,JG:()=>Cv,ay:()=>Ov,X2:()=>jv,WU:()=>sge,Uw:()=>cge,gw:()=>Mv,iX:()=>Dge,re:()=>Qhe,Pg:()=>Age,tD:()=>$he,R$:()=>Av,Dj:()=>Sv,m7:()=>rv,NZ:()=>$_,xo:()=>ev,ou:()=>B_,qC:()=>jge,mD:()=>U_,Ay:()=>Pge});var B_=class{constructor(){this.source=null,this.type=null,this.channel=null,this.start=null,this.stop=null,this.tokenIndex=null,this.line=null,this.column=null,this._text=null}getTokenSource(){return this.source[0]}getInputStream(){return this.source[1]}get text(){return this._text}set text(e){this._text=e}};function V_(e,t){if(!Array.isArray(e)||!Array.isArray(t))return!1;if(e===t)return!0;if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(!(e[n]===t[n]||e[n].equals&&e[n].equals(t[n])))return!1;return!0}B_.INVALID_TYPE=0,B_.EPSILON=-2,B_.MIN_USER_TOKEN_TYPE=1,B_.EOF=-1,B_.DEFAULT_CHANNEL=0,B_.HIDDEN_CHANNEL=1;var Gme=Math.round(Math.random()*2**32);function Kme(e){if(!e)return 0;let t=typeof e,n=t===`string`?e:!(t!==`object`||!e.toString)&&e.toString();if(!n)return 0;let r,i,a=3&n.length,o=n.length-a,s=Gme,c=3432918353,l=461845907,u=0;for(;u<o;)i=255&n.charCodeAt(u)|(255&n.charCodeAt(++u))<<8|(255&n.charCodeAt(++u))<<16|(255&n.charCodeAt(++u))<<24,++u,i=(65535&i)*c+(((i>>>16)*c&65535)<<16)&4294967295,i=i<<15|i>>>17,i=(65535&i)*l+(((i>>>16)*l&65535)<<16)&4294967295,s^=i,s=s<<13|s>>>19,r=5*(65535&s)+((5*(s>>>16)&65535)<<16)&4294967295,s=27492+(65535&r)+((58964+(r>>>16)&65535)<<16);switch(i=0,a){case 3:i^=(255&n.charCodeAt(u+2))<<16;case 2:i^=(255&n.charCodeAt(u+1))<<8;case 1:i^=255&n.charCodeAt(u),i=(65535&i)*c+(((i>>>16)*c&65535)<<16)&4294967295,i=i<<15|i>>>17,i=(65535&i)*l+(((i>>>16)*l&65535)<<16)&4294967295,s^=i}return s^=n.length,s^=s>>>16,s=2246822507*(65535&s)+((2246822507*(s>>>16)&65535)<<16)&4294967295,s^=s>>>13,s=3266489909*(65535&s)+((3266489909*(s>>>16)&65535)<<16)&4294967295,s^=s>>>16,s>>>0}var H_=class e{constructor(){this.count=0,this.hash=0}update(){for(let e=0;e<arguments.length;e++){let t=arguments[e];if(t!=null)if(Array.isArray(t))this.update.apply(this,t);else{let e=0;switch(typeof t){case`undefined`:case`function`:continue;case`number`:case`boolean`:e=t;break;case`string`:e=Kme(t);break;default:t.updateHashCode?t.updateHashCode(this):console.log(`No updateHashCode for `+t.toString());continue}e*=3432918353,e=e<<15|e>>>17,e*=461845907,this.count+=1;let n=this.hash^e;n=n<<13|n>>>19,n=5*n+3864292196,this.hash=n}}}finish(){let e=this.hash^4*this.count;return e^=e>>>16,e*=2246822507,e^=e>>>13,e*=3266489909,e^=e>>>16,e}static hashStuff(){let t=new e;return t.update.apply(t,arguments),t.finish()}};function qme(e){return e?typeof e==`string`?Kme(e):e.hashCode():-1}function Jme(e,t){return e&&e.equals?e.equals(t):e===t}function Yme(e){return e===null?`null`:e}function U_(e){return Array.isArray(e)?`[`+e.map(Yme).join(`, `)+`]`:`null`}var W_=class{constructor(e,t){this.buckets=Array(16),this.threshold=12,this.itemCount=0,this.hashFunction=e||qme,this.equalsFunction=t||Jme}get(e){if(e==null)return e;let t=this._getBucket(e);if(!t)return null;for(let n of t)if(this.equalsFunction(n,e))return n;return null}add(e){return this.getOrAdd(e)===e}getOrAdd(e){this._expand();let t=this._getSlot(e),n=this.buckets[t];if(!n)return n=[e],this.buckets[t]=n,this.itemCount++,e;for(let t of n)if(this.equalsFunction(t,e))return t;return n.push(e),this.itemCount++,e}has(e){return this.get(e)!=null}values(){return this.buckets.filter((e=>e!=null)).flat(1)}toString(){return U_(this.values())}get length(){return this.itemCount}_getSlot(e){return this.hashFunction(e)&this.buckets.length-1}_getBucket(e){return this.buckets[this._getSlot(e)]}_expand(){if(this.itemCount<=this.threshold)return;let e=this.buckets,t=2*this.buckets.length;this.buckets=Array(t),this.threshold=Math.floor(.75*t);for(let t of e)if(t)for(let e of t){let t=this._getSlot(e),n=this.buckets[t];n||(n=[],this.buckets[t]=n),n.push(e)}}},G_=class e{hashCode(){let e=new H_;return this.updateHashCode(e),e.finish()}evaluate(e,t){}evalPrecedence(e,t){return this}static andContext(t,n){if(t===null||t===e.NONE)return n;if(n===null||n===e.NONE)return t;let r=new Xme(t,n);return r.opnds.length===1?r.opnds[0]:r}static orContext(t,n){if(t===null)return n;if(n===null)return t;if(t===e.NONE||n===e.NONE)return e.NONE;let r=new Zme(t,n);return r.opnds.length===1?r.opnds[0]:r}},Xme=class e extends G_{constructor(t,n){super();let r=new W_;t instanceof e?t.opnds.map((function(e){r.add(e)})):r.add(t),n instanceof e?n.opnds.map((function(e){r.add(e)})):r.add(n);let i=Qme(r);if(i.length>0){let e=null;i.map((function(t){(e===null||t.precedence<e.precedence)&&(e=t)})),r.add(e)}this.opnds=Array.from(r.values())}equals(t){return this===t||t instanceof e&&V_(this.opnds,t.opnds)}updateHashCode(e){e.update(this.opnds,`AND`)}evaluate(e,t){for(let n=0;n<this.opnds.length;n++)if(!this.opnds[n].evaluate(e,t))return!1;return!0}evalPrecedence(e,t){let n=!1,r=[];for(let i=0;i<this.opnds.length;i++){let a=this.opnds[i],o=a.evalPrecedence(e,t);if(n|=o!==a,o===null)return null;o!==G_.NONE&&r.push(o)}if(!n)return this;if(r.length===0)return G_.NONE;let i=null;return r.map((function(e){i=i===null?e:G_.andContext(i,e)})),i}toString(){let e=this.opnds.map((e=>e.toString()));return(e.length>3?e.slice(3):e).join(`&&`)}},Zme=class e extends G_{constructor(t,n){super();let r=new W_;t instanceof e?t.opnds.map((function(e){r.add(e)})):r.add(t),n instanceof e?n.opnds.map((function(e){r.add(e)})):r.add(n);let i=Qme(r);if(i.length>0){let e=i.sort((function(e,t){return e.compareTo(t)})),t=e[e.length-1];r.add(t)}this.opnds=Array.from(r.values())}equals(t){return this===t||t instanceof e&&V_(this.opnds,t.opnds)}updateHashCode(e){e.update(this.opnds,`OR`)}evaluate(e,t){for(let n=0;n<this.opnds.length;n++)if(this.opnds[n].evaluate(e,t))return!0;return!1}evalPrecedence(e,t){let n=!1,r=[];for(let i=0;i<this.opnds.length;i++){let a=this.opnds[i],o=a.evalPrecedence(e,t);if(n|=o!==a,o===G_.NONE)return G_.NONE;o!==null&&r.push(o)}return n?(r.length===0||r.map((function(e){return e})),null):this}toString(){let e=this.opnds.map((e=>e.toString()));return(e.length>3?e.slice(3):e).join(`||`)}};function Qme(e){let t=[];return e.values().map((function(e){e instanceof G_.PrecedencePredicate&&t.push(e)})),t}function $me(e,t){if(e===null){let e={state:null,alt:null,context:null,semanticContext:null};return t&&(e.reachesIntoOuterContext=0),e}{let n={};return n.state=e.state||null,n.alt=e.alt===void 0?null:e.alt,n.context=e.context||null,n.semanticContext=e.semanticContext||null,t&&(n.reachesIntoOuterContext=e.reachesIntoOuterContext||0,n.precedenceFilterSuppressed=e.precedenceFilterSuppressed||!1),n}}var K_=class e{constructor(e,t){this.checkContext(e,t),e=$me(e),t=$me(t,!0),this.state=e.state===null?t.state:e.state,this.alt=e.alt===null?t.alt:e.alt,this.context=e.context===null?t.context:e.context,this.semanticContext=e.semanticContext===null?t.semanticContext===null?G_.NONE:t.semanticContext:e.semanticContext,this.reachesIntoOuterContext=t.reachesIntoOuterContext,this.precedenceFilterSuppressed=t.precedenceFilterSuppressed}checkContext(e,t){e.context!==null&&e.context!==void 0||t!==null&&t.context!==null&&t.context!==void 0||(this.context=null)}hashCode(){let e=new H_;return this.updateHashCode(e),e.finish()}updateHashCode(e){e.update(this.state.stateNumber,this.alt,this.context,this.semanticContext)}equals(t){return this===t||t instanceof e&&this.state.stateNumber===t.state.stateNumber&&this.alt===t.alt&&(this.context===null?t.context===null:this.context.equals(t.context))&&this.semanticContext.equals(t.semanticContext)&&this.precedenceFilterSuppressed===t.precedenceFilterSuppressed}hashCodeForConfigSet(){let e=new H_;return e.update(this.state.stateNumber,this.alt,this.semanticContext),e.finish()}equalsForConfigSet(t){return this===t||t instanceof e&&this.state.stateNumber===t.state.stateNumber&&this.alt===t.alt&&this.semanticContext.equals(t.semanticContext)}toString(){return`(`+this.state+`,`+this.alt+(this.context===null?``:`,[`+this.context.toString()+`]`)+(this.semanticContext===G_.NONE?``:`,`+this.semanticContext.toString())+(this.reachesIntoOuterContext>0?`,up=`+this.reachesIntoOuterContext:``)+`)`}},q_=class e{constructor(e,t){this.start=e,this.stop=t}clone(){return new e(this.start,this.stop)}contains(e){return e>=this.start&&e<this.stop}toString(){return this.start===this.stop-1?this.start.toString():this.start.toString()+`..`+(this.stop-1).toString()}get length(){return this.stop-this.start}};q_.INVALID_INTERVAL=new q_(-1,-2);var J_=class e{constructor(){this.intervals=null,this.readOnly=!1}first(e){return this.intervals===null||this.intervals.length===0?B_.INVALID_TYPE:this.intervals[0].start}addOne(e){this.addInterval(new q_(e,e+1))}addRange(e,t){this.addInterval(new q_(e,t+1))}addInterval(e){if(this.intervals===null)this.intervals=[],this.intervals.push(e.clone());else{for(let t=0;t<this.intervals.length;t++){let n=this.intervals[t];if(e.stop<n.start)return void this.intervals.splice(t,0,e);if(e.stop===n.start)return void(this.intervals[t]=new q_(e.start,n.stop));if(e.start<=n.stop)return this.intervals[t]=new q_(Math.min(n.start,e.start),Math.max(n.stop,e.stop)),void this.reduce(t)}this.intervals.push(e.clone())}}addSet(e){return e.intervals!==null&&e.intervals.forEach((e=>this.addInterval(e)),this),this}reduce(e){if(e<this.intervals.length-1){let t=this.intervals[e],n=this.intervals[e+1];t.stop>=n.stop?(this.intervals.splice(e+1,1),this.reduce(e)):t.stop>=n.start&&(this.intervals[e]=new q_(t.start,n.stop),this.intervals.splice(e+1,1))}}complement(t,n){let r=new e;return r.addInterval(new q_(t,n+1)),this.intervals!==null&&this.intervals.forEach((e=>r.removeRange(e))),r}contains(e){if(this.intervals===null)return!1;for(let t=0;t<this.intervals.length;t++)if(this.intervals[t].contains(e))return!0;return!1}removeRange(e){if(e.start===e.stop-1)this.removeOne(e.start);else if(this.intervals!==null){let t=0;for(let n=0;n<this.intervals.length;n++){let n=this.intervals[t];if(e.stop<=n.start)return;if(e.start>n.start&&e.stop<n.stop){this.intervals[t]=new q_(n.start,e.start);let r=new q_(e.stop,n.stop);this.intervals.splice(t,0,r);return}e.start<=n.start&&e.stop>=n.stop?(this.intervals.splice(t,1),--t):e.start<n.stop?this.intervals[t]=new q_(n.start,e.start):e.stop<n.stop&&(this.intervals[t]=new q_(e.stop,n.stop)),t+=1}}}removeOne(e){if(this.intervals!==null)for(let t=0;t<this.intervals.length;t++){let n=this.intervals[t];if(e<n.start)return;if(e===n.start&&e===n.stop-1)return void this.intervals.splice(t,1);if(e===n.start)return void(this.intervals[t]=new q_(n.start+1,n.stop));if(e===n.stop-1)return void(this.intervals[t]=new q_(n.start,n.stop-1));if(e<n.stop-1){let r=new q_(n.start,e);n.start=e+1,this.intervals.splice(t,0,r);return}}}toString(e,t,n){return e||=null,t||=null,n||=!1,this.intervals===null?`{}`:e!==null||t!==null?this.toTokenString(e,t):n?this.toCharString():this.toIndexString()}toCharString(){let e=[];for(let t=0;t<this.intervals.length;t++){let n=this.intervals[t];n.stop===n.start+1?n.start===B_.EOF?e.push(`<EOF>`):e.push(`'`+String.fromCharCode(n.start)+`'`):e.push(`'`+String.fromCharCode(n.start)+`'..'`+String.fromCharCode(n.stop-1)+`'`)}return e.length>1?`{`+e.join(`, `)+`}`:e[0]}toIndexString(){let e=[];for(let t=0;t<this.intervals.length;t++){let n=this.intervals[t];n.stop===n.start+1?n.start===B_.EOF?e.push(`<EOF>`):e.push(n.start.toString()):e.push(n.start.toString()+`..`+(n.stop-1).toString())}return e.length>1?`{`+e.join(`, `)+`}`:e[0]}toTokenString(e,t){let n=[];for(let r=0;r<this.intervals.length;r++){let i=this.intervals[r];for(let r=i.start;r<i.stop;r++)n.push(this.elementName(e,t,r))}return n.length>1?`{`+n.join(`, `)+`}`:n[0]}elementName(e,t,n){return n===B_.EOF?`<EOF>`:n===B_.EPSILON?`<EPSILON>`:e[n]||t[n]}get length(){return this.intervals.map((e=>e.length)).reduce(((e,t)=>e+t))}},Y_=class e{constructor(){this.atn=null,this.stateNumber=e.INVALID_STATE_NUMBER,this.stateType=null,this.ruleIndex=0,this.epsilonOnlyTransitions=!1,this.transitions=[],this.nextTokenWithinRule=null}toString(){return this.stateNumber}equals(t){return t instanceof e&&this.stateNumber===t.stateNumber}isNonGreedyExitState(){return!1}addTransition(e,t){t===void 0&&(t=-1),this.transitions.length===0?this.epsilonOnlyTransitions=e.isEpsilon:this.epsilonOnlyTransitions!==e.isEpsilon&&(this.epsilonOnlyTransitions=!1),t===-1?this.transitions.push(e):this.transitions.splice(t,1,e)}};Y_.INVALID_TYPE=0,Y_.BASIC=1,Y_.RULE_START=2,Y_.BLOCK_START=3,Y_.PLUS_BLOCK_START=4,Y_.STAR_BLOCK_START=5,Y_.TOKEN_START=6,Y_.RULE_STOP=7,Y_.BLOCK_END=8,Y_.STAR_LOOP_BACK=9,Y_.STAR_LOOP_ENTRY=10,Y_.PLUS_LOOP_BACK=11,Y_.LOOP_END=12,Y_.serializationNames=[`INVALID`,`BASIC`,`RULE_START`,`BLOCK_START`,`PLUS_BLOCK_START`,`STAR_BLOCK_START`,`TOKEN_START`,`RULE_STOP`,`BLOCK_END`,`STAR_LOOP_BACK`,`STAR_LOOP_ENTRY`,`PLUS_LOOP_BACK`,`LOOP_END`],Y_.INVALID_STATE_NUMBER=-1;var X_=class extends Y_{constructor(){return super(),this.stateType=Y_.RULE_STOP,this}},Z_=class{constructor(e){if(e==null)throw`target cannot be null.`;this.target=e,this.isEpsilon=!1,this.label=null}};Z_.EPSILON=1,Z_.RANGE=2,Z_.RULE=3,Z_.PREDICATE=4,Z_.ATOM=5,Z_.ACTION=6,Z_.SET=7,Z_.NOT_SET=8,Z_.WILDCARD=9,Z_.PRECEDENCE=10,Z_.serializationNames=[`INVALID`,`EPSILON`,`RANGE`,`RULE`,`PREDICATE`,`ATOM`,`ACTION`,`SET`,`NOT_SET`,`WILDCARD`,`PRECEDENCE`],Z_.serializationTypes={EpsilonTransition:Z_.EPSILON,RangeTransition:Z_.RANGE,RuleTransition:Z_.RULE,PredicateTransition:Z_.PREDICATE,AtomTransition:Z_.ATOM,ActionTransition:Z_.ACTION,SetTransition:Z_.SET,NotSetTransition:Z_.NOT_SET,WildcardTransition:Z_.WILDCARD,PrecedencePredicateTransition:Z_.PRECEDENCE};var Q_=class extends Z_{constructor(e,t,n,r){super(e),this.ruleIndex=t,this.precedence=n,this.followState=r,this.serializationType=Z_.RULE,this.isEpsilon=!0}matches(e,t,n){return!1}},ehe=class extends Z_{constructor(e,t){super(e),this.serializationType=Z_.SET,t==null?(this.label=new J_,this.label.addOne(B_.INVALID_TYPE)):this.label=t}matches(e,t,n){return this.label.contains(e)}toString(){return this.label.toString()}},the=class extends ehe{constructor(e,t){super(e,t),this.serializationType=Z_.NOT_SET}matches(e,t,n){return e>=t&&e<=n&&!super.matches(e,t,n)}toString(){return`~`+super.toString()}},nhe=class extends Z_{constructor(e){super(e),this.serializationType=Z_.WILDCARD}matches(e,t,n){return e>=t&&e<=n}toString(){return`.`}},rhe=class extends Z_{constructor(e){super(e)}},ihe=class{},ahe=class extends ihe{},ohe=class extends ahe{},$_=class extends ohe{get ruleContext(){throw Error(`missing interface implementation`)}},ev=class extends ohe{},tv=class extends ev{},nv={toStringTree:function(e,t,n){t||=null,(n||=null)!==null&&(t=n.ruleNames);let r=nv.getNodeText(e,t);r=function(e){return e=e.replace(/\t/g,`\\t`).replace(/\n/g,`\\n`).replace(/\r/g,`\\r`)}(r);let i=e.getChildCount();if(i===0)return r;let a=`(`+r+` `;i>0&&(r=nv.toStringTree(e.getChild(0),t),a=a.concat(r));for(let n=1;n<i;n++)r=nv.toStringTree(e.getChild(n),t),a=a.concat(` `+r);return a=a.concat(`)`),a},getNodeText:function(e,t,n){if(t||=null,(n||=null)!==null&&(t=n.ruleNames),t!==null){if(e instanceof $_){let n=e.ruleContext.getAltNumber();return n==0?t[e.ruleIndex]:t[e.ruleIndex]+`:`+n}if(e instanceof tv)return e.toString();if(e instanceof ev&&e.symbol!==null)return e.symbol.text}let r=e.getPayload();return r instanceof B_?r.text:e.getPayload().toString()},getChildren:function(e){let t=[];for(let n=0;n<e.getChildCount();n++)t.push(e.getChild(n));return t},getAncestors:function(e){let t=[];for(e=e.getParent();e!==null;)t=[e].concat(t),e=e.getParent();return t},findAllTokenNodes:function(e,t){return nv.findAllNodes(e,t,!0)},findAllRuleNodes:function(e,t){return nv.findAllNodes(e,t,!1)},findAllNodes:function(e,t,n){let r=[];return nv._findAllNodes(e,t,n,r),r},_findAllNodes:function(e,t,n,r){n&&e instanceof ev?e.symbol.type===t&&r.push(e):!n&&e instanceof $_&&e.ruleIndex===t&&r.push(e);for(let i=0;i<e.getChildCount();i++)nv._findAllNodes(e.getChild(i),t,n,r)},descendants:function(e){let t=[e];for(let n=0;n<e.getChildCount();n++)t=t.concat(nv.descendants(e.getChild(n)));return t}},she=nv,rv=class extends $_{constructor(e,t){super(),this.parentCtx=e||null,this.invokingState=t||-1}depth(){let e=0,t=this;for(;t!==null;)t=t.parentCtx,e+=1;return e}isEmpty(){return this.invokingState===-1}getSourceInterval(){return q_.INVALID_INTERVAL}get ruleContext(){return this}getPayload(){return this}getText(){return this.getChildCount()===0?``:this.children.map((function(e){return e.getText()})).join(``)}getAltNumber(){return 0}setAltNumber(e){}getChild(e){return null}getChildCount(){return 0}accept(e){return e.visitChildren(this)}toStringTree(e,t){return she.toStringTree(this,e,t)}toString(e,t){e||=null,t||=null;let n=this,r=`[`;for(;n!==null&&n!==t;){if(e===null)n.isEmpty()||(r+=n.invokingState);else{let t=n.ruleIndex;r+=t>=0&&t<e.length?e[t]:``+t}n.parentCtx===null||e===null&&n.parentCtx.isEmpty()||(r+=` `),n=n.parentCtx}return r+=`]`,r}},iv=class e{constructor(e){this.cachedHashCode=e}isEmpty(){return this===e.EMPTY}hasEmptyPath(){return this.getReturnState(this.length-1)===e.EMPTY_RETURN_STATE}hashCode(){return this.cachedHashCode}updateHashCode(e){e.update(this.cachedHashCode)}};iv.EMPTY=null,iv.EMPTY_RETURN_STATE=2147483647,iv.globalNodeCount=1,iv.id=iv.globalNodeCount,iv.trace_atn_sim=!1;var av=class e extends iv{constructor(e,t){let n=new H_;return n.update(e,t),super(n.finish()),this.parents=e,this.returnStates=t,this}isEmpty(){return this.returnStates[0]===iv.EMPTY_RETURN_STATE}getParent(e){return this.parents[e]}getReturnState(e){return this.returnStates[e]}equals(t){return this===t||t instanceof e&&this.hashCode()===t.hashCode()&&V_(this.returnStates,t.returnStates)&&V_(this.parents,t.parents)}toString(){if(this.isEmpty())return`[]`;{let e=`[`;for(let t=0;t<this.returnStates.length;t++)t>0&&(e+=`, `),this.returnStates[t]===iv.EMPTY_RETURN_STATE?e+=`$`:(e+=this.returnStates[t],this.parents[t]===null?e+=`null`:e=e+` `+this.parents[t]);return e+`]`}}get length(){return this.returnStates.length}},ov=class e extends iv{constructor(e,t){let n=0,r=new H_;e===null?r.update(1):r.update(e,t),n=r.finish(),super(n),this.parentCtx=e,this.returnState=t}getParent(e){return this.parentCtx}getReturnState(e){return this.returnState}equals(t){return this===t||t instanceof e&&this.hashCode()===t.hashCode()&&this.returnState===t.returnState&&(this.parentCtx==null?t.parentCtx==null:this.parentCtx.equals(t.parentCtx))}toString(){let e=this.parentCtx===null?``:this.parentCtx.toString();return e.length===0?this.returnState===iv.EMPTY_RETURN_STATE?`$`:``+this.returnState:this.returnState+` `+e}get length(){return 1}static create(t,n){return n===iv.EMPTY_RETURN_STATE&&t===null?iv.EMPTY:new e(t,n)}},che=class extends ov{constructor(){super(null,iv.EMPTY_RETURN_STATE)}isEmpty(){return!0}getParent(e){return null}getReturnState(e){return this.returnState}equals(e){return this===e}toString(){return`$`}};iv.EMPTY=new che;var sv=class{constructor(e,t){this.buckets=Array(16),this.threshold=12,this.itemCount=0,this.hashFunction=e||qme,this.equalsFunction=t||Jme}set(e,t){this._expand();let n=this._getSlot(e),r=this.buckets[n];if(!r)return r=[[e,t]],this.buckets[n]=r,this.itemCount++,t;let i=r.find((t=>this.equalsFunction(t[0],e)),this);if(i){let e=i[1];return i[1]=t,e}return r.push([e,t]),this.itemCount++,t}containsKey(e){let t=this._getBucket(e);return!!t&&!!t.find((t=>this.equalsFunction(t[0],e)),this)}get(e){let t=this._getBucket(e);if(!t)return null;let n=t.find((t=>this.equalsFunction(t[0],e)),this);return n?n[1]:null}entries(){return this.buckets.filter((e=>e!=null)).flat(1)}getKeys(){return this.entries().map((e=>e[0]))}getValues(){return this.entries().map((e=>e[1]))}toString(){return`[`+this.entries().map((e=>`{`+e[0]+`:`+e[1]+`}`)).join(`, `)+`]`}get length(){return this.itemCount}_getSlot(e){return this.hashFunction(e)&this.buckets.length-1}_getBucket(e){return this.buckets[this._getSlot(e)]}_expand(){if(this.itemCount<=this.threshold)return;let e=this.buckets,t=2*this.buckets.length;this.buckets=Array(t),this.threshold=Math.floor(.75*t);for(let t of e)if(t)for(let e of t){let t=this._getSlot(e[0]),n=this.buckets[t];n||(n=[],this.buckets[t]=n),n.push(e)}}};function lhe(e,t){if(t??=rv.EMPTY,t.parentCtx===null||t===rv.EMPTY)return iv.EMPTY;let n=lhe(e,t.parentCtx),r=e.states[t.invokingState].transitions[0];return ov.create(n,r.followState.stateNumber)}function uhe(e,t,n){if(e.isEmpty())return e;let r=n.get(e)||null;if(r!==null)return r;if(r=t.get(e),r!==null)return n.set(e,r),r;let i=!1,a=[];for(let r=0;r<a.length;r++){let o=uhe(e.getParent(r),t,n);if(i||o!==e.getParent(r)){if(!i){a=[];for(let t=0;t<e.length;t++)a[t]=e.getParent(t);i=!0}a[r]=o}}if(!i)return t.add(e),n.set(e,e),e;let o=null;return o=a.length===0?iv.EMPTY:a.length===1?ov.create(a[0],e.getReturnState(0)):new av(a,e.returnStates),t.add(o),n.set(o,o),n.set(e,o),o}function dhe(e,t,n,r){if(e===t)return e;if(e instanceof ov&&t instanceof ov)return function(e,t,n,r){if(r!==null){let n=r.get(e,t);if(n!==null||(n=r.get(t,e),n!==null))return n}let i=function(e,t,n){if(n){if(e===iv.EMPTY||t===iv.EMPTY)return iv.EMPTY}else{if(e===iv.EMPTY&&t===iv.EMPTY)return iv.EMPTY;if(e===iv.EMPTY){let e=[t.returnState,iv.EMPTY_RETURN_STATE];return new av([t.parentCtx,null],e)}if(t===iv.EMPTY){let t=[e.returnState,iv.EMPTY_RETURN_STATE];return new av([e.parentCtx,null],t)}}return null}(e,t,n);if(i!==null)return r!==null&&r.set(e,t,i),i;if(e.returnState===t.returnState){let i=dhe(e.parentCtx,t.parentCtx,n,r);if(i===e.parentCtx)return e;if(i===t.parentCtx)return t;let a=ov.create(i,e.returnState);return r!==null&&r.set(e,t,a),a}{let n=null;if((e===t||e.parentCtx!==null&&e.parentCtx===t.parentCtx)&&(n=e.parentCtx),n!==null){let i=[e.returnState,t.returnState];e.returnState>t.returnState&&(i[0]=t.returnState,i[1]=e.returnState);let a=new av([n,n],i);return r!==null&&r.set(e,t,a),a}let i=[e.returnState,t.returnState],a=[e.parentCtx,t.parentCtx];e.returnState>t.returnState&&(i[0]=t.returnState,i[1]=e.returnState,a=[t.parentCtx,e.parentCtx]);let o=new av(a,i);return r!==null&&r.set(e,t,o),o}}(e,t,n,r);if(n){if(e instanceof che)return e;if(t instanceof che)return t}return e instanceof ov&&(e=new av([e.getParent()],[e.returnState])),t instanceof ov&&(t=new av([t.getParent()],[t.returnState])),function(e,t,n,r){if(r!==null){let n=r.get(e,t);if(n!==null||(n=r.get(t,e),n!==null))return iv.trace_atn_sim&&console.log(`mergeArrays a=`+e+`,b=`+t+` -> previous`),n}let i=0,a=0,o=0,s=Array(e.returnStates.length+t.returnStates.length).fill(0),c=Array(e.returnStates.length+t.returnStates.length).fill(null);for(;i<e.returnStates.length&&a<t.returnStates.length;){let l=e.parents[i],u=t.parents[a];if(e.returnStates[i]===t.returnStates[a]){let t=e.returnStates[i];t===iv.EMPTY_RETURN_STATE&&l===null&&u===null||l!==null&&u!==null&&l===u?(c[o]=l,s[o]=t):(c[o]=dhe(l,u,n,r),s[o]=t),i+=1,a+=1}else e.returnStates[i]<t.returnStates[a]?(c[o]=l,s[o]=e.returnStates[i],i+=1):(c[o]=u,s[o]=t.returnStates[a],a+=1);o+=1}if(i<e.returnStates.length)for(let t=i;t<e.returnStates.length;t++)c[o]=e.parents[t],s[o]=e.returnStates[t],o+=1;else for(let e=a;e<t.returnStates.length;e++)c[o]=t.parents[e],s[o]=t.returnStates[e],o+=1;if(o<c.length){if(o===1){let n=ov.create(c[0],s[0]);return r!==null&&r.set(e,t,n),n}c=c.slice(0,o),s=s.slice(0,o)}let l=new av(c,s);return l.equals(e)?(r!==null&&r.set(e,t,e),iv.trace_atn_sim&&console.log(`mergeArrays a=`+e+`,b=`+t+` -> a`),e):l.equals(t)?(r!==null&&r.set(e,t,t),iv.trace_atn_sim&&console.log(`mergeArrays a=`+e+`,b=`+t+` -> b`),t):(function(e){let t=new sv;for(let n=0;n<e.length;n++){let r=e[n];t.containsKey(r)||t.set(r,r)}for(let n=0;n<e.length;n++)e[n]=t.get(e[n])}(c),r!==null&&r.set(e,t,l),iv.trace_atn_sim&&console.log(`mergeArrays a=`+e+`,b=`+t+` -> `+l),l)}(e,t,n,r)}var cv=class e{constructor(){this.data=new Uint32Array(1)}set(t){e._checkIndex(t),this._resize(t),this.data[t>>>5]|=1<<t%32}get(t){e._checkIndex(t);let n=t>>>5;return!(n>=this.data.length||!(this.data[n]&1<<t%32))}clear(t){e._checkIndex(t);let n=t>>>5;n<this.data.length&&(this.data[n]&=~(1<<t))}or(e){let t=Math.min(this.data.length,e.data.length);for(let n=0;n<t;++n)this.data[n]|=e.data[n];if(this.data.length<e.data.length){this._resize((e.data.length<<5)-1);let n=e.data.length;for(let r=t;r<n;++r)this.data[r]=e.data[r]}}values(){let t=Array(this.length),n=0,r=this.data.length;for(let i=0;i<r;++i){let r=this.data[i];for(;r!==0;){let a=r&-r;t[n++]=(i<<5)+e._bitCount(a-1),r^=a}}return t}minValue(){for(let e=0;e<this.data.length;++e){let t=this.data[e];if(t!==0){let n=0;for(;!(1&t);)n++,t>>=1;return n+32*e}}return 0}hashCode(){return H_.hashStuff(this.values())}equals(t){return t instanceof e&&V_(this.data,t.data)}toString(){return`{`+this.values().join(`, `)+`}`}get length(){return this.data.map((t=>e._bitCount(t))).reduce(((e,t)=>e+t),0)}_resize(e){let t=e+32>>>5;if(t<=this.data.length)return;let n=new Uint32Array(t);n.set(this.data),n.fill(0,this.data.length),this.data=n}static _checkIndex(e){if(e<0)throw RangeError(`index cannot be negative`)}static _bitCount(e){return e=(e=(858993459&(e-=e>>1&1431655765))+(e>>2&858993459))+(e>>4)&252645135,e+=e>>8,0+(e+=e>>16)&63}},lv=class e{constructor(e){this.atn=e}getDecisionLookahead(t){if(t===null)return null;let n=t.transitions.length,r=[];for(let i=0;i<n;i++){r[i]=new J_;let n=new W_;this._LOOK(t.transition(i).target,null,iv.EMPTY,r[i],n,new cv,!1,!1),(r[i].length===0||r[i].contains(e.HIT_PRED))&&(r[i]=null)}return r}LOOK(e,t,n){let r=new J_,i=(n||=null)===null?null:lhe(e.atn,n);return this._LOOK(e,t,i,r,new W_,new cv,!0,!0),r}_LOOK(t,n,r,i,a,o,s,c){let l=new K_({state:t,alt:0,context:r},null);if(!a.has(l)){if(a.add(l),t===n){if(r===null)return void i.addOne(B_.EPSILON);if(r.isEmpty()&&c)return void i.addOne(B_.EOF)}if(t instanceof X_){if(r===null)return void i.addOne(B_.EPSILON);if(r.isEmpty()&&c)return void i.addOne(B_.EOF);if(r!==iv.EMPTY){let e=o.get(t.ruleIndex);try{o.clear(t.ruleIndex);for(let e=0;e<r.length;e++){let t=this.atn.states[r.getReturnState(e)];this._LOOK(t,n,r.getParent(e),i,a,o,s,c)}}finally{e&&o.set(t.ruleIndex)}return}}for(let l=0;l<t.transitions.length;l++){let u=t.transitions[l];if(u.constructor===Q_){if(o.get(u.target.ruleIndex))continue;let e=ov.create(r,u.followState.stateNumber);try{o.set(u.target.ruleIndex),this._LOOK(u.target,n,e,i,a,o,s,c)}finally{o.clear(u.target.ruleIndex)}}else if(u instanceof rhe)s?this._LOOK(u.target,n,r,i,a,o,s,c):i.addOne(e.HIT_PRED);else if(u.isEpsilon)this._LOOK(u.target,n,r,i,a,o,s,c);else if(u.constructor===nhe)i.addRange(B_.MIN_USER_TOKEN_TYPE,this.atn.maxTokenType);else{let e=u.label;e!==null&&(u instanceof the&&(e=e.complement(B_.MIN_USER_TOKEN_TYPE,this.atn.maxTokenType)),i.addSet(e))}}}}};lv.HIT_PRED=B_.INVALID_TYPE;var uv=class{constructor(e,t){this.grammarType=e,this.maxTokenType=t,this.states=[],this.decisionToState=[],this.ruleToStartState=[],this.ruleToStopState=null,this.modeNameToStartState={},this.ruleToTokenType=null,this.lexerActions=null,this.modeToStartState=[]}nextTokensInContext(e,t){return new lv(this).LOOK(e,null,t)}nextTokensNoContext(e){return e.nextTokenWithinRule!==null||(e.nextTokenWithinRule=this.nextTokensInContext(e,null),e.nextTokenWithinRule.readOnly=!0),e.nextTokenWithinRule}nextTokens(e,t){return t===void 0?this.nextTokensNoContext(e):this.nextTokensInContext(e,t)}addState(e){e!==null&&(e.atn=this,e.stateNumber=this.states.length),this.states.push(e)}removeState(e){this.states[e.stateNumber]=null}defineDecisionState(e){return this.decisionToState.push(e),e.decision=this.decisionToState.length-1,e.decision}getDecisionState(e){return this.decisionToState.length===0?null:this.decisionToState[e]}getExpectedTokens(e,t){if(e<0||e>=this.states.length)throw`Invalid state number.`;let n=this.states[e],r=this.nextTokens(n);if(!r.contains(B_.EPSILON))return r;let i=new J_;for(i.addSet(r),i.removeOne(B_.EPSILON);t!==null&&t.invokingState>=0&&r.contains(B_.EPSILON);){let e=this.states[t.invokingState].transitions[0];r=this.nextTokens(e.followState),i.addSet(r),i.removeOne(B_.EPSILON),t=t.parentCtx}return r.contains(B_.EPSILON)&&i.addOne(B_.EOF),i}};uv.INVALID_ALT_NUMBER=0;var fhe=class extends Y_{constructor(){super(),this.stateType=Y_.BASIC}},dv=class extends Y_{constructor(){return super(),this.decision=-1,this.nonGreedy=!1,this}},fv=class extends dv{constructor(){return super(),this.endState=null,this}},phe=class extends Y_{constructor(){return super(),this.stateType=Y_.BLOCK_END,this.startState=null,this}},pv=class extends Y_{constructor(){return super(),this.stateType=Y_.LOOP_END,this.loopBackState=null,this}},mhe=class extends Y_{constructor(){return super(),this.stateType=Y_.RULE_START,this.stopState=null,this.isPrecedenceRule=!1,this}},hhe=class extends dv{constructor(){return super(),this.stateType=Y_.TOKEN_START,this}},ghe=class extends dv{constructor(){return super(),this.stateType=Y_.PLUS_LOOP_BACK,this}},_he=class extends Y_{constructor(){return super(),this.stateType=Y_.STAR_LOOP_BACK,this}},mv=class extends dv{constructor(){return super(),this.stateType=Y_.STAR_LOOP_ENTRY,this.loopBackState=null,this.isPrecedenceDecision=null,this}},vhe=class extends fv{constructor(){return super(),this.stateType=Y_.PLUS_BLOCK_START,this.loopBackState=null,this}},yhe=class extends fv{constructor(){return super(),this.stateType=Y_.STAR_BLOCK_START,this}},bhe=class extends fv{constructor(){return super(),this.stateType=Y_.BLOCK_START,this}},xhe=class extends Z_{constructor(e,t){super(e),this.label_=t,this.label=this.makeLabel(),this.serializationType=Z_.ATOM}makeLabel(){let e=new J_;return e.addOne(this.label_),e}matches(e,t,n){return this.label_===e}toString(){return this.label_}},She=class extends Z_{constructor(e,t,n){super(e),this.serializationType=Z_.RANGE,this.start=t,this.stop=n,this.label=this.makeLabel()}makeLabel(){let e=new J_;return e.addRange(this.start,this.stop),e}matches(e,t,n){return e>=this.start&&e<=this.stop}toString(){return`'`+String.fromCharCode(this.start)+`'..'`+String.fromCharCode(this.stop)+`'`}},Che=class extends Z_{constructor(e,t,n,r){super(e),this.serializationType=Z_.ACTION,this.ruleIndex=t,this.actionIndex=n===void 0?-1:n,this.isCtxDependent=r!==void 0&&r,this.isEpsilon=!0}matches(e,t,n){return!1}toString(){return`action_`+this.ruleIndex+`:`+this.actionIndex}},hv=class extends Z_{constructor(e,t){super(e),this.serializationType=Z_.EPSILON,this.isEpsilon=!0,this.outermostPrecedenceReturn=t}matches(e,t,n){return!1}toString(){return`epsilon`}},whe=class e extends G_{constructor(e,t,n){super(),this.ruleIndex=e===void 0?-1:e,this.predIndex=t===void 0?-1:t,this.isCtxDependent=n!==void 0&&n}evaluate(e,t){let n=this.isCtxDependent?t:null;return e.sempred(n,this.ruleIndex,this.predIndex)}updateHashCode(e){e.update(this.ruleIndex,this.predIndex,this.isCtxDependent)}equals(t){return this===t||t instanceof e&&this.ruleIndex===t.ruleIndex&&this.predIndex===t.predIndex&&this.isCtxDependent===t.isCtxDependent}toString(){return`{`+this.ruleIndex+`:`+this.predIndex+`}?`}};G_.NONE=new whe;var The=class extends rhe{constructor(e,t,n,r){super(e),this.serializationType=Z_.PREDICATE,this.ruleIndex=t,this.predIndex=n,this.isCtxDependent=r,this.isEpsilon=!0}matches(e,t,n){return!1}getPredicate(){return new whe(this.ruleIndex,this.predIndex,this.isCtxDependent)}toString(){return`pred_`+this.ruleIndex+`:`+this.predIndex}},Ehe=class e extends G_{constructor(e){super(),this.precedence=e===void 0?0:e}evaluate(e,t){return e.precpred(t,this.precedence)}evalPrecedence(e,t){return e.precpred(t,this.precedence)?G_.NONE:null}compareTo(e){return this.precedence-e.precedence}updateHashCode(e){e.update(this.precedence)}equals(t){return this===t||t instanceof e&&this.precedence===t.precedence}toString(){return`{`+this.precedence+`>=prec}?`}};G_.PrecedencePredicate=Ehe;var Dhe=class extends rhe{constructor(e,t){super(e),this.serializationType=Z_.PRECEDENCE,this.precedence=t,this.isEpsilon=!0}matches(e,t,n){return!1}getPredicate(){return new Ehe(this.precedence)}toString(){return this.precedence+` >= _p`}},gv=class{constructor(e){e===void 0&&(e=null),this.readOnly=!1,this.verifyATN=e===null||e.verifyATN,this.generateRuleBypassTransitions=e!==null&&e.generateRuleBypassTransitions}};gv.defaultOptions=new gv,gv.defaultOptions.readOnly=!0;var _v=class{constructor(e){this.actionType=e,this.isPositionDependent=!1}hashCode(){let e=new H_;return this.updateHashCode(e),e.finish()}updateHashCode(e){e.update(this.actionType)}equals(e){return this===e}},Ohe=class extends _v{constructor(){super(6)}execute(e){e.skip()}toString(){return`skip`}};Ohe.INSTANCE=new Ohe;var khe=class e extends _v{constructor(e){super(0),this.channel=e}execute(e){e._channel=this.channel}updateHashCode(e){e.update(this.actionType,this.channel)}equals(t){return this===t||t instanceof e&&this.channel===t.channel}toString(){return`channel(`+this.channel+`)`}},Ahe=class e extends _v{constructor(e,t){super(1),this.ruleIndex=e,this.actionIndex=t,this.isPositionDependent=!0}execute(e){e.action(null,this.ruleIndex,this.actionIndex)}updateHashCode(e){e.update(this.actionType,this.ruleIndex,this.actionIndex)}equals(t){return this===t||t instanceof e&&this.ruleIndex===t.ruleIndex&&this.actionIndex===t.actionIndex}},jhe=class extends _v{constructor(){super(3)}execute(e){e.more()}toString(){return`more`}};jhe.INSTANCE=new jhe;var Mhe=class e extends _v{constructor(e){super(7),this.type=e}execute(e){e.type=this.type}updateHashCode(e){e.update(this.actionType,this.type)}equals(t){return this===t||t instanceof e&&this.type===t.type}toString(){return`type(`+this.type+`)`}},Nhe=class e extends _v{constructor(e){super(5),this.mode=e}execute(e){e.pushMode(this.mode)}updateHashCode(e){e.update(this.actionType,this.mode)}equals(t){return this===t||t instanceof e&&this.mode===t.mode}toString(){return`pushMode(`+this.mode+`)`}},Phe=class extends _v{constructor(){super(4)}execute(e){e.popMode()}toString(){return`popMode`}};Phe.INSTANCE=new Phe;var Fhe=class e extends _v{constructor(e){super(2),this.mode=e}execute(e){e.setMode(this.mode)}updateHashCode(e){e.update(this.actionType,this.mode)}equals(t){return this===t||t instanceof e&&this.mode===t.mode}toString(){return`mode(`+this.mode+`)`}};function vv(e,t){let n=[];return n[e-1]=t,n.map((function(e){return t}))}var Ihe=class{constructor(e){e??=gv.defaultOptions,this.deserializationOptions=e,this.stateFactories=null,this.actionFactories=null}deserialize(e){let t=this.reset(e);this.checkVersion(t),t&&this.skipUUID();let n=this.readATN();this.readStates(n,t),this.readRules(n,t),this.readModes(n);let r=[];return this.readSets(n,r,this.readInt.bind(this)),t&&this.readSets(n,r,this.readInt32.bind(this)),this.readEdges(n,r),this.readDecisions(n),this.readLexerActions(n,t),this.markPrecedenceDecisions(n),this.verifyATN(n),this.deserializationOptions.generateRuleBypassTransitions&&n.grammarType===1&&(this.generateRuleBypassTransitions(n),this.verifyATN(n)),n}reset(e){if((e.charCodeAt?e.charCodeAt(0):e[0])===3){let t=e.split(``).map(function(e){let t=e.charCodeAt(0);return t>1?t-2:t+65534});return t[0]=e.charCodeAt(0),this.data=t,this.pos=0,!0}return this.data=e,this.pos=0,!1}skipUUID(){let e=0;for(;e++<8;)this.readInt()}checkVersion(e){let t=this.readInt();if(!e&&t!==4)throw`Could not deserialize ATN with version `+t+` (expected 4).`}readATN(){return new uv(this.readInt(),this.readInt())}readStates(e,t){let n,r,i,a=[],o=[],s=this.readInt();for(let n=0;n<s;n++){let n=this.readInt();if(n===Y_.INVALID_TYPE){e.addState(null);continue}let r=this.readInt();t&&r===65535&&(r=-1);let i=this.stateFactory(n,r);if(n===Y_.LOOP_END){let e=this.readInt();a.push([i,e])}else if(i instanceof fv){let e=this.readInt();o.push([i,e])}e.addState(i)}for(n=0;n<a.length;n++)r=a[n],r[0].loopBackState=e.states[r[1]];for(n=0;n<o.length;n++)r=o[n],r[0].endState=e.states[r[1]];let c=this.readInt();for(n=0;n<c;n++)i=this.readInt(),e.states[i].nonGreedy=!0;let l=this.readInt();for(n=0;n<l;n++)i=this.readInt(),e.states[i].isPrecedenceRule=!0}readRules(e,t){let n,r=this.readInt();for(e.grammarType===0&&(e.ruleToTokenType=vv(r,0)),e.ruleToStartState=vv(r,0),n=0;n<r;n++){let r=this.readInt();if(e.ruleToStartState[n]=e.states[r],e.grammarType===0){let r=this.readInt();t&&r===65535&&(r=B_.EOF),e.ruleToTokenType[n]=r}}for(e.ruleToStopState=vv(r,0),n=0;n<e.states.length;n++){let t=e.states[n];t instanceof X_&&(e.ruleToStopState[t.ruleIndex]=t,e.ruleToStartState[t.ruleIndex].stopState=t)}}readModes(e){let t=this.readInt();for(let n=0;n<t;n++){let t=this.readInt();e.modeToStartState.push(e.states[t])}}readSets(e,t,n){let r=this.readInt();for(let e=0;e<r;e++){let e=new J_;t.push(e);let r=this.readInt();this.readInt()!==0&&e.addOne(-1);for(let t=0;t<r;t++){let t=n(),r=n();e.addRange(t,r)}}}readEdges(e,t){let n,r,i,a,o,s=this.readInt();for(n=0;n<s;n++){let n=this.readInt(),r=this.readInt(),i=this.readInt(),o=this.readInt(),s=this.readInt(),c=this.readInt();a=this.edgeFactory(e,i,n,r,o,s,c,t),e.states[n].addTransition(a)}for(n=0;n<e.states.length;n++)for(i=e.states[n],r=0;r<i.transitions.length;r++){let t=i.transitions[r];if(!(t instanceof Q_))continue;let n=-1;e.ruleToStartState[t.target.ruleIndex].isPrecedenceRule&&t.precedence===0&&(n=t.target.ruleIndex),a=new hv(t.followState,n),e.ruleToStopState[t.target.ruleIndex].addTransition(a)}for(n=0;n<e.states.length;n++){if(i=e.states[n],i instanceof fv){if(i.endState===null||i.endState.startState!==null)throw`IllegalState`;i.endState.startState=i}if(i instanceof ghe)for(r=0;r<i.transitions.length;r++)o=i.transitions[r].target,o instanceof vhe&&(o.loopBackState=i);else if(i instanceof _he)for(r=0;r<i.transitions.length;r++)o=i.transitions[r].target,o instanceof mv&&(o.loopBackState=i)}}readDecisions(e){let t=this.readInt();for(let n=0;n<t;n++){let t=this.readInt(),r=e.states[t];e.decisionToState.push(r),r.decision=n}}readLexerActions(e,t){if(e.grammarType===0){let n=this.readInt();e.lexerActions=vv(n,null);for(let r=0;r<n;r++){let n=this.readInt(),i=this.readInt();t&&i===65535&&(i=-1);let a=this.readInt();t&&a===65535&&(a=-1),e.lexerActions[r]=this.lexerActionFactory(n,i,a)}}}generateRuleBypassTransitions(e){let t,n=e.ruleToStartState.length;for(t=0;t<n;t++)e.ruleToTokenType[t]=e.maxTokenType+t+1;for(t=0;t<n;t++)this.generateRuleBypassTransition(e,t)}generateRuleBypassTransition(e,t){let n,r,i=new bhe;i.ruleIndex=t,e.addState(i);let a=new phe;a.ruleIndex=t,e.addState(a),i.endState=a,e.defineDecisionState(i),a.startState=i;let o=null,s=null;if(e.ruleToStartState[t].isPrecedenceRule){for(s=null,n=0;n<e.states.length;n++)if(r=e.states[n],this.stateIsEndStateFor(r,t)){s=r,o=r.loopBackState.transitions[0];break}if(o===null)throw`Couldn't identify final state of the precedence rule prefix section.`}else s=e.ruleToStopState[t];for(n=0;n<e.states.length;n++){r=e.states[n];for(let e=0;e<r.transitions.length;e++){let t=r.transitions[e];t!==o&&t.target===s&&(t.target=a)}}let c=e.ruleToStartState[t],l=c.transitions.length;for(;l>0;)i.addTransition(c.transitions[l-1]),c.transitions=c.transitions.slice(-1);e.ruleToStartState[t].addTransition(new hv(i)),a.addTransition(new hv(s));let u=new fhe;e.addState(u),u.addTransition(new xhe(a,e.ruleToTokenType[t])),i.addTransition(new hv(u))}stateIsEndStateFor(e,t){if(e.ruleIndex!==t||!(e instanceof mv))return null;let n=e.transitions[e.transitions.length-1].target;return n instanceof pv&&n.epsilonOnlyTransitions&&n.transitions[0].target instanceof X_?e:null}markPrecedenceDecisions(e){for(let t=0;t<e.states.length;t++){let n=e.states[t];if(n instanceof mv&&e.ruleToStartState[n.ruleIndex].isPrecedenceRule){let e=n.transitions[n.transitions.length-1].target;e instanceof pv&&e.epsilonOnlyTransitions&&e.transitions[0].target instanceof X_&&(n.isPrecedenceDecision=!0)}}}verifyATN(e){if(this.deserializationOptions.verifyATN)for(let t=0;t<e.states.length;t++){let n=e.states[t];if(n!==null)if(this.checkCondition(n.epsilonOnlyTransitions||n.transitions.length<=1),n instanceof vhe)this.checkCondition(n.loopBackState!==null);else if(n instanceof mv)if(this.checkCondition(n.loopBackState!==null),this.checkCondition(n.transitions.length===2),n.transitions[0].target instanceof yhe)this.checkCondition(n.transitions[1].target instanceof pv),this.checkCondition(!n.nonGreedy);else{if(!(n.transitions[0].target instanceof pv))throw`IllegalState`;this.checkCondition(n.transitions[1].target instanceof yhe),this.checkCondition(n.nonGreedy)}else n instanceof _he?(this.checkCondition(n.transitions.length===1),this.checkCondition(n.transitions[0].target instanceof mv)):n instanceof pv?this.checkCondition(n.loopBackState!==null):n instanceof mhe?this.checkCondition(n.stopState!==null):n instanceof fv?this.checkCondition(n.endState!==null):n instanceof phe?this.checkCondition(n.startState!==null):n instanceof dv?this.checkCondition(n.transitions.length<=1||n.decision>=0):this.checkCondition(n.transitions.length<=1||n instanceof X_)}}checkCondition(e,t){if(!e)throw t??=`IllegalState`,t}readInt(){return this.data[this.pos++]}readInt32(){return this.readInt()|this.readInt()<<16}edgeFactory(e,t,n,r,i,a,o,s){let c=e.states[r];switch(t){case Z_.EPSILON:return new hv(c);case Z_.RANGE:return new She(c,o===0?i:B_.EOF,a);case Z_.RULE:return new Q_(e.states[i],a,o,c);case Z_.PREDICATE:return new The(c,i,a,o!==0);case Z_.PRECEDENCE:return new Dhe(c,i);case Z_.ATOM:return new xhe(c,o===0?i:B_.EOF);case Z_.ACTION:return new Che(c,i,a,o!==0);case Z_.SET:return new ehe(c,s[i]);case Z_.NOT_SET:return new the(c,s[i]);case Z_.WILDCARD:return new nhe(c);default:throw`The specified transition type: `+t+` is not valid.`}}stateFactory(e,t){if(this.stateFactories===null){let e=[];e[Y_.INVALID_TYPE]=null,e[Y_.BASIC]=()=>new fhe,e[Y_.RULE_START]=()=>new mhe,e[Y_.BLOCK_START]=()=>new bhe,e[Y_.PLUS_BLOCK_START]=()=>new vhe,e[Y_.STAR_BLOCK_START]=()=>new yhe,e[Y_.TOKEN_START]=()=>new hhe,e[Y_.RULE_STOP]=()=>new X_,e[Y_.BLOCK_END]=()=>new phe,e[Y_.STAR_LOOP_BACK]=()=>new _he,e[Y_.STAR_LOOP_ENTRY]=()=>new mv,e[Y_.PLUS_LOOP_BACK]=()=>new ghe,e[Y_.LOOP_END]=()=>new pv,this.stateFactories=e}if(e>this.stateFactories.length||this.stateFactories[e]===null)throw`The specified state type `+e+` is not valid.`;{let n=this.stateFactories[e]();if(n!==null)return n.ruleIndex=t,n}}lexerActionFactory(e,t,n){if(this.actionFactories===null){let e=[];e[0]=(e,t)=>new khe(e),e[1]=(e,t)=>new Ahe(e,t),e[2]=(e,t)=>new Fhe(e),e[3]=(e,t)=>jhe.INSTANCE,e[4]=(e,t)=>Phe.INSTANCE,e[5]=(e,t)=>new Nhe(e),e[6]=(e,t)=>Ohe.INSTANCE,e[7]=(e,t)=>new Mhe(e),this.actionFactories=e}if(e>this.actionFactories.length||this.actionFactories[e]===null)throw`The specified lexer action type `+e+` is not valid.`;return this.actionFactories[e](t,n)}},yv=class{syntaxError(e,t,n,r,i,a){}reportAmbiguity(e,t,n,r,i,a,o){}reportAttemptingFullContext(e,t,n,r,i,a){}reportContextSensitivity(e,t,n,r,i,a){}},Lhe=class extends yv{constructor(){super()}syntaxError(e,t,n,r,i,a){console.error(`line `+n+`:`+r+` `+i)}};Lhe.INSTANCE=new Lhe;var Rhe=class extends yv{constructor(e){if(super(),e===null)throw`delegates`;return this.delegates=e,this}syntaxError(e,t,n,r,i,a){this.delegates.map((o=>o.syntaxError(e,t,n,r,i,a)))}reportAmbiguity(e,t,n,r,i,a,o){this.delegates.map((s=>s.reportAmbiguity(e,t,n,r,i,a,o)))}reportAttemptingFullContext(e,t,n,r,i,a){this.delegates.map((o=>o.reportAttemptingFullContext(e,t,n,r,i,a)))}reportContextSensitivity(e,t,n,r,i,a){this.delegates.map((o=>o.reportContextSensitivity(e,t,n,r,i,a)))}},bv=class{constructor(){this._listeners=[Lhe.INSTANCE],this._interp=null,this._stateNumber=-1}checkVersion(e){let t=`4.13.2`;t!==e&&console.log(`ANTLR runtime and generated code versions disagree: `+t+`!=`+e)}addErrorListener(e){this._listeners.push(e)}removeErrorListeners(){this._listeners=[]}getLiteralNames(){return Object.getPrototypeOf(this).constructor.literalNames||[]}getSymbolicNames(){return Object.getPrototypeOf(this).constructor.symbolicNames||[]}getTokenNames(){if(!this.tokenNames){let e=this.getLiteralNames(),t=this.getSymbolicNames(),n=e.length>t.length?e.length:t.length;this.tokenNames=[];for(let r=0;r<n;r++)this.tokenNames[r]=e[r]||t[r]||`<INVALID`}return this.tokenNames}getTokenTypeMap(){let e=this.getTokenNames();if(e===null)throw`The current recognizer does not provide a list of token names.`;let t=this.tokenTypeMapCache[e];return t===void 0&&(t=e.reduce((function(e,t,n){e[t]=n})),t.EOF=B_.EOF,this.tokenTypeMapCache[e]=t),t}getRuleIndexMap(){let e=this.ruleNames;if(e===null)throw`The current recognizer does not provide a list of rule names.`;let t=this.ruleIndexMapCache[e];return t===void 0&&(t=e.reduce((function(e,t,n){e[t]=n})),this.ruleIndexMapCache[e]=t),t}getTokenType(e){let t=this.getTokenTypeMap()[e];return t===void 0?B_.INVALID_TYPE:t}getErrorHeader(e){return`line `+e.getOffendingToken().line+`:`+e.getOffendingToken().column}getTokenErrorDisplay(e){if(e===null)return`<no token>`;let t=e.text;return t===null&&(t=e.type===B_.EOF?`<EOF>`:`<`+e.type+`>`),t=t.replace(`
67
67
  `,`\\n`).replace(`\r`,`\\r`).replace(` `,`\\t`),`'`+t+`'`}getErrorListenerDispatch(){return console.warn(`Calling deprecated method in Recognizer class: getErrorListenerDispatch()`),this.getErrorListener()}getErrorListener(){return new Rhe(this._listeners)}sempred(e,t,n){return!0}precpred(e,t){return!0}get atn(){return this._interp.atn}get state(){return this._stateNumber}set state(e){this._stateNumber=e}};bv.tokenTypeMapCache={},bv.ruleIndexMapCache={};var xv=class e extends B_{constructor(t,n,r,i,a){super(),this.source=t===void 0?e.EMPTY_SOURCE:t,this.type=n===void 0?null:n,this.channel=r===void 0?B_.DEFAULT_CHANNEL:r,this.start=i===void 0?-1:i,this.stop=a===void 0?-1:a,this.tokenIndex=-1,this.source[0]===null?this.column=-1:(this.line=t[0].line,this.column=t[0].column)}clone(){let t=new e(this.source,this.type,this.channel,this.start,this.stop);return t.tokenIndex=this.tokenIndex,t.line=this.line,t.column=this.column,t.text=this.text,t}cloneWithType(t){let n=new e(this.source,t,this.channel,this.start,this.stop);return n.tokenIndex=this.tokenIndex,n.line=this.line,n.column=this.column,t===B_.EOF&&(n.text=``),n}toString(){let e=this.text;return e=e===null?`<no text>`:e.replace(/\n/g,`\\n`).replace(/\r/g,`\\r`).replace(/\t/g,`\\t`),`[@`+this.tokenIndex+`,`+this.start+`:`+this.stop+`='`+e+`',<`+this.type+`>`+(this.channel>0?`,channel=`+this.channel:``)+`,`+this.line+`:`+this.column+`]`}get text(){if(this._text!==null)return this._text;let e=this.getInputStream();if(e===null)return null;let t=e.size;return this.start<t&&this.stop<t?e.getText(this.start,this.stop):`<EOF>`}set text(e){this._text=e}};xv.EMPTY_SOURCE=[null,null];var zhe=class{},Bhe=class extends zhe{constructor(e){super(),this.copyText=e!==void 0&&e}create(e,t,n,r,i,a,o,s){let c=new xv(e,t,r,i,a);return c.line=o,c.column=s,n===null?this.copyText&&e[1]!==null&&(c.text=e[1].getText(i,a)):c.text=n,c}createThin(e,t){let n=new xv(null,e);return n.text=t,n}};Bhe.DEFAULT=new Bhe;var Sv=class e extends Error{constructor(t){super(t.message),Error.captureStackTrace&&Error.captureStackTrace(this,e),this.message=t.message,this.recognizer=t.recognizer,this.input=t.input,this.ctx=t.ctx,this.offendingToken=null,this.offendingState=-1,this.recognizer!==null&&(this.offendingState=this.recognizer.state)}getExpectedTokens(){return this.recognizer===null?null:this.recognizer.atn.getExpectedTokens(this.offendingState,this.ctx)}toString(){return this.message}},Vhe=class extends Sv{constructor(e,t,n,r){super({message:``,recognizer:e,input:t,ctx:null}),this.startIndex=n,this.deadEndConfigs=r}toString(){let e=``;return this.startIndex>=0&&this.startIndex<this.input.size&&(e=this.input.getText(new q_(this.startIndex,this.startIndex))),`LexerNoViableAltException`+e}},Cv=class e extends bv{constructor(t){super(),this._input=t,this._factory=Bhe.DEFAULT,this._tokenFactorySourcePair=[this,t],this._interp=null,this._token=null,this._tokenStartCharIndex=-1,this._tokenStartLine=-1,this._tokenStartColumn=-1,this._hitEOF=!1,this._channel=B_.DEFAULT_CHANNEL,this._type=B_.INVALID_TYPE,this._modeStack=[],this._mode=e.DEFAULT_MODE,this._text=null}reset(){this._input!==null&&this._input.seek(0),this._token=null,this._type=B_.INVALID_TYPE,this._channel=B_.DEFAULT_CHANNEL,this._tokenStartCharIndex=-1,this._tokenStartColumn=-1,this._tokenStartLine=-1,this._text=null,this._hitEOF=!1,this._mode=e.DEFAULT_MODE,this._modeStack=[],this._interp.reset()}nextToken(){if(this._input===null)throw`nextToken requires a non-null input stream.`;let t=this._input.mark();try{for(;;){if(this._hitEOF)return this.emitEOF(),this._token;this._token=null,this._channel=B_.DEFAULT_CHANNEL,this._tokenStartCharIndex=this._input.index,this._tokenStartColumn=this._interp.column,this._tokenStartLine=this._interp.line,this._text=null;let t=!1;for(;;){this._type=B_.INVALID_TYPE;let n=e.SKIP;try{n=this._interp.match(this._input,this._mode)}catch(e){if(!(e instanceof Sv))throw console.log(e.stack),e;this.notifyListeners(e),this.recover(e)}if(this._input.LA(1)===B_.EOF&&(this._hitEOF=!0),this._type===B_.INVALID_TYPE&&(this._type=n),this._type===e.SKIP){t=!0;break}if(this._type!==e.MORE)break}if(!t)return this._token===null&&this.emit(),this._token}}finally{this._input.release(t)}}skip(){this._type=e.SKIP}more(){this._type=e.MORE}mode(e){console.warn(`Calling deprecated method in Lexer class: mode(...)`),this.setMode(e)}setMode(e){this._mode=e}getMode(){return this._mode}getModeStack(){return this._modeStack}pushMode(e){this._interp.debug&&console.log(`pushMode `+e),this._modeStack.push(this._mode),this.setMode(e)}popMode(){if(this._modeStack.length===0)throw`Empty Stack`;return this._interp.debug&&console.log(`popMode back to `+this._modeStack.slice(0,-1)),this.setMode(this._modeStack.pop()),this._mode}emitToken(e){this._token=e}emit(){let e=this._factory.create(this._tokenFactorySourcePair,this._type,this._text,this._channel,this._tokenStartCharIndex,this.getCharIndex()-1,this._tokenStartLine,this._tokenStartColumn);return this.emitToken(e),e}emitEOF(){let e=this.column,t=this.line,n=this._factory.create(this._tokenFactorySourcePair,B_.EOF,null,B_.DEFAULT_CHANNEL,this._input.index,this._input.index-1,t,e);return this.emitToken(n),n}getCharIndex(){return this._input.index}getAllTokens(){let e=[],t=this.nextToken();for(;t.type!==B_.EOF;)e.push(t),t=this.nextToken();return e}notifyListeners(e){let t=this._tokenStartCharIndex,n=this._input.index,r=this._input.getText(t,n),i=`token recognition error at: '`+this.getErrorDisplay(r)+`'`;this.getErrorListener().syntaxError(this,null,this._tokenStartLine,this._tokenStartColumn,i,e)}getErrorDisplay(e){let t=[];for(let n=0;n<e.length;n++)t.push(e[n]);return t.join(``)}getErrorDisplayForChar(e){return e.charCodeAt(0)===B_.EOF?`<EOF>`:e===`
68
68
  `?`\\n`:e===` `?`\\t`:e===`\r`?`\\r`:e}getCharErrorDisplay(e){return`'`+this.getErrorDisplayForChar(e)+`'`}recover(e){this._input.LA(1)!==B_.EOF&&(e instanceof Vhe?this._interp.consume(this._input):this._input.consume())}get inputStream(){return this._input}set inputStream(e){this._input=null,this._tokenFactorySourcePair=[this,this._input],this.reset(),this._input=e,this._tokenFactorySourcePair=[this,this._input]}get sourceName(){return this._input.sourceName}get type(){return this._type}set type(e){this._type=e}get line(){return this._interp.line}set line(e){this._interp.line=e}get column(){return this._interp.column}set column(e){this._interp.column=e}get text(){return this._text===null?this._interp.getText(this._input):this._text}set text(e){this._text=e}};function Hhe(e){return e.hashCodeForConfigSet()}function Uhe(e,t){return e===t||e!==null&&t!==null&&e.equalsForConfigSet(t)}Cv.DEFAULT_MODE=0,Cv.MORE=-2,Cv.SKIP=-3,Cv.DEFAULT_TOKEN_CHANNEL=B_.DEFAULT_CHANNEL,Cv.HIDDEN=B_.HIDDEN_CHANNEL,Cv.MIN_CHAR_VALUE=0,Cv.MAX_CHAR_VALUE=1114111;var wv=class e{constructor(e){this.configLookup=new W_(Hhe,Uhe),this.fullCtx=e===void 0||e,this.readOnly=!1,this.configs=[],this.uniqueAlt=0,this.conflictingAlts=null,this.hasSemanticContext=!1,this.dipsIntoOuterContext=!1,this.cachedHashCode=-1}add(e,t){if(t===void 0&&(t=null),this.readOnly)throw`This set is readonly`;e.semanticContext!==G_.NONE&&(this.hasSemanticContext=!0),e.reachesIntoOuterContext>0&&(this.dipsIntoOuterContext=!0);let n=this.configLookup.getOrAdd(e);if(n===e)return this.cachedHashCode=-1,this.configs.push(e),!0;let r=!this.fullCtx,i=dhe(n.context,e.context,r,t);return n.reachesIntoOuterContext=Math.max(n.reachesIntoOuterContext,e.reachesIntoOuterContext),e.precedenceFilterSuppressed&&(n.precedenceFilterSuppressed=!0),n.context=i,!0}getStates(){let e=new W_;for(let t=0;t<this.configs.length;t++)e.add(this.configs[t].state);return e}getPredicates(){let e=[];for(let t=0;t<this.configs.length;t++){let n=this.configs[t].semanticContext;n!==G_.NONE&&e.push(n.semanticContext)}return e}optimizeConfigs(e){if(this.readOnly)throw`This set is readonly`;if(this.configLookup.length!==0)for(let t=0;t<this.configs.length;t++){let n=this.configs[t];n.context=e.getCachedContext(n.context)}}addAll(e){for(let t=0;t<e.length;t++)this.add(e[t]);return!1}equals(t){return this===t||t instanceof e&&V_(this.configs,t.configs)&&this.fullCtx===t.fullCtx&&this.uniqueAlt===t.uniqueAlt&&this.conflictingAlts===t.conflictingAlts&&this.hasSemanticContext===t.hasSemanticContext&&this.dipsIntoOuterContext===t.dipsIntoOuterContext}hashCode(){let e=new H_;return e.update(this.configs),e.finish()}updateHashCode(e){this.readOnly?(this.cachedHashCode===-1&&(this.cachedHashCode=this.hashCode()),e.update(this.cachedHashCode)):e.update(this.hashCode())}isEmpty(){return this.configs.length===0}contains(e){if(this.configLookup===null)throw`This method is not implemented for readonly sets.`;return this.configLookup.contains(e)}containsFast(e){if(this.configLookup===null)throw`This method is not implemented for readonly sets.`;return this.configLookup.containsFast(e)}clear(){if(this.readOnly)throw`This set is readonly`;this.configs=[],this.cachedHashCode=-1,this.configLookup=new W_}setReadonly(e){this.readOnly=e,e&&(this.configLookup=null)}toString(){return U_(this.configs)+(this.hasSemanticContext?`,hasSemanticContext=`+this.hasSemanticContext:``)+(this.uniqueAlt===uv.INVALID_ALT_NUMBER?``:`,uniqueAlt=`+this.uniqueAlt)+(this.conflictingAlts===null?``:`,conflictingAlts=`+this.conflictingAlts)+(this.dipsIntoOuterContext?`,dipsIntoOuterContext`:``)}get items(){return this.configs}get length(){return this.configs.length}},Tv=class e{constructor(e,t){return e===null&&(e=-1),t===null&&(t=new wv),this.stateNumber=e,this.configs=t,this.edges=null,this.isAcceptState=!1,this.prediction=0,this.lexerActionExecutor=null,this.requiresFullContext=!1,this.predicates=null,this}getAltSet(){let e=new W_;if(this.configs!==null)for(let t=0;t<this.configs.length;t++){let n=this.configs[t];e.add(n.alt)}return e.length===0?null:e}equals(t){return this===t||t instanceof e&&this.configs.equals(t.configs)}toString(){let e=this.stateNumber+`:`+this.configs;return this.isAcceptState&&(e+=`=>`,this.predicates===null?e+=this.prediction:e+=this.predicates),e}hashCode(){let e=new H_;return e.update(this.configs),e.finish()}},Ev=class{constructor(e,t){return this.atn=e,this.sharedContextCache=t,this}getCachedContext(e){if(this.sharedContextCache===null)return e;let t=new sv;return uhe(e,this.sharedContextCache,t)}};Ev.ERROR=new Tv(2147483647,new wv);var Whe=class extends wv{constructor(){super(),this.configLookup=new W_}},Dv=class e extends K_{constructor(t,n){return super(t,n),this.lexerActionExecutor=t.lexerActionExecutor||(n===null?null:n.lexerActionExecutor),this.passedThroughNonGreedyDecision=n!==null&&this.checkNonGreedyDecision(n,this.state),this.hashCodeForConfigSet=e.prototype.hashCode,this.equalsForConfigSet=e.prototype.equals,this}updateHashCode(e){e.update(this.state.stateNumber,this.alt,this.context,this.semanticContext,this.passedThroughNonGreedyDecision,this.lexerActionExecutor)}equals(t){return this===t||t instanceof e&&this.passedThroughNonGreedyDecision===t.passedThroughNonGreedyDecision&&(this.lexerActionExecutor?this.lexerActionExecutor.equals(t.lexerActionExecutor):!t.lexerActionExecutor)&&super.equals(t)}checkNonGreedyDecision(e,t){return e.passedThroughNonGreedyDecision||t instanceof dv&&t.nonGreedy}},Ghe=class e extends _v{constructor(e,t){super(t.actionType),this.offset=e,this.action=t,this.isPositionDependent=!0}execute(e){this.action.execute(e)}updateHashCode(e){e.update(this.actionType,this.offset,this.action)}equals(t){return this===t||t instanceof e&&this.offset===t.offset&&this.action===t.action}},Khe=class e{constructor(e){return this.lexerActions=e===null?[]:e,this.cachedHashCode=H_.hashStuff(e),this}fixOffsetBeforeMatch(t){let n=null;for(let e=0;e<this.lexerActions.length;e++)!this.lexerActions[e].isPositionDependent||this.lexerActions[e]instanceof Ghe||(n===null&&(n=this.lexerActions.concat([])),n[e]=new Ghe(t,this.lexerActions[e]));return n===null?this:new e(n)}execute(e,t,n){let r=!1,i=t.index;try{for(let a=0;a<this.lexerActions.length;a++){let o=this.lexerActions[a];if(o instanceof Ghe){let e=o.offset;t.seek(n+e),o=o.action,r=n+e!==i}else o.isPositionDependent&&(t.seek(i),r=!1);o.execute(e)}}finally{r&&t.seek(i)}}hashCode(){return this.cachedHashCode}updateHashCode(e){e.update(this.cachedHashCode)}equals(t){if(this===t)return!0;if(t instanceof e){if(this.cachedHashCode!=t.cachedHashCode||this.lexerActions.length!=t.lexerActions.length)return!1;{let e=this.lexerActions.length;for(let n=0;n<e;++n)if(!this.lexerActions[n].equals(t.lexerActions[n]))return!1;return!0}}return!1}static append(t,n){return t===null?new e([n]):new e(t.lexerActions.concat([n]))}};function qhe(e){e.index=-1,e.line=0,e.column=-1,e.dfaState=null}var Jhe=class{constructor(){qhe(this)}reset(){qhe(this)}},Ov=class e extends Ev{constructor(e,t,n,r){super(t,r),this.decisionToDFA=n,this.recog=e,this.startIndex=-1,this.line=1,this.column=0,this.mode=Cv.DEFAULT_MODE,this.prevAccept=new Jhe}copyState(e){this.column=e.column,this.line=e.line,this.mode=e.mode,this.startIndex=e.startIndex}match(e,t){this.mode=t;let n=e.mark();try{this.startIndex=e.index,this.prevAccept.reset();let n=this.decisionToDFA[t];return n.s0===null?this.matchATN(e):this.execATN(e,n.s0)}finally{e.release(n)}}reset(){this.prevAccept.reset(),this.startIndex=-1,this.line=1,this.column=0,this.mode=Cv.DEFAULT_MODE}matchATN(t){let n=this.atn.modeToStartState[this.mode];e.debug&&console.log(`matchATN mode `+this.mode+` start: `+n);let r=this.mode,i=this.computeStartState(t,n),a=i.hasSemanticContext;i.hasSemanticContext=!1;let o=this.addDFAState(i);a||(this.decisionToDFA[this.mode].s0=o);let s=this.execATN(t,o);return e.debug&&console.log(`DFA after matchATN: `+this.decisionToDFA[r].toLexerString()),s}execATN(t,n){e.debug&&console.log(`start state closure=`+n.configs),n.isAcceptState&&this.captureSimState(this.prevAccept,t,n);let r=t.LA(1),i=n;for(;;){e.debug&&console.log(`execATN loop starting closure: `+i.configs);let n=this.getExistingTargetState(i,r);if(n===null&&(n=this.computeTargetState(t,i,r)),n===Ev.ERROR||(r!==B_.EOF&&this.consume(t),n.isAcceptState&&(this.captureSimState(this.prevAccept,t,n),r===B_.EOF)))break;r=t.LA(1),i=n}return this.failOrAccept(this.prevAccept,t,i.configs,r)}getExistingTargetState(t,n){if(t.edges===null||n<e.MIN_DFA_EDGE||n>e.MAX_DFA_EDGE)return null;let r=t.edges[n-e.MIN_DFA_EDGE];return r===void 0&&(r=null),e.debug&&r!==null&&console.log(`reuse state `+t.stateNumber+` edge to `+r.stateNumber),r}computeTargetState(e,t,n){let r=new Whe;return this.getReachableConfigSet(e,t.configs,r,n),r.items.length===0?(r.hasSemanticContext||this.addDFAEdge(t,n,Ev.ERROR),Ev.ERROR):this.addDFAEdge(t,n,null,r)}failOrAccept(e,t,n,r){if(this.prevAccept.dfaState!==null){let n=e.dfaState.lexerActionExecutor;return this.accept(t,n,this.startIndex,e.index,e.line,e.column),e.dfaState.prediction}if(r===B_.EOF&&t.index===this.startIndex)return B_.EOF;throw new Vhe(this.recog,t,this.startIndex,n)}getReachableConfigSet(t,n,r,i){let a=uv.INVALID_ALT_NUMBER;for(let o=0;o<n.items.length;o++){let s=n.items[o],c=s.alt===a;if(!c||!s.passedThroughNonGreedyDecision){e.debug&&console.log(`testing %s at %s
@@ -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.5`,p$e=`6.3.0-alpha.5`;exports.CompilerError=K7,exports.ModelExporter=F_,exports.Parser=QQe,exports.VERSION=`6.3.0-alpha.5`,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.7`,p$e=`6.3.0-alpha.7`;exports.CompilerError=K7,exports.ModelExporter=F_,exports.Parser=QQe,exports.VERSION=`6.3.0-alpha.7`,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
@@ -11874,7 +11874,8 @@ var POSTGRES_BUILTIN_TYPES = /* @__PURE__ */ "SMALLINT.INTEGER.INT.BIGINT.DECIMA
11874
11874
  "",
11875
11875
  ...qY,
11876
11876
  "",
11877
- "COMMIT;"
11877
+ "COMMIT;",
11878
+ "SET CONSTRAINTS ALL IMMEDIATE;"
11878
11879
  ];
11879
11880
  return concat_default(KY.schemas, KY.enums, KY.tables, KY.indexes, KY.comments, KY.refs, JY).join("\n");
11880
11881
  }
@@ -12026,17 +12027,18 @@ var SqlServerExporter_default = class _ {
12026
12027
  indexes: [],
12027
12028
  comments: [],
12028
12029
  refs: []
12029
- }), GY = _.exportRecords(HY), KY = isEmpty_default(GY) ? [] : [
12030
- "-- Disable constraint checks for INSERT",
12031
- "EXEC sp_MSforeachtable \"ALTER TABLE ? NOCHECK CONSTRAINT all\";",
12032
- "GO",
12033
- "",
12034
- ...GY,
12035
- "",
12036
- "-- Re-enable constraint checks",
12037
- "EXEC sp_MSforeachtable \"ALTER TABLE ? WITH CHECK CHECK CONSTRAINT all\";",
12038
- "GO"
12039
- ];
12030
+ }), GY = _.exportRecords(HY), KY = isEmpty_default(GY) ? [] : (() => {
12031
+ let _ = [...new Set(Object.values(HY.records || {}).map((_) => _.schemaName ? `[${_.schemaName}].[${_.tableName}]` : `[${_.tableName}]`))];
12032
+ return [
12033
+ "-- Disable constraint checks for tables with data",
12034
+ ..._.map((_) => `ALTER TABLE ${_} NOCHECK CONSTRAINT ALL;\nGO`),
12035
+ "",
12036
+ ...GY,
12037
+ "",
12038
+ "-- Re-enable constraint checks",
12039
+ ..._.map((_) => `ALTER TABLE ${_} WITH CHECK CHECK CONSTRAINT ALL;\nGO`)
12040
+ ];
12041
+ })();
12040
12042
  return concat_default(WY.schemas, WY.enums, WY.tables, WY.indexes, WY.comments, WY.refs, KY).join("\n");
12041
12043
  }
12042
12044
  };
@@ -12245,7 +12247,8 @@ QUOTA UNLIMITED ON system;
12245
12247
  "",
12246
12248
  ...WY,
12247
12249
  "",
12248
- "COMMIT;"
12250
+ "COMMIT;",
12251
+ "SET CONSTRAINTS ALL IMMEDIATE;"
12249
12252
  ];
12250
12253
  return concat_default(UY.schemas, UY.tables, UY.indexes, UY.comments, UY.referenceGrants, UY.refs, GY).join("\n");
12251
12254
  }
@@ -1817576,5 +1817579,5 @@ function renameTable(_, HY, P) {
1817576
1817579
  let UY = new Compiler();
1817577
1817580
  return UY.setSource(P), UY.renameTable(_, HY);
1817578
1817581
  }
1817579
- const VERSION = "6.3.0-alpha.5";
1817582
+ const VERSION = "6.3.0-alpha.7";
1817580
1817583
  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.5",
4
+ "version": "6.3.0-alpha.7",
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": "a6f6eec49ffa2f32fa036fef65fad22e7c702527",
59
+ "gitHead": "3d1585945f0f43144c2235c504cf4883b40afcfc",
60
60
  "engines": {
61
61
  "node": ">=16"
62
62
  }