termdock 1.0.1 → 1.0.3

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 (73) hide show
  1. package/dist/client/assets/{abnfDiagram-VRR7QNED-Cf0p7Eu-.js → abnfDiagram-VRR7QNED-BVuFNukd.js} +1 -1
  2. package/dist/client/assets/{arc-yhaVxFBi.js → arc-JFOslCNs.js} +1 -1
  3. package/dist/client/assets/{architectureDiagram-ZJ3FMSHR-DV-OSXY6.js → architectureDiagram-ZJ3FMSHR-B-TyEAOJ.js} +1 -1
  4. package/dist/client/assets/{blockDiagram-677ZJIJ3-ZFSHeVvK.js → blockDiagram-677ZJIJ3-5ycSMMTY.js} +1 -1
  5. package/dist/client/assets/{c4Diagram-LMCZKHZV-Z7p1zkZ5.js → c4Diagram-LMCZKHZV-BvXzrvb_.js} +1 -1
  6. package/dist/client/assets/channel-Cnn-8i2b.js +1 -0
  7. package/dist/client/assets/{chunk-2Q5K7J3B-D03kywS-.js → chunk-2Q5K7J3B-00s3llQG.js} +1 -1
  8. package/dist/client/assets/{chunk-32BRIVSS-BPMnoBke.js → chunk-32BRIVSS-BJMhtTym.js} +1 -1
  9. package/dist/client/assets/{chunk-5VM5RSS4-Ca--vT5Q.js → chunk-5VM5RSS4-DedB9Vaa.js} +1 -1
  10. package/dist/client/assets/{chunk-EX3LRPZG-Bc42nIJ5.js → chunk-EX3LRPZG-DWGG3NoJ.js} +1 -1
  11. package/dist/client/assets/{chunk-JWPE2WC7-N1WKBcc5.js → chunk-JWPE2WC7-D34JiLTf.js} +1 -1
  12. package/dist/client/assets/{chunk-MOJQB5TN-BDc-GV5_.js → chunk-MOJQB5TN-D6Ywmh0z.js} +1 -1
  13. package/dist/client/assets/{chunk-RYQCIY6F-BpXNrVrz.js → chunk-RYQCIY6F-BH6yURdq.js} +1 -1
  14. package/dist/client/assets/{chunk-V7JOEXUC-BTlki_tC.js → chunk-V7JOEXUC-DBSqOhi7.js} +1 -1
  15. package/dist/client/assets/{chunk-VR4S4FIN-BXnHZWrK.js → chunk-VR4S4FIN-DzIaqkfm.js} +1 -1
  16. package/dist/client/assets/{chunk-XXDRQBXY-zy3DIq5F.js → chunk-XXDRQBXY-9iVmQCNp.js} +1 -1
  17. package/dist/client/assets/classDiagram-OUVF2IWQ-DiAxD67S.js +1 -0
  18. package/dist/client/assets/classDiagram-v2-EOCWNBFH-DiAxD67S.js +1 -0
  19. package/dist/client/assets/{cose-bilkent-JH36ORCC-DcE2Tqcn.js → cose-bilkent-JH36ORCC-1Yqlhf0s.js} +1 -1
  20. package/dist/client/assets/{cynefin-VYW2F7L2-CirPmVbw.js → cynefin-VYW2F7L2-DIvwKU3S.js} +1 -1
  21. package/dist/client/assets/{cynefinDiagram-TSTJHNR4-742hkNFA.js → cynefinDiagram-TSTJHNR4-C_tvEhnO.js} +1 -1
  22. package/dist/client/assets/{dagre-VKFMJZFB-Zmky1sDU.js → dagre-VKFMJZFB-BW6zPwqv.js} +1 -1
  23. package/dist/client/assets/{diagram-FQU43EPY-BAVYDJIF.js → diagram-FQU43EPY-BPdiUHXh.js} +1 -1
  24. package/dist/client/assets/{diagram-G47NLZAW--BZg7BJ2.js → diagram-G47NLZAW-DcSplQyb.js} +1 -1
  25. package/dist/client/assets/{diagram-NH7WQ7WH-7QMiGNb8.js → diagram-NH7WQ7WH-DJfc5gP9.js} +1 -1
  26. package/dist/client/assets/{diagram-OA4YK3LP-DTz1wt7W.js → diagram-OA4YK3LP-BMhJGhOv.js} +1 -1
  27. package/dist/client/assets/{diagram-WEI45ONY-IhWlLIuv.js → diagram-WEI45ONY-BfvX5Q8Q.js} +1 -1
  28. package/dist/client/assets/{ebnfDiagram-CCIWWBDH-CvudDgv1.js → ebnfDiagram-CCIWWBDH-CHXVkELN.js} +1 -1
  29. package/dist/client/assets/{erDiagram-Q63AITRT-BxxNWFA6.js → erDiagram-Q63AITRT-BsY8w4KG.js} +1 -1
  30. package/dist/client/assets/{flowDiagram-23GEKE2U-bDu_tMe8.js → flowDiagram-23GEKE2U-BkzZO16s.js} +1 -1
  31. package/dist/client/assets/{ganttDiagram-NO4QXBWP-B-EI33mG.js → ganttDiagram-NO4QXBWP-CYc_FSmb.js} +1 -1
  32. package/dist/client/assets/{gitGraphDiagram-IHSO6WYX-DBjjTP9W.js → gitGraphDiagram-IHSO6WYX-DZVYJm6Q.js} +1 -1
  33. package/dist/client/assets/{index-Cv7q4nZR.css → index-B1I3x8rE.css} +1 -1
  34. package/dist/client/assets/{index-Bi0L0Km4.js → index-DIbF-DRk.js} +40 -40
  35. package/dist/client/assets/{infoDiagram-FWYZ7A6U-DGjFR5qD.js → infoDiagram-FWYZ7A6U-Dnv8kWO8.js} +1 -1
  36. package/dist/client/assets/{ishikawaDiagram-FXEZZL3T-BHYp5v41.js → ishikawaDiagram-FXEZZL3T-2olMVSmL.js} +1 -1
  37. package/dist/client/assets/{journeyDiagram-5HDEW3XC-DKhoytdF.js → journeyDiagram-5HDEW3XC-B_GL15RA.js} +1 -1
  38. package/dist/client/assets/{kanban-definition-HUTT4EX6-ascD0XVf.js → kanban-definition-HUTT4EX6-B6_36kLK.js} +1 -1
  39. package/dist/client/assets/{linear-bkyU-Rlp.js → linear-CE3AYySp.js} +1 -1
  40. package/dist/client/assets/{mermaid.core-DAp1jSn7.js → mermaid.core-mNpsdXrC.js} +4 -4
  41. package/dist/client/assets/{mindmap-definition-LN4V7U3C-C2GC8yQl.js → mindmap-definition-LN4V7U3C-BRH7DD07.js} +1 -1
  42. package/dist/client/assets/{pegDiagram-2B236MQR-Z2ysn4Ju.js → pegDiagram-2B236MQR-CPWaVwbR.js} +1 -1
  43. package/dist/client/assets/{pieDiagram-ENE6RG2P-B1ae8akt.js → pieDiagram-ENE6RG2P-Dg488vOr.js} +1 -1
  44. package/dist/client/assets/{quadrantDiagram-ABIIQ3AL-CsjSqwMk.js → quadrantDiagram-ABIIQ3AL-X9TiKVp4.js} +1 -1
  45. package/dist/client/assets/{railroadDiagram-RFXS5EU6-MFxHHceB.js → railroadDiagram-RFXS5EU6-Dm_BeOAW.js} +1 -1
  46. package/dist/client/assets/{requirementDiagram-TGXJPOKE-2uwCBtHV.js → requirementDiagram-TGXJPOKE-lkU41AKk.js} +1 -1
  47. package/dist/client/assets/{sankeyDiagram-HTMAVEWB-D9kfU1GN.js → sankeyDiagram-HTMAVEWB-CltVgAob.js} +1 -1
  48. package/dist/client/assets/{sequenceDiagram-DBY2YBRQ-DpVoVgLp.js → sequenceDiagram-DBY2YBRQ-D65aOt87.js} +1 -1
  49. package/dist/client/assets/{sizeCapture-X5ZJPWSS-DaOWqq1e.js → sizeCapture-X5ZJPWSS-B_zcJ4qw.js} +1 -1
  50. package/dist/client/assets/{stateDiagram-2N3HPSRC-D2VX0Qzz.js → stateDiagram-2N3HPSRC-DMF21ttG.js} +1 -1
  51. package/dist/client/assets/stateDiagram-v2-6OUMAXLB-CUgSOIEq.js +1 -0
  52. package/dist/client/assets/{swimlanes-5IMT3BWC-DSaEdpIw.js → swimlanes-5IMT3BWC-t01s2riN.js} +2 -2
  53. package/dist/client/assets/swimlanesDiagram-G3AALYLV-DHbd0hST.js +8 -0
  54. package/dist/client/assets/{timeline-definition-FHXFAJF6-DPNbaxGI.js → timeline-definition-FHXFAJF6-DTvM_hB8.js} +1 -1
  55. package/dist/client/assets/{vennDiagram-L72KCM5P-UKbbBFUs.js → vennDiagram-L72KCM5P-BTXCVT1w.js} +1 -1
  56. package/dist/client/assets/{wardleyDiagram-EHGQE667-JUcWelHZ.js → wardleyDiagram-EHGQE667-DASx33Ug.js} +1 -1
  57. package/dist/client/assets/{xychartDiagram-FW5EYKEG-BCEj_jKY.js → xychartDiagram-FW5EYKEG-C6ZvW88N.js} +1 -1
  58. package/dist/client/index.html +2 -2
  59. package/dist/client/sw.js +1 -1
  60. package/dist/server/cli.js +14 -5
  61. package/dist/server/config.js +50 -4
  62. package/dist/server/routes/terminal.js +34 -15
  63. package/dist/server/utils/bootCheck.js +299 -0
  64. package/package.json +5 -3
  65. package/scripts/inspect-diff-trace.mjs +148 -0
  66. package/scripts/inspect-fs-io.mjs +107 -0
  67. package/scripts/patch-termdock-font.py +134 -0
  68. package/scripts/postinstall.mjs +148 -0
  69. package/dist/client/assets/channel-OEjXE69P.js +0 -1
  70. package/dist/client/assets/classDiagram-OUVF2IWQ-BqnMVXbr.js +0 -1
  71. package/dist/client/assets/classDiagram-v2-EOCWNBFH-BqnMVXbr.js +0 -1
  72. package/dist/client/assets/stateDiagram-v2-6OUMAXLB-Dm3WkZpy.js +0 -1
  73. package/dist/client/assets/swimlanesDiagram-G3AALYLV-DrnizR1A.js +0 -8
@@ -0,0 +1,134 @@
1
+ #!/usr/bin/env python3
2
+ from __future__ import annotations
3
+
4
+ import copy
5
+ import json
6
+ import sys
7
+ from pathlib import Path
8
+ from fontTools.ttLib import TTFont
9
+ from fontTools.ttLib.tables._g_l_y_f import Glyph, GlyphComponent
10
+
11
+ ROOT = Path(__file__).resolve().parents[1]
12
+ PATCH_FILE = ROOT / 'tools/font/termdock-glyph-patches.json'
13
+ FONT_DIR = ROOT / 'public/fonts'
14
+ WEIGHTS = ['Regular', 'Bold', 'Italic', 'BoldItalic']
15
+
16
+
17
+ def parse_cp(value: str) -> int:
18
+ return int(value.replace('U+', ''), 16)
19
+
20
+
21
+ def build_cmap(font: TTFont) -> dict[int, str]:
22
+ cmap: dict[int, str] = {}
23
+ for table in font['cmap'].tables:
24
+ cmap.update(table.cmap)
25
+ return cmap
26
+
27
+
28
+ def add_post_name(post, glyph_name: str) -> None:
29
+ if post and hasattr(post, 'extraNames') and hasattr(post, 'mapping'):
30
+ post.extraNames.append(glyph_name)
31
+ post.mapping[glyph_name] = glyph_name
32
+
33
+
34
+ def add_unicode_mapping(font: TTFont, codepoint: int, glyph_name: str) -> None:
35
+ for table in font['cmap'].tables:
36
+ if table.isUnicode():
37
+ table.cmap[codepoint] = glyph_name
38
+
39
+
40
+ def make_component(glyph_name: str, x: int, y: int, scale: float) -> GlyphComponent:
41
+ component = GlyphComponent()
42
+ component.glyphName = glyph_name
43
+ component.x = x
44
+ component.y = y
45
+ component.transform = ((scale, 0), (0, scale))
46
+ component.flags = 4
47
+ return component
48
+
49
+
50
+ def add_black_diamond_minus_white_x(font: TTFont, cmap: dict[int, str], glyph_order: list[str], post) -> int:
51
+ dst_cp = 0x2756
52
+ if dst_cp in cmap:
53
+ return 0
54
+ src_name = cmap.get(0x25C6)
55
+ if not src_name:
56
+ print('missing source U+25C6 for U+2756', file=sys.stderr)
57
+ return 0
58
+ dst_name = 'termdock_uni2756'
59
+ if dst_name in glyph_order:
60
+ return 0
61
+
62
+ glyph = Glyph()
63
+ glyph.numberOfContours = -1
64
+ # Four small black diamonds arranged around the center. The source diamond
65
+ # is 600 units wide; scale 0.34 keeps the composite visually distinct from
66
+ # U+25C6 while staying inside a single terminal cell.
67
+ scale = 0.34
68
+ glyph.components = [
69
+ make_component(src_name, 198, 436, scale),
70
+ make_component(src_name, 198, 100, scale),
71
+ make_component(src_name, 30, 268, scale),
72
+ make_component(src_name, 366, 268, scale),
73
+ ]
74
+ glyph_order.append(dst_name)
75
+ font['glyf'].glyphs[dst_name] = glyph
76
+ font['hmtx'].metrics[dst_name] = copy.deepcopy(font['hmtx'].metrics[src_name])
77
+ add_post_name(post, dst_name)
78
+ add_unicode_mapping(font, dst_cp, dst_name)
79
+ cmap[dst_cp] = dst_name
80
+ return 1
81
+
82
+
83
+ def patch_font(path: Path, aliases: dict[int, int]) -> int:
84
+ font = TTFont(path)
85
+ cmap = build_cmap(font)
86
+ glyph_order = font.getGlyphOrder()
87
+ glyf = font['glyf']
88
+ hmtx = font['hmtx']
89
+ post = font['post'] if 'post' in font else None
90
+ patched = add_black_diamond_minus_white_x(font, cmap, glyph_order, post)
91
+
92
+ for dst_cp, src_cp in aliases.items():
93
+ if dst_cp in cmap:
94
+ continue
95
+ src_name = cmap.get(src_cp)
96
+ if not src_name:
97
+ print(f'{path.name}: missing source U+{src_cp:04X}', file=sys.stderr)
98
+ continue
99
+ dst_name = f'termdock_uni{dst_cp:04X}'
100
+ if dst_name in glyph_order:
101
+ continue
102
+
103
+ glyph_order.append(dst_name)
104
+ glyf.glyphs[dst_name] = copy.deepcopy(glyf[src_name])
105
+ hmtx.metrics[dst_name] = copy.deepcopy(hmtx.metrics[src_name])
106
+ add_post_name(post, dst_name)
107
+ add_unicode_mapping(font, dst_cp, dst_name)
108
+ patched += 1
109
+
110
+ if patched:
111
+ font.setGlyphOrder(glyph_order)
112
+ font['maxp'].numGlyphs = len(glyph_order)
113
+ font.save(path)
114
+ return patched
115
+
116
+
117
+ def main() -> int:
118
+ config = json.loads(PATCH_FILE.read_text())
119
+ aliases = {parse_cp(k): parse_cp(v) for k, v in config.get('aliases', {}).items()}
120
+ total = 0
121
+ for weight in WEIGHTS:
122
+ path = FONT_DIR / f'JetBrainsMonoNLNerdFontMono-{weight}.ttf'
123
+ if not path.exists():
124
+ print(f'missing font: {path}', file=sys.stderr)
125
+ return 1
126
+ count = patch_font(path, aliases)
127
+ total += count
128
+ print(f'{path.name}: patched {count} glyphs')
129
+ print(f'total patched: {total}')
130
+ return 0
131
+
132
+
133
+ if __name__ == '__main__':
134
+ raise SystemExit(main())
@@ -0,0 +1,148 @@
1
+ #!/usr/bin/env node
2
+
3
+ /**
4
+ * Termdock postinstall — 确保原生模块可用 + 自动安装 tmux
5
+ *
6
+ * 对于 npm 全局安装 (npm i -g termdock) 的场景,npm 10+ 默认不运行
7
+ * lifecycle scripts。此时 postinstall 不会执行,但 cli.ts 启动时的
8
+ * bootCheck 会做同样的检查并写入 marker,确保首次启动时一切就绪。
9
+ */
10
+
11
+ import { execSync, spawnSync } from 'child_process';
12
+ import { createRequire } from 'module';
13
+ import fs from 'fs';
14
+ import os from 'os';
15
+ import path from 'path';
16
+
17
+ const require_ = createRequire(import.meta.url);
18
+ const pkgRoot = new URL('..', import.meta.url).pathname;
19
+
20
+ function run(cmd, opts = {}) {
21
+ console.log(` $ ${cmd}`);
22
+ return execSync(cmd, { stdio: 'inherit', ...opts });
23
+ }
24
+
25
+ function runOk(cmd, opts = {}) {
26
+ try { run(cmd, opts); return true; } catch { return false; }
27
+ }
28
+
29
+ function runQuiet(cmd, timeoutMs = 30_000) {
30
+ try {
31
+ const r = spawnSync(cmd, [], { shell: true, timeout: timeoutMs, encoding: 'utf-8', stdio: ['pipe', 'pipe', 'pipe'] });
32
+ return { ok: r.status === 0, stdout: r.stdout, stderr: r.stderr };
33
+ } catch {
34
+ return { ok: false, stdout: '', stderr: '' };
35
+ }
36
+ }
37
+
38
+ function which(bin) {
39
+ try { execSync(`command -v ${bin} 2>/dev/null`, { stdio: 'pipe' }); return true; } catch { /* not in PATH */ }
40
+ // macOS non-interactive SSH 的 PATH 不含 Homebrew,手动探测
41
+ const extraPaths = ['/opt/homebrew/bin', '/usr/local/bin', '/opt/local/bin'];
42
+ for (const dir of extraPaths) {
43
+ try { fs.accessSync(path.join(dir, bin), fs.constants.X_OK); return true; } catch { /* not here */ }
44
+ }
45
+ return false;
46
+ }
47
+
48
+ // —— native modules: 实际 spawn 测试,不只是 require ——
49
+ console.log('\n=== Rebuilding native modules ===');
50
+
51
+ const PTY_PATH = require_.resolve('node-pty/package.json', { paths: [pkgRoot] }).replace('/package.json', '');
52
+ function testPty() {
53
+ try {
54
+ const pty = require_(PTY_PATH);
55
+ const proc = pty.spawn(process.env.SHELL || '/bin/bash', [], { name: 'xterm', cols: 80, rows: 24 });
56
+ proc.kill();
57
+ return true;
58
+ } catch { return false; }
59
+ }
60
+
61
+ if (testPty()) {
62
+ console.log(' node-pty OK');
63
+ } else {
64
+ console.log(' node-pty needs rebuild (prebuilt binary incompatible with this OS/Node version)...');
65
+ runOk(`rm -rf ${PTY_PATH}/prebuilds/*`);
66
+ run(`cd ${PTY_PATH} && npx --yes node-gyp rebuild`, { timeout: 120_000 });
67
+ if (testPty()) {
68
+ console.log(' ✓ node-pty rebuilt successfully');
69
+ } else {
70
+ console.log(' ⚠ node-pty rebuild failed — terminal shell spawn may not work.');
71
+ }
72
+ }
73
+
74
+ // —— tmux ——
75
+ console.log('\n=== Checking tmux ===');
76
+ if (!which('tmux')) {
77
+ console.log(' tmux not found, attempting auto-install...');
78
+ const platform = process.platform;
79
+ let installed = false;
80
+
81
+ if (platform === 'darwin') {
82
+ // macOS: try brew → macports → nix, in that order
83
+ const brew = which('brew');
84
+ if (brew) {
85
+ installed = runOk('brew install tmux 2>&1', { timeout: 120_000 });
86
+ } else if (which('port')) {
87
+ installed = runOk('port install tmux 2>&1', { timeout: 120_000 });
88
+ } else if (which('nix-env')) {
89
+ installed = runOk('nix-env -iA nixpkgs.tmux 2>&1', { timeout: 120_000 });
90
+ } else {
91
+ console.log(' No package manager found (brew/port/nix).');
92
+ console.log(' Install Homebrew: https://brew.sh — then reinstall termdock.');
93
+ }
94
+ } else if (platform === 'linux') {
95
+ const managers = [
96
+ { bin: 'apt-get', cmd: 'apt-get install -y tmux', sudo: true },
97
+ { bin: 'dnf', cmd: 'dnf install -y tmux', sudo: true },
98
+ { bin: 'yum', cmd: 'yum install -y tmux', sudo: true },
99
+ { bin: 'apk', cmd: 'apk add tmux', sudo: false },
100
+ { bin: 'pacman', cmd: 'pacman -S --noconfirm tmux', sudo: true },
101
+ { bin: 'zypper', cmd: 'zypper install -y tmux', sudo: true },
102
+ ];
103
+ for (const m of managers) {
104
+ if (!which(m.bin)) continue;
105
+ const cmd = m.sudo ? `sudo ${m.cmd}` : m.cmd;
106
+ if (runOk(`${cmd} 2>&1`, { timeout: 120_000 })) {
107
+ installed = true;
108
+ break;
109
+ }
110
+ // retry without sudo
111
+ if (m.sudo && runOk(`${m.cmd} 2>&1`, { timeout: 120_000 })) {
112
+ installed = true;
113
+ break;
114
+ }
115
+ }
116
+ }
117
+
118
+ if (installed) {
119
+ console.log(' ✓ tmux installed');
120
+ } else {
121
+ console.log(' ⚠ tmux not available — shell mode will be used.');
122
+ console.log(' Termdock will check again on next start and try to fix automatically.');
123
+ }
124
+ } else {
125
+ const ver = execSync('tmux -V', { encoding: 'utf-8' }).trim();
126
+ console.log(` ✓ tmux ${ver}`);
127
+ }
128
+
129
+ // —— 写入 boot-check marker,避免 CLI 启动时重复检查 ——
130
+ // 只有 node-pty 和 tmux 都就绪才写 marker;否则 CLI 启动时 bootCheck 会补做
131
+ const markerDir = path.join(os.homedir(), '.termdock');
132
+ const markerFile = path.join(markerDir, '.boot-check-ok');
133
+ if (testPty() && which('tmux')) {
134
+ try {
135
+ fs.mkdirSync(markerDir, { recursive: true });
136
+ fs.writeFileSync(markerFile, JSON.stringify({
137
+ checkedAt: new Date().toISOString(),
138
+ source: 'postinstall',
139
+ nodePty: { ok: true, rebuilt: false },
140
+ tmux: { ok: true, version: execSync('tmux -V', { encoding: 'utf-8', stdio: ['pipe', 'pipe', 'pipe'] }).trim() },
141
+ }), 'utf-8');
142
+ } catch { /* non-critical */ }
143
+ } else {
144
+ console.log(' ℹ Boot check marker not written (some checks failed).');
145
+ console.log(' Termdock will re-check on first CLI start.');
146
+ }
147
+
148
+ console.log('\n✓ Termdock postinstall complete\n');
@@ -1 +0,0 @@
1
- import{U as a,C as n}from"./mermaid.core-DAp1jSn7.js";const t=(r,o)=>a.lang.round(n.parse(r)[o]);export{t as c};
@@ -1 +0,0 @@
1
- import{s as a,a as s,c as t,C as e}from"./chunk-V7JOEXUC-BTlki_tC.js";import{b as i}from"./mermaid.core-DAp1jSn7.js";import"./chunk-5VM5RSS4-Ca--vT5Q.js";import"./chunk-XXDRQBXY-zy3DIq5F.js";import"./chunk-VR4S4FIN-BXnHZWrK.js";import"./chunk-32BRIVSS-BPMnoBke.js";import"./purify.es-CC4Brkr_.js";import"./index-Bi0L0Km4.js";import"./react-XDCjal2T.js";import"./dnd-BCFAPC0L.js";import"./terminal-C7X98Amf.js";var g={parser:t,get db(){return new e},renderer:s,styles:a,init:i(r=>{r.class||(r.class={}),r.class.arrowMarkerAbsolute=r.arrowMarkerAbsolute},"init")};export{g as diagram};
@@ -1 +0,0 @@
1
- import{s as a,a as s,c as t,C as e}from"./chunk-V7JOEXUC-BTlki_tC.js";import{b as i}from"./mermaid.core-DAp1jSn7.js";import"./chunk-5VM5RSS4-Ca--vT5Q.js";import"./chunk-XXDRQBXY-zy3DIq5F.js";import"./chunk-VR4S4FIN-BXnHZWrK.js";import"./chunk-32BRIVSS-BPMnoBke.js";import"./purify.es-CC4Brkr_.js";import"./index-Bi0L0Km4.js";import"./react-XDCjal2T.js";import"./dnd-BCFAPC0L.js";import"./terminal-C7X98Amf.js";var g={parser:t,get db(){return new e},renderer:s,styles:a,init:i(r=>{r.class||(r.class={}),r.class.arrowMarkerAbsolute=r.arrowMarkerAbsolute},"init")};export{g as diagram};
@@ -1 +0,0 @@
1
- import{b as r,a as e,s as a,S as i}from"./chunk-EX3LRPZG-Bc42nIJ5.js";import{b as s}from"./mermaid.core-DAp1jSn7.js";import"./chunk-XXDRQBXY-zy3DIq5F.js";import"./chunk-VR4S4FIN-BXnHZWrK.js";import"./chunk-32BRIVSS-BPMnoBke.js";import"./purify.es-CC4Brkr_.js";import"./index-Bi0L0Km4.js";import"./react-XDCjal2T.js";import"./dnd-BCFAPC0L.js";import"./terminal-C7X98Amf.js";var g={parser:a,get db(){return new i(2)},renderer:e,styles:r,init:s(t=>{t.state||(t.state={}),t.state.arrowMarkerAbsolute=t.arrowMarkerAbsolute},"init")};export{g as diagram};
@@ -1,8 +0,0 @@
1
- import{c as r,s as e}from"./flowDiagram-23GEKE2U-bDu_tMe8.js";import{b as o}from"./mermaid.core-DAp1jSn7.js";import"./chunk-5VM5RSS4-Ca--vT5Q.js";import"./chunk-XXDRQBXY-zy3DIq5F.js";import"./chunk-VR4S4FIN-BXnHZWrK.js";import"./chunk-32BRIVSS-BPMnoBke.js";import"./purify.es-CC4Brkr_.js";import"./channel-OEjXE69P.js";import"./index-Bi0L0Km4.js";import"./react-XDCjal2T.js";import"./dnd-BCFAPC0L.js";import"./terminal-C7X98Amf.js";var a=o(t=>`${e(t)}
2
- .swimlane.cluster rect {
3
- stroke: ${t.clusterBorder} !important;
4
- }
5
- [data-look="neo"].cluster rect {
6
- filter: none;
7
- }
8
- `,"getStyles"),m=a,v=r({defaultLayout:"swimlane",styles:m});export{v as diagram};