@dbml/parse 6.3.0-alpha.1 → 6.4.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/dbml-parse.js +1 -1
- package/dist/dbml-parse.mjs +2 -2
- package/package.json +2 -2
package/dist/dbml-parse.js
CHANGED
|
@@ -10,5 +10,5 @@ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e=Object.
|
|
|
10
10
|
`),n=t.slice(t.findIndex(e=>e.trimStart()!==``)),r=n.filter(e=>e.trimStart()),i=Math.min(...r.map(e=>e.length-e.trimStart().length));return n.map(e=>e.slice(i)).join(`
|
|
11
11
|
`)}function Id(e){if(e){if(Gu(e))return{value:R(e).unwrap(),type:`string`};if(Cu(e))return{type:`number`,value:Ll(e)};if(Ku(e))return{value:e.expression.variable.value.toLowerCase(),type:`boolean`};if(e instanceof cl&&e.value)return{value:e.value.value,type:`expression`};if(Ju(e))return{value:Ou(e).map(h).and_then(I).unwrap(),type:`string`};throw Error(`Unreachable`)}}function Ld(e,t){let n=``,r=null,i,a;if(e instanceof T){let t=e.argumentList.elementList;if(r=t.map(e=>Cu(e)?Il(e):Gu(e)?R(e).unwrap():I(e).unwrap()).join(`,`),n=`(${r})`,t.length===2&&Cu(t[0])&&Cu(t[1])){let e=Ll(t[0]),n=Ll(t[1]);!isNaN(e)&&!isNaN(n)&&(i={precision:Math.trunc(e),scale:Math.trunc(n)})}else if(t.length===1&&Cu(t[0])){let e=Ll(t[0]);isNaN(e)||(a={length:Math.trunc(e)})}e=e.callee}for(;e instanceof T||e instanceof gl;)e instanceof T?(n=`(${e.argumentList.elementList.map(e=>Cu(e)?Il(e):Gu(e)?R(e).unwrap():I(e).unwrap()).join(`,`)})${n}`,e=e.callee):e instanceof gl&&(n=`${`[${e.indexer.elementList.map(e=>e.name.expression.literal.value).join(`,`)}]`}${n}`,e=e.array);let{name:o,schemaName:s}=jd(e),c=s.length===0?null:s[0],l=!![...t.enums.values()].find(e=>e.name===o&&e.schemaName===c);return s.length>1?new O({schemaName:s.length===0?null:s[0],type_name:`${o}${n}`,args:r,numericParams:i,lengthParam:a,isEnum:l},[new D(E.UNSUPPORTED,`Nested schema is not supported`,e)]):new O({schemaName:s.length===0?null:s[0],type_name:`${o}${n}`,args:r,numericParams:i,lengthParam:a,isEnum:l})}function Rd(e,t){let n=[...t.tables.entries()].find(([,t])=>t===e)?.[0];if(!n)throw Error(`mergeTableAndPartials should be called after all tables are interpreted`);if(!(n.body instanceof C))throw Error(`Table element should have a block body`);let r=[...e.indexes],i=[...e.checks],a=e.headerColor,o=e.note,s=[...t.tablePartials.values()];for(let t of[...e.partials].reverse()){let{name:e}=t,n=s.find(t=>t.name===e);n&&(r.push(...n.indexes),i.push(...n.checks),n.headerColor!==void 0&&(a=n.headerColor),n.note!==void 0&&(o=n.note))}let c=new Map(e.fields.map(e=>[e.name,e])),l=new Set(c.keys()),u=new Map(s.map(e=>[e.name,e])),d=[];for(let e of n.body.body)if(e instanceof S)if(_u(e.callee)){let t=I(e.callee.expression).unwrap_or(void 0),n=u.get(t);if(!n)continue;for(let e of n.fields)l.has(e.name)||d.push(e)}else{let t=I(e.callee).unwrap(),n=c.get(t);if(!n)continue;d.push(n)}let f=Bc([...d].reverse(),`name`).reverse();return{...e,fields:f,indexes:r,checks:i,headerColor:a,note:o}}function zd(e,t){let n=[],r=[...t.tablePartials.values()],i=new Set(e.fields.map(e=>e.name));for(let t of[...e.partials].reverse()){let{name:a}=t,o=r.find(e=>e.name===a);if(o){for(let t of o.fields)if(!i.has(t.name))for(let r of t.inline_refs){let i=kd(r.relation);n.push({name:null,schemaName:null,token:r.token,endpoints:[{schemaName:r.schemaName,tableName:r.tableName,fieldNames:r.fieldNames,token:r.token,relation:i[1]},{schemaName:e.schemaName,tableName:e.name,fieldNames:[t.name],token:t.token,relation:i[0]}]})}}}return n}var Bd=class{constructor(e,t){this.declarationNode=e,this.env=t,this.table={name:void 0,schemaName:void 0,alias:null,fields:[],token:void 0,indexes:[],partials:[],checks:[]},this.pkColumns=[]}interpret(){this.table.token=H(this.declarationNode),this.env.tables.set(this.declarationNode,this.table);let e=[...this.interpretName(this.declarationNode.name),...this.interpretAlias(this.declarationNode.alias),...this.interpretSettingList(this.declarationNode.attributeList),...this.interpretBody(this.declarationNode.body)];return this.pkColumns.length>=2&&(this.table.indexes.push({columns:this.pkColumns.map(({name:e,token:t})=>({value:e,type:`column`,token:t})),token:{start:{offset:-1,line:-1,column:-1},end:{offset:-1,line:-1,column:-1}},pk:!0}),this.pkColumns.forEach(e=>{e.pk=!1})),e}interpretName(e){let{name:t,schemaName:n}=jd(e);return n.length>1?(this.table.name=t,this.table.schemaName=n.join(`.`),[new D(E.UNSUPPORTED,`Nested schema is not supported`,e)]):(this.table.name=t,this.table.schemaName=n.length?n[0]:null,[])}interpretAlias(e){if(!e)return[];let t=L(e).unwrap_or(null);return t&&(this.env.aliases.push({name:t,kind:`table`,value:{tableName:this.table.name,schemaName:this.table.schemaName}}),this.table.alias=t),[]}interpretSettingList(e){let t=P(e).getValue();this.table.headerColor=t[M.HeaderColor]?.length?Md(t[M.HeaderColor]?.at(0)?.value):void 0;let[n]=t[M.Note]||[];return this.table.note=n&&{value:R(n?.value).map(Fd).unwrap(),token:H(n)},[]}interpretBody(e){let[t,n]=g(e.body,e=>e instanceof S);return[...this.interpretFields(t),...this.interpretSubElements(n)]}interpretSubElements(e){return e.flatMap(e=>{switch(e.type?.value.toLowerCase()){case j.Note:return this.table.note={value:R(e.body instanceof C?e.body.body[0].callee:e.body.callee).map(Fd).unwrap(),token:H(e)},[];case j.Indexes:return this.interpretIndexes(e);case j.Check:return this.interpretChecks(e);case j.Records:return this.env.recordsElements.push(e),[];default:return[]}})}interpretInjection(e,t){let n={order:t,token:H(e)};return n.name=I(e.expression).unwrap_or(``),this.table.partials.push(n),[]}interpretFields(e){let t=(this.declarationNode.symbol?.symbolTable?[...this.declarationNode.symbol.symbolTable.entries()]:[]).filter(([e])=>$l(e).unwrap_or(null)?.kind===N.Column).length?[]:[new D(E.EMPTY_TABLE,`A Table must have at least one column`,this.declarationNode)],n=e.flatMap((e,t)=>_u(e.callee)?this.interpretInjection(e.callee,t):this.interpretColumn(e));return[...t,...n]}interpretColumn(e){let t=[],n={};n.name=L(e.callee).unwrap();let r=Ld(e.args[0],this.env);n.type=r.getValue(),t.push(...r.getErrors()),n.token=H(e),n.inline_refs=[];let i=e.args.slice(1);if(h(i)instanceof w){let r=P(i.pop()).getValue();n.pk=!!r[M.PK]?.length||!!r[M.PrimaryKey]?.length,n.increment=!!r[M.Increment]?.length,n.unique=!!r[M.Unique]?.length,n.not_null=r[M.NotNull]?.length?!0:r[M.Null]?.length?!1:void 0,n.dbdefault=Id(r[M.Default]?.at(0)?.value);let a=r[M.Note]?.at(0);n.note=a&&{value:R(a.value).map(Fd).unwrap(),token:H(a)},n.inline_refs=(r[M.Ref]||[]).flatMap(n=>{let[r]=Ad(n.value.expression);if(Pd(r,e.symbol))return t.push(new D(E.SAME_ENDPOINT,`Two endpoints are the same`,n)),[];let i=n.value.op,a=F(n.value.expression).unwrap(),o;if(a.length===1){let[e]=a;o={schemaName:this.table.schemaName,tableName:this.table.name,fieldNames:[e],relation:i.value,token:H(n)}}else if(a.length===2){let[e,t]=a;o={schemaName:null,tableName:e,fieldNames:[t],relation:i.value,token:H(n)}}else if(a.length===3){let[e,t,r]=a;o={schemaName:e,tableName:t,fieldNames:[r],relation:i.value,token:H(n)}}else{t.push(new D(E.UNSUPPORTED,`Nested schema is not supported`,n));let e=a.pop(),r=a.pop();o={schemaName:a.join(`.`),tableName:r,fieldNames:[e],relation:i.value,token:H(n)}}let s=this.registerInlineRefToEnv(e,r,o,n);return t.push(...s),s.length===0?o:[]}),n.checks=(r[M.Check]||[]).map(e=>({token:H(e),expression:e.value.value.value}))}return n.pk||=i.some(e=>I(e).unwrap().toLowerCase()===`pk`),n.unique||=i.some(e=>I(e).unwrap().toLowerCase()===`unique`),this.table.fields.push(n),n.pk&&this.pkColumns.push(n),t}interpretIndexes(e){return this.table.indexes.push(...e.body.body.map(e=>{let t={columns:[]},n=e;t.token=H(n);let r=[n.callee,...n.args];if(h(r)instanceof w){let e=P(r.pop()).getValue();t.pk=!!e[M.PK]?.length,t.unique=!!e[M.Unique]?.length,t.name=R(e[M.Name]?.at(0)?.value).unwrap_or(void 0);let n=e[M.Note]?.at(0);t.note=n&&{value:R(n.value).unwrap(),token:H(n)},t.type=I(e[M.Type]?.at(0)?.value).unwrap_or(void 0)}return r.flatMap(e=>{if(!(e instanceof T))return e;let t=[];for(;e instanceof T;)t.push(e.argumentList),e=e.callee;return t.push(e),t}).forEach(e=>{let{functional:n,nonFunctional:r}=Au(e).unwrap();t.columns.push(...n.map(e=>({value:e.value.value,type:`expression`,token:H(e)})),...r.map(e=>({value:L(e).unwrap(),type:`column`,token:H(e)})))}),t})),[]}interpretChecks(e){return this.table.checks.push(...e.body.body.map(e=>{let t={},n=e;return t.token=H(n),n.args[0]instanceof w&&(t.name=R(P(n.args[0]).getValue()[M.Name]?.at(0)?.value).unwrap_or(void 0)),t.expression=n.callee.value.value,t})),[]}registerInlineRefToEnv(e,t,n,r){let i=Nd(e.symbol,t);if(this.env.refIds[i])return[new D(E.CIRCULAR_REF,`References with same endpoints exist`,r),new D(E.CIRCULAR_REF,`References with same endpoints exist`,this.env.refIds[i])];let a=kd(n.relation);return this.env.refIds[i]=r,this.env.ref.set(r,{name:null,schemaName:null,token:n.token,endpoints:[{...n,relation:a[1]},{schemaName:this.table.schemaName,tableName:this.table.name,fieldNames:[I(e.callee).unwrap()],token:H(e),relation:a[0]}]}),[]}},Vd=class{constructor(e,t){this.declarationNode=e,this.env=t,this.note={name:void 0,content:void 0,token:void 0}}interpret(){return this.note.token=H(this.declarationNode),this.env.notes.set(this.declarationNode,this.note),[...this.interpretName(this.declarationNode.name),...this.interpretSettingList(this.declarationNode.attributeList),...this.interpretBody(this.declarationNode.body)]}interpretName(e){let{name:t}=jd(e);return this.note.name=t,[]}interpretSettingList(e){let t=P(e).getValue();return this.note.headerColor=t.headercolor?.length?Md(t.headercolor?.at(0)?.value):void 0,[]}interpretBody(e){let[t,n]=g(e.body,e=>e instanceof S);return t.length!==1||n.length>0?[new D(E.INVALID_NOTE,`Invalid note syntax`,e)]:[...this.interpretNote(t[0])]}interpretNote(e){let t=ta(e,`callee.expression.literal.value`,``);return this.note.content=Fd(t),[]}},Hd=class{constructor(e,t){this.declarationNode=e,this.env=t,this.container=this.declarationNode.parent instanceof x?this.env.tables.get(this.declarationNode.parent):void 0,this.ref={}}interpret(){return this.ref.token=H(this.declarationNode),this.env.ref.set(this.declarationNode,this.ref),[...this.interpretName(this.declarationNode.name),...this.interpretBody(this.declarationNode.body)]}interpretName(e){let t=[],n=F(this.declarationNode.name).unwrap_or([]);return this.ref.name=n.pop()||null,n.length>1&&t.push(new D(E.UNSUPPORTED,`Nested schema is not supported`,this.declarationNode.name)),this.ref.schemaName=n.join(`.`)||null,t}interpretBody(e){return e instanceof S?this.interpretField(e):this.interpretField(e.body[0])}interpretField(e){let t=e.callee.op.value,{leftExpression:n,rightExpression:r}=e.callee,i=Ad(n),a=Ad(r);if(Pd(i,a))return[new D(E.SAME_ENDPOINT,`Two endpoints are the same`,e)];let o=Nd(i,a);if(this.env.refIds[o])return[new D(E.CIRCULAR_REF,`References with same endpoints exist`,this.declarationNode),new D(E.CIRCULAR_REF,`References with same endpoints exist`,this.env.refIds[o])];if(e.args[0]){let t=P(e.args[0]).getValue(),n=t.delete?.at(0)?.value;this.ref.onDelete=n instanceof rl?Yu(n).unwrap_or(void 0):I(n).unwrap_or(void 0);let r=t.update?.at(0)?.value;this.ref.onUpdate=r instanceof rl?Yu(r).unwrap_or(void 0):I(r).unwrap_or(void 0),this.ref.color=t.color?.length?Md(t.color?.at(0)?.value):void 0}let s=kd(t);return this.ref.endpoints=[{...Od(n,this.container),relation:s[0],token:H(n)},{...Od(r,this.container),relation:s[1],token:H(r)}],this.env.refIds[o]=this.declarationNode,[]}},Ud=class{constructor(e,t){this.declarationNode=e,this.env=t,this.tableGroup={tables:[]}}interpret(){let e=[];return this.tableGroup.token=H(this.declarationNode),this.env.tableGroups.set(this.declarationNode,this.tableGroup),e.push(...this.interpretName(this.declarationNode.name),...this.interpretSettingList(this.declarationNode.attributeList),...this.interpretBody(this.declarationNode.body)),e}interpretName(e){let t=[],{name:n,schemaName:r}=jd(e);return r.length>=2&&(this.tableGroup.name=n,this.tableGroup.schemaName=r.join(`.`),t.push(new D(E.UNSUPPORTED,`Nested schema is not supported`,this.declarationNode.name))),this.tableGroup.name=n,this.tableGroup.schemaName=r[0]||null,t}interpretBody(e){let[t,n]=g(e.body,e=>e instanceof S);return[...this.interpretFields(t),...this.interpretSubElements(n)]}interpretSubElements(e){return e.flatMap(e=>{switch(e.type?.value.toLowerCase()){case`note`:this.tableGroup.note={value:R(e.body instanceof C?e.body.body[0].callee:e.body.callee).map(Fd).unwrap(),token:H(e)};break;default:break}return[]})}interpretFields(e){let t=[];return this.tableGroup.tables=e.map(e=>{let n=F(e.callee).unwrap();n.length>2&&t.push(new D(E.UNSUPPORTED,`Nested schema is not supported`,e));let r=Ou(e.callee).unwrap().pop().referee.id;if(this.env.tableOwnerGroup[r]){let i=this.env.tableOwnerGroup[r],{schemaName:a,name:o}=this.env.tableGroups.get(i),s=a?`${a}.${o}`:o;t.push(new D(E.TABLE_REAPPEAR_IN_TABLEGROUP,`Table "${n.join(`.`)}" already appears in group "${s}"`,e))}else this.env.tableOwnerGroup[r]=this.declarationNode;return{name:n.pop(),schemaName:n.join(`.`)}}),t}interpretSettingList(e){let t=P(e).getValue();this.tableGroup.color=t.color?.length?Md(t.color?.at(0)?.value):void 0;let[n]=t.note||[];return this.tableGroup.note=n&&{value:R(n?.value).map(Fd).unwrap(),token:H(n)},[]}},Wd=class{constructor(e,t){this.declarationNode=e,this.env=t,this.enum={values:[]}}interpret(){return this.enum.token=H(this.declarationNode),this.env.enums.set(this.declarationNode,this.enum),[...this.interpretName(this.declarationNode.name),...this.interpretBody(this.declarationNode.body)]}interpretName(e){let{name:t,schemaName:n}=jd(e);return n.length>1?(this.enum.name=t,this.enum.schemaName=n.join(`.`),[new D(E.UNSUPPORTED,`Nested schema is not supported`,e)]):(this.enum.name=t,this.enum.schemaName=n.length?n[0]:null,[])}interpretBody(e){return e.body.flatMap(e=>{let t=e,n={};n.token=H(t),n.name=I(t.callee).unwrap();let r=P(t.args[0]).getValue().note?.at(0);return n.note=r&&{value:R(r.value).map(Fd).unwrap(),token:H(r)},this.enum.values.push(n),[]})}},Gd=class{constructor(e,t){this.declarationNode=e,this.env=t,this.tablePartial={name:void 0,fields:[],token:void 0,indexes:[],checks:[]},this.pkColumns=[]}interpret(){this.tablePartial.token=H(this.declarationNode),this.env.tablePartials.set(this.declarationNode,this.tablePartial);let e=[...this.interpretName(this.declarationNode.name),...this.interpretSettingList(this.declarationNode.attributeList),...this.interpretBody(this.declarationNode.body)];return this.pkColumns.length>=2&&(this.tablePartial.indexes.push({columns:this.pkColumns.map(({name:e,token:t})=>({value:e,type:`column`,token:t})),token:{start:{offset:-1,line:-1,column:-1},end:{offset:-1,line:-1,column:-1}},pk:!0}),this.pkColumns.forEach(e=>{e.pk=!1})),e}interpretName(e){let{name:t}=jd(e);return this.tablePartial.name=t,[]}interpretSettingList(e){let t=P(e).getValue(),n=mc(t[M.HeaderColor]);this.tablePartial.headerColor=n?Md(n.value):void 0;let[r]=t[M.Note]||[];return this.tablePartial.note=r&&{value:R(r?.value).map(Fd).unwrap(),token:H(r)},[]}interpretBody(e){let[t,n]=g(e.body,e=>e instanceof S);return[...this.interpretFields(t),...this.interpretSubElements(n)]}interpretSubElements(e){return e.flatMap(e=>{switch(e.type?.value.toLowerCase()){case j.Note:return this.tablePartial.note={value:R(e.body instanceof C?e.body.body[0].callee:e.body.callee).map(Fd).unwrap(),token:H(e)},[];case j.Indexes:return this.interpretIndexes(e);case j.Check:return this.interpretChecks(e);default:return[]}})}interpretFields(e){return e.flatMap(e=>this.interpretColumn(e))}interpretColumn(e){let t=[],n={};n.name=L(e.callee).unwrap();let r=Ld(e.args[0],this.env);n.type=r.getValue(),t.push(...r.getErrors()),n.token=H(e),n.inline_refs=[];let i=e.args.slice(1);if(h(i)instanceof w){let r=P(i.pop()).getValue();n.pk=!!r[M.PK]?.length||!!r[M.PrimaryKey]?.length,n.increment=!!r[M.Increment]?.length,n.unique=!!r[M.Unique]?.length,n.not_null=r[M.NotNull]?.length?!0:r[M.Null]?.length?!1:void 0,n.dbdefault=Id(r[M.Default]?.at(0)?.value);let a=r[M.Note]?.at(0);n.note=a&&{value:R(a.value).map(Fd).unwrap(),token:H(a)},n.inline_refs=(r[M.Ref]||[]).flatMap(n=>{let[r]=Ad(n.value.expression);if(Pd(r,e.symbol))return t.push(new D(E.SAME_ENDPOINT,`Two endpoints are the same`,n)),[];let i=n.value.op,a=F(n.value.expression).unwrap(),o;if(a.length===2){let[e,t]=a;o={schemaName:null,tableName:e,fieldNames:[t],relation:i.value,token:H(n)}}else if(a.length===3){let[e,t,r]=a;o={schemaName:e,tableName:t,fieldNames:[r],relation:i.value,token:H(n)}}else{t.push(new D(E.UNSUPPORTED,`Unsupported`,n));let e=a.pop(),r=a.pop();o={schemaName:a.join(`.`),tableName:r,fieldNames:[e],relation:i.value,token:H(n)}}return o}),n.checks=(r[M.Check]||[]).map(e=>({token:H(e),expression:e.value.value.value}))}return n.pk||=i.some(e=>I(e).unwrap().toLowerCase()===`pk`),n.unique||=i.some(e=>I(e).unwrap().toLowerCase()===`unique`),this.tablePartial.fields.push(n),n.pk&&this.pkColumns.push(n),t}interpretIndexes(e){return this.tablePartial.indexes.push(...e.body.body.map(e=>{let t={columns:[]},n=e;t.token=H(n);let r=[n.callee,...n.args];if(h(r)instanceof w){let e=P(r.pop()).getValue();t.pk=!!e[M.PK]?.length,t.unique=!!e[M.Unique]?.length,t.name=R(e[M.Name]?.at(0)?.value).unwrap_or(void 0);let n=e[M.Note]?.at(0);t.note=n&&{value:R(n.value).unwrap(),token:H(n)},t.type=I(e[M.Type]?.at(0)?.value).unwrap_or(void 0)}return r.flatMap(e=>{if(!(e instanceof T))return e;let t=[],n=e;for(;n instanceof T;)t.push(n.argumentList),n=n.callee;return t.push(n),t}).forEach(e=>{let{functional:n,nonFunctional:r}=Au(e).unwrap();t.columns.push(...n.map(e=>({value:e.value.value,type:`expression`,token:H(e)})),...r.map(e=>({value:L(e).unwrap(),type:`column`,token:H(e)})))}),t})),[]}interpretChecks(e){return this.tablePartial.checks.push(...e.body.body.map(e=>{let t={},n=e;return t.token=H(n),n.args[0]instanceof w&&(t.name=R(P(n.args[0]).getValue()[M.Name]?.at(0)?.value).unwrap_or(void 0)),t.expression=n.callee.value.value,t})),[]}},Kd=class{constructor(e,t){this.declarationNode=e,this.env=t,this.project={enums:[],refs:[],tableGroups:[],tables:[],tablePartials:[]}}interpret(){return this.env.project.set(this.declarationNode,this.project),this.project.token=H(this.declarationNode),[...this.interpretName(this.declarationNode.name),...this.interpretBody(this.declarationNode.body)]}interpretName(e){if(!e)return this.project.name=null,[];let{name:t}=jd(e);return this.project.name=t,[]}interpretBody(e){return e.body.flatMap(e=>{let t=e;switch(t.type?.value.toLowerCase()){case`table`:{let e=new Bd(t,this.env).interpret();return this.project.tables.push(this.env.tables.get(t)),e}case`ref`:{let e=new Hd(t,this.env).interpret();return this.project.refs.push(this.env.ref.get(t)),e}case`tablegroup`:{let e=new Ud(t,this.env).interpret();return this.project.tableGroups.push(this.env.tableGroups.get(t)),e}case`enum`:{let e=new Wd(t,this.env).interpret();return this.project.enums.push(this.env.enums.get(t)),e}case`note`:return this.project.note={value:R(t.body instanceof C?t.body.body[0].callee:t.body.callee).map(Fd).unwrap(),token:H(t)},[];case`tablepartial`:{let e=new Gd(t,this.env).interpret();return this.project.tablePartials.push(this.env.tablePartials.get(t)),e}default:return this.project[t.type.value.toLowerCase()]=R(t.body.callee).unwrap(),[]}})}},qd={mysql:new Set([`int`,`integer`,`smallint`,`bigint`,`tinyint`,`mediumint`]),postgres:new Set([`int`,`integer`,`smallint`,`bigint`,`serial`,`bigserial`,`smallserial`]),mssql:new Set([`int`,`integer`,`smallint`,`bigint`,`tinyint`]),oracle:new Set([`int`,`integer`,`smallint`]),snowflake:new Set([`int`,`integer`,`smallint`,`bigint`,`tinyint`])},Jd={mysql:new Set([`decimal`,`numeric`,`float`,`double`,`real`]),postgres:new Set([`decimal`,`numeric`,`real`,`float`,`double precision`]),mssql:new Set([`decimal`,`numeric`,`real`,`float`]),oracle:new Set([`number`,`decimal`,`numeric`,`float`,`real`]),snowflake:new Set([`number`,`decimal`,`numeric`,`float`,`double`,`real`])},Yd={mysql:new Set([`bool`,`boolean`,`bit`]),postgres:new Set([`bool`,`boolean`]),mssql:new Set([`bit`]),oracle:new Set([]),snowflake:new Set([`boolean`])},Xd={mysql:new Set([`varchar`,`char`,`text`,`tinytext`,`mediumtext`,`longtext`,`string`]),postgres:new Set([`varchar`,`char`,`character`,`character varying`,`text`,`string`]),mssql:new Set([`varchar`,`char`,`nvarchar`,`nchar`,`text`,`ntext`,`string`]),oracle:new Set([`varchar`,`varchar2`,`char`,`nvarchar2`,`nchar`,`string`]),snowflake:new Set([`varchar`,`char`,`text`,`string`])},Zd={mysql:new Set([`binary`,`varbinary`,`blob`,`tinyblob`,`mediumblob`,`longblob`]),postgres:new Set([`bytea`]),mssql:new Set([`binary`,`varbinary`]),oracle:new Set([`blob`,`raw`]),snowflake:new Set([`binary`,`varbinary`])},Qd={mysql:new Set([`date`,`datetime`,`timestamp`,`time`]),postgres:new Set([`date`,`timestamp`,`timestamptz`,`timestamp with time zone`,`timestamp without time zone`,`time`,`timetz`,`time with time zone`,`time without time zone`]),mssql:new Set([`date`,`datetime`,`datetime2`,`smalldatetime`,`time`]),oracle:new Set([`date`,`timestamp`,`timestamp with time zone`,`timestamp with local time zone`]),snowflake:new Set([`date`,`datetime`,`timestamp`,`time`])},$d={mysql:new Set([]),postgres:new Set([`serial`,`smallserial`,`bigserial`]),mssql:new Set([]),oracle:new Set([]),snowflake:new Set([])};function ef(e){return e.toLowerCase().trim().replace(/\s+/g,` `)}function tf(e,t){let n=ef(e);return t?qd[t].has(n):Object.values(qd).some(e=>e.has(n))}function nf(e,t){let n=ef(e);return t?Jd[t].has(n):Object.values(Jd).some(e=>e.has(n))}function rf(e,t){return tf(e,t)||nf(e,t)}function af(e,t){let n=ef(e);return t?Yd[t].has(n):Object.values(Yd).some(e=>e.has(n))}function of(e,t){let n=ef(e);return t?Xd[t].has(n):Object.values(Xd).some(e=>e.has(n))}function sf(e,t){let n=ef(e);return t?Zd[t].has(n):Object.values(Zd).some(e=>e.has(n))}function cf(e,t){let n=ef(e);return t?Qd[t].has(n):Object.values(Qd).some(e=>e.has(n))}function lf(e,t){let n=ef(e);return t?$d[t].has(n):Object.values($d).some(e=>e.has(n))}function uf(e){let t=e.declaration;return t instanceof S&&t.args[0]||null}function df(e){let t=uf(e);if(!(t instanceof T)||!t.argumentList||t.argumentList.elementList.length!==2)return{};let n=ju(t.argumentList.elementList[0]),r=ju(t.argumentList.elementList[1]);return n===null||r===null?{}:{precision:Math.trunc(n),scale:Math.trunc(r)}}function ff(e){let t=uf(e);if(!(t instanceof T)||!t.argumentList||t.argumentList.elementList.length!==1)return{};let n=ju(t.argumentList.elementList[0]);return n===null?{}:{length:Math.trunc(n)}}function pf(e,t){if(t)return`string`;if(tf(e))return`integer`;if(nf(e))return`real`;if(af(e))return`bool`;if(of(e))return`string`;let n=ef(e);return n===`date`?`date`:n===`time`||n===`timetz`||n===`time with time zone`||n===`time without time zone`?`time`:cf(e)?`datetime`:e}var mf=class extends Error{},hf=class extends mf{constructor(e){super(`Invalid DateTime: ${e.toMessage()}`)}},gf=class extends mf{constructor(e){super(`Invalid Interval: ${e.toMessage()}`)}},_f=class extends mf{constructor(e){super(`Invalid Duration: ${e.toMessage()}`)}},vf=class extends mf{},yf=class extends mf{constructor(e){super(`Invalid unit ${e}`)}},bf=class extends mf{},xf=class extends mf{constructor(){super(`Zone is an abstract class`)}},U=`numeric`,Sf=`short`,Cf=`long`,wf={year:U,month:U,day:U},Tf={year:U,month:Sf,day:U},Ef={year:U,month:Sf,day:U,weekday:Sf},Df={year:U,month:Cf,day:U},Of={year:U,month:Cf,day:U,weekday:Cf},kf={hour:U,minute:U},Af={hour:U,minute:U,second:U},jf={hour:U,minute:U,second:U,timeZoneName:Sf},Mf={hour:U,minute:U,second:U,timeZoneName:Cf},Nf={hour:U,minute:U,hourCycle:`h23`},Pf={hour:U,minute:U,second:U,hourCycle:`h23`},Ff={hour:U,minute:U,second:U,hourCycle:`h23`,timeZoneName:Sf},If={hour:U,minute:U,second:U,hourCycle:`h23`,timeZoneName:Cf},Lf={year:U,month:U,day:U,hour:U,minute:U},Rf={year:U,month:U,day:U,hour:U,minute:U,second:U},zf={year:U,month:Sf,day:U,hour:U,minute:U},Bf={year:U,month:Sf,day:U,hour:U,minute:U,second:U},Vf={year:U,month:Sf,day:U,weekday:Sf,hour:U,minute:U},Hf={year:U,month:Cf,day:U,hour:U,minute:U,timeZoneName:Sf},Uf={year:U,month:Cf,day:U,hour:U,minute:U,second:U,timeZoneName:Sf},Wf={year:U,month:Cf,day:U,weekday:Cf,hour:U,minute:U,timeZoneName:Cf},Gf={year:U,month:Cf,day:U,weekday:Cf,hour:U,minute:U,second:U,timeZoneName:Cf},Kf=class{get type(){throw new xf}get name(){throw new xf}get ianaName(){return this.name}get isUniversal(){throw new xf}offsetName(e,t){throw new xf}formatOffset(e,t){throw new xf}offset(e){throw new xf}equals(e){throw new xf}get isValid(){throw new xf}},qf=null,Jf=class e extends Kf{static get instance(){return qf===null&&(qf=new e),qf}get type(){return`system`}get name(){return new Intl.DateTimeFormat().resolvedOptions().timeZone}get isUniversal(){return!1}offsetName(e,{format:t,locale:n}){return Mm(e,t,n)}formatOffset(e,t){return Im(this.offset(e),t)}offset(e){return-new Date(e).getTimezoneOffset()}equals(e){return e.type===`system`}get isValid(){return!0}},Yf=new Map;function Xf(e){let t=Yf.get(e);return t===void 0&&(t=new Intl.DateTimeFormat(`en-US`,{hour12:!1,timeZone:e,year:`numeric`,month:`2-digit`,day:`2-digit`,hour:`2-digit`,minute:`2-digit`,second:`2-digit`,era:`short`}),Yf.set(e,t)),t}var Zf={year:0,month:1,day:2,era:3,hour:4,minute:5,second:6};function Qf(e,t){let n=e.format(t).replace(/\u200E/g,``),[,r,i,a,o,s,c,l]=/(\d+)\/(\d+)\/(\d+) (AD|BC),? (\d+):(\d+):(\d+)/.exec(n);return[a,r,i,o,s,c,l]}function $f(e,t){let n=e.formatToParts(t),r=[];for(let e=0;e<n.length;e++){let{type:t,value:i}=n[e],a=Zf[t];t===`era`?r[a]=i:K(a)||(r[a]=parseInt(i,10))}return r}var ep=new Map,tp=class e extends Kf{static create(t){let n=ep.get(t);return n===void 0&&ep.set(t,n=new e(t)),n}static resetCache(){ep.clear(),Yf.clear()}static isValidSpecifier(e){return this.isValidZone(e)}static isValidZone(e){if(!e)return!1;try{return new Intl.DateTimeFormat(`en-US`,{timeZone:e}).format(),!0}catch{return!1}}constructor(t){super(),this.zoneName=t,this.valid=e.isValidZone(t)}get type(){return`iana`}get name(){return this.zoneName}get isUniversal(){return!1}offsetName(e,{format:t,locale:n}){return Mm(e,t,n,this.name)}formatOffset(e,t){return Im(this.offset(e),t)}offset(e){if(!this.valid)return NaN;let t=new Date(e);if(isNaN(t))return NaN;let n=Xf(this.name),[r,i,a,o,s,c,l]=n.formatToParts?$f(n,t):Qf(n,t);o===`BC`&&(r=-Math.abs(r)+1);let u=Om({year:r,month:i,day:a,hour:s===24?0:s,minute:c,second:l,millisecond:0}),d=+t,f=d%1e3;return d-=f>=0?f:1e3+f,(u-d)/(60*1e3)}equals(e){return e.type===`iana`&&e.name===this.name}get isValid(){return this.valid}},np={};function rp(e,t={}){let n=JSON.stringify([e,t]),r=np[n];return r||(r=new Intl.ListFormat(e,t),np[n]=r),r}var ip=new Map;function ap(e,t={}){let n=JSON.stringify([e,t]),r=ip.get(n);return r===void 0&&(r=new Intl.DateTimeFormat(e,t),ip.set(n,r)),r}var op=new Map;function sp(e,t={}){let n=JSON.stringify([e,t]),r=op.get(n);return r===void 0&&(r=new Intl.NumberFormat(e,t),op.set(n,r)),r}var cp=new Map;function lp(e,t={}){let{base:n,...r}=t,i=JSON.stringify([e,r]),a=cp.get(i);return a===void 0&&(a=new Intl.RelativeTimeFormat(e,t),cp.set(i,a)),a}var up=null;function dp(){return up||(up=new Intl.DateTimeFormat().resolvedOptions().locale,up)}var fp=new Map;function pp(e){let t=fp.get(e);return t===void 0&&(t=new Intl.DateTimeFormat(e).resolvedOptions(),fp.set(e,t)),t}var mp=new Map;function hp(e){let t=mp.get(e);if(!t){let n=new Intl.Locale(e);t=`getWeekInfo`in n?n.getWeekInfo():n.weekInfo,`minimalDays`in t||(t={...Tp,...t}),mp.set(e,t)}return t}function gp(e){let t=e.indexOf(`-x-`);t!==-1&&(e=e.substring(0,t));let n=e.indexOf(`-u-`);if(n===-1)return[e];{let t,r;try{t=ap(e).resolvedOptions(),r=e}catch{let i=e.substring(0,n);t=ap(i).resolvedOptions(),r=i}let{numberingSystem:i,calendar:a}=t;return[r,i,a]}}function _p(e,t,n){return n||t?(e.includes(`-u-`)||(e+=`-u`),n&&(e+=`-ca-${n}`),t&&(e+=`-nu-${t}`),e):e}function vp(e){let t=[];for(let n=1;n<=12;n++){let r=Y.utc(2009,n,1);t.push(e(r))}return t}function yp(e){let t=[];for(let n=1;n<=7;n++){let r=Y.utc(2016,11,13+n);t.push(e(r))}return t}function bp(e,t,n,r){let i=e.listingMode();return i===`error`?null:i===`en`?n(t):r(t)}function xp(e){return e.numberingSystem&&e.numberingSystem!==`latn`?!1:e.numberingSystem===`latn`||!e.locale||e.locale.startsWith(`en`)||pp(e.locale).numberingSystem===`latn`}var Sp=class{constructor(e,t,n){this.padTo=n.padTo||0,this.floor=n.floor||!1;let{padTo:r,floor:i,...a}=n;if(!t||Object.keys(a).length>0){let t={useGrouping:!1,...n};n.padTo>0&&(t.minimumIntegerDigits=n.padTo),this.inf=sp(e,t)}}format(e){if(this.inf){let t=this.floor?Math.floor(e):e;return this.inf.format(t)}else return q(this.floor?Math.floor(e):wm(e,3),this.padTo)}},Cp=class{constructor(e,t,n){this.opts=n,this.originalZone=void 0;let r;if(this.opts.timeZone)this.dt=e;else if(e.zone.type===`fixed`){let t=-1*(e.offset/60),n=t>=0?`Etc/GMT+${t}`:`Etc/GMT${t}`;e.offset!==0&&tp.create(n).valid?(r=n,this.dt=e):(r=`UTC`,this.dt=e.offset===0?e:e.setZone(`UTC`).plus({minutes:e.offset}),this.originalZone=e.zone)}else e.zone.type===`system`?this.dt=e:e.zone.type===`iana`?(this.dt=e,r=e.zone.name):(r=`UTC`,this.dt=e.setZone(`UTC`).plus({minutes:e.offset}),this.originalZone=e.zone);let i={...this.opts};i.timeZone=i.timeZone||r,this.dtf=ap(t,i)}format(){return this.originalZone?this.formatToParts().map(({value:e})=>e).join(``):this.dtf.format(this.dt.toJSDate())}formatToParts(){let e=this.dtf.formatToParts(this.dt.toJSDate());return this.originalZone?e.map(e=>{if(e.type===`timeZoneName`){let t=this.originalZone.offsetName(this.dt.ts,{locale:this.dt.locale,format:this.opts.timeZoneName});return{...e,value:t}}else return e}):e}resolvedOptions(){return this.dtf.resolvedOptions()}},wp=class{constructor(e,t,n){this.opts={style:`long`,...n},!t&&fm()&&(this.rtf=lp(e,n))}format(e,t){return this.rtf?this.rtf.format(e,t):th(t,e,this.opts.numeric,this.opts.style!==`long`)}formatToParts(e,t){return this.rtf?this.rtf.formatToParts(e,t):[]}},Tp={firstDay:1,minimalDays:4,weekend:[6,7]},W=class e{static fromOpts(t){return e.create(t.locale,t.numberingSystem,t.outputCalendar,t.weekSettings,t.defaultToEN)}static create(t,n,r,i,a=!1){let o=t||G.defaultLocale;return new e(o||(a?`en-US`:dp()),n||G.defaultNumberingSystem,r||G.defaultOutputCalendar,vm(i)||G.defaultWeekSettings,o)}static resetCache(){up=null,ip.clear(),op.clear(),cp.clear(),fp.clear(),mp.clear()}static fromObject({locale:t,numberingSystem:n,outputCalendar:r,weekSettings:i}={}){return e.create(t,n,r,i)}constructor(e,t,n,r,i){let[a,o,s]=gp(e);this.locale=a,this.numberingSystem=t||o||null,this.outputCalendar=n||s||null,this.weekSettings=r,this.intl=_p(this.locale,this.numberingSystem,this.outputCalendar),this.weekdaysCache={format:{},standalone:{}},this.monthsCache={format:{},standalone:{}},this.meridiemCache=null,this.eraCache={},this.specifiedLocale=i,this.fastNumbersCached=null}get fastNumbers(){return this.fastNumbersCached??=xp(this),this.fastNumbersCached}listingMode(){let e=this.isEnglish(),t=(this.numberingSystem===null||this.numberingSystem===`latn`)&&(this.outputCalendar===null||this.outputCalendar===`gregory`);return e&&t?`en`:`intl`}clone(t){return!t||Object.getOwnPropertyNames(t).length===0?this:e.create(t.locale||this.specifiedLocale,t.numberingSystem||this.numberingSystem,t.outputCalendar||this.outputCalendar,vm(t.weekSettings)||this.weekSettings,t.defaultToEN||!1)}redefaultToEN(e={}){return this.clone({...e,defaultToEN:!0})}redefaultToSystem(e={}){return this.clone({...e,defaultToEN:!1})}months(e,t=!1){return bp(this,e,Vm,()=>{let n=this.intl===`ja`||this.intl.startsWith(`ja-`);t&=!n;let r=t?{month:e,day:`numeric`}:{month:e},i=t?`format`:`standalone`;if(!this.monthsCache[i][e]){let t=n?e=>this.dtFormatter(e,r).format():e=>this.extract(e,r,`month`);this.monthsCache[i][e]=vp(t)}return this.monthsCache[i][e]})}weekdays(e,t=!1){return bp(this,e,Gm,()=>{let n=t?{weekday:e,year:`numeric`,month:`long`,day:`numeric`}:{weekday:e},r=t?`format`:`standalone`;return this.weekdaysCache[r][e]||(this.weekdaysCache[r][e]=yp(e=>this.extract(e,n,`weekday`))),this.weekdaysCache[r][e]})}meridiems(){return bp(this,void 0,()=>Km,()=>{if(!this.meridiemCache){let e={hour:`numeric`,hourCycle:`h12`};this.meridiemCache=[Y.utc(2016,11,13,9),Y.utc(2016,11,13,19)].map(t=>this.extract(t,e,`dayperiod`))}return this.meridiemCache})}eras(e){return bp(this,e,Xm,()=>{let t={era:e};return this.eraCache[e]||(this.eraCache[e]=[Y.utc(-40,1,1),Y.utc(2017,1,1)].map(e=>this.extract(e,t,`era`))),this.eraCache[e]})}extract(e,t,n){let r=this.dtFormatter(e,t).formatToParts().find(e=>e.type.toLowerCase()===n);return r?r.value:null}numberFormatter(e={}){return new Sp(this.intl,e.forceSimple||this.fastNumbers,e)}dtFormatter(e,t={}){return new Cp(e,this.intl,t)}relFormatter(e={}){return new wp(this.intl,this.isEnglish(),e)}listFormatter(e={}){return rp(this.intl,e)}isEnglish(){return this.locale===`en`||this.locale.toLowerCase()===`en-us`||pp(this.intl).locale.startsWith(`en-us`)}getWeekSettings(){return this.weekSettings?this.weekSettings:pm()?hp(this.locale):Tp}getStartOfWeek(){return this.getWeekSettings().firstDay}getMinDaysInFirstWeek(){return this.getWeekSettings().minimalDays}getWeekendDays(){return this.getWeekSettings().weekend}equals(e){return this.locale===e.locale&&this.numberingSystem===e.numberingSystem&&this.outputCalendar===e.outputCalendar}toString(){return`Locale(${this.locale}, ${this.numberingSystem}, ${this.outputCalendar})`}},Ep=null,Dp=class e extends Kf{static get utcInstance(){return Ep===null&&(Ep=new e(0)),Ep}static instance(t){return t===0?e.utcInstance:new e(t)}static parseSpecifier(t){if(t){let n=t.match(/^utc(?:([+-]\d{1,2})(?::(\d{2}))?)?$/i);if(n)return new e(Nm(n[1],n[2]))}return null}constructor(e){super(),this.fixed=e}get type(){return`fixed`}get name(){return this.fixed===0?`UTC`:`UTC${Im(this.fixed,`narrow`)}`}get ianaName(){return this.fixed===0?`Etc/UTC`:`Etc/GMT${Im(-this.fixed,`narrow`)}`}offsetName(){return this.name}formatOffset(e,t){return Im(this.fixed,t)}get isUniversal(){return!0}offset(){return this.fixed}equals(e){return e.type===`fixed`&&e.fixed===this.fixed}get isValid(){return!0}},Op=class extends Kf{constructor(e){super(),this.zoneName=e}get type(){return`invalid`}get name(){return this.zoneName}get isUniversal(){return!1}offsetName(){return null}formatOffset(){return``}offset(){return NaN}equals(){return!1}get isValid(){return!1}};function kp(e,t){if(K(e)||e===null)return t;if(e instanceof Kf)return e;if(um(e)){let n=e.toLowerCase();return n===`default`?t:n===`local`||n===`system`?Jf.instance:n===`utc`||n===`gmt`?Dp.utcInstance:Dp.parseSpecifier(n)||tp.create(e)}else if(cm(e))return Dp.instance(e);else if(typeof e==`object`&&`offset`in e&&typeof e.offset==`function`)return e;else return new Op(e)}var Ap={arab:`[٠-٩]`,arabext:`[۰-۹]`,bali:`[᭐-᭙]`,beng:`[০-৯]`,deva:`[०-९]`,fullwide:`[0-9]`,gujr:`[૦-૯]`,hanidec:`[〇|一|二|三|四|五|六|七|八|九]`,khmr:`[០-៩]`,knda:`[೦-೯]`,laoo:`[໐-໙]`,limb:`[᥆-᥏]`,mlym:`[൦-൯]`,mong:`[᠐-᠙]`,mymr:`[၀-၉]`,orya:`[୦-୯]`,tamldec:`[௦-௯]`,telu:`[౦-౯]`,thai:`[๐-๙]`,tibt:`[༠-༩]`,latn:`\\d`},jp={arab:[1632,1641],arabext:[1776,1785],bali:[6992,7001],beng:[2534,2543],deva:[2406,2415],fullwide:[65296,65303],gujr:[2790,2799],khmr:[6112,6121],knda:[3302,3311],laoo:[3792,3801],limb:[6470,6479],mlym:[3430,3439],mong:[6160,6169],mymr:[4160,4169],orya:[2918,2927],tamldec:[3046,3055],telu:[3174,3183],thai:[3664,3673],tibt:[3872,3881]},Mp=Ap.hanidec.replace(/[\[|\]]/g,``).split(``);function Np(e){let t=parseInt(e,10);if(isNaN(t)){t=``;for(let n=0;n<e.length;n++){let r=e.charCodeAt(n);if(e[n].search(Ap.hanidec)!==-1)t+=Mp.indexOf(e[n]);else for(let e in jp){let[n,i]=jp[e];r>=n&&r<=i&&(t+=r-n)}}return parseInt(t,10)}else return t}var Pp=new Map;function Fp(){Pp.clear()}function Ip({numberingSystem:e},t=``){let n=e||`latn`,r=Pp.get(n);r===void 0&&(r=new Map,Pp.set(n,r));let i=r.get(t);return i===void 0&&(i=RegExp(`${Ap[n]}${t}`),r.set(t,i)),i}var Lp=()=>Date.now(),Rp=`system`,zp=null,Bp=null,Vp=null,Hp=60,Up,Wp=null,G=class{static get now(){return Lp}static set now(e){Lp=e}static set defaultZone(e){Rp=e}static get defaultZone(){return kp(Rp,Jf.instance)}static get defaultLocale(){return zp}static set defaultLocale(e){zp=e}static get defaultNumberingSystem(){return Bp}static set defaultNumberingSystem(e){Bp=e}static get defaultOutputCalendar(){return Vp}static set defaultOutputCalendar(e){Vp=e}static get defaultWeekSettings(){return Wp}static set defaultWeekSettings(e){Wp=vm(e)}static get twoDigitCutoffYear(){return Hp}static set twoDigitCutoffYear(e){Hp=e%100}static get throwOnInvalid(){return Up}static set throwOnInvalid(e){Up=e}static resetCaches(){W.resetCache(),tp.resetCache(),Y.resetCache(),Fp()}},Gp=class{constructor(e,t){this.reason=e,this.explanation=t}toMessage(){return this.explanation?`${this.reason}: ${this.explanation}`:this.reason}},Kp=[0,31,59,90,120,151,181,212,243,273,304,334],qp=[0,31,60,91,121,152,182,213,244,274,305,335];function Jp(e,t){return new Gp(`unit out of range`,`you specified ${t} (of type ${typeof t}) as a ${e}, which is invalid`)}function Yp(e,t,n){let r=new Date(Date.UTC(e,t-1,n));e<100&&e>=0&&r.setUTCFullYear(r.getUTCFullYear()-1900);let i=r.getUTCDay();return i===0?7:i}function Xp(e,t,n){return n+(Tm(e)?qp:Kp)[t-1]}function Zp(e,t){let n=Tm(e)?qp:Kp,r=n.findIndex(e=>e<t),i=t-n[r];return{month:r+1,day:i}}function Qp(e,t){return(e-t+7)%7+1}function $p(e,t=4,n=1){let{year:r,month:i,day:a}=e,o=Xp(r,i,a),s=Qp(Yp(r,i,a),n),c=Math.floor((o-s+14-t)/7),l;return c<1?(l=r-1,c=Am(l,t,n)):c>Am(r,t,n)?(l=r+1,c=1):l=r,{weekYear:l,weekNumber:c,weekday:s,...Lm(e)}}function em(e,t=4,n=1){let{weekYear:r,weekNumber:i,weekday:a}=e,o=Qp(Yp(r,1,t),n),s=Em(r),c=i*7+a-o-7+t,l;c<1?(l=r-1,c+=Em(l)):c>s?(l=r+1,c-=Em(r)):l=r;let{month:u,day:d}=Zp(l,c);return{year:l,month:u,day:d,...Lm(e)}}function tm(e){let{year:t,month:n,day:r}=e;return{year:t,ordinal:Xp(t,n,r),...Lm(e)}}function nm(e){let{year:t,ordinal:n}=e,{month:r,day:i}=Zp(t,n);return{year:t,month:r,day:i,...Lm(e)}}function rm(e,t){if(!K(e.localWeekday)||!K(e.localWeekNumber)||!K(e.localWeekYear)){if(!K(e.weekday)||!K(e.weekNumber)||!K(e.weekYear))throw new vf(`Cannot mix locale-based week fields with ISO-based week fields`);return K(e.localWeekday)||(e.weekday=e.localWeekday),K(e.localWeekNumber)||(e.weekNumber=e.localWeekNumber),K(e.localWeekYear)||(e.weekYear=e.localWeekYear),delete e.localWeekday,delete e.localWeekNumber,delete e.localWeekYear,{minDaysInFirstWeek:t.getMinDaysInFirstWeek(),startOfWeek:t.getStartOfWeek()}}else return{minDaysInFirstWeek:4,startOfWeek:1}}function im(e,t=4,n=1){let r=lm(e.weekYear),i=ym(e.weekNumber,1,Am(e.weekYear,t,n)),a=ym(e.weekday,1,7);return r?i?a?!1:Jp(`weekday`,e.weekday):Jp(`week`,e.weekNumber):Jp(`weekYear`,e.weekYear)}function am(e){let t=lm(e.year),n=ym(e.ordinal,1,Em(e.year));return t?n?!1:Jp(`ordinal`,e.ordinal):Jp(`year`,e.year)}function om(e){let t=lm(e.year),n=ym(e.month,1,12),r=ym(e.day,1,Dm(e.year,e.month));return t?n?r?!1:Jp(`day`,e.day):Jp(`month`,e.month):Jp(`year`,e.year)}function sm(e){let{hour:t,minute:n,second:r,millisecond:i}=e,a=ym(t,0,23)||t===24&&n===0&&r===0&&i===0,o=ym(n,0,59),s=ym(r,0,59),c=ym(i,0,999);return a?o?s?c?!1:Jp(`millisecond`,i):Jp(`second`,r):Jp(`minute`,n):Jp(`hour`,t)}function K(e){return e===void 0}function cm(e){return typeof e==`number`}function lm(e){return typeof e==`number`&&e%1==0}function um(e){return typeof e==`string`}function dm(e){return Object.prototype.toString.call(e)===`[object Date]`}function fm(){try{return typeof Intl<`u`&&!!Intl.RelativeTimeFormat}catch{return!1}}function pm(){try{return typeof Intl<`u`&&!!Intl.Locale&&(`weekInfo`in Intl.Locale.prototype||`getWeekInfo`in Intl.Locale.prototype)}catch{return!1}}function mm(e){return Array.isArray(e)?e:[e]}function hm(e,t,n){if(e.length!==0)return e.reduce((e,r)=>{let i=[t(r),r];return e&&n(e[0],i[0])===e[0]?e:i},null)[1]}function gm(e,t){return t.reduce((t,n)=>(t[n]=e[n],t),{})}function _m(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function vm(e){if(e==null)return null;if(typeof e!=`object`)throw new bf(`Week settings must be an object`);if(!ym(e.firstDay,1,7)||!ym(e.minimalDays,1,7)||!Array.isArray(e.weekend)||e.weekend.some(e=>!ym(e,1,7)))throw new bf(`Invalid week settings`);return{firstDay:e.firstDay,minimalDays:e.minimalDays,weekend:Array.from(e.weekend)}}function ym(e,t,n){return lm(e)&&e>=t&&e<=n}function bm(e,t){return e-t*Math.floor(e/t)}function q(e,t=2){let n=e<0,r;return r=n?`-`+(``+-e).padStart(t,`0`):(``+e).padStart(t,`0`),r}function xm(e){if(!(K(e)||e===null||e===``))return parseInt(e,10)}function Sm(e){if(!(K(e)||e===null||e===``))return parseFloat(e)}function Cm(e){if(!(K(e)||e===null||e===``)){let t=parseFloat(`0.`+e)*1e3;return Math.floor(t)}}function wm(e,t,n=`round`){let r=10**t;switch(n){case`expand`:return e>0?Math.ceil(e*r)/r:Math.floor(e*r)/r;case`trunc`:return Math.trunc(e*r)/r;case`round`:return Math.round(e*r)/r;case`floor`:return Math.floor(e*r)/r;case`ceil`:return Math.ceil(e*r)/r;default:throw RangeError(`Value rounding ${n} is out of range`)}}function Tm(e){return e%4==0&&(e%100!=0||e%400==0)}function Em(e){return Tm(e)?366:365}function Dm(e,t){let n=bm(t-1,12)+1,r=e+(t-n)/12;return n===2?Tm(r)?29:28:[31,null,31,30,31,30,31,31,30,31,30,31][n-1]}function Om(e){let t=Date.UTC(e.year,e.month-1,e.day,e.hour,e.minute,e.second,e.millisecond);return e.year<100&&e.year>=0&&(t=new Date(t),t.setUTCFullYear(e.year,e.month-1,e.day)),+t}function km(e,t,n){return-Qp(Yp(e,1,t),n)+t-1}function Am(e,t=4,n=1){let r=km(e,t,n),i=km(e+1,t,n);return(Em(e)-r+i)/7}function jm(e){return e>99?e:e>G.twoDigitCutoffYear?1900+e:2e3+e}function Mm(e,t,n,r=null){let i=new Date(e),a={hourCycle:`h23`,year:`numeric`,month:`2-digit`,day:`2-digit`,hour:`2-digit`,minute:`2-digit`};r&&(a.timeZone=r);let o={timeZoneName:t,...a},s=new Intl.DateTimeFormat(n,o).formatToParts(i).find(e=>e.type.toLowerCase()===`timezonename`);return s?s.value:null}function Nm(e,t){let n=parseInt(e,10);Number.isNaN(n)&&(n=0);let r=parseInt(t,10)||0,i=n<0||Object.is(n,-0)?-r:r;return n*60+i}function Pm(e){let t=Number(e);if(typeof e==`boolean`||e===``||!Number.isFinite(t))throw new bf(`Invalid unit value ${e}`);return t}function Fm(e,t){let n={};for(let r in e)if(_m(e,r)){let i=e[r];if(i==null)continue;n[t(r)]=Pm(i)}return n}function Im(e,t){let n=Math.trunc(Math.abs(e/60)),r=Math.trunc(Math.abs(e%60)),i=e>=0?`+`:`-`;switch(t){case`short`:return`${i}${q(n,2)}:${q(r,2)}`;case`narrow`:return`${i}${n}${r>0?`:${r}`:``}`;case`techie`:return`${i}${q(n,2)}${q(r,2)}`;default:throw RangeError(`Value format ${t} is out of range for property format`)}}function Lm(e){return gm(e,[`hour`,`minute`,`second`,`millisecond`])}var Rm=[`January`,`February`,`March`,`April`,`May`,`June`,`July`,`August`,`September`,`October`,`November`,`December`],zm=[`Jan`,`Feb`,`Mar`,`Apr`,`May`,`Jun`,`Jul`,`Aug`,`Sep`,`Oct`,`Nov`,`Dec`],Bm=[`J`,`F`,`M`,`A`,`M`,`J`,`J`,`A`,`S`,`O`,`N`,`D`];function Vm(e){switch(e){case`narrow`:return[...Bm];case`short`:return[...zm];case`long`:return[...Rm];case`numeric`:return[`1`,`2`,`3`,`4`,`5`,`6`,`7`,`8`,`9`,`10`,`11`,`12`];case`2-digit`:return[`01`,`02`,`03`,`04`,`05`,`06`,`07`,`08`,`09`,`10`,`11`,`12`];default:return null}}var Hm=[`Monday`,`Tuesday`,`Wednesday`,`Thursday`,`Friday`,`Saturday`,`Sunday`],Um=[`Mon`,`Tue`,`Wed`,`Thu`,`Fri`,`Sat`,`Sun`],Wm=[`M`,`T`,`W`,`T`,`F`,`S`,`S`];function Gm(e){switch(e){case`narrow`:return[...Wm];case`short`:return[...Um];case`long`:return[...Hm];case`numeric`:return[`1`,`2`,`3`,`4`,`5`,`6`,`7`];default:return null}}var Km=[`AM`,`PM`],qm=[`Before Christ`,`Anno Domini`],Jm=[`BC`,`AD`],Ym=[`B`,`A`];function Xm(e){switch(e){case`narrow`:return[...Ym];case`short`:return[...Jm];case`long`:return[...qm];default:return null}}function Zm(e){return Km[e.hour<12?0:1]}function Qm(e,t){return Gm(t)[e.weekday-1]}function $m(e,t){return Vm(t)[e.month-1]}function eh(e,t){return Xm(t)[e.year<0?0:1]}function th(e,t,n=`always`,r=!1){let i={years:[`year`,`yr.`],quarters:[`quarter`,`qtr.`],months:[`month`,`mo.`],weeks:[`week`,`wk.`],days:[`day`,`day`,`days`],hours:[`hour`,`hr.`],minutes:[`minute`,`min.`],seconds:[`second`,`sec.`]},a=[`hours`,`minutes`,`seconds`].indexOf(e)===-1;if(n===`auto`&&a){let n=e===`days`;switch(t){case 1:return n?`tomorrow`:`next ${i[e][0]}`;case-1:return n?`yesterday`:`last ${i[e][0]}`;case 0:return n?`today`:`this ${i[e][0]}`}}let o=Object.is(t,-0)||t<0,s=Math.abs(t),c=s===1,l=i[e],u=r?c?l[1]:l[2]||l[1]:c?i[e][0]:e;return o?`${s} ${u} ago`:`in ${s} ${u}`}function nh(e,t){let n=``;for(let r of e)r.literal?n+=r.val:n+=t(r.val);return n}var rh={D:wf,DD:Tf,DDD:Df,DDDD:Of,t:kf,tt:Af,ttt:jf,tttt:Mf,T:Nf,TT:Pf,TTT:Ff,TTTT:If,f:Lf,ff:zf,fff:Hf,ffff:Wf,F:Rf,FF:Bf,FFF:Uf,FFFF:Gf},ih=class e{static create(t,n={}){return new e(t,n)}static parseFormat(e){let t=null,n=``,r=!1,i=[];for(let a=0;a<e.length;a++){let o=e.charAt(a);o===`'`?((n.length>0||r)&&i.push({literal:r||/^\s+$/.test(n),val:n===``?`'`:n}),t=null,n=``,r=!r):r||o===t?n+=o:(n.length>0&&i.push({literal:/^\s+$/.test(n),val:n}),n=o,t=o)}return n.length>0&&i.push({literal:r||/^\s+$/.test(n),val:n}),i}static macroTokenToFormatOpts(e){return rh[e]}constructor(e,t){this.opts=t,this.loc=e,this.systemLoc=null}formatWithSystemDefault(e,t){return this.systemLoc===null&&(this.systemLoc=this.loc.redefaultToSystem()),this.systemLoc.dtFormatter(e,{...this.opts,...t}).format()}dtFormatter(e,t={}){return this.loc.dtFormatter(e,{...this.opts,...t})}formatDateTime(e,t){return this.dtFormatter(e,t).format()}formatDateTimeParts(e,t){return this.dtFormatter(e,t).formatToParts()}formatInterval(e,t){return this.dtFormatter(e.start,t).dtf.formatRange(e.start.toJSDate(),e.end.toJSDate())}resolvedOptions(e,t){return this.dtFormatter(e,t).resolvedOptions()}num(e,t=0,n=void 0){if(this.opts.forceSimple)return q(e,t);let r={...this.opts};return t>0&&(r.padTo=t),n&&(r.signDisplay=n),this.loc.numberFormatter(r).format(e)}formatDateTimeFromString(t,n){let r=this.loc.listingMode()===`en`,i=this.loc.outputCalendar&&this.loc.outputCalendar!==`gregory`,a=(e,n)=>this.loc.extract(t,e,n),o=e=>t.isOffsetFixed&&t.offset===0&&e.allowZ?`Z`:t.isValid?t.zone.formatOffset(t.ts,e.format):``,s=()=>r?Zm(t):a({hour:`numeric`,hourCycle:`h12`},`dayperiod`),c=(e,n)=>r?$m(t,e):a(n?{month:e}:{month:e,day:`numeric`},`month`),l=(e,n)=>r?Qm(t,e):a(n?{weekday:e}:{weekday:e,month:`long`,day:`numeric`},`weekday`),u=n=>{let r=e.macroTokenToFormatOpts(n);return r?this.formatWithSystemDefault(t,r):n},d=e=>r?eh(t,e):a({era:e},`era`);return nh(e.parseFormat(n),e=>{switch(e){case`S`:return this.num(t.millisecond);case`u`:case`SSS`:return this.num(t.millisecond,3);case`s`:return this.num(t.second);case`ss`:return this.num(t.second,2);case`uu`:return this.num(Math.floor(t.millisecond/10),2);case`uuu`:return this.num(Math.floor(t.millisecond/100));case`m`:return this.num(t.minute);case`mm`:return this.num(t.minute,2);case`h`:return this.num(t.hour%12==0?12:t.hour%12);case`hh`:return this.num(t.hour%12==0?12:t.hour%12,2);case`H`:return this.num(t.hour);case`HH`:return this.num(t.hour,2);case`Z`:return o({format:`narrow`,allowZ:this.opts.allowZ});case`ZZ`:return o({format:`short`,allowZ:this.opts.allowZ});case`ZZZ`:return o({format:`techie`,allowZ:this.opts.allowZ});case`ZZZZ`:return t.zone.offsetName(t.ts,{format:`short`,locale:this.loc.locale});case`ZZZZZ`:return t.zone.offsetName(t.ts,{format:`long`,locale:this.loc.locale});case`z`:return t.zoneName;case`a`:return s();case`d`:return i?a({day:`numeric`},`day`):this.num(t.day);case`dd`:return i?a({day:`2-digit`},`day`):this.num(t.day,2);case`c`:return this.num(t.weekday);case`ccc`:return l(`short`,!0);case`cccc`:return l(`long`,!0);case`ccccc`:return l(`narrow`,!0);case`E`:return this.num(t.weekday);case`EEE`:return l(`short`,!1);case`EEEE`:return l(`long`,!1);case`EEEEE`:return l(`narrow`,!1);case`L`:return i?a({month:`numeric`,day:`numeric`},`month`):this.num(t.month);case`LL`:return i?a({month:`2-digit`,day:`numeric`},`month`):this.num(t.month,2);case`LLL`:return c(`short`,!0);case`LLLL`:return c(`long`,!0);case`LLLLL`:return c(`narrow`,!0);case`M`:return i?a({month:`numeric`},`month`):this.num(t.month);case`MM`:return i?a({month:`2-digit`},`month`):this.num(t.month,2);case`MMM`:return c(`short`,!1);case`MMMM`:return c(`long`,!1);case`MMMMM`:return c(`narrow`,!1);case`y`:return i?a({year:`numeric`},`year`):this.num(t.year);case`yy`:return i?a({year:`2-digit`},`year`):this.num(t.year.toString().slice(-2),2);case`yyyy`:return i?a({year:`numeric`},`year`):this.num(t.year,4);case`yyyyyy`:return i?a({year:`numeric`},`year`):this.num(t.year,6);case`G`:return d(`short`);case`GG`:return d(`long`);case`GGGGG`:return d(`narrow`);case`kk`:return this.num(t.weekYear.toString().slice(-2),2);case`kkkk`:return this.num(t.weekYear,4);case`W`:return this.num(t.weekNumber);case`WW`:return this.num(t.weekNumber,2);case`n`:return this.num(t.localWeekNumber);case`nn`:return this.num(t.localWeekNumber,2);case`ii`:return this.num(t.localWeekYear.toString().slice(-2),2);case`iiii`:return this.num(t.localWeekYear,4);case`o`:return this.num(t.ordinal);case`ooo`:return this.num(t.ordinal,3);case`q`:return this.num(t.quarter);case`qq`:return this.num(t.quarter,2);case`X`:return this.num(Math.floor(t.ts/1e3));case`x`:return this.num(t.ts);default:return u(e)}})}formatDurationFromString(t,n){let r=this.opts.signMode===`negativeLargestOnly`?-1:1,i=e=>{switch(e[0]){case`S`:return`milliseconds`;case`s`:return`seconds`;case`m`:return`minutes`;case`h`:return`hours`;case`d`:return`days`;case`w`:return`weeks`;case`M`:return`months`;case`y`:return`years`;default:return null}},a=(e,t)=>n=>{let a=i(n);if(a){let i=t.isNegativeDuration&&a!==t.largestUnit?r:1,o;return o=this.opts.signMode===`negativeLargestOnly`&&a!==t.largestUnit?`never`:this.opts.signMode===`all`?`always`:`auto`,this.num(e.get(a)*i,n.length,o)}else return n},o=e.parseFormat(n),s=o.reduce((e,{literal:t,val:n})=>t?e:e.concat(n),[]),c=t.shiftTo(...s.map(i).filter(e=>e));return nh(o,a(c,{isNegativeDuration:c<0,largestUnit:Object.keys(c.values)[0]}))}},ah=/[A-Za-z_+-]{1,256}(?::?\/[A-Za-z0-9_+-]{1,256}(?:\/[A-Za-z0-9_+-]{1,256})?)?/;function oh(...e){let t=e.reduce((e,t)=>e+t.source,``);return RegExp(`^${t}$`)}function sh(...e){return t=>e.reduce(([e,n,r],i)=>{let[a,o,s]=i(t,r);return[{...e,...a},o||n,s]},[{},null,1]).slice(0,2)}function ch(e,...t){if(e==null)return[null,null];for(let[n,r]of t){let t=n.exec(e);if(t)return r(t)}return[null,null]}function lh(...e){return(t,n)=>{let r={},i;for(i=0;i<e.length;i++)r[e[i]]=xm(t[n+i]);return[r,null,n+i]}}var uh=/(?:([Zz])|([+-]\d\d)(?::?(\d\d))?)/,dh=`(?:${uh.source}?(?:\\[(${ah.source})\\])?)?`,fh=/(\d\d)(?::?(\d\d)(?::?(\d\d)(?:[.,](\d{1,30}))?)?)?/,ph=RegExp(`${fh.source}${dh}`),mh=RegExp(`(?:[Tt]${ph.source})?`),hh=/([+-]\d{6}|\d{4})(?:-?(\d\d)(?:-?(\d\d))?)?/,gh=/(\d{4})-?W(\d\d)(?:-?(\d))?/,_h=/(\d{4})-?(\d{3})/,vh=lh(`weekYear`,`weekNumber`,`weekDay`),yh=lh(`year`,`ordinal`),bh=/(\d{4})-(\d\d)-(\d\d)/,xh=RegExp(`${fh.source} ?(?:${uh.source}|(${ah.source}))?`),Sh=RegExp(`(?: ${xh.source})?`);function Ch(e,t,n){let r=e[t];return K(r)?n:xm(r)}function wh(e,t){return[{year:Ch(e,t),month:Ch(e,t+1,1),day:Ch(e,t+2,1)},null,t+3]}function Th(e,t){return[{hours:Ch(e,t,0),minutes:Ch(e,t+1,0),seconds:Ch(e,t+2,0),milliseconds:Cm(e[t+3])},null,t+4]}function Eh(e,t){let n=!e[t]&&!e[t+1],r=Nm(e[t+1],e[t+2]);return[{},n?null:Dp.instance(r),t+3]}function Dh(e,t){return[{},e[t]?tp.create(e[t]):null,t+1]}var Oh=RegExp(`^T?${fh.source}$`),kh=/^-?P(?:(?:(-?\d{1,20}(?:\.\d{1,20})?)Y)?(?:(-?\d{1,20}(?:\.\d{1,20})?)M)?(?:(-?\d{1,20}(?:\.\d{1,20})?)W)?(?:(-?\d{1,20}(?:\.\d{1,20})?)D)?(?:T(?:(-?\d{1,20}(?:\.\d{1,20})?)H)?(?:(-?\d{1,20}(?:\.\d{1,20})?)M)?(?:(-?\d{1,20})(?:[.,](-?\d{1,20}))?S)?)?)$/;function Ah(e){let[t,n,r,i,a,o,s,c,l]=e,u=t[0]===`-`,d=c&&c[0]===`-`,f=(e,t=!1)=>e!==void 0&&(t||e&&u)?-e:e;return[{years:f(Sm(n)),months:f(Sm(r)),weeks:f(Sm(i)),days:f(Sm(a)),hours:f(Sm(o)),minutes:f(Sm(s)),seconds:f(Sm(c),c===`-0`),milliseconds:f(Cm(l),d)}]}var jh={GMT:0,EDT:-240,EST:-300,CDT:-300,CST:-360,MDT:-360,MST:-420,PDT:-420,PST:-480};function Mh(e,t,n,r,i,a,o){let s={year:t.length===2?jm(xm(t)):xm(t),month:zm.indexOf(n)+1,day:xm(r),hour:xm(i),minute:xm(a)};return o&&(s.second=xm(o)),e&&(s.weekday=e.length>3?Hm.indexOf(e)+1:Um.indexOf(e)+1),s}var Nh=/^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|(?:([+-]\d\d)(\d\d)))$/;function Ph(e){let[,t,n,r,i,a,o,s,c,l,u,d]=e,f=Mh(t,i,r,n,a,o,s),ee;return ee=c?jh[c]:l?0:Nm(u,d),[f,new Dp(ee)]}function Fh(e){return e.replace(/\([^()]*\)|[\n\t]/g,` `).replace(/(\s\s+)/g,` `).trim()}var Ih=/^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), (\d\d) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) (\d{4}) (\d\d):(\d\d):(\d\d) GMT$/,Lh=/^(Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday), (\d\d)-(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-(\d\d) (\d\d):(\d\d):(\d\d) GMT$/,Rh=/^(Mon|Tue|Wed|Thu|Fri|Sat|Sun) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) ( \d|\d\d) (\d\d):(\d\d):(\d\d) (\d{4})$/;function zh(e){let[,t,n,r,i,a,o,s]=e;return[Mh(t,i,r,n,a,o,s),Dp.utcInstance]}function Bh(e){let[,t,n,r,i,a,o,s]=e;return[Mh(t,s,n,r,i,a,o),Dp.utcInstance]}var Vh=oh(hh,mh),Hh=oh(gh,mh),Uh=oh(_h,mh),Wh=oh(ph),Gh=sh(wh,Th,Eh,Dh),Kh=sh(vh,Th,Eh,Dh),qh=sh(yh,Th,Eh,Dh),Jh=sh(Th,Eh,Dh);function Yh(e){return ch(e,[Vh,Gh],[Hh,Kh],[Uh,qh],[Wh,Jh])}function Xh(e){return ch(Fh(e),[Nh,Ph])}function Zh(e){return ch(e,[Ih,zh],[Lh,zh],[Rh,Bh])}function Qh(e){return ch(e,[kh,Ah])}var $h=sh(Th);function eg(e){return ch(e,[Oh,$h])}var tg=oh(bh,Sh),ng=oh(xh),rg=sh(Th,Eh,Dh);function ig(e){return ch(e,[tg,Gh],[ng,rg])}var ag=`Invalid Duration`,og={weeks:{days:7,hours:168,minutes:10080,seconds:10080*60,milliseconds:10080*60*1e3},days:{hours:24,minutes:1440,seconds:1440*60,milliseconds:1440*60*1e3},hours:{minutes:60,seconds:3600,milliseconds:3600*1e3},minutes:{seconds:60,milliseconds:60*1e3},seconds:{milliseconds:1e3}},sg={years:{quarters:4,months:12,weeks:52,days:365,hours:365*24,minutes:365*24*60,seconds:365*24*60*60,milliseconds:365*24*60*60*1e3},quarters:{months:3,weeks:13,days:91,hours:2184,minutes:2184*60,seconds:2184*60*60,milliseconds:2184*60*60*1e3},months:{weeks:4,days:30,hours:720,minutes:720*60,seconds:720*60*60,milliseconds:720*60*60*1e3},...og},cg=146097/400,lg=146097/4800,ug={years:{quarters:4,months:12,weeks:cg/7,days:cg,hours:cg*24,minutes:cg*24*60,seconds:cg*24*60*60,milliseconds:cg*24*60*60*1e3},quarters:{months:3,weeks:cg/28,days:cg/4,hours:cg*24/4,minutes:cg*24*60/4,seconds:cg*24*60*60/4,milliseconds:cg*24*60*60*1e3/4},months:{weeks:lg/7,days:lg,hours:lg*24,minutes:lg*24*60,seconds:lg*24*60*60,milliseconds:lg*24*60*60*1e3},...og},dg=[`years`,`quarters`,`months`,`weeks`,`days`,`hours`,`minutes`,`seconds`,`milliseconds`],fg=dg.slice(0).reverse();function pg(e,t,n=!1){return new _g({values:n?t.values:{...e.values,...t.values||{}},loc:e.loc.clone(t.loc),conversionAccuracy:t.conversionAccuracy||e.conversionAccuracy,matrix:t.matrix||e.matrix})}function mg(e,t){let n=t.milliseconds??0;for(let r of fg.slice(1))t[r]&&(n+=t[r]*e[r].milliseconds);return n}function hg(e,t){let n=mg(e,t)<0?-1:1;dg.reduceRight((r,i)=>{if(K(t[i]))return r;if(r){let a=t[r]*n,o=e[i][r],s=Math.floor(a/o);t[i]+=s*n,t[r]-=s*o*n}return i},null),dg.reduce((n,r)=>{if(K(t[r]))return n;if(n){let i=t[n]%1;t[n]-=i,t[r]+=i*e[n][r]}return r},null)}function gg(e){let t={};for(let[n,r]of Object.entries(e))r!==0&&(t[n]=r);return t}var _g=class e{constructor(e){let t=e.conversionAccuracy===`longterm`||!1,n=t?ug:sg;e.matrix&&(n=e.matrix),this.values=e.values,this.loc=e.loc||W.create(),this.conversionAccuracy=t?`longterm`:`casual`,this.invalid=e.invalid||null,this.matrix=n,this.isLuxonDuration=!0}static fromMillis(t,n){return e.fromObject({milliseconds:t},n)}static fromObject(t,n={}){if(typeof t!=`object`||!t)throw new bf(`Duration.fromObject: argument expected to be an object, got ${t===null?`null`:typeof t}`);return new e({values:Fm(t,e.normalizeUnit),loc:W.fromObject(n),conversionAccuracy:n.conversionAccuracy,matrix:n.matrix})}static fromDurationLike(t){if(cm(t))return e.fromMillis(t);if(e.isDuration(t))return t;if(typeof t==`object`)return e.fromObject(t);throw new bf(`Unknown duration argument ${t} of type ${typeof t}`)}static fromISO(t,n){let[r]=Qh(t);return r?e.fromObject(r,n):e.invalid(`unparsable`,`the input "${t}" can't be parsed as ISO 8601`)}static fromISOTime(t,n){let[r]=eg(t);return r?e.fromObject(r,n):e.invalid(`unparsable`,`the input "${t}" can't be parsed as ISO 8601`)}static invalid(t,n=null){if(!t)throw new bf(`need to specify a reason the Duration is invalid`);let r=t instanceof Gp?t:new Gp(t,n);if(G.throwOnInvalid)throw new _f(r);return new e({invalid:r})}static normalizeUnit(e){let t={year:`years`,years:`years`,quarter:`quarters`,quarters:`quarters`,month:`months`,months:`months`,week:`weeks`,weeks:`weeks`,day:`days`,days:`days`,hour:`hours`,hours:`hours`,minute:`minutes`,minutes:`minutes`,second:`seconds`,seconds:`seconds`,millisecond:`milliseconds`,milliseconds:`milliseconds`}[e&&e.toLowerCase()];if(!t)throw new yf(e);return t}static isDuration(e){return e&&e.isLuxonDuration||!1}get locale(){return this.isValid?this.loc.locale:null}get numberingSystem(){return this.isValid?this.loc.numberingSystem:null}toFormat(e,t={}){let n={...t,floor:t.round!==!1&&t.floor!==!1};return this.isValid?ih.create(this.loc,n).formatDurationFromString(this,e):ag}toHuman(e={}){if(!this.isValid)return ag;let t=e.showZeros!==!1,n=dg.map(n=>{let r=this.values[n];return K(r)||r===0&&!t?null:this.loc.numberFormatter({style:`unit`,unitDisplay:`long`,...e,unit:n.slice(0,-1)}).format(r)}).filter(e=>e);return this.loc.listFormatter({type:`conjunction`,style:e.listStyle||`narrow`,...e}).format(n)}toObject(){return this.isValid?{...this.values}:{}}toISO(){if(!this.isValid)return null;let e=`P`;return this.years!==0&&(e+=this.years+`Y`),(this.months!==0||this.quarters!==0)&&(e+=this.months+this.quarters*3+`M`),this.weeks!==0&&(e+=this.weeks+`W`),this.days!==0&&(e+=this.days+`D`),(this.hours!==0||this.minutes!==0||this.seconds!==0||this.milliseconds!==0)&&(e+=`T`),this.hours!==0&&(e+=this.hours+`H`),this.minutes!==0&&(e+=this.minutes+`M`),(this.seconds!==0||this.milliseconds!==0)&&(e+=wm(this.seconds+this.milliseconds/1e3,3)+`S`),e===`P`&&(e+=`T0S`),e}toISOTime(e={}){if(!this.isValid)return null;let t=this.toMillis();return t<0||t>=864e5?null:(e={suppressMilliseconds:!1,suppressSeconds:!1,includePrefix:!1,format:`extended`,...e,includeOffset:!1},Y.fromMillis(t,{zone:`UTC`}).toISOTime(e))}toJSON(){return this.toISO()}toString(){return this.toISO()}[Symbol.for(`nodejs.util.inspect.custom`)](){return this.isValid?`Duration { values: ${JSON.stringify(this.values)} }`:`Duration { Invalid, reason: ${this.invalidReason} }`}toMillis(){return this.isValid?mg(this.matrix,this.values):NaN}valueOf(){return this.toMillis()}plus(t){if(!this.isValid)return this;let n=e.fromDurationLike(t),r={};for(let e of dg)(_m(n.values,e)||_m(this.values,e))&&(r[e]=n.get(e)+this.get(e));return pg(this,{values:r},!0)}minus(t){if(!this.isValid)return this;let n=e.fromDurationLike(t);return this.plus(n.negate())}mapUnits(e){if(!this.isValid)return this;let t={};for(let n of Object.keys(this.values))t[n]=Pm(e(this.values[n],n));return pg(this,{values:t},!0)}get(t){return this[e.normalizeUnit(t)]}set(t){if(!this.isValid)return this;let n={...this.values,...Fm(t,e.normalizeUnit)};return pg(this,{values:n})}reconfigure({locale:e,numberingSystem:t,conversionAccuracy:n,matrix:r}={}){let i={loc:this.loc.clone({locale:e,numberingSystem:t}),matrix:r,conversionAccuracy:n};return pg(this,i)}as(e){return this.isValid?this.shiftTo(e).get(e):NaN}normalize(){if(!this.isValid)return this;let e=this.toObject();return hg(this.matrix,e),pg(this,{values:e},!0)}rescale(){if(!this.isValid)return this;let e=gg(this.normalize().shiftToAll().toObject());return pg(this,{values:e},!0)}shiftTo(...t){if(!this.isValid||t.length===0)return this;t=t.map(t=>e.normalizeUnit(t));let n={},r={},i=this.toObject(),a;for(let e of dg)if(t.indexOf(e)>=0){a=e;let t=0;for(let n in r)t+=this.matrix[n][e]*r[n],r[n]=0;cm(i[e])&&(t+=i[e]);let o=Math.trunc(t);n[e]=o,r[e]=(t*1e3-o*1e3)/1e3}else cm(i[e])&&(r[e]=i[e]);for(let e in r)r[e]!==0&&(n[a]+=e===a?r[e]:r[e]/this.matrix[a][e]);return hg(this.matrix,n),pg(this,{values:n},!0)}shiftToAll(){return this.isValid?this.shiftTo(`years`,`months`,`weeks`,`days`,`hours`,`minutes`,`seconds`,`milliseconds`):this}negate(){if(!this.isValid)return this;let e={};for(let t of Object.keys(this.values))e[t]=this.values[t]===0?0:-this.values[t];return pg(this,{values:e},!0)}removeZeros(){if(!this.isValid)return this;let e=gg(this.values);return pg(this,{values:e},!0)}get years(){return this.isValid?this.values.years||0:NaN}get quarters(){return this.isValid?this.values.quarters||0:NaN}get months(){return this.isValid?this.values.months||0:NaN}get weeks(){return this.isValid?this.values.weeks||0:NaN}get days(){return this.isValid?this.values.days||0:NaN}get hours(){return this.isValid?this.values.hours||0:NaN}get minutes(){return this.isValid?this.values.minutes||0:NaN}get seconds(){return this.isValid?this.values.seconds||0:NaN}get milliseconds(){return this.isValid?this.values.milliseconds||0:NaN}get isValid(){return this.invalid===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}equals(e){if(!this.isValid||!e.isValid||!this.loc.equals(e.loc))return!1;function t(e,t){return e===void 0||e===0?t===void 0||t===0:e===t}for(let n of dg)if(!t(this.values[n],e.values[n]))return!1;return!0}},vg=`Invalid Interval`;function yg(e,t){return!e||!e.isValid?bg.invalid(`missing or invalid start`):!t||!t.isValid?bg.invalid(`missing or invalid end`):t<e?bg.invalid(`end before start`,`The end of an interval must be after its start, but you had start=${e.toISO()} and end=${t.toISO()}`):null}var bg=class e{constructor(e){this.s=e.start,this.e=e.end,this.invalid=e.invalid||null,this.isLuxonInterval=!0}static invalid(t,n=null){if(!t)throw new bf(`need to specify a reason the Interval is invalid`);let r=t instanceof Gp?t:new Gp(t,n);if(G.throwOnInvalid)throw new gf(r);return new e({invalid:r})}static fromDateTimes(t,n){let r=S_(t),i=S_(n);return yg(r,i)??new e({start:r,end:i})}static after(t,n){let r=_g.fromDurationLike(n),i=S_(t);return e.fromDateTimes(i,i.plus(r))}static before(t,n){let r=_g.fromDurationLike(n),i=S_(t);return e.fromDateTimes(i.minus(r),i)}static fromISO(t,n){let[r,i]=(t||``).split(`/`,2);if(r&&i){let t,a;try{t=Y.fromISO(r,n),a=t.isValid}catch{a=!1}let o,s;try{o=Y.fromISO(i,n),s=o.isValid}catch{s=!1}if(a&&s)return e.fromDateTimes(t,o);if(a){let r=_g.fromISO(i,n);if(r.isValid)return e.after(t,r)}else if(s){let t=_g.fromISO(r,n);if(t.isValid)return e.before(o,t)}}return e.invalid(`unparsable`,`the input "${t}" can't be parsed as ISO 8601`)}static isInterval(e){return e&&e.isLuxonInterval||!1}get start(){return this.isValid?this.s:null}get end(){return this.isValid?this.e:null}get lastDateTime(){return this.isValid&&this.e?this.e.minus(1):null}get isValid(){return this.invalidReason===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}length(e=`milliseconds`){return this.isValid?this.toDuration(e).get(e):NaN}count(e=`milliseconds`,t){if(!this.isValid)return NaN;let n=this.start.startOf(e,t),r;return r=t?.useLocaleWeeks?this.end.reconfigure({locale:n.locale}):this.end,r=r.startOf(e,t),Math.floor(r.diff(n,e).get(e))+(r.valueOf()!==this.end.valueOf())}hasSame(e){return this.isValid?this.isEmpty()||this.e.minus(1).hasSame(this.s,e):!1}isEmpty(){return this.s.valueOf()===this.e.valueOf()}isAfter(e){return this.isValid?this.s>e:!1}isBefore(e){return this.isValid?this.e<=e:!1}contains(e){return this.isValid?this.s<=e&&this.e>e:!1}set({start:t,end:n}={}){return this.isValid?e.fromDateTimes(t||this.s,n||this.e):this}splitAt(...t){if(!this.isValid)return[];let n=t.map(S_).filter(e=>this.contains(e)).sort((e,t)=>e.toMillis()-t.toMillis()),r=[],{s:i}=this,a=0;for(;i<this.e;){let t=n[a]||this.e,o=+t>+this.e?this.e:t;r.push(e.fromDateTimes(i,o)),i=o,a+=1}return r}splitBy(t){let n=_g.fromDurationLike(t);if(!this.isValid||!n.isValid||n.as(`milliseconds`)===0)return[];let{s:r}=this,i=1,a,o=[];for(;r<this.e;){let t=this.start.plus(n.mapUnits(e=>e*i));a=+t>+this.e?this.e:t,o.push(e.fromDateTimes(r,a)),r=a,i+=1}return o}divideEqually(e){return this.isValid?this.splitBy(this.length()/e).slice(0,e):[]}overlaps(e){return this.e>e.s&&this.s<e.e}abutsStart(e){return this.isValid?+this.e==+e.s:!1}abutsEnd(e){return this.isValid?+e.e==+this.s:!1}engulfs(e){return this.isValid?this.s<=e.s&&this.e>=e.e:!1}equals(e){return!this.isValid||!e.isValid?!1:this.s.equals(e.s)&&this.e.equals(e.e)}intersection(t){if(!this.isValid)return this;let n=this.s>t.s?this.s:t.s,r=this.e<t.e?this.e:t.e;return n>=r?null:e.fromDateTimes(n,r)}union(t){if(!this.isValid)return this;let n=this.s<t.s?this.s:t.s,r=this.e>t.e?this.e:t.e;return e.fromDateTimes(n,r)}static merge(e){let[t,n]=e.sort((e,t)=>e.s-t.s).reduce(([e,t],n)=>t?t.overlaps(n)||t.abutsStart(n)?[e,t.union(n)]:[e.concat([t]),n]:[e,n],[[],null]);return n&&t.push(n),t}static xor(t){let n=null,r=0,i=[],a=t.map(e=>[{time:e.s,type:`s`},{time:e.e,type:`e`}]),o=Array.prototype.concat(...a).sort((e,t)=>e.time-t.time);for(let t of o)r+=t.type===`s`?1:-1,r===1?n=t.time:(n&&+n!=+t.time&&i.push(e.fromDateTimes(n,t.time)),n=null);return e.merge(i)}difference(...t){return e.xor([this].concat(t)).map(e=>this.intersection(e)).filter(e=>e&&!e.isEmpty())}toString(){return this.isValid?`[${this.s.toISO()} – ${this.e.toISO()})`:vg}[Symbol.for(`nodejs.util.inspect.custom`)](){return this.isValid?`Interval { start: ${this.s.toISO()}, end: ${this.e.toISO()} }`:`Interval { Invalid, reason: ${this.invalidReason} }`}toLocaleString(e=wf,t={}){return this.isValid?ih.create(this.s.loc.clone(t),e).formatInterval(this):vg}toISO(e){return this.isValid?`${this.s.toISO(e)}/${this.e.toISO(e)}`:vg}toISODate(){return this.isValid?`${this.s.toISODate()}/${this.e.toISODate()}`:vg}toISOTime(e){return this.isValid?`${this.s.toISOTime(e)}/${this.e.toISOTime(e)}`:vg}toFormat(e,{separator:t=` – `}={}){return this.isValid?`${this.s.toFormat(e)}${t}${this.e.toFormat(e)}`:vg}toDuration(e,t){return this.isValid?this.e.diff(this.s,e,t):_g.invalid(this.invalidReason)}mapEndpoints(t){return e.fromDateTimes(t(this.s),t(this.e))}},xg=class{static hasDST(e=G.defaultZone){let t=Y.now().setZone(e).set({month:12});return!e.isUniversal&&t.offset!==t.set({month:6}).offset}static isValidIANAZone(e){return tp.isValidZone(e)}static normalizeZone(e){return kp(e,G.defaultZone)}static getStartOfWeek({locale:e=null,locObj:t=null}={}){return(t||W.create(e)).getStartOfWeek()}static getMinimumDaysInFirstWeek({locale:e=null,locObj:t=null}={}){return(t||W.create(e)).getMinDaysInFirstWeek()}static getWeekendWeekdays({locale:e=null,locObj:t=null}={}){return(t||W.create(e)).getWeekendDays().slice()}static months(e=`long`,{locale:t=null,numberingSystem:n=null,locObj:r=null,outputCalendar:i=`gregory`}={}){return(r||W.create(t,n,i)).months(e)}static monthsFormat(e=`long`,{locale:t=null,numberingSystem:n=null,locObj:r=null,outputCalendar:i=`gregory`}={}){return(r||W.create(t,n,i)).months(e,!0)}static weekdays(e=`long`,{locale:t=null,numberingSystem:n=null,locObj:r=null}={}){return(r||W.create(t,n,null)).weekdays(e)}static weekdaysFormat(e=`long`,{locale:t=null,numberingSystem:n=null,locObj:r=null}={}){return(r||W.create(t,n,null)).weekdays(e,!0)}static meridiems({locale:e=null}={}){return W.create(e).meridiems()}static eras(e=`short`,{locale:t=null}={}){return W.create(t,null,`gregory`).eras(e)}static features(){return{relative:fm(),localeWeek:pm()}}};function Sg(e,t){let n=e=>e.toUTC(0,{keepLocalTime:!0}).startOf(`day`).valueOf(),r=n(t)-n(e);return Math.floor(_g.fromMillis(r).as(`days`))}function Cg(e,t,n){let r=[[`years`,(e,t)=>t.year-e.year],[`quarters`,(e,t)=>t.quarter-e.quarter+(t.year-e.year)*4],[`months`,(e,t)=>t.month-e.month+(t.year-e.year)*12],[`weeks`,(e,t)=>{let n=Sg(e,t);return(n-n%7)/7}],[`days`,Sg]],i={},a=e,o,s;for(let[c,l]of r)n.indexOf(c)>=0&&(o=c,i[c]=l(e,t),s=a.plus(i),s>t?(i[c]--,e=a.plus(i),e>t&&(s=e,i[c]--,e=a.plus(i))):e=s);return[e,i,s,o]}function wg(e,t,n,r){let[i,a,o,s]=Cg(e,t,n),c=t-i,l=n.filter(e=>[`hours`,`minutes`,`seconds`,`milliseconds`].indexOf(e)>=0);l.length===0&&(o<t&&(o=i.plus({[s]:1})),o!==i&&(a[s]=(a[s]||0)+c/(o-i)));let u=_g.fromObject(a,r);return l.length>0?_g.fromMillis(c,r).shiftTo(...l).plus(u):u}var Tg=`missing Intl.DateTimeFormat.formatToParts support`;function J(e,t=e=>e){return{regex:e,deser:([e])=>t(Np(e))}}var Eg=`[ \xA0]`,Dg=new RegExp(Eg,`g`);function Og(e){return e.replace(/\./g,`\\.?`).replace(Dg,Eg)}function kg(e){return e.replace(/\./g,``).replace(Dg,` `).toLowerCase()}function Ag(e,t){return e===null?null:{regex:RegExp(e.map(Og).join(`|`)),deser:([n])=>e.findIndex(e=>kg(n)===kg(e))+t}}function jg(e,t){return{regex:e,deser:([,e,t])=>Nm(e,t),groups:t}}function Mg(e){return{regex:e,deser:([e])=>e}}function Ng(e){return e.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,`\\$&`)}function Pg(e,t){let n=Ip(t),r=Ip(t,`{2}`),i=Ip(t,`{3}`),a=Ip(t,`{4}`),o=Ip(t,`{6}`),s=Ip(t,`{1,2}`),c=Ip(t,`{1,3}`),l=Ip(t,`{1,6}`),u=Ip(t,`{1,9}`),d=Ip(t,`{2,4}`),f=Ip(t,`{4,6}`),ee=e=>({regex:RegExp(Ng(e.val)),deser:([e])=>e,literal:!0}),p=(p=>{if(e.literal)return ee(p);switch(p.val){case`G`:return Ag(t.eras(`short`),0);case`GG`:return Ag(t.eras(`long`),0);case`y`:return J(l);case`yy`:return J(d,jm);case`yyyy`:return J(a);case`yyyyy`:return J(f);case`yyyyyy`:return J(o);case`M`:return J(s);case`MM`:return J(r);case`MMM`:return Ag(t.months(`short`,!0),1);case`MMMM`:return Ag(t.months(`long`,!0),1);case`L`:return J(s);case`LL`:return J(r);case`LLL`:return Ag(t.months(`short`,!1),1);case`LLLL`:return Ag(t.months(`long`,!1),1);case`d`:return J(s);case`dd`:return J(r);case`o`:return J(c);case`ooo`:return J(i);case`HH`:return J(r);case`H`:return J(s);case`hh`:return J(r);case`h`:return J(s);case`mm`:return J(r);case`m`:return J(s);case`q`:return J(s);case`qq`:return J(r);case`s`:return J(s);case`ss`:return J(r);case`S`:return J(c);case`SSS`:return J(i);case`u`:return Mg(u);case`uu`:return Mg(s);case`uuu`:return J(n);case`a`:return Ag(t.meridiems(),0);case`kkkk`:return J(a);case`kk`:return J(d,jm);case`W`:return J(s);case`WW`:return J(r);case`E`:case`c`:return J(n);case`EEE`:return Ag(t.weekdays(`short`,!1),1);case`EEEE`:return Ag(t.weekdays(`long`,!1),1);case`ccc`:return Ag(t.weekdays(`short`,!0),1);case`cccc`:return Ag(t.weekdays(`long`,!0),1);case`Z`:case`ZZ`:return jg(RegExp(`([+-]${s.source})(?::(${r.source}))?`),2);case`ZZZ`:return jg(RegExp(`([+-]${s.source})(${r.source})?`),2);case`z`:return Mg(/[a-z_+-/]{1,256}?/i);case` `:return Mg(/[^\S\n\r]/);default:return ee(p)}})(e)||{invalidReason:Tg};return p.token=e,p}var Fg={year:{"2-digit":`yy`,numeric:`yyyyy`},month:{numeric:`M`,"2-digit":`MM`,short:`MMM`,long:`MMMM`},day:{numeric:`d`,"2-digit":`dd`},weekday:{short:`EEE`,long:`EEEE`},dayperiod:`a`,dayPeriod:`a`,hour12:{numeric:`h`,"2-digit":`hh`},hour24:{numeric:`H`,"2-digit":`HH`},minute:{numeric:`m`,"2-digit":`mm`},second:{numeric:`s`,"2-digit":`ss`},timeZoneName:{long:`ZZZZZ`,short:`ZZZ`}};function Ig(e,t,n){let{type:r,value:i}=e;if(r===`literal`){let e=/^\s+$/.test(i);return{literal:!e,val:e?` `:i}}let a=t[r],o=r;r===`hour`&&(o=t.hour12==null?t.hourCycle==null?n.hour12?`hour12`:`hour24`:t.hourCycle===`h11`||t.hourCycle===`h12`?`hour12`:`hour24`:t.hour12?`hour12`:`hour24`);let s=Fg[o];if(typeof s==`object`&&(s=s[a]),s)return{literal:!1,val:s}}function Lg(e){return[`^${e.map(e=>e.regex).reduce((e,t)=>`${e}(${t.source})`,``)}$`,e]}function Rg(e,t,n){let r=e.match(t);if(r){let e={},t=1;for(let i in n)if(_m(n,i)){let a=n[i],o=a.groups?a.groups+1:1;!a.literal&&a.token&&(e[a.token.val[0]]=a.deser(r.slice(t,t+o))),t+=o}return[r,e]}else return[r,{}]}function zg(e){let t=e=>{switch(e){case`S`:return`millisecond`;case`s`:return`second`;case`m`:return`minute`;case`h`:case`H`:return`hour`;case`d`:return`day`;case`o`:return`ordinal`;case`L`:case`M`:return`month`;case`y`:return`year`;case`E`:case`c`:return`weekday`;case`W`:return`weekNumber`;case`k`:return`weekYear`;case`q`:return`quarter`;default:return null}},n=null,r;return K(e.z)||(n=tp.create(e.z)),K(e.Z)||(n||=new Dp(e.Z),r=e.Z),K(e.q)||(e.M=(e.q-1)*3+1),K(e.h)||(e.h<12&&e.a===1?e.h+=12:e.h===12&&e.a===0&&(e.h=0)),e.G===0&&e.y&&(e.y=-e.y),K(e.u)||(e.S=Cm(e.u)),[Object.keys(e).reduce((n,r)=>{let i=t(r);return i&&(n[i]=e[r]),n},{}),n,r]}var Bg=null;function Vg(){return Bg||=Y.fromMillis(1555555555555),Bg}function Hg(e,t){if(e.literal)return e;let n=qg(ih.macroTokenToFormatOpts(e.val),t);return n==null||n.includes(void 0)?e:n}function Ug(e,t){return Array.prototype.concat(...e.map(e=>Hg(e,t)))}var Wg=class{constructor(e,t){if(this.locale=e,this.format=t,this.tokens=Ug(ih.parseFormat(t),e),this.units=this.tokens.map(t=>Pg(t,e)),this.disqualifyingUnit=this.units.find(e=>e.invalidReason),!this.disqualifyingUnit){let[e,t]=Lg(this.units);this.regex=RegExp(e,`i`),this.handlers=t}}explainFromTokens(e){if(this.isValid){let[t,n]=Rg(e,this.regex,this.handlers),[r,i,a]=n?zg(n):[null,null,void 0];if(_m(n,`a`)&&_m(n,`H`))throw new vf(`Can't include meridiem when specifying 24-hour format`);return{input:e,tokens:this.tokens,regex:this.regex,rawMatches:t,matches:n,result:r,zone:i,specificOffset:a}}else return{input:e,tokens:this.tokens,invalidReason:this.invalidReason}}get isValid(){return!this.disqualifyingUnit}get invalidReason(){return this.disqualifyingUnit?this.disqualifyingUnit.invalidReason:null}};function Gg(e,t,n){return new Wg(e,n).explainFromTokens(t)}function Kg(e,t,n){let{result:r,zone:i,specificOffset:a,invalidReason:o}=Gg(e,t,n);return[r,i,a,o]}function qg(e,t){if(!e)return null;let n=ih.create(t,e).dtFormatter(Vg()),r=n.formatToParts(),i=n.resolvedOptions();return r.map(t=>Ig(t,e,i))}var Jg=`Invalid DateTime`,Yg=864e13;function Xg(e){return new Gp(`unsupported zone`,`the zone "${e.name}" is not supported`)}function Zg(e){return e.weekData===null&&(e.weekData=$p(e.c)),e.weekData}function Qg(e){return e.localWeekData===null&&(e.localWeekData=$p(e.c,e.loc.getMinDaysInFirstWeek(),e.loc.getStartOfWeek())),e.localWeekData}function $g(e,t){let n={ts:e.ts,zone:e.zone,c:e.c,o:e.o,loc:e.loc,invalid:e.invalid};return new Y({...n,...t,old:n})}function e_(e,t,n){let r=e-t*60*1e3,i=n.offset(r);if(t===i)return[r,t];r-=(i-t)*60*1e3;let a=n.offset(r);return i===a?[r,i]:[e-Math.min(i,a)*60*1e3,Math.max(i,a)]}function t_(e,t){e+=t*60*1e3;let n=new Date(e);return{year:n.getUTCFullYear(),month:n.getUTCMonth()+1,day:n.getUTCDate(),hour:n.getUTCHours(),minute:n.getUTCMinutes(),second:n.getUTCSeconds(),millisecond:n.getUTCMilliseconds()}}function n_(e,t,n){return e_(Om(e),t,n)}function r_(e,t){let n=e.o,r=e.c.year+Math.trunc(t.years),i=e.c.month+Math.trunc(t.months)+Math.trunc(t.quarters)*3,a={...e.c,year:r,month:i,day:Math.min(e.c.day,Dm(r,i))+Math.trunc(t.days)+Math.trunc(t.weeks)*7},o=_g.fromObject({years:t.years-Math.trunc(t.years),quarters:t.quarters-Math.trunc(t.quarters),months:t.months-Math.trunc(t.months),weeks:t.weeks-Math.trunc(t.weeks),days:t.days-Math.trunc(t.days),hours:t.hours,minutes:t.minutes,seconds:t.seconds,milliseconds:t.milliseconds}).as(`milliseconds`),[s,c]=e_(Om(a),n,e.zone);return o!==0&&(s+=o,c=e.zone.offset(s)),{ts:s,o:c}}function i_(e,t,n,r,i,a){let{setZone:o,zone:s}=n;if(e&&Object.keys(e).length!==0||t){let r=t||s,i=Y.fromObject(e,{...n,zone:r,specificOffset:a});return o?i:i.setZone(s)}else return Y.invalid(new Gp(`unparsable`,`the input "${i}" can't be parsed as ${r}`))}function a_(e,t,n=!0){return e.isValid?ih.create(W.create(`en-US`),{allowZ:n,forceSimple:!0}).formatDateTimeFromString(e,t):null}function o_(e,t,n){let r=e.c.year>9999||e.c.year<0,i=``;if(r&&e.c.year>=0&&(i+=`+`),i+=q(e.c.year,r?6:4),n===`year`)return i;if(t){if(i+=`-`,i+=q(e.c.month),n===`month`)return i;i+=`-`}else if(i+=q(e.c.month),n===`month`)return i;return i+=q(e.c.day),i}function s_(e,t,n,r,i,a,o){let s=!n||e.c.millisecond!==0||e.c.second!==0,c=``;switch(o){case`day`:case`month`:case`year`:break;default:if(c+=q(e.c.hour),o===`hour`)break;if(t){if(c+=`:`,c+=q(e.c.minute),o===`minute`)break;s&&(c+=`:`,c+=q(e.c.second))}else{if(c+=q(e.c.minute),o===`minute`)break;s&&(c+=q(e.c.second))}if(o===`second`)break;s&&(!r||e.c.millisecond!==0)&&(c+=`.`,c+=q(e.c.millisecond,3))}return i&&(e.isOffsetFixed&&e.offset===0&&!a?c+=`Z`:e.o<0?(c+=`-`,c+=q(Math.trunc(-e.o/60)),c+=`:`,c+=q(Math.trunc(-e.o%60))):(c+=`+`,c+=q(Math.trunc(e.o/60)),c+=`:`,c+=q(Math.trunc(e.o%60)))),a&&(c+=`[`+e.zone.ianaName+`]`),c}var c_={month:1,day:1,hour:0,minute:0,second:0,millisecond:0},l_={weekNumber:1,weekday:1,hour:0,minute:0,second:0,millisecond:0},u_={ordinal:1,hour:0,minute:0,second:0,millisecond:0},d_=[`year`,`month`,`day`,`hour`,`minute`,`second`,`millisecond`],f_=[`weekYear`,`weekNumber`,`weekday`,`hour`,`minute`,`second`,`millisecond`],p_=[`year`,`ordinal`,`hour`,`minute`,`second`,`millisecond`];function m_(e){let t={year:`year`,years:`year`,month:`month`,months:`month`,day:`day`,days:`day`,hour:`hour`,hours:`hour`,minute:`minute`,minutes:`minute`,quarter:`quarter`,quarters:`quarter`,second:`second`,seconds:`second`,millisecond:`millisecond`,milliseconds:`millisecond`,weekday:`weekday`,weekdays:`weekday`,weeknumber:`weekNumber`,weeksnumber:`weekNumber`,weeknumbers:`weekNumber`,weekyear:`weekYear`,weekyears:`weekYear`,ordinal:`ordinal`}[e.toLowerCase()];if(!t)throw new yf(e);return t}function h_(e){switch(e.toLowerCase()){case`localweekday`:case`localweekdays`:return`localWeekday`;case`localweeknumber`:case`localweeknumbers`:return`localWeekNumber`;case`localweekyear`:case`localweekyears`:return`localWeekYear`;default:return m_(e)}}function g_(e){if(b_===void 0&&(b_=G.now()),e.type!==`iana`)return e.offset(b_);let t=e.name,n=x_.get(t);return n===void 0&&(n=e.offset(b_),x_.set(t,n)),n}function __(e,t){let n=kp(t.zone,G.defaultZone);if(!n.isValid)return Y.invalid(Xg(n));let r=W.fromObject(t),i,a;if(K(e.year))i=G.now();else{for(let t of d_)K(e[t])&&(e[t]=c_[t]);let t=om(e)||sm(e);if(t)return Y.invalid(t);let r=g_(n);[i,a]=n_(e,r,n)}return new Y({ts:i,zone:n,loc:r,o:a})}function v_(e,t,n){let r=K(n.round)?!0:n.round,i=K(n.rounding)?`trunc`:n.rounding,a=(e,a)=>(e=wm(e,r||n.calendary?0:2,n.calendary?`round`:i),t.loc.clone(n).relFormatter(n).format(e,a)),o=r=>n.calendary?t.hasSame(e,r)?0:t.startOf(r).diff(e.startOf(r),r).get(r):t.diff(e,r).get(r);if(n.unit)return a(o(n.unit),n.unit);for(let e of n.units){let t=o(e);if(Math.abs(t)>=1)return a(t,e)}return a(e>t?-0:0,n.units[n.units.length-1])}function y_(e){let t={},n;return e.length>0&&typeof e[e.length-1]==`object`?(t=e[e.length-1],n=Array.from(e).slice(0,e.length-1)):n=Array.from(e),[t,n]}var b_,x_=new Map,Y=class e{constructor(e){let t=e.zone||G.defaultZone,n=e.invalid||(Number.isNaN(e.ts)?new Gp(`invalid input`):null)||(t.isValid?null:Xg(t));this.ts=K(e.ts)?G.now():e.ts;let r=null,i=null;if(!n)if(e.old&&e.old.ts===this.ts&&e.old.zone.equals(t))[r,i]=[e.old.c,e.old.o];else{let a=cm(e.o)&&!e.old?e.o:t.offset(this.ts);r=t_(this.ts,a),n=Number.isNaN(r.year)?new Gp(`invalid input`):null,r=n?null:r,i=n?null:a}this._zone=t,this.loc=e.loc||W.create(),this.invalid=n,this.weekData=null,this.localWeekData=null,this.c=r,this.o=i,this.isLuxonDateTime=!0}static now(){return new e({})}static local(){let[e,t]=y_(arguments),[n,r,i,a,o,s,c]=t;return __({year:n,month:r,day:i,hour:a,minute:o,second:s,millisecond:c},e)}static utc(){let[e,t]=y_(arguments),[n,r,i,a,o,s,c]=t;return e.zone=Dp.utcInstance,__({year:n,month:r,day:i,hour:a,minute:o,second:s,millisecond:c},e)}static fromJSDate(t,n={}){let r=dm(t)?t.valueOf():NaN;if(Number.isNaN(r))return e.invalid(`invalid input`);let i=kp(n.zone,G.defaultZone);return i.isValid?new e({ts:r,zone:i,loc:W.fromObject(n)}):e.invalid(Xg(i))}static fromMillis(t,n={}){if(cm(t))return t<-Yg||t>Yg?e.invalid(`Timestamp out of range`):new e({ts:t,zone:kp(n.zone,G.defaultZone),loc:W.fromObject(n)});throw new bf(`fromMillis requires a numerical input, but received a ${typeof t} with value ${t}`)}static fromSeconds(t,n={}){if(cm(t))return new e({ts:t*1e3,zone:kp(n.zone,G.defaultZone),loc:W.fromObject(n)});throw new bf(`fromSeconds requires a numerical input`)}static fromObject(t,n={}){t||={};let r=kp(n.zone,G.defaultZone);if(!r.isValid)return e.invalid(Xg(r));let i=W.fromObject(n),a=Fm(t,h_),{minDaysInFirstWeek:o,startOfWeek:s}=rm(a,i),c=G.now(),l=K(n.specificOffset)?r.offset(c):n.specificOffset,u=!K(a.ordinal),d=!K(a.year),f=!K(a.month)||!K(a.day),ee=d||f,p=a.weekYear||a.weekNumber;if((ee||u)&&p)throw new vf(`Can't mix weekYear/weekNumber units with year/month/day or ordinals`);if(f&&u)throw new vf(`Can't mix ordinal dates with month/day`);let te=p||a.weekday&&!ee,ne,re,ie=t_(c,l);te?(ne=f_,re=l_,ie=$p(ie,o,s)):u?(ne=p_,re=u_,ie=tm(ie)):(ne=d_,re=c_);let ae=!1;for(let e of ne){let t=a[e];K(t)?ae?a[e]=re[e]:a[e]=ie[e]:ae=!0}let oe=(te?im(a,o,s):u?am(a):om(a))||sm(a);if(oe)return e.invalid(oe);let[se,ce]=n_(te?em(a,o,s):u?nm(a):a,l,r),le=new e({ts:se,zone:r,o:ce,loc:i});return a.weekday&&ee&&t.weekday!==le.weekday?e.invalid(`mismatched weekday`,`you can't specify both a weekday of ${a.weekday} and a date of ${le.toISO()}`):le.isValid?le:e.invalid(le.invalid)}static fromISO(e,t={}){let[n,r]=Yh(e);return i_(n,r,t,`ISO 8601`,e)}static fromRFC2822(e,t={}){let[n,r]=Xh(e);return i_(n,r,t,`RFC 2822`,e)}static fromHTTP(e,t={}){let[n,r]=Zh(e);return i_(n,r,t,`HTTP`,t)}static fromFormat(t,n,r={}){if(K(t)||K(n))throw new bf(`fromFormat requires an input string and a format`);let{locale:i=null,numberingSystem:a=null}=r,[o,s,c,l]=Kg(W.fromOpts({locale:i,numberingSystem:a,defaultToEN:!0}),t,n);return l?e.invalid(l):i_(o,s,r,`format ${n}`,t,c)}static fromString(t,n,r={}){return e.fromFormat(t,n,r)}static fromSQL(e,t={}){let[n,r]=ig(e);return i_(n,r,t,`SQL`,e)}static invalid(t,n=null){if(!t)throw new bf(`need to specify a reason the DateTime is invalid`);let r=t instanceof Gp?t:new Gp(t,n);if(G.throwOnInvalid)throw new hf(r);return new e({invalid:r})}static isDateTime(e){return e&&e.isLuxonDateTime||!1}static parseFormatForOpts(e,t={}){let n=qg(e,W.fromObject(t));return n?n.map(e=>e?e.val:null).join(``):null}static expandFormat(e,t={}){return Ug(ih.parseFormat(e),W.fromObject(t)).map(e=>e.val).join(``)}static resetCache(){b_=void 0,x_.clear()}get(e){return this[e]}get isValid(){return this.invalid===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}get locale(){return this.isValid?this.loc.locale:null}get numberingSystem(){return this.isValid?this.loc.numberingSystem:null}get outputCalendar(){return this.isValid?this.loc.outputCalendar:null}get zone(){return this._zone}get zoneName(){return this.isValid?this.zone.name:null}get year(){return this.isValid?this.c.year:NaN}get quarter(){return this.isValid?Math.ceil(this.c.month/3):NaN}get month(){return this.isValid?this.c.month:NaN}get day(){return this.isValid?this.c.day:NaN}get hour(){return this.isValid?this.c.hour:NaN}get minute(){return this.isValid?this.c.minute:NaN}get second(){return this.isValid?this.c.second:NaN}get millisecond(){return this.isValid?this.c.millisecond:NaN}get weekYear(){return this.isValid?Zg(this).weekYear:NaN}get weekNumber(){return this.isValid?Zg(this).weekNumber:NaN}get weekday(){return this.isValid?Zg(this).weekday:NaN}get isWeekend(){return this.isValid&&this.loc.getWeekendDays().includes(this.weekday)}get localWeekday(){return this.isValid?Qg(this).weekday:NaN}get localWeekNumber(){return this.isValid?Qg(this).weekNumber:NaN}get localWeekYear(){return this.isValid?Qg(this).weekYear:NaN}get ordinal(){return this.isValid?tm(this.c).ordinal:NaN}get monthShort(){return this.isValid?xg.months(`short`,{locObj:this.loc})[this.month-1]:null}get monthLong(){return this.isValid?xg.months(`long`,{locObj:this.loc})[this.month-1]:null}get weekdayShort(){return this.isValid?xg.weekdays(`short`,{locObj:this.loc})[this.weekday-1]:null}get weekdayLong(){return this.isValid?xg.weekdays(`long`,{locObj:this.loc})[this.weekday-1]:null}get offset(){return this.isValid?+this.o:NaN}get offsetNameShort(){return this.isValid?this.zone.offsetName(this.ts,{format:`short`,locale:this.locale}):null}get offsetNameLong(){return this.isValid?this.zone.offsetName(this.ts,{format:`long`,locale:this.locale}):null}get isOffsetFixed(){return this.isValid?this.zone.isUniversal:null}get isInDST(){return this.isOffsetFixed?!1:this.offset>this.set({month:1,day:1}).offset||this.offset>this.set({month:5}).offset}getPossibleOffsets(){if(!this.isValid||this.isOffsetFixed)return[this];let e=864e5,t=6e4,n=Om(this.c),r=this.zone.offset(n-e),i=this.zone.offset(n+e),a=this.zone.offset(n-r*t),o=this.zone.offset(n-i*t);if(a===o)return[this];let s=n-a*t,c=n-o*t,l=t_(s,a),u=t_(c,o);return l.hour===u.hour&&l.minute===u.minute&&l.second===u.second&&l.millisecond===u.millisecond?[$g(this,{ts:s}),$g(this,{ts:c})]:[this]}get isInLeapYear(){return Tm(this.year)}get daysInMonth(){return Dm(this.year,this.month)}get daysInYear(){return this.isValid?Em(this.year):NaN}get weeksInWeekYear(){return this.isValid?Am(this.weekYear):NaN}get weeksInLocalWeekYear(){return this.isValid?Am(this.localWeekYear,this.loc.getMinDaysInFirstWeek(),this.loc.getStartOfWeek()):NaN}resolvedLocaleOptions(e={}){let{locale:t,numberingSystem:n,calendar:r}=ih.create(this.loc.clone(e),e).resolvedOptions(this);return{locale:t,numberingSystem:n,outputCalendar:r}}toUTC(e=0,t={}){return this.setZone(Dp.instance(e),t)}toLocal(){return this.setZone(G.defaultZone)}setZone(t,{keepLocalTime:n=!1,keepCalendarTime:r=!1}={}){if(t=kp(t,G.defaultZone),t.equals(this.zone))return this;if(t.isValid){let e=this.ts;if(n||r){let n=t.offset(this.ts),r=this.toObject();[e]=n_(r,n,t)}return $g(this,{ts:e,zone:t})}else return e.invalid(Xg(t))}reconfigure({locale:e,numberingSystem:t,outputCalendar:n}={}){let r=this.loc.clone({locale:e,numberingSystem:t,outputCalendar:n});return $g(this,{loc:r})}setLocale(e){return this.reconfigure({locale:e})}set(e){if(!this.isValid)return this;let t=Fm(e,h_),{minDaysInFirstWeek:n,startOfWeek:r}=rm(t,this.loc),i=!K(t.weekYear)||!K(t.weekNumber)||!K(t.weekday),a=!K(t.ordinal),o=!K(t.year),s=!K(t.month)||!K(t.day),c=o||s,l=t.weekYear||t.weekNumber;if((c||a)&&l)throw new vf(`Can't mix weekYear/weekNumber units with year/month/day or ordinals`);if(s&&a)throw new vf(`Can't mix ordinal dates with month/day`);let u;i?u=em({...$p(this.c,n,r),...t},n,r):K(t.ordinal)?(u={...this.toObject(),...t},K(t.day)&&(u.day=Math.min(Dm(u.year,u.month),u.day))):u=nm({...tm(this.c),...t});let[d,f]=n_(u,this.o,this.zone);return $g(this,{ts:d,o:f})}plus(e){if(!this.isValid)return this;let t=_g.fromDurationLike(e);return $g(this,r_(this,t))}minus(e){if(!this.isValid)return this;let t=_g.fromDurationLike(e).negate();return $g(this,r_(this,t))}startOf(e,{useLocaleWeeks:t=!1}={}){if(!this.isValid)return this;let n={},r=_g.normalizeUnit(e);switch(r){case`years`:n.month=1;case`quarters`:case`months`:n.day=1;case`weeks`:case`days`:n.hour=0;case`hours`:n.minute=0;case`minutes`:n.second=0;case`seconds`:n.millisecond=0;break}if(r===`weeks`)if(t){let e=this.loc.getStartOfWeek(),{weekday:t}=this;t<e&&(n.weekNumber=this.weekNumber-1),n.weekday=e}else n.weekday=1;return r===`quarters`&&(n.month=(Math.ceil(this.month/3)-1)*3+1),this.set(n)}endOf(e,t){return this.isValid?this.plus({[e]:1}).startOf(e,t).minus(1):this}toFormat(e,t={}){return this.isValid?ih.create(this.loc.redefaultToEN(t)).formatDateTimeFromString(this,e):Jg}toLocaleString(e=wf,t={}){return this.isValid?ih.create(this.loc.clone(t),e).formatDateTime(this):Jg}toLocaleParts(e={}){return this.isValid?ih.create(this.loc.clone(e),e).formatDateTimeParts(this):[]}toISO({format:e=`extended`,suppressSeconds:t=!1,suppressMilliseconds:n=!1,includeOffset:r=!0,extendedZone:i=!1,precision:a=`milliseconds`}={}){if(!this.isValid)return null;a=m_(a);let o=e===`extended`,s=o_(this,o,a);return d_.indexOf(a)>=3&&(s+=`T`),s+=s_(this,o,t,n,r,i,a),s}toISODate({format:e=`extended`,precision:t=`day`}={}){return this.isValid?o_(this,e===`extended`,m_(t)):null}toISOWeekDate(){return a_(this,`kkkk-'W'WW-c`)}toISOTime({suppressMilliseconds:e=!1,suppressSeconds:t=!1,includeOffset:n=!0,includePrefix:r=!1,extendedZone:i=!1,format:a=`extended`,precision:o=`milliseconds`}={}){return this.isValid?(o=m_(o),(r&&d_.indexOf(o)>=3?`T`:``)+s_(this,a===`extended`,t,e,n,i,o)):null}toRFC2822(){return a_(this,`EEE, dd LLL yyyy HH:mm:ss ZZZ`,!1)}toHTTP(){return a_(this.toUTC(),`EEE, dd LLL yyyy HH:mm:ss 'GMT'`)}toSQLDate(){return this.isValid?o_(this,!0):null}toSQLTime({includeOffset:e=!0,includeZone:t=!1,includeOffsetSpace:n=!0}={}){let r=`HH:mm:ss.SSS`;return(t||e)&&(n&&(r+=` `),t?r+=`z`:e&&(r+=`ZZ`)),a_(this,r,!0)}toSQL(e={}){return this.isValid?`${this.toSQLDate()} ${this.toSQLTime(e)}`:null}toString(){return this.isValid?this.toISO():Jg}[Symbol.for(`nodejs.util.inspect.custom`)](){return this.isValid?`DateTime { ts: ${this.toISO()}, zone: ${this.zone.name}, locale: ${this.locale} }`:`DateTime { Invalid, reason: ${this.invalidReason} }`}valueOf(){return this.toMillis()}toMillis(){return this.isValid?this.ts:NaN}toSeconds(){return this.isValid?this.ts/1e3:NaN}toUnixInteger(){return this.isValid?Math.floor(this.ts/1e3):NaN}toJSON(){return this.toISO()}toBSON(){return this.toJSDate()}toObject(e={}){if(!this.isValid)return{};let t={...this.c};return e.includeConfig&&(t.outputCalendar=this.outputCalendar,t.numberingSystem=this.loc.numberingSystem,t.locale=this.loc.locale),t}toJSDate(){return new Date(this.isValid?this.ts:NaN)}diff(e,t=`milliseconds`,n={}){if(!this.isValid||!e.isValid)return _g.invalid(`created by diffing an invalid DateTime`);let r={locale:this.locale,numberingSystem:this.numberingSystem,...n},i=mm(t).map(_g.normalizeUnit),a=e.valueOf()>this.valueOf(),o=wg(a?this:e,a?e:this,i,r);return a?o.negate():o}diffNow(t=`milliseconds`,n={}){return this.diff(e.now(),t,n)}until(e){return this.isValid?bg.fromDateTimes(this,e):this}hasSame(e,t,n){if(!this.isValid)return!1;let r=e.valueOf(),i=this.setZone(e.zone,{keepLocalTime:!0});return i.startOf(t,n)<=r&&r<=i.endOf(t,n)}equals(e){return this.isValid&&e.isValid&&this.valueOf()===e.valueOf()&&this.zone.equals(e.zone)&&this.loc.equals(e.loc)}toRelative(t={}){if(!this.isValid)return null;let n=t.base||e.fromObject({},{zone:this.zone}),r=t.padding?this<n?-t.padding:t.padding:0,i=[`years`,`months`,`days`,`hours`,`minutes`,`seconds`],a=t.unit;return Array.isArray(t.unit)&&(i=t.unit,a=void 0),v_(n,this.plus(r),{...t,numeric:`always`,units:i,unit:a})}toRelativeCalendar(t={}){return this.isValid?v_(t.base||e.fromObject({},{zone:this.zone}),this,{...t,numeric:`auto`,units:[`years`,`months`,`days`],calendary:!0}):null}static min(...t){if(!t.every(e.isDateTime))throw new bf(`min requires all arguments be DateTimes`);return hm(t,e=>e.valueOf(),Math.min)}static max(...t){if(!t.every(e.isDateTime))throw new bf(`max requires all arguments be DateTimes`);return hm(t,e=>e.valueOf(),Math.max)}static fromFormatExplain(e,t,n={}){let{locale:r=null,numberingSystem:i=null}=n;return Gg(W.fromOpts({locale:r,numberingSystem:i,defaultToEN:!0}),e,t)}static fromStringExplain(t,n,r={}){return e.fromFormatExplain(t,n,r)}static buildFormatParser(e,t={}){let{locale:n=null,numberingSystem:r=null}=t;return new Wg(W.fromOpts({locale:n,numberingSystem:r,defaultToEN:!0}),e)}static fromFormatParser(t,n,r={}){if(K(t)||K(n))throw new bf(`fromFormatParser requires an input string and a format parser`);let{locale:i=null,numberingSystem:a=null}=r,o=W.fromOpts({locale:i,numberingSystem:a,defaultToEN:!0});if(!o.equals(n.locale))throw new bf(`fromFormatParser called with a locale of ${o}, but the format parser was created for ${n.locale}`);let{result:s,zone:c,specificOffset:l,invalidReason:u}=n.explainFromTokens(t);return u?e.invalid(u):i_(s,c,r,`format ${n.format}`,t,l)}static get DATE_SHORT(){return wf}static get DATE_MED(){return Tf}static get DATE_MED_WITH_WEEKDAY(){return Ef}static get DATE_FULL(){return Df}static get DATE_HUGE(){return Of}static get TIME_SIMPLE(){return kf}static get TIME_WITH_SECONDS(){return Af}static get TIME_WITH_SHORT_OFFSET(){return jf}static get TIME_WITH_LONG_OFFSET(){return Mf}static get TIME_24_SIMPLE(){return Nf}static get TIME_24_WITH_SECONDS(){return Pf}static get TIME_24_WITH_SHORT_OFFSET(){return Ff}static get TIME_24_WITH_LONG_OFFSET(){return If}static get DATETIME_SHORT(){return Lf}static get DATETIME_SHORT_WITH_SECONDS(){return Rf}static get DATETIME_MED(){return zf}static get DATETIME_MED_WITH_SECONDS(){return Bf}static get DATETIME_MED_WITH_WEEKDAY(){return Vf}static get DATETIME_FULL(){return Hf}static get DATETIME_FULL_WITH_SECONDS(){return Uf}static get DATETIME_HUGE(){return Wf}static get DATETIME_HUGE_WITH_SECONDS(){return Gf}};function S_(e){if(Y.isDateTime(e))return e;if(e&&e.valueOf&&cm(e.valueOf()))return Y.fromJSDate(e);if(e&&typeof e==`object`)return Y.fromObject(e);throw new bf(`Unknown datetime argument: ${e}, of type ${typeof e}`)}function C_(e){return Ku(e)?e.expression.variable?.value?.toLowerCase()===`null`:e instanceof hl}function w_(e){return R(e).unwrap_or(void 0)===``}function T_(e){return e instanceof cl}function E_(e){let t=ju(e);if(t!==null)return t;if(Cu(e)&&e instanceof al&&e.expression){let t=e.op?.value,n=ju(e.expression);if(n!==null)return t===`-`?-n:n}return null}function D_(e){if(e==null)return null;if(typeof e==`number`)return e;if(typeof e==`string`){let t=Number(e);return isNaN(t)?null:t}if(typeof e==`boolean`)return e?1:0;let t=E_(e);if(t!==null)return t;let n=R(e).unwrap_or(void 0);if(n!==void 0){let e=Number(n);if(!isNaN(e))return e}return null}function O_(e){if(e==null)return null;if(typeof e==`number`)return Number.isInteger(e)?e:null;if(typeof e==`string`){let t=Number(e);return isNaN(t)||!Number.isInteger(t)?null:t}if(typeof e==`boolean`)return e?1:0;let t=E_(e);if(t!==null)return Number.isInteger(t)?t:null;let n=R(e).unwrap_or(void 0);if(n!==void 0){let e=Number(n);if(!isNaN(e)&&Number.isInteger(e))return e}return null}const k_=[`true`,`yes`,`y`,`t`,`1`],A_=[`false`,`no`,`n`,`f`,`0`];function j_(e){if(e==null)return null;if(typeof e==`boolean`)return e;if(typeof e==`number`)return e===0?!1:e===1?!0:null;if(typeof e==`string`){let t=e.toLowerCase();return k_.includes(t)?!0:A_.includes(t)?!1:null}if(Ku(e)){let t=e.expression.variable?.value?.toLowerCase();if(t===`true`)return!0;if(t===`false`)return!1}let t=ju(e);if(t===0)return!1;if(t===1)return!0;let n=R(e)?.unwrap_or(``).toLowerCase();if(n){if(k_.includes(n))return!0;if(A_.includes(n))return!1}return null}function M_(e){if(e==null)return null;if(typeof e==`string`)return e;let t=F(e).unwrap_or(void 0);return t?h(t):R(e).unwrap_or(null)}function N_(e){if(e==null)return null;if(typeof e==`string`)return e;if(typeof e==`number`||typeof e==`boolean`)return e.toString();let t=R(e).unwrap_or(null)??D_(e)??j_(e);return t===null?null:t.toString()}var P_=[`yyyy-MM-dd`,`M/d/yyyy`,`d MMM yyyy`,`MMM d, yyyy`],F_=[`yyyy-MM-dd HH:mm:ss`,`yyyy-MM-dd HH:mm:ss.SSS`,`yyyy-MM-dd HH:mm:ss.SSSZZ`,`yyyy-MM-dd HH:mm:ssZZ`],I_=[`HH:mm:ss`,`HH:mm:ssZZ`,`HH:mm:ss.SSS`,`HH:mm:ss.SSSZZ`];function L_(e){if(e==null)return null;let t=typeof e==`string`?e:R(e).unwrap_or(null);if(t===null)return null;for(let e of I_){let n=Y.fromFormat(t,e,{setZone:!0});if(n.isValid)return n.toISOTime({suppressMilliseconds:!0,includeOffset:r(n)})}for(let e of P_){let n=Y.fromFormat(t,e,{setZone:!0});if(n.isValid)return n.toISODate()}for(let e of F_){let n=Y.fromFormat(t,e,{setZone:!0});if(n.isValid)return n.toISO({suppressMilliseconds:!0,includeOffset:r(n)})}let n=Y.fromISO(t,{setZone:!0});if(n.isValid)return n.toISO({suppressMilliseconds:!0,includeOffset:r(n)});return null;function r(e){return e.zone.type!==`system`}}function R_(e,t,n){return t.map((t,r)=>{let i=e[t]?.value;if(i==null&&n&&n[r]){let e=n[r];if(e?.dbdefault)return JSON.stringify(e.dbdefault.value)}return JSON.stringify(i)}).join(`|`)}function z_(e,t,n){return t.some((t,r)=>{let i=e[t]?.value;return i==null&&n&&n[r]&&n[r]?.dbdefault?!1:i==null})}function B_(e){return e.increment||lf(e.type.type_name)}function V_(e,t,n){return e?`${e}.${t}.${n}`:`${t}.${n}`}function H_(e,t,n){return n.length===1?V_(e,t,n[0]):`(${n.map(n=>V_(e,t,n)).join(`, `)})`}function U_(e,t){return t.length===1?JSON.stringify(e[t[0]]?.value):`(${t.map(t=>JSON.stringify(e[t]?.value)).join(`, `)})`}function W_(e,t,n){let r=t.map(t=>e.columnNodes[t]).filter(Boolean);return r.length>0?r.map(e=>new D(E.INVALID_RECORDS_FIELD,n,e)):[new D(E.INVALID_RECORDS_FIELD,n,e.node)]}var G_=e=>e>1?`Composite PK`:`PK`;function K_(e){return bc(Array.from(e.records),([t,n])=>{if(Ac(n))return[];e.cachedMergedTables.has(t)||e.cachedMergedTables.set(t,Rd(t,e));let r=e.cachedMergedTables.get(t),i=X_(r),a=Z_(n),o=Mc(r.fields,`name`);return bc(i,e=>q_(e,n,a,o,r))})}function q_(e,t,n,r,i){let a=Q_(e,n,r,i,t);if(!Ac(a))return a;let o=io(e.map(e=>r[e])),s=o.every(e=>e&&B_(e)),[c,l]=g(t,t=>z_(t.values,e,o)),u=s?[]:J_(c,e,i),d=Y_(l,e,o,i);return[...u,...d]}function J_(e,t,n){if(Ac(e))return[];let r=`NULL in ${G_(t.length)}: ${H_(n.schemaName,n.name,t)} cannot be NULL`;return bc(e,e=>W_(e,t,r))}function Y_(e,t,n,r){return bc(cc(Tc(e,e=>R_(e.values,t,n)),e=>e.length>1),e=>{let n=G_(t.length),i=H_(r.schemaName,r.name,t);return bc(e.slice(1),e=>W_(e,t,`Duplicate ${n}: ${i} = ${U_(e.values,t)}`))})}function X_(e){return[...e.fields.filter(e=>e.pk).map(e=>[e.name]),...e.indexes.filter(e=>e.pk).map(e=>e.columns.map(e=>e.value))]}function Z_(e){return new Set(e.flatMap(e=>Object.keys(e.values)))}function Q_(e,t,n,r,i){let a=tc(e,Array.from(t));if(Ac(a))return[];let o=a.filter(e=>{let t=n[e];return t&&!t.increment&&!lf(t.type.type_name)&&!t.dbdefault});if(Ac(o))return[];let s=`${G_(o.length)}: Column ${H_(r.schemaName,r.name,o)} is missing from record and has no default value`;return i.map(e=>new D(E.INVALID_RECORDS_FIELD,s,e.node))}var $_=e=>e>1?`Composite UNIQUE`:`UNIQUE`;function ev(e){return bc(Array.from(e.records),([t,n])=>{e.cachedMergedTables.has(t)||e.cachedMergedTables.set(t,Rd(t,e));let r=e.cachedMergedTables.get(t);if(Ac(n))return[];let i=tv(r),a=Mc(r.fields,`name`);return bc(i,e=>nv(n,e,io(e.map(e=>a[e])),r))})}function tv(e){return[...e.fields.filter(e=>e.unique).map(e=>[e.name]),...e.indexes.filter(e=>e.unique).map(e=>e.columns.map(e=>e.value))]}function nv(e,t,n,r){return bc(cc(Tc(e.filter(e=>!z_(e.values,t,n)),e=>R_(e.values,t,n)),e=>e.length>1),e=>{let n=$_(t.length),i=H_(r.schemaName,r.name,t);return bc(e.slice(1),e=>W_(e,t,`Duplicate ${n}: ${i} = ${U_(e.values,t)}`))})}function rv(e){let t=[...e.ref.values(),...bc(Array.from(e.tables.values()),t=>zd(t,e))],n=iv(e);return bc(t,e=>sv(e,n))}function iv(e){let t=new Map;for(let n of e.tables.values()){let r=av(n.schemaName,n.name),i=e.records.get(n)||[];e.cachedMergedTables.has(n)||e.cachedMergedTables.set(n,Rd(n,e));let a=e.cachedMergedTables.get(n);t.set(r,{mergedTable:a,rows:i})}return t}function av(e,t){return e?`${e}.${t}`:`${Bl}.${t}`}function ov(e,t,n,r){if(Ac(e.rows))return[];let i=new Set(t.rows.map(e=>R_(e.values,r.fieldNames)));return bc(e.rows.filter(e=>!z_(e.values,n.fieldNames)).filter(e=>{let t=R_(e.values,n.fieldNames);return!i.has(t)}),i=>{let a=H_(e.mergedTable.schemaName,e.mergedTable.name,n.fieldNames),o=H_(t.mergedTable.schemaName,t.mergedTable.name,r.fieldNames),s=`FK violation: ${a} = ${U_(i.values,n.fieldNames)} does not exist in ${o}`;return W_(i,n.fieldNames,s)})}function sv(e,t){if(!e.endpoints)return[];let[n,r]=e.endpoints,i=t.get(av(n.schemaName,n.tableName)),a=t.get(av(r.schemaName,r.tableName));return!i||!a?[]:cv(i,a,n,r)}function cv(e,t,n,r){let i=n.relation,a=r.relation;return i===`1`&&a===`1`||i===`*`&&a===`*`?[...ov(e,t,n,r),...ov(t,e,r,n)]:i===`*`&&a===`1`?ov(e,t,n,r):i===`1`&&a===`*`?ov(t,e,r,n):[]}var lv=class{constructor(e){this.env=e,this.tableToRecordMap=new Map}interpret(e){let t=[],n=[];for(let r of e){let{table:e,mergedColumns:i}=uv(r,this.env),a=this.tableToRecordMap.get(e);if(a){t.push(new D(E.DUPLICATE_RECORDS_FOR_TABLE,`Duplicate Records blocks for the same Table '${e.name}' - A Table can only have one Records block`,a)),t.push(new D(E.DUPLICATE_RECORDS_FOR_TABLE,`Duplicate Records blocks for the same Table '${e.name}' - A Table can only have one Records block`,r));continue}this.tableToRecordMap.set(e,r);for(let a of r.body.body){let r=a,o=dv(r,i,this.env);t.push(...o.getErrors()),n.push(...o.getWarnings());let s=o.getValue();s.row&&(this.env.records.has(e)||this.env.records.set(e,[]),this.env.records.get(e).push({values:s.row,node:r,columnNodes:s.columnNodes}))}}let r=this.validateConstraints();return n.push(...r),new O(void 0,t,n)}validateConstraints(){let e=[];return e.push(...K_(this.env).map(e=>e.toWarning())),e.push(...ev(this.env).map(e=>e.toWarning())),e.push(...rv(this.env).map(e=>e.toWarning())),e}};function uv(e,t){let n=e.name,r=e.parent;if(r instanceof x){let e=t.tables.get(r),i=Rd(e,t);return n?{table:e,mergedTable:i,mergedColumns:n.elementList.map(e=>i.fields.find(t=>t.name===I(e).unwrap()))}:{table:e,mergedTable:i,mergedColumns:i.fields}}let i=Iu(n).unwrap(),a=h(i.variables).referee.declaration,o=t.tables.get(a),s=Rd(o,t);return{table:o,mergedTable:s,mergedColumns:i.args.map(e=>s.fields.find(t=>t.name===I(e).unwrap()))}}function dv(e,t,n){let r=[],i=[],a={},o={},s=e.callee instanceof ul?e.callee.elementList:[e.callee];if(s.length!==t.length)return r.push(new D(E.INVALID_RECORDS_FIELD,`Expected ${t.length} values but got ${s.length}`,e)),new O({row:null,columnNodes:{}},r,i);for(let e=0;e<t.length;e++){let c=s[e],l=t[e];o[l.name]=c;let u=pv(c,l,n);r.push(...u.getErrors()),i.push(...u.getWarnings());let d=u.getValue();d!==null&&(a[l.name]=d)}return new O({row:a,columnNodes:o},r,i)}function fv(e,t){return e instanceof cl?e.value?.value||``:!isNaN(e.start)&&!isNaN(e.end)?t.slice(e.start,e.end):``}function pv(e,t,n){let r=t.type.type_name.split(`(`)[0],{increment:i,not_null:a,dbdefault:o}=t,s=t.type.isEnum||!1,c=pf(r,s),l=N_(e),u=l===null?fv(e,n.source):l,d=l===null?`expression`:c;if(e instanceof cl)return new O({value:e.value?.value||``,type:`expression`},[],[]);if(C_(e)||w_(e)&&!of(r)){let n=o&&o.value.toString().toLowerCase()!==`null`,s=lf(r);return a&&!n&&!i&&!s?new O({value:null,type:c},[],[new kl(E.INVALID_RECORDS_FIELD,`NULL not allowed for non-nullable column '${t.name}' without default and increment`,e)]):new O({value:null,type:c},[],[])}if(s){let r=([...n.enums.values()].find(e=>e.schemaName===t.type.schemaName&&e.name===t.type.type_name)?.values||[]).map(e=>e.name),i=R(e).unwrap_or(void 0);return i===void 0&&(i=F(e).unwrap_or([]).pop()),r.includes(i)?new O({value:i,type:c},[],[]):new O({value:i,type:c},[],[new kl(E.INVALID_RECORDS_FIELD,`Invalid enum value for column '${t.name}'`,e)])}if(rf(r)){let n=D_(e);if(n===null)return new O({value:u,type:d},[],[new kl(E.INVALID_RECORDS_FIELD,`Invalid numeric value for column '${t.name}'`,e)]);if(tf(r)&&!Number.isInteger(n))return new O({value:Math.floor(n),type:c},[],[new kl(E.INVALID_RECORDS_FIELD,`Invalid integer value ${n} for column '${t.name}': expected integer, got decimal`,e)]);if(nf(r)&&t.type.numericParams){let{precision:r,scale:i}=t.type.numericParams,a=n.toString().split(`.`),o=a[0].replace(/^-/,``),s=a[1]||``,l=o.length+s.length,u=s.length;if(l>r)return new O({value:n,type:c},[],[new kl(E.INVALID_RECORDS_FIELD,`Numeric value ${n} for column '${t.name}' exceeds precision: expected at most ${r} total digits, got ${l}`,e)]);if(u>i)return new O({value:n,type:c},[],[new kl(E.INVALID_RECORDS_FIELD,`Numeric value ${n} for column '${t.name}' exceeds scale: expected at most ${i} decimal digits, got ${u}`,e)])}return new O({value:n,type:c},[],[])}if(af(r)){let n=j_(e);return n===null?new O({value:u,type:d},[],[new kl(E.INVALID_RECORDS_FIELD,`Invalid boolean value for column '${t.name}'`,e)]):new O({value:n,type:c},[],[])}if(cf(r)){let n=L_(e);return n===null?new O({value:u,type:d},[],[new kl(E.INVALID_RECORDS_FIELD,`Invalid datetime value for column '${t.name}', expected valid datetime format (e.g., 'YYYY-MM-DD', 'HH:MM:SS', 'YYYY-MM-DD HH:MM:SS', 'MM/DD/YYYY', 'D MMM YYYY', or 'MMM D, YYYY')`,e)]):new O({value:n,type:c},[],[])}if(of(r)){let n=N_(e);if(n===null)return new O({value:u,type:d},[],[new kl(E.INVALID_RECORDS_FIELD,`Invalid string value for column '${t.name}'`,e)]);if(t.type.lengthParam){let{length:r}=t.type.lengthParam,i=new TextEncoder().encode(n).length;if(i>r)return new O({value:n,type:c},[],[new kl(E.INVALID_RECORDS_FIELD,`String value for column '${t.name}' exceeds maximum length: expected at most ${r} bytes (UTF-8), got ${i} bytes`,e)])}return new O({value:n,type:`string`},[],[])}return new O({value:u,type:d},[],[])}function mv(e){return{...e,fields:e.fields.map(e=>({...e,type:{...e.type,isEnum:void 0,lengthParam:void 0,numericParams:void 0}}))}}function hv(e){let t=[];for(let[n,r]of e.records){if(!r.length)continue;let e=Object.keys(r[0].columnNodes);t.push({schemaName:n.schemaName||void 0,tableName:n.name,columns:e,values:r.map(t=>e.map(e=>{let n=t.values[e];return n?{value:n.value,type:n.type}:{value:null,type:`expression`}}))})}return{schemas:[],tables:Array.from(e.tables.values()).map(mv),notes:Array.from(e.notes.values()),refs:Array.from(e.ref.values()),enums:Array.from(e.enums.values()),tableGroups:Array.from(e.tableGroups.values()),aliases:e.aliases,project:Array.from(e.project.values())[0]||{},tablePartials:Array.from(e.tablePartials.values()).map(mv),records:t}}var gv=class{constructor(e){this.ast=e,this.env={schema:[],tables:new Map,notes:new Map,refIds:{},ref:new Map,enums:new Map,tableOwnerGroup:{},tableGroups:new Map,aliases:[],project:new Map,tablePartials:new Map,records:new Map,recordsElements:[],cachedMergedTables:new Map,source:e.source}}interpret(){let e=this.ast.body.flatMap(e=>{switch(Du(e).unwrap_or(void 0)){case j.Table:return new Bd(e,this.env).interpret();case j.Note:return new Vd(e,this.env).interpret();case j.Ref:return new Hd(e,this.env).interpret();case j.TableGroup:return new Ud(e,this.env).interpret();case j.TablePartial:return new Gd(e,this.env).interpret();case j.Enum:return new Wd(e,this.env).interpret();case j.Project:return new Kd(e,this.env).interpret();case j.Records:return this.env.recordsElements.push(e),[];default:return[]}}),t=[];if(this.env.recordsElements.length){let n=new lv(this.env).interpret(this.env.recordsElements);e.push(...n.getErrors()),t.push(...n.getWarnings())}return new O(hv(this.env),e,t)}};let X=function(e){return e[e.Function=1]=`Function`,e[e.Constructor=2]=`Constructor`,e[e.Field=3]=`Field`,e[e.Variable=4]=`Variable`,e[e.Class=5]=`Class`,e[e.Struct=6]=`Struct`,e[e.Interface=7]=`Interface`,e[e.Module=8]=`Module`,e[e.Property=9]=`Property`,e[e.Event=10]=`Event`,e[e.Operator=11]=`Operator`,e[e.Unit=12]=`Unit`,e[e.Value=13]=`Value`,e[e.Constant=14]=`Constant`,e[e.Enum=15]=`Enum`,e[e.EnumMember=16]=`EnumMember`,e[e.Keyword=17]=`Keyword`,e[e.Text=18]=`Text`,e[e.Color=19]=`Color`,e[e.File=20]=`File`,e[e.Reference=21]=`Reference`,e[e.Customcolor=22]=`Customcolor`,e[e.Folder=23]=`Folder`,e[e.TypeParameter=24]=`TypeParameter`,e[e.User=25]=`User`,e[e.Issue=26]=`Issue`,e[e.Snippet=27]=`Snippet`,e}({}),Z=function(e){return e[e.None=0]=`None`,e[e.KeepWhitespace=1]=`KeepWhitespace`,e[e.InsertAsSnippet=4]=`InsertAsSnippet`,e}({}),_v=function(e){return e[e.Hint=1]=`Hint`,e[e.Info=2]=`Info`,e[e.Warning=4]=`Warning`,e[e.Error=8]=`Error`,e}({});function vv(e){return e?e.split(``).every(e=>Al(e)||jl(e))&&!jl(e[0]):!1}function yv(e){return vv(e)?e:`"${xv(e)}"`}function bv(e){let t=``,n=0,r={n:`
|
|
12
12
|
`,t:` `,r:`\r`,b:`\b`,f:`\f`,v:`\v`,0:`\0`,"\\":`\\`,'"':`"`,"'":`'`,"`":"`"};for(;n<e.length;)if(e[n]===`\\`&&n+1<e.length){let i=e[n+1];if(i===`u`&&n+5<e.length){let r=e.slice(n+2,n+6);if(/^[0-9a-fA-F]{4}$/.test(r)){t+=String.fromCharCode(parseInt(r,16)),n+=6;continue}}i in r?(t+=r[i],n+=2):(t+=i,n+=2)}else t+=e[n],n++;return t}function xv(e){let t=``;for(let n=0;n<e.length;n++){let r=e[n];switch(r){case`\\`:t+=`\\\\`;break;case`"`:t+=`\\"`;break;case`'`:t+=`\\'`;break;case`
|
|
13
|
-
`:t+=`\\n`;break;case` `:t+=`\\t`;break;case`\r`:t+=`\\r`;break;case`\b`:t+=`\\b`;break;case`\f`:t+=`\\f`;break;case`\v`:t+=`\\v`;break;case`\0`:t+=`\\0`;break;default:t+=r}}return t}function Sv(e){if(e==null)return`null`;if(typeof e==`boolean`)return e?`true`:`false`;if(typeof e==`number`)return String(e);if(typeof e==`string`)return`'${xv(e)}'`;let{value:t,type:n}=e;if(t==null)return`null`;if(n===`expression`)return`\`${t}\``;if(af(n)){let e=j_(t);return e===null?`\`${t}\``:e?`true`:`false`}if(rf(n)){let e=D_(t);return e===null?`\`${t}\``:String(e)}if(cf(n)){let e=L_(t);return e===null?`\`${t}\``:`'${xv(e)}'`}let r=N_(t);return r===null?`\`${t}\``:`'${xv(r)}'`}function Cv(e){return(e.match(/"(?:[^"\\]|\\.)*"|[^."]+/g)||[]).map(e=>e.startsWith(`"`)&&e.endsWith(`"`)?bv(e.slice(1,-1)):e.trim()).filter(e=>e.length>0)}function wv(e){switch(e){case N.Schema:return X.Module;case N.Table:case N.TablePartial:return X.Class;case N.Column:case N.TableGroupField:return X.Field;case N.Enum:return X.Enum;case N.EnumField:return X.EnumMember;case N.TableGroup:return X.Struct;default:return X.Text}}function Tv(e,t){if(!e||Qc(e))return!1;for(let n of e.trailingTrivia){if(n.start>t)break;if(n.kind===_.NEWLINE&&n.end<=t)return!1}return!0}function Q(){return{suggestions:[]}}function Ev(e){return{...e,suggestions:e.suggestions.map(e=>({...e,insertText:` ${e.insertText}`}))}}function Dv(e){return{...e,suggestions:e.suggestions.map(e=>({...e,insertText:e.quoted?e.insertText:yv(e.insertText??``),quoted:!0}))}}function Ov(e,t=`, `){let n=e.suggestions.map(e=>typeof e.label==`string`?e.label:e.label.label).join(t);return n?{...e,suggestions:[{label:`* (all)`,insertText:n,insertTextRules:Z.KeepWhitespace,kind:X.Snippet,sortText:`00`,range:void 0},...e.suggestions]}:e}function kv(e,t){return e<t.start||e>t.end?!1:t.body?e<t.body.start||e>t.body.end:!0}function Av(e){return e.commaList.length+e.elementList.length===0}function jv(e){let t=[];for(let[n,r]of e.symbolTable.entries()){let e=$l(n).unwrap_or(void 0);if(e===void 0||e.kind!==N.Column||!(r instanceof Cl||r instanceof Ol))continue;let i=Mv(r,e.name);i&&t.push(i)}return t}function Mv(e,t){let n=Wl(t),r=e instanceof Ol?e.tablePartialSymbol.symbolTable.get(n)?.declaration:e.declaration;if(!(r instanceof S))return null;let i=I(r.callee).unwrap_or(null),a=I(r.args[0]).unwrap_or(null);return i===null||a===null?null:{name:i,type:a}}function Nv(e,t,n,r){let i=e.container.element(r);return!(i instanceof x)||Du(i).unwrap_or(void 0)!==j.Records||!(i.body instanceof C)||!i.body||!Fl(r,i.body)||t.getLineContent(n.lineNumber).trim()!==``?null:i.parent instanceof b?Pv(e,i):Fv(e,i)}function Pv(e,t){if(!(t.name instanceof T))return Q();let n=t.name.argumentList?.elementList||[],r=n.map(e=>Mu(e));if(!r||r.length===0)return Q();let i=n.map((e,t)=>{let n=r[t];if(!n||!(n instanceof Cl||n instanceof Ol))return null;let i=I(e).unwrap_or(void 0);return i?Mv(n,i):null}).filter(e=>e!==null);return i.length===0?Q():{suggestions:[{label:`Record row snippet`,insertText:i.map((e,t)=>`\${${t+1}:${e.name} (${e.type})}`).join(`, `),insertTextRules:Z.InsertAsSnippet,kind:X.Snippet,range:void 0}]}}function Fv(e,t){let n=t.parent;if(!(n instanceof x))return Q();let r=n.symbol;if(!(r instanceof Sl))return Q();let i;if(t.name instanceof ll){let e=t.name.elementList,n=e.map(e=>Mu(e)).filter(e=>e!==void 0);i=e.map((e,t)=>{let r=n[t];if(!r||!(r instanceof Cl||r instanceof Ol))return null;let i=I(e).unwrap_or(void 0);return i===void 0?null:Mv(r,i)}).filter(e=>e!==null)}else{let e=jv(r);if(!e)return Q();i=e}return i.length===0?Q():{suggestions:[{label:`Record row snippet`,insertText:i.map((e,t)=>`\${${t+1}:${e.name} (${e.type})}`).join(`, `),insertTextRules:Z.InsertAsSnippet,kind:X.Snippet,range:void 0}]}}function Iv(e,t){return e.getOffsetAt(t)}var Lv=class{constructor(e,t=[]){this.compiler=e,this.triggerCharacters=t}provideCompletionItems(e,t){let n=Iv(e,t),r=Nv(this.compiler,e,t,n);if(r!==null)return r;let i=this.compiler.token.flatStream(),{token:a,index:o}=this.compiler.container.token(n),s=o===void 0?i[0]:i[o+1];if([...a?.trailingTrivia||[],...a?.leadingTrivia||[],...s?.leadingTrivia||[]].find(e=>tl(e)&&Fl(n,e)))return Q();if(o===void 0)return Yv();if([_.STRING_LITERAL,_.QUOTED_STRING].includes(a.kind)&&Fl(n,a))return Q();let c=this.compiler.container.element(n);if(this.compiler.container.scopeKind(n)===$.TOPLEVEL||c instanceof x&&c.type&&c.type.start<=n&&c.type.end>=n)return Yv();let l=[...this.compiler.container.stack(n)].reverse();for(let e of l)if(e instanceof al)switch(e.op?.value){case`>`:case`<`:case`<>`:case`-`:return zv(this.compiler,n,e);case`~`:return Rv(this.compiler,n);default:}else if(e instanceof ol)switch(e.op?.value){case`>`:case`<`:case`<>`:case`-`:return zv(this.compiler,n,e);case`.`:return qv(this.compiler,n,e);default:}else if(e instanceof il)return Wv(this.compiler,n,e);else if(e instanceof w)return Wv(this.compiler,n,e);else if(e instanceof ll)return Hv(this.compiler,n,e);else if(e instanceof ul)return Uv(this.compiler,n);else if(e instanceof T)return ty(this.compiler,n,e);else if(e instanceof S)return Jv(this.compiler,n,e);else if(e instanceof x){if(kv(n,e))return ey(this.compiler,n,e);if(e.bodyColon&&n>=e.bodyColon.end||e.body&&Fl(n,e.body))return Jv(this.compiler,n,void 0)}return Q()}};function Rv(e,t){return Vv(e,t,e.parse.ast(),[N.TablePartial])}function zv(e,t,n){let r=e.container.scopeKind(t);if([$.REF,$.TABLE,$.TABLEPARTIAL].includes(r)){let r=Vv(e,t,e.container.element(t),[N.Table,N.Schema,N.Column]);return Tv(n.op,t)?Ev(r):r}return Q()}function Bv(e,t,n){return Dv({suggestions:e.symbol.members(t).filter(({kind:e})=>n.includes(e)).map(({name:e,kind:t})=>({label:e,insertText:e,insertTextRules:Z.KeepWhitespace,kind:wv(t),sortText:wv(t).toString().padStart(2,`0`),range:void 0}))})}function Vv(e,t,n,r){if(n===void 0)return Q();let i=n,a={suggestions:[]};for(;i;){if(i?.symbol?.symbolTable){let{symbol:t}=i;a.suggestions.push(...Bv(e,t,r).suggestions)}i=i instanceof x?i.parent:void 0}return Dv(a)}function Hv(e,t,n){let r=e.container.scopeKind(t),i=e.container.element(t),a=[...e.container.stack(t)];for(let r of a)if(r instanceof T&&r.argumentList===n)return ty(e,t,r);if(i instanceof x&&Du(i).unwrap_or(void 0)===j.Records&&!(i.name instanceof T)&&kv(t,i)){let t=i.parent?.symbol||i.name?.referee;if(t){let r=Bv(e,t,[N.Column]);return Av(n)?Ov(r):r}}switch(r){case $.INDEXES:return ay(e,t);case $.REF:for(;a.length>0;){let n=a.pop();if(n instanceof ol&&n.op?.value===`.`)return qv(e,t,n)}return $v(e,t);default:break}return Q()}function Uv(e,t){return e.container.scopeKind(t)===$.RECORDS?Vv(e,t,e.container.element(t),[N.Schema,N.Enum,N.EnumField]):Q()}function Wv(e,t,n){let{token:r}=e.container.token(t);if([_.COMMA,_.LBRACKET].includes(r?.kind)){let n=Gv(e,t);return r?.kind===_.COMMA&&Tv(r,t)?Ev(n):n}if(n.name&&n.name.start<=t&&n.name.end>=t)return Gv(e,t);if(n.name instanceof rl){let i=Kv(e,t,Yu(n.name).unwrap_or(``));return r?.kind===_.COLON&&Tv(r,t)?Ev(i):i}return Q()}function Gv(e,t){let n=e.container.element(t);if(n instanceof b)return Q();let r=e.container.scopeKind(t);if(n.body&&!Fl(t,n.body)){let e;switch(r){case $.TABLE:case $.TABLEPARTIAL:e=[M.HeaderColor,M.Note];break;case $.TABLEGROUP:e=[M.Color,M.Note];break;default:e=[]}return{suggestions:e.map(e=>({label:e,insertText:`${e}: `,kind:X.Field,insertTextRules:Z.KeepWhitespace,range:void 0}))}}switch(r){case $.TABLE:case $.TABLEPARTIAL:return{suggestions:[...[M.PK,M.PrimaryKey,M.Null,M.NotNull,M.Increment,M.Unique].map(e=>({label:e,insertText:e,kind:X.Property,insertTextRules:Z.KeepWhitespace,range:void 0})),...[M.Ref,M.Default,M.Note,M.Check].map(e=>({label:e,insertText:`${e}: `,kind:X.Property,insertTextRules:Z.KeepWhitespace,range:void 0}))]};case $.ENUM:return{suggestions:[...[M.Note].map(e=>({label:e,insertText:`${e}: `,kind:X.Property,insertTextRules:Z.KeepWhitespace,range:void 0}))]};case $.INDEXES:return{suggestions:[...[M.Unique,M.PK].map(e=>({label:e,insertText:e,insertTextRules:Z.KeepWhitespace,kind:X.Property,range:void 0})),...[M.Note,M.Name,M.Type].map(e=>({label:e,insertText:`${e}: `,kind:X.Property,insertTextRules:Z.KeepWhitespace,range:void 0}))]};case $.REF:return{suggestions:[M.Update,M.Delete,M.Color].map(e=>({label:e,insertText:`${e}: `,kind:X.Property,insertTextRules:Z.KeepWhitespace,range:void 0}))};case $.CHECKS:return{suggestions:[M.Name].map(e=>({label:e,insertText:`${e}: `,kind:X.Property,insertTextRules:Z.KeepWhitespace,range:void 0}))};default:break}return Q()}function Kv(e,t,n){switch(n?.toLowerCase()){case`update`:case`delete`:return{suggestions:[`cascade`,`set default`,`set null`,`restrict`].map(e=>({label:e,insertText:e,kind:X.Value,insertTextRules:Z.KeepWhitespace,range:void 0}))};case`type`:return{suggestions:[`btree`,`hash`].map(e=>({label:e,insertText:`${e}`,kind:X.Value,insertTextRules:Z.KeepWhitespace,range:void 0}))};case`default`:return Vv(e,t,e.container.element(t),[N.Schema,N.Enum]);default:break}return Q()}function qv(e,t,n){let r=Ou(n).unwrap_or([]);if(r.pop(),r.some(e=>!B(e)))return Q();let i=r.map(e=>I(e).unwrap());return Dv({suggestions:e.symbol.ofName(i,e.container.element(t)).flatMap(({symbol:t})=>e.symbol.members(t)).map(({kind:e,name:t})=>({label:t,insertText:t,kind:wv(e),range:void 0}))})}function Jv(e,t,n){switch(e.container.scopeKind(t)){case $.TABLE:case $.TABLEPARTIAL:return Zv(e,t,n);case $.PROJECT:return Qv(e,t,n);case $.INDEXES:return ry(e,t);case $.ENUM:return Xv(e,t,n);case $.REF:{let n=$v(e,t);return e.container.token(t).token?.kind===_.COLON&&Tv(e.container.token(t).token,t)?Ev(n):n}case $.TABLEGROUP:return ny(e);default:return Q()}}function Yv(){return{suggestions:[`Table`,`TableGroup`,`Enum`,`Project`,`Ref`,`TablePartial`,`Records`].map(e=>({label:e,insertText:e,insertTextRules:Z.KeepWhitespace,kind:X.Keyword,range:void 0}))}}function Xv(e,t,n){return n?.callee&&oy(t,n)===1?Vv(e,t,e.container.element(t),[N.Schema,N.Table,N.Column]):Q()}function Zv(e,t,n){let r=[`Note`,`indexes`,`checks`,`Records`];if(!n?.callee)return{suggestions:r.map(e=>({label:e,insertText:e,insertTextRules:Z.KeepWhitespace,kind:X.Keyword,range:void 0}))};let i=oy(t,n);return i===0?{suggestions:r.map(e=>({label:e,insertText:e,insertTextRules:Z.KeepWhitespace,kind:X.Keyword,range:void 0}))}:i===1?iy(e,t):Q()}function Qv(e,t,n){return!n?.callee||oy(t,n)===0?{suggestions:[`Table`,`TableGroup`,`Enum`,`Note`,`Ref`,`TablePartial`].map(e=>({label:e,insertText:e,insertTextRules:Z.KeepWhitespace,kind:X.Keyword,range:void 0}))}:Q()}function $v(e,t){return Vv(e,t,e.container.element(t),[N.Schema,N.Table,N.Column])}function ey(e,t,n){return Du(n).unwrap_or(void 0)===j.Records?Vv(e,t,n.parent,[N.Schema,N.Table]):Q()}function ty(e,t,n){let r=e.container.element(t),i=n.callee&&Fl(t,n.callee),a=n.argumentList&&Fl(t,n.argumentList);if(r instanceof x&&Du(r).unwrap_or(void 0)===j.Records&&kv(t,r)){if(i)return Vv(e,t,r.parent,[N.Schema,N.Table]);if(!a)return Q();let o=n.callee;if(!o)return Q();let s=Ou(o).unwrap_or([o]),c=s[s.length-1]?.referee;if(!c)return Q();let l=Bv(e,c,[N.Column]),{argumentList:u}=n;return!u||!Av(u)?l:Ov(l)}let o=[...e.container.stack(t)];for(let r of o){if(!a||!(r instanceof S)||r.callee!==n||I(n.callee).unwrap_or(``).toLowerCase()!==j.Records)continue;let i=e.container.element(t).symbol;if(!i)return Q();let o=Bv(e,i,[N.Column]),{argumentList:s}=n;return!s||!Av(s)?o:Ov(o)}return Q()}function ny(e){return{suggestions:[...Dv({suggestions:[...e.parse.publicSymbolTable().entries()].flatMap(([e])=>{let t=$l(e).unwrap_or(void 0);if(t===void 0)return[];let{kind:n,name:r}=t;return n!==N.Table&&n!==N.Schema?[]:{label:r,insertText:r,insertTextRules:Z.KeepWhitespace,kind:wv(n),range:void 0}})}).suggestions,...[`Note`].map(e=>({label:e,insertText:e,insertTextRules:Z.KeepWhitespace,kind:X.Keyword,range:void 0}))]}}function ry(e,t){return ay(e,t)}function iy(e,t){return{suggestions:[...`integer.int.tinyint.smallint.mediumint.bigint.bit.bool.binary.varbinary.logical.char.nchar.varchar.varchar2.nvarchar.nvarchar2.binary_float.binary_double.float.double.decimal.dec.real.money.smallmoney.enum.tinyblob.tinytext.blob.text.mediumblob.mediumtext.longblob.longtext.ntext.set.inet6.uuid.image.date.time.datetime.datetime2.timestamp.year.smalldatetime.datetimeoffset.XML.sql_variant.uniqueidentifier.CURSOR.BFILE.CLOB.NCLOB.RAW`.split(`.`).map(e=>({label:e,insertText:e,insertTextRules:Z.KeepWhitespace,kind:X.TypeParameter,sortText:X.TypeParameter.toString().padStart(2,`0`),range:void 0})),...Vv(e,t,e.container.element(t),[N.Enum,N.Schema]).suggestions]}}function ay(e,t){let n=e.container.element(t)?.parent;if(!(n?.symbol instanceof Sl))return Q();let{symbolTable:r}=n.symbol;return Dv({suggestions:[...r.entries()].flatMap(([e])=>{let t=$l(e).unwrap_or(void 0);if(t===void 0)return[];let{name:n}=t;return{label:n,insertText:n,insertTextRules:Z.KeepWhitespace,kind:wv(N.Column),range:void 0}})})}function oy(e,t){if(!t.callee)return-1;let n=[t.callee,...t.args],r=n.findIndex(t=>e<=t.end);return r===-1?n.length:r}var sy=class{constructor(e){this.compiler=e}provideDefinition(e,t){let{uri:n}=e,r=Iv(e,t),i=[...this.compiler.container.stack(r)];for(;i.length!==0;){let e=i.pop();if(!e?.referee)continue;let t;if(e.referee?.declaration&&[y.PRIMARY_EXPRESSION,y.VARIABLE].includes(e?.kind)&&({declaration:t}=e.referee),t){let{startPos:e,endPos:r}=t;return[{range:{startColumn:e.column+1,startLineNumber:e.line+1,endColumn:r.column+1,endLineNumber:r.line+1},uri:n}]}}return[]}},cy=class{constructor(e){this.compiler=e}provideReferences(e,t){let{uri:n}=e,r=Iv(e,t),i=[...this.compiler.container.stack(r)];for(;i.length!==0;){let e=i.pop();if(e&&[y.ELEMENT_DECLARATION,y.FUNCTION_APPLICATION,y.PRIMARY_EXPRESSION].includes(e?.kind)){let{symbol:t}=e;if(t?.references.length)return t.references.map(({startPos:e,endPos:t})=>({range:{startColumn:e.column+1,startLineNumber:e.line+1,endColumn:t.column+1,endLineNumber:t.line+1},uri:n}))}}return[]}},ly=class{constructor(e){this.compiler=e}provideDiagnostics(){let e=[],t=this.compiler.parse._(),n=t.getErrors();for(let t of n)e.push(this.createDiagnostic(t,`error`));let r=t.getWarnings();for(let t of r)e.push(this.createDiagnostic(t,`warning`));return e}provideErrors(){return this.compiler.parse._().getErrors().map(e=>this.createDiagnostic(e,`error`))}provideWarnings(){return this.compiler.parse._().getWarnings().map(e=>this.createDiagnostic(e,`warning`))}provideMarkers(){return this.provideDiagnostics().map(e=>({severity:this.getSeverityValue(e.type),message:e.text,startLineNumber:e.startRow,startColumn:e.startColumn,endLineNumber:e.endRow,endColumn:e.endColumn,code:e.code?String(e.code):void 0}))}createDiagnostic(e,t){let n=e.nodeOrToken,r=n.startPos,i=n.endPos;return{type:t,text:e.diagnostic,startRow:r.line+1,startColumn:r.column+1,endRow:i.line+1,endColumn:i.column+1,code:e.code}}getSeverityValue(e){return e===`error`?_v.Error:_v.Warning}},uy=t({CompletionItemInsertTextRule:()=>Z,CompletionItemKind:()=>X,DBMLCompletionItemProvider:()=>Lv,DBMLDefinitionProvider:()=>sy,DBMLDiagnosticsProvider:()=>ly,DBMLReferencesProvider:()=>cy,MarkerSeverity:()=>_v},1);function dy(){return this.parse._().getValue().ast}function fy(){return this.parse._().getErrors()}function py(){return this.parse._().getWarnings()}function my(){return this.parse._().getValue().tokens}function hy(){return this.parse._().getValue().rawDb}function gy(){return this.parse._().getValue().ast.symbol.symbolTable}function _y(){return this.parse.tokens().flatMap(e=>[...e.leadingInvalid,e,...e.trailingInvalid])}function vy(){return this.parse.tokens().filter(Vu)}function yy(e){return e.symbolTable?[...e.symbolTable.entries()].map(([e,t])=>({...$l(e).unwrap(),symbol:t})):[]}function by(e,t){if(e.length===0)return[];let n=[];for(let r=t;r;r=r instanceof x?r.parent:void 0){if(!r.symbol?.symbolTable)continue;let{symbolTable:t}=r.symbol,i=[t],a=[];for(let t of e)a=i.flatMap(e=>yd(t).flatMap(t=>{let n=e.get(t),r=$l(t).unwrap_or(void 0);return!n||!r?[]:{...r,symbol:n}})),i=a.flatMap(e=>e.symbol.symbolTable?e.symbol.symbolTable:[]);n.push(...a)}return n}function xy(e,t){return`${e.join(`.`)}@${t.id}`}function Sy(e){let t=this.token.flatStream(),{index:n,token:r}=this.container.token(e),i=n===void 0?-1:fc(t,e=>!e.isInvalid,n);if(i===-1)return[this.parse.ast()];let a=t[i].start,o=this.parse.ast(),s=[o];for(;;){let e=Uu(o).find(e=>Fl(a,e));if(e===void 0||e instanceof Yc)break;s.push(e),o=e}if(r?.kind===_.COLON)return s;for(;s.length>0;){let t=!1,n=h(s);if(n instanceof S){let r=this.parse.source();for(let i=n.end;i<e;i+=1)r[i]===`
|
|
13
|
+
`:t+=`\\n`;break;case` `:t+=`\\t`;break;case`\r`:t+=`\\r`;break;case`\b`:t+=`\\b`;break;case`\f`:t+=`\\f`;break;case`\v`:t+=`\\v`;break;case`\0`:t+=`\\0`;break;default:t+=r}}return t}function Sv(e){if(e==null)return`null`;if(typeof e==`boolean`)return e?`true`:`false`;if(typeof e==`number`)return String(e);if(typeof e==`string`)return`'${xv(e)}'`;let{value:t,type:n}=e;if(t==null||af(n)&&typeof t==`string`&&t.toLowerCase()===`null`)return`null`;if(n===`expression`)return typeof t==`string`&&t.toLowerCase().trim()===`null`?`null`:`\`${t}\``;if(af(n)){let e=j_(t);return e===null?`\`${t}\``:e?`true`:`false`}if(rf(n)){let e=D_(t);return e===null?`\`${t}\``:String(e)}if(cf(n)){let e=L_(t);return e===null?`\`${t}\``:`'${xv(e)}'`}let r=N_(t);return r===null?`\`${t}\``:`'${xv(r)}'`}function Cv(e){return(e.match(/"(?:[^"\\]|\\.)*"|[^."]+/g)||[]).map(e=>e.startsWith(`"`)&&e.endsWith(`"`)?bv(e.slice(1,-1)):e.trim()).filter(e=>e.length>0)}function wv(e){switch(e){case N.Schema:return X.Module;case N.Table:case N.TablePartial:return X.Class;case N.Column:case N.TableGroupField:return X.Field;case N.Enum:return X.Enum;case N.EnumField:return X.EnumMember;case N.TableGroup:return X.Struct;default:return X.Text}}function Tv(e,t){if(!e||Qc(e))return!1;for(let n of e.trailingTrivia){if(n.start>t)break;if(n.kind===_.NEWLINE&&n.end<=t)return!1}return!0}function Q(){return{suggestions:[]}}function Ev(e){return{...e,suggestions:e.suggestions.map(e=>({...e,insertText:` ${e.insertText}`}))}}function Dv(e){return{...e,suggestions:e.suggestions.map(e=>({...e,insertText:e.quoted?e.insertText:yv(e.insertText??``),quoted:!0}))}}function Ov(e,t=`, `){let n=e.suggestions.map(e=>typeof e.label==`string`?e.label:e.label.label).join(t);return n?{...e,suggestions:[{label:`* (all)`,insertText:n,insertTextRules:Z.KeepWhitespace,kind:X.Snippet,sortText:`00`,range:void 0},...e.suggestions]}:e}function kv(e,t){return e<t.start||e>t.end?!1:t.body?e<t.body.start||e>t.body.end:!0}function Av(e){return e.commaList.length+e.elementList.length===0}function jv(e){let t=[];for(let[n,r]of e.symbolTable.entries()){let e=$l(n).unwrap_or(void 0);if(e===void 0||e.kind!==N.Column||!(r instanceof Cl||r instanceof Ol))continue;let i=Mv(r,e.name);i&&t.push(i)}return t}function Mv(e,t){let n=Wl(t),r=e instanceof Ol?e.tablePartialSymbol.symbolTable.get(n)?.declaration:e.declaration;if(!(r instanceof S))return null;let i=I(r.callee).unwrap_or(null),a=I(r.args[0]).unwrap_or(null);return i===null||a===null?null:{name:i,type:a}}function Nv(e,t,n,r){let i=e.container.element(r);return!(i instanceof x)||Du(i).unwrap_or(void 0)!==j.Records||!(i.body instanceof C)||!i.body||!Fl(r,i.body)||t.getLineContent(n.lineNumber).trim()!==``?null:i.parent instanceof b?Pv(e,i):Fv(e,i)}function Pv(e,t){if(!(t.name instanceof T))return Q();let n=t.name.argumentList?.elementList||[],r=n.map(e=>Mu(e));if(!r||r.length===0)return Q();let i=n.map((e,t)=>{let n=r[t];if(!n||!(n instanceof Cl||n instanceof Ol))return null;let i=I(e).unwrap_or(void 0);return i?Mv(n,i):null}).filter(e=>e!==null);return i.length===0?Q():{suggestions:[{label:`Record row snippet`,insertText:i.map((e,t)=>`\${${t+1}:${e.name} (${e.type})}`).join(`, `),insertTextRules:Z.InsertAsSnippet,kind:X.Snippet,range:void 0}]}}function Fv(e,t){let n=t.parent;if(!(n instanceof x))return Q();let r=n.symbol;if(!(r instanceof Sl))return Q();let i;if(t.name instanceof ll){let e=t.name.elementList,n=e.map(e=>Mu(e)).filter(e=>e!==void 0);i=e.map((e,t)=>{let r=n[t];if(!r||!(r instanceof Cl||r instanceof Ol))return null;let i=I(e).unwrap_or(void 0);return i===void 0?null:Mv(r,i)}).filter(e=>e!==null)}else{let e=jv(r);if(!e)return Q();i=e}return i.length===0?Q():{suggestions:[{label:`Record row snippet`,insertText:i.map((e,t)=>`\${${t+1}:${e.name} (${e.type})}`).join(`, `),insertTextRules:Z.InsertAsSnippet,kind:X.Snippet,range:void 0}]}}function Iv(e,t){return e.getOffsetAt(t)}var Lv=class{constructor(e,t=[]){this.compiler=e,this.triggerCharacters=t}provideCompletionItems(e,t){let n=Iv(e,t),r=Nv(this.compiler,e,t,n);if(r!==null)return r;let i=this.compiler.token.flatStream(),{token:a,index:o}=this.compiler.container.token(n),s=o===void 0?i[0]:i[o+1];if([...a?.trailingTrivia||[],...a?.leadingTrivia||[],...s?.leadingTrivia||[]].find(e=>tl(e)&&Fl(n,e)))return Q();if(o===void 0)return Yv();if([_.STRING_LITERAL,_.QUOTED_STRING].includes(a.kind)&&Fl(n,a))return Q();let c=this.compiler.container.element(n);if(this.compiler.container.scopeKind(n)===$.TOPLEVEL||c instanceof x&&c.type&&c.type.start<=n&&c.type.end>=n)return Yv();let l=[...this.compiler.container.stack(n)].reverse();for(let e of l)if(e instanceof al)switch(e.op?.value){case`>`:case`<`:case`<>`:case`-`:return zv(this.compiler,n,e);case`~`:return Rv(this.compiler,n);default:}else if(e instanceof ol)switch(e.op?.value){case`>`:case`<`:case`<>`:case`-`:return zv(this.compiler,n,e);case`.`:return qv(this.compiler,n,e);default:}else if(e instanceof il)return Wv(this.compiler,n,e);else if(e instanceof w)return Wv(this.compiler,n,e);else if(e instanceof ll)return Hv(this.compiler,n,e);else if(e instanceof ul)return Uv(this.compiler,n);else if(e instanceof T)return ty(this.compiler,n,e);else if(e instanceof S)return Jv(this.compiler,n,e);else if(e instanceof x){if(kv(n,e))return ey(this.compiler,n,e);if(e.bodyColon&&n>=e.bodyColon.end||e.body&&Fl(n,e.body))return Jv(this.compiler,n,void 0)}return Q()}};function Rv(e,t){return Vv(e,t,e.parse.ast(),[N.TablePartial])}function zv(e,t,n){let r=e.container.scopeKind(t);if([$.REF,$.TABLE,$.TABLEPARTIAL].includes(r)){let r=Vv(e,t,e.container.element(t),[N.Table,N.Schema,N.Column]);return Tv(n.op,t)?Ev(r):r}return Q()}function Bv(e,t,n){return Dv({suggestions:e.symbol.members(t).filter(({kind:e})=>n.includes(e)).map(({name:e,kind:t})=>({label:e,insertText:e,insertTextRules:Z.KeepWhitespace,kind:wv(t),sortText:wv(t).toString().padStart(2,`0`),range:void 0}))})}function Vv(e,t,n,r){if(n===void 0)return Q();let i=n,a={suggestions:[]};for(;i;){if(i?.symbol?.symbolTable){let{symbol:t}=i;a.suggestions.push(...Bv(e,t,r).suggestions)}i=i instanceof x?i.parent:void 0}return Dv(a)}function Hv(e,t,n){let r=e.container.scopeKind(t),i=e.container.element(t),a=[...e.container.stack(t)];for(let r of a)if(r instanceof T&&r.argumentList===n)return ty(e,t,r);if(i instanceof x&&Du(i).unwrap_or(void 0)===j.Records&&!(i.name instanceof T)&&kv(t,i)){let t=i.parent?.symbol||i.name?.referee;if(t){let r=Bv(e,t,[N.Column]);return Av(n)?Ov(r):r}}switch(r){case $.INDEXES:return ay(e,t);case $.REF:for(;a.length>0;){let n=a.pop();if(n instanceof ol&&n.op?.value===`.`)return qv(e,t,n)}return $v(e,t);default:break}return Q()}function Uv(e,t){return e.container.scopeKind(t)===$.RECORDS?Vv(e,t,e.container.element(t),[N.Schema,N.Enum,N.EnumField]):Q()}function Wv(e,t,n){let{token:r}=e.container.token(t);if([_.COMMA,_.LBRACKET].includes(r?.kind)){let n=Gv(e,t);return r?.kind===_.COMMA&&Tv(r,t)?Ev(n):n}if(n.name&&n.name.start<=t&&n.name.end>=t)return Gv(e,t);if(n.name instanceof rl){let i=Kv(e,t,Yu(n.name).unwrap_or(``));return r?.kind===_.COLON&&Tv(r,t)?Ev(i):i}return Q()}function Gv(e,t){let n=e.container.element(t);if(n instanceof b)return Q();let r=e.container.scopeKind(t);if(n.body&&!Fl(t,n.body)){let e;switch(r){case $.TABLE:case $.TABLEPARTIAL:e=[M.HeaderColor,M.Note];break;case $.TABLEGROUP:e=[M.Color,M.Note];break;default:e=[]}return{suggestions:e.map(e=>({label:e,insertText:`${e}: `,kind:X.Field,insertTextRules:Z.KeepWhitespace,range:void 0}))}}switch(r){case $.TABLE:case $.TABLEPARTIAL:return{suggestions:[...[M.PK,M.PrimaryKey,M.Null,M.NotNull,M.Increment,M.Unique].map(e=>({label:e,insertText:e,kind:X.Property,insertTextRules:Z.KeepWhitespace,range:void 0})),...[M.Ref,M.Default,M.Note,M.Check].map(e=>({label:e,insertText:`${e}: `,kind:X.Property,insertTextRules:Z.KeepWhitespace,range:void 0}))]};case $.ENUM:return{suggestions:[...[M.Note].map(e=>({label:e,insertText:`${e}: `,kind:X.Property,insertTextRules:Z.KeepWhitespace,range:void 0}))]};case $.INDEXES:return{suggestions:[...[M.Unique,M.PK].map(e=>({label:e,insertText:e,insertTextRules:Z.KeepWhitespace,kind:X.Property,range:void 0})),...[M.Note,M.Name,M.Type].map(e=>({label:e,insertText:`${e}: `,kind:X.Property,insertTextRules:Z.KeepWhitespace,range:void 0}))]};case $.REF:return{suggestions:[M.Update,M.Delete,M.Color].map(e=>({label:e,insertText:`${e}: `,kind:X.Property,insertTextRules:Z.KeepWhitespace,range:void 0}))};case $.CHECKS:return{suggestions:[M.Name].map(e=>({label:e,insertText:`${e}: `,kind:X.Property,insertTextRules:Z.KeepWhitespace,range:void 0}))};default:break}return Q()}function Kv(e,t,n){switch(n?.toLowerCase()){case`update`:case`delete`:return{suggestions:[`cascade`,`set default`,`set null`,`restrict`].map(e=>({label:e,insertText:e,kind:X.Value,insertTextRules:Z.KeepWhitespace,range:void 0}))};case`type`:return{suggestions:[`btree`,`hash`].map(e=>({label:e,insertText:`${e}`,kind:X.Value,insertTextRules:Z.KeepWhitespace,range:void 0}))};case`default`:return Vv(e,t,e.container.element(t),[N.Schema,N.Enum]);default:break}return Q()}function qv(e,t,n){let r=Ou(n).unwrap_or([]);if(r.pop(),r.some(e=>!B(e)))return Q();let i=r.map(e=>I(e).unwrap());return Dv({suggestions:e.symbol.ofName(i,e.container.element(t)).flatMap(({symbol:t})=>e.symbol.members(t)).map(({kind:e,name:t})=>({label:t,insertText:t,kind:wv(e),range:void 0}))})}function Jv(e,t,n){switch(e.container.scopeKind(t)){case $.TABLE:case $.TABLEPARTIAL:return Zv(e,t,n);case $.PROJECT:return Qv(e,t,n);case $.INDEXES:return ry(e,t);case $.ENUM:return Xv(e,t,n);case $.REF:{let n=$v(e,t);return e.container.token(t).token?.kind===_.COLON&&Tv(e.container.token(t).token,t)?Ev(n):n}case $.TABLEGROUP:return ny(e);default:return Q()}}function Yv(){return{suggestions:[`Table`,`TableGroup`,`Enum`,`Project`,`Ref`,`TablePartial`,`Records`].map(e=>({label:e,insertText:e,insertTextRules:Z.KeepWhitespace,kind:X.Keyword,range:void 0}))}}function Xv(e,t,n){return n?.callee&&oy(t,n)===1?Vv(e,t,e.container.element(t),[N.Schema,N.Table,N.Column]):Q()}function Zv(e,t,n){let r=[`Note`,`indexes`,`checks`,`Records`];if(!n?.callee)return{suggestions:r.map(e=>({label:e,insertText:e,insertTextRules:Z.KeepWhitespace,kind:X.Keyword,range:void 0}))};let i=oy(t,n);return i===0?{suggestions:r.map(e=>({label:e,insertText:e,insertTextRules:Z.KeepWhitespace,kind:X.Keyword,range:void 0}))}:i===1?iy(e,t):Q()}function Qv(e,t,n){return!n?.callee||oy(t,n)===0?{suggestions:[`Table`,`TableGroup`,`Enum`,`Note`,`Ref`,`TablePartial`].map(e=>({label:e,insertText:e,insertTextRules:Z.KeepWhitespace,kind:X.Keyword,range:void 0}))}:Q()}function $v(e,t){return Vv(e,t,e.container.element(t),[N.Schema,N.Table,N.Column])}function ey(e,t,n){return Du(n).unwrap_or(void 0)===j.Records?Vv(e,t,n.parent,[N.Schema,N.Table]):Q()}function ty(e,t,n){let r=e.container.element(t),i=n.callee&&Fl(t,n.callee),a=n.argumentList&&Fl(t,n.argumentList);if(r instanceof x&&Du(r).unwrap_or(void 0)===j.Records&&kv(t,r)){if(i)return Vv(e,t,r.parent,[N.Schema,N.Table]);if(!a)return Q();let o=n.callee;if(!o)return Q();let s=Ou(o).unwrap_or([o]),c=s[s.length-1]?.referee;if(!c)return Q();let l=Bv(e,c,[N.Column]),{argumentList:u}=n;return!u||!Av(u)?l:Ov(l)}let o=[...e.container.stack(t)];for(let r of o){if(!a||!(r instanceof S)||r.callee!==n||I(n.callee).unwrap_or(``).toLowerCase()!==j.Records)continue;let i=e.container.element(t).symbol;if(!i)return Q();let o=Bv(e,i,[N.Column]),{argumentList:s}=n;return!s||!Av(s)?o:Ov(o)}return Q()}function ny(e){return{suggestions:[...Dv({suggestions:[...e.parse.publicSymbolTable().entries()].flatMap(([e])=>{let t=$l(e).unwrap_or(void 0);if(t===void 0)return[];let{kind:n,name:r}=t;return n!==N.Table&&n!==N.Schema?[]:{label:r,insertText:r,insertTextRules:Z.KeepWhitespace,kind:wv(n),range:void 0}})}).suggestions,...[`Note`].map(e=>({label:e,insertText:e,insertTextRules:Z.KeepWhitespace,kind:X.Keyword,range:void 0}))]}}function ry(e,t){return ay(e,t)}function iy(e,t){return{suggestions:[...`integer.int.tinyint.smallint.mediumint.bigint.bit.bool.binary.varbinary.logical.char.nchar.varchar.varchar2.nvarchar.nvarchar2.binary_float.binary_double.float.double.decimal.dec.real.money.smallmoney.enum.tinyblob.tinytext.blob.text.mediumblob.mediumtext.longblob.longtext.ntext.set.inet6.uuid.image.date.time.datetime.datetime2.timestamp.year.smalldatetime.datetimeoffset.XML.sql_variant.uniqueidentifier.CURSOR.BFILE.CLOB.NCLOB.RAW`.split(`.`).map(e=>({label:e,insertText:e,insertTextRules:Z.KeepWhitespace,kind:X.TypeParameter,sortText:X.TypeParameter.toString().padStart(2,`0`),range:void 0})),...Vv(e,t,e.container.element(t),[N.Enum,N.Schema]).suggestions]}}function ay(e,t){let n=e.container.element(t)?.parent;if(!(n?.symbol instanceof Sl))return Q();let{symbolTable:r}=n.symbol;return Dv({suggestions:[...r.entries()].flatMap(([e])=>{let t=$l(e).unwrap_or(void 0);if(t===void 0)return[];let{name:n}=t;return{label:n,insertText:n,insertTextRules:Z.KeepWhitespace,kind:wv(N.Column),range:void 0}})})}function oy(e,t){if(!t.callee)return-1;let n=[t.callee,...t.args],r=n.findIndex(t=>e<=t.end);return r===-1?n.length:r}var sy=class{constructor(e){this.compiler=e}provideDefinition(e,t){let{uri:n}=e,r=Iv(e,t),i=[...this.compiler.container.stack(r)];for(;i.length!==0;){let e=i.pop();if(!e?.referee)continue;let t;if(e.referee?.declaration&&[y.PRIMARY_EXPRESSION,y.VARIABLE].includes(e?.kind)&&({declaration:t}=e.referee),t){let{startPos:e,endPos:r}=t;return[{range:{startColumn:e.column+1,startLineNumber:e.line+1,endColumn:r.column+1,endLineNumber:r.line+1},uri:n}]}}return[]}},cy=class{constructor(e){this.compiler=e}provideReferences(e,t){let{uri:n}=e,r=Iv(e,t),i=[...this.compiler.container.stack(r)];for(;i.length!==0;){let e=i.pop();if(e&&[y.ELEMENT_DECLARATION,y.FUNCTION_APPLICATION,y.PRIMARY_EXPRESSION].includes(e?.kind)){let{symbol:t}=e;if(t?.references.length)return t.references.map(({startPos:e,endPos:t})=>({range:{startColumn:e.column+1,startLineNumber:e.line+1,endColumn:t.column+1,endLineNumber:t.line+1},uri:n}))}}return[]}},ly=class{constructor(e){this.compiler=e}provideDiagnostics(){let e=[],t=this.compiler.parse._(),n=t.getErrors();for(let t of n)e.push(this.createDiagnostic(t,`error`));let r=t.getWarnings();for(let t of r)e.push(this.createDiagnostic(t,`warning`));return e}provideErrors(){return this.compiler.parse._().getErrors().map(e=>this.createDiagnostic(e,`error`))}provideWarnings(){return this.compiler.parse._().getWarnings().map(e=>this.createDiagnostic(e,`warning`))}provideMarkers(){return this.provideDiagnostics().map(e=>({severity:this.getSeverityValue(e.type),message:e.text,startLineNumber:e.startRow,startColumn:e.startColumn,endLineNumber:e.endRow,endColumn:e.endColumn,code:e.code?String(e.code):void 0}))}createDiagnostic(e,t){let n=e.nodeOrToken,r=n.startPos,i=n.endPos;return{type:t,text:e.diagnostic,startRow:r.line+1,startColumn:r.column+1,endRow:i.line+1,endColumn:i.column+1,code:e.code}}getSeverityValue(e){return e===`error`?_v.Error:_v.Warning}},uy=t({CompletionItemInsertTextRule:()=>Z,CompletionItemKind:()=>X,DBMLCompletionItemProvider:()=>Lv,DBMLDefinitionProvider:()=>sy,DBMLDiagnosticsProvider:()=>ly,DBMLReferencesProvider:()=>cy,MarkerSeverity:()=>_v},1);function dy(){return this.parse._().getValue().ast}function fy(){return this.parse._().getErrors()}function py(){return this.parse._().getWarnings()}function my(){return this.parse._().getValue().tokens}function hy(){return this.parse._().getValue().rawDb}function gy(){return this.parse._().getValue().ast.symbol.symbolTable}function _y(){return this.parse.tokens().flatMap(e=>[...e.leadingInvalid,e,...e.trailingInvalid])}function vy(){return this.parse.tokens().filter(Vu)}function yy(e){return e.symbolTable?[...e.symbolTable.entries()].map(([e,t])=>({...$l(e).unwrap(),symbol:t})):[]}function by(e,t){if(e.length===0)return[];let n=[];for(let r=t;r;r=r instanceof x?r.parent:void 0){if(!r.symbol?.symbolTable)continue;let{symbolTable:t}=r.symbol,i=[t],a=[];for(let t of e)a=i.flatMap(e=>yd(t).flatMap(t=>{let n=e.get(t),r=$l(t).unwrap_or(void 0);return!n||!r?[]:{...r,symbol:n}})),i=a.flatMap(e=>e.symbol.symbolTable?e.symbol.symbolTable:[]);n.push(...a)}return n}function xy(e,t){return`${e.join(`.`)}@${t.id}`}function Sy(e){let t=this.token.flatStream(),{index:n,token:r}=this.container.token(e),i=n===void 0?-1:fc(t,e=>!e.isInvalid,n);if(i===-1)return[this.parse.ast()];let a=t[i].start,o=this.parse.ast(),s=[o];for(;;){let e=Uu(o).find(e=>Fl(a,e));if(e===void 0||e instanceof Yc)break;s.push(e),o=e}if(r?.kind===_.COLON)return s;for(;s.length>0;){let t=!1,n=h(s);if(n instanceof S){let r=this.parse.source();for(let i=n.end;i<e;i+=1)r[i]===`
|
|
14
14
|
`&&(s.pop(),t=!0)}else n instanceof al||n instanceof ol?this.container.token(e).token!==n.op&&(s.pop(),t=!0):n instanceof w?n.listCloseBracket&&n.end<=e&&(s.pop(),t=!0):n instanceof ll?n.tupleCloseParen&&n.end<=e&&(s.pop(),t=!0):n instanceof ul?n.end<=e&&(s.pop(),t=!0):n instanceof C?n.blockCloseBrace&&n.end<=e&&(s.pop(),t=!0):n instanceof rl||n.end<e&&(s.pop(),t=!0);if(t){let t=h(s);t instanceof x&&t.end<=e&&s.pop()}if(!t)break}return s}function Cy(e){let t=this.token.flatStream().findIndex(t=>t.start>=e);return t===void 0||t<=0?{token:void 0,index:void 0}:{token:this.token.flatStream()[t-1],index:t-1}}function wy(e){let t=this.container.stack(e);for(let e=t.length-1;e>=0;--e)if(t[e]instanceof x)return t[e];return this.parse.ast()}function Ty(e){return this.container.element(e)?.symbol?.symbolTable}let $=function(e){return e[e.TABLE=0]=`TABLE`,e[e.ENUM=1]=`ENUM`,e[e.TABLEGROUP=2]=`TABLEGROUP`,e[e.INDEXES=3]=`INDEXES`,e[e.NOTE=4]=`NOTE`,e[e.REF=5]=`REF`,e[e.PROJECT=6]=`PROJECT`,e[e.CUSTOM=7]=`CUSTOM`,e[e.TOPLEVEL=8]=`TOPLEVEL`,e[e.TABLEPARTIAL=9]=`TABLEPARTIAL`,e[e.CHECKS=10]=`CHECKS`,e[e.RECORDS=11]=`RECORDS`,e}({});function Ey(e){let t=this.container.element(e);if(t instanceof b)return $.TOPLEVEL;switch(t.type?.value.toLowerCase()){case`table`:return $.TABLE;case`enum`:return $.ENUM;case`ref`:return $.REF;case`tablegroup`:return $.TABLEGROUP;case`indexes`:return $.INDEXES;case`note`:return $.NOTE;case`project`:return $.PROJECT;case`tablepartial`:return $.TABLEPARTIAL;case`checks`:return $.CHECKS;case`records`:return $.RECORDS;default:return $.CUSTOM}}function Dy(e,t){let n=[...t].sort((e,t)=>t.start-e.start),r=e;for(let{start:e,end:t,newText:i}of n)r=r.substring(0,e)+i+r.substring(t);return r}function Oy(e){if(typeof e!=`string`)return{schema:e.schema??`public`,table:e.table};let t=Cv(e);if(t.length===0)return{schema:Bl,table:``};if(t.length===1)return{schema:Bl,table:t[0]};if(t.length===2)return{schema:t[0],table:t[1]};let n=t[t.length-1];return{schema:t.slice(0,-1).join(`.`),table:n}}function ky(e,t,n){let r=Ul(n);if(t===`public`){let t=e.get(r);return t instanceof Sl?t:null}let i=Hl(t),a=e.get(i);if(!a||!a.symbolTable)return null;let o=a.symbolTable.get(r);return o instanceof Sl?o:null}function Ay(e){return e.startsWith(`"`)&&e.endsWith(`"`)&&e.length>=2?e.slice(1,-1):e}function jy(e){return e?e.split(``).every(e=>Al(e)||jl(e))&&!jl(e[0]):!1}function My(e,t){if(!e.declaration)return!1;let n=e.declaration;if(!n.name)return!1;let r=n.name;return t.substring(r.start,r.end).includes(`"`)}function Ny(e,t,n){let r=!jy(t),i=!jy(e),a=n||r,o=n||i;return{schema:e,table:t,formattedSchema:o?`"${e}"`:e,formattedTable:a?`"${t}"`:t,shouldQuoteSchema:o,shouldQuoteTable:a}}function Py(e,t,n,r,i){let a=Ul(i),o;if(r===`public`)o=e.get(a);else{let t=Hl(r),n=e.get(t);if(!n||!n.symbolTable)return!1;o=n.symbolTable.get(a)}return!(!o||t===r&&n===i)}function Fy(e,t,n){let r=e.start-1;for(;r>=0&&/\s/.test(n[r]);)r--;if(r<0||n[r]!==`.`)return null;for(r--;r>=0&&/\s/.test(n[r]);)r--;if(r<0)return null;let i,a;if(n[r]===`"`){for(a=r+1,r--;r>=0&&n[r]!==`"`;)r--;if(r<0)return null;i=r}else{for(a=r+1;r>=0&&/[a-zA-Z0-9_]/.test(n[r]);)r--;i=r+1}return Ay(n.substring(i,a))===t?{start:i,end:e.end}:null}function Iy(e,t,n,r){let i=[],a=new Set;for(let o of e){let e=Fy(o,t,r)??{start:o.start,end:o.end},s=`${e.start}-${e.end}`;if(a.has(s))continue;a.add(s);let c=n.schema===`public`?n.formattedTable:`${n.formattedSchema}.${n.formattedTable}`;i.push({start:e.start,end:e.end,newText:c})}return i}function Ly(e,t){let n=this.parse.source(),r=this.parse.publicSymbolTable(),i=Oy(e),a=Oy(t),o=i.schema,s=i.table,c=a.schema,l=a.table,u=ky(r,o,s);if(!u||Py(r,o,s,c,l))return n;let d=Ny(c,l,My(u,n)),f=[];if(u.declaration){let e=u.declaration;e.name&&f.push(e.name)}for(let e of u.references)n.substring(e.start,e.end).replace(/"/g,``)===s&&f.push(e);return Dy(n,Iy(f,o,d,n))}var Ry=class{constructor(){this.source=``,this.cache=new Map,this.nodeIdGenerator=new nl,this.symbolIdGenerator=new vl,this.token={invalidStream:this.query(vy),flatStream:this.query(_y)},this.parse={source:()=>this.source,_:this.query(this.interpret),ast:this.query(dy),errors:this.query(fy),warnings:this.query(py),tokens:this.query(my),rawDb:this.query(hy),publicSymbolTable:this.query(gy)},this.container={stack:this.query(Sy),token:this.query(Cy),element:this.query(wy),scope:this.query(Ty),scopeKind:this.query(Ey)},this.symbol={ofName:this.query(by,xy),members:this.query(yy)}}setSource(e){this.source=e,this.cache.clear(),this.nodeIdGenerator.reset(),this.symbolIdGenerator.reset()}query(e,t){let n=Symbol();return((...r)=>{if(r.length===0){if(this.cache.has(n))return this.cache.get(n);let t=e.apply(this,r);return this.cache.set(n,t),t}let i=t?t(...r):r[0],a=this.cache.get(n);if(a instanceof Map&&a.has(i))return a.get(i);let o=e.apply(this,r);return a instanceof Map||(a=new Map,this.cache.set(n,a)),a.set(i,o),o})}interpret(){let e=new Zu(this.source).lex().chain(e=>new td(this.source,e,this.nodeIdGenerator).parse()).chain(({ast:e,tokens:t})=>new Dd(e,this.symbolIdGenerator).analyze().map(()=>({ast:e,tokens:t})));return e.getErrors().length>0?e:e.chain(({ast:e,tokens:t})=>new gv(e).interpret().map(n=>({ast:e,tokens:t,rawDb:n})))}renameTable(e,t){return Ly.call(this,e,t)}applyTextEdits(e){return Dy(this.parse.source(),e)}initMonacoServices(){return{definitionProvider:new sy(this),referenceProvider:new cy(this),autocompletionProvider:new Lv(this),diagnosticsProvider:new ly(this)}}};exports.CompileError=D,exports.CompileErrorCode=E,exports.Compiler=Ry,exports.ElementDeclarationNode=x,exports.ElementKind=j,exports.FALSY_VALUES=A_,exports.ProgramNode=b,exports.ScopeKind=$,exports.SyntaxNode=v,exports.SyntaxNodeKind=y,exports.SyntaxToken=Yc,exports.SyntaxTokenKind=_,exports.TRUTHY_VALUES=k_,exports.addDoubleQuoteIfNeeded=yv,exports.escapeString=xv,exports.extractNumericLiteral=ju,exports.extractSignedNumber=E_,exports.formatRecordValue=Sv,exports.getLengthTypeParam=ff,exports.getNumericTypeParams=df,exports.getRecordValueType=pf,exports.isBinaryType=sf,exports.isBooleanType=af,exports.isDateTimeType=cf,exports.isEmptyStringLiteral=w_,exports.isFloatType=nf,exports.isFunctionExpression=T_,exports.isIntegerType=tf,exports.isNullish=C_,exports.isNumericType=rf,exports.isSerialType=lf,exports.isStringType=of,exports.isValidIdentifier=vv,exports.normalizeTypeName=ef,Object.defineProperty(exports,`services`,{enumerable:!0,get:function(){return uy}}),exports.splitQualifiedIdentifier=Cv,exports.tryExtractBoolean=j_,exports.tryExtractDateTime=L_,exports.tryExtractEnum=M_,exports.tryExtractInteger=O_,exports.tryExtractNumeric=D_,exports.tryExtractString=N_,exports.unescapeString=bv,exports.validateForeignKeys=rv,exports.validatePrimaryKey=K_,exports.validateUnique=ev;
|
package/dist/dbml-parse.mjs
CHANGED
|
@@ -9175,8 +9175,8 @@ function formatRecordValue(r) {
|
|
|
9175
9175
|
if (typeof r == "number") return String(r);
|
|
9176
9176
|
if (typeof r == "string") return `'${escapeString(r)}'`;
|
|
9177
9177
|
let { value: j, type: M } = r;
|
|
9178
|
-
if (j == null) return "null";
|
|
9179
|
-
if (M === "expression") return `\`${j}\``;
|
|
9178
|
+
if (j == null || isBooleanType(M) && typeof j == "string" && j.toLowerCase() === "null") return "null";
|
|
9179
|
+
if (M === "expression") return typeof j == "string" && j.toLowerCase().trim() === "null" ? "null" : `\`${j}\``;
|
|
9180
9180
|
if (isBooleanType(M)) {
|
|
9181
9181
|
let r = tryExtractBoolean(j);
|
|
9182
9182
|
return r === null ? `\`${j}\`` : r ? "true" : "false";
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json.schemastore.org/package",
|
|
3
3
|
"name": "@dbml/parse",
|
|
4
|
-
"version": "6.
|
|
4
|
+
"version": "6.4.0-alpha.0",
|
|
5
5
|
"description": "DBML parser v2",
|
|
6
6
|
"author": "Holistics <dev@holistics.io>",
|
|
7
7
|
"license": "Apache-2.0",
|
|
@@ -46,5 +46,5 @@
|
|
|
46
46
|
"engines": {
|
|
47
47
|
"node": ">=18"
|
|
48
48
|
},
|
|
49
|
-
"gitHead": "
|
|
49
|
+
"gitHead": "ba26cc72483183193335e053d122c28d0aa13575"
|
|
50
50
|
}
|