@diffohq/diffo 0.6.0 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (102) hide show
  1. package/README.md +80 -200
  2. package/dist/cli.mjs +2678 -310
  3. package/dist/client/assets/{abnfDiagram-O67JEVCF-vILxBZcB.js → abnfDiagram-O67JEVCF-BUIFF3Lv.js} +1 -1
  4. package/dist/client/assets/{arc-KM37zfEu.js → arc-x6Ulf5MI.js} +1 -1
  5. package/dist/client/assets/architecture-7GRP2DOG-Cx2ezWq8.js +1 -0
  6. package/dist/client/assets/{architectureDiagram-NJMV4G6O-CCe24XcA.js → architectureDiagram-NJMV4G6O-D25O1A2B.js} +1 -1
  7. package/dist/client/assets/{blockDiagram-BEXU5L5S-GL2esJ0w.js → blockDiagram-BEXU5L5S-Dy7P3IZw.js} +1 -1
  8. package/dist/client/assets/{c4Diagram-YGBWAQC7-BcRujrvs.js → c4Diagram-YGBWAQC7-BnE5HTw4.js} +1 -1
  9. package/dist/client/assets/channel-IK-3bv-L.js +1 -0
  10. package/dist/client/assets/{chunk-3FUC2YCW-Gj4X9KK9.js → chunk-3FUC2YCW-6C72_i5n.js} +2 -2
  11. package/dist/client/assets/{chunk-5DYCD2WN-DZs-erj_.js → chunk-5DYCD2WN-B0IgEc5I.js} +1 -1
  12. package/dist/client/assets/{chunk-742MDFTN-Db1JJZ9G.js → chunk-742MDFTN-BNLZzbxp.js} +1 -1
  13. package/dist/client/assets/{chunk-7INBJB4K-B_wqJ7Xn.js → chunk-7INBJB4K-K1DkKka3.js} +1 -1
  14. package/dist/client/assets/{chunk-7M6MHVWA-DuALBizw.js → chunk-7M6MHVWA-B-KIWC1T.js} +1 -1
  15. package/dist/client/assets/{chunk-7PRAP22T-D9QvZUm3.js → chunk-7PRAP22T-DR6CzDYx.js} +1 -1
  16. package/dist/client/assets/{chunk-GTNCS2PH-JFHsSpPU.js → chunk-GTNCS2PH-BWkvnYRd.js} +1 -1
  17. package/dist/client/assets/{chunk-GWA4HPMP-CX_60U9Y.js → chunk-GWA4HPMP-l8NLPoZc.js} +1 -1
  18. package/dist/client/assets/{chunk-MBY4JIJT-BVqUStmy.js → chunk-MBY4JIJT-k1mwME9y.js} +1 -1
  19. package/dist/client/assets/{chunk-NETBCI7D-BoSm0O5f.js → chunk-NETBCI7D-DV1F8c_R.js} +1 -1
  20. package/dist/client/assets/{chunk-O7XYJQB3-DG64mbS_.js → chunk-O7XYJQB3-Bb8gIxaB.js} +1 -1
  21. package/dist/client/assets/{chunk-UA2S7LBM-BL039fcM.js → chunk-UA2S7LBM-BL7m6fd_.js} +1 -1
  22. package/dist/client/assets/{chunk-WEXAMYUT-BPFyuzbi.js → chunk-WEXAMYUT-CAnQv1qY.js} +1 -1
  23. package/dist/client/assets/{chunk-XXDRQBXY-BzCs4oPB.js → chunk-XXDRQBXY-DooI1miH.js} +1 -1
  24. package/dist/client/assets/{chunk-Z7XXMR3K-D9UN9ldM.js → chunk-Z7XXMR3K-DPVaCcdM.js} +1 -1
  25. package/dist/client/assets/{chunk-ZIGJFQKS-D47UlTiy.js → chunk-ZIGJFQKS-Bz4IWpFy.js} +1 -1
  26. package/dist/client/assets/{classDiagram-v2-NBCMYWYE-CXeBds6Z.js → classDiagram-v2-NBCMYWYE-Dso7ogb5.js} +1 -1
  27. package/dist/client/assets/{core-De6Bel6T.js → core-Dy-hJrbg.js} +1 -1
  28. package/dist/client/assets/{cose-bilkent-JH36ORCC-C5C9BMn5.js → cose-bilkent-JH36ORCC-Baj8S6bg.js} +1 -1
  29. package/dist/client/assets/{cynefin-OW5HDTMX-TQm3krMs.js → cynefin-OW5HDTMX-BkA1ccYX.js} +1 -1
  30. package/dist/client/assets/{cynefinDiagram-VND7K2PF-D9L1g2S1.js → cynefinDiagram-VND7K2PF-nyK9OZGN.js} +1 -1
  31. package/dist/client/assets/{dagre-6A5THRUB-D9iVd0tg.js → dagre-6A5THRUB-BP_dyQLS.js} +1 -1
  32. package/dist/client/assets/{diagram-22UHCM2B-CD_1yZgj.js → diagram-22UHCM2B-BIt_aIJx.js} +1 -1
  33. package/dist/client/assets/{diagram-3UASUU5V-BLiXkub3.js → diagram-3UASUU5V-UX2eUwyi.js} +1 -1
  34. package/dist/client/assets/{diagram-ATOU4E4O-CnXY0tjf.js → diagram-ATOU4E4O-CEYK5oZO.js} +1 -1
  35. package/dist/client/assets/{diagram-CDSNMT55-BBnDsrf_.js → diagram-CDSNMT55-4uIYrmGp.js} +1 -1
  36. package/dist/client/assets/{diagram-MLGK6HIB-BUiu4OKD.js → diagram-MLGK6HIB-5BGrc92k.js} +1 -1
  37. package/dist/client/assets/{diagram-MPIPVDR6-DiI9FWeO.js → diagram-MPIPVDR6-0BG375Nf.js} +1 -1
  38. package/dist/client/assets/{dist-Co85aeoI.js → dist-hfzhbdYS.js} +1 -1
  39. package/dist/client/assets/{dist-BWYGCgdo.js → dist-uIEEXDIm.js} +1 -1
  40. package/dist/client/assets/{ebnfDiagram-ZINNZB2B-Bg_BLedv.js → ebnfDiagram-ZINNZB2B-CnAveRvy.js} +1 -1
  41. package/dist/client/assets/{elk-276RUBZZ-BO7Zoa7U.js → elk-276RUBZZ-CejJ0q5w.js} +1 -1
  42. package/dist/client/assets/{engine-oniguruma-DCFwTJLE.js → engine-oniguruma-BpOI5GVJ.js} +1 -1
  43. package/dist/client/assets/{erDiagram-OPXOYQCR-DjBak3Ld.js → erDiagram-OPXOYQCR-Lg3_iVkX.js} +1 -1
  44. package/dist/client/assets/eventmodeling-NTZA5JFV-Dh34QIVY.js +1 -0
  45. package/dist/client/assets/flowDiagram-KWPJA3E3-Bcos9jHd.js +1 -0
  46. package/dist/client/assets/{ganttDiagram-FUAMR5RP-CEn0Np5L.js → ganttDiagram-FUAMR5RP-D5nJpDg8.js} +1 -1
  47. package/dist/client/assets/{gitGraph-4MIJSDKK-DVMdaaG2.js → gitGraph-4MIJSDKK-BLNIFBUu.js} +1 -1
  48. package/dist/client/assets/{gitGraphDiagram-X574FWY7-B6ZkiY7u.js → gitGraphDiagram-X574FWY7-YHwgA3VE.js} +1 -1
  49. package/dist/client/assets/index-CE0LasmM.css +1 -0
  50. package/dist/client/assets/index-DYt1d3uP.js +93 -0
  51. package/dist/client/assets/{info-A6RAGUB7-Idt2RahI.js → info-A6RAGUB7-Bfa8ErwC.js} +1 -1
  52. package/dist/client/assets/{infoDiagram-VRGFBTTK-CA8T3csq.js → infoDiagram-VRGFBTTK-Dzp_xQpV.js} +1 -1
  53. package/dist/client/assets/{ishikawaDiagram-OU5B5YK6-DcgLwVJX.js → ishikawaDiagram-OU5B5YK6-Hun-xe-t.js} +1 -1
  54. package/dist/client/assets/{journeyDiagram-ZHPQQLJL-_AVEW5aE.js → journeyDiagram-ZHPQQLJL-CT5fXqj_.js} +1 -1
  55. package/dist/client/assets/{kanban-definition-PNTS6WVX-CZ2gNo-B.js → kanban-definition-PNTS6WVX-kFYcpsMx.js} +1 -1
  56. package/dist/client/assets/{line-CHew3ngr.js → line-Cda_OIfO.js} +1 -1
  57. package/dist/client/assets/{linear-Baz1Hb3u.js → linear-CDQGk4q-.js} +1 -1
  58. package/dist/client/assets/{mermaid-parser.core-D2BrkwRE.js → mermaid-parser.core-CCoRJPAh.js} +3 -3
  59. package/dist/client/assets/{mermaid.core-CCFlYVgY.js → mermaid.core-SnjyC0ZV.js} +4 -4
  60. package/dist/client/assets/{mindmap-definition-NLK3R4M7-BXG9w5sC.js → mindmap-definition-NLK3R4M7-C3oLUr5b.js} +1 -1
  61. package/dist/client/assets/{packet-AYTQ26CC-BOvg32Rh.js → packet-AYTQ26CC-BT6BgV6a.js} +1 -1
  62. package/dist/client/assets/{pegDiagram-GJSIUBJH-COukdq7o.js → pegDiagram-GJSIUBJH-OT5BsfLg.js} +1 -1
  63. package/dist/client/assets/{pie-WAS4IAKB-ChHsdIQV.js → pie-WAS4IAKB-Bou89QXR.js} +1 -1
  64. package/dist/client/assets/{pieDiagram-5QR66LMP-Deng5oun.js → pieDiagram-5QR66LMP-AzEtJfJu.js} +1 -1
  65. package/dist/client/assets/{quadrantDiagram-O4NWA36T-DmEJ83mR.js → quadrantDiagram-O4NWA36T-BUKCkyd7.js} +1 -1
  66. package/dist/client/assets/{radar-RG4KPBEZ-YxcXBiXc.js → radar-RG4KPBEZ-D77V4y6h.js} +1 -1
  67. package/dist/client/assets/{railroad-74A4TZTK-RkYX7A2D.js → railroad-74A4TZTK-CIYb8bnG.js} +1 -1
  68. package/dist/client/assets/railroad-abnf-HS5TGJTU-OVikttJY.js +1 -0
  69. package/dist/client/assets/railroad-ebnf-LZEXJU2U-DPAI1fGw.js +1 -0
  70. package/dist/client/assets/railroad-peg-WCYAUIDC-CcsZpvwt.js +1 -0
  71. package/dist/client/assets/{railroadDiagram-XR7U4H2S-uj5HQbYy.js → railroadDiagram-XR7U4H2S-DhUQyIW9.js} +1 -1
  72. package/dist/client/assets/{requirementDiagram-PLB6GJNP-C_QtkIlI.js → requirementDiagram-PLB6GJNP-5HRstoAa.js} +1 -1
  73. package/dist/client/assets/{sankeyDiagram-IPEJSGJF-BfxM5TKv.js → sankeyDiagram-IPEJSGJF-sNbgZbEH.js} +1 -1
  74. package/dist/client/assets/{sequenceDiagram-PO4LG4MO-DXflg1u_.js → sequenceDiagram-PO4LG4MO-B_vIrQ3k.js} +1 -1
  75. package/dist/client/assets/sizeCapture-INFHLROL-3uHXrFqA.js +1 -0
  76. package/dist/client/assets/{src-YTrwJCk8.js → src-BWz11yEV.js} +1 -1
  77. package/dist/client/assets/{stateDiagram-v2-GCMORJYK-BjDmED1Q.js → stateDiagram-v2-GCMORJYK-BnRt6hQF.js} +1 -1
  78. package/dist/client/assets/{swimlanes-2SLR337P-BAvnQ6KT.js → swimlanes-2SLR337P-CLlJdLDU.js} +1 -1
  79. package/dist/client/assets/swimlanesDiagram-TC7HE7FX-D6iEiuTl.js +8 -0
  80. package/dist/client/assets/{timeline-definition-EJHVYXUP-BYemcgr1.js → timeline-definition-EJHVYXUP-sXwAwUmH.js} +1 -1
  81. package/dist/client/assets/{treeView-Q6P3EWNA-CsuBtqLq.js → treeView-Q6P3EWNA-BmhLEMPr.js} +1 -1
  82. package/dist/client/assets/{treemap-WGGIJYW6-DUk1Z6g4.js → treemap-WGGIJYW6-D_PGkPFQ.js} +1 -1
  83. package/dist/client/assets/{usecaseDiagram-POWQR4AR-j1nHXvyL.js → usecaseDiagram-POWQR4AR-GARihMJS.js} +1 -1
  84. package/dist/client/assets/{vennDiagram-UO4OBE2U-B5eUL-dD.js → vennDiagram-UO4OBE2U-DXSYoTtG.js} +1 -1
  85. package/dist/client/assets/{wardley-WFR3VGLG-1YjpwPJM.js → wardley-WFR3VGLG-Caebv6bl.js} +1 -1
  86. package/dist/client/assets/{wardleyDiagram-VNRHLVJA-C7laBq5A.js → wardleyDiagram-VNRHLVJA-BnFa4EKC.js} +1 -1
  87. package/dist/client/assets/{xychartDiagram-PMCCYNJV-BkYPx-ts.js → xychartDiagram-PMCCYNJV-XS2BbOyB.js} +1 -1
  88. package/dist/client/index.html +2 -2
  89. package/package.json +4 -2
  90. package/plugin.json +3 -3
  91. package/skills/diffo/SKILL.md +7 -4
  92. package/dist/client/assets/architecture-7GRP2DOG-DzlmD0Wj.js +0 -1
  93. package/dist/client/assets/channel-BffjfVqs.js +0 -1
  94. package/dist/client/assets/eventmodeling-NTZA5JFV-BA4dpxhq.js +0 -1
  95. package/dist/client/assets/flowDiagram-KWPJA3E3-BXSGu0Q5.js +0 -1
  96. package/dist/client/assets/index-6w3rS9cw.js +0 -91
  97. package/dist/client/assets/index-D934d4yh.css +0 -1
  98. package/dist/client/assets/railroad-abnf-HS5TGJTU-CYF7Z2Wu.js +0 -1
  99. package/dist/client/assets/railroad-ebnf-LZEXJU2U-CqV11tet.js +0 -1
  100. package/dist/client/assets/railroad-peg-WCYAUIDC-CPusJj6I.js +0 -1
  101. package/dist/client/assets/sizeCapture-INFHLROL-B0uUizjq.js +0 -1
  102. package/dist/client/assets/swimlanesDiagram-TC7HE7FX-CbFPwcec.js +0 -8
@@ -1 +1 @@
1
- import{r as e}from"./index-6w3rS9cw.js";var t=Math.abs,n=Math.atan2,r=Math.cos,i=Math.max,a=Math.min,o=Math.sin,s=Math.sqrt,c=1e-12,l=Math.PI,u=l/2,d=2*l;function f(e){return e>1?0:e<-1?l:Math.acos(e)}function p(e){return e>=1?u:e<=-1?-u:Math.asin(e)}var m=e((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.BLANK_URL=e.relativeFirstCharacters=e.whitespaceEscapeCharsRegex=e.urlSchemeRegex=e.ctrlCharactersRegex=e.htmlCtrlEntityRegex=e.htmlEntitiesRegex=e.invalidProtocolRegex=void 0,e.invalidProtocolRegex=/^([^\w]*)(javascript|data|vbscript)/im,e.htmlEntitiesRegex=/&#(\w+)(^\w|;)?/g,e.htmlCtrlEntityRegex=/&(newline|tab);/gi,e.ctrlCharactersRegex=/[\u0000-\u001F\u007F-\u009F\u2000-\u200D\uFEFF]/gim,e.urlSchemeRegex=/^.+(:|&colon;)/gim,e.whitespaceEscapeCharsRegex=/(\\|%5[cC])((%(6[eE]|72|74))|[nrt])/g,e.relativeFirstCharacters=[`.`,`/`],e.BLANK_URL=`about:blank`})),h=e((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.sanitizeUrl=o;var t=m();function n(e){return t.relativeFirstCharacters.indexOf(e[0])>-1}function r(e){return e.replace(t.ctrlCharactersRegex,``).replace(t.htmlEntitiesRegex,function(e,t){return String.fromCharCode(t)})}function i(e){return URL.canParse(e)}function a(e){try{return decodeURIComponent(e)}catch{return e}}function o(e){if(!e)return t.BLANK_URL;var o,s=a(e.trim());do s=r(s).replace(t.htmlCtrlEntityRegex,``).replace(t.ctrlCharactersRegex,``).replace(t.whitespaceEscapeCharsRegex,``).trim(),s=a(s),o=s.match(t.ctrlCharactersRegex)||s.match(t.htmlEntitiesRegex)||s.match(t.htmlCtrlEntityRegex)||s.match(t.whitespaceEscapeCharsRegex);while(o&&o.length>0);var c=s;if(!c)return t.BLANK_URL;if(n(c))return c;var l=c.trimStart(),u=l.match(t.urlSchemeRegex);if(!u)return c;var d=u[0].toLowerCase().trim();if(t.invalidProtocolRegex.test(d))return t.BLANK_URL;var f=l.replace(/\\/g,`/`);if(d===`mailto:`||d.includes(`://`))return f;if(d===`http:`||d===`https:`){if(!i(f))return t.BLANK_URL;var p=new URL(f);return p.protocol=p.protocol.toLowerCase(),p.hostname=p.hostname.toLowerCase(),p.toString()}return f}}));export{n as a,u as c,l as d,o as f,p as i,i as l,d as m,t as n,r as o,s as p,f as r,c as s,h as t,a as u};
1
+ import{r as e}from"./index-DYt1d3uP.js";var t=Math.abs,n=Math.atan2,r=Math.cos,i=Math.max,a=Math.min,o=Math.sin,s=Math.sqrt,c=1e-12,l=Math.PI,u=l/2,d=2*l;function f(e){return e>1?0:e<-1?l:Math.acos(e)}function p(e){return e>=1?u:e<=-1?-u:Math.asin(e)}var m=e((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.BLANK_URL=e.relativeFirstCharacters=e.whitespaceEscapeCharsRegex=e.urlSchemeRegex=e.ctrlCharactersRegex=e.htmlCtrlEntityRegex=e.htmlEntitiesRegex=e.invalidProtocolRegex=void 0,e.invalidProtocolRegex=/^([^\w]*)(javascript|data|vbscript)/im,e.htmlEntitiesRegex=/&#(\w+)(^\w|;)?/g,e.htmlCtrlEntityRegex=/&(newline|tab);/gi,e.ctrlCharactersRegex=/[\u0000-\u001F\u007F-\u009F\u2000-\u200D\uFEFF]/gim,e.urlSchemeRegex=/^.+(:|&colon;)/gim,e.whitespaceEscapeCharsRegex=/(\\|%5[cC])((%(6[eE]|72|74))|[nrt])/g,e.relativeFirstCharacters=[`.`,`/`],e.BLANK_URL=`about:blank`})),h=e((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.sanitizeUrl=o;var t=m();function n(e){return t.relativeFirstCharacters.indexOf(e[0])>-1}function r(e){return e.replace(t.ctrlCharactersRegex,``).replace(t.htmlEntitiesRegex,function(e,t){return String.fromCharCode(t)})}function i(e){return URL.canParse(e)}function a(e){try{return decodeURIComponent(e)}catch{return e}}function o(e){if(!e)return t.BLANK_URL;var o,s=a(e.trim());do s=r(s).replace(t.htmlCtrlEntityRegex,``).replace(t.ctrlCharactersRegex,``).replace(t.whitespaceEscapeCharsRegex,``).trim(),s=a(s),o=s.match(t.ctrlCharactersRegex)||s.match(t.htmlEntitiesRegex)||s.match(t.htmlCtrlEntityRegex)||s.match(t.whitespaceEscapeCharsRegex);while(o&&o.length>0);var c=s;if(!c)return t.BLANK_URL;if(n(c))return c;var l=c.trimStart(),u=l.match(t.urlSchemeRegex);if(!u)return c;var d=u[0].toLowerCase().trim();if(t.invalidProtocolRegex.test(d))return t.BLANK_URL;var f=l.replace(/\\/g,`/`);if(d===`mailto:`||d.includes(`://`))return f;if(d===`http:`||d===`https:`){if(!i(f))return t.BLANK_URL;var p=new URL(f);return p.protocol=p.protocol.toLowerCase(),p.hostname=p.hostname.toLowerCase(),p.toString()}return f}}));export{n as a,u as c,l as d,o as f,p as i,i as l,d as m,t as n,r as o,s as p,f as r,c as s,h as t,a as u};
@@ -1 +1 @@
1
- import{f as e,t}from"./mermaid-parser.core-D2BrkwRE.js";import{n}from"./chunk-Y2CYZVJY-DsF7k-Jl.js";import{m as r}from"./src-YTrwJCk8.js";import"./chunk-O7XYJQB3-DG64mbS_.js";import{n as i,r as a,t as o}from"./chunk-GTNCS2PH-JFHsSpPU.js";import{t as s}from"./chunk-JWPE2WC7-DVXcaiue.js";import"./mermaid.core-CCFlYVgY.js";var c=e().RailroadEbnf.parser.LangiumParser,l=n(e=>{let t=e.alternatives.map(u);return t.length===1?t[0]:{type:`choice`,alternatives:t}},`transformChoice`),u=n(e=>{let t=e.elements.map(p);return t.length===1?t[0]:{type:`sequence`,elements:t}},`transformSequence`),d=n(e=>{switch(e.$type){case`EbnfTerminal`:return{type:`terminal`,value:e.value};case`EbnfNonTerminal`:return{type:`nonterminal`,name:e.name};case`EbnfSpecial`:return{type:`special`,text:e.text};case`EbnfGroup`:return l(e.element);case`EbnfOptional`:return{type:`optional`,element:l(e.element)};case`EbnfRepetition`:return{type:`repetition`,element:l(e.element),min:0,max:1/0};default:throw Error(`Unsupported EBNF primary node: ${e.$type}`)}},`transformPrimary`),f=n((e,t)=>{switch(t.$type){case`EbnfOptionalPostfix`:return{type:`optional`,element:e};case`EbnfZeroOrMorePostfix`:return{type:`repetition`,element:e,min:0,max:1/0};case`EbnfOneOrMorePostfix`:return{type:`repetition`,element:e,min:1,max:1/0};case`EbnfExceptionPostfix`:return{type:`sequence`,elements:[e,{type:`terminal`,value:`-`},d(t.except)]};default:throw Error(`Unsupported EBNF postfix node: ${t.$type}`)}},`transformPostfix`),p=n(e=>e.postfixes.reduce((e,t)=>f(e,t),d(e.base)),`transformTerm`),m=n(e=>({name:e.name,definition:l(e.definition)}),`transformRule`),h=n(e=>{s(e,o),e.title&&o.setTitle(e.title),e.rules.map(e=>o.addRule(m(e)))},`populateDb`),g={parser:{parse:n(e=>{o.clear(),r.debug(`[EBNF Parser] Starting Langium parse`);let n=c.parse(e);if(n.lexerErrors.length>0||n.parserErrors.length>0)throw new t(n);let i=n.value;r.debug(`[EBNF Parser] Parsed rules:`,i.rules.length),h(i),r.debug(`[EBNF Parser] Parse complete`)},`parse`),parser:{yy:o}},db:o,renderer:a,styles:i};export{g as diagram};
1
+ import{f as e,t}from"./mermaid-parser.core-CCoRJPAh.js";import{n}from"./chunk-Y2CYZVJY-DsF7k-Jl.js";import{m as r}from"./src-BWz11yEV.js";import"./chunk-O7XYJQB3-Bb8gIxaB.js";import{n as i,r as a,t as o}from"./chunk-GTNCS2PH-BWkvnYRd.js";import{t as s}from"./chunk-JWPE2WC7-DVXcaiue.js";import"./mermaid.core-SnjyC0ZV.js";var c=e().RailroadEbnf.parser.LangiumParser,l=n(e=>{let t=e.alternatives.map(u);return t.length===1?t[0]:{type:`choice`,alternatives:t}},`transformChoice`),u=n(e=>{let t=e.elements.map(p);return t.length===1?t[0]:{type:`sequence`,elements:t}},`transformSequence`),d=n(e=>{switch(e.$type){case`EbnfTerminal`:return{type:`terminal`,value:e.value};case`EbnfNonTerminal`:return{type:`nonterminal`,name:e.name};case`EbnfSpecial`:return{type:`special`,text:e.text};case`EbnfGroup`:return l(e.element);case`EbnfOptional`:return{type:`optional`,element:l(e.element)};case`EbnfRepetition`:return{type:`repetition`,element:l(e.element),min:0,max:1/0};default:throw Error(`Unsupported EBNF primary node: ${e.$type}`)}},`transformPrimary`),f=n((e,t)=>{switch(t.$type){case`EbnfOptionalPostfix`:return{type:`optional`,element:e};case`EbnfZeroOrMorePostfix`:return{type:`repetition`,element:e,min:0,max:1/0};case`EbnfOneOrMorePostfix`:return{type:`repetition`,element:e,min:1,max:1/0};case`EbnfExceptionPostfix`:return{type:`sequence`,elements:[e,{type:`terminal`,value:`-`},d(t.except)]};default:throw Error(`Unsupported EBNF postfix node: ${t.$type}`)}},`transformPostfix`),p=n(e=>e.postfixes.reduce((e,t)=>f(e,t),d(e.base)),`transformTerm`),m=n(e=>({name:e.name,definition:l(e.definition)}),`transformRule`),h=n(e=>{s(e,o),e.title&&o.setTitle(e.title),e.rules.map(e=>o.addRule(m(e)))},`populateDb`),g={parser:{parse:n(e=>{o.clear(),r.debug(`[EBNF Parser] Starting Langium parse`);let n=c.parse(e);if(n.lexerErrors.length>0||n.parserErrors.length>0)throw new t(n);let i=n.value;r.debug(`[EBNF Parser] Parsed rules:`,i.rules.length),h(i),r.debug(`[EBNF Parser] Parse complete`)},`parse`),parser:{yy:o}},db:o,renderer:a,styles:i};export{g as diagram};