termdock 1.4.62 → 1.4.64
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.
- package/dist/client/assets/{ModelPreview-BDTSPbCF.js → ModelPreview-DfJtKWqI.js} +1 -1
- package/dist/client/assets/{abnfDiagram-VRR7QNED-CAu_hg7c.js → abnfDiagram-VRR7QNED-Bhl45iKa.js} +1 -1
- package/dist/client/assets/{arc-CHoxCQ9M.js → arc-CXzPWl1D.js} +1 -1
- package/dist/client/assets/{architectureDiagram-ZJ3FMSHR-CZ6f_2QE.js → architectureDiagram-ZJ3FMSHR-Dpmtk6tO.js} +1 -1
- package/dist/client/assets/{blockDiagram-677ZJIJ3-Bv31XD0Y.js → blockDiagram-677ZJIJ3-C3bVkOFH.js} +1 -1
- package/dist/client/assets/{c4Diagram-LMCZKHZV-CbvFS0E3.js → c4Diagram-LMCZKHZV-BT8PqFq4.js} +1 -1
- package/dist/client/assets/channel--Q6esyEo.js +1 -0
- package/dist/client/assets/{chunk-2Q5K7J3B-fkJhcKJe.js → chunk-2Q5K7J3B-DzMgigoq.js} +1 -1
- package/dist/client/assets/{chunk-32BRIVSS-ASy_kn1Q.js → chunk-32BRIVSS-C1PG2qs6.js} +1 -1
- package/dist/client/assets/{chunk-5VM5RSS4-jKWgukTV.js → chunk-5VM5RSS4-CayJHoIA.js} +1 -1
- package/dist/client/assets/{chunk-EX3LRPZG-BsU84N74.js → chunk-EX3LRPZG-DDjbUN6O.js} +1 -1
- package/dist/client/assets/{chunk-JWPE2WC7-DuSLoY3a.js → chunk-JWPE2WC7-C_EKFmRP.js} +1 -1
- package/dist/client/assets/{chunk-MOJQB5TN-BF48VL9H.js → chunk-MOJQB5TN-CcYdB9PE.js} +1 -1
- package/dist/client/assets/{chunk-RYQCIY6F-D3vDlHqn.js → chunk-RYQCIY6F-BQP9jmdn.js} +1 -1
- package/dist/client/assets/{chunk-V7JOEXUC-6I9pSdPz.js → chunk-V7JOEXUC-C2pS3vRt.js} +1 -1
- package/dist/client/assets/{chunk-VR4S4FIN-Ch11-N5j.js → chunk-VR4S4FIN-8In6-9Qf.js} +1 -1
- package/dist/client/assets/{chunk-XXDRQBXY-BIb1tw_7.js → chunk-XXDRQBXY-jCCYuptW.js} +1 -1
- package/dist/client/assets/classDiagram-OUVF2IWQ-0cdGWE2s.js +1 -0
- package/dist/client/assets/classDiagram-v2-EOCWNBFH-0cdGWE2s.js +1 -0
- package/dist/client/assets/{cose-bilkent-JH36ORCC-D8lYjazw.js → cose-bilkent-JH36ORCC-iAWMW8bs.js} +1 -1
- package/dist/client/assets/{cynefin-VYW2F7L2-Bc0eIZYm.js → cynefin-VYW2F7L2-BrbjGT5C.js} +1 -1
- package/dist/client/assets/{cynefinDiagram-TSTJHNR4-BAz3FdRx.js → cynefinDiagram-TSTJHNR4-CUFBCMN-.js} +1 -1
- package/dist/client/assets/{dagre-VKFMJZFB-B_0dGYYN.js → dagre-VKFMJZFB-B319wkqM.js} +1 -1
- package/dist/client/assets/{diagram-FQU43EPY-7L8ux61A.js → diagram-FQU43EPY-Bm_itYpI.js} +1 -1
- package/dist/client/assets/{diagram-G47NLZAW-8Mi66cMd.js → diagram-G47NLZAW-9zHQEqrg.js} +1 -1
- package/dist/client/assets/{diagram-NH7WQ7WH-55DGqMOU.js → diagram-NH7WQ7WH-h3yBuHL0.js} +1 -1
- package/dist/client/assets/{diagram-OA4YK3LP-DEJ9m7oJ.js → diagram-OA4YK3LP-zqtkebys.js} +1 -1
- package/dist/client/assets/{diagram-WEI45ONY-C28SBaXQ.js → diagram-WEI45ONY-AsWtqDig.js} +1 -1
- package/dist/client/assets/{diffWorker-BFIcKxCt.js → diffWorker-BkTpUrZP.js} +1 -1
- package/dist/client/assets/{ebnfDiagram-CCIWWBDH-BECYVpbv.js → ebnfDiagram-CCIWWBDH-BdSTFJZu.js} +1 -1
- package/dist/client/assets/{erDiagram-Q63AITRT-Dkh3H3ie.js → erDiagram-Q63AITRT-rVCfIZXH.js} +1 -1
- package/dist/client/assets/{flowDiagram-23GEKE2U-BkfTSLo5.js → flowDiagram-23GEKE2U-DHUMWyNo.js} +1 -1
- package/dist/client/assets/{ganttDiagram-NO4QXBWP-D4obwYe7.js → ganttDiagram-NO4QXBWP-Bqzahf7S.js} +1 -1
- package/dist/client/assets/{gitGraphDiagram-IHSO6WYX-1aMgSj3S.js → gitGraphDiagram-IHSO6WYX-DMjrAEmJ.js} +1 -1
- package/dist/client/assets/index-C0iaCCaa.css +1 -0
- package/dist/client/assets/index-Dkm6fiec.js +443 -0
- package/dist/client/assets/{infoDiagram-FWYZ7A6U-xX8UDEi1.js → infoDiagram-FWYZ7A6U-CBjDRNdz.js} +1 -1
- package/dist/client/assets/{ishikawaDiagram-FXEZZL3T-8bqf3Ors.js → ishikawaDiagram-FXEZZL3T-zowOovE6.js} +1 -1
- package/dist/client/assets/{journeyDiagram-5HDEW3XC-C7yXJZ5_.js → journeyDiagram-5HDEW3XC-7QmvHN4-.js} +1 -1
- package/dist/client/assets/{kanban-definition-HUTT4EX6-BWupGjQV.js → kanban-definition-HUTT4EX6-P1YNTyyd.js} +1 -1
- package/dist/client/assets/{linear-LmdweLng.js → linear-ZBOMifL2.js} +1 -1
- package/dist/client/assets/{mermaid.core-BRemT3yR.js → mermaid.core-C8PP0x2D.js} +4 -4
- package/dist/client/assets/{mindmap-definition-LN4V7U3C-JmWZytgf.js → mindmap-definition-LN4V7U3C-BFekLDOt.js} +1 -1
- package/dist/client/assets/{pegDiagram-2B236MQR-B4R12j75.js → pegDiagram-2B236MQR-DEx_Ypk3.js} +1 -1
- package/dist/client/assets/{pieDiagram-ENE6RG2P-d9Ic9klc.js → pieDiagram-ENE6RG2P-Cgb7WXHi.js} +1 -1
- package/dist/client/assets/{quadrantDiagram-ABIIQ3AL-DqTO7M7e.js → quadrantDiagram-ABIIQ3AL-Dq9hHorv.js} +1 -1
- package/dist/client/assets/{railroadDiagram-RFXS5EU6-CZLau6C1.js → railroadDiagram-RFXS5EU6-CAwoaYhH.js} +1 -1
- package/dist/client/assets/{requirementDiagram-TGXJPOKE-BDhs_EMc.js → requirementDiagram-TGXJPOKE-0VYqXW8J.js} +1 -1
- package/dist/client/assets/{sankeyDiagram-HTMAVEWB-BmIRbU7w.js → sankeyDiagram-HTMAVEWB-BkXMeDtc.js} +1 -1
- package/dist/client/assets/{sequenceDiagram-DBY2YBRQ-ClU3BtoU.js → sequenceDiagram-DBY2YBRQ-BSXbnt7Z.js} +1 -1
- package/dist/client/assets/{sizeCapture-X5ZJPWSS-BSa31mTs.js → sizeCapture-X5ZJPWSS-WKAdB506.js} +1 -1
- package/dist/client/assets/{stateDiagram-2N3HPSRC-CC4LUy8C.js → stateDiagram-2N3HPSRC-ByLk4ivK.js} +1 -1
- package/dist/client/assets/stateDiagram-v2-6OUMAXLB-BfmQkL9E.js +1 -0
- package/dist/client/assets/{swimlanes-5IMT3BWC-3-NO7kgB.js → swimlanes-5IMT3BWC-E6NEqgvm.js} +2 -2
- package/dist/client/assets/swimlanesDiagram-G3AALYLV-xpq54HDx.js +8 -0
- package/dist/client/assets/{timeline-definition-FHXFAJF6-D1Dc09tG.js → timeline-definition-FHXFAJF6-DnufzvE8.js} +1 -1
- package/dist/client/assets/{vennDiagram-L72KCM5P-CX_5iKy8.js → vennDiagram-L72KCM5P-DNFyJ2Zk.js} +1 -1
- package/dist/client/assets/{wardleyDiagram-EHGQE667-DP1OxeEc.js → wardleyDiagram-EHGQE667-Xl7XH83b.js} +1 -1
- package/dist/client/assets/{xychartDiagram-FW5EYKEG-DhvY57L0.js → xychartDiagram-FW5EYKEG-B8fKOD5L.js} +1 -1
- package/dist/client/index.html +2 -2
- package/dist/client/sw.js +1 -1
- package/dist/server/routes/filesystem.js +73 -0
- package/dist/server/utils/hunkApply.js +211 -0
- package/package.json +1 -1
- package/runtime-manifest.json +2 -2
- package/dist/client/assets/channel-3BzqENds.js +0 -1
- package/dist/client/assets/classDiagram-OUVF2IWQ-B_cHyH9n.js +0 -1
- package/dist/client/assets/classDiagram-v2-EOCWNBFH-B_cHyH9n.js +0 -1
- package/dist/client/assets/index-CQww3DgN.js +0 -438
- package/dist/client/assets/index-D6WADEgm.css +0 -1
- package/dist/client/assets/stateDiagram-v2-6OUMAXLB-uAAXxU7b.js +0 -1
- package/dist/client/assets/swimlanesDiagram-G3AALYLV-DzVhfWNk.js +0 -8
|
@@ -0,0 +1,211 @@
|
|
|
1
|
+
import { spawn } from 'child_process';
|
|
2
|
+
export const HUNK_APPLY_MODES = ['stage', 'revert-worktree', 'revert-staged'];
|
|
3
|
+
export const MAX_HUNK_PATCH_BYTES = 1024 * 1024; // 1MB, aligned with MAX_DIFF_BYTES
|
|
4
|
+
export class GitApplyError extends Error {
|
|
5
|
+
code = 'GIT_APPLY_FAILED';
|
|
6
|
+
stderr;
|
|
7
|
+
constructor(stderr, exitCode) {
|
|
8
|
+
super(stderr.trim() || `git apply exited with code ${exitCode ?? 'unknown'}`);
|
|
9
|
+
this.name = 'GitApplyError';
|
|
10
|
+
this.stderr = stderr;
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
export function buildGitApplyArgs(mode) {
|
|
14
|
+
// Array form only — never through a shell. `--` pathspec limiting is not
|
|
15
|
+
// supported by git apply; confinement comes from validateHunkPatch instead.
|
|
16
|
+
switch (mode) {
|
|
17
|
+
case 'stage':
|
|
18
|
+
return ['apply', '--cached'];
|
|
19
|
+
case 'revert-worktree':
|
|
20
|
+
return ['apply', '-R'];
|
|
21
|
+
case 'revert-staged':
|
|
22
|
+
return ['apply', '-R', '--cached'];
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
// Decode git's C-style quoted paths ("a/weird\tname"). Returns null when the
|
|
26
|
+
// quoting is malformed so validation can fail closed.
|
|
27
|
+
function unquoteGitPath(raw) {
|
|
28
|
+
if (raw.length < 2 || !raw.startsWith('"') || !raw.endsWith('"'))
|
|
29
|
+
return null;
|
|
30
|
+
let out = '';
|
|
31
|
+
for (let i = 1; i < raw.length - 1; i += 1) {
|
|
32
|
+
const ch = raw[i];
|
|
33
|
+
if (ch !== '\\') {
|
|
34
|
+
out += ch;
|
|
35
|
+
continue;
|
|
36
|
+
}
|
|
37
|
+
i += 1;
|
|
38
|
+
if (i >= raw.length - 1)
|
|
39
|
+
return null;
|
|
40
|
+
const esc = raw[i];
|
|
41
|
+
switch (esc) {
|
|
42
|
+
case '\\':
|
|
43
|
+
out += '\\';
|
|
44
|
+
break;
|
|
45
|
+
case '"':
|
|
46
|
+
out += '"';
|
|
47
|
+
break;
|
|
48
|
+
case 'n':
|
|
49
|
+
out += '\n';
|
|
50
|
+
break;
|
|
51
|
+
case 't':
|
|
52
|
+
out += '\t';
|
|
53
|
+
break;
|
|
54
|
+
case 'r':
|
|
55
|
+
out += '\r';
|
|
56
|
+
break;
|
|
57
|
+
case 'a':
|
|
58
|
+
out += '\x07';
|
|
59
|
+
break;
|
|
60
|
+
case 'b':
|
|
61
|
+
out += '\b';
|
|
62
|
+
break;
|
|
63
|
+
case 'f':
|
|
64
|
+
out += '\f';
|
|
65
|
+
break;
|
|
66
|
+
case 'v':
|
|
67
|
+
out += '\v';
|
|
68
|
+
break;
|
|
69
|
+
default: {
|
|
70
|
+
if (esc >= '0' && esc <= '7') {
|
|
71
|
+
const octal = raw.slice(i, i + 3);
|
|
72
|
+
if (/^[0-7]{3}$/.test(octal) && i + 2 < raw.length) {
|
|
73
|
+
out += String.fromCharCode(parseInt(octal, 8));
|
|
74
|
+
i += 2;
|
|
75
|
+
break;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
return null;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
return out;
|
|
83
|
+
}
|
|
84
|
+
// Normalize a path as it appears after `--- `/`+++ `/`rename from ` etc.
|
|
85
|
+
// Returns the plain repo-relative path, '/dev/null', or null when malformed.
|
|
86
|
+
function normalizePatchPath(raw, prefix) {
|
|
87
|
+
let value = raw.trimEnd();
|
|
88
|
+
// Traditional diffs may append a tab-separated timestamp; our patches come
|
|
89
|
+
// from `git diff`, but be lenient.
|
|
90
|
+
const tabIndex = value.indexOf('\t');
|
|
91
|
+
if (tabIndex >= 0)
|
|
92
|
+
value = value.slice(0, tabIndex);
|
|
93
|
+
if (value === '/dev/null')
|
|
94
|
+
return '/dev/null';
|
|
95
|
+
if (value.startsWith('"')) {
|
|
96
|
+
const unquoted = unquoteGitPath(value);
|
|
97
|
+
if (unquoted === null)
|
|
98
|
+
return null;
|
|
99
|
+
value = unquoted;
|
|
100
|
+
}
|
|
101
|
+
if (prefix && value.startsWith(`${prefix}/`))
|
|
102
|
+
return value.slice(prefix.length + 1);
|
|
103
|
+
// Bare path without the a/ b/ prefix (e.g. from `rename from`).
|
|
104
|
+
if (!prefix)
|
|
105
|
+
return value;
|
|
106
|
+
return null;
|
|
107
|
+
}
|
|
108
|
+
// Fail-closed validation: the patch must be a unified diff with at least one
|
|
109
|
+
// hunk, and every file it touches (---/+++, rename/copy headers) must be the
|
|
110
|
+
// validated pathspec. This confines the client-supplied patch to the single
|
|
111
|
+
// file the request was authorized for. Note git apply additionally
|
|
112
|
+
// cross-checks `diff --git` names against ---/+++ and refuses inconsistencies.
|
|
113
|
+
export function validateHunkPatch(patchText, pathspec) {
|
|
114
|
+
if (!patchText || !patchText.trim())
|
|
115
|
+
return { ok: false, error: 'Patch is empty' };
|
|
116
|
+
if (Buffer.byteLength(patchText, 'utf8') > MAX_HUNK_PATCH_BYTES) {
|
|
117
|
+
return { ok: false, error: `Patch exceeds ${MAX_HUNK_PATCH_BYTES} bytes` };
|
|
118
|
+
}
|
|
119
|
+
const touchedPaths = [];
|
|
120
|
+
let hunkCount = 0;
|
|
121
|
+
let hasOldHeader = false;
|
|
122
|
+
let hasNewHeader = false;
|
|
123
|
+
for (const line of patchText.split('\n')) {
|
|
124
|
+
if (line.startsWith('@@ ')) {
|
|
125
|
+
hunkCount += 1;
|
|
126
|
+
continue;
|
|
127
|
+
}
|
|
128
|
+
let raw = null;
|
|
129
|
+
let prefix = null;
|
|
130
|
+
if (line.startsWith('--- ')) {
|
|
131
|
+
raw = line.slice(4);
|
|
132
|
+
prefix = 'a';
|
|
133
|
+
hasOldHeader = true;
|
|
134
|
+
}
|
|
135
|
+
else if (line.startsWith('+++ ')) {
|
|
136
|
+
raw = line.slice(4);
|
|
137
|
+
prefix = 'b';
|
|
138
|
+
hasNewHeader = true;
|
|
139
|
+
}
|
|
140
|
+
else if (line.startsWith('rename from ')) {
|
|
141
|
+
raw = line.slice('rename from '.length);
|
|
142
|
+
}
|
|
143
|
+
else if (line.startsWith('copy from ')) {
|
|
144
|
+
raw = line.slice('copy from '.length);
|
|
145
|
+
}
|
|
146
|
+
else if (line.startsWith('rename to ')) {
|
|
147
|
+
raw = line.slice('rename to '.length);
|
|
148
|
+
}
|
|
149
|
+
else if (line.startsWith('copy to ')) {
|
|
150
|
+
raw = line.slice('copy to '.length);
|
|
151
|
+
}
|
|
152
|
+
if (raw === null)
|
|
153
|
+
continue;
|
|
154
|
+
const normalized = normalizePatchPath(raw, prefix);
|
|
155
|
+
if (normalized === null)
|
|
156
|
+
return { ok: false, error: `Malformed patch header: ${line.slice(0, 120)}` };
|
|
157
|
+
if (normalized !== '/dev/null')
|
|
158
|
+
touchedPaths.push(normalized);
|
|
159
|
+
}
|
|
160
|
+
if (!hasOldHeader || !hasNewHeader)
|
|
161
|
+
return { ok: false, error: 'Patch is missing ---/+++ file headers' };
|
|
162
|
+
if (hunkCount === 0)
|
|
163
|
+
return { ok: false, error: 'Patch contains no hunks' };
|
|
164
|
+
for (const touched of touchedPaths) {
|
|
165
|
+
if (touched !== pathspec) {
|
|
166
|
+
return { ok: false, error: `Patch touches unexpected path "${touched}" (allowed: "${pathspec}")` };
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
return { ok: true };
|
|
170
|
+
}
|
|
171
|
+
export function runGitApply(gitRoot, mode, patchText, timeoutMs) {
|
|
172
|
+
const args = buildGitApplyArgs(mode);
|
|
173
|
+
return new Promise((resolve, reject) => {
|
|
174
|
+
let stderr = '';
|
|
175
|
+
let settled = false;
|
|
176
|
+
const proc = spawn('git', args, { cwd: gitRoot, stdio: ['pipe', 'pipe', 'pipe'] });
|
|
177
|
+
const finish = (fn) => {
|
|
178
|
+
if (settled)
|
|
179
|
+
return;
|
|
180
|
+
settled = true;
|
|
181
|
+
clearTimeout(timer);
|
|
182
|
+
fn();
|
|
183
|
+
};
|
|
184
|
+
const timer = setTimeout(() => {
|
|
185
|
+
proc.kill();
|
|
186
|
+
finish(() => reject(new Error('git apply timed out')));
|
|
187
|
+
}, timeoutMs);
|
|
188
|
+
proc.on('error', (error) => {
|
|
189
|
+
finish(() => reject(error));
|
|
190
|
+
});
|
|
191
|
+
proc.stderr.on('data', (chunk) => {
|
|
192
|
+
stderr += chunk.toString('utf8');
|
|
193
|
+
if (stderr.length > 64 * 1024)
|
|
194
|
+
stderr = stderr.slice(0, 64 * 1024);
|
|
195
|
+
});
|
|
196
|
+
proc.on('close', (code) => {
|
|
197
|
+
if (code === 0) {
|
|
198
|
+
finish(() => resolve(''));
|
|
199
|
+
}
|
|
200
|
+
else {
|
|
201
|
+
finish(() => reject(new GitApplyError(stderr, code)));
|
|
202
|
+
}
|
|
203
|
+
});
|
|
204
|
+
proc.stdin.on('error', () => {
|
|
205
|
+
// E.g. EPIPE when git exits before reading all input; the close handler
|
|
206
|
+
// reports the real failure.
|
|
207
|
+
});
|
|
208
|
+
proc.stdin.write(patchText.endsWith('\n') ? patchText : `${patchText}\n`);
|
|
209
|
+
proc.stdin.end();
|
|
210
|
+
});
|
|
211
|
+
}
|
package/package.json
CHANGED
package/runtime-manifest.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": 1,
|
|
3
3
|
"packageName": "termdock",
|
|
4
|
-
"version": "1.4.
|
|
4
|
+
"version": "1.4.64",
|
|
5
5
|
"runtimeProtocolVersion": 1,
|
|
6
6
|
"minimumDesktopVersion": "1.4.46",
|
|
7
7
|
"nodeMajor": 22,
|
|
8
8
|
"dependencyHash": "sha256-HxC6p3b4kFesefw+vmNYJtPtdIKJaZR1jFNb7DRJqjU=",
|
|
9
|
-
"serverBundleHash": "sha256-
|
|
9
|
+
"serverBundleHash": "sha256-OQilerKaStUrSwThI5OZCSL0xLJ1yd+F2qHBJv6/+kY=",
|
|
10
10
|
"entrypoint": "dist/server/cli.js",
|
|
11
11
|
"clientEntrypoint": "dist/client/index.html"
|
|
12
12
|
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{U as a,C as n}from"./mermaid.core-BRemT3yR.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-6I9pSdPz.js";import{b as i}from"./mermaid.core-BRemT3yR.js";import"./chunk-5VM5RSS4-jKWgukTV.js";import"./chunk-XXDRQBXY-BIb1tw_7.js";import"./chunk-VR4S4FIN-Ch11-N5j.js";import"./chunk-32BRIVSS-ASy_kn1Q.js";import"./purify.es-CC4Brkr_.js";import"./index-CQww3DgN.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-6I9pSdPz.js";import{b as i}from"./mermaid.core-BRemT3yR.js";import"./chunk-5VM5RSS4-jKWgukTV.js";import"./chunk-XXDRQBXY-BIb1tw_7.js";import"./chunk-VR4S4FIN-Ch11-N5j.js";import"./chunk-32BRIVSS-ASy_kn1Q.js";import"./purify.es-CC4Brkr_.js";import"./index-CQww3DgN.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};
|