@dbml/core 6.3.0-alpha.6 → 6.3.0-alpha.8
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 +3 -3
- package/lib/index.mjs +3 -1
- package/package.json +2 -2
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,``,`SET CONSTRAINTS ALL IMMEDIATE;`,`COMMIT;`];return ac(o.schemas,o.enums,o.tables,o.indexes,o.comments,o.refs,c).join(`
|
|
43
43
|
`)}},ime=rme,ame=class{static export(e,t=!0){return t?JSON.stringify(e,null,2):JSON.stringify(e.export(),null,2)}},ome=ame;Yu();var sme=class e{static exportRecords(e){let t=Object.values(e.records||{});return Fu(t)?[]:t.map(e=>{let{schemaName:t,tableName:n,columns:r,values:i}=e,a=t?`[${t}].[${n}]`:`[${n}]`,o=r.length>0?`([${r.join(`], [`)}])`:``,s=e=>e.value===null?`NULL`:e.type===`expression`||rh(e.type)?e.value:ih(e.type)?String(e.value).toUpperCase()===`TRUE`?`1`:`0`:ah(e.type)||sh(e.type)?`'${e.value.replace(/'/g,`''`)}'`:oh(e.type)?`0x${e.value}`:`CAST('${e.value.replace(/'/g,`''`)}' AS ${e.type})`;return`INSERT INTO ${a} ${o}\nVALUES\n ${i.map(e=>`(${e.map(s).join(`, `)})`).join(`,
|
|
44
44
|
`)};\nGO`})}static getFieldLines(e,t){return t.tables[e].fieldIds.map(e=>{let n=t.fields[e],r=``;if(n.enumId){let e=t.enums[n.enumId];r=`[${n.name}] nvarchar(255) NOT NULL CHECK ([${n.name}] IN (`;let i=e.valueIds.map(e=>`'${t.enumValues[e].name}'`);r+=`${i.join(`, `)}))`}else r=`[${n.name}] ${n.type.type_name===`varchar`?`nvarchar(255)`:n.type.type_name}`;if(n.unique&&(r+=` UNIQUE`),n.pk&&(r+=` PRIMARY KEY`),n.not_null&&(r+=` NOT NULL`),n.increment&&(r+=` IDENTITY(1, 1)`),n.checkIds&&n.checkIds.length>0)if(n.checkIds.length===1){let e=t.checks[n.checkIds[0]];e.name&&(r+=` CONSTRAINT [${e.name}]`),r+=` CHECK (${e.expression})`}else{let e=n.checkIds.map(e=>`(${t.checks[e].expression})`);r+=` CHECK (${e.join(` AND `)})`}return n.dbdefault&&(n.dbdefault.type===`expression`?r+=` DEFAULT (${n.dbdefault.value})`:n.dbdefault.type===`string`?r+=` DEFAULT '${n.dbdefault.value}'`:r+=` DEFAULT (${n.dbdefault.value})`),r})}static getCompositePKs(e,t){let n=t.tables[e];return(n.indexIds?n.indexIds.filter(e=>t.indexes[e].pk):[]).map(e=>{let n=t.indexes[e],r=`PRIMARY KEY`,i=[];return n.columnIds.forEach(e=>{let n=t.indexColumns[e],r=``;r=n.type===`expression`?`(${n.value})`:`[${n.value}]`,i.push(r)}),r+=` (${i.join(`, `)})`,r})}static getCheckLines(e,t){let n=t.tables[e];return!n.checkIds||n.checkIds.length===0?[]:n.checkIds.map(e=>{let n=t.checks[e],r=``;return n.name&&(r=`CONSTRAINT [${n.name}] `),r+=`CHECK (${n.expression})`,r})}static getTableContentArr(t,n){return t.map(t=>({tableId:t,fieldContents:e.getFieldLines(t,n),checkContents:e.getCheckLines(t,n),compositePKs:e.getCompositePKs(t,n)}))}static exportTables(t,n){return e.getTableContentArr(t,n).map(e=>{let t=[...e.fieldContents,...e.checkContents,...e.compositePKs],r=n.tables[e.tableId],i=n.schemas[r.schemaId];return`CREATE TABLE ${k_(i,n)?`[${i.name}].`:``}[${r.name}] (\n${t.map(e=>` ${e}`).join(`,
|
|
45
45
|
`)}\n)\nGO\n`})}static buildTableManyToMany(e,t,n,r,i){let a=`CREATE TABLE ${k_(r,i)?`[${r.name}].`:``}[${n}] (\n`,o=[...e.keys()].join(`], [`),s=[...t.keys()].join(`], [`);return e.forEach((e,t)=>{a+=` [${t}] ${e},\n`}),t.forEach((e,t)=>{a+=` [${t}] ${e},\n`}),a+=` PRIMARY KEY ([${o}], [${s}])\n`,a+=`);
|
|
@@ -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,``,`SET CONSTRAINTS ALL IMMEDIATE;`,`COMMIT;`];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.6`,p$e=`6.3.0-alpha.6`;exports.CompilerError=K7,exports.ModelExporter=F_,exports.Parser=QQe,exports.VERSION=`6.3.0-alpha.6`,exports.addDoubleQuoteIfNeeded=u_,exports.exporter=u$e,exports.formatRecordValue=zfe,exports.importer=c$e,exports.isBinaryType=oh,exports.isBooleanType=ih,exports.isDateTimeType=sh,exports.isFloatType=nh,exports.isIntegerType=th,exports.isNumericType=rh,exports.isSerialType=ch,exports.isStringType=ah,exports.renameTable=d$e,exports.tryExtractBoolean=Xg,exports.tryExtractDateTime=Qg,exports.tryExtractEnum=cfe,exports.tryExtractInteger=afe,exports.tryExtractNumeric=Yg,exports.tryExtractString=Zg;
|
|
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.8`,p$e=`6.3.0-alpha.8`;exports.CompilerError=K7,exports.ModelExporter=F_,exports.Parser=QQe,exports.VERSION=`6.3.0-alpha.8`,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,6 +11874,7 @@ var POSTGRES_BUILTIN_TYPES = /* @__PURE__ */ "SMALLINT.INTEGER.INT.BIGINT.DECIMA
|
|
|
11874
11874
|
"",
|
|
11875
11875
|
...qY,
|
|
11876
11876
|
"",
|
|
11877
|
+
"SET CONSTRAINTS ALL IMMEDIATE;",
|
|
11877
11878
|
"COMMIT;"
|
|
11878
11879
|
];
|
|
11879
11880
|
return concat_default(KY.schemas, KY.enums, KY.tables, KY.indexes, KY.comments, KY.refs, JY).join("\n");
|
|
@@ -12246,6 +12247,7 @@ QUOTA UNLIMITED ON system;
|
|
|
12246
12247
|
"",
|
|
12247
12248
|
...WY,
|
|
12248
12249
|
"",
|
|
12250
|
+
"SET CONSTRAINTS ALL IMMEDIATE;",
|
|
12249
12251
|
"COMMIT;"
|
|
12250
12252
|
];
|
|
12251
12253
|
return concat_default(UY.schemas, UY.tables, UY.indexes, UY.comments, UY.referenceGrants, UY.refs, GY).join("\n");
|
|
@@ -1817577,5 +1817579,5 @@ function renameTable(_, HY, P) {
|
|
|
1817577
1817579
|
let UY = new Compiler();
|
|
1817578
1817580
|
return UY.setSource(P), UY.renameTable(_, HY);
|
|
1817579
1817581
|
}
|
|
1817580
|
-
const VERSION = "6.3.0-alpha.
|
|
1817582
|
+
const VERSION = "6.3.0-alpha.8";
|
|
1817581
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.
|
|
4
|
+
"version": "6.3.0-alpha.8",
|
|
5
5
|
"description": "> TODO: description",
|
|
6
6
|
"author": "Holistics <dev@holistics.io>",
|
|
7
7
|
"license": "Apache-2.0",
|
|
@@ -56,7 +56,7 @@
|
|
|
56
56
|
"devDependencies": {
|
|
57
57
|
"bluebird": "^3.5.5"
|
|
58
58
|
},
|
|
59
|
-
"gitHead": "
|
|
59
|
+
"gitHead": "16a05e460e4b443fb8092d37d36f9253259b544a",
|
|
60
60
|
"engines": {
|
|
61
61
|
"node": ">=16"
|
|
62
62
|
}
|