mulmoterminal 9.8.0 → 9.9.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 (105) hide show
  1. package/README.md +9 -3
  2. package/common/mdPreviewMessage.ts +5 -2
  3. package/dist/assets/{abnfDiagram-YUKMZFIV-zyG-UwYd.js → abnfDiagram-YUKMZFIV-DSIHQLCR.js} +1 -1
  4. package/dist/assets/{architecture-WOLXFQ4H-BwusCnuP.js → architecture-WOLXFQ4H-CuaFde5g.js} +1 -1
  5. package/dist/assets/{architectureDiagram-47P4ROYG-D7YcR9bo.js → architectureDiagram-47P4ROYG-DM9sjzl3.js} +1 -1
  6. package/dist/assets/{blockDiagram-E7TT5TSB-BtcdxO-7.js → blockDiagram-E7TT5TSB-DJWoD4kH.js} +1 -1
  7. package/dist/assets/{c4Diagram-CRA5TL53-B43k6MD-.js → c4Diagram-CRA5TL53-BdKZm-Qq.js} +1 -1
  8. package/dist/assets/channel-BylLlugM.js +1 -0
  9. package/dist/assets/{chunk-2BW5OAIV-BikeK-tv.js → chunk-2BW5OAIV-Pm-SjVYY.js} +1 -1
  10. package/dist/assets/{chunk-3YJQHVM4-n_iFO7n9.js → chunk-3YJQHVM4-CRHtGa8R.js} +1 -1
  11. package/dist/assets/{chunk-4EA7E6EY-Bpd0X581.js → chunk-4EA7E6EY-BEApBMtM.js} +1 -1
  12. package/dist/assets/{chunk-7TKQ45FW-RYNhINxL.js → chunk-7TKQ45FW-kpEnChvL.js} +1 -1
  13. package/dist/assets/{chunk-AW2ZBBNX-B0kfmjxC.js → chunk-AW2ZBBNX-4pHfKBsS.js} +1 -1
  14. package/dist/assets/{chunk-DBDB3WZW-w_bcBN1W.js → chunk-DBDB3WZW-Ujmi2ugS.js} +1 -1
  15. package/dist/assets/{chunk-E2ZNV5FY-X_CIqRj0.js → chunk-E2ZNV5FY-Bjpe59na.js} +1 -1
  16. package/dist/assets/{chunk-EU5HNXII-Cfa4b4Ay.js → chunk-EU5HNXII-CUXlDfPl.js} +1 -1
  17. package/dist/assets/{chunk-FVRAUYC3-XlrFmQ3o.js → chunk-FVRAUYC3-CpO1mJeh.js} +1 -1
  18. package/dist/assets/{chunk-HJ2JQQFS-E2ACvaz_.js → chunk-HJ2JQQFS-B9bCVfI7.js} +1 -1
  19. package/dist/assets/{chunk-HTAEGDNF-DTs2QEx8.js → chunk-HTAEGDNF-Dx2Qegto.js} +1 -1
  20. package/dist/assets/{chunk-KQW6MTUR-X8wNtPpU.js → chunk-KQW6MTUR-Da2aP601.js} +1 -1
  21. package/dist/assets/{chunk-NTY3LDVX-ORfE1UBr.js → chunk-NTY3LDVX-B912Szqv.js} +1 -1
  22. package/dist/assets/{chunk-VPRB5NB3-D5XLjvK4.js → chunk-VPRB5NB3-Dj20tFqN.js} +1 -1
  23. package/dist/assets/{chunk-XC4XBNZT-BvGzBZPH.js → chunk-XC4XBNZT-C7bFqTbJ.js} +1 -1
  24. package/dist/assets/{classDiagram-v2-K4WV4PDN-BE-qvlHc.js → classDiagram-v2-K4WV4PDN-B80F0KMA.js} +1 -1
  25. package/dist/assets/{cynefin-EF2NZ3EQ-BKBTwgXe.js → cynefin-EF2NZ3EQ-Bl7z6XCQ.js} +1 -1
  26. package/dist/assets/{cynefinDiagram-3GCD6N5R-CKCyyusT.js → cynefinDiagram-3GCD6N5R-qAHmVOUq.js} +1 -1
  27. package/dist/assets/{dagre-W4DXFKR2-CrvQCcNs.js → dagre-W4DXFKR2-B1MePpen.js} +1 -1
  28. package/dist/assets/{diagram-2UJZ2QOL-BfuvyxKl.js → diagram-2UJZ2QOL-ADSKiSqD.js} +1 -1
  29. package/dist/assets/{diagram-OVF4WLC6-BlsFqIDA.js → diagram-OVF4WLC6-D1taTzkW.js} +1 -1
  30. package/dist/assets/{diagram-PFPMY2P6-KMg4O3dg.js → diagram-PFPMY2P6-ph8x3PQF.js} +1 -1
  31. package/dist/assets/{diagram-UMYRVEAY-BSv1unB1.js → diagram-UMYRVEAY-BDVPufMW.js} +1 -1
  32. package/dist/assets/{diagram-YEKJPTXX-B7WTTWbt.js → diagram-YEKJPTXX-BHD8Za4y.js} +1 -1
  33. package/dist/assets/{diagram-ZIFT7M5P-C8dZN40w.js → diagram-ZIFT7M5P-D7QtA_t6.js} +1 -1
  34. package/dist/assets/{dist-DNrC7Sfg.js → dist-9ZQ2gQ7P.js} +1 -1
  35. package/dist/assets/{dist-Bu2N1hwl.js → dist-B1VHyamY.js} +1 -1
  36. package/dist/assets/{dist-DlwkuoPy.js → dist-BefB7e6h.js} +1 -1
  37. package/dist/assets/{dist-BNEKXPjn.js → dist-CZR1xmq0.js} +1 -1
  38. package/dist/assets/{dist-CCniXtSX.js → dist-Cl-feCtf.js} +1 -1
  39. package/dist/assets/{ebnfDiagram-VR2GEFS7-BbxerigQ.js → ebnfDiagram-VR2GEFS7-wD98lTRG.js} +1 -1
  40. package/dist/assets/{elk-IJKZMXRS-ChPwdCGe.js → elk-IJKZMXRS-K4Xjl1d0.js} +1 -1
  41. package/dist/assets/{erDiagram-O2IAPWRE-CigEy4yu.js → erDiagram-O2IAPWRE-BjY7jKnV.js} +1 -1
  42. package/dist/assets/{eventmodeling-K75KTNOO-B32Bu2sN.js → eventmodeling-K75KTNOO-Bl9tIhky.js} +1 -1
  43. package/dist/assets/flowDiagram-OXPTDLAJ-BhH6Qffp.js +1 -0
  44. package/dist/assets/{ganttDiagram-R7TSEDQI-dwflw4hr.js → ganttDiagram-R7TSEDQI-BO9_wwDf.js} +1 -1
  45. package/dist/assets/{gitGraph-VSP46ZUC-BYvcplIB.js → gitGraph-VSP46ZUC-CRffKQOo.js} +1 -1
  46. package/dist/assets/{gitGraphDiagram-XJZIOB7I-NaChIo_6.js → gitGraphDiagram-XJZIOB7I-CpDXt3PU.js} +1 -1
  47. package/dist/assets/{index-Ih0Hpbd3.js → index-CfuHlPQc.js} +308 -308
  48. package/dist/assets/{info-OHQRW6UA-Bo-6QiYF.js → info-OHQRW6UA-DyRgl8N3.js} +1 -1
  49. package/dist/assets/{infoDiagram-5W2HQ5XZ-CcFB0zb6.js → infoDiagram-5W2HQ5XZ-BvWFfUM-.js} +1 -1
  50. package/dist/assets/{ishikawaDiagram-K3B6WC7H-wFxp7r4t.js → ishikawaDiagram-K3B6WC7H-DwF0XWsM.js} +1 -1
  51. package/dist/assets/{journeyDiagram-COXZFDF6-BbgSfrK1.js → journeyDiagram-COXZFDF6-D1FJOSbZ.js} +1 -1
  52. package/dist/assets/{kanban-definition-P3RFRI5V-tYnV1hcm.js → kanban-definition-P3RFRI5V-qlKFzV9L.js} +1 -1
  53. package/dist/assets/{line-688aaVUi.js → line-IvDbfjKz.js} +1 -1
  54. package/dist/assets/{manifold-DOZl2Db1.js → manifold-DAOw2XRD.js} +1 -1
  55. package/dist/assets/{mermaid-parser.core-DiToV0T2.js → mermaid-parser.core-DeUDbmOb.js} +3 -3
  56. package/dist/assets/{mermaid.core-sfP_Moc8.js → mermaid.core-BnT3wMwo.js} +4 -4
  57. package/dist/assets/{mindmap-definition-LZFPQGKD-CUmLGDDU.js → mindmap-definition-LZFPQGKD-CdNBxDve.js} +1 -1
  58. package/dist/assets/{packet-JDAUHWVQ-BktXnTxs.js → packet-JDAUHWVQ-B0iC5abl.js} +1 -1
  59. package/dist/assets/{pegDiagram-BGZESJAR-DBJaifuJ.js → pegDiagram-BGZESJAR-C53izYN4.js} +1 -1
  60. package/dist/assets/{pie-XZMESJXO-MURsT4zt.js → pie-XZMESJXO-BbVP9D3i.js} +1 -1
  61. package/dist/assets/{pieDiagram-CAPJLFHJ-KBFNH84K.js → pieDiagram-CAPJLFHJ-BWSp3Fdb.js} +1 -1
  62. package/dist/assets/{quadrantDiagram-GDMTTRAM-aDafcz0K.js → quadrantDiagram-GDMTTRAM-KD8tGY8h.js} +1 -1
  63. package/dist/assets/{radar-ABXABTNO-XGaGSfaF.js → radar-ABXABTNO-C1ORJck5.js} +1 -1
  64. package/dist/assets/{railroad-I3PHUGI6-Bd6qibct.js → railroad-I3PHUGI6-D8kJJPjo.js} +1 -1
  65. package/dist/assets/{railroad-abnf-LNEFI6M7-DkNaL9yO.js → railroad-abnf-LNEFI6M7-B02NcKpn.js} +1 -1
  66. package/dist/assets/{railroad-ebnf-DWYD2UWJ-DvmAcd2K.js → railroad-ebnf-DWYD2UWJ-DbqSfby_.js} +1 -1
  67. package/dist/assets/{railroad-peg-JR7BVNR7-DWuSf601.js → railroad-peg-JR7BVNR7-BXFfYbex.js} +1 -1
  68. package/dist/assets/{railroadDiagram-SM67HX2B-B8HY7NzY.js → railroadDiagram-SM67HX2B-BdawA9C9.js} +1 -1
  69. package/dist/assets/{requirementDiagram-X7JNWC4A-BBGNhdvl.js → requirementDiagram-X7JNWC4A-qX9lrcTt.js} +1 -1
  70. package/dist/assets/{sankeyDiagram-UM26HJRW-B4-2hhw-.js → sankeyDiagram-UM26HJRW-Bi5VbC4v.js} +1 -1
  71. package/dist/assets/{sequenceDiagram-ZO4K6R2Y-CAY2xE1t.js → sequenceDiagram-ZO4K6R2Y-D8W3uMWv.js} +1 -1
  72. package/dist/assets/{stateDiagram-v2-TBUQTH76-D5m-VWbn.js → stateDiagram-v2-TBUQTH76-BhizBx7d.js} +1 -1
  73. package/dist/assets/{swimlanes-N4OXWK64-DmIZnn74.js → swimlanes-N4OXWK64-DP1M8V93.js} +1 -1
  74. package/dist/assets/swimlanesDiagram-K3J5GTZL-B7CmMqE3.js +8 -0
  75. package/dist/assets/{timeline-definition-YOQAKGHF-Cjl0wxDv.js → timeline-definition-YOQAKGHF-CH0r5I0Z.js} +1 -1
  76. package/dist/assets/{treeView-D4JQ5SDB-D7Z4S83c.js → treeView-D4JQ5SDB-BvVkUXwP.js} +1 -1
  77. package/dist/assets/{treemap-SAJKECNS-C4cCpscM.js → treemap-SAJKECNS-DRvUI9Pf.js} +1 -1
  78. package/dist/assets/{usecaseDiagram-VIAY4XPW-DirA4YUo.js → usecaseDiagram-VIAY4XPW-DJDMbQlz.js} +1 -1
  79. package/dist/assets/{vennDiagram-BLWOH2XV-Ci5neqkK.js → vennDiagram-BLWOH2XV-DqLka6D7.js} +1 -1
  80. package/dist/assets/{wardley-7MLQ67FV-Civq_iI8.js → wardley-7MLQ67FV-D5SVGI-w.js} +1 -1
  81. package/dist/assets/{wardleyDiagram-YMQ3BMBF-BrfWXnX6.js → wardleyDiagram-YMQ3BMBF-BYqM69ek.js} +1 -1
  82. package/dist/assets/{xychartDiagram-TAQBALBS-HRI4eeDt.js → xychartDiagram-TAQBALBS-Bcay5SsS.js} +1 -1
  83. package/dist/index.html +1 -1
  84. package/docs/ChangeLog.md +16 -0
  85. package/docs/facts.json +2 -2
  86. package/docs/guide/en/feature-list.md +2 -1
  87. package/docs/guide/en/features.md +3 -2
  88. package/docs/guide/en/getting-started.md +6 -1
  89. package/docs/guide/en/index.md +2 -2
  90. package/docs/guide/en/v9.9.0.md +69 -0
  91. package/docs/guide/ja/feature-list.md +2 -1
  92. package/docs/guide/ja/features.md +1 -1
  93. package/docs/guide/ja/getting-started.md +6 -2
  94. package/docs/guide/ja/index.md +2 -2
  95. package/docs/guide/ja/v9.9.0.md +69 -0
  96. package/package.json +2 -1
  97. package/server/files/files-browse.ts +31 -13
  98. package/server/files/mdPreviewReporter.ts +3 -0
  99. package/server/files/mermaidAssets.ts +69 -0
  100. package/server/files/previewMermaid.ts +109 -0
  101. package/server/infra/process/tmux.ts +5 -0
  102. package/server/skills/mulmoterminal-bug-report/SKILL.md +1 -1
  103. package/dist/assets/channel-DDSLBPGW.js +0 -1
  104. package/dist/assets/flowDiagram-OXPTDLAJ-nRr_qH4E.js +0 -1
  105. package/dist/assets/swimlanesDiagram-K3J5GTZL-kvijIHBW.js +0 -8
package/README.md CHANGED
@@ -172,7 +172,7 @@ than as bytes (files within the session's working directory only):
172
172
 
173
173
  | A clicked … | opens as |
174
174
  |---|---|
175
- | `.md` `.markdown` | **rendered** markdown in a new tab — the same sandboxed `…/md` HTML the Files preview renders, minus the one script the preview needs to report where you are reading. It follows your system light/dark setting, since under the sandbox CSP it can't ask the app which theme is on |
175
+ | `.md` `.markdown` | **rendered** markdown in a new tab — the same sandboxed `…/md` HTML the Files preview renders, minus the scripts the preview needs (the one that reports where you are reading, and the one that draws mermaid diagrams — so a mermaid fence stays a code block here). It follows your system light/dark setting, since under the sandbox CSP it can't ask the app which theme is on |
176
176
  | `.json` | **indented** in a new tab (Chrome and Safari otherwise show one long line) |
177
177
  | `.csv` `.tsv` | a **table** in a new tab, with a sticky header that scrolls inside its own box |
178
178
  | source, config, logs, and `.txt` — 46 extensions | the app's own **Files** view (`/files?path=`), where CodeMirror highlights it, the tree is right there, and it can be edited |
@@ -286,7 +286,7 @@ Needs **Node ≥ 22.12**, plus these CLIs — on your `PATH`, or named by the ma
286
286
  | **Required** | `git` | [worktree isolation](#git-worktrees--pull-requests), each cell's branch / unsaved-dot / diff readout, the PR footer | `brew install git` · `sudo apt install git` · `sudo dnf install git` · Windows: [git-scm.com](https://git-scm.com/download/win) |
287
287
  | **Required** | `gh` | the cross-repo **PRs & Issues** view and one-click PR creation — it uses your `gh` login, so no token is stored | [cli.github.com](https://cli.github.com), then `gh auth login` |
288
288
  | Optional | `glab` | the same for **GitLab** projects (#981) — gitlab.com, and a self-hosted instance you declare in `gitlabHosts` (#1332). Same arrangement: the CLI holds the credentials, this app stores no token | `brew install glab`, then `glab auth login` (self-hosted: `glab auth login --hostname gitlab.example.com`) |
289
- | Recommended | `tmux` | [session persistence](#session-persistence-tmux) — terminals survive a server restart | `brew install tmux` · `sudo apt install tmux` · `sudo dnf install tmux` · no native Windows build (falls back to plain PTYs) |
289
+ | Recommended | `tmux` — the **latest release** (3.8 as of 2026-10-10); older ones are not supported | [session persistence](#session-persistence-tmux) — terminals survive a server restart | `brew install tmux` · `sudo apt install tmux` · `sudo dnf install tmux` · no native Windows build (falls back to plain PTYs) |
290
290
  | Optional | any other agent CLI | a cell can run **Codex**, **Antigravity** (`agy`), **Grok**, **Muse**, **GitHub Copilot CLI** or **Cursor CLI** instead of Claude — install only the ones you use, and a missing one simply fails to start that cell. What each can do is [the capability matrix](docs/agent-capability-matrix.md); how to install and pick one is the [agents guide](https://receptron.github.io/mulmoterminal/guide/en/agents.html) | e.g. `npm i -g @openai/codex` |
291
291
  | Optional | `ffmpeg` | video rendering from the [mulmo-script panel](#wiki-collections--the-gui-panel) (its plugin ships enabled) | `brew install ffmpeg` · `sudo apt install ffmpeg` · `sudo dnf install ffmpeg` |
292
292
  | Optional | `remotion` packages | MulmoCast's `remotion` beats, where Claude Code writes each scene as a Remotion component (mulmocast 2.13.0). Not a dependency of this app: install them yourself, into your home directory so an `npx` upgrade does not lose them — `init` reports whether mulmocast can see them | [Remotion scenes](https://receptron.github.io/mulmoterminal/guide/en/mulmocast.html#remotion) · [日本語](https://receptron.github.io/mulmoterminal/guide/ja/mulmocast.html#remotion) |
@@ -693,6 +693,11 @@ sudo apt install tmux # Debian / Ubuntu
693
693
  sudo dnf install tmux # Fedora
694
694
  ```
695
695
 
696
+ Use the **latest tmux release** (3.8 as of 2026-10-10); older versions are not supported. Some
697
+ things MulmoTerminal asks tmux for, such as restoring bracketed paste after a reload, need 3.7 or
698
+ newer. A distribution's package is often older, so check `tmux -V` and take a newer build from
699
+ [tmux releases](https://github.com/tmux/tmux/releases) when it is.
700
+
696
701
  On Windows there's no native tmux, so sessions use the non-persistent fallback — run the
697
702
  server under **WSL** if you want persistence. Nothing else is required: MulmoTerminal
698
703
  detects `tmux` on `PATH` at startup and uses it automatically when present.
@@ -1296,7 +1301,8 @@ rooted at **that terminal's project directory** — so after Claude says "wrote
1296
1301
  you can jump straight there to read or edit it. The left pane is a lazy-loaded directory
1297
1302
  tree; clicking a file opens it in a **CodeMirror** editor (Markdown / JS-TS / JSON
1298
1303
  highlighting, everything else as plain text). Markdown files get a **Preview** toggle
1299
- that renders via the server's sandboxed `…/md` HTML; a `.csv` / `.tsv` previews as a table (the
1304
+ that renders via the server's sandboxed `…/md` HTML, with a ` ```mermaid ` fence drawn as a diagram
1305
+ (its code block stays under it, folded, so the copy button is still there); a `.csv` / `.tsv` previews as a table (the
1300
1306
  same `…/table` document a clicked path opens, in the app's colours), and an `.html` / `.svg` as the
1301
1307
  page or picture it is. **Save** (or ⌘/Ctrl-S) writes back. **History** lists the versions the pane
1302
1308
  kept of the file (in `~/.mulmoterminal/backups`, taken when it is opened or reloaded here and before a save
@@ -79,13 +79,16 @@ export interface MdPreviewHostMessage {
79
79
  scrollY: number;
80
80
  /** The accessible name for the code blocks' copy buttons, in the app's language (#2615). */
81
81
  codeCopyLabel?: string;
82
+ /** What the disclosure under a rendered diagram is called (#2991). */
83
+ diagramSourceLabel?: string;
82
84
  }
83
85
 
84
- /** A new name for the code blocks' copy buttons: the app's language changed while this document was
85
- * open (the first name comes with the answer to `ready`). */
86
+ /** New names for the code blocks' copy buttons and the diagrams' source disclosures: the app's
87
+ * language changed while this document was open (the first names come with the answer to `ready`). */
86
88
  export interface MdPreviewLabelMessage {
87
89
  source: typeof MD_PREVIEW_FROM_HOST;
88
90
  codeCopyLabel: string;
91
+ diagramSourceLabel: string;
89
92
  }
90
93
 
91
94
  /** Take the reader to a heading (#2576): the `heading`-th one in the document (0-based) when it reads
@@ -1 +1 @@
1
- import{m as e,t}from"./mermaid-parser.core-DiToV0T2.js";import{n}from"./chunk-Y2CYZVJY-DsF7k-Jl.js";import{m as r}from"./src-JH1jZ6Eh.js";import"./chunk-VPRB5NB3-D5XLjvK4.js";import{n as i,r as a,t as o}from"./chunk-AW2ZBBNX-B0kfmjxC.js";import{t as s}from"./chunk-JWPE2WC7-DVXcaiue.js";import"./mermaid.core-sfP_Moc8.js";var c=e().RailroadAbnf.parser.LangiumParser,l=n(e=>{let t=e.alternatives.map(u);return t.length===1?t[0]:{type:`choice`,alternatives:t}},`transformAlternation`),u=n(e=>{let t=e.elements.map(f);return t.length===1?t[0]:{type:`sequence`,elements:t}},`transformConcatenation`),d=n(e=>{if(e.includes(`*`)){let[t,n]=e.split(`*`);return{min:t?parseInt(t,10):0,max:n?parseInt(n,10):1/0}}let t=parseInt(e,10);return{min:t,max:t}},`parseRepeat`),f=n(e=>{let t=p(e.primary);if(!e.repeat)return t;let{min:n,max:r}=d(e.repeat);return n===0&&r===1?{type:`optional`,element:t}:{type:`repetition`,element:t,min:n,max:r}},`transformElement`),p=n(e=>{switch(e.$type){case`AbnfStringLiteral`:return{type:`terminal`,value:e.value};case`AbnfNumVal`:return{type:`terminal`,value:e.value};case`AbnfRuleName`:return{type:`nonterminal`,name:e.name};case`AbnfGroup`:return l(e.element);case`AbnfOptionalGroup`:return{type:`optional`,element:l(e.element)};default:throw Error(`Unsupported ABNF primary node: ${e.$type}`)}},`transformPrimary`),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(`[ABNF 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(`[ABNF Parser] Parsed rules:`,i.rules.length),h(i),r.debug(`[ABNF Parser] Parse complete`)},`parse`),parser:{yy:o}},db:o,renderer:a,styles:i};export{g as diagram};
1
+ import{m as e,t}from"./mermaid-parser.core-DeUDbmOb.js";import{n}from"./chunk-Y2CYZVJY-DsF7k-Jl.js";import{m as r}from"./src-JH1jZ6Eh.js";import"./chunk-VPRB5NB3-Dj20tFqN.js";import{n as i,r as a,t as o}from"./chunk-AW2ZBBNX-4pHfKBsS.js";import{t as s}from"./chunk-JWPE2WC7-DVXcaiue.js";import"./mermaid.core-BnT3wMwo.js";var c=e().RailroadAbnf.parser.LangiumParser,l=n(e=>{let t=e.alternatives.map(u);return t.length===1?t[0]:{type:`choice`,alternatives:t}},`transformAlternation`),u=n(e=>{let t=e.elements.map(f);return t.length===1?t[0]:{type:`sequence`,elements:t}},`transformConcatenation`),d=n(e=>{if(e.includes(`*`)){let[t,n]=e.split(`*`);return{min:t?parseInt(t,10):0,max:n?parseInt(n,10):1/0}}let t=parseInt(e,10);return{min:t,max:t}},`parseRepeat`),f=n(e=>{let t=p(e.primary);if(!e.repeat)return t;let{min:n,max:r}=d(e.repeat);return n===0&&r===1?{type:`optional`,element:t}:{type:`repetition`,element:t,min:n,max:r}},`transformElement`),p=n(e=>{switch(e.$type){case`AbnfStringLiteral`:return{type:`terminal`,value:e.value};case`AbnfNumVal`:return{type:`terminal`,value:e.value};case`AbnfRuleName`:return{type:`nonterminal`,name:e.name};case`AbnfGroup`:return l(e.element);case`AbnfOptionalGroup`:return{type:`optional`,element:l(e.element)};default:throw Error(`Unsupported ABNF primary node: ${e.$type}`)}},`transformPrimary`),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(`[ABNF 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(`[ABNF Parser] Parsed rules:`,i.rules.length),h(i),r.debug(`[ABNF Parser] Parse complete`)},`parse`),parser:{yy:o}},db:o,renderer:a,styles:i};export{g as diagram};
@@ -1 +1 @@
1
- import"./chunk-NGNAAXSQ-C2Wy9Xmz.js";export{M as createArchitectureServices}from"./mermaid-parser.core-DiToV0T2.js";
1
+ import"./chunk-NGNAAXSQ-C2Wy9Xmz.js";export{M as createArchitectureServices}from"./mermaid-parser.core-DeUDbmOb.js";