@atezer/figma-mcp-bridge 1.7.23 → 1.7.24

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 (77) hide show
  1. package/CHANGELOG.md +30 -0
  2. package/README.md +1 -1
  3. package/dist/core/config.d.ts +1 -5
  4. package/dist/core/config.d.ts.map +1 -1
  5. package/dist/core/config.js +11 -111
  6. package/dist/core/config.js.map +1 -1
  7. package/dist/core/plugin-bridge-server.d.ts.map +1 -1
  8. package/dist/core/plugin-bridge-server.js +1 -2
  9. package/dist/core/plugin-bridge-server.js.map +1 -1
  10. package/dist/core/types/index.d.ts +2 -98
  11. package/dist/core/types/index.d.ts.map +1 -1
  12. package/dist/local-plugin-only.d.ts.map +1 -1
  13. package/dist/local-plugin-only.js +14 -13
  14. package/dist/local-plugin-only.js.map +1 -1
  15. package/f-mcp-plugin/README.md +8 -15
  16. package/f-mcp-plugin/manifest.json +1 -3
  17. package/package.json +8 -31
  18. package/dist/browser/base.d.ts +0 -50
  19. package/dist/browser/base.d.ts.map +0 -1
  20. package/dist/browser/base.js +0 -6
  21. package/dist/browser/base.js.map +0 -1
  22. package/dist/browser/local.d.ts +0 -81
  23. package/dist/browser/local.d.ts.map +0 -1
  24. package/dist/browser/local.js +0 -283
  25. package/dist/browser/local.js.map +0 -1
  26. package/dist/core/console-monitor.d.ts +0 -82
  27. package/dist/core/console-monitor.d.ts.map +0 -1
  28. package/dist/core/console-monitor.js +0 -428
  29. package/dist/core/console-monitor.js.map +0 -1
  30. package/dist/core/design-system-manifest.d.ts +0 -272
  31. package/dist/core/design-system-manifest.d.ts.map +0 -1
  32. package/dist/core/design-system-manifest.js +0 -261
  33. package/dist/core/design-system-manifest.js.map +0 -1
  34. package/dist/core/enrichment/enrichment-service.d.ts +0 -52
  35. package/dist/core/enrichment/enrichment-service.d.ts.map +0 -1
  36. package/dist/core/enrichment/enrichment-service.js +0 -272
  37. package/dist/core/enrichment/enrichment-service.js.map +0 -1
  38. package/dist/core/enrichment/index.d.ts +0 -8
  39. package/dist/core/enrichment/index.d.ts.map +0 -1
  40. package/dist/core/enrichment/index.js +0 -8
  41. package/dist/core/enrichment/index.js.map +0 -1
  42. package/dist/core/enrichment/relationship-mapper.d.ts +0 -106
  43. package/dist/core/enrichment/relationship-mapper.d.ts.map +0 -1
  44. package/dist/core/enrichment/relationship-mapper.js +0 -352
  45. package/dist/core/enrichment/relationship-mapper.js.map +0 -1
  46. package/dist/core/enrichment/style-resolver.d.ts +0 -80
  47. package/dist/core/enrichment/style-resolver.d.ts.map +0 -1
  48. package/dist/core/enrichment/style-resolver.js +0 -327
  49. package/dist/core/enrichment/style-resolver.js.map +0 -1
  50. package/dist/core/figma-api.d.ts +0 -137
  51. package/dist/core/figma-api.d.ts.map +0 -1
  52. package/dist/core/figma-api.js +0 -274
  53. package/dist/core/figma-api.js.map +0 -1
  54. package/dist/core/figma-desktop-connector.d.ts +0 -242
  55. package/dist/core/figma-desktop-connector.d.ts.map +0 -1
  56. package/dist/core/figma-desktop-connector.js +0 -1042
  57. package/dist/core/figma-desktop-connector.js.map +0 -1
  58. package/dist/core/figma-reconstruction-spec.d.ts +0 -162
  59. package/dist/core/figma-reconstruction-spec.d.ts.map +0 -1
  60. package/dist/core/figma-reconstruction-spec.js +0 -387
  61. package/dist/core/figma-reconstruction-spec.js.map +0 -1
  62. package/dist/core/figma-tools.d.ts +0 -21
  63. package/dist/core/figma-tools.d.ts.map +0 -1
  64. package/dist/core/figma-tools.js +0 -2920
  65. package/dist/core/figma-tools.js.map +0 -1
  66. package/dist/core/snippet-injector.d.ts +0 -24
  67. package/dist/core/snippet-injector.d.ts.map +0 -1
  68. package/dist/core/snippet-injector.js +0 -97
  69. package/dist/core/snippet-injector.js.map +0 -1
  70. package/dist/core/types/enriched.d.ts +0 -213
  71. package/dist/core/types/enriched.d.ts.map +0 -1
  72. package/dist/core/types/enriched.js +0 -6
  73. package/dist/core/types/enriched.js.map +0 -1
  74. package/dist/local.d.ts +0 -73
  75. package/dist/local.d.ts.map +0 -1
  76. package/dist/local.js +0 -2605
  77. package/dist/local.js.map +0 -1
@@ -1,327 +0,0 @@
1
- /**
2
- * Style Value Resolver
3
- * Resolves style values from variable references and provides formatted outputs
4
- */
5
- export class StyleValueResolver {
6
- constructor(logger) {
7
- this.cache = new Map();
8
- this.variableCache = new Map();
9
- this.logger = logger;
10
- }
11
- /**
12
- * Resolve a style's value, handling variable references
13
- */
14
- async resolveStyleValue(style, variables, maxDepth = 10) {
15
- const cacheKey = `style:${style.key || style.node_id}`;
16
- // Check cache
17
- if (this.cache.has(cacheKey)) {
18
- return this.cache.get(cacheKey);
19
- }
20
- try {
21
- // Get the actual style node data
22
- const styleData = await this.getStyleData(style);
23
- if (!styleData) {
24
- return { value: null };
25
- }
26
- // Check if this style uses a variable
27
- const variableRef = this.findVariableReference(styleData);
28
- if (variableRef && variables.has(variableRef.id)) {
29
- // Resolve the variable value
30
- const variable = variables.get(variableRef.id);
31
- const resolvedValue = await this.resolveVariableValue(variable, variables, maxDepth);
32
- const result = {
33
- value: resolvedValue,
34
- variableRef: {
35
- id: variableRef.id,
36
- name: variable.name,
37
- collection: variable.variableCollectionId,
38
- resolvedType: variable.resolvedType,
39
- },
40
- };
41
- this.cache.set(cacheKey, result);
42
- return result;
43
- }
44
- // No variable reference, return direct value
45
- const directValue = this.extractDirectValue(styleData, style.style_type);
46
- const result = { value: directValue };
47
- this.cache.set(cacheKey, result);
48
- return result;
49
- }
50
- catch (error) {
51
- this.logger.error({
52
- error,
53
- style: style.name,
54
- }, "Error resolving style value");
55
- return { value: null };
56
- }
57
- }
58
- /**
59
- * Resolve a variable's value, handling alias chains
60
- */
61
- async resolveVariableValue(variable, allVariables, maxDepth = 10, currentDepth = 0) {
62
- if (currentDepth >= maxDepth) {
63
- this.logger.warn({
64
- variable: variable.name,
65
- }, "Max resolution depth reached");
66
- return null;
67
- }
68
- const cacheKey = `var:${variable.id}`;
69
- if (this.variableCache.has(cacheKey)) {
70
- return this.variableCache.get(cacheKey);
71
- }
72
- try {
73
- // Get the value for the default mode (or first available mode)
74
- const modes = Object.keys(variable.valuesByMode || {});
75
- if (modes.length === 0) {
76
- return null;
77
- }
78
- const defaultMode = modes[0]; // Uses first mode; multi-mode selection requires page-level mode context
79
- const value = variable.valuesByMode[defaultMode];
80
- // Check if this is an alias (reference to another variable)
81
- if (typeof value === "object" && value.type === "VARIABLE_ALIAS") {
82
- const targetVariable = allVariables.get(value.id);
83
- if (!targetVariable) {
84
- this.logger.warn({
85
- source: variable.name,
86
- targetId: value.id,
87
- }, "Variable alias target not found");
88
- return null;
89
- }
90
- // Recursively resolve the alias
91
- const resolvedValue = await this.resolveVariableValue(targetVariable, allVariables, maxDepth, currentDepth + 1);
92
- this.variableCache.set(cacheKey, resolvedValue);
93
- return resolvedValue;
94
- }
95
- // Direct value - format based on type
96
- const formattedValue = this.formatVariableValue(value, variable.resolvedType);
97
- this.variableCache.set(cacheKey, formattedValue);
98
- return formattedValue;
99
- }
100
- catch (error) {
101
- this.logger.error({
102
- error,
103
- variable: variable.name,
104
- }, "Error resolving variable value");
105
- return null;
106
- }
107
- }
108
- /**
109
- * Format a variable value based on its type
110
- */
111
- formatVariableValue(value, type) {
112
- if (!value)
113
- return null;
114
- switch (type) {
115
- case "COLOR":
116
- return this.formatColor(value);
117
- case "FLOAT":
118
- case "NUMBER":
119
- return value;
120
- case "STRING":
121
- return value;
122
- case "BOOLEAN":
123
- return Boolean(value);
124
- default:
125
- return value;
126
- }
127
- }
128
- /**
129
- * Format a color value to hex string
130
- */
131
- formatColor(color) {
132
- if (typeof color === "string") {
133
- return color;
134
- }
135
- if (color.r !== undefined && color.g !== undefined && color.b !== undefined) {
136
- const r = Math.round(color.r * 255);
137
- const g = Math.round(color.g * 255);
138
- const b = Math.round(color.b * 255);
139
- return `#${r.toString(16).padStart(2, "0")}${g.toString(16).padStart(2, "0")}${b.toString(16).padStart(2, "0")}`.toUpperCase();
140
- }
141
- return null;
142
- }
143
- /**
144
- * Generate export formats for a resolved value
145
- */
146
- generateExportFormats(name, value, type, formats = ["css", "sass", "tailwind", "typescript", "json"]) {
147
- const result = {};
148
- // Sanitize name for different formats
149
- const cssName = this.toCSSVariableName(name);
150
- const sassName = this.toSassVariableName(name);
151
- const tailwindName = this.toTailwindClassName(name);
152
- const tsName = this.toTypeScriptPath(name);
153
- const jsonPath = this.toJSONPath(name);
154
- for (const format of formats) {
155
- switch (format) {
156
- case "css":
157
- result.css = `var(${cssName})`;
158
- break;
159
- case "sass":
160
- result.sass = sassName;
161
- break;
162
- case "tailwind":
163
- result.tailwind = tailwindName;
164
- break;
165
- case "typescript":
166
- result.typescript = tsName;
167
- break;
168
- case "json":
169
- result.json = jsonPath;
170
- break;
171
- }
172
- }
173
- return result;
174
- }
175
- /**
176
- * Convert token name to CSS variable format
177
- * Example: "color/background/primary-default" -> "--color-background-primary-default"
178
- */
179
- toCSSVariableName(name) {
180
- return `--${name.replace(/\//g, "-").toLowerCase()}`;
181
- }
182
- /**
183
- * Convert token name to Sass variable format
184
- * Example: "color/background/primary-default" -> "$color-background-primary-default"
185
- */
186
- toSassVariableName(name) {
187
- return `$${name.replace(/\//g, "-").toLowerCase()}`;
188
- }
189
- /**
190
- * Convert token name to Tailwind class format
191
- * Example: "color/background/primary-default" -> "bg-primary"
192
- */
193
- toTailwindClassName(name) {
194
- const parts = name.split("/");
195
- // Try to infer Tailwind utility class
196
- if (parts[0] === "color") {
197
- if (parts[1] === "background") {
198
- return `bg-${parts[parts.length - 1].toLowerCase()}`;
199
- }
200
- if (parts[1] === "text") {
201
- return `text-${parts[parts.length - 1].toLowerCase()}`;
202
- }
203
- if (parts[1] === "border") {
204
- return `border-${parts[parts.length - 1].toLowerCase()}`;
205
- }
206
- }
207
- if (parts[0] === "spacing") {
208
- return `space-${parts[parts.length - 1].toLowerCase()}`;
209
- }
210
- // Fallback: use last part
211
- return parts[parts.length - 1].toLowerCase();
212
- }
213
- /**
214
- * Convert token name to TypeScript path format
215
- * Example: "color/background/primary-default" -> "tokens.color.background.primaryDefault"
216
- */
217
- toTypeScriptPath(name) {
218
- const parts = name.split("/");
219
- const camelCaseParts = parts.map((part, index) => {
220
- if (index === 0)
221
- return part.toLowerCase();
222
- return part
223
- .split("-")
224
- .map((word, i) => i === 0
225
- ? word.toLowerCase()
226
- : word.charAt(0).toUpperCase() + word.slice(1).toLowerCase())
227
- .join("");
228
- });
229
- return `tokens.${camelCaseParts.join(".")}`;
230
- }
231
- /**
232
- * Convert token name to nested JSON path
233
- * Example: "color/background/primary-default" -> { color: { background: { primaryDefault: value } } }
234
- */
235
- toJSONPath(name) {
236
- const parts = name.split("/");
237
- const result = {};
238
- let current = result;
239
- for (let i = 0; i < parts.length; i++) {
240
- const key = parts[i]
241
- .split("-")
242
- .map((word, j) => j === 0
243
- ? word.toLowerCase()
244
- : word.charAt(0).toUpperCase() + word.slice(1).toLowerCase())
245
- .join("");
246
- if (i === parts.length - 1) {
247
- current[key] = "[VALUE]"; // Placeholder
248
- }
249
- else {
250
- current[key] = {};
251
- current = current[key];
252
- }
253
- }
254
- return result;
255
- }
256
- /**
257
- * Get style data from Figma API
258
- * This would be called via the Figma API client
259
- */
260
- async getStyleData(style) {
261
- // Style data comes from plugin bridge (getLocalStyles), not REST API
262
- // Return the style object as-is — full detail already available
263
- return style;
264
- }
265
- /**
266
- * Find variable reference in style data
267
- */
268
- findVariableReference(styleData) {
269
- // Check for boundVariables (new variables API)
270
- if (styleData.boundVariables) {
271
- // Check common properties that can be bound to variables
272
- const props = ["fills", "strokes", "effects", "text"];
273
- for (const prop of props) {
274
- if (styleData.boundVariables[prop]) {
275
- const binding = styleData.boundVariables[prop];
276
- if (Array.isArray(binding) && binding.length > 0) {
277
- return { id: binding[0].id };
278
- }
279
- if (binding.id) {
280
- return { id: binding.id };
281
- }
282
- }
283
- }
284
- }
285
- return null;
286
- }
287
- /**
288
- * Extract direct value from style (no variable)
289
- */
290
- extractDirectValue(styleData, styleType) {
291
- switch (styleType) {
292
- case "FILL":
293
- if (styleData.fills && styleData.fills.length > 0) {
294
- const fill = styleData.fills[0];
295
- if (fill.type === "SOLID") {
296
- return this.formatColor(fill.color);
297
- }
298
- }
299
- return null;
300
- case "TEXT":
301
- if (styleData.fontFamily) {
302
- return {
303
- fontFamily: styleData.fontFamily,
304
- fontSize: styleData.fontSize,
305
- fontWeight: styleData.fontWeight,
306
- lineHeight: styleData.lineHeight,
307
- };
308
- }
309
- return null;
310
- case "EFFECT":
311
- if (styleData.effects && styleData.effects.length > 0) {
312
- return styleData.effects;
313
- }
314
- return null;
315
- default:
316
- return null;
317
- }
318
- }
319
- /**
320
- * Clear the cache
321
- */
322
- clearCache() {
323
- this.cache.clear();
324
- this.variableCache.clear();
325
- }
326
- }
327
- //# sourceMappingURL=style-resolver.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"style-resolver.js","sourceRoot":"","sources":["../../../src/core/enrichment/style-resolver.ts"],"names":[],"mappings":"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"}
@@ -1,137 +0,0 @@
1
- /**
2
- * Figma REST API Client
3
- * Handles HTTP calls to Figma's REST API for file data, variables, components, and styles
4
- */
5
- /**
6
- * Figma API Client Configuration
7
- */
8
- export interface FigmaAPIConfig {
9
- accessToken: string;
10
- }
11
- /**
12
- * Extract file key from Figma URL
13
- * @example https://www.figma.com/design/abc123/My-File -> abc123
14
- */
15
- export declare function extractFileKey(url: string): string | null;
16
- /**
17
- * Figma API Client
18
- * Makes authenticated requests to Figma REST API
19
- */
20
- export declare class FigmaAPI {
21
- private accessToken;
22
- constructor(config: FigmaAPIConfig);
23
- /**
24
- * Make authenticated request to Figma API
25
- */
26
- private request;
27
- /**
28
- * GET /v1/files/:file_key
29
- * Get full file data including document tree, components, and styles
30
- */
31
- getFile(fileKey: string, options?: {
32
- version?: string;
33
- ids?: string[];
34
- depth?: number;
35
- geometry?: 'paths' | 'screen';
36
- plugin_data?: string;
37
- branch_data?: boolean;
38
- }): Promise<any>;
39
- /**
40
- * GET /v1/files/:file_key/variables/local
41
- * Get local variables (design tokens) from a file
42
- */
43
- getLocalVariables(fileKey: string): Promise<any>;
44
- /**
45
- * GET /v1/files/:file_key/variables/published
46
- * Get published variables from a file
47
- */
48
- getPublishedVariables(fileKey: string): Promise<any>;
49
- /**
50
- * GET /v1/files/:file_key/nodes
51
- * Get specific nodes by ID
52
- */
53
- getNodes(fileKey: string, nodeIds: string[], options?: {
54
- version?: string;
55
- depth?: number;
56
- geometry?: 'paths' | 'screen';
57
- plugin_data?: string;
58
- }): Promise<any>;
59
- /**
60
- * GET /v1/files/:file_key/styles
61
- * Get styles from a file
62
- */
63
- getStyles(fileKey: string): Promise<any>;
64
- /**
65
- * GET /v1/files/:file_key/components
66
- * Get components from a file
67
- */
68
- getComponents(fileKey: string): Promise<any>;
69
- /**
70
- * GET /v1/files/:file_key/component_sets
71
- * Get component sets (variants) from a file
72
- */
73
- getComponentSets(fileKey: string): Promise<any>;
74
- /**
75
- * GET /v1/images/:file_key
76
- * Renders images for specified nodes
77
- * @param fileKey - The file key
78
- * @param nodeIds - Node IDs to render (single string or array)
79
- * @param options - Rendering options
80
- * @returns Map of node IDs to image URLs (URLs expire after 30 days)
81
- */
82
- getImages(fileKey: string, nodeIds: string | string[], options?: {
83
- scale?: number;
84
- format?: 'png' | 'jpg' | 'svg' | 'pdf';
85
- svg_outline_text?: boolean;
86
- svg_include_id?: boolean;
87
- svg_include_node_id?: boolean;
88
- svg_simplify_stroke?: boolean;
89
- contents_only?: boolean;
90
- }): Promise<{
91
- images: Record<string, string | null>;
92
- }>;
93
- /**
94
- * Helper: Get all design tokens (variables) with formatted output
95
- */
96
- getAllVariables(fileKey: string): Promise<{
97
- local: any;
98
- published: any;
99
- }>;
100
- /**
101
- * Helper: Get component metadata with properties
102
- */
103
- getComponentData(fileKey: string, nodeId: string): Promise<any>;
104
- /**
105
- * Helper: Search for components by name
106
- */
107
- searchComponents(fileKey: string, searchTerm: string): Promise<any[]>;
108
- }
109
- /**
110
- * Helper function to format variables for display
111
- */
112
- export declare function formatVariables(variablesData: any): {
113
- collections: any[];
114
- variables: any[];
115
- summary: {
116
- totalCollections: number;
117
- totalVariables: number;
118
- variablesByType: Record<string, number>;
119
- };
120
- };
121
- /**
122
- * Helper function to format component data for display
123
- */
124
- export declare function formatComponentData(componentNode: any): {
125
- id: string;
126
- name: string;
127
- type: string;
128
- description?: string;
129
- descriptionMarkdown?: string;
130
- properties?: any;
131
- children?: any[];
132
- bounds?: any;
133
- fills?: any[];
134
- strokes?: any[];
135
- effects?: any[];
136
- };
137
- //# sourceMappingURL=figma-api.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"figma-api.d.ts","sourceRoot":"","sources":["../../src/core/figma-api.ts"],"names":[],"mappings":"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"}