@dbml/parse 3.13.5-alpha.0 → 3.13.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,4 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const L=require("lodash");var u=(t=>(t.SPACE="<space>",t.TAB="<tab>",t.NEWLINE="<newline>",t.COMMA="<comma>",t.LPAREN="<lparen>",t.RPAREN="<rparen>",t.LBRACE="<lbrace>",t.RBRACE="<rbrace>",t.LBRACKET="<lbracket>",t.RBRACKET="<rbracket>",t.LANGLE="<langle>",t.RANGLE="<rangle>",t.OP="<op>",t.EOF="<eof>",t.NUMERIC_LITERAL="<number>",t.STRING_LITERAL="<string>",t.COLOR_LITERAL="<color>",t.FUNCTION_EXPRESSION="<function-expression>",t.QUOTED_STRING="<variable>",t.IDENTIFIER="<identifier>",t.SEMICOLON="<semicolon>",t.COLON="<colon>",t.TILDE="<tilde>",t.SINGLE_LINE_COMMENT="<single-line-comment>",t.MULTILINE_COMMENT="<multiline-comment>",t))(u||{});function an(t){switch(t.kind){case"<newline>":case"<space>":case"<tab>":case"<single-line-comment>":case"<multiline-comment>":return!0;default:return!1}}function rn(t){if(!t)return!1;switch(t){case"+":case"-":case"*":case"/":case"%":case"<":case">":case"=":case"!":case".":case"&":case"|":return!0;default:return!1}}function pt(t){return t!==void 0&&t.kind==="<op>"}class Q{constructor(e,n,s,i,a){this.kind=e,this.startPos=n,this.endPos=s,this.value=i,this.leadingTrivia=[],this.trailingTrivia=[],this.leadingInvalid=[],this.trailingInvalid=[],this.isInvalid=a,this.start=n.offset,this.end=s.offset}static create(e,n,s,i,a){return new Q(e,n,s,i,a)}}function yt(t){return t.trailingTrivia.find(({kind:e})=>e===u.NEWLINE)!==void 0}function dt(t,e){return e.leadingTrivia.find(({kind:s})=>s===u.NEWLINE)!==void 0||yt(t)}function Je(t){return t.trailingTrivia.find(({kind:e})=>[u.SPACE,u.TAB].includes(e))!==void 0}function Pt(t){return t.trailingTrivia.length===0?t.end:Pt(L.last(t.trailingTrivia))}function kt(t){return t.leadingTrivia.length===0?t.start:kt(t.leadingTrivia[0])}function on(t){return[u.SINGLE_LINE_COMMENT,u.MULTILINE_COMMENT].includes(t.kind)}class ln{constructor(){this.id=0}reset(){this.id=0}nextId(){return this.id++}}class O{constructor(e,n,s){this.id=e,this.kind=n;const i=s.find(r=>r!==void 0&&!Number.isNaN(r.start));i?(this.startPos=i.startPos,this.fullStart=i instanceof Q?kt(i):i.fullStart):(this.startPos={offset:NaN,column:NaN,line:NaN},this.fullStart=NaN);const a=[...s].reverse().find(r=>r!==void 0&&!Number.isNaN(r.end));a?(this.endPos=a.endPos,this.fullEnd=a instanceof Q?Pt(a):a.fullEnd):(this.endPos={offset:NaN,column:NaN,line:NaN},this.fullEnd=NaN),this.start=this.startPos.offset,this.end=this.endPos.offset}}var me=(t=>(t.PROGRAM="<program>",t.ELEMENT_DECLARATION="<element-declaration>",t.ATTRIBUTE="<attribute>",t.IDENTIFIER_STREAM="<identifer-stream>",t.LITERAL="<literal>",t.VARIABLE="<variable>",t.PREFIX_EXPRESSION="<prefix-expression>",t.INFIX_EXPRESSION="<infix-expression>",t.POSTFIX_EXPRESSION="<postfix-expression>",t.FUNCTION_EXPRESSION="<function-expression>",t.FUNCTION_APPLICATION="<function-application>",t.BLOCK_EXPRESSION="<block-expression>",t.LIST_EXPRESSION="<list-expression>",t.TUPLE_EXPRESSION="<tuple-expression>",t.CALL_EXPRESSION="<call-expression>",t.PRIMARY_EXPRESSION="<primary-expression>",t.GROUP_EXPRESSION="<group-expression>",t.DUMMY="<dummy>",t.ARRAY="<array>",t.PARTIAL_INJECTION="<partial-injection>",t))(me||{});class K extends O{constructor({body:e=[],eof:n},s){super(s,"<program>",[...e,n]),this.body=e,this.eof=n}}class y extends O{constructor({type:e,name:n,as:s,alias:i,attributeList:a,bodyColon:r,body:c},f){if(super(f,"<element-declaration>",[e,n,s,i,a,r,c]),c&&r&&!(c instanceof w||c instanceof y))throw new Error("If an element has a simple body, it must be a function application node");this.type=e,this.name=n,this.as=s,this.alias=i,this.attributeList=a,this.bodyColon=r,this.body=c}}class ne extends O{constructor({identifiers:e=[]},n){super(n,"<identifer-stream>",e||[]),this.identifiers=e}}class se extends O{constructor({name:e,colon:n,value:s},i){super(i,"<attribute>",[e,n,s]),this.name=e,this.value=s,this.colon=n}}class Z extends O{constructor({op:e,expression:n},s){super(s,"<prefix-expression>",[e,n]),this.op=e,this.expression=n}}class le extends O{constructor({op:e,leftExpression:n,rightExpression:s},i){super(i,"<infix-expression>",[n,e,s]),this.op=e,this.leftExpression=n,this.rightExpression=s}}class We extends O{constructor({op:e,expression:n},s){super(s,"<postfix-expression>",[n,e]),this.op=e,this.expression=n}}class ue extends O{constructor({value:e},n){super(n,"<function-expression>",[e]),this.value=e}}class w extends O{constructor({callee:e,args:n=[]},s){super(s,"<function-application>",[e,...n]),this.callee=e,this.args=n}}class oe extends O{constructor({blockOpenBrace:e,body:n=[],blockCloseBrace:s},i){super(i,"<block-expression>",[e,...n,s]),this.blockOpenBrace=e,this.body=n,this.blockCloseBrace=s}}class be extends O{constructor({op:e,partial:n},s){super(s,"<partial-injection>",[e,n]),this.partial=n}}class M extends O{constructor({listOpenBracket:e,elementList:n=[],commaList:s=[],listCloseBracket:i},a){super(a,"<list-expression>",[e,...St(n,s),i]),this.listOpenBracket=e,this.elementList=n,this.commaList=s,this.listCloseBracket=i}}class ce extends O{constructor({tupleOpenParen:e,elementList:n=[],commaList:s=[],tupleCloseParen:i},a){super(a,"<tuple-expression>",[e,...St(n,s),i]),this.tupleOpenParen=e,this.elementList=n,this.commaList=s,this.tupleCloseParen=i}}class et extends ce{constructor({groupOpenParen:e,expression:n,groupCloseParen:s},i){super({tupleOpenParen:e,elementList:n&&[n],commaList:[],tupleCloseParen:s},i),this.kind="<group-expression>"}}class ee extends O{constructor({callee:e,argumentList:n},s){super(s,"<call-expression>",[e,n]),this.callee=e,this.argumentList=n}}class ye extends O{constructor({literal:e},n){super(n,"<literal>",[e]),this.literal=e}}class re extends O{constructor({variable:e},n){super(n,"<variable>",[e]),this.variable=e}}class j extends O{constructor({expression:e},n){super(n,"<primary-expression>",[e]),this.expression=e}}class Me extends O{constructor({pre:e},n){const s=Q.create(u.SPACE,e.endPos,e.endPos," ",!1);super(n,"<dummy>",[s])}}class Ie extends O{constructor({expression:e,indexer:n},s){super(s,"<array>",[e,n]),this.array=e,this.indexer=n}}function St(t,e){if(!t||t.length===0)return e||[];if(!e||e.length===0)return t||[];const[n]=t,[s]=e;return(n.start<s.start?L.flatten(L.zip(t,e)):L.flatten(L.zip(e,t))).filter(i=>i!==null)}function cn(t,e=!1){return JSON.stringify(t,function(n,s){var i;return!(this instanceof K)&&n==="symbol"?s==null?void 0:s.id:n==="symbol"?{symbolTable:s==null?void 0:s.symbolTable,id:s==null?void 0:s.id,references:s==null?void 0:s.references.map(a=>a.id),declaration:(i=s==null?void 0:s.declaration)==null?void 0:i.id}:n==="referee"||n==="parent"||n==="declaration"?s==null?void 0:s.id:n==="symbolTable"?Object.fromEntries(s.table):s},e?2:0)}class U{constructor(e){this.value=e}unwrap(){return this.value}unwrap_or(e){return this.value}and_then(e){return e(this.value)}map(e){return new U(e(this.value))}isOk(){return!0}}class k{unwrap(){throw new Error("Trying to unwrap a None value")}unwrap_or(e){return e}and_then(e){return new k}map(e){return new k}isOk(){return!1}}var m=(t=>(t.Schema="Schema",t.Table="Table",t.Column="Column",t.TableGroup="TableGroup",t.TableGroupField="TableGroup field",t.Enum="Enum",t.EnumField="Enum field",t.Note="Note",t.TablePartial="TablePartial",t.TablePartialInjection="TablePartialInjection",t))(m||{});function tt(t){return`Schema:${t}`}function Ve(t){return`Table:${t}`}function qe(t){return`Column:${t}`}function nt(t){return`Enum:${t}`}function st(t){return`Enum field:${t}`}function it(t){return`TableGroup:${t}`}function at(t){return`TableGroup field:${t}`}function un(t){return`Note:${t}`}function rt(t){return`TablePartial:${t}`}function Dt(t){return`TablePartialInjection:${t}`}function Fe(t,e){switch(e){case"Column":return qe(t);case"Enum":return nt(t);case"Enum field":return st(t);case"Schema":return tt(t);case"Table":return Ve(t);case"TableGroup":return it(t);case"TableGroup field":return at(t);case"TablePartial":return rt(t);default:throw new Error("Unreachable")}}function ie(t){const[e,n]=t.split(":");return Object.values(m).includes(e)?new U({name:n,kind:e}):new k}function hn(t){const e=ie(t).unwrap_or(void 0);if(!e)return!1;const{kind:n,name:s}=e;return n==="Schema"&&s==="public"}function fn(t){const e=ie(t).unwrap_or(void 0);if(!e)return!1;const{kind:n}=e;return n==="TablePartialInjection"}function pn(t){const e=ie(t).unwrap_or(void 0);if(!e)return null;const{kind:n,name:s}=e;return n==="TablePartialInjection"?Fe(s,"TablePartial"):null}class dn{constructor(){this.id=0}reset(){this.id=0}nextId(){return this.id++}}class Ot{constructor({symbolTable:e},n){this.references=[],this.id=n,this.symbolTable=e}}class En{constructor({symbolTable:e,declaration:n},s){this.references=[],this.id=s,this.symbolTable=e,this.declaration=n}}class Nn{constructor({declaration:e},n){this.references=[],this.id=n,this.declaration=e}}class xt{constructor({symbolTable:e,declaration:n},s){this.references=[],this.id=s,this.symbolTable=e,this.declaration=n}}class ot{constructor({declaration:e},n){this.references=[],this.id=n,this.declaration=e}}class Tn{constructor({symbolTable:e,declaration:n},s){this.references=[],this.id=s,this.symbolTable=e,this.declaration=n}}class mn{constructor({declaration:e},n){this.references=[],this.id=n,this.declaration=e}}class bn{constructor({symbolTable:e,declaration:n},s){this.references=[],this.id=s,this.symbolTable=e,this.declaration=n}}class In{constructor({declaration:e},n){this.references=[],this.id=n,this.declaration=e}}class Ln{constructor({injectorFieldSymbol:e,injectorDeclaration:n},s){this.references=[],this.id=s,this.injectorDeclaration=n,this.injectorFieldSymbol=e}}function An(t){return[tt,Ve,nt,it,qe,st,at,rt,Dt].map(e=>e(t))}function _n(t){return t instanceof ot?Ln:null}function Ye(t){return!!t.match(/(\p{L}|_|\p{M})/gu)}function Ge(t){const[e]=t;return e>="0"&&e<="9"}function gn(t){const[e]=t;return Ge(e)||Ye(e)&&e.toLowerCase()>="a"&&e.toLowerCase()<="f"}function ve(t){return Ye(t)||Ge(t)}function Et(t,e){const n=[],s=Math.min(t.length,e.length);for(let i=0;i<s;i+=1)n.push(t[i],e[i]);return n.push(...t.slice(s),...e.slice(s)),n}function Se(t,e){return t>=e.start&&t<e.end}function Rt(t){var e;return t instanceof Z?`${(e=t.op)==null?void 0:e.value}${Rt(t.expression)}`:t.expression.literal.value}function Ke(t){var e;return t instanceof Z?((e=t.op)==null?void 0:e.value)==="-"?-Ke(t.expression):Ke(t.expression):Number.parseFloat(t.expression.literal.value)}var o=(t=>(t[t.UNKNOWN_SYMBOL=1e3]="UNKNOWN_SYMBOL",t[t.UNEXPECTED_SYMBOL=1001]="UNEXPECTED_SYMBOL",t[t.UNEXPECTED_EOF=1002]="UNEXPECTED_EOF",t[t.UNEXPECTED_NEWLINE=1003]="UNEXPECTED_NEWLINE",t[t.UNKNOWN_TOKEN=1004]="UNKNOWN_TOKEN",t[t.UNEXPECTED_TOKEN=1005]="UNEXPECTED_TOKEN",t[t.UNEXPECTED_ELEMENT_DECLARATION=1006]="UNEXPECTED_ELEMENT_DECLARATION",t[t.MISSING_SPACES=1007]="MISSING_SPACES",t[t.UNKNOWN_PREFIX_OP=1008]="UNKNOWN_PREFIX_OP",t[t.INVALID_OPERAND=1009]="INVALID_OPERAND",t[t.EMPTY_ATTRIBUTE_NAME=1010]="EMPTY_ATTRIBUTE_NAME",t[t.INVALID_ESCAPE_SEQUENCE=1011]="INVALID_ESCAPE_SEQUENCE",t[t.INVALID_NAME=3e3]="INVALID_NAME",t[t.UNEXPECTED_NAME=3001]="UNEXPECTED_NAME",t[t.NAME_NOT_FOUND=3002]="NAME_NOT_FOUND",t[t.DUPLICATE_NAME=3003]="DUPLICATE_NAME",t[t.INVALID_ALIAS=3004]="INVALID_ALIAS",t[t.UNEXPECTED_ALIAS=3005]="UNEXPECTED_ALIAS",t[t.UNEXPECTED_SETTINGS=3006]="UNEXPECTED_SETTINGS",t[t.INVALID_SETTINGS=3007]="INVALID_SETTINGS",t[t.UNEXPECTED_SIMPLE_BODY=3008]="UNEXPECTED_SIMPLE_BODY",t[t.UNEXPECTED_COMPLEX_BODY=3009]="UNEXPECTED_COMPLEX_BODY",t[t.INVALID_TABLE_CONTEXT=3010]="INVALID_TABLE_CONTEXT",t[t.INVALID_TABLE_SETTING=3011]="INVALID_TABLE_SETTING",t[t.DUPLICATE_TABLE_SETTING=3012]="DUPLICATE_TABLE_SETTING",t[t.INVALID_TABLEGROUP_CONTEXT=3013]="INVALID_TABLEGROUP_CONTEXT",t[t.INVALID_TABLEGROUP_ELEMENT_NAME=3014]="INVALID_TABLEGROUP_ELEMENT_NAME",t[t.DUPLICATE_TABLEGROUP_ELEMENT_NAME=3015]="DUPLICATE_TABLEGROUP_ELEMENT_NAME",t[t.DUPLICATE_TABLEGROUP_FIELD_NAME=3016]="DUPLICATE_TABLEGROUP_FIELD_NAME",t[t.INVALID_TABLEGROUP_FIELD=3017]="INVALID_TABLEGROUP_FIELD",t[t.EMPTY_TABLE=3018]="EMPTY_TABLE",t[t.INVALID_COLUMN=3019]="INVALID_COLUMN",t[t.INVALID_COLUMN_NAME=3020]="INVALID_COLUMN_NAME",t[t.UNKNOWN_COLUMN_SETTING=3021]="UNKNOWN_COLUMN_SETTING",t[t.INVALID_COLUMN_TYPE=3022]="INVALID_COLUMN_TYPE",t[t.DUPLICATE_COLUMN_NAME=3023]="DUPLICATE_COLUMN_NAME",t[t.DUPLICATE_COLUMN_SETTING=3024]="DUPLICATE_COLUMN_SETTING",t[t.INVALID_COLUMN_SETTING_VALUE=3025]="INVALID_COLUMN_SETTING_VALUE",t[t.INVALID_ENUM_CONTEXT=3026]="INVALID_ENUM_CONTEXT",t[t.INVALID_ENUM_ELEMENT_NAME=3027]="INVALID_ENUM_ELEMENT_NAME",t[t.INVALID_ENUM_ELEMENT=3028]="INVALID_ENUM_ELEMENT",t[t.DUPLICATE_ENUM_ELEMENT_NAME=3029]="DUPLICATE_ENUM_ELEMENT_NAME",t[t.UNKNOWN_ENUM_ELEMENT_SETTING=3030]="UNKNOWN_ENUM_ELEMENT_SETTING",t[t.DUPLICATE_ENUM_ELEMENT_SETTING=3031]="DUPLICATE_ENUM_ELEMENT_SETTING",t[t.INVALID_ENUM_ELEMENT_SETTING=3032]="INVALID_ENUM_ELEMENT_SETTING",t[t.EMPTY_ENUM=3033]="EMPTY_ENUM",t[t.INVALID_REF_CONTEXT=3034]="INVALID_REF_CONTEXT",t[t.UNKNOWN_REF_SETTING=3035]="UNKNOWN_REF_SETTING",t[t.DUPLICATE_REF_SETTING=3036]="DUPLICATE_REF_SETTING",t[t.INVALID_REF_SETTING_VALUE=3037]="INVALID_REF_SETTING_VALUE",t[t.INVALID_REF_RELATIONSHIP=3038]="INVALID_REF_RELATIONSHIP",t[t.INVALID_REF_FIELD=3039]="INVALID_REF_FIELD",t[t.EMPTY_REF=3040]="EMPTY_REF",t[t.REF_REDEFINED=3041]="REF_REDEFINED",t[t.INVALID_NOTE_CONTEXT=3042]="INVALID_NOTE_CONTEXT",t[t.INVALID_NOTE=3043]="INVALID_NOTE",t[t.NOTE_REDEFINED=3044]="NOTE_REDEFINED",t[t.NOTE_CONTENT_REDEFINED=3045]="NOTE_CONTENT_REDEFINED",t[t.EMPTY_NOTE=3046]="EMPTY_NOTE",t[t.INVALID_INDEXES_CONTEXT=3047]="INVALID_INDEXES_CONTEXT",t[t.INVALID_INDEXES_FIELD=3048]="INVALID_INDEXES_FIELD",t[t.INVALID_INDEX=3049]="INVALID_INDEX",t[t.UNKNOWN_INDEX_SETTING=3050]="UNKNOWN_INDEX_SETTING",t[t.DUPLICATE_INDEX_SETTING=3051]="DUPLICATE_INDEX_SETTING",t[t.UNEXPECTED_INDEX_SETTING_VALUE=3052]="UNEXPECTED_INDEX_SETTING_VALUE",t[t.INVALID_INDEX_SETTING_VALUE=3053]="INVALID_INDEX_SETTING_VALUE",t[t.INVALID_PROJECT_CONTEXT=3054]="INVALID_PROJECT_CONTEXT",t[t.PROJECT_REDEFINED=3055]="PROJECT_REDEFINED",t[t.INVALID_PROJECT_FIELD=3056]="INVALID_PROJECT_FIELD",t[t.INVALID_CUSTOM_CONTEXT=3057]="INVALID_CUSTOM_CONTEXT",t[t.INVALID_CUSTOM_ELEMENT_VALUE=3058]="INVALID_CUSTOM_ELEMENT_VALUE",t[t.INVALID_ELEMENT_IN_SIMPLE_BODY=3059]="INVALID_ELEMENT_IN_SIMPLE_BODY",t[t.INVALID_TABLE_PARTIAL_CONTEXT=3060]="INVALID_TABLE_PARTIAL_CONTEXT",t[t.INVALID_TABLE_PARTIAL_ELEMENT_NAME=3061]="INVALID_TABLE_PARTIAL_ELEMENT_NAME",t[t.INVALID_TABLE_PARTIAL_SETTING=3062]="INVALID_TABLE_PARTIAL_SETTING",t[t.DUPLICATE_TABLE_PARTIAL_ELEMENT_NAME=3063]="DUPLICATE_TABLE_PARTIAL_ELEMENT_NAME",t[t.DUPLICATE_TABLE_PARTIAL_SETTING=3064]="DUPLICATE_TABLE_PARTIAL_SETTING",t[t.INVALID_TABLE_PARTIAL_INJECTION=3065]="INVALID_TABLE_PARTIAL_INJECTION",t[t.INVALID_TABLE_PARTIAL_INJECTION_OP=3066]="INVALID_TABLE_PARTIAL_INJECTION_OP",t[t.INVALID_TABLE_PARTIAL_INJECTION_NAME=3067]="INVALID_TABLE_PARTIAL_INJECTION_NAME",t[t.DUPLICATE_TABLE_PARTIAL_INJECTION_NAME=3068]="DUPLICATE_TABLE_PARTIAL_INJECTION_NAME",t[t.BINDING_ERROR=4e3]="BINDING_ERROR",t[t.UNSUPPORTED=5e3]="UNSUPPORTED",t[t.CIRCULAR_REF=5001]="CIRCULAR_REF",t[t.SAME_ENDPOINT=5002]="SAME_ENDPOINT",t[t.UNEQUAL_FIELDS_BINARY_REF=5003]="UNEQUAL_FIELDS_BINARY_REF",t[t.CONFLICTING_SETTING=5004]="CONFLICTING_SETTING",t[t.TABLE_REAPPEAR_IN_TABLEGROUP=5005]="TABLE_REAPPEAR_IN_TABLEGROUP",t))(o||{});class l extends Error{constructor(e,n,s){super(n),this.code=e,this.diagnostic=n,this.nodeOrToken=s,this.start=s.start,this.end=s.end,this.name=this.constructor.name,Object.setPrototypeOf(this,l.prototype)}}class J{constructor(e,n){this.value=e,this.errors=n===void 0?[]:n}getValue(){return this.value}getErrors(){return this.errors}chain(e){const n=e(this.value),s=[...this.errors,...n.errors];return new J(n.value,s)}map(e){return new J(e(this.value),this.errors)}}function vn(t,e,n){if(!t||!Ne(t)||e.length===0)return new k;const s=[...e],i=Nt(t).unwrap(),a=s.pop();if(!(a instanceof oe))return new k;const r=L.last(s)instanceof M?s.pop():void 0;if(s.length===3){const c=Nt(s[1]).unwrap_or(void 0);return!c||!Ze(c)?new k:new U(n.create(y,{type:i,name:s[0],as:c,alias:s[2],attributeList:r,body:a}))}return s.length===1?new U(n.create(y,{type:i,name:s[0],attributeList:r,body:a})):s.length===0?new U(n.create(y,{type:i,attributeList:r,body:a})):new k}function Ze(t){return t.kind===u.IDENTIFIER&&t.value==="as"}function b(t){t&&(t instanceof Q?wn(t):yn(t))}function wn(t){t.kind!==u.EOF&&(t.isInvalid=!0)}function yn(t){if(t instanceof y)b(t.type),b(t.name),b(t.as),b(t.alias),b(t.bodyColon),b(t.attributeList),b(t.body);else if(t instanceof ne)t.identifiers.forEach(b);else if(t instanceof se)b(t.name),b(t.colon),b(t.value);else if(t instanceof Z)b(t.op),b(t.expression);else if(t instanceof le)b(t.leftExpression),b(t.op),b(t.rightExpression);else if(t instanceof We)b(t.op),b(t.expression);else if(t instanceof oe)b(t.blockOpenBrace),t.body.forEach(b),b(t.blockCloseBrace);else if(t instanceof M)b(t.listOpenBracket),t.commaList.forEach(b),t.elementList.forEach(b),b(t.listCloseBracket);else if(t instanceof ce)b(t.tupleOpenParen),t.commaList.forEach(b),t.elementList.forEach(b),b(t.tupleCloseParen);else if(t instanceof ee)b(t.callee),b(t.argumentList);else if(t instanceof w)b(t.callee),t.args.forEach(b);else if(t instanceof j)b(t.expression);else if(t instanceof ue)b(t.value);else if(t instanceof re)b(t.variable);else if(t instanceof ye)b(t.literal);else throw t instanceof et?new Error("This case is handled by the TupleExpressionNode case"):new Error("Unreachable case in markInvalidNode")}function Ut(t){return!!(t!=null&&t.isInvalid)}function C(...t){return t.filter(e=>e!==void 0)}function Pn(t){if(t instanceof K)return C(...t.body,t.eof);if(t instanceof y)return C(t.type,t.name,t.as,t.alias,t.attributeList,t.bodyColon,t.body);if(t instanceof se)return C(t.name,t.colon,t.value);if(t instanceof ne)return t.identifiers;if(t instanceof ye)return t.literal?[t.literal]:[];if(t instanceof re)return C(t.variable);if(t instanceof Z)return C(t.op,t.expression);if(t instanceof le)return C(t.leftExpression,t.op,t.rightExpression);if(t instanceof We)return C(t.expression,t.op);if(t instanceof ue)return C(t.value);if(t instanceof w)return C(t.callee,...t.args);if(t instanceof oe)return C(t.blockOpenBrace,...t.body,t.blockCloseBrace);if(t instanceof M)return C(t.listOpenBracket,...Et(t.elementList,t.commaList),t.listCloseBracket);if(t instanceof ce)return C(t.tupleOpenParen,...Et(t.elementList,t.commaList),t.tupleCloseParen);if(t instanceof ee)return C(t.callee,t.argumentList);if(t instanceof j)return C(t.expression);if(t instanceof Ie)return C(t.array,t.indexer);if(t instanceof be)return C(t.partial);throw t instanceof et?new Error("This case is already handled by TupleExpressionNode"):new Error("Unreachable - no other possible cases")}function Nt(t){return $(t)?new U(t.expression.variable):new k}function q(t){var e;return t instanceof j&&(t.expression instanceof re&&t.expression.variable instanceof Q&&t.expression.variable.kind===u.QUOTED_STRING||t.expression instanceof ye&&((e=t.expression.literal)==null?void 0:e.kind)===u.STRING_LITERAL)}function $(t){return t instanceof j&&t.expression instanceof re&&t.expression.variable instanceof Q}function Ne(t){var e;return t instanceof j&&t.expression instanceof re&&((e=t.expression.variable)==null?void 0:e.kind)===u.IDENTIFIER}function lt(t){var e;return t instanceof le&&t.leftExpression instanceof O&&t.rightExpression instanceof O&&((e=t.op)==null?void 0:e.value)==="."}function we(t){if(t===void 0)return new k;const e=t.identifiers.map(n=>n.value).join(" ");return e===""?new k:new U(e)}class kn{constructor(e){this.start={offset:0,line:0,column:0},this.current={offset:0,line:0,column:0},this.tokens=[],this.errors=[],this.text=e}isAtEnd(){return this.current.offset>=this.text.length}advance(){const e=this.peek();return this.current={...this.current},e===`
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const L=require("lodash");var u=(t=>(t.SPACE="<space>",t.TAB="<tab>",t.NEWLINE="<newline>",t.COMMA="<comma>",t.LPAREN="<lparen>",t.RPAREN="<rparen>",t.LBRACE="<lbrace>",t.RBRACE="<rbrace>",t.LBRACKET="<lbracket>",t.RBRACKET="<rbracket>",t.LANGLE="<langle>",t.RANGLE="<rangle>",t.OP="<op>",t.EOF="<eof>",t.NUMERIC_LITERAL="<number>",t.STRING_LITERAL="<string>",t.COLOR_LITERAL="<color>",t.FUNCTION_EXPRESSION="<function-expression>",t.QUOTED_STRING="<variable>",t.IDENTIFIER="<identifier>",t.SEMICOLON="<semicolon>",t.COLON="<colon>",t.TILDE="<tilde>",t.SINGLE_LINE_COMMENT="<single-line-comment>",t.MULTILINE_COMMENT="<multiline-comment>",t))(u||{});function an(t){switch(t.kind){case"<newline>":case"<space>":case"<tab>":case"<single-line-comment>":case"<multiline-comment>":return!0;default:return!1}}function rn(t){if(!t)return!1;switch(t){case"+":case"-":case"*":case"/":case"%":case"<":case">":case"=":case"!":case".":case"&":case"|":return!0;default:return!1}}function pt(t){return t!==void 0&&t.kind==="<op>"}class Q{constructor(e,n,s,i,a){this.kind=e,this.startPos=n,this.endPos=s,this.value=i,this.leadingTrivia=[],this.trailingTrivia=[],this.leadingInvalid=[],this.trailingInvalid=[],this.isInvalid=a,this.start=n.offset,this.end=s.offset}static create(e,n,s,i,a){return new Q(e,n,s,i,a)}}function yt(t){return t.trailingTrivia.find(({kind:e})=>e===u.NEWLINE)!==void 0}function dt(t,e){return e.leadingTrivia.find(({kind:s})=>s===u.NEWLINE)!==void 0||yt(t)}function Je(t){return t.trailingTrivia.find(({kind:e})=>[u.SPACE,u.TAB].includes(e))!==void 0}function Pt(t){return t.trailingTrivia.length===0?t.end:Pt(L.last(t.trailingTrivia))}function kt(t){return t.leadingTrivia.length===0?t.start:kt(t.leadingTrivia[0])}function on(t){return[u.SINGLE_LINE_COMMENT,u.MULTILINE_COMMENT].includes(t.kind)}class ln{constructor(){this.id=0}reset(){this.id=0}nextId(){return this.id++}}class O{constructor(e,n,s){this.id=e,this.kind=n;const i=s.find(r=>r!==void 0&&!Number.isNaN(r.start));i?(this.startPos=i.startPos,this.fullStart=i instanceof Q?kt(i):i.fullStart):(this.startPos={offset:NaN,column:NaN,line:NaN},this.fullStart=NaN);const a=[...s].reverse().find(r=>r!==void 0&&!Number.isNaN(r.end));a?(this.endPos=a.endPos,this.fullEnd=a instanceof Q?Pt(a):a.fullEnd):(this.endPos={offset:NaN,column:NaN,line:NaN},this.fullEnd=NaN),this.start=this.startPos.offset,this.end=this.endPos.offset}}var me=(t=>(t.PROGRAM="<program>",t.ELEMENT_DECLARATION="<element-declaration>",t.ATTRIBUTE="<attribute>",t.IDENTIFIER_STREAM="<identifer-stream>",t.LITERAL="<literal>",t.VARIABLE="<variable>",t.PREFIX_EXPRESSION="<prefix-expression>",t.INFIX_EXPRESSION="<infix-expression>",t.POSTFIX_EXPRESSION="<postfix-expression>",t.FUNCTION_EXPRESSION="<function-expression>",t.FUNCTION_APPLICATION="<function-application>",t.BLOCK_EXPRESSION="<block-expression>",t.LIST_EXPRESSION="<list-expression>",t.TUPLE_EXPRESSION="<tuple-expression>",t.CALL_EXPRESSION="<call-expression>",t.PRIMARY_EXPRESSION="<primary-expression>",t.GROUP_EXPRESSION="<group-expression>",t.DUMMY="<dummy>",t.ARRAY="<array>",t.PARTIAL_INJECTION="<partial-injection>",t))(me||{});class K extends O{constructor({body:e=[],eof:n},s){super(s,"<program>",[...e,n]),this.body=e,this.eof=n}}class y extends O{constructor({type:e,name:n,as:s,alias:i,attributeList:a,bodyColon:r,body:c},f){if(super(f,"<element-declaration>",[e,n,s,i,a,r,c]),c&&r&&!(c instanceof w||c instanceof y))throw new Error("If an element has a simple body, it must be a function application node");this.type=e,this.name=n,this.as=s,this.alias=i,this.attributeList=a,this.bodyColon=r,this.body=c}}class ne extends O{constructor({identifiers:e=[]},n){super(n,"<identifer-stream>",e||[]),this.identifiers=e}}class se extends O{constructor({name:e,colon:n,value:s},i){super(i,"<attribute>",[e,n,s]),this.name=e,this.value=s,this.colon=n}}class Z extends O{constructor({op:e,expression:n},s){super(s,"<prefix-expression>",[e,n]),this.op=e,this.expression=n}}class le extends O{constructor({op:e,leftExpression:n,rightExpression:s},i){super(i,"<infix-expression>",[n,e,s]),this.op=e,this.leftExpression=n,this.rightExpression=s}}class We extends O{constructor({op:e,expression:n},s){super(s,"<postfix-expression>",[n,e]),this.op=e,this.expression=n}}class ue extends O{constructor({value:e},n){super(n,"<function-expression>",[e]),this.value=e}}class w extends O{constructor({callee:e,args:n=[]},s){super(s,"<function-application>",[e,...n]),this.callee=e,this.args=n}}class oe extends O{constructor({blockOpenBrace:e,body:n=[],blockCloseBrace:s},i){super(i,"<block-expression>",[e,...n,s]),this.blockOpenBrace=e,this.body=n,this.blockCloseBrace=s}}class be extends O{constructor({op:e,partial:n},s){super(s,"<partial-injection>",[e,n]),this.partial=n}}class M extends O{constructor({listOpenBracket:e,elementList:n=[],commaList:s=[],listCloseBracket:i},a){super(a,"<list-expression>",[e,...St(n,s),i]),this.listOpenBracket=e,this.elementList=n,this.commaList=s,this.listCloseBracket=i}}class ce extends O{constructor({tupleOpenParen:e,elementList:n=[],commaList:s=[],tupleCloseParen:i},a){super(a,"<tuple-expression>",[e,...St(n,s),i]),this.tupleOpenParen=e,this.elementList=n,this.commaList=s,this.tupleCloseParen=i}}class et extends ce{constructor({groupOpenParen:e,expression:n,groupCloseParen:s},i){super({tupleOpenParen:e,elementList:n&&[n],commaList:[],tupleCloseParen:s},i),this.kind="<group-expression>"}}class ee extends O{constructor({callee:e,argumentList:n},s){super(s,"<call-expression>",[e,n]),this.callee=e,this.argumentList=n}}class ye extends O{constructor({literal:e},n){super(n,"<literal>",[e]),this.literal=e}}class re extends O{constructor({variable:e},n){super(n,"<variable>",[e]),this.variable=e}}class j extends O{constructor({expression:e},n){super(n,"<primary-expression>",[e]),this.expression=e}}class Me extends O{constructor({pre:e},n){const s=Q.create(u.SPACE,e.endPos,e.endPos," ",!1);super(n,"<dummy>",[s])}}class Ie extends O{constructor({expression:e,indexer:n},s){super(s,"<array>",[e,n]),this.array=e,this.indexer=n}}function St(t,e){if(!t||t.length===0)return e||[];if(!e||e.length===0)return t||[];const[n]=t,[s]=e;return(n.start<s.start?L.flatten(L.zip(t,e)):L.flatten(L.zip(e,t))).filter(i=>i!==null)}function cn(t,e=!1){return JSON.stringify(t,function(n,s){var i;return!(this instanceof K)&&n==="symbol"?s==null?void 0:s.id:n==="symbol"?{symbolTable:s==null?void 0:s.symbolTable,id:s==null?void 0:s.id,references:s==null?void 0:s.references.map(a=>a.id),declaration:(i=s==null?void 0:s.declaration)==null?void 0:i.id}:n==="referee"||n==="parent"||n==="declaration"?s==null?void 0:s.id:n==="symbolTable"?Object.fromEntries(s.table):s},e?2:0)}class U{constructor(e){this.value=e}unwrap(){return this.value}unwrap_or(e){return this.value}and_then(e){return e(this.value)}map(e){return new U(e(this.value))}isOk(){return!0}}class k{constructor(){this.value=void 0}unwrap(){throw new Error("Trying to unwrap a None value")}unwrap_or(e){return e}and_then(e){return new k}map(e){return new k}isOk(){return!1}}var m=(t=>(t.Schema="Schema",t.Table="Table",t.Column="Column",t.TableGroup="TableGroup",t.TableGroupField="TableGroup field",t.Enum="Enum",t.EnumField="Enum field",t.Note="Note",t.TablePartial="TablePartial",t.TablePartialInjection="TablePartialInjection",t))(m||{});function tt(t){return`Schema:${t}`}function Ve(t){return`Table:${t}`}function qe(t){return`Column:${t}`}function nt(t){return`Enum:${t}`}function st(t){return`Enum field:${t}`}function it(t){return`TableGroup:${t}`}function at(t){return`TableGroup field:${t}`}function un(t){return`Note:${t}`}function rt(t){return`TablePartial:${t}`}function Dt(t){return`TablePartialInjection:${t}`}function Fe(t,e){switch(e){case"Column":return qe(t);case"Enum":return nt(t);case"Enum field":return st(t);case"Schema":return tt(t);case"Table":return Ve(t);case"TableGroup":return it(t);case"TableGroup field":return at(t);case"TablePartial":return rt(t);default:throw new Error("Unreachable")}}function ie(t){const[e,n]=t.split(":");return Object.values(m).includes(e)?new U({name:n,kind:e}):new k}function hn(t){const e=ie(t).unwrap_or(void 0);if(!e)return!1;const{kind:n,name:s}=e;return n==="Schema"&&s==="public"}function fn(t){const e=ie(t).unwrap_or(void 0);if(!e)return!1;const{kind:n}=e;return n==="TablePartialInjection"}function pn(t){const e=ie(t).unwrap_or(void 0);if(!e)return null;const{kind:n,name:s}=e;return n==="TablePartialInjection"?Fe(s,"TablePartial"):null}class dn{constructor(){this.id=0}reset(){this.id=0}nextId(){return this.id++}}class Ot{constructor({symbolTable:e},n){this.references=[],this.id=n,this.symbolTable=e}}class En{constructor({symbolTable:e,declaration:n},s){this.references=[],this.id=s,this.symbolTable=e,this.declaration=n}}class Nn{constructor({declaration:e},n){this.references=[],this.id=n,this.declaration=e}}class xt{constructor({symbolTable:e,declaration:n},s){this.references=[],this.id=s,this.symbolTable=e,this.declaration=n}}class ot{constructor({declaration:e},n){this.references=[],this.id=n,this.declaration=e}}class Tn{constructor({symbolTable:e,declaration:n},s){this.references=[],this.id=s,this.symbolTable=e,this.declaration=n}}class mn{constructor({declaration:e},n){this.references=[],this.id=n,this.declaration=e}}class bn{constructor({symbolTable:e,declaration:n},s){this.references=[],this.id=s,this.symbolTable=e,this.declaration=n}}class In{constructor({declaration:e},n){this.references=[],this.id=n,this.declaration=e}}class Ln{constructor({injectorFieldSymbol:e,injectorDeclaration:n},s){this.references=[],this.id=s,this.injectorDeclaration=n,this.injectorFieldSymbol=e}}function An(t){return[tt,Ve,nt,it,qe,st,at,rt,Dt].map(e=>e(t))}function _n(t){return t instanceof ot?Ln:null}function Ye(t){return!!t.match(/(\p{L}|_|\p{M})/gu)}function Ge(t){const[e]=t;return e>="0"&&e<="9"}function gn(t){const[e]=t;return Ge(e)||Ye(e)&&e.toLowerCase()>="a"&&e.toLowerCase()<="f"}function ve(t){return Ye(t)||Ge(t)}function Et(t,e){const n=[],s=Math.min(t.length,e.length);for(let i=0;i<s;i+=1)n.push(t[i],e[i]);return n.push(...t.slice(s),...e.slice(s)),n}function Se(t,e){return t>=e.start&&t<e.end}function Rt(t){var e;return t instanceof Z?`${(e=t.op)==null?void 0:e.value}${Rt(t.expression)}`:t.expression.literal.value}function Ke(t){var e;return t instanceof Z?((e=t.op)==null?void 0:e.value)==="-"?-Ke(t.expression):Ke(t.expression):Number.parseFloat(t.expression.literal.value)}var o=(t=>(t[t.UNKNOWN_SYMBOL=1e3]="UNKNOWN_SYMBOL",t[t.UNEXPECTED_SYMBOL=1001]="UNEXPECTED_SYMBOL",t[t.UNEXPECTED_EOF=1002]="UNEXPECTED_EOF",t[t.UNEXPECTED_NEWLINE=1003]="UNEXPECTED_NEWLINE",t[t.UNKNOWN_TOKEN=1004]="UNKNOWN_TOKEN",t[t.UNEXPECTED_TOKEN=1005]="UNEXPECTED_TOKEN",t[t.UNEXPECTED_ELEMENT_DECLARATION=1006]="UNEXPECTED_ELEMENT_DECLARATION",t[t.MISSING_SPACES=1007]="MISSING_SPACES",t[t.UNKNOWN_PREFIX_OP=1008]="UNKNOWN_PREFIX_OP",t[t.INVALID_OPERAND=1009]="INVALID_OPERAND",t[t.EMPTY_ATTRIBUTE_NAME=1010]="EMPTY_ATTRIBUTE_NAME",t[t.INVALID_ESCAPE_SEQUENCE=1011]="INVALID_ESCAPE_SEQUENCE",t[t.INVALID_NAME=3e3]="INVALID_NAME",t[t.UNEXPECTED_NAME=3001]="UNEXPECTED_NAME",t[t.NAME_NOT_FOUND=3002]="NAME_NOT_FOUND",t[t.DUPLICATE_NAME=3003]="DUPLICATE_NAME",t[t.INVALID_ALIAS=3004]="INVALID_ALIAS",t[t.UNEXPECTED_ALIAS=3005]="UNEXPECTED_ALIAS",t[t.UNEXPECTED_SETTINGS=3006]="UNEXPECTED_SETTINGS",t[t.INVALID_SETTINGS=3007]="INVALID_SETTINGS",t[t.UNEXPECTED_SIMPLE_BODY=3008]="UNEXPECTED_SIMPLE_BODY",t[t.UNEXPECTED_COMPLEX_BODY=3009]="UNEXPECTED_COMPLEX_BODY",t[t.INVALID_TABLE_CONTEXT=3010]="INVALID_TABLE_CONTEXT",t[t.INVALID_TABLE_SETTING=3011]="INVALID_TABLE_SETTING",t[t.DUPLICATE_TABLE_SETTING=3012]="DUPLICATE_TABLE_SETTING",t[t.INVALID_TABLEGROUP_CONTEXT=3013]="INVALID_TABLEGROUP_CONTEXT",t[t.INVALID_TABLEGROUP_ELEMENT_NAME=3014]="INVALID_TABLEGROUP_ELEMENT_NAME",t[t.DUPLICATE_TABLEGROUP_ELEMENT_NAME=3015]="DUPLICATE_TABLEGROUP_ELEMENT_NAME",t[t.DUPLICATE_TABLEGROUP_FIELD_NAME=3016]="DUPLICATE_TABLEGROUP_FIELD_NAME",t[t.INVALID_TABLEGROUP_FIELD=3017]="INVALID_TABLEGROUP_FIELD",t[t.EMPTY_TABLE=3018]="EMPTY_TABLE",t[t.INVALID_COLUMN=3019]="INVALID_COLUMN",t[t.INVALID_COLUMN_NAME=3020]="INVALID_COLUMN_NAME",t[t.UNKNOWN_COLUMN_SETTING=3021]="UNKNOWN_COLUMN_SETTING",t[t.INVALID_COLUMN_TYPE=3022]="INVALID_COLUMN_TYPE",t[t.DUPLICATE_COLUMN_NAME=3023]="DUPLICATE_COLUMN_NAME",t[t.DUPLICATE_COLUMN_SETTING=3024]="DUPLICATE_COLUMN_SETTING",t[t.INVALID_COLUMN_SETTING_VALUE=3025]="INVALID_COLUMN_SETTING_VALUE",t[t.INVALID_ENUM_CONTEXT=3026]="INVALID_ENUM_CONTEXT",t[t.INVALID_ENUM_ELEMENT_NAME=3027]="INVALID_ENUM_ELEMENT_NAME",t[t.INVALID_ENUM_ELEMENT=3028]="INVALID_ENUM_ELEMENT",t[t.DUPLICATE_ENUM_ELEMENT_NAME=3029]="DUPLICATE_ENUM_ELEMENT_NAME",t[t.UNKNOWN_ENUM_ELEMENT_SETTING=3030]="UNKNOWN_ENUM_ELEMENT_SETTING",t[t.DUPLICATE_ENUM_ELEMENT_SETTING=3031]="DUPLICATE_ENUM_ELEMENT_SETTING",t[t.INVALID_ENUM_ELEMENT_SETTING=3032]="INVALID_ENUM_ELEMENT_SETTING",t[t.EMPTY_ENUM=3033]="EMPTY_ENUM",t[t.INVALID_REF_CONTEXT=3034]="INVALID_REF_CONTEXT",t[t.UNKNOWN_REF_SETTING=3035]="UNKNOWN_REF_SETTING",t[t.DUPLICATE_REF_SETTING=3036]="DUPLICATE_REF_SETTING",t[t.INVALID_REF_SETTING_VALUE=3037]="INVALID_REF_SETTING_VALUE",t[t.INVALID_REF_RELATIONSHIP=3038]="INVALID_REF_RELATIONSHIP",t[t.INVALID_REF_FIELD=3039]="INVALID_REF_FIELD",t[t.EMPTY_REF=3040]="EMPTY_REF",t[t.REF_REDEFINED=3041]="REF_REDEFINED",t[t.INVALID_NOTE_CONTEXT=3042]="INVALID_NOTE_CONTEXT",t[t.INVALID_NOTE=3043]="INVALID_NOTE",t[t.NOTE_REDEFINED=3044]="NOTE_REDEFINED",t[t.NOTE_CONTENT_REDEFINED=3045]="NOTE_CONTENT_REDEFINED",t[t.EMPTY_NOTE=3046]="EMPTY_NOTE",t[t.INVALID_INDEXES_CONTEXT=3047]="INVALID_INDEXES_CONTEXT",t[t.INVALID_INDEXES_FIELD=3048]="INVALID_INDEXES_FIELD",t[t.INVALID_INDEX=3049]="INVALID_INDEX",t[t.UNKNOWN_INDEX_SETTING=3050]="UNKNOWN_INDEX_SETTING",t[t.DUPLICATE_INDEX_SETTING=3051]="DUPLICATE_INDEX_SETTING",t[t.UNEXPECTED_INDEX_SETTING_VALUE=3052]="UNEXPECTED_INDEX_SETTING_VALUE",t[t.INVALID_INDEX_SETTING_VALUE=3053]="INVALID_INDEX_SETTING_VALUE",t[t.INVALID_PROJECT_CONTEXT=3054]="INVALID_PROJECT_CONTEXT",t[t.PROJECT_REDEFINED=3055]="PROJECT_REDEFINED",t[t.INVALID_PROJECT_FIELD=3056]="INVALID_PROJECT_FIELD",t[t.INVALID_CUSTOM_CONTEXT=3057]="INVALID_CUSTOM_CONTEXT",t[t.INVALID_CUSTOM_ELEMENT_VALUE=3058]="INVALID_CUSTOM_ELEMENT_VALUE",t[t.INVALID_ELEMENT_IN_SIMPLE_BODY=3059]="INVALID_ELEMENT_IN_SIMPLE_BODY",t[t.INVALID_TABLE_PARTIAL_CONTEXT=3060]="INVALID_TABLE_PARTIAL_CONTEXT",t[t.INVALID_TABLE_PARTIAL_ELEMENT_NAME=3061]="INVALID_TABLE_PARTIAL_ELEMENT_NAME",t[t.INVALID_TABLE_PARTIAL_SETTING=3062]="INVALID_TABLE_PARTIAL_SETTING",t[t.DUPLICATE_TABLE_PARTIAL_ELEMENT_NAME=3063]="DUPLICATE_TABLE_PARTIAL_ELEMENT_NAME",t[t.DUPLICATE_TABLE_PARTIAL_SETTING=3064]="DUPLICATE_TABLE_PARTIAL_SETTING",t[t.INVALID_TABLE_PARTIAL_INJECTION=3065]="INVALID_TABLE_PARTIAL_INJECTION",t[t.INVALID_TABLE_PARTIAL_INJECTION_OP=3066]="INVALID_TABLE_PARTIAL_INJECTION_OP",t[t.INVALID_TABLE_PARTIAL_INJECTION_NAME=3067]="INVALID_TABLE_PARTIAL_INJECTION_NAME",t[t.DUPLICATE_TABLE_PARTIAL_INJECTION_NAME=3068]="DUPLICATE_TABLE_PARTIAL_INJECTION_NAME",t[t.BINDING_ERROR=4e3]="BINDING_ERROR",t[t.UNSUPPORTED=5e3]="UNSUPPORTED",t[t.CIRCULAR_REF=5001]="CIRCULAR_REF",t[t.SAME_ENDPOINT=5002]="SAME_ENDPOINT",t[t.UNEQUAL_FIELDS_BINARY_REF=5003]="UNEQUAL_FIELDS_BINARY_REF",t[t.CONFLICTING_SETTING=5004]="CONFLICTING_SETTING",t[t.TABLE_REAPPEAR_IN_TABLEGROUP=5005]="TABLE_REAPPEAR_IN_TABLEGROUP",t))(o||{});class l extends Error{constructor(e,n,s){super(n),this.code=e,this.diagnostic=n,this.nodeOrToken=s,this.start=s.start,this.end=s.end,this.name=this.constructor.name,Object.setPrototypeOf(this,l.prototype)}}class J{constructor(e,n){this.value=e,this.errors=n===void 0?[]:n}getValue(){return this.value}getErrors(){return this.errors}chain(e){const n=e(this.value),s=[...this.errors,...n.errors];return new J(n.value,s)}map(e){return new J(e(this.value),this.errors)}}function vn(t,e,n){if(!t||!Ne(t)||e.length===0)return new k;const s=[...e],i=Nt(t).unwrap(),a=s.pop();if(!(a instanceof oe))return new k;const r=L.last(s)instanceof M?s.pop():void 0;if(s.length===3){const c=Nt(s[1]).value;return!c||!Ze(c)?new k:new U(n.create(y,{type:i,name:s[0],as:c,alias:s[2],attributeList:r,body:a}))}return s.length===1?new U(n.create(y,{type:i,name:s[0],attributeList:r,body:a})):s.length===0?new U(n.create(y,{type:i,attributeList:r,body:a})):new k}function Ze(t){return t.kind===u.IDENTIFIER&&t.value==="as"}function b(t){t&&(t instanceof Q?wn(t):yn(t))}function wn(t){t.kind!==u.EOF&&(t.isInvalid=!0)}function yn(t){if(t instanceof y)b(t.type),b(t.name),b(t.as),b(t.alias),b(t.bodyColon),b(t.attributeList),b(t.body);else if(t instanceof ne)t.identifiers.forEach(b);else if(t instanceof se)b(t.name),b(t.colon),b(t.value);else if(t instanceof Z)b(t.op),b(t.expression);else if(t instanceof le)b(t.leftExpression),b(t.op),b(t.rightExpression);else if(t instanceof We)b(t.op),b(t.expression);else if(t instanceof oe)b(t.blockOpenBrace),t.body.forEach(b),b(t.blockCloseBrace);else if(t instanceof M)b(t.listOpenBracket),t.commaList.forEach(b),t.elementList.forEach(b),b(t.listCloseBracket);else if(t instanceof ce)b(t.tupleOpenParen),t.commaList.forEach(b),t.elementList.forEach(b),b(t.tupleCloseParen);else if(t instanceof ee)b(t.callee),b(t.argumentList);else if(t instanceof w)b(t.callee),t.args.forEach(b);else if(t instanceof j)b(t.expression);else if(t instanceof ue)b(t.value);else if(t instanceof re)b(t.variable);else if(t instanceof ye)b(t.literal);else throw t instanceof et?new Error("This case is handled by the TupleExpressionNode case"):new Error("Unreachable case in markInvalidNode")}function Ut(t){return!!(t!=null&&t.isInvalid)}function C(...t){return t.filter(e=>e!==void 0)}function Pn(t){if(t instanceof K)return C(...t.body,t.eof);if(t instanceof y)return C(t.type,t.name,t.as,t.alias,t.attributeList,t.bodyColon,t.body);if(t instanceof se)return C(t.name,t.colon,t.value);if(t instanceof ne)return t.identifiers;if(t instanceof ye)return t.literal?[t.literal]:[];if(t instanceof re)return C(t.variable);if(t instanceof Z)return C(t.op,t.expression);if(t instanceof le)return C(t.leftExpression,t.op,t.rightExpression);if(t instanceof We)return C(t.expression,t.op);if(t instanceof ue)return C(t.value);if(t instanceof w)return C(t.callee,...t.args);if(t instanceof oe)return C(t.blockOpenBrace,...t.body,t.blockCloseBrace);if(t instanceof M)return C(t.listOpenBracket,...Et(t.elementList,t.commaList),t.listCloseBracket);if(t instanceof ce)return C(t.tupleOpenParen,...Et(t.elementList,t.commaList),t.tupleCloseParen);if(t instanceof ee)return C(t.callee,t.argumentList);if(t instanceof j)return C(t.expression);if(t instanceof Ie)return C(t.array,t.indexer);if(t instanceof be)return C(t.partial);throw t instanceof et?new Error("This case is already handled by TupleExpressionNode"):new Error("Unreachable - no other possible cases")}function Nt(t){return $(t)?new U(t.expression.variable):new k}function q(t){var e;return t instanceof j&&(t.expression instanceof re&&t.expression.variable instanceof Q&&t.expression.variable.kind===u.QUOTED_STRING||t.expression instanceof ye&&((e=t.expression.literal)==null?void 0:e.kind)===u.STRING_LITERAL)}function $(t){return t instanceof j&&t.expression instanceof re&&t.expression.variable instanceof Q}function Ne(t){var e;return t instanceof j&&t.expression instanceof re&&((e=t.expression.variable)==null?void 0:e.kind)===u.IDENTIFIER}function lt(t){var e;return t instanceof le&&t.leftExpression instanceof O&&t.rightExpression instanceof O&&((e=t.op)==null?void 0:e.value)==="."}function we(t){if(t===void 0)return new k;const e=t.identifiers.map(n=>n.value).join(" ");return e===""?new k:new U(e)}class kn{constructor(e){this.start={offset:0,line:0,column:0},this.current={offset:0,line:0,column:0},this.tokens=[],this.errors=[],this.text=e}isAtEnd(){return this.current.offset>=this.text.length}advance(){const e=this.peek();return this.current={...this.current},e===`
2
2
  `?(this.current.line+=1,this.current.column=0):this.current.column+=1,this.current.offset+=1,e}peek(e=0){if(!(this.current.offset+e>=this.text.length))return this.text[this.current.offset+e]}check(e){for(let n=0;n<e.length;n+=1)if(e[n]!==this.peek(n))return!1;return!0}match(e){return this.check(e)?(e.split("").forEach(()=>this.advance()),!0):!1}addToken(e,n=!1){this.tokens.push(this.createToken(e,n))}createToken(e,n=!1){return Q.create(e,this.start,this.current,this.text.substring(this.start.offset,this.current.offset),n)}lex(){return this.scanTokens(),this.tokens.push(Q.create(u.EOF,this.start,this.current,"",!1)),this.gatherTrivia(),this.gatherInvalid(),new J(this.tokens,this.errors)}scanTokens(){for(;!this.isAtEnd();){const e=this.advance();switch(e){case" ":this.addToken(u.SPACE);break;case"\r":break;case`
3
3
  `:this.addToken(u.NEWLINE);break;case" ":this.addToken(u.TAB);break;case",":this.addToken(u.COMMA);break;case"(":this.addToken(u.LPAREN);break;case")":this.addToken(u.RPAREN);break;case"[":this.addToken(u.LBRACKET);break;case"]":this.addToken(u.RBRACKET);break;case"{":this.addToken(u.LBRACE);break;case"}":this.addToken(u.RBRACE);break;case";":this.addToken(u.SEMICOLON);break;case":":this.addToken(u.COLON);break;case"~":this.addToken(u.TILDE);break;case"'":this.match("''")?this.multilineStringLiteral():this.singleLineStringLiteral();break;case'"':this.quotedVariable();break;case"`":this.functionExpression();break;case"#":this.colorLiteral();break;case"/":this.match("/")?this.singleLineComment():this.match("*")?this.multilineComment():this.operator(e);break;default:if(rn(e)){this.operator(e);break}if(Ye(e)){this.identifier();break}if(Ge(e)){this.numericLiteralOrIdentifier();break}this.addToken(u.OP,!0),this.errors.push(new l(o.UNKNOWN_SYMBOL,`Unexpected token '${e}'`,this.createToken(u.OP,!0)));break}this.start={...this.current}}}gatherTrivia(){let e=!0,n=[],s;const i=[];for(const a of this.tokens)an(a)?(n.push(a),a.kind===u.NEWLINE&&s&&(s.trailingTrivia=n,e=!0,s=void 0,n=[])):(e?a.leadingTrivia=n:s.trailingTrivia=n,i.push(a),n=[],s=a,e=!1);this.tokens=i}gatherInvalid(){let e;const n=[],s=[];for(e=0;e<this.tokens.length&&Ut(this.tokens[e]);e+=1)s.push(this.tokens[e]);let i=this.tokens[e];for(i.leadingInvalid=[...s,...i.leadingInvalid];e<this.tokens.length;e+=1){const a=this.tokens[e];a.isInvalid?i.trailingInvalid.push(a):(i=a,n.push(a))}this.tokens=n}consumeUntil(e,n,{allowNewline:s,allowEof:i,raw:a,consumeStopSequence:r=!0}){let c="";for(;!this.isAtEnd()&&(s||!this.check(`
4
4
  `))&&!this.check(n);)this.peek()==="\\"&&!a?(this.advance(),c+=this.escapedString()):c+=this.advance();if(this.isAtEnd()&&!i){const f=this.createToken(e,!0);this.tokens.push(f),this.errors.push(new l(o.UNEXPECTED_EOF,"EOF reached while parsing",f));return}if(this.check(`
@@ -312,25 +312,25 @@ class U {
312
312
  map(e) {
313
313
  return new U(e(this.value));
314
314
  }
315
- // eslint-disable-next-line class-methods-use-this
316
315
  isOk() {
317
316
  return !0;
318
317
  }
319
318
  }
320
319
  class P {
321
- // eslint-disable-next-line class-methods-use-this
320
+ constructor() {
321
+ this.value = void 0;
322
+ }
322
323
  unwrap() {
323
324
  throw new Error("Trying to unwrap a None value");
324
325
  }
325
- // eslint-disable-next-line class-methods-use-this
326
326
  unwrap_or(e) {
327
327
  return e;
328
328
  }
329
- // eslint-disable-next-line @typescript-eslint/no-unused-vars, class-methods-use-this
329
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
330
330
  and_then(e) {
331
331
  return new P();
332
332
  }
333
- // eslint-disable-next-line @typescript-eslint/no-unused-vars, class-methods-use-this
333
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
334
334
  map(e) {
335
335
  return new P();
336
336
  }
@@ -564,7 +564,7 @@ function Pn(t, e, n) {
564
564
  return new P();
565
565
  const r = g.last(s) instanceof M ? s.pop() : void 0;
566
566
  if (s.length === 3) {
567
- const c = mt(s[1]).unwrap_or(void 0);
567
+ const c = mt(s[1]).value;
568
568
  return !c || !tt(c) ? new P() : new U(
569
569
  n.create(y, {
570
570
  type: i,
@@ -9,6 +9,7 @@ export declare class Some<T> {
9
9
  isOk(): boolean;
10
10
  }
11
11
  export declare class None<T> {
12
+ value: undefined;
12
13
  unwrap(): T;
13
14
  unwrap_or<S>(orValue: S): S | T;
14
15
  and_then<S>(callback: (_: T) => Option<S>): Option<S>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dbml/parse",
3
- "version": "3.13.5-alpha.0",
3
+ "version": "3.13.5",
4
4
  "description": "> TODO: description",
5
5
  "author": "Holistics <dev@holistics.io>",
6
6
  "license": "Apache-2.0",
@@ -48,5 +48,5 @@
48
48
  "peerDependencies": {
49
49
  "lodash": "^4.17.21"
50
50
  },
51
- "gitHead": "febd58d3c4b443dc543a614b7884a316a9a44511"
51
+ "gitHead": "7496d9e42bdd83b9605fe620234433afca3f0d37"
52
52
  }