@bilalba/fig-mcp 1.0.1 → 1.1.2

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 (69) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +110 -55
  3. package/dist/index.js +55 -2
  4. package/dist/index.js.map +1 -1
  5. package/dist/inspect-fig.d.ts +1 -1
  6. package/dist/inspect-fig.d.ts.map +1 -1
  7. package/dist/inspect-fig.js +7 -3
  8. package/dist/inspect-fig.js.map +1 -1
  9. package/package.json +5 -2
  10. package/dist/debug/debug-stroke-geom.d.ts +0 -2
  11. package/dist/debug/debug-stroke-geom.d.ts.map +0 -1
  12. package/dist/debug/debug-stroke-geom.js +0 -67
  13. package/dist/debug/debug-stroke-geom.js.map +0 -1
  14. package/dist/debug/debug-transforms.d.ts +0 -2
  15. package/dist/debug/debug-transforms.d.ts.map +0 -1
  16. package/dist/debug/debug-transforms.js +0 -97
  17. package/dist/debug/debug-transforms.js.map +0 -1
  18. package/dist/debug/debug-vertex.d.ts +0 -2
  19. package/dist/debug/debug-vertex.d.ts.map +0 -1
  20. package/dist/debug/debug-vertex.js +0 -72
  21. package/dist/debug/debug-vertex.js.map +0 -1
  22. package/dist/debug-group.d.ts +0 -5
  23. package/dist/debug-group.d.ts.map +0 -1
  24. package/dist/debug-group.js +0 -44
  25. package/dist/debug-group.js.map +0 -1
  26. package/dist/debug-stroke-geom.d.ts +0 -2
  27. package/dist/debug-stroke-geom.d.ts.map +0 -1
  28. package/dist/debug-stroke-geom.js +0 -67
  29. package/dist/debug-stroke-geom.js.map +0 -1
  30. package/dist/debug-transforms.d.ts +0 -2
  31. package/dist/debug-transforms.d.ts.map +0 -1
  32. package/dist/debug-transforms.js +0 -97
  33. package/dist/debug-transforms.js.map +0 -1
  34. package/dist/debug-vertex.d.ts +0 -2
  35. package/dist/debug-vertex.d.ts.map +0 -1
  36. package/dist/debug-vertex.js +0 -72
  37. package/dist/debug-vertex.js.map +0 -1
  38. package/dist/experimental/paint-utils.d.ts +0 -35
  39. package/dist/experimental/paint-utils.d.ts.map +0 -1
  40. package/dist/experimental/paint-utils.js +0 -105
  41. package/dist/experimental/paint-utils.js.map +0 -1
  42. package/dist/experimental/render-screen-v2.d.ts +0 -32
  43. package/dist/experimental/render-screen-v2.d.ts.map +0 -1
  44. package/dist/experimental/render-screen-v2.js +0 -366
  45. package/dist/experimental/render-screen-v2.js.map +0 -1
  46. package/dist/experimental/render-screen.d.ts +0 -26
  47. package/dist/experimental/render-screen.d.ts.map +0 -1
  48. package/dist/experimental/render-screen.js +0 -547
  49. package/dist/experimental/render-screen.js.map +0 -1
  50. package/dist/experimental/render-types.d.ts +0 -43
  51. package/dist/experimental/render-types.d.ts.map +0 -1
  52. package/dist/experimental/render-types.js +0 -22
  53. package/dist/experimental/render-types.js.map +0 -1
  54. package/dist/experimental/render-utils.d.ts +0 -38
  55. package/dist/experimental/render-utils.d.ts.map +0 -1
  56. package/dist/experimental/render-utils.js +0 -126
  57. package/dist/experimental/render-utils.js.map +0 -1
  58. package/dist/experimental/screenshot.d.ts +0 -11
  59. package/dist/experimental/screenshot.d.ts.map +0 -1
  60. package/dist/experimental/screenshot.js +0 -26
  61. package/dist/experimental/screenshot.js.map +0 -1
  62. package/dist/experimental/vector-renderer.d.ts +0 -31
  63. package/dist/experimental/vector-renderer.d.ts.map +0 -1
  64. package/dist/experimental/vector-renderer.js +0 -427
  65. package/dist/experimental/vector-renderer.js.map +0 -1
  66. package/dist/test-render-v2.d.ts +0 -5
  67. package/dist/test-render-v2.d.ts.map +0 -1
  68. package/dist/test-render-v2.js +0 -76
  69. package/dist/test-render-v2.js.map +0 -1
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 bilal
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -1,106 +1,161 @@
1
- # Fig MCP Server
1
+ # @bilalba/fig-mcp
2
2
 
3
- An MCP (Model Context Protocol) server for parsing `.fig` files. This enables AI assistants to understand and extract design information from the `.fig` file format.
3
+ MCP server for parsing `.fig` files. Enables AI assistants to understand and extract design information from the `.fig` file format for implementation guidance.
4
4
 
5
- ## Features
5
+ ## Installation
6
6
 
7
- - Parse `.fig` files without API access
8
- - Extract document structure, nodes, and hierarchy
9
- - Infer layout properties (flexbox-like direction, gap, padding, alignment)
10
- - Extract colors, text content, and styling information
11
- - Find nodes by type or name
12
- - Get detailed node information for implementation
7
+ ```bash
8
+ npm install -g @bilalba/fig-mcp
9
+ ```
13
10
 
14
- ## Installation
11
+ Or use directly with npx:
15
12
 
16
13
  ```bash
17
- npm install
18
- npm run build
14
+ npx @bilalba/fig-mcp --help
19
15
  ```
20
16
 
21
- ## Usage
17
+ ## Quick Start
22
18
 
23
- ### As MCP Server
19
+ ### As MCP Server (for Claude Desktop)
24
20
 
25
- Add to your MCP client configuration:
21
+ Add to your Claude Desktop configuration (`~/Library/Application Support/Claude/claude_desktop_config.json` on macOS):
26
22
 
27
23
  ```json
28
24
  {
29
25
  "mcpServers": {
30
26
  "fig-mcp": {
31
- "command": "node",
32
- "args": ["/path/to/fig-mcp/dist/index.js"]
27
+ "command": "npx",
28
+ "args": ["@bilalba/fig-mcp"]
33
29
  }
34
30
  }
35
31
  }
36
32
  ```
37
33
 
38
- ### CLI Inspector
34
+ Then ask Claude to parse your `.fig` files:
35
+
36
+ > "Parse my design.fig file and show me the document structure"
37
+
38
+ ### Web Viewer
39
+
40
+ Browse and preview `.fig` files in your browser:
39
41
 
40
42
  ```bash
41
- # Show document structure
42
- npx tsx src/inspect-fig.ts design.fig summary
43
+ fig-mcp viewer design.fig
44
+ # Opens http://localhost:3000
45
+ ```
43
46
 
44
- # Show kiwi schema
45
- npx tsx src/inspect-fig.ts design.fig schema
47
+ Features:
48
+ - Tree navigation with collapsible nodes
49
+ - SVG preview with zoom/pan
50
+ - Node details panel
51
+ - Copy node IDs for MCP tool calls
46
52
 
47
- # Output simplified JSON
48
- npx tsx src/inspect-fig.ts design.fig json
53
+ ### CLI Inspector
49
54
 
50
- # Show node statistics
51
- npx tsx src/inspect-fig.ts design.fig stats
55
+ Inspect `.fig` files from the command line:
52
56
 
53
- # List archive contents
54
- npx tsx src/inspect-fig.ts design.fig list
57
+ ```bash
58
+ fig-mcp inspect design.fig summary # Show document structure
59
+ fig-mcp inspect design.fig stats # Show node type counts
60
+ fig-mcp inspect design.fig list # List archive contents
61
+ fig-mcp inspect design.fig json # Output simplified JSON
55
62
  ```
56
63
 
64
+ ## CLI Commands
65
+
66
+ | Command | Description |
67
+ |---------|-------------|
68
+ | `fig-mcp` | Start MCP server (for AI assistants) |
69
+ | `fig-mcp viewer <file> [port]` | Open web viewer |
70
+ | `fig-mcp inspect <file> [cmd]` | Inspect file |
71
+ | `fig-mcp --help` | Show help |
72
+ | `fig-mcp --version` | Show version |
73
+
57
74
  ## MCP Tools
58
75
 
76
+ The MCP server exposes the following tools for AI assistants:
77
+
78
+ ### Document Structure
79
+
59
80
  | Tool | Description |
60
81
  |------|-------------|
61
82
  | `parse_fig_file` | Parse and return simplified document structure |
62
- | `get_document_summary` | Text tree of document structure |
83
+ | `get_document_summary` | Text tree of document structure with pagination |
84
+ | `get_tree_summary` | Hierarchical summary for drill-down navigation |
85
+ | `list_pages` | List all pages (canvases) in the document |
86
+ | `get_page_contents` | Get contents of a specific page |
87
+
88
+ ### Node Queries
89
+
90
+ | Tool | Description |
91
+ |------|-------------|
63
92
  | `find_nodes` | Find nodes by type or name |
64
- | `get_node_details` | Get details for a node path |
93
+ | `get_node_details` | Get details for a node by path |
94
+ | `get_node_by_id` | Get details for a node by GUID |
65
95
  | `get_layout_info` | Get inferred layout properties |
66
- | `list_pages` | List all pages |
67
- | `get_page_contents` | Get contents of a page |
68
- | `get_text_content` | Extract text content |
69
- | `get_colors` | Extract color palette |
96
+
97
+ ### Content Extraction
98
+
99
+ | Tool | Description |
100
+ |------|-------------|
101
+ | `get_text_content` | Extract all text content |
102
+ | `get_colors` | Extract unique color palette |
103
+ | `list_nodes_with_fills` | List nodes with fill paints |
104
+
105
+ ### Image & Rendering
106
+
107
+ | Tool | Description |
108
+ |------|-------------|
109
+ | `list_images` | List all images with metadata |
110
+ | `get_image` | Get image by hash (base64) |
111
+ | `get_thumbnail` | Get document thumbnail |
112
+ | `render_screen` | Render node subtree as PNG |
113
+ | `get_vector` | Export vector as SVG, PDF, PNG, or WebP |
114
+
115
+ ### Debugging
116
+
117
+ | Tool | Description |
118
+ |------|-------------|
119
+ | `get_schema_info` | Kiwi schema information |
120
+ | `get_raw_message` | Raw decoded message |
121
+ | `list_archive_contents` | List files in the archive |
122
+ | `clear_cache` | Clear file cache |
70
123
 
71
124
  ## How It Works
72
125
 
73
- 1. `.fig` files are ZIP archives containing `canvas.fig` (binary data), `meta.json`, and images
126
+ 1. `.fig` files are ZIP archives containing:
127
+ - `canvas.fig` - Main document data (kiwi binary format)
128
+ - `meta.json` - File metadata
129
+ - `thumbnail.png` - Preview image
130
+ - `images/` - Image assets
131
+
74
132
  2. The `canvas.fig` uses Evan Wallace's [kiwi](https://github.com/evanw/kiwi) binary format
133
+
75
134
  3. The kiwi schema is embedded in each file and extracted at parse time
76
- 4. Document data is decoded using the compiled schema
135
+
136
+ 4. Document data is decoded and transformed into structured information
137
+
77
138
  5. Layout properties are inferred from node positions and auto-layout settings
78
139
 
79
- ## Project Structure
140
+ ## Features
80
141
 
81
- ```
82
- fig-mcp/
83
- ├── src/
84
- │ ├── parser/ # Fig file parsing
85
- │ │ ├── fig-reader.ts # ZIP extraction
86
- │ │ ├── kiwi-parser.ts # Binary parsing
87
- │ │ ├── layout-inference.ts
88
- │ │ └── types.ts
89
- │ ├── mcp/
90
- │ │ └── server.ts # MCP server
91
- │ ├── index.ts # Entry point
92
- │ └── inspect-fig.ts # CLI tool
93
- ├── kiwi/ # Cloned kiwi library
94
- ├── CLAUDE.md # Development guide
95
- └── TODO.md # Project roadmap
96
- ```
142
+ - Parse `.fig` files locally without API access
143
+ - Extract document structure, nodes, and hierarchy
144
+ - Infer layout properties (flexbox-like direction, gap, padding, alignment)
145
+ - Extract colors, text content, and styling information
146
+ - Render nodes to PNG screenshots
147
+ - Export vectors as SVG, PDF, PNG, or WebP
148
+ - Full effect support (shadows, blurs)
149
+
150
+ ## Requirements
151
+
152
+ - Node.js 18 or higher
97
153
 
98
154
  ## Limitations
99
155
 
100
156
  - The `.fig` format is undocumented and may change
101
- - Some complex properties (vector networks, gradients) may not be fully parsed
102
- - Blob data (embedded images in fills) is not decoded
103
157
  - This is for local `.fig` files only (use a cloud API for hosted files)
158
+ - Some complex properties may not be fully parsed
104
159
 
105
160
  ## License
106
161
 
package/dist/index.js CHANGED
@@ -9,8 +9,53 @@ import open from "open";
9
9
  import { startServer } from "./mcp/server.js";
10
10
  import { startHttpServer } from "./http-server.js";
11
11
  import { createServer as createViewerServer } from "./web-viewer/server.js";
12
+ import { runInspect } from "./inspect-fig.js";
13
+ import { readFileSync } from "fs";
14
+ import { fileURLToPath } from "url";
15
+ import { dirname, join } from "path";
12
16
  const args = process.argv.slice(2);
13
- if (args[0] === "viewer") {
17
+ const command = args[0];
18
+ // Get package.json for version
19
+ const __dirname = dirname(fileURLToPath(import.meta.url));
20
+ const pkg = JSON.parse(readFileSync(join(__dirname, "../package.json"), "utf-8"));
21
+ if (command === "--version" || command === "-v") {
22
+ console.log(pkg.version);
23
+ process.exit(0);
24
+ }
25
+ if (command === "--help" || command === "-h" || command === "help") {
26
+ console.log(`
27
+ fig-mcp v${pkg.version} - MCP server for parsing .fig files
28
+
29
+ Usage:
30
+ fig-mcp Start MCP server (for AI assistants)
31
+ fig-mcp viewer <file> [port] Start web viewer for a .fig file
32
+ fig-mcp inspect <file> [command] Inspect a .fig file
33
+
34
+ Viewer:
35
+ Opens a local web UI to browse and preview .fig file contents.
36
+ Default port: 3000
37
+
38
+ Inspect commands:
39
+ list - List archive contents
40
+ schema - Show kiwi schema info
41
+ summary - Show document structure (default)
42
+ raw - Show raw message (truncated)
43
+ json - Output simplified JSON
44
+ stats - Show node type statistics
45
+
46
+ Options:
47
+ --help, -h Show this help
48
+ --version, -v Show version
49
+
50
+ Examples:
51
+ fig-mcp viewer design.fig # Open viewer on port 3000
52
+ fig-mcp viewer design.fig 8080 # Open viewer on port 8080
53
+ fig-mcp inspect design.fig summary # Show document structure
54
+ fig-mcp inspect design.fig stats # Show node type counts
55
+ `);
56
+ process.exit(0);
57
+ }
58
+ if (command === "viewer") {
14
59
  const figFile = args[1];
15
60
  const port = parseInt(args[2] || "3000", 10);
16
61
  if (!figFile) {
@@ -22,7 +67,10 @@ if (args[0] === "viewer") {
22
67
  void open(url);
23
68
  });
24
69
  }
25
- else {
70
+ else if (command === "inspect") {
71
+ await runInspect(args.slice(1));
72
+ }
73
+ else if (!command) {
26
74
  // Start HTTP server for image serving
27
75
  startHttpServer();
28
76
  // Exit when stdin closes (MCP client disconnected)
@@ -35,4 +83,9 @@ else {
35
83
  process.exit(1);
36
84
  });
37
85
  }
86
+ else {
87
+ console.error(`Unknown command: ${command}`);
88
+ console.error("Run 'fig-mcp --help' for usage information.");
89
+ process.exit(1);
90
+ }
38
91
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA;;;;;GAKG;AAEH,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,YAAY,IAAI,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAE5E,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACnC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE,CAAC;IACzB,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACxB,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,MAAM,EAAE,EAAE,CAAC,CAAC;IAE7C,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,gDAAgD,CAAC,CAAC;QAChE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,YAAY,GAAG,kBAAkB,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3D,YAAY,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;QACzB,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC;IACjB,CAAC,CAAC,CAAC;AACL,CAAC;KAAM,CAAC;IACN,sCAAsC;IACtC,eAAe,EAAE,CAAC;IAElB,mDAAmD;IACnD,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;QAC7B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;IAEH,mBAAmB;IACnB,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;QAC5B,OAAO,CAAC,KAAK,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAC;QAChD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -12,5 +12,5 @@
12
12
  * raw - Show raw message (truncated)
13
13
  * json - Output simplified JSON
14
14
  */
15
- export {};
15
+ export declare function runInspect(args: string[]): Promise<void>;
16
16
  //# sourceMappingURL=inspect-fig.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"inspect-fig.d.ts","sourceRoot":"","sources":["../src/inspect-fig.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;GAYG"}
1
+ {"version":3,"file":"inspect-fig.d.ts","sourceRoot":"","sources":["../src/inspect-fig.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;GAYG;AAcH,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA4H9D"}
@@ -13,8 +13,7 @@
13
13
  * json - Output simplified JSON
14
14
  */
15
15
  import { readFigFile, listFigContents, parseCanvasFig, getSchemaInfo, extractDocumentTree, getDocumentSummary, simplifyNode, countNodesByType, } from "./parser/index.js";
16
- async function main() {
17
- const args = process.argv.slice(2);
16
+ export async function runInspect(args) {
18
17
  if (args.length === 0) {
19
18
  console.log(`
20
19
  Fig Inspector - Inspect .fig files
@@ -130,5 +129,10 @@ Commands:
130
129
  process.exit(1);
131
130
  }
132
131
  }
133
- main();
132
+ // Run when executed directly
133
+ const isDirectExecution = import.meta.url === `file://${process.argv[1]}` ||
134
+ process.argv[1]?.endsWith('inspect-fig.ts');
135
+ if (isDirectExecution) {
136
+ runInspect(process.argv.slice(2));
137
+ }
134
138
  //# sourceMappingURL=inspect-fig.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"inspect-fig.js","sourceRoot":"","sources":["../src/inspect-fig.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;GAYG;AAGH,OAAO,EACL,WAAW,EACX,eAAe,EACf,cAAc,EACd,aAAa,EACb,mBAAmB,EACnB,kBAAkB,EAClB,YAAY,EACZ,gBAAgB,GACjB,MAAM,mBAAmB,CAAC;AAE3B,KAAK,UAAU,IAAI;IACjB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAEnC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;CAaf,CAAC,CAAC;QACC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAE,CAAC;IAC1B,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC;IAErC,IAAI,CAAC;QACH,QAAQ,OAAO,EAAE,CAAC;YAChB,KAAK,MAAM,CAAC,CAAC,CAAC;gBACZ,MAAM,QAAQ,GAAG,MAAM,eAAe,CAAC,QAAQ,CAAC,CAAC;gBACjD,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;gBACjC,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;oBAC5B,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;gBAC3B,CAAC;gBACD,MAAM;YACR,CAAC;YAED,KAAK,QAAQ,CAAC,CAAC,CAAC;gBACd,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,QAAQ,CAAC,CAAC;gBAC5C,MAAM,MAAM,GAAG,cAAc,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;gBACjD,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBAChD,OAAO,CAAC,GAAG,CAAC,YAAY,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;gBAC1C,OAAO,CAAC,GAAG,CAAC,yBAAyB,UAAU,CAAC,eAAe,MAAM,CAAC,CAAC;gBACvE,KAAK,MAAM,GAAG,IAAI,UAAU,CAAC,WAAW,EAAE,CAAC;oBACzC,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC;oBACzC,KAAK,MAAM,KAAK,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;wBAC/B,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;wBAC5C,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,GAAG,SAAS,EAAE,CAAC,CAAC;oBAC5D,CAAC;oBACD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBACrB,CAAC;gBACD,MAAM;YACR,CAAC;YAED,KAAK,SAAS,CAAC,CAAC,CAAC;gBACf,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,QAAQ,CAAC,CAAC;gBAC5C,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;gBAC9D,OAAO,CAAC,GAAG,CAAC,aAAa,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;gBAEhD,MAAM,MAAM,GAAG,cAAc,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;gBACjD,OAAO,CAAC,GAAG,CAAC,YAAY,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;gBAE1C,MAAM,QAAQ,GAAG,mBAAmB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBACrD,IAAI,QAAQ,EAAE,CAAC;oBACb,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;oBACrC,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC,CAAC;gBAC5C,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC;oBACjD,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;gBAChE,CAAC;gBACD,MAAM;YACR,CAAC;YAED,KAAK,KAAK,CAAC,CAAC,CAAC;gBACX,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,QAAQ,CAAC,CAAC;gBAC5C,MAAM,MAAM,GAAG,cAAc,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;gBACjD,IAAI,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;gBACnD,IAAI,IAAI,CAAC,MAAM,GAAG,KAAK,EAAE,CAAC;oBACxB,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,qBAAqB,CAAC;gBAC1D,CAAC;gBACD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBAClB,MAAM;YACR,CAAC;YAED,KAAK,MAAM,CAAC,CAAC,CAAC;gBACZ,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,QAAQ,CAAC,CAAC;gBAC5C,MAAM,MAAM,GAAG,cAAc,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;gBACjD,MAAM,QAAQ,GAAG,mBAAmB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBACrD,IAAI,QAAQ,EAAE,CAAC;oBACb,MAAM,UAAU,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;oBAC1C,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;gBACnD,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;oBACjD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAClB,CAAC;gBACD,MAAM;YACR,CAAC;YAED,KAAK,OAAO,CAAC,CAAC,CAAC;gBACb,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,QAAQ,CAAC,CAAC;gBAC5C,MAAM,MAAM,GAAG,cAAc,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;gBACjD,MAAM,QAAQ,GAAG,mBAAmB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBACrD,IAAI,QAAQ,EAAE,CAAC;oBACb,MAAM,MAAM,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;oBAC1C,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;oBACjC,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CACxC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CACxB,CAAC;oBACF,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,EAAE,CAAC;wBACnC,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,KAAK,KAAK,EAAE,CAAC,CAAC;oBACrC,CAAC;oBACD,OAAO,CAAC,GAAG,CAAC,YAAY,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;gBAC9E,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;oBACjD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAClB,CAAC;gBACD,MAAM;YACR,CAAC;YAED;gBACE,OAAO,CAAC,KAAK,CAAC,oBAAoB,OAAO,EAAE,CAAC,CAAC;gBAC7C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QACxE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,IAAI,EAAE,CAAC"}
1
+ {"version":3,"file":"inspect-fig.js","sourceRoot":"","sources":["../src/inspect-fig.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bilalba/fig-mcp",
3
- "version": "1.0.1",
3
+ "version": "1.1.2",
4
4
  "description": "MCP server for parsing .fig files",
5
5
  "keywords": [
6
6
  "fig",
@@ -26,15 +26,18 @@
26
26
  },
27
27
  "files": [
28
28
  "dist",
29
- "package.json",
30
29
  "README.md",
31
30
  "LICENSE"
32
31
  ],
32
+ "engines": {
33
+ "node": ">=18"
34
+ },
33
35
  "directories": {
34
36
  "test": "tests"
35
37
  },
36
38
  "scripts": {
37
39
  "build": "tsc",
40
+ "prepublishOnly": "npm run build",
38
41
  "dev": "tsx watch src/index.ts",
39
42
  "start": "node dist/index.js",
40
43
  "test": "tsx src/test-parser.ts",
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=debug-stroke-geom.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"debug-stroke-geom.d.ts","sourceRoot":"","sources":["../../src/debug/debug-stroke-geom.ts"],"names":[],"mappings":""}
@@ -1,67 +0,0 @@
1
- /**
2
- * Debug strokeGeometry for complex vector 457:1697
3
- */
4
- import { readFigFile } from "../parser/index.js";
5
- import { parseCanvasFig, formatGUID, extractDocumentTree } from "../parser/kiwi-parser.js";
6
- async function debug() {
7
- const archive = await readFigFile("/Users/billy/Downloads/AutoDevice (Copy).fig");
8
- const parsed = parseCanvasFig(archive.canvasFig);
9
- const doc = extractDocumentTree(parsed.message);
10
- if (!doc)
11
- return;
12
- const nodeIndex = new Map();
13
- function indexNode(node) {
14
- nodeIndex.set(formatGUID(node.guid), node);
15
- if (node.children) {
16
- for (const child of node.children) {
17
- indexNode(child);
18
- }
19
- }
20
- }
21
- indexNode(doc);
22
- const blobs = parsed.message["blobs"];
23
- // Check all 3 vectors in frame 457:1694
24
- for (const id of ["457:1695", "457:1696", "457:1697"]) {
25
- const rawNode = nodeIndex.get(id);
26
- if (!rawNode) {
27
- console.log(`Node ${id} not found`);
28
- continue;
29
- }
30
- const node = rawNode;
31
- console.log(`\n${"=".repeat(60)}`);
32
- console.log(`Node ${id}: ${node.name}`);
33
- console.log("fillGeometry:", JSON.stringify(node.fillGeometry, null, 2));
34
- console.log("strokeGeometry:", JSON.stringify(node.strokeGeometry, null, 2));
35
- // If strokeGeometry has commandsBlob, decode it
36
- const strokeGeom = node.strokeGeometry;
37
- if (strokeGeom?.[0]?.commandsBlob !== undefined && blobs) {
38
- const blobIdx = strokeGeom[0].commandsBlob;
39
- const bytes = blobs[blobIdx].bytes;
40
- console.log(`\nstrokeGeometry[0].commandsBlob (${bytes.length} bytes):`);
41
- // Decode path commands
42
- const view = new DataView(bytes.buffer, bytes.byteOffset, bytes.length);
43
- const cmdNames = { 0: "Z", 1: "M", 2: "L", 3: "Q", 4: "C", 5: "Q2" };
44
- const argCounts = { 0: 0, 1: 2, 2: 2, 3: 4, 4: 6, 5: 4 };
45
- let offset = 0;
46
- const cmds = [];
47
- while (offset < bytes.length) {
48
- const cmd = bytes[offset++];
49
- const name = cmdNames[cmd] ?? `?${cmd}`;
50
- const argCount = argCounts[cmd];
51
- if (argCount === undefined) {
52
- cmds.push(`${name}(unknown)`);
53
- break;
54
- }
55
- const args = [];
56
- for (let i = 0; i < argCount && offset + 4 <= bytes.length; i++) {
57
- args.push(view.getFloat32(offset, true));
58
- offset += 4;
59
- }
60
- cmds.push(`${name}(${args.map(a => a.toFixed(2)).join(", ")})`);
61
- }
62
- console.log(cmds.join(" → "));
63
- }
64
- }
65
- }
66
- debug().catch(console.error);
67
- //# sourceMappingURL=debug-stroke-geom.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"debug-stroke-geom.js","sourceRoot":"","sources":["../../src/debug/debug-stroke-geom.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=debug-transforms.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"debug-transforms.d.ts","sourceRoot":"","sources":["../../src/debug/debug-transforms.ts"],"names":[],"mappings":""}
@@ -1,97 +0,0 @@
1
- /**
2
- * Debug transforms - show what transform data exists on nodes
3
- */
4
- import { readFigFile } from "../parser/index.js";
5
- import { parseCanvasFig, extractDocumentTree, formatGUID } from "../parser/kiwi-parser.js";
6
- const FILE_PATH = "/Users/billy/Downloads/AutoDevice (Copy).fig";
7
- const NODE_ID = process.argv[2] || "457:1681";
8
- function normalizeNodeId(nodeId) {
9
- let normalized = nodeId.trim();
10
- if (/^\d+-\d+$/.test(normalized)) {
11
- normalized = normalized.replace('-', ':');
12
- }
13
- return normalized;
14
- }
15
- async function debug() {
16
- const normalizedId = normalizeNodeId(NODE_ID);
17
- console.log("Node ID:", normalizedId);
18
- const archive = await readFigFile(FILE_PATH);
19
- const parsed = parseCanvasFig(archive.canvasFig);
20
- const doc = extractDocumentTree(parsed.message);
21
- if (!doc) {
22
- console.log("Failed to extract document");
23
- return;
24
- }
25
- const nodeIndex = new Map();
26
- function indexNode(node) {
27
- nodeIndex.set(formatGUID(node.guid), node);
28
- if (node.children) {
29
- for (const child of node.children) {
30
- indexNode(child);
31
- }
32
- }
33
- }
34
- indexNode(doc);
35
- const node = nodeIndex.get(normalizedId);
36
- if (!node) {
37
- console.log("Node not found:", normalizedId);
38
- return;
39
- }
40
- const sceneNode = node;
41
- console.log("\n=== ROOT NODE ===");
42
- console.log("Name:", node.name);
43
- console.log("Type:", node.type);
44
- console.log("x:", sceneNode.x);
45
- console.log("y:", sceneNode.y);
46
- console.log("width:", sceneNode.width);
47
- console.log("height:", sceneNode.height);
48
- console.log("transform:", sceneNode.transform);
49
- if (node.children) {
50
- console.log("\n=== CHILDREN ===");
51
- for (const child of node.children) {
52
- const childScene = child;
53
- console.log("\n--- Child:", child.name, "(", child.type, ") ---");
54
- console.log("x:", childScene.x);
55
- console.log("y:", childScene.y);
56
- console.log("width:", childScene.width);
57
- console.log("height:", childScene.height);
58
- console.log("transform:", childScene.transform);
59
- console.log("size:", childScene.size);
60
- console.log("vectorData?.normalizedSize:", childScene.vectorData?.normalizedSize);
61
- console.log("fillGeometry count:", childScene.fillGeometry?.length || 0);
62
- }
63
- }
64
- // Show what renderScreen uses vs what nodeToSvg uses
65
- console.log("\n=== TRANSFORM USAGE COMPARISON ===");
66
- console.log("\nrenderScreen (vector-renderer.ts):");
67
- console.log(" - Uses getLocalTransform() which reads node.transform matrix");
68
- console.log(" - Composes transforms: multiplyTransforms(parentTransform, localTransform)");
69
- console.log(" - Handles rotation properly");
70
- console.log("\nnodeToSvg (vector-export.ts):");
71
- console.log(" - Uses offset-based positioning only (x/y accumulation)");
72
- console.log(" - Creates identity-like transform with just scale");
73
- console.log(" - IGNORES node.transform matrix entirely!");
74
- // Check if children have transforms
75
- console.log("\n=== DO CHILDREN HAVE TRANSFORMS? ===");
76
- if (node.children) {
77
- for (const child of node.children) {
78
- const childScene = child;
79
- const hasTransform = childScene.transform != null;
80
- const isIdentity = childScene.transform &&
81
- Math.abs(childScene.transform.m00 - 1) < 0.001 &&
82
- Math.abs(childScene.transform.m01) < 0.001 &&
83
- Math.abs(childScene.transform.m10) < 0.001 &&
84
- Math.abs(childScene.transform.m11 - 1) < 0.001;
85
- console.log(`${child.name}:`);
86
- console.log(` hasTransform: ${hasTransform}`);
87
- if (hasTransform) {
88
- console.log(` isIdentity: ${isIdentity}`);
89
- console.log(` m00=${childScene.transform.m00}, m01=${childScene.transform.m01}`);
90
- console.log(` m10=${childScene.transform.m10}, m11=${childScene.transform.m11}`);
91
- console.log(` m02=${childScene.transform.m02}, m12=${childScene.transform.m12}`);
92
- }
93
- }
94
- }
95
- }
96
- debug().catch(console.error);
97
- //# sourceMappingURL=debug-transforms.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"debug-transforms.js","sourceRoot":"","sources":["../../src/debug/debug-transforms.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAG3F,MAAM,SAAS,GAAG,8CAA8C,CAAC;AACjE,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC;AAE9C,SAAS,eAAe,CAAC,MAAc;IACrC,IAAI,UAAU,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;IAC/B,IAAI,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;QACjC,UAAU,GAAG,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAC5C,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,KAAK,UAAU,KAAK;IAClB,MAAM,YAAY,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;IAC9C,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;IAEtC,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,SAAS,CAAC,CAAC;IAC7C,MAAM,MAAM,GAAG,cAAc,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACjD,MAAM,GAAG,GAAG,mBAAmB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAEhD,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;QAC1C,OAAO;IACT,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,GAAG,EAAmB,CAAC;IAC7C,SAAS,SAAS,CAAC,IAAa;QAC9B,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;QAC3C,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAqB,EAAE,CAAC;gBAC/C,SAAS,CAAC,KAAK,CAAC,CAAC;YACnB,CAAC;QACH,CAAC;IACH,CAAC;IACD,SAAS,CAAC,GAAG,CAAC,CAAC;IAEf,MAAM,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IACzC,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,YAAY,CAAC,CAAC;QAC7C,OAAO;IACT,CAAC;IAED,MAAM,SAAS,GAAG,IAAiB,CAAC;IACpC,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;IACnC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IAChC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IAChC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;IAC/B,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;IAC/B,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC;IACvC,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;IACzC,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAE/C,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClB,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;QAClC,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAqB,EAAE,CAAC;YAC/C,MAAM,UAAU,GAAG,KAAkB,CAAC;YACtC,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAClE,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;YAChC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;YAChC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;YACxC,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;YAC1C,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC;YAChD,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC;YACtC,OAAO,CAAC,GAAG,CAAC,6BAA6B,EAAE,UAAU,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;YAClF,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE,UAAU,CAAC,YAAY,EAAE,MAAM,IAAI,CAAC,CAAC,CAAC;QAC3E,CAAC;IACH,CAAC;IAED,qDAAqD;IACrD,OAAO,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC;IACpD,OAAO,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC;IACpD,OAAO,CAAC,GAAG,CAAC,gEAAgE,CAAC,CAAC;IAC9E,OAAO,CAAC,GAAG,CAAC,8EAA8E,CAAC,CAAC;IAC5F,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;IAE7C,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;IAC/C,OAAO,CAAC,GAAG,CAAC,2DAA2D,CAAC,CAAC;IACzE,OAAO,CAAC,GAAG,CAAC,qDAAqD,CAAC,CAAC;IACnE,OAAO,CAAC,GAAG,CAAC,6CAA6C,CAAC,CAAC;IAE3D,oCAAoC;IACpC,OAAO,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAC;IACtD,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClB,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAqB,EAAE,CAAC;YAC/C,MAAM,UAAU,GAAG,KAAkB,CAAC;YACtC,MAAM,YAAY,GAAG,UAAU,CAAC,SAAS,IAAI,IAAI,CAAC;YAClD,MAAM,UAAU,GAAG,UAAU,CAAC,SAAS;gBACrC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,KAAK;gBAC9C,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK;gBAC1C,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK;gBAC1C,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC;YAEjD,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC;YAC9B,OAAO,CAAC,GAAG,CAAC,mBAAmB,YAAY,EAAE,CAAC,CAAC;YAC/C,IAAI,YAAY,EAAE,CAAC;gBACjB,OAAO,CAAC,GAAG,CAAC,iBAAiB,UAAU,EAAE,CAAC,CAAC;gBAC3C,OAAO,CAAC,GAAG,CAAC,SAAS,UAAU,CAAC,SAAU,CAAC,GAAG,SAAS,UAAU,CAAC,SAAU,CAAC,GAAG,EAAE,CAAC,CAAC;gBACpF,OAAO,CAAC,GAAG,CAAC,SAAS,UAAU,CAAC,SAAU,CAAC,GAAG,SAAS,UAAU,CAAC,SAAU,CAAC,GAAG,EAAE,CAAC,CAAC;gBACpF,OAAO,CAAC,GAAG,CAAC,SAAS,UAAU,CAAC,SAAU,CAAC,GAAG,SAAS,UAAU,CAAC,SAAU,CAAC,GAAG,EAAE,CAAC,CAAC;YACtF,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAED,KAAK,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=debug-vertex.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"debug-vertex.d.ts","sourceRoot":"","sources":["../../src/debug/debug-vertex.ts"],"names":[],"mappings":""}