@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
package/README.md CHANGED
@@ -1,6 +1,18 @@
1
1
  # excalidraw-cli
2
+ <p>
3
+ <a href="https://www.npmjs.com/package/@swiftlysingh/excalidraw-cli"><img src="https://img.shields.io/npm/v/@swiftlysingh/excalidraw-cli" alt="npm version"></a>
4
+ <a href="https://github.com/swiftlysingh/excalidraw-cli/blob/main/LICENSE"><img src="https://img.shields.io/badge/license-MIT-blue" alt="MIT License"></a>
5
+ </p>
6
+
7
+ <p align="center">
8
+ <img alt="image" src="https://github.com/user-attachments/assets/5af4b002-bd69-4187-8836-84135685117a" />
9
+ </p>
10
+
11
+ <p align="center">
12
+ Create Excalidraw flowcharts and diagrams from text-based DSL or JSON.
13
+ </p>
14
+
2
15
 
3
- Create Excalidraw flowcharts and diagrams from text-based DSL or JSON.
4
16
 
5
17
  ## Features
6
18
 
@@ -12,6 +24,12 @@ Create Excalidraw flowcharts and diagrams from text-based DSL or JSON.
12
24
 
13
25
  ## Installation
14
26
 
27
+ ### Using the npm
28
+
29
+ ```bash
30
+ npm i @swiftlysingh/excalidraw-cli
31
+ ```
32
+
15
33
  ### From Source (Local Development)
16
34
 
17
35
  ```bash
@@ -146,6 +164,19 @@ const input = {
146
164
  const json2 = await createFlowchartFromJSON(input);
147
165
  ```
148
166
 
167
+ ## Examples
168
+
169
+ Here are some flowcharts created with excalidraw-cli:
170
+
171
+ ### Simple Flow
172
+ ![Simple Flow](assets/up.png)
173
+
174
+ ### iOS App Architecture
175
+ ![iOS App Architecture](assets/ios-app-architecture.png)
176
+
177
+ ### LeetCode Problem Solving Flow
178
+ ![LeetCode Flow](assets/leetcode.png)
179
+
149
180
  ## Output
150
181
 
151
182
  The generated `.excalidraw` files can be:
package/dist/cli.d.ts CHANGED
@@ -2,7 +2,7 @@
2
2
  /**
3
3
  * Excalidraw CLI
4
4
  *
5
- * Create Excalidraw flowcharts from DSL or JSON input.
5
+ * Create Excalidraw flowcharts from DSL, JSON, or DOT input.
6
6
  */
7
7
  export {};
8
8
  //# sourceMappingURL=cli.d.ts.map
package/dist/cli.js CHANGED
@@ -2,37 +2,39 @@
2
2
  /**
3
3
  * Excalidraw CLI
4
4
  *
5
- * Create Excalidraw flowcharts from DSL or JSON input.
5
+ * Create Excalidraw flowcharts from DSL, JSON, or DOT input.
6
6
  */
7
7
  import { Command } from 'commander';
8
8
  import { readFileSync, writeFileSync } from 'fs';
9
9
  import { parseDSL } from './parser/dsl-parser.js';
10
10
  import { parseJSONString } from './parser/json-parser.js';
11
+ import { parseDOT } from './parser/dot-parser.js';
11
12
  import { layoutGraph } from './layout/elk-layout.js';
12
13
  import { generateExcalidraw, serializeExcalidraw } from './generator/excalidraw-generator.js';
13
14
  const program = new Command();
14
15
  program
15
16
  .name('excalidraw-cli')
16
- .description('Create Excalidraw flowcharts from DSL or JSON')
17
- .version('1.0.0');
17
+ .description('Create Excalidraw flowcharts from DSL, JSON, or DOT')
18
+ .version('1.0.1');
18
19
  /**
19
20
  * Create command - main flowchart creation
20
21
  */
21
22
  program
22
23
  .command('create')
23
24
  .description('Create an Excalidraw flowchart')
24
- .argument('[input]', 'Input file path (DSL or JSON)')
25
+ .argument('[input]', 'Input file path (DSL, JSON, or DOT)')
25
26
  .option('-o, --output <file>', 'Output file path', 'flowchart.excalidraw')
26
- .option('-f, --format <type>', 'Input format: dsl, json (default: dsl)', 'dsl')
27
- .option('--inline <dsl>', 'Inline DSL string')
27
+ .option('-f, --format <type>', 'Input format: dsl, json, dot (default: dsl)', 'dsl')
28
+ .option('--inline <dsl>', 'Inline DSL/DOT string')
28
29
  .option('--stdin', 'Read input from stdin')
29
30
  .option('-d, --direction <dir>', 'Flow direction: TB, BT, LR, RL (default: TB)')
30
31
  .option('-s, --spacing <n>', 'Node spacing in pixels', '50')
31
32
  .option('--verbose', 'Verbose output')
32
- .action(async (inputFile, options) => {
33
+ .action(async (inputFile, options, command) => {
33
34
  try {
34
35
  let input;
35
36
  let format = options.format;
37
+ const formatExplicitlySet = command.getOptionValueSource('format') === 'cli';
36
38
  // Get input from various sources
37
39
  if (options.inline) {
38
40
  input = options.inline;
@@ -42,9 +44,14 @@ program
42
44
  }
43
45
  else if (inputFile) {
44
46
  input = readFileSync(inputFile, 'utf-8');
45
- // Auto-detect format from file extension
46
- if (inputFile.endsWith('.json')) {
47
- format = 'json';
47
+ // Auto-detect format from file extension (only if --format not explicitly set)
48
+ if (!formatExplicitlySet) {
49
+ if (inputFile.endsWith('.json')) {
50
+ format = 'json';
51
+ }
52
+ else if (inputFile.endsWith('.dot') || inputFile.endsWith('.gv')) {
53
+ format = 'dot';
54
+ }
48
55
  }
49
56
  }
50
57
  else {
@@ -60,6 +67,9 @@ program
60
67
  if (format === 'json') {
61
68
  graph = parseJSONString(input);
62
69
  }
70
+ else if (format === 'dot') {
71
+ graph = parseDOT(input);
72
+ }
63
73
  else {
64
74
  graph = parseDSL(input);
65
75
  }
@@ -109,20 +119,29 @@ program
109
119
  .command('parse')
110
120
  .description('Parse and validate input without generating output')
111
121
  .argument('<input>', 'Input file path')
112
- .option('-f, --format <type>', 'Input format: dsl, json (default: dsl)', 'dsl')
113
- .action((inputFile, options) => {
122
+ .option('-f, --format <type>', 'Input format: dsl, json, dot (default: dsl)', 'dsl')
123
+ .action((inputFile, options, command) => {
114
124
  try {
115
125
  const input = readFileSync(inputFile, 'utf-8');
116
126
  let format = options.format;
117
- // Auto-detect format from file extension
118
- if (inputFile.endsWith('.json')) {
119
- format = 'json';
127
+ const formatExplicitlySet = command.getOptionValueSource('format') === 'cli';
128
+ // Auto-detect format from file extension (only if --format not explicitly set)
129
+ if (!formatExplicitlySet) {
130
+ if (inputFile.endsWith('.json')) {
131
+ format = 'json';
132
+ }
133
+ else if (inputFile.endsWith('.dot') || inputFile.endsWith('.gv')) {
134
+ format = 'dot';
135
+ }
120
136
  }
121
137
  // Parse input
122
138
  let graph;
123
139
  if (format === 'json') {
124
140
  graph = parseJSONString(input);
125
141
  }
142
+ else if (format === 'dot') {
143
+ graph = parseDOT(input);
144
+ }
126
145
  else {
127
146
  graph = parseDSL(input);
128
147
  }
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * Image Factory
3
+ *
4
+ * Creates Excalidraw image elements and handles image file data.
5
+ */
6
+ import type { ExcalidrawImage, ExcalidrawFileData } from '../types/excalidraw.js';
7
+ import type { LayoutedNode, LayoutedImage } from '../types/dsl.js';
8
+ /**
9
+ * Resolve sticker name to actual path using library
10
+ */
11
+ export declare function resolveStickerPath(stickerSrc: string, libraryPath?: string): string;
12
+ /**
13
+ * Create file data for an image
14
+ * For local files: reads and base64 encodes
15
+ * For URLs: stores the URL directly (Excalidraw supports this)
16
+ */
17
+ export declare function createFileData(src: string, fileId: string, libraryPath?: string): ExcalidrawFileData | null;
18
+ /**
19
+ * Create an image element for a layouted node
20
+ */
21
+ export declare function createImageElement(node: LayoutedNode, fileId: string): ExcalidrawImage;
22
+ /**
23
+ * Create an image element for a layouted positioned image
24
+ */
25
+ export declare function createPositionedImageElement(image: LayoutedImage, fileId: string): ExcalidrawImage;
26
+ /**
27
+ * Generate a unique file ID
28
+ */
29
+ export declare function generateFileId(): string;
30
+ /**
31
+ * Get image dimensions (for layout calculation)
32
+ * Returns explicit dimensions if provided, otherwise defaults
33
+ */
34
+ export declare function getImageDimensions(src: string, explicitWidth?: number, explicitHeight?: number): {
35
+ width: number;
36
+ height: number;
37
+ };
38
+ //# sourceMappingURL=image-factory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"image-factory.d.ts","sourceRoot":"","sources":["../../src/factory/image-factory.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,OAAO,KAAK,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAClF,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AA4CnE;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAwBnF;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAC5B,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,EACd,WAAW,CAAC,EAAE,MAAM,GACnB,kBAAkB,GAAG,IAAI,CA0C3B;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,YAAY,EAClB,MAAM,EAAE,MAAM,GACb,eAAe,CAajB;AAED;;GAEG;AACH,wBAAgB,4BAA4B,CAC1C,KAAK,EAAE,aAAa,EACpB,MAAM,EAAE,MAAM,GACb,eAAe,CAajB;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,MAAM,CAEvC;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,MAAM,EACX,aAAa,CAAC,EAAE,MAAM,EACtB,cAAc,CAAC,EAAE,MAAM,GACtB;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAYnC"}
@@ -0,0 +1,169 @@
1
+ /**
2
+ * Image Factory
3
+ *
4
+ * Creates Excalidraw image elements and handles image file data.
5
+ */
6
+ import * as fs from 'fs';
7
+ import * as path from 'path';
8
+ import { nanoid } from 'nanoid';
9
+ import { createBaseElement } from './element-factory.js';
10
+ /**
11
+ * Default image dimensions
12
+ */
13
+ const DEFAULT_IMAGE_WIDTH = 100;
14
+ const DEFAULT_IMAGE_HEIGHT = 100;
15
+ /**
16
+ * MIME type mapping by file extension
17
+ */
18
+ const MIME_TYPES = {
19
+ '.png': 'image/png',
20
+ '.jpg': 'image/jpeg',
21
+ '.jpeg': 'image/jpeg',
22
+ '.gif': 'image/gif',
23
+ '.webp': 'image/webp',
24
+ '.svg': 'image/svg+xml',
25
+ '.bmp': 'image/bmp',
26
+ '.ico': 'image/x-icon',
27
+ };
28
+ /**
29
+ * Get MIME type from file path or URL
30
+ */
31
+ function getMimeType(src) {
32
+ const ext = path.extname(src).toLowerCase();
33
+ return MIME_TYPES[ext] || 'image/png';
34
+ }
35
+ /**
36
+ * Check if source is a URL
37
+ */
38
+ function isUrl(src) {
39
+ return src.startsWith('http://') || src.startsWith('https://');
40
+ }
41
+ /**
42
+ * Check if source is a sticker reference
43
+ */
44
+ function isSticker(src) {
45
+ return src.startsWith('sticker:');
46
+ }
47
+ /**
48
+ * Resolve sticker name to actual path using library
49
+ */
50
+ export function resolveStickerPath(stickerSrc, libraryPath) {
51
+ const name = stickerSrc.replace('sticker:', '');
52
+ if (!libraryPath) {
53
+ // No library specified, return as-is (will fail gracefully)
54
+ return name;
55
+ }
56
+ // Try common extensions
57
+ const extensions = ['.png', '.svg', '.jpg', '.jpeg', '.gif', '.webp'];
58
+ for (const ext of extensions) {
59
+ const fullPath = path.join(libraryPath, `${name}${ext}`);
60
+ if (fs.existsSync(fullPath)) {
61
+ return fullPath;
62
+ }
63
+ }
64
+ // Try with the name as-is (might already have extension)
65
+ const directPath = path.join(libraryPath, name);
66
+ if (fs.existsSync(directPath)) {
67
+ return directPath;
68
+ }
69
+ return name;
70
+ }
71
+ /**
72
+ * Create file data for an image
73
+ * For local files: reads and base64 encodes
74
+ * For URLs: stores the URL directly (Excalidraw supports this)
75
+ */
76
+ export function createFileData(src, fileId, libraryPath) {
77
+ // Handle sticker references
78
+ let resolvedSrc = src;
79
+ if (isSticker(src)) {
80
+ resolvedSrc = resolveStickerPath(src, libraryPath);
81
+ }
82
+ // Remote URLs are not supported - Excalidraw requires base64-encoded data URLs
83
+ if (isUrl(resolvedSrc)) {
84
+ console.warn(`Remote URLs are not supported for images: ${resolvedSrc}\n` +
85
+ ` Download the image locally and use a file path instead.`);
86
+ return null;
87
+ }
88
+ // For local files, read and base64 encode
89
+ try {
90
+ const absolutePath = path.isAbsolute(resolvedSrc)
91
+ ? resolvedSrc
92
+ : path.resolve(process.cwd(), resolvedSrc);
93
+ if (!fs.existsSync(absolutePath)) {
94
+ console.warn(`Image file not found: ${absolutePath}`);
95
+ return null;
96
+ }
97
+ const buffer = fs.readFileSync(absolutePath);
98
+ const base64 = buffer.toString('base64');
99
+ const mimeType = getMimeType(resolvedSrc);
100
+ const dataURL = `data:${mimeType};base64,${base64}`;
101
+ return {
102
+ mimeType,
103
+ id: fileId,
104
+ dataURL,
105
+ created: Date.now(),
106
+ };
107
+ }
108
+ catch (error) {
109
+ console.warn(`Failed to read image file: ${resolvedSrc}`, error);
110
+ return null;
111
+ }
112
+ }
113
+ /**
114
+ * Create an image element for a layouted node
115
+ */
116
+ export function createImageElement(node, fileId) {
117
+ return {
118
+ ...createBaseElement('image', node.x, node.y, node.width, node.height, {
119
+ id: node.id,
120
+ roundness: null,
121
+ boundElements: null,
122
+ backgroundColor: 'transparent',
123
+ }),
124
+ type: 'image',
125
+ fileId,
126
+ status: 'saved',
127
+ scale: [1, 1],
128
+ };
129
+ }
130
+ /**
131
+ * Create an image element for a layouted positioned image
132
+ */
133
+ export function createPositionedImageElement(image, fileId) {
134
+ return {
135
+ ...createBaseElement('image', image.x, image.y, image.width, image.height, {
136
+ id: image.id,
137
+ roundness: null,
138
+ boundElements: null,
139
+ backgroundColor: 'transparent',
140
+ }),
141
+ type: 'image',
142
+ fileId,
143
+ status: 'saved',
144
+ scale: [1, 1],
145
+ };
146
+ }
147
+ /**
148
+ * Generate a unique file ID
149
+ */
150
+ export function generateFileId() {
151
+ return nanoid(21);
152
+ }
153
+ /**
154
+ * Get image dimensions (for layout calculation)
155
+ * Returns explicit dimensions if provided, otherwise defaults
156
+ */
157
+ export function getImageDimensions(src, explicitWidth, explicitHeight) {
158
+ // Use explicit dimensions if provided
159
+ if (explicitWidth && explicitHeight) {
160
+ return { width: explicitWidth, height: explicitHeight };
161
+ }
162
+ // For local files, we could probe the actual dimensions, but that adds complexity
163
+ // For now, use defaults and let users specify dimensions if needed
164
+ return {
165
+ width: explicitWidth || DEFAULT_IMAGE_WIDTH,
166
+ height: explicitHeight || DEFAULT_IMAGE_HEIGHT,
167
+ };
168
+ }
169
+ //# sourceMappingURL=image-factory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"image-factory.js","sourceRoot":"","sources":["../../src/factory/image-factory.ts"],"names":[],"mappings":"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"}
@@ -5,4 +5,5 @@ export { createBaseElement, resetIndexCounter, DEFAULT_ELEMENT_STYLE } from './e
5
5
  export { createNode, createRectangle, createDiamond, createEllipse } from './node-factory.js';
6
6
  export { createArrow, createArrowWithBindings } from './connection-factory.js';
7
7
  export { createText, createBoundText, createNodeLabel, createEdgeLabel } from './text-factory.js';
8
+ export { createImageElement, createPositionedImageElement, createFileData, generateFileId, getImageDimensions, resolveStickerPath, } from './image-factory.js';
8
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/factory/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AACnG,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAC9F,OAAO,EAAE,WAAW,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAC/E,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/factory/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AACnG,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAC9F,OAAO,EAAE,WAAW,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAC/E,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAClG,OAAO,EACL,kBAAkB,EAClB,4BAA4B,EAC5B,cAAc,EACd,cAAc,EACd,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,oBAAoB,CAAC"}
@@ -5,4 +5,5 @@ export { createBaseElement, resetIndexCounter, DEFAULT_ELEMENT_STYLE } from './e
5
5
  export { createNode, createRectangle, createDiamond, createEllipse } from './node-factory.js';
6
6
  export { createArrow, createArrowWithBindings } from './connection-factory.js';
7
7
  export { createText, createBoundText, createNodeLabel, createEdgeLabel } from './text-factory.js';
8
+ export { createImageElement, createPositionedImageElement, createFileData, generateFileId, getImageDimensions, resolveStickerPath, } from './image-factory.js';
8
9
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/factory/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AACnG,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAC9F,OAAO,EAAE,WAAW,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAC/E,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/factory/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AACnG,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAC9F,OAAO,EAAE,WAAW,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAC/E,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAClG,OAAO,EACL,kBAAkB,EAClB,4BAA4B,EAC5B,cAAc,EACd,cAAc,EACd,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,oBAAoB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"text-factory.d.ts","sourceRoot":"","sources":["../../src/factory/text-factory.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAAK,EACV,cAAc,EAEd,mBAAmB,EACnB,uBAAuB,EACxB,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AA8BpD;;GAEG;AACH,wBAAgB,UAAU,CACxB,IAAI,EAAE,MAAM,EACZ,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,OAAO,CAAC,EAAE;IACR,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,mBAAmB,CAAC;IAChC,aAAa,CAAC,EAAE,uBAAuB,CAAC;IACxC,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,GACA,cAAc,CAqBhB;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE;IACR,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,mBAAmB,CAAC;IAChC,aAAa,CAAC,EAAE,uBAAuB,CAAC;IACxC,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,GACA,cAAc,CAyBhB;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,cAAc,CAuBnG;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EAC/B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GAC9B,cAAc,CAyChB"}
1
+ {"version":3,"file":"text-factory.d.ts","sourceRoot":"","sources":["../../src/factory/text-factory.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAAK,EACV,cAAc,EACd,mBAAmB,EACnB,uBAAuB,EACxB,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AA8BpD;;GAEG;AACH,wBAAgB,UAAU,CACxB,IAAI,EAAE,MAAM,EACZ,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,OAAO,CAAC,EAAE;IACR,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,mBAAmB,CAAC;IAChC,aAAa,CAAC,EAAE,uBAAuB,CAAC;IACxC,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,GACA,cAAc,CAqBhB;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE;IACR,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,mBAAmB,CAAC;IAChC,aAAa,CAAC,EAAE,uBAAuB,CAAC;IACxC,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,GACA,cAAc,CAyBhB;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,cAAc,CAuBnG;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EAC/B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GAC9B,cAAc,CAyChB"}
@@ -1 +1 @@
1
- {"version":3,"file":"text-factory.js","sourceRoot":"","sources":["../../src/factory/text-factory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"text-factory.js","sourceRoot":"","sources":["../../src/factory/text-factory.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"excalidraw-generator.d.ts","sourceRoot":"","sources":["../../src/generator/excalidraw-generator.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EACV,cAAc,EAGf,MAAM,wBAAwB,CAAC;AAEhC,OAAO,KAAK,EAAE,aAAa,EAA8B,MAAM,iBAAiB,CAAC;AAIjF;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,aAAa,GAAG,cAAc,CA0FvE;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,cAAc,EAAE,MAAM,UAAO,GAAG,MAAM,CAE/E;AAGD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC"}
1
+ {"version":3,"file":"excalidraw-generator.d.ts","sourceRoot":"","sources":["../../src/generator/excalidraw-generator.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAeH,OAAO,KAAK,EACV,cAAc,EAIf,MAAM,wBAAwB,CAAC;AAEhC,OAAO,KAAK,EACV,aAAa,EAKd,MAAM,iBAAiB,CAAC;AA6EzB;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,aAAa,GAAG,cAAc,CAyJvE;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,cAAc,EAAE,MAAM,UAAO,GAAG,MAAM,CAE/E;AAGD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC"}