@swiftlysingh/excalidraw-cli 1.0.0 → 1.1.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 (39) hide show
  1. package/README.md +32 -1
  2. package/dist/cli.d.ts +1 -1
  3. package/dist/cli.js +34 -15
  4. package/dist/cli.js.map +1 -1
  5. package/dist/factory/image-factory.d.ts +38 -0
  6. package/dist/factory/image-factory.d.ts.map +1 -0
  7. package/dist/factory/image-factory.js +169 -0
  8. package/dist/factory/image-factory.js.map +1 -0
  9. package/dist/factory/index.d.ts +1 -0
  10. package/dist/factory/index.d.ts.map +1 -1
  11. package/dist/factory/index.js +1 -0
  12. package/dist/factory/index.js.map +1 -1
  13. package/dist/factory/text-factory.d.ts.map +1 -1
  14. package/dist/factory/text-factory.js.map +1 -1
  15. package/dist/generator/excalidraw-generator.d.ts.map +1 -1
  16. package/dist/generator/excalidraw-generator.js +124 -26
  17. package/dist/generator/excalidraw-generator.js.map +1 -1
  18. package/dist/layout/elk-layout.d.ts.map +1 -1
  19. package/dist/layout/elk-layout.js +99 -3
  20. package/dist/layout/elk-layout.js.map +1 -1
  21. package/dist/parser/dot-parser.d.ts +23 -0
  22. package/dist/parser/dot-parser.d.ts.map +1 -0
  23. package/dist/parser/dot-parser.js +277 -0
  24. package/dist/parser/dot-parser.js.map +1 -0
  25. package/dist/parser/dsl-parser.d.ts +10 -0
  26. package/dist/parser/dsl-parser.d.ts.map +1 -1
  27. package/dist/parser/dsl-parser.js +214 -8
  28. package/dist/parser/dsl-parser.js.map +1 -1
  29. package/dist/parser/index.d.ts +1 -0
  30. package/dist/parser/index.d.ts.map +1 -1
  31. package/dist/parser/index.js +1 -0
  32. package/dist/parser/index.js.map +1 -1
  33. package/dist/types/dsl.d.ts +68 -1
  34. package/dist/types/dsl.d.ts.map +1 -1
  35. package/dist/types/dsl.js.map +1 -1
  36. package/dist/types/excalidraw.d.ts +22 -3
  37. package/dist/types/excalidraw.d.ts.map +1 -1
  38. package/dist/types/excalidraw.js.map +1 -1
  39. package/package.json +3 -2
@@ -0,0 +1,277 @@
1
+ /**
2
+ * DOT/Graphviz Parser
3
+ *
4
+ * Parses DOT language syntax and converts to FlowchartGraph.
5
+ * Uses ts-graphviz library for parsing.
6
+ *
7
+ * Supported DOT features:
8
+ * - digraph and graph declarations
9
+ * - Node declarations with labels and shapes
10
+ * - Edges: A -> B (directed) and A -- B (undirected)
11
+ * - Edge labels: [label="text"]
12
+ * - Node shapes: [shape=diamond|ellipse|box|cylinder]
13
+ * - Graph direction: rankdir=TB|BT|LR|RL
14
+ * - Dashed edges: [style=dashed]
15
+ * - Subgraphs (flattened to regular nodes)
16
+ * - Color attributes (fillcolor, color)
17
+ */
18
+ import { fromDot } from 'ts-graphviz';
19
+ import { nanoid } from 'nanoid';
20
+ import { DEFAULT_LAYOUT_OPTIONS } from '../types/dsl.js';
21
+ /**
22
+ * Map DOT shape names to our NodeType
23
+ */
24
+ function mapDotShape(dotShape) {
25
+ if (!dotShape)
26
+ return 'rectangle';
27
+ const shape = dotShape.toLowerCase();
28
+ switch (shape) {
29
+ case 'ellipse':
30
+ case 'oval':
31
+ case 'circle':
32
+ return 'ellipse';
33
+ case 'diamond':
34
+ return 'diamond';
35
+ case 'cylinder':
36
+ case 'record':
37
+ case 'mrecord':
38
+ return 'database';
39
+ case 'box':
40
+ case 'rect':
41
+ case 'rectangle':
42
+ case 'square':
43
+ default:
44
+ return 'rectangle';
45
+ }
46
+ }
47
+ /**
48
+ * Map DOT rankdir to our FlowDirection
49
+ */
50
+ function mapRankDir(rankdir) {
51
+ if (!rankdir)
52
+ return undefined;
53
+ const dir = rankdir.toUpperCase();
54
+ if (dir === 'TB' || dir === 'BT' || dir === 'LR' || dir === 'RL') {
55
+ return dir;
56
+ }
57
+ return undefined;
58
+ }
59
+ /**
60
+ * Check if a DOT style attribute contains a specific style value.
61
+ * DOT style attributes can be comma-separated (e.g., "filled,dashed").
62
+ * This function splits by comma and checks for exact matches to avoid
63
+ * false positives like "dashedline" matching "dashed".
64
+ */
65
+ function hasStyleValue(styleAttr, value) {
66
+ const styles = styleAttr.split(',').map((s) => s.trim().toLowerCase());
67
+ return styles.includes(value.toLowerCase());
68
+ }
69
+ /**
70
+ * Extract node style from DOT attributes
71
+ */
72
+ function extractNodeStyle(node) {
73
+ const style = {};
74
+ let hasStyle = false;
75
+ const fillcolor = node.attributes.get('fillcolor');
76
+ if (fillcolor && typeof fillcolor === 'string') {
77
+ style.backgroundColor = fillcolor;
78
+ hasStyle = true;
79
+ }
80
+ const color = node.attributes.get('color');
81
+ if (color && typeof color === 'string') {
82
+ style.strokeColor = color;
83
+ hasStyle = true;
84
+ }
85
+ const styleAttr = node.attributes.get('style');
86
+ if (styleAttr && typeof styleAttr === 'string') {
87
+ if (hasStyleValue(styleAttr, 'dashed')) {
88
+ style.strokeStyle = 'dashed';
89
+ hasStyle = true;
90
+ }
91
+ else if (hasStyleValue(styleAttr, 'dotted')) {
92
+ style.strokeStyle = 'dotted';
93
+ hasStyle = true;
94
+ }
95
+ }
96
+ return hasStyle ? style : undefined;
97
+ }
98
+ /**
99
+ * Extract edge style from DOT attributes
100
+ */
101
+ function extractEdgeStyle(edge) {
102
+ const style = {};
103
+ let hasStyle = false;
104
+ const color = edge.attributes.get('color');
105
+ if (color && typeof color === 'string') {
106
+ style.strokeColor = color;
107
+ hasStyle = true;
108
+ }
109
+ const styleAttr = edge.attributes.get('style');
110
+ if (styleAttr && typeof styleAttr === 'string') {
111
+ if (hasStyleValue(styleAttr, 'dashed')) {
112
+ style.strokeStyle = 'dashed';
113
+ hasStyle = true;
114
+ }
115
+ else if (hasStyleValue(styleAttr, 'dotted')) {
116
+ style.strokeStyle = 'dotted';
117
+ hasStyle = true;
118
+ }
119
+ }
120
+ return hasStyle ? style : undefined;
121
+ }
122
+ /**
123
+ * Get the node ID from an edge target (handles NodeModel and ForwardRefNode/plain objects)
124
+ */
125
+ function getNodeIdFromTarget(target) {
126
+ if (!target)
127
+ return null;
128
+ // Handle NodeModel or ForwardRefNode (both have id property)
129
+ if (typeof target === 'object' && 'id' in target && typeof target.id === 'string') {
130
+ return target.id;
131
+ }
132
+ return null;
133
+ }
134
+ /**
135
+ * Recursively collect all explicit nodes from a graph and its subgraphs
136
+ */
137
+ function collectExplicitNodes(graph, explicitNodes) {
138
+ // Process explicit nodes in this graph
139
+ for (const node of graph.nodes) {
140
+ if (!explicitNodes.has(node.id)) {
141
+ explicitNodes.set(node.id, node);
142
+ }
143
+ }
144
+ // Recursively process subgraphs
145
+ for (const subgraph of graph.subgraphs) {
146
+ collectExplicitNodes(subgraph, explicitNodes);
147
+ }
148
+ }
149
+ /**
150
+ * Recursively collect all node IDs referenced in edges
151
+ */
152
+ function collectNodeIdsFromEdges(graph, nodeIds) {
153
+ for (const edge of graph.edges) {
154
+ const targets = edge.targets;
155
+ if (!targets)
156
+ continue;
157
+ for (const target of targets) {
158
+ const id = getNodeIdFromTarget(target);
159
+ if (id) {
160
+ nodeIds.add(id);
161
+ }
162
+ }
163
+ }
164
+ // Recursively process subgraphs
165
+ for (const subgraph of graph.subgraphs) {
166
+ collectNodeIdsFromEdges(subgraph, nodeIds);
167
+ }
168
+ }
169
+ /**
170
+ * Recursively collect all edges from a graph and its subgraphs
171
+ */
172
+ function collectEdges(graph, nodeMap, edges) {
173
+ // Process edges in this graph
174
+ for (const edge of graph.edges) {
175
+ const targets = edge.targets;
176
+ if (!targets || targets.length < 2)
177
+ continue;
178
+ // Process edge chain (A -> B -> C becomes A->B and B->C)
179
+ for (let i = 0; i < targets.length - 1; i++) {
180
+ const sourceId = getNodeIdFromTarget(targets[i]);
181
+ const targetId = getNodeIdFromTarget(targets[i + 1]);
182
+ if (!sourceId || !targetId)
183
+ continue;
184
+ const sourceNode = nodeMap.get(sourceId);
185
+ const targetNode = nodeMap.get(targetId);
186
+ if (!sourceNode || !targetNode)
187
+ continue;
188
+ const label = edge.attributes.get('label');
189
+ const edgeStyle = extractEdgeStyle(edge);
190
+ edges.push({
191
+ id: nanoid(10),
192
+ source: sourceNode.id,
193
+ target: targetNode.id,
194
+ label: typeof label === 'string' ? label : undefined,
195
+ style: edgeStyle,
196
+ });
197
+ }
198
+ }
199
+ // Recursively process subgraphs
200
+ for (const subgraph of graph.subgraphs) {
201
+ collectEdges(subgraph, nodeMap, edges);
202
+ }
203
+ }
204
+ /**
205
+ * Parse DOT string into a FlowchartGraph
206
+ */
207
+ export function parseDOT(input) {
208
+ let rootGraph;
209
+ try {
210
+ rootGraph = fromDot(input);
211
+ }
212
+ catch (error) {
213
+ const message = error instanceof Error ? error.message : String(error);
214
+ throw new Error(`Invalid DOT syntax: ${message}`);
215
+ }
216
+ const options = { ...DEFAULT_LAYOUT_OPTIONS };
217
+ // Extract graph-level attributes using get() on the root graph
218
+ const rankdir = rootGraph.get('rankdir');
219
+ const direction = mapRankDir(typeof rankdir === 'string' ? rankdir : undefined);
220
+ if (direction) {
221
+ options.direction = direction;
222
+ }
223
+ const nodesep = rootGraph.get('nodesep');
224
+ if (typeof nodesep === 'number') {
225
+ // nodesep is in inches, convert to approximate pixels (72 dpi)
226
+ options.nodeSpacing = Math.round(nodesep * 72);
227
+ }
228
+ const ranksep = rootGraph.get('ranksep');
229
+ if (typeof ranksep === 'number') {
230
+ // ranksep is in inches, convert to approximate pixels (72 dpi)
231
+ options.rankSpacing = Math.round(ranksep * 72);
232
+ }
233
+ // Step 1: Collect all explicit nodes (declared with attributes)
234
+ const explicitNodes = new Map();
235
+ collectExplicitNodes(rootGraph, explicitNodes);
236
+ // Step 2: Collect all node IDs referenced in edges (including implicit nodes)
237
+ const allNodeIds = new Set();
238
+ collectNodeIdsFromEdges(rootGraph, allNodeIds);
239
+ // Also add explicit node IDs
240
+ for (const nodeId of explicitNodes.keys()) {
241
+ allNodeIds.add(nodeId);
242
+ }
243
+ // Step 3: Build the node map (merging explicit attributes with implicit nodes)
244
+ const nodeMap = new Map();
245
+ for (const nodeId of allNodeIds) {
246
+ const explicitNode = explicitNodes.get(nodeId);
247
+ if (explicitNode) {
248
+ // Node was explicitly declared - use its attributes
249
+ const label = explicitNode.attributes.get('label');
250
+ const shape = explicitNode.attributes.get('shape');
251
+ const nodeStyle = extractNodeStyle(explicitNode);
252
+ nodeMap.set(nodeId, {
253
+ id: nanoid(10),
254
+ type: mapDotShape(typeof shape === 'string' ? shape : undefined),
255
+ label: typeof label === 'string' ? label : nodeId,
256
+ style: nodeStyle,
257
+ });
258
+ }
259
+ else {
260
+ // Implicit node (only referenced in edges) - use defaults
261
+ nodeMap.set(nodeId, {
262
+ id: nanoid(10),
263
+ type: 'rectangle',
264
+ label: nodeId,
265
+ });
266
+ }
267
+ }
268
+ // Step 4: Collect all edges
269
+ const edges = [];
270
+ collectEdges(rootGraph, nodeMap, edges);
271
+ return {
272
+ nodes: Array.from(nodeMap.values()),
273
+ edges,
274
+ options,
275
+ };
276
+ }
277
+ //# sourceMappingURL=dot-parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dot-parser.js","sourceRoot":"","sources":["../../src/parser/dot-parser.ts"],"names":[],"mappings":"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"}
@@ -6,11 +6,21 @@
6
6
  * {Label} - Diamond (decision)
7
7
  * (Label) - Ellipse (start/end)
8
8
  * [[Label]] - Database
9
+ * ![path] - Image element
10
+ * ![path](WxH) - Image with dimensions
9
11
  * A -> B - Connection
10
12
  * A -> "label" -> B - Labeled connection
11
13
  * A --> B - Dashed connection
14
+ *
15
+ * Directives:
12
16
  * @direction TB - Set flow direction (TB, BT, LR, RL)
13
17
  * @spacing N - Set node spacing
18
+ * @image path at X,Y - Position image at absolute coordinates
19
+ * @image path near (NodeLabel) - Position image near a node
20
+ * @decorate path anchor - Attach decoration to preceding node
21
+ * @sticker name [at X,Y] - Add sticker from library
22
+ * @library path - Set custom sticker library path
23
+ * @scatter path count:N - Scatter images across canvas
14
24
  */
15
25
  import type { FlowchartGraph } from '../types/dsl.js';
16
26
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"dsl-parser.d.ts","sourceRoot":"","sources":["../../src/parser/dsl-parser.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAGH,OAAO,KAAK,EACV,cAAc,EAKf,MAAM,iBAAiB,CAAC;AA0JzB;;GAEG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,cAAc,CAiGtD;AAGD,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"dsl-parser.d.ts","sourceRoot":"","sources":["../../src/parser/dsl-parser.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAGH,OAAO,KAAK,EACV,cAAc,EASf,MAAM,iBAAiB,CAAC;AAoRzB;;GAEG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,cAAc,CAuLtD;AAGD,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC"}
@@ -6,11 +6,21 @@
6
6
  * {Label} - Diamond (decision)
7
7
  * (Label) - Ellipse (start/end)
8
8
  * [[Label]] - Database
9
+ * ![path] - Image element
10
+ * ![path](WxH) - Image with dimensions
9
11
  * A -> B - Connection
10
12
  * A -> "label" -> B - Labeled connection
11
13
  * A --> B - Dashed connection
14
+ *
15
+ * Directives:
12
16
  * @direction TB - Set flow direction (TB, BT, LR, RL)
13
17
  * @spacing N - Set node spacing
18
+ * @image path at X,Y - Position image at absolute coordinates
19
+ * @image path near (NodeLabel) - Position image near a node
20
+ * @decorate path anchor - Attach decoration to preceding node
21
+ * @sticker name [at X,Y] - Add sticker from library
22
+ * @library path - Set custom sticker library path
23
+ * @scatter path count:N - Scatter images across canvas
14
24
  */
15
25
  import { nanoid } from 'nanoid';
16
26
  import { DEFAULT_LAYOUT_OPTIONS } from '../types/dsl.js';
@@ -39,7 +49,42 @@ function tokenize(input) {
39
49
  i++;
40
50
  continue;
41
51
  }
42
- // Directive (@direction, @spacing)
52
+ // Image ![path] or ![path](WxH)
53
+ if (input[i] === '!' && input[i + 1] === '[') {
54
+ i += 2; // skip ![
55
+ let src = '';
56
+ while (i < len && input[i] !== ']') {
57
+ src += input[i];
58
+ i++;
59
+ }
60
+ i++; // skip ]
61
+ let width;
62
+ let height;
63
+ // Check for optional dimensions (WxH)
64
+ if (i < len && input[i] === '(') {
65
+ i++; // skip (
66
+ let dims = '';
67
+ while (i < len && input[i] !== ')') {
68
+ dims += input[i];
69
+ i++;
70
+ }
71
+ i++; // skip )
72
+ const match = dims.match(/^(\d+)\s*[xX]\s*(\d+)$/);
73
+ if (match) {
74
+ width = parseInt(match[1], 10);
75
+ height = parseInt(match[2], 10);
76
+ }
77
+ }
78
+ tokens.push({
79
+ type: 'image',
80
+ value: src.trim(),
81
+ imageSrc: src.trim(),
82
+ imageWidth: width,
83
+ imageHeight: height,
84
+ });
85
+ continue;
86
+ }
87
+ // Directive (@direction, @spacing, @image, @decorate, @sticker, @library, @scatter)
43
88
  if (input[i] === '@') {
44
89
  let directive = '';
45
90
  i++; // skip @
@@ -47,15 +92,30 @@ function tokenize(input) {
47
92
  directive += input[i];
48
93
  i++;
49
94
  }
50
- // Get directive value
95
+ // Get directive value (stop at newline, comment, or another @)
51
96
  while (i < len && (input[i] === ' ' || input[i] === '\t'))
52
97
  i++;
53
98
  let value = '';
54
- while (i < len && input[i] !== '\n' && input[i] !== '#') {
99
+ while (i < len && input[i] !== '\n' && input[i] !== '#' && input[i] !== '@') {
55
100
  value += input[i];
56
101
  i++;
57
102
  }
58
- tokens.push({ type: 'directive', value: `${directive} ${value.trim()}` });
103
+ // Handle @decorate as a special token type (attaches to preceding node)
104
+ if (directive === 'decorate') {
105
+ // Parse: @decorate path anchor
106
+ const parts = value.trim().split(/\s+/);
107
+ const src = parts[0] || '';
108
+ const anchor = (parts[1] || 'top-right');
109
+ tokens.push({
110
+ type: 'decorate',
111
+ value: src,
112
+ imageSrc: src,
113
+ decorationAnchor: anchor,
114
+ });
115
+ }
116
+ else {
117
+ tokens.push({ type: 'directive', value: `${directive} ${value.trim()}` });
118
+ }
59
119
  continue;
60
120
  }
61
121
  // Database [[Label]]
@@ -156,6 +216,65 @@ function tokenize(input) {
156
216
  }
157
217
  return tokens;
158
218
  }
219
+ /**
220
+ * Parse @image directive value
221
+ * Formats:
222
+ * @image path at X,Y
223
+ * @image path near (NodeLabel)
224
+ * @image path near (NodeLabel) anchor
225
+ */
226
+ function parseImageDirective(value) {
227
+ // Match: path at X,Y
228
+ const atMatch = value.match(/^(.+?)\s+at\s+(\d+)\s*,\s*(\d+)$/i);
229
+ if (atMatch) {
230
+ return {
231
+ id: nanoid(10),
232
+ src: atMatch[1].trim(),
233
+ position: {
234
+ type: 'absolute',
235
+ x: parseInt(atMatch[2], 10),
236
+ y: parseInt(atMatch[3], 10),
237
+ },
238
+ };
239
+ }
240
+ // Match: path near (NodeLabel) [anchor]
241
+ const nearMatch = value.match(/^(.+?)\s+near\s+\(([^)]+)\)(?:\s+(\S+))?$/i);
242
+ if (nearMatch) {
243
+ return {
244
+ id: nanoid(10),
245
+ src: nearMatch[1].trim(),
246
+ position: {
247
+ type: 'near',
248
+ nodeLabel: nearMatch[2].trim(),
249
+ anchor: nearMatch[3] || undefined,
250
+ },
251
+ };
252
+ }
253
+ return null;
254
+ }
255
+ /**
256
+ * Parse @scatter directive value
257
+ * Format: @scatter path count:N [width:W] [height:H]
258
+ */
259
+ function parseScatterDirective(value) {
260
+ const parts = value.trim().split(/\s+/);
261
+ if (parts.length < 2)
262
+ return null;
263
+ const src = parts[0];
264
+ let count = 10; // default
265
+ let width;
266
+ let height;
267
+ for (let i = 1; i < parts.length; i++) {
268
+ const [key, val] = parts[i].split(':');
269
+ if (key === 'count' && val)
270
+ count = parseInt(val, 10);
271
+ if (key === 'width' && val)
272
+ width = parseInt(val, 10);
273
+ if (key === 'height' && val)
274
+ height = parseInt(val, 10);
275
+ }
276
+ return { src, count, width, height };
277
+ }
159
278
  /**
160
279
  * Parse tokens into a FlowchartGraph
161
280
  */
@@ -164,16 +283,23 @@ export function parseDSL(input) {
164
283
  const nodes = new Map();
165
284
  const edges = [];
166
285
  const options = { ...DEFAULT_LAYOUT_OPTIONS };
286
+ const images = [];
287
+ const scatter = [];
288
+ let library;
167
289
  // Helper to get or create node by label
168
- function getOrCreateNode(label, type) {
290
+ function getOrCreateNode(label, type, imageData) {
169
291
  // Use label as key for deduplication
170
292
  const key = `${type}:${label}`;
171
293
  if (!nodes.has(key)) {
172
- nodes.set(key, {
294
+ const node = {
173
295
  id: nanoid(10),
174
296
  type,
175
297
  label,
176
- });
298
+ };
299
+ if (imageData) {
300
+ node.image = imageData;
301
+ }
302
+ nodes.set(key, node);
177
303
  }
178
304
  return nodes.get(key);
179
305
  }
@@ -205,6 +331,79 @@ export function parseDSL(input) {
205
331
  options.nodeSpacing = spacing;
206
332
  }
207
333
  }
334
+ else if (directive === 'image') {
335
+ const img = parseImageDirective(value);
336
+ if (img)
337
+ images.push(img);
338
+ }
339
+ else if (directive === 'scatter') {
340
+ const cfg = parseScatterDirective(value);
341
+ if (cfg)
342
+ scatter.push(cfg);
343
+ }
344
+ else if (directive === 'library') {
345
+ library = value.trim();
346
+ }
347
+ else if (directive === 'sticker') {
348
+ // Stickers are resolved later using the library path
349
+ // For now, treat as positioned image with sticker: prefix
350
+ const parts = value.trim().split(/\s+/);
351
+ const stickerName = parts[0];
352
+ if (stickerName) {
353
+ // Check for positioning (at or near)
354
+ const restValue = parts.slice(1).join(' ');
355
+ if (restValue.includes('at') || restValue.includes('near')) {
356
+ const img = parseImageDirective(`sticker:${stickerName} ${restValue}`);
357
+ if (img)
358
+ images.push(img);
359
+ }
360
+ else {
361
+ // Standalone sticker - will be placed at default position
362
+ images.push({
363
+ id: nanoid(10),
364
+ src: `sticker:${stickerName}`,
365
+ position: { type: 'absolute', x: 0, y: 0 }, // Will be resolved later
366
+ });
367
+ }
368
+ }
369
+ }
370
+ i++;
371
+ continue;
372
+ }
373
+ if (token.type === 'image') {
374
+ // Create an image node
375
+ const imageData = {
376
+ src: token.imageSrc,
377
+ width: token.imageWidth,
378
+ height: token.imageHeight,
379
+ };
380
+ const node = getOrCreateNode(token.value, 'image', imageData);
381
+ if (lastNode) {
382
+ edges.push({
383
+ id: nanoid(10),
384
+ source: lastNode.id,
385
+ target: node.id,
386
+ label: pendingLabel || undefined,
387
+ style: pendingDashed ? { strokeStyle: 'dashed' } : undefined,
388
+ });
389
+ pendingLabel = null;
390
+ pendingDashed = false;
391
+ }
392
+ lastNode = node;
393
+ i++;
394
+ continue;
395
+ }
396
+ if (token.type === 'decorate') {
397
+ // Attach decoration to the last node
398
+ if (lastNode) {
399
+ if (!lastNode.decorations) {
400
+ lastNode.decorations = [];
401
+ }
402
+ lastNode.decorations.push({
403
+ src: token.imageSrc,
404
+ anchor: token.decorationAnchor || 'top-right',
405
+ });
406
+ }
208
407
  i++;
209
408
  continue;
210
409
  }
@@ -238,11 +437,18 @@ export function parseDSL(input) {
238
437
  }
239
438
  i++;
240
439
  }
241
- return {
440
+ const result = {
242
441
  nodes: Array.from(nodes.values()),
243
442
  edges,
244
443
  options,
245
444
  };
445
+ if (images.length > 0)
446
+ result.images = images;
447
+ if (scatter.length > 0)
448
+ result.scatter = scatter;
449
+ if (library)
450
+ result.library = library;
451
+ return result;
246
452
  }
247
453
  // Re-export DEFAULT_LAYOUT_OPTIONS
248
454
  export { DEFAULT_LAYOUT_OPTIONS } from '../types/dsl.js';
@@ -1 +1 @@
1
- {"version":3,"file":"dsl-parser.js","sourceRoot":"","sources":["../../src/parser/dsl-parser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dsl-parser.js","sourceRoot":"","sources":["../../src/parser/dsl-parser.ts"],"names":[],"mappings":"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"}
@@ -3,4 +3,5 @@
3
3
  */
4
4
  export { parseDSL } from './dsl-parser.js';
5
5
  export { parseJSON, parseJSONString } from './json-parser.js';
6
+ export { parseDOT } from './dot-parser.js';
6
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/parser/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/parser/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC"}