@power-maverick/tool-erd-generator 1.0.2 → 1.0.4

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
- var _c=Object.defineProperty;var Lc=(n,e,t)=>e in n?_c(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t;var Ze=(n,e,t)=>Lc(n,typeof e!="symbol"?e+"":e,t);import{_ as ht}from"./index.js";import{bB as bc,bC as Oc,aV as Sl,bl as Pc,aZ as Mc,aW as te,aA as Dc,aB as ya,bb as Fc,be as Il,bf as Cl,bc as Gc,bq as Ta,aD as kt,aE as D,aX as Ra,aR as Uc}from"./mermaid.core.js";import{k as Jt,j as Bs,g as sn,S as Bc,w as Vc,x as Kc,c as Nl,v as z,y as wl,l as Wc,z as jc,A as Hc,B as zc,C as qc,a as _l,d as C,i as Ye,r as le,f as $e,D as Y}from"./_baseUniq.js";import{j as Vs,m as x,d as Yc,f as Ne,g as Qt,h as N,i as Ks,l as Zt,e as Xc}from"./_basePickBy.js";import{c as re}from"./clone.js";var Jc=Object.prototype,Qc=Jc.hasOwnProperty,ke=bc(function(n,e){if(Oc(e)||Sl(e)){Pc(e,Jt(e),n);return}for(var t in e)Qc.call(e,t)&&Mc(n,t,e[t])});function Ll(n,e,t){var r=-1,i=n.length;e<0&&(e=-e>i?0:i+e),t=t>i?i:t,t<0&&(t+=i),i=e>t?0:t-e>>>0,e>>>=0;for(var s=Array(i);++r<i;)s[r]=n[r+e];return s}function er(n){for(var e=-1,t=n==null?0:n.length,r=0,i=[];++e<t;){var s=n[e];s&&(i[r++]=s)}return i}function Zc(n,e,t,r){for(var i=-1,s=n==null?0:n.length;++i<s;){var a=n[i];e(r,a,t(a),n)}return r}function ed(n,e,t,r){return Bs(n,function(i,s,a){e(r,i,t(i),a)}),r}function td(n,e){return function(t,r){var i=te(t)?Zc:ed,s=e?e():{};return i(t,n,sn(r),s)}}var nd=200;function rd(n,e,t,r){var i=-1,s=Vc,a=!0,o=n.length,l=[],u=e.length;if(!o)return l;e.length>=nd&&(s=Kc,a=!1,e=new Bc(e));e:for(;++i<o;){var c=n[i],d=c;if(c=c!==0?c:0,a&&d===d){for(var h=u;h--;)if(e[h]===d)continue e;l.push(c)}else s(e,d,r)||l.push(c)}return l}var pi=Dc(function(n,e){return ya(n)?rd(n,Nl(e,1,ya,!0)):[]});function Q(n,e,t){var r=n==null?0:n.length;return r?(e=e===void 0?1:Vs(e),Ll(n,e<0?0:e,r)):[]}function Xn(n,e,t){var r=n==null?0:n.length;return r?(e=e===void 0?1:Vs(e),e=r-e,Ll(n,0,e<0?0:e)):[]}function id(n,e){for(var t=-1,r=n==null?0:n.length;++t<r;)if(!e(n[t],t,n))return!1;return!0}function sd(n,e){var t=!0;return Bs(n,function(r,i,s){return t=!!e(r,i,s),t}),t}function Oe(n,e,t){var r=te(n)?id:sd;return r(n,sn(e))}function Pe(n){return n&&n.length?n[0]:void 0}function Ee(n,e){return Nl(x(n,e))}var ad=Object.prototype,od=ad.hasOwnProperty,ld=td(function(n,e,t){od.call(n,t)?n[t].push(e):Fc(n,t,[e])}),ud="[object String]";function he(n){return typeof n=="string"||!te(n)&&Il(n)&&Cl(n)==ud}var cd=Math.max;function de(n,e,t,r){n=Sl(n)?n:z(n),t=t?Vs(t):0;var i=n.length;return t<0&&(t=cd(i+t,0)),he(n)?t<=i&&n.indexOf(e,t)>-1:!!i&&wl(n,e,t)>-1}function va(n,e,t){var r=n==null?0:n.length;if(!r)return-1;var i=0;return wl(n,e,i)}var dd="[object RegExp]";function fd(n){return Il(n)&&Cl(n)==dd}var Aa=Ta&&Ta.isRegExp,Xe=Aa?Gc(Aa):fd,hd="Expected a function";function pd(n){if(typeof n!="function")throw new TypeError(hd);return function(){var e=arguments;switch(e.length){case 0:return!n.call(this);case 1:return!n.call(this,e[0]);case 2:return!n.call(this,e[0],e[1]);case 3:return!n.call(this,e[0],e[1],e[2])}return!n.apply(this,e)}}function Me(n,e){if(n==null)return{};var t=Wc(jc(n),function(r){return[r]});return e=sn(e),Yc(n,t,function(r,i){return e(r,i[0])})}function mi(n,e){var t=te(n)?Hc:zc;return t(n,pd(sn(e)))}function md(n,e){var t;return Bs(n,function(r,i,s){return t=e(r,i,s),!t}),!!t}function bl(n,e,t){var r=te(n)?qc:md;return r(n,sn(e))}function Ws(n){return n&&n.length?_l(n):[]}function gd(n,e){return n&&n.length?_l(n,sn(e)):[]}function ae(n){return typeof n=="object"&&n!==null&&typeof n.$type=="string"}function Ue(n){return typeof n=="object"&&n!==null&&typeof n.$refText=="string"}function yd(n){return typeof n=="object"&&n!==null&&typeof n.name=="string"&&typeof n.type=="string"&&typeof n.path=="string"}function wr(n){return typeof n=="object"&&n!==null&&ae(n.container)&&Ue(n.reference)&&typeof n.message=="string"}class Ol{constructor(){this.subtypes={},this.allSubtypes={}}isInstance(e,t){return ae(e)&&this.isSubtype(e.$type,t)}isSubtype(e,t){if(e===t)return!0;let r=this.subtypes[e];r||(r=this.subtypes[e]={});const i=r[t];if(i!==void 0)return i;{const s=this.computeIsSubtype(e,t);return r[t]=s,s}}getAllSubTypes(e){const t=this.allSubtypes[e];if(t)return t;{const r=this.getAllTypes(),i=[];for(const s of r)this.isSubtype(s,e)&&i.push(s);return this.allSubtypes[e]=i,i}}}function Jn(n){return typeof n=="object"&&n!==null&&Array.isArray(n.content)}function Pl(n){return typeof n=="object"&&n!==null&&typeof n.tokenType=="object"}function Ml(n){return Jn(n)&&typeof n.fullText=="string"}class Z{constructor(e,t){this.startFn=e,this.nextFn=t}iterator(){const e={state:this.startFn(),next:()=>this.nextFn(e.state),[Symbol.iterator]:()=>e};return e}[Symbol.iterator](){return this.iterator()}isEmpty(){return!!this.iterator().next().done}count(){const e=this.iterator();let t=0,r=e.next();for(;!r.done;)t++,r=e.next();return t}toArray(){const e=[],t=this.iterator();let r;do r=t.next(),r.value!==void 0&&e.push(r.value);while(!r.done);return e}toSet(){return new Set(this)}toMap(e,t){const r=this.map(i=>[e?e(i):i,t?t(i):i]);return new Map(r)}toString(){return this.join()}concat(e){return new Z(()=>({first:this.startFn(),firstDone:!1,iterator:e[Symbol.iterator]()}),t=>{let r;if(!t.firstDone){do if(r=this.nextFn(t.first),!r.done)return r;while(!r.done);t.firstDone=!0}do if(r=t.iterator.next(),!r.done)return r;while(!r.done);return ve})}join(e=","){const t=this.iterator();let r="",i,s=!1;do i=t.next(),i.done||(s&&(r+=e),r+=Td(i.value)),s=!0;while(!i.done);return r}indexOf(e,t=0){const r=this.iterator();let i=0,s=r.next();for(;!s.done;){if(i>=t&&s.value===e)return i;s=r.next(),i++}return-1}every(e){const t=this.iterator();let r=t.next();for(;!r.done;){if(!e(r.value))return!1;r=t.next()}return!0}some(e){const t=this.iterator();let r=t.next();for(;!r.done;){if(e(r.value))return!0;r=t.next()}return!1}forEach(e){const t=this.iterator();let r=0,i=t.next();for(;!i.done;)e(i.value,r),i=t.next(),r++}map(e){return new Z(this.startFn,t=>{const{done:r,value:i}=this.nextFn(t);return r?ve:{done:!1,value:e(i)}})}filter(e){return new Z(this.startFn,t=>{let r;do if(r=this.nextFn(t),!r.done&&e(r.value))return r;while(!r.done);return ve})}nonNullable(){return this.filter(e=>e!=null)}reduce(e,t){const r=this.iterator();let i=t,s=r.next();for(;!s.done;)i===void 0?i=s.value:i=e(i,s.value),s=r.next();return i}reduceRight(e,t){return this.recursiveReduce(this.iterator(),e,t)}recursiveReduce(e,t,r){const i=e.next();if(i.done)return r;const s=this.recursiveReduce(e,t,r);return s===void 0?i.value:t(s,i.value)}find(e){const t=this.iterator();let r=t.next();for(;!r.done;){if(e(r.value))return r.value;r=t.next()}}findIndex(e){const t=this.iterator();let r=0,i=t.next();for(;!i.done;){if(e(i.value))return r;i=t.next(),r++}return-1}includes(e){const t=this.iterator();let r=t.next();for(;!r.done;){if(r.value===e)return!0;r=t.next()}return!1}flatMap(e){return new Z(()=>({this:this.startFn()}),t=>{do{if(t.iterator){const s=t.iterator.next();if(s.done)t.iterator=void 0;else return s}const{done:r,value:i}=this.nextFn(t.this);if(!r){const s=e(i);if(jr(s))t.iterator=s[Symbol.iterator]();else return{done:!1,value:s}}}while(t.iterator);return ve})}flat(e){if(e===void 0&&(e=1),e<=0)return this;const t=e>1?this.flat(e-1):this;return new Z(()=>({this:t.startFn()}),r=>{do{if(r.iterator){const a=r.iterator.next();if(a.done)r.iterator=void 0;else return a}const{done:i,value:s}=t.nextFn(r.this);if(!i)if(jr(s))r.iterator=s[Symbol.iterator]();else return{done:!1,value:s}}while(r.iterator);return ve})}head(){const t=this.iterator().next();if(!t.done)return t.value}tail(e=1){return new Z(()=>{const t=this.startFn();for(let r=0;r<e;r++)if(this.nextFn(t).done)return t;return t},this.nextFn)}limit(e){return new Z(()=>({size:0,state:this.startFn()}),t=>(t.size++,t.size>e?ve:this.nextFn(t.state)))}distinct(e){return new Z(()=>({set:new Set,internalState:this.startFn()}),t=>{let r;do if(r=this.nextFn(t.internalState),!r.done){const i=e?e(r.value):r.value;if(!t.set.has(i))return t.set.add(i),r}while(!r.done);return ve})}exclude(e,t){const r=new Set;for(const i of e){const s=t?t(i):i;r.add(s)}return this.filter(i=>{const s=t?t(i):i;return!r.has(s)})}}function Td(n){return typeof n=="string"?n:typeof n>"u"?"undefined":typeof n.toString=="function"?n.toString():Object.prototype.toString.call(n)}function jr(n){return!!n&&typeof n[Symbol.iterator]=="function"}const Rd=new Z(()=>{},()=>ve),ve=Object.freeze({done:!0,value:void 0});function ee(...n){if(n.length===1){const e=n[0];if(e instanceof Z)return e;if(jr(e))return new Z(()=>e[Symbol.iterator](),t=>t.next());if(typeof e.length=="number")return new Z(()=>({index:0}),t=>t.index<e.length?{done:!1,value:e[t.index++]}:ve)}return n.length>1?new Z(()=>({collIndex:0,arrIndex:0}),e=>{do{if(e.iterator){const t=e.iterator.next();if(!t.done)return t;e.iterator=void 0}if(e.array){if(e.arrIndex<e.array.length)return{done:!1,value:e.array[e.arrIndex++]};e.array=void 0,e.arrIndex=0}if(e.collIndex<n.length){const t=n[e.collIndex++];jr(t)?e.iterator=t[Symbol.iterator]():t&&typeof t.length=="number"&&(e.array=t)}}while(e.iterator||e.array||e.collIndex<n.length);return ve}):Rd}class js extends Z{constructor(e,t,r){super(()=>({iterators:r!=null&&r.includeRoot?[[e][Symbol.iterator]()]:[t(e)[Symbol.iterator]()],pruned:!1}),i=>{for(i.pruned&&(i.iterators.pop(),i.pruned=!1);i.iterators.length>0;){const a=i.iterators[i.iterators.length-1].next();if(a.done)i.iterators.pop();else return i.iterators.push(t(a.value)[Symbol.iterator]()),a}return ve})}iterator(){const e={state:this.startFn(),next:()=>this.nextFn(e.state),prune:()=>{e.state.pruned=!0},[Symbol.iterator]:()=>e};return e}}var ss;(function(n){function e(s){return s.reduce((a,o)=>a+o,0)}n.sum=e;function t(s){return s.reduce((a,o)=>a*o,0)}n.product=t;function r(s){return s.reduce((a,o)=>Math.min(a,o))}n.min=r;function i(s){return s.reduce((a,o)=>Math.max(a,o))}n.max=i})(ss||(ss={}));function as(n){return new js(n,e=>Jn(e)?e.content:[],{includeRoot:!0})}function vd(n,e){for(;n.container;)if(n=n.container,n===e)return!0;return!1}function os(n){return{start:{character:n.startColumn-1,line:n.startLine-1},end:{character:n.endColumn,line:n.endLine-1}}}function Hr(n){if(!n)return;const{offset:e,end:t,range:r}=n;return{range:r,offset:e,end:t,length:t-e}}var He;(function(n){n[n.Before=0]="Before",n[n.After=1]="After",n[n.OverlapFront=2]="OverlapFront",n[n.OverlapBack=3]="OverlapBack",n[n.Inside=4]="Inside",n[n.Outside=5]="Outside"})(He||(He={}));function Ad(n,e){if(n.end.line<e.start.line||n.end.line===e.start.line&&n.end.character<=e.start.character)return He.Before;if(n.start.line>e.end.line||n.start.line===e.end.line&&n.start.character>=e.end.character)return He.After;const t=n.start.line>e.start.line||n.start.line===e.start.line&&n.start.character>=e.start.character,r=n.end.line<e.end.line||n.end.line===e.end.line&&n.end.character<=e.end.character;return t&&r?He.Inside:t?He.OverlapBack:r?He.OverlapFront:He.Outside}function Ed(n,e){return Ad(n,e)>He.After}const kd=/^[\w\p{L}]$/u;function $d(n,e){if(n){const t=xd(n,!0);if(t&&Ea(t,e))return t;if(Ml(n)){const r=n.content.findIndex(i=>!i.hidden);for(let i=r-1;i>=0;i--){const s=n.content[i];if(Ea(s,e))return s}}}}function Ea(n,e){return Pl(n)&&e.includes(n.tokenType.name)}function xd(n,e=!0){for(;n.container;){const t=n.container;let r=t.content.indexOf(n);for(;r>0;){r--;const i=t.content[r];if(e||!i.hidden)return i}n=t}}class Dl extends Error{constructor(e,t){super(e?`${t} at ${e.range.start.line}:${e.range.start.character}`:t)}}function tr(n){throw new Error("Error! The input value was not handled.")}const lr="AbstractRule",ur="AbstractType",_i="Condition",ka="TypeDefinition",Li="ValueLiteral",hn="AbstractElement";function Sd(n){return M.isInstance(n,hn)}const cr="ArrayLiteral",dr="ArrayType",pn="BooleanLiteral";function Id(n){return M.isInstance(n,pn)}const mn="Conjunction";function Cd(n){return M.isInstance(n,mn)}const gn="Disjunction";function Nd(n){return M.isInstance(n,gn)}const fr="Grammar",bi="GrammarImport",yn="InferredType";function Fl(n){return M.isInstance(n,yn)}const Tn="Interface";function Gl(n){return M.isInstance(n,Tn)}const Oi="NamedArgument",Rn="Negation";function wd(n){return M.isInstance(n,Rn)}const hr="NumberLiteral",pr="Parameter",vn="ParameterReference";function _d(n){return M.isInstance(n,vn)}const An="ParserRule";function we(n){return M.isInstance(n,An)}const mr="ReferenceType",_r="ReturnType";function Ld(n){return M.isInstance(n,_r)}const En="SimpleType";function bd(n){return M.isInstance(n,En)}const gr="StringLiteral",wt="TerminalRule";function $t(n){return M.isInstance(n,wt)}const kn="Type";function Ul(n){return M.isInstance(n,kn)}const Pi="TypeAttribute",yr="UnionType",$n="Action";function gi(n){return M.isInstance(n,$n)}const xn="Alternatives";function Bl(n){return M.isInstance(n,xn)}const Sn="Assignment";function yt(n){return M.isInstance(n,Sn)}const In="CharacterRange";function Od(n){return M.isInstance(n,In)}const Cn="CrossReference";function Hs(n){return M.isInstance(n,Cn)}const Nn="EndOfFile";function Pd(n){return M.isInstance(n,Nn)}const wn="Group";function zs(n){return M.isInstance(n,wn)}const _n="Keyword";function Tt(n){return M.isInstance(n,_n)}const Ln="NegatedToken";function Md(n){return M.isInstance(n,Ln)}const bn="RegexToken";function Dd(n){return M.isInstance(n,bn)}const On="RuleCall";function Rt(n){return M.isInstance(n,On)}const Pn="TerminalAlternatives";function Fd(n){return M.isInstance(n,Pn)}const Mn="TerminalGroup";function Gd(n){return M.isInstance(n,Mn)}const Dn="TerminalRuleCall";function Ud(n){return M.isInstance(n,Dn)}const Fn="UnorderedGroup";function Vl(n){return M.isInstance(n,Fn)}const Gn="UntilToken";function Bd(n){return M.isInstance(n,Gn)}const Un="Wildcard";function Vd(n){return M.isInstance(n,Un)}class Kl extends Ol{getAllTypes(){return[hn,lr,ur,$n,xn,cr,dr,Sn,pn,In,_i,mn,Cn,gn,Nn,fr,bi,wn,yn,Tn,_n,Oi,Ln,Rn,hr,pr,vn,An,mr,bn,_r,On,En,gr,Pn,Mn,wt,Dn,kn,Pi,ka,yr,Fn,Gn,Li,Un]}computeIsSubtype(e,t){switch(e){case $n:case xn:case Sn:case In:case Cn:case Nn:case wn:case _n:case Ln:case bn:case On:case Pn:case Mn:case Dn:case Fn:case Gn:case Un:return this.isSubtype(hn,t);case cr:case hr:case gr:return this.isSubtype(Li,t);case dr:case mr:case En:case yr:return this.isSubtype(ka,t);case pn:return this.isSubtype(_i,t)||this.isSubtype(Li,t);case mn:case gn:case Rn:case vn:return this.isSubtype(_i,t);case yn:case Tn:case kn:return this.isSubtype(ur,t);case An:return this.isSubtype(lr,t)||this.isSubtype(ur,t);case wt:return this.isSubtype(lr,t);default:return!1}}getReferenceType(e){const t=`${e.container.$type}:${e.property}`;switch(t){case"Action:type":case"CrossReference:type":case"Interface:superTypes":case"ParserRule:returnType":case"SimpleType:typeRef":return ur;case"Grammar:hiddenTokens":case"ParserRule:hiddenTokens":case"RuleCall:rule":return lr;case"Grammar:usedGrammars":return fr;case"NamedArgument:parameter":case"ParameterReference:parameter":return pr;case"TerminalRuleCall:rule":return wt;default:throw new Error(`${t} is not a valid reference id.`)}}getTypeMetaData(e){switch(e){case hn:return{name:hn,properties:[{name:"cardinality"},{name:"lookahead"}]};case cr:return{name:cr,properties:[{name:"elements",defaultValue:[]}]};case dr:return{name:dr,properties:[{name:"elementType"}]};case pn:return{name:pn,properties:[{name:"true",defaultValue:!1}]};case mn:return{name:mn,properties:[{name:"left"},{name:"right"}]};case gn:return{name:gn,properties:[{name:"left"},{name:"right"}]};case fr:return{name:fr,properties:[{name:"definesHiddenTokens",defaultValue:!1},{name:"hiddenTokens",defaultValue:[]},{name:"imports",defaultValue:[]},{name:"interfaces",defaultValue:[]},{name:"isDeclared",defaultValue:!1},{name:"name"},{name:"rules",defaultValue:[]},{name:"types",defaultValue:[]},{name:"usedGrammars",defaultValue:[]}]};case bi:return{name:bi,properties:[{name:"path"}]};case yn:return{name:yn,properties:[{name:"name"}]};case Tn:return{name:Tn,properties:[{name:"attributes",defaultValue:[]},{name:"name"},{name:"superTypes",defaultValue:[]}]};case Oi:return{name:Oi,properties:[{name:"calledByName",defaultValue:!1},{name:"parameter"},{name:"value"}]};case Rn:return{name:Rn,properties:[{name:"value"}]};case hr:return{name:hr,properties:[{name:"value"}]};case pr:return{name:pr,properties:[{name:"name"}]};case vn:return{name:vn,properties:[{name:"parameter"}]};case An:return{name:An,properties:[{name:"dataType"},{name:"definesHiddenTokens",defaultValue:!1},{name:"definition"},{name:"entry",defaultValue:!1},{name:"fragment",defaultValue:!1},{name:"hiddenTokens",defaultValue:[]},{name:"inferredType"},{name:"name"},{name:"parameters",defaultValue:[]},{name:"returnType"},{name:"wildcard",defaultValue:!1}]};case mr:return{name:mr,properties:[{name:"referenceType"}]};case _r:return{name:_r,properties:[{name:"name"}]};case En:return{name:En,properties:[{name:"primitiveType"},{name:"stringType"},{name:"typeRef"}]};case gr:return{name:gr,properties:[{name:"value"}]};case wt:return{name:wt,properties:[{name:"definition"},{name:"fragment",defaultValue:!1},{name:"hidden",defaultValue:!1},{name:"name"},{name:"type"}]};case kn:return{name:kn,properties:[{name:"name"},{name:"type"}]};case Pi:return{name:Pi,properties:[{name:"defaultValue"},{name:"isOptional",defaultValue:!1},{name:"name"},{name:"type"}]};case yr:return{name:yr,properties:[{name:"types",defaultValue:[]}]};case $n:return{name:$n,properties:[{name:"cardinality"},{name:"feature"},{name:"inferredType"},{name:"lookahead"},{name:"operator"},{name:"type"}]};case xn:return{name:xn,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case Sn:return{name:Sn,properties:[{name:"cardinality"},{name:"feature"},{name:"lookahead"},{name:"operator"},{name:"terminal"}]};case In:return{name:In,properties:[{name:"cardinality"},{name:"left"},{name:"lookahead"},{name:"right"}]};case Cn:return{name:Cn,properties:[{name:"cardinality"},{name:"deprecatedSyntax",defaultValue:!1},{name:"lookahead"},{name:"terminal"},{name:"type"}]};case Nn:return{name:Nn,properties:[{name:"cardinality"},{name:"lookahead"}]};case wn:return{name:wn,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"guardCondition"},{name:"lookahead"}]};case _n:return{name:_n,properties:[{name:"cardinality"},{name:"lookahead"},{name:"value"}]};case Ln:return{name:Ln,properties:[{name:"cardinality"},{name:"lookahead"},{name:"terminal"}]};case bn:return{name:bn,properties:[{name:"cardinality"},{name:"lookahead"},{name:"regex"}]};case On:return{name:On,properties:[{name:"arguments",defaultValue:[]},{name:"cardinality"},{name:"lookahead"},{name:"rule"}]};case Pn:return{name:Pn,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case Mn:return{name:Mn,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case Dn:return{name:Dn,properties:[{name:"cardinality"},{name:"lookahead"},{name:"rule"}]};case Fn:return{name:Fn,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case Gn:return{name:Gn,properties:[{name:"cardinality"},{name:"lookahead"},{name:"terminal"}]};case Un:return{name:Un,properties:[{name:"cardinality"},{name:"lookahead"}]};default:return{name:e,properties:[]}}}}const M=new Kl;function Kd(n){for(const[e,t]of Object.entries(n))e.startsWith("$")||(Array.isArray(t)?t.forEach((r,i)=>{ae(r)&&(r.$container=n,r.$containerProperty=e,r.$containerIndex=i)}):ae(t)&&(t.$container=n,t.$containerProperty=e))}function yi(n,e){let t=n;for(;t;){if(e(t))return t;t=t.$container}}function et(n){const t=ls(n).$document;if(!t)throw new Error("AST node has no document.");return t}function ls(n){for(;n.$container;)n=n.$container;return n}function qs(n,e){if(!n)throw new Error("Node must be an AstNode.");const t=e==null?void 0:e.range;return new Z(()=>({keys:Object.keys(n),keyIndex:0,arrayIndex:0}),r=>{for(;r.keyIndex<r.keys.length;){const i=r.keys[r.keyIndex];if(!i.startsWith("$")){const s=n[i];if(ae(s)){if(r.keyIndex++,$a(s,t))return{done:!1,value:s}}else if(Array.isArray(s)){for(;r.arrayIndex<s.length;){const a=r.arrayIndex++,o=s[a];if(ae(o)&&$a(o,t))return{done:!1,value:o}}r.arrayIndex=0}}r.keyIndex++}return ve})}function nr(n,e){if(!n)throw new Error("Root node must be an AstNode.");return new js(n,t=>qs(t,e))}function Lt(n,e){if(!n)throw new Error("Root node must be an AstNode.");return new js(n,t=>qs(t,e),{includeRoot:!0})}function $a(n,e){var t;if(!e)return!0;const r=(t=n.$cstNode)===null||t===void 0?void 0:t.range;return r?Ed(r,e):!1}function Wl(n){return new Z(()=>({keys:Object.keys(n),keyIndex:0,arrayIndex:0}),e=>{for(;e.keyIndex<e.keys.length;){const t=e.keys[e.keyIndex];if(!t.startsWith("$")){const r=n[t];if(Ue(r))return e.keyIndex++,{done:!1,value:{reference:r,container:n,property:t}};if(Array.isArray(r)){for(;e.arrayIndex<r.length;){const i=e.arrayIndex++,s=r[i];if(Ue(s))return{done:!1,value:{reference:s,container:n,property:t,index:i}}}e.arrayIndex=0}}e.keyIndex++}return ve})}function Wd(n,e){const t=n.getTypeMetaData(e.$type),r=e;for(const i of t.properties)i.defaultValue!==void 0&&r[i.name]===void 0&&(r[i.name]=jl(i.defaultValue))}function jl(n){return Array.isArray(n)?[...n.map(jl)]:n}function w(n){return n.charCodeAt(0)}function Mi(n,e){Array.isArray(n)?n.forEach(function(t){e.push(t)}):e.push(n)}function cn(n,e){if(n[e]===!0)throw"duplicate flag "+e;n[e],n[e]=!0}function Nt(n){if(n===void 0)throw Error("Internal Error - Should never get here!");return!0}function jd(){throw Error("Internal Error - Should never get here!")}function xa(n){return n.type==="Character"}const zr=[];for(let n=w("0");n<=w("9");n++)zr.push(n);const qr=[w("_")].concat(zr);for(let n=w("a");n<=w("z");n++)qr.push(n);for(let n=w("A");n<=w("Z");n++)qr.push(n);const Sa=[w(" "),w("\f"),w(`
1
+ var _c=Object.defineProperty;var Lc=(n,e,t)=>e in n?_c(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t;var Ze=(n,e,t)=>Lc(n,typeof e!="symbol"?e+"":e,t);import{_ as ht}from"./index.js";import{bA as bc,bB as Oc,aU as Sl,bk as Pc,aY as Mc,aV as te,aA as Dc,aB as ya,ba as Fc,bd as Il,be as Cl,bb as Gc,bp as Ta,aD as kt,aE as D,aW as Ra,aQ as Uc}from"./mermaid.core.js";import{k as Jt,j as Bs,g as sn,S as Bc,w as Vc,x as Kc,c as Nl,v as z,y as wl,l as Wc,z as jc,A as Hc,B as zc,C as qc,a as _l,d as C,i as Ye,r as le,f as $e,D as Y}from"./_baseUniq.js";import{j as Vs,m as x,d as Yc,f as Ne,g as Qt,h as N,i as Ks,l as Zt,e as Xc}from"./_basePickBy.js";import{c as re}from"./clone.js";var Jc=Object.prototype,Qc=Jc.hasOwnProperty,ke=bc(function(n,e){if(Oc(e)||Sl(e)){Pc(e,Jt(e),n);return}for(var t in e)Qc.call(e,t)&&Mc(n,t,e[t])});function Ll(n,e,t){var r=-1,i=n.length;e<0&&(e=-e>i?0:i+e),t=t>i?i:t,t<0&&(t+=i),i=e>t?0:t-e>>>0,e>>>=0;for(var s=Array(i);++r<i;)s[r]=n[r+e];return s}function er(n){for(var e=-1,t=n==null?0:n.length,r=0,i=[];++e<t;){var s=n[e];s&&(i[r++]=s)}return i}function Zc(n,e,t,r){for(var i=-1,s=n==null?0:n.length;++i<s;){var a=n[i];e(r,a,t(a),n)}return r}function ed(n,e,t,r){return Bs(n,function(i,s,a){e(r,i,t(i),a)}),r}function td(n,e){return function(t,r){var i=te(t)?Zc:ed,s=e?e():{};return i(t,n,sn(r),s)}}var nd=200;function rd(n,e,t,r){var i=-1,s=Vc,a=!0,o=n.length,l=[],u=e.length;if(!o)return l;e.length>=nd&&(s=Kc,a=!1,e=new Bc(e));e:for(;++i<o;){var c=n[i],d=c;if(c=c!==0?c:0,a&&d===d){for(var h=u;h--;)if(e[h]===d)continue e;l.push(c)}else s(e,d,r)||l.push(c)}return l}var pi=Dc(function(n,e){return ya(n)?rd(n,Nl(e,1,ya,!0)):[]});function Q(n,e,t){var r=n==null?0:n.length;return r?(e=e===void 0?1:Vs(e),Ll(n,e<0?0:e,r)):[]}function Xn(n,e,t){var r=n==null?0:n.length;return r?(e=e===void 0?1:Vs(e),e=r-e,Ll(n,0,e<0?0:e)):[]}function id(n,e){for(var t=-1,r=n==null?0:n.length;++t<r;)if(!e(n[t],t,n))return!1;return!0}function sd(n,e){var t=!0;return Bs(n,function(r,i,s){return t=!!e(r,i,s),t}),t}function Oe(n,e,t){var r=te(n)?id:sd;return r(n,sn(e))}function Pe(n){return n&&n.length?n[0]:void 0}function Ee(n,e){return Nl(x(n,e))}var ad=Object.prototype,od=ad.hasOwnProperty,ld=td(function(n,e,t){od.call(n,t)?n[t].push(e):Fc(n,t,[e])}),ud="[object String]";function he(n){return typeof n=="string"||!te(n)&&Il(n)&&Cl(n)==ud}var cd=Math.max;function de(n,e,t,r){n=Sl(n)?n:z(n),t=t?Vs(t):0;var i=n.length;return t<0&&(t=cd(i+t,0)),he(n)?t<=i&&n.indexOf(e,t)>-1:!!i&&wl(n,e,t)>-1}function va(n,e,t){var r=n==null?0:n.length;if(!r)return-1;var i=0;return wl(n,e,i)}var dd="[object RegExp]";function fd(n){return Il(n)&&Cl(n)==dd}var Aa=Ta&&Ta.isRegExp,Xe=Aa?Gc(Aa):fd,hd="Expected a function";function pd(n){if(typeof n!="function")throw new TypeError(hd);return function(){var e=arguments;switch(e.length){case 0:return!n.call(this);case 1:return!n.call(this,e[0]);case 2:return!n.call(this,e[0],e[1]);case 3:return!n.call(this,e[0],e[1],e[2])}return!n.apply(this,e)}}function Me(n,e){if(n==null)return{};var t=Wc(jc(n),function(r){return[r]});return e=sn(e),Yc(n,t,function(r,i){return e(r,i[0])})}function mi(n,e){var t=te(n)?Hc:zc;return t(n,pd(sn(e)))}function md(n,e){var t;return Bs(n,function(r,i,s){return t=e(r,i,s),!t}),!!t}function bl(n,e,t){var r=te(n)?qc:md;return r(n,sn(e))}function Ws(n){return n&&n.length?_l(n):[]}function gd(n,e){return n&&n.length?_l(n,sn(e)):[]}function ae(n){return typeof n=="object"&&n!==null&&typeof n.$type=="string"}function Ue(n){return typeof n=="object"&&n!==null&&typeof n.$refText=="string"}function yd(n){return typeof n=="object"&&n!==null&&typeof n.name=="string"&&typeof n.type=="string"&&typeof n.path=="string"}function wr(n){return typeof n=="object"&&n!==null&&ae(n.container)&&Ue(n.reference)&&typeof n.message=="string"}class Ol{constructor(){this.subtypes={},this.allSubtypes={}}isInstance(e,t){return ae(e)&&this.isSubtype(e.$type,t)}isSubtype(e,t){if(e===t)return!0;let r=this.subtypes[e];r||(r=this.subtypes[e]={});const i=r[t];if(i!==void 0)return i;{const s=this.computeIsSubtype(e,t);return r[t]=s,s}}getAllSubTypes(e){const t=this.allSubtypes[e];if(t)return t;{const r=this.getAllTypes(),i=[];for(const s of r)this.isSubtype(s,e)&&i.push(s);return this.allSubtypes[e]=i,i}}}function Jn(n){return typeof n=="object"&&n!==null&&Array.isArray(n.content)}function Pl(n){return typeof n=="object"&&n!==null&&typeof n.tokenType=="object"}function Ml(n){return Jn(n)&&typeof n.fullText=="string"}class Z{constructor(e,t){this.startFn=e,this.nextFn=t}iterator(){const e={state:this.startFn(),next:()=>this.nextFn(e.state),[Symbol.iterator]:()=>e};return e}[Symbol.iterator](){return this.iterator()}isEmpty(){return!!this.iterator().next().done}count(){const e=this.iterator();let t=0,r=e.next();for(;!r.done;)t++,r=e.next();return t}toArray(){const e=[],t=this.iterator();let r;do r=t.next(),r.value!==void 0&&e.push(r.value);while(!r.done);return e}toSet(){return new Set(this)}toMap(e,t){const r=this.map(i=>[e?e(i):i,t?t(i):i]);return new Map(r)}toString(){return this.join()}concat(e){return new Z(()=>({first:this.startFn(),firstDone:!1,iterator:e[Symbol.iterator]()}),t=>{let r;if(!t.firstDone){do if(r=this.nextFn(t.first),!r.done)return r;while(!r.done);t.firstDone=!0}do if(r=t.iterator.next(),!r.done)return r;while(!r.done);return ve})}join(e=","){const t=this.iterator();let r="",i,s=!1;do i=t.next(),i.done||(s&&(r+=e),r+=Td(i.value)),s=!0;while(!i.done);return r}indexOf(e,t=0){const r=this.iterator();let i=0,s=r.next();for(;!s.done;){if(i>=t&&s.value===e)return i;s=r.next(),i++}return-1}every(e){const t=this.iterator();let r=t.next();for(;!r.done;){if(!e(r.value))return!1;r=t.next()}return!0}some(e){const t=this.iterator();let r=t.next();for(;!r.done;){if(e(r.value))return!0;r=t.next()}return!1}forEach(e){const t=this.iterator();let r=0,i=t.next();for(;!i.done;)e(i.value,r),i=t.next(),r++}map(e){return new Z(this.startFn,t=>{const{done:r,value:i}=this.nextFn(t);return r?ve:{done:!1,value:e(i)}})}filter(e){return new Z(this.startFn,t=>{let r;do if(r=this.nextFn(t),!r.done&&e(r.value))return r;while(!r.done);return ve})}nonNullable(){return this.filter(e=>e!=null)}reduce(e,t){const r=this.iterator();let i=t,s=r.next();for(;!s.done;)i===void 0?i=s.value:i=e(i,s.value),s=r.next();return i}reduceRight(e,t){return this.recursiveReduce(this.iterator(),e,t)}recursiveReduce(e,t,r){const i=e.next();if(i.done)return r;const s=this.recursiveReduce(e,t,r);return s===void 0?i.value:t(s,i.value)}find(e){const t=this.iterator();let r=t.next();for(;!r.done;){if(e(r.value))return r.value;r=t.next()}}findIndex(e){const t=this.iterator();let r=0,i=t.next();for(;!i.done;){if(e(i.value))return r;i=t.next(),r++}return-1}includes(e){const t=this.iterator();let r=t.next();for(;!r.done;){if(r.value===e)return!0;r=t.next()}return!1}flatMap(e){return new Z(()=>({this:this.startFn()}),t=>{do{if(t.iterator){const s=t.iterator.next();if(s.done)t.iterator=void 0;else return s}const{done:r,value:i}=this.nextFn(t.this);if(!r){const s=e(i);if(jr(s))t.iterator=s[Symbol.iterator]();else return{done:!1,value:s}}}while(t.iterator);return ve})}flat(e){if(e===void 0&&(e=1),e<=0)return this;const t=e>1?this.flat(e-1):this;return new Z(()=>({this:t.startFn()}),r=>{do{if(r.iterator){const a=r.iterator.next();if(a.done)r.iterator=void 0;else return a}const{done:i,value:s}=t.nextFn(r.this);if(!i)if(jr(s))r.iterator=s[Symbol.iterator]();else return{done:!1,value:s}}while(r.iterator);return ve})}head(){const t=this.iterator().next();if(!t.done)return t.value}tail(e=1){return new Z(()=>{const t=this.startFn();for(let r=0;r<e;r++)if(this.nextFn(t).done)return t;return t},this.nextFn)}limit(e){return new Z(()=>({size:0,state:this.startFn()}),t=>(t.size++,t.size>e?ve:this.nextFn(t.state)))}distinct(e){return new Z(()=>({set:new Set,internalState:this.startFn()}),t=>{let r;do if(r=this.nextFn(t.internalState),!r.done){const i=e?e(r.value):r.value;if(!t.set.has(i))return t.set.add(i),r}while(!r.done);return ve})}exclude(e,t){const r=new Set;for(const i of e){const s=t?t(i):i;r.add(s)}return this.filter(i=>{const s=t?t(i):i;return!r.has(s)})}}function Td(n){return typeof n=="string"?n:typeof n>"u"?"undefined":typeof n.toString=="function"?n.toString():Object.prototype.toString.call(n)}function jr(n){return!!n&&typeof n[Symbol.iterator]=="function"}const Rd=new Z(()=>{},()=>ve),ve=Object.freeze({done:!0,value:void 0});function ee(...n){if(n.length===1){const e=n[0];if(e instanceof Z)return e;if(jr(e))return new Z(()=>e[Symbol.iterator](),t=>t.next());if(typeof e.length=="number")return new Z(()=>({index:0}),t=>t.index<e.length?{done:!1,value:e[t.index++]}:ve)}return n.length>1?new Z(()=>({collIndex:0,arrIndex:0}),e=>{do{if(e.iterator){const t=e.iterator.next();if(!t.done)return t;e.iterator=void 0}if(e.array){if(e.arrIndex<e.array.length)return{done:!1,value:e.array[e.arrIndex++]};e.array=void 0,e.arrIndex=0}if(e.collIndex<n.length){const t=n[e.collIndex++];jr(t)?e.iterator=t[Symbol.iterator]():t&&typeof t.length=="number"&&(e.array=t)}}while(e.iterator||e.array||e.collIndex<n.length);return ve}):Rd}class js extends Z{constructor(e,t,r){super(()=>({iterators:r!=null&&r.includeRoot?[[e][Symbol.iterator]()]:[t(e)[Symbol.iterator]()],pruned:!1}),i=>{for(i.pruned&&(i.iterators.pop(),i.pruned=!1);i.iterators.length>0;){const a=i.iterators[i.iterators.length-1].next();if(a.done)i.iterators.pop();else return i.iterators.push(t(a.value)[Symbol.iterator]()),a}return ve})}iterator(){const e={state:this.startFn(),next:()=>this.nextFn(e.state),prune:()=>{e.state.pruned=!0},[Symbol.iterator]:()=>e};return e}}var ss;(function(n){function e(s){return s.reduce((a,o)=>a+o,0)}n.sum=e;function t(s){return s.reduce((a,o)=>a*o,0)}n.product=t;function r(s){return s.reduce((a,o)=>Math.min(a,o))}n.min=r;function i(s){return s.reduce((a,o)=>Math.max(a,o))}n.max=i})(ss||(ss={}));function as(n){return new js(n,e=>Jn(e)?e.content:[],{includeRoot:!0})}function vd(n,e){for(;n.container;)if(n=n.container,n===e)return!0;return!1}function os(n){return{start:{character:n.startColumn-1,line:n.startLine-1},end:{character:n.endColumn,line:n.endLine-1}}}function Hr(n){if(!n)return;const{offset:e,end:t,range:r}=n;return{range:r,offset:e,end:t,length:t-e}}var He;(function(n){n[n.Before=0]="Before",n[n.After=1]="After",n[n.OverlapFront=2]="OverlapFront",n[n.OverlapBack=3]="OverlapBack",n[n.Inside=4]="Inside",n[n.Outside=5]="Outside"})(He||(He={}));function Ad(n,e){if(n.end.line<e.start.line||n.end.line===e.start.line&&n.end.character<=e.start.character)return He.Before;if(n.start.line>e.end.line||n.start.line===e.end.line&&n.start.character>=e.end.character)return He.After;const t=n.start.line>e.start.line||n.start.line===e.start.line&&n.start.character>=e.start.character,r=n.end.line<e.end.line||n.end.line===e.end.line&&n.end.character<=e.end.character;return t&&r?He.Inside:t?He.OverlapBack:r?He.OverlapFront:He.Outside}function Ed(n,e){return Ad(n,e)>He.After}const kd=/^[\w\p{L}]$/u;function $d(n,e){if(n){const t=xd(n,!0);if(t&&Ea(t,e))return t;if(Ml(n)){const r=n.content.findIndex(i=>!i.hidden);for(let i=r-1;i>=0;i--){const s=n.content[i];if(Ea(s,e))return s}}}}function Ea(n,e){return Pl(n)&&e.includes(n.tokenType.name)}function xd(n,e=!0){for(;n.container;){const t=n.container;let r=t.content.indexOf(n);for(;r>0;){r--;const i=t.content[r];if(e||!i.hidden)return i}n=t}}class Dl extends Error{constructor(e,t){super(e?`${t} at ${e.range.start.line}:${e.range.start.character}`:t)}}function tr(n){throw new Error("Error! The input value was not handled.")}const lr="AbstractRule",ur="AbstractType",_i="Condition",ka="TypeDefinition",Li="ValueLiteral",hn="AbstractElement";function Sd(n){return M.isInstance(n,hn)}const cr="ArrayLiteral",dr="ArrayType",pn="BooleanLiteral";function Id(n){return M.isInstance(n,pn)}const mn="Conjunction";function Cd(n){return M.isInstance(n,mn)}const gn="Disjunction";function Nd(n){return M.isInstance(n,gn)}const fr="Grammar",bi="GrammarImport",yn="InferredType";function Fl(n){return M.isInstance(n,yn)}const Tn="Interface";function Gl(n){return M.isInstance(n,Tn)}const Oi="NamedArgument",Rn="Negation";function wd(n){return M.isInstance(n,Rn)}const hr="NumberLiteral",pr="Parameter",vn="ParameterReference";function _d(n){return M.isInstance(n,vn)}const An="ParserRule";function we(n){return M.isInstance(n,An)}const mr="ReferenceType",_r="ReturnType";function Ld(n){return M.isInstance(n,_r)}const En="SimpleType";function bd(n){return M.isInstance(n,En)}const gr="StringLiteral",wt="TerminalRule";function $t(n){return M.isInstance(n,wt)}const kn="Type";function Ul(n){return M.isInstance(n,kn)}const Pi="TypeAttribute",yr="UnionType",$n="Action";function gi(n){return M.isInstance(n,$n)}const xn="Alternatives";function Bl(n){return M.isInstance(n,xn)}const Sn="Assignment";function yt(n){return M.isInstance(n,Sn)}const In="CharacterRange";function Od(n){return M.isInstance(n,In)}const Cn="CrossReference";function Hs(n){return M.isInstance(n,Cn)}const Nn="EndOfFile";function Pd(n){return M.isInstance(n,Nn)}const wn="Group";function zs(n){return M.isInstance(n,wn)}const _n="Keyword";function Tt(n){return M.isInstance(n,_n)}const Ln="NegatedToken";function Md(n){return M.isInstance(n,Ln)}const bn="RegexToken";function Dd(n){return M.isInstance(n,bn)}const On="RuleCall";function Rt(n){return M.isInstance(n,On)}const Pn="TerminalAlternatives";function Fd(n){return M.isInstance(n,Pn)}const Mn="TerminalGroup";function Gd(n){return M.isInstance(n,Mn)}const Dn="TerminalRuleCall";function Ud(n){return M.isInstance(n,Dn)}const Fn="UnorderedGroup";function Vl(n){return M.isInstance(n,Fn)}const Gn="UntilToken";function Bd(n){return M.isInstance(n,Gn)}const Un="Wildcard";function Vd(n){return M.isInstance(n,Un)}class Kl extends Ol{getAllTypes(){return[hn,lr,ur,$n,xn,cr,dr,Sn,pn,In,_i,mn,Cn,gn,Nn,fr,bi,wn,yn,Tn,_n,Oi,Ln,Rn,hr,pr,vn,An,mr,bn,_r,On,En,gr,Pn,Mn,wt,Dn,kn,Pi,ka,yr,Fn,Gn,Li,Un]}computeIsSubtype(e,t){switch(e){case $n:case xn:case Sn:case In:case Cn:case Nn:case wn:case _n:case Ln:case bn:case On:case Pn:case Mn:case Dn:case Fn:case Gn:case Un:return this.isSubtype(hn,t);case cr:case hr:case gr:return this.isSubtype(Li,t);case dr:case mr:case En:case yr:return this.isSubtype(ka,t);case pn:return this.isSubtype(_i,t)||this.isSubtype(Li,t);case mn:case gn:case Rn:case vn:return this.isSubtype(_i,t);case yn:case Tn:case kn:return this.isSubtype(ur,t);case An:return this.isSubtype(lr,t)||this.isSubtype(ur,t);case wt:return this.isSubtype(lr,t);default:return!1}}getReferenceType(e){const t=`${e.container.$type}:${e.property}`;switch(t){case"Action:type":case"CrossReference:type":case"Interface:superTypes":case"ParserRule:returnType":case"SimpleType:typeRef":return ur;case"Grammar:hiddenTokens":case"ParserRule:hiddenTokens":case"RuleCall:rule":return lr;case"Grammar:usedGrammars":return fr;case"NamedArgument:parameter":case"ParameterReference:parameter":return pr;case"TerminalRuleCall:rule":return wt;default:throw new Error(`${t} is not a valid reference id.`)}}getTypeMetaData(e){switch(e){case hn:return{name:hn,properties:[{name:"cardinality"},{name:"lookahead"}]};case cr:return{name:cr,properties:[{name:"elements",defaultValue:[]}]};case dr:return{name:dr,properties:[{name:"elementType"}]};case pn:return{name:pn,properties:[{name:"true",defaultValue:!1}]};case mn:return{name:mn,properties:[{name:"left"},{name:"right"}]};case gn:return{name:gn,properties:[{name:"left"},{name:"right"}]};case fr:return{name:fr,properties:[{name:"definesHiddenTokens",defaultValue:!1},{name:"hiddenTokens",defaultValue:[]},{name:"imports",defaultValue:[]},{name:"interfaces",defaultValue:[]},{name:"isDeclared",defaultValue:!1},{name:"name"},{name:"rules",defaultValue:[]},{name:"types",defaultValue:[]},{name:"usedGrammars",defaultValue:[]}]};case bi:return{name:bi,properties:[{name:"path"}]};case yn:return{name:yn,properties:[{name:"name"}]};case Tn:return{name:Tn,properties:[{name:"attributes",defaultValue:[]},{name:"name"},{name:"superTypes",defaultValue:[]}]};case Oi:return{name:Oi,properties:[{name:"calledByName",defaultValue:!1},{name:"parameter"},{name:"value"}]};case Rn:return{name:Rn,properties:[{name:"value"}]};case hr:return{name:hr,properties:[{name:"value"}]};case pr:return{name:pr,properties:[{name:"name"}]};case vn:return{name:vn,properties:[{name:"parameter"}]};case An:return{name:An,properties:[{name:"dataType"},{name:"definesHiddenTokens",defaultValue:!1},{name:"definition"},{name:"entry",defaultValue:!1},{name:"fragment",defaultValue:!1},{name:"hiddenTokens",defaultValue:[]},{name:"inferredType"},{name:"name"},{name:"parameters",defaultValue:[]},{name:"returnType"},{name:"wildcard",defaultValue:!1}]};case mr:return{name:mr,properties:[{name:"referenceType"}]};case _r:return{name:_r,properties:[{name:"name"}]};case En:return{name:En,properties:[{name:"primitiveType"},{name:"stringType"},{name:"typeRef"}]};case gr:return{name:gr,properties:[{name:"value"}]};case wt:return{name:wt,properties:[{name:"definition"},{name:"fragment",defaultValue:!1},{name:"hidden",defaultValue:!1},{name:"name"},{name:"type"}]};case kn:return{name:kn,properties:[{name:"name"},{name:"type"}]};case Pi:return{name:Pi,properties:[{name:"defaultValue"},{name:"isOptional",defaultValue:!1},{name:"name"},{name:"type"}]};case yr:return{name:yr,properties:[{name:"types",defaultValue:[]}]};case $n:return{name:$n,properties:[{name:"cardinality"},{name:"feature"},{name:"inferredType"},{name:"lookahead"},{name:"operator"},{name:"type"}]};case xn:return{name:xn,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case Sn:return{name:Sn,properties:[{name:"cardinality"},{name:"feature"},{name:"lookahead"},{name:"operator"},{name:"terminal"}]};case In:return{name:In,properties:[{name:"cardinality"},{name:"left"},{name:"lookahead"},{name:"right"}]};case Cn:return{name:Cn,properties:[{name:"cardinality"},{name:"deprecatedSyntax",defaultValue:!1},{name:"lookahead"},{name:"terminal"},{name:"type"}]};case Nn:return{name:Nn,properties:[{name:"cardinality"},{name:"lookahead"}]};case wn:return{name:wn,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"guardCondition"},{name:"lookahead"}]};case _n:return{name:_n,properties:[{name:"cardinality"},{name:"lookahead"},{name:"value"}]};case Ln:return{name:Ln,properties:[{name:"cardinality"},{name:"lookahead"},{name:"terminal"}]};case bn:return{name:bn,properties:[{name:"cardinality"},{name:"lookahead"},{name:"regex"}]};case On:return{name:On,properties:[{name:"arguments",defaultValue:[]},{name:"cardinality"},{name:"lookahead"},{name:"rule"}]};case Pn:return{name:Pn,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case Mn:return{name:Mn,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case Dn:return{name:Dn,properties:[{name:"cardinality"},{name:"lookahead"},{name:"rule"}]};case Fn:return{name:Fn,properties:[{name:"cardinality"},{name:"elements",defaultValue:[]},{name:"lookahead"}]};case Gn:return{name:Gn,properties:[{name:"cardinality"},{name:"lookahead"},{name:"terminal"}]};case Un:return{name:Un,properties:[{name:"cardinality"},{name:"lookahead"}]};default:return{name:e,properties:[]}}}}const M=new Kl;function Kd(n){for(const[e,t]of Object.entries(n))e.startsWith("$")||(Array.isArray(t)?t.forEach((r,i)=>{ae(r)&&(r.$container=n,r.$containerProperty=e,r.$containerIndex=i)}):ae(t)&&(t.$container=n,t.$containerProperty=e))}function yi(n,e){let t=n;for(;t;){if(e(t))return t;t=t.$container}}function et(n){const t=ls(n).$document;if(!t)throw new Error("AST node has no document.");return t}function ls(n){for(;n.$container;)n=n.$container;return n}function qs(n,e){if(!n)throw new Error("Node must be an AstNode.");const t=e==null?void 0:e.range;return new Z(()=>({keys:Object.keys(n),keyIndex:0,arrayIndex:0}),r=>{for(;r.keyIndex<r.keys.length;){const i=r.keys[r.keyIndex];if(!i.startsWith("$")){const s=n[i];if(ae(s)){if(r.keyIndex++,$a(s,t))return{done:!1,value:s}}else if(Array.isArray(s)){for(;r.arrayIndex<s.length;){const a=r.arrayIndex++,o=s[a];if(ae(o)&&$a(o,t))return{done:!1,value:o}}r.arrayIndex=0}}r.keyIndex++}return ve})}function nr(n,e){if(!n)throw new Error("Root node must be an AstNode.");return new js(n,t=>qs(t,e))}function Lt(n,e){if(!n)throw new Error("Root node must be an AstNode.");return new js(n,t=>qs(t,e),{includeRoot:!0})}function $a(n,e){var t;if(!e)return!0;const r=(t=n.$cstNode)===null||t===void 0?void 0:t.range;return r?Ed(r,e):!1}function Wl(n){return new Z(()=>({keys:Object.keys(n),keyIndex:0,arrayIndex:0}),e=>{for(;e.keyIndex<e.keys.length;){const t=e.keys[e.keyIndex];if(!t.startsWith("$")){const r=n[t];if(Ue(r))return e.keyIndex++,{done:!1,value:{reference:r,container:n,property:t}};if(Array.isArray(r)){for(;e.arrayIndex<r.length;){const i=e.arrayIndex++,s=r[i];if(Ue(s))return{done:!1,value:{reference:s,container:n,property:t,index:i}}}e.arrayIndex=0}}e.keyIndex++}return ve})}function Wd(n,e){const t=n.getTypeMetaData(e.$type),r=e;for(const i of t.properties)i.defaultValue!==void 0&&r[i.name]===void 0&&(r[i.name]=jl(i.defaultValue))}function jl(n){return Array.isArray(n)?[...n.map(jl)]:n}function w(n){return n.charCodeAt(0)}function Mi(n,e){Array.isArray(n)?n.forEach(function(t){e.push(t)}):e.push(n)}function cn(n,e){if(n[e]===!0)throw"duplicate flag "+e;n[e],n[e]=!0}function Nt(n){if(n===void 0)throw Error("Internal Error - Should never get here!");return!0}function jd(){throw Error("Internal Error - Should never get here!")}function xa(n){return n.type==="Character"}const zr=[];for(let n=w("0");n<=w("9");n++)zr.push(n);const qr=[w("_")].concat(zr);for(let n=w("a");n<=w("z");n++)qr.push(n);for(let n=w("A");n<=w("Z");n++)qr.push(n);const Sa=[w(" "),w("\f"),w(`
2
2
  `),w("\r"),w(" "),w("\v"),w(" "),w(" "),w(" "),w(" "),w(" "),w(" "),w(" "),w(" "),w(" "),w(" "),w(" "),w(" "),w(" "),w(" "),w("\u2028"),w("\u2029"),w(" "),w(" "),w(" "),w("\uFEFF")],Hd=/[0-9a-fA-F]/,Tr=/[0-9]/,zd=/[1-9]/;class Hl{constructor(){this.idx=0,this.input="",this.groupIdx=0}saveState(){return{idx:this.idx,input:this.input,groupIdx:this.groupIdx}}restoreState(e){this.idx=e.idx,this.input=e.input,this.groupIdx=e.groupIdx}pattern(e){this.idx=0,this.input=e,this.groupIdx=0,this.consumeChar("/");const t=this.disjunction();this.consumeChar("/");const r={type:"Flags",loc:{begin:this.idx,end:e.length},global:!1,ignoreCase:!1,multiLine:!1,unicode:!1,sticky:!1};for(;this.isRegExpFlag();)switch(this.popChar()){case"g":cn(r,"global");break;case"i":cn(r,"ignoreCase");break;case"m":cn(r,"multiLine");break;case"u":cn(r,"unicode");break;case"y":cn(r,"sticky");break}if(this.idx!==this.input.length)throw Error("Redundant input: "+this.input.substring(this.idx));return{type:"Pattern",flags:r,value:t,loc:this.loc(0)}}disjunction(){const e=[],t=this.idx;for(e.push(this.alternative());this.peekChar()==="|";)this.consumeChar("|"),e.push(this.alternative());return{type:"Disjunction",value:e,loc:this.loc(t)}}alternative(){const e=[],t=this.idx;for(;this.isTerm();)e.push(this.term());return{type:"Alternative",value:e,loc:this.loc(t)}}term(){return this.isAssertion()?this.assertion():this.atom()}assertion(){const e=this.idx;switch(this.popChar()){case"^":return{type:"StartAnchor",loc:this.loc(e)};case"$":return{type:"EndAnchor",loc:this.loc(e)};case"\\":switch(this.popChar()){case"b":return{type:"WordBoundary",loc:this.loc(e)};case"B":return{type:"NonWordBoundary",loc:this.loc(e)}}throw Error("Invalid Assertion Escape");case"(":this.consumeChar("?");let t;switch(this.popChar()){case"=":t="Lookahead";break;case"!":t="NegativeLookahead";break}Nt(t);const r=this.disjunction();return this.consumeChar(")"),{type:t,value:r,loc:this.loc(e)}}return jd()}quantifier(e=!1){let t;const r=this.idx;switch(this.popChar()){case"*":t={atLeast:0,atMost:1/0};break;case"+":t={atLeast:1,atMost:1/0};break;case"?":t={atLeast:0,atMost:1};break;case"{":const i=this.integerIncludingZero();switch(this.popChar()){case"}":t={atLeast:i,atMost:i};break;case",":let s;this.isDigit()?(s=this.integerIncludingZero(),t={atLeast:i,atMost:s}):t={atLeast:i,atMost:1/0},this.consumeChar("}");break}if(e===!0&&t===void 0)return;Nt(t);break}if(!(e===!0&&t===void 0)&&Nt(t))return this.peekChar(0)==="?"?(this.consumeChar("?"),t.greedy=!1):t.greedy=!0,t.type="Quantifier",t.loc=this.loc(r),t}atom(){let e;const t=this.idx;switch(this.peekChar()){case".":e=this.dotAll();break;case"\\":e=this.atomEscape();break;case"[":e=this.characterClass();break;case"(":e=this.group();break}if(e===void 0&&this.isPatternCharacter()&&(e=this.patternCharacter()),Nt(e))return e.loc=this.loc(t),this.isQuantifier()&&(e.quantifier=this.quantifier()),e}dotAll(){return this.consumeChar("."),{type:"Set",complement:!0,value:[w(`
3
3
  `),w("\r"),w("\u2028"),w("\u2029")]}}atomEscape(){switch(this.consumeChar("\\"),this.peekChar()){case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":return this.decimalEscapeAtom();case"d":case"D":case"s":case"S":case"w":case"W":return this.characterClassEscape();case"f":case"n":case"r":case"t":case"v":return this.controlEscapeAtom();case"c":return this.controlLetterEscapeAtom();case"0":return this.nulCharacterAtom();case"x":return this.hexEscapeSequenceAtom();case"u":return this.regExpUnicodeEscapeSequenceAtom();default:return this.identityEscapeAtom()}}decimalEscapeAtom(){return{type:"GroupBackReference",value:this.positiveInteger()}}characterClassEscape(){let e,t=!1;switch(this.popChar()){case"d":e=zr;break;case"D":e=zr,t=!0;break;case"s":e=Sa;break;case"S":e=Sa,t=!0;break;case"w":e=qr;break;case"W":e=qr,t=!0;break}if(Nt(e))return{type:"Set",value:e,complement:t}}controlEscapeAtom(){let e;switch(this.popChar()){case"f":e=w("\f");break;case"n":e=w(`
4
4
  `);break;case"r":e=w("\r");break;case"t":e=w(" ");break;case"v":e=w("\v");break}if(Nt(e))return{type:"Character",value:e}}controlLetterEscapeAtom(){this.consumeChar("c");const e=this.popChar();if(/[a-zA-Z]/.test(e)===!1)throw Error("Invalid ");return{type:"Character",value:e.toUpperCase().charCodeAt(0)-64}}nulCharacterAtom(){return this.consumeChar("0"),{type:"Character",value:w("\0")}}hexEscapeSequenceAtom(){return this.consumeChar("x"),this.parseHexDigits(2)}regExpUnicodeEscapeSequenceAtom(){return this.consumeChar("u"),this.parseHexDigits(4)}identityEscapeAtom(){const e=this.popChar();return{type:"Character",value:w(e)}}classPatternCharacterAtom(){switch(this.peekChar()){case`
@@ -1,16 +1,18 @@
1
1
  {
2
2
  "name": "@power-maverick/tool-erd-generator",
3
- "version": "1.0.0",
3
+ "version": "1.0.2",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "@power-maverick/tool-erd-generator",
9
- "version": "1.0.0",
9
+ "version": "1.0.2",
10
10
  "license": "GPL-2.0",
11
11
  "dependencies": {
12
+ "@types/plantuml-encoder": "^1.4.2",
12
13
  "axios": "^1.7.9",
13
14
  "mermaid": "^11.4.1",
15
+ "plantuml-encoder": "^1.4.0",
14
16
  "react": "^18.3.1",
15
17
  "react-dom": "^18.3.1"
16
18
  },
@@ -1528,6 +1530,24 @@
1528
1530
  "integrity": "sha512-6C8nqWur3j98U6+lXDfTUWIfgvZU+EumvpHKcYjujKH7woYyLj2sUmff0tRhrqM7BohUw7Pz3ZB1jj2gW9Fvmg==",
1529
1531
  "license": "MIT"
1530
1532
  },
1533
+ "node_modules/@types/node": {
1534
+ "version": "24.10.1",
1535
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-24.10.1.tgz",
1536
+ "integrity": "sha512-GNWcUTRBgIRJD5zj+Tq0fKOJ5XZajIiBroOF0yvj2bSU1WvNdYS/dn9UxwsujGW4JX06dnHyjV2y9rRaybH0iQ==",
1537
+ "license": "MIT",
1538
+ "dependencies": {
1539
+ "undici-types": "~7.16.0"
1540
+ }
1541
+ },
1542
+ "node_modules/@types/plantuml-encoder": {
1543
+ "version": "1.4.2",
1544
+ "resolved": "https://registry.npmjs.org/@types/plantuml-encoder/-/plantuml-encoder-1.4.2.tgz",
1545
+ "integrity": "sha512-R60SYlcXyTXQebyVwcarGSJUucuwYY5wetBWAOnRt3k52flBXgt4R1KrxaZ4xpk5MpVo9titpVBBhgl/A9JWRQ==",
1546
+ "license": "MIT",
1547
+ "dependencies": {
1548
+ "@types/node": "*"
1549
+ }
1550
+ },
1531
1551
  "node_modules/@types/prop-types": {
1532
1552
  "version": "15.7.15",
1533
1553
  "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.15.tgz",
@@ -2970,6 +2990,12 @@
2970
2990
  "pathe": "^2.0.3"
2971
2991
  }
2972
2992
  },
2993
+ "node_modules/plantuml-encoder": {
2994
+ "version": "1.4.0",
2995
+ "resolved": "https://registry.npmjs.org/plantuml-encoder/-/plantuml-encoder-1.4.0.tgz",
2996
+ "integrity": "sha512-sxMwpDw/ySY1WB2CE3+IdMuEcWibJ72DDOsXLkSmEaSzwEUaYBT6DWgOfBiHGCux4q433X6+OEFWjlVqp7gL6g==",
2997
+ "license": "MIT"
2998
+ },
2973
2999
  "node_modules/points-on-curve": {
2974
3000
  "version": "0.2.0",
2975
3001
  "resolved": "https://registry.npmjs.org/points-on-curve/-/points-on-curve-0.2.0.tgz",
@@ -3231,6 +3257,12 @@
3231
3257
  "integrity": "sha512-9a4/uxlTWJ4+a5i0ooc1rU7C7YOw3wT+UGqdeNNHWnOF9qcMBgLRS+4IYUqbczewFx4mLEig6gawh7X6mFlEkA==",
3232
3258
  "license": "MIT"
3233
3259
  },
3260
+ "node_modules/undici-types": {
3261
+ "version": "7.16.0",
3262
+ "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.16.0.tgz",
3263
+ "integrity": "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==",
3264
+ "license": "MIT"
3265
+ },
3234
3266
  "node_modules/update-browserslist-db": {
3235
3267
  "version": "1.1.4",
3236
3268
  "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.4.tgz",
package/package.json CHANGED
@@ -1,11 +1,14 @@
1
1
  {
2
2
  "name": "@power-maverick/tool-erd-generator",
3
3
  "displayName": "ERD Generator",
4
- "version": "1.0.2",
4
+ "version": "1.0.4",
5
5
  "description": "Generate Entity Relationship Diagrams (ERD) for Dataverse solutions - React-based tool for PowerPlatform ToolBox",
6
6
  "cspExceptions": {
7
7
  "connect-src": [
8
8
  "https://www.plantuml.com"
9
+ ],
10
+ "frame-src": [
11
+ "https://viewer.diagrams.net/"
9
12
  ]
10
13
  },
11
14
  "type": "module",
@@ -30,8 +33,10 @@
30
33
  "author": "Power Maverick",
31
34
  "license": "GPL-2.0",
32
35
  "dependencies": {
36
+ "@types/plantuml-encoder": "^1.4.2",
33
37
  "axios": "^1.7.9",
34
38
  "mermaid": "^11.4.1",
39
+ "plantuml-encoder": "^1.4.0",
35
40
  "react": "^18.3.1",
36
41
  "react-dom": "^18.3.1"
37
42
  },