@mcp-consultant-tools/figma 33.0.0 → 35.0.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/cli.js +0 -0
- package/build/index.js +0 -0
- package/build/tool-examples.js +1 -0
- package/build/tools/figma-tools.d.ts.map +1 -1
- package/build/tools/figma-tools.js +12 -4
- package/build/tools/figma-tools.js.map +1 -1
- package/package.json +2 -2
- package/build/FigmaService.d.ts +0 -64
- package/build/FigmaService.d.ts.map +0 -1
- package/build/FigmaService.js +0 -162
- package/build/FigmaService.js.map +0 -1
package/build/cli.js
CHANGED
|
File without changes
|
package/build/index.js
CHANGED
|
File without changes
|
package/build/tool-examples.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"figma-tools.d.ts","sourceRoot":"","sources":["../../src/tools/figma-tools.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAgBlD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,cAAc,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"figma-tools.d.ts","sourceRoot":"","sources":["../../src/tools/figma-tools.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAgBlD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,cAAc,GAAG,IAAI,CA+RzE"}
|
|
@@ -18,7 +18,9 @@ export function registerFigmaTools(server, ctx) {
|
|
|
18
18
|
simplifyConnectors: z.boolean().optional().describe("Simplify CONNECTOR nodes to just connection endpoints (startNodeId, endNodeId, text). Preserves relationship data while removing visual properties. Default: true. Set to false for full connector data."),
|
|
19
19
|
simplifyComponentInstances: z.boolean().optional().describe("Keep componentId and componentProperties on INSTANCE nodes but remove visual styling. Ideal for ADO User Story components. Default: true. Set to false for full instance data."),
|
|
20
20
|
extractors: z.array(z.enum(["layout", "text", "visuals", "component"])).optional().describe(descWithExamples("Override which extractors to use. Default uses all.", EXTRACTOR_EXAMPLES)),
|
|
21
|
-
}),
|
|
21
|
+
}),
|
|
22
|
+
// Pure read: fetches design data from the Figma API.
|
|
23
|
+
{ readOnlyHint: true, openWorldHint: true }, async ({ fileKey, nodeId, depth, excludeStyles, tablesToMarkdown, simplifyConnectors, simplifyComponentInstances, extractors, returnFullResponse, }) => {
|
|
22
24
|
try {
|
|
23
25
|
const dataOptions = {
|
|
24
26
|
excludeStyles,
|
|
@@ -53,7 +55,9 @@ export function registerFigmaTools(server, ctx) {
|
|
|
53
55
|
])).optional().describe(descWithExamples("Optional color to category overrides. Map hex colors to categories. ('si-investigation' is a deprecated alias for 'investigation' — output always uses 'investigation'.)", STICKY_CATEGORY_EXAMPLES)),
|
|
54
56
|
storyIdPattern: z.string().optional().describe(descWithExamples("Optional custom regex pattern for extracting story IDs", STORY_ID_PATTERN_EXAMPLES)),
|
|
55
57
|
includeScreenshot: z.boolean().optional().describe("When true and nodeId is set, returns a 2x PNG screenshot of the node as an image content block alongside the semantic data."),
|
|
56
|
-
}),
|
|
58
|
+
}),
|
|
59
|
+
// Pure read: extracts semantic data from the Figma API.
|
|
60
|
+
{ readOnlyHint: true, openWorldHint: true }, async ({ fileKey, nodeId, stickyColorOverrides, storyIdPattern, includeScreenshot, returnFullResponse, }) => {
|
|
57
61
|
try {
|
|
58
62
|
const dataOptions = {
|
|
59
63
|
excludeStyles: false,
|
|
@@ -121,7 +125,9 @@ export function registerFigmaTools(server, ctx) {
|
|
|
121
125
|
adoOrganization: z.string().optional().describe(descWithExamples("Azure DevOps organization name for constructing work item links", ADO_ORG_EXAMPLES)),
|
|
122
126
|
adoProject: z.string().optional().describe(descWithExamples("Azure DevOps project name for constructing work item links", ADO_PROJECT_EXAMPLES)),
|
|
123
127
|
includePlaceholders: z.boolean().optional().describe("Include ADO components with placeholder IDs (e.g. 'ADO xxxxx'). Default: false (placeholders are filtered out)."),
|
|
124
|
-
}),
|
|
128
|
+
}),
|
|
129
|
+
// Pure read: extracts ADO story data from the Figma API.
|
|
130
|
+
{ readOnlyHint: true, openWorldHint: true }, async ({ fileKey, nodeId, adoOrganization, adoProject, includePlaceholders, returnFullResponse, }) => {
|
|
125
131
|
try {
|
|
126
132
|
const dataOptions = {
|
|
127
133
|
excludeStyles: true,
|
|
@@ -159,7 +165,9 @@ export function registerFigmaTools(server, ctx) {
|
|
|
159
165
|
localPath: z.string().describe("Local directory path to save images (created if needed)"),
|
|
160
166
|
format: z.enum(["png", "svg", "jpg", "pdf"]).optional().describe("Image format. Default: png"),
|
|
161
167
|
scale: z.number().optional().describe("Scale factor 0.01-4. Default: 2 (for retina)"),
|
|
162
|
-
},
|
|
168
|
+
},
|
|
169
|
+
// Read from Figma API; writes rendered images to local disk only (no remote mutation).
|
|
170
|
+
{ readOnlyHint: true, openWorldHint: true }, async ({ fileKey, nodeIds, localPath, format, scale }) => {
|
|
163
171
|
try {
|
|
164
172
|
const parsedIds = nodeIds.split(';').map(id => id.trim()).filter(Boolean);
|
|
165
173
|
const imageMap = await ctx.figma.getNodeImages(fileKey, parsedIds, { format, scale });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"figma-tools.js","sourceRoot":"","sources":["../../src/tools/figma-tools.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,mBAAmB,EACnB,yBAAyB,EACzB,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,4BAA4B,CAAC;AAGpC,OAAO,EAAE,mBAAmB,EAAE,MAAM,2CAA2C,CAAC;AAEhF,OAAO,EAAE,iBAAiB,EAAE,MAAM,4CAA4C,CAAC;AAC/E,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,EAChB,kBAAkB,EAClB,wBAAwB,EACxB,yBAAyB,EACzB,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,qBAAqB,CAAC;AAE7B,MAAM,UAAU,kBAAkB,CAAC,MAAW,EAAE,GAAmB;IACjE,MAAM,QAAQ,GAAG,oBAAoB,CAAC,kBAAkB,CAAC,CAAC;IAE1D,uBAAuB;IACvB,MAAM,CAAC,IAAI,CACT,gBAAgB,EAChB,2SAA2S,EAC3S,oBAAoB,CAAC;QACnB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC,+CAA+C,EAAE,iBAAiB,CAAC,CAAC;QAClH,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC,sHAAsH,EAAE,gBAAgB,CAAC,CAAC;QAClM,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iHAAiH,CAAC;QACxJ,aAAa,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6NAA6N,CAAC;QAC7Q,gBAAgB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,+KAA+K,CAAC;QAClO,kBAAkB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0MAA0M,CAAC;QAC/P,0BAA0B,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gLAAgL,CAAC;QAC7O,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC,qDAAqD,EAAE,kBAAkB,CAAC,CAAC;KACzL,CAAC,
|
|
1
|
+
{"version":3,"file":"figma-tools.js","sourceRoot":"","sources":["../../src/tools/figma-tools.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mcp-consultant-tools/figma",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "35.0.0-beta.1",
|
|
4
4
|
"description": "MCP server for Figma integration - design data extraction and transformation",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./build/index.js",
|
|
@@ -40,7 +40,7 @@
|
|
|
40
40
|
},
|
|
41
41
|
"dependencies": {
|
|
42
42
|
"@figma/rest-api-spec": "^0.33.0",
|
|
43
|
-
"@mcp-consultant-tools/core": "
|
|
43
|
+
"@mcp-consultant-tools/core": "33.0.0",
|
|
44
44
|
"@modelcontextprotocol/sdk": "^1.0.4",
|
|
45
45
|
"commander": "^14.0.3",
|
|
46
46
|
"zod": "^3.24.1"
|
package/build/FigmaService.d.ts
DELETED
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
import type { SimplifiedDesign } from "./figma/extractors/types.js";
|
|
2
|
-
export interface FigmaConfig {
|
|
3
|
-
apiKey?: string;
|
|
4
|
-
oauthToken?: string;
|
|
5
|
-
useOAuth: boolean;
|
|
6
|
-
}
|
|
7
|
-
/**
|
|
8
|
-
* Options for controlling what data is extracted and how it's formatted.
|
|
9
|
-
* All options default to false to preserve backward compatibility.
|
|
10
|
-
*/
|
|
11
|
-
export interface FigmaDataOptions {
|
|
12
|
-
/** Remove all styling info (fills, strokes, effects, textStyle, opacity, borderRadius) */
|
|
13
|
-
excludeStyles?: boolean;
|
|
14
|
-
/** Convert TABLE nodes to markdown format */
|
|
15
|
-
tablesToMarkdown?: boolean;
|
|
16
|
-
/** Simplify CONNECTOR nodes to just endpoints (startNodeId, endNodeId) */
|
|
17
|
-
simplifyConnectors?: boolean;
|
|
18
|
-
/** Keep componentId and componentProperties but remove visual styling from INSTANCE nodes */
|
|
19
|
-
simplifyComponentInstances?: boolean;
|
|
20
|
-
/** Override which extractors to use: "layout", "text", "visuals", "component" */
|
|
21
|
-
extractors?: ("layout" | "text" | "visuals" | "component")[];
|
|
22
|
-
}
|
|
23
|
-
/**
|
|
24
|
-
* Service for interacting with the Figma API
|
|
25
|
-
* Follows the service pattern established by PowerPlatformService
|
|
26
|
-
*/
|
|
27
|
-
export declare class FigmaService {
|
|
28
|
-
private config;
|
|
29
|
-
private readonly baseUrl;
|
|
30
|
-
constructor(config: FigmaConfig);
|
|
31
|
-
/**
|
|
32
|
-
* Get authentication headers based on configuration
|
|
33
|
-
*/
|
|
34
|
-
private getAuthHeaders;
|
|
35
|
-
/**
|
|
36
|
-
* Make an authenticated request to the Figma API
|
|
37
|
-
*/
|
|
38
|
-
private request;
|
|
39
|
-
/**
|
|
40
|
-
* Get raw Figma API response for a file
|
|
41
|
-
* @param fileKey - The Figma file key from the URL
|
|
42
|
-
* @param depth - Optional depth limit for traversal
|
|
43
|
-
*/
|
|
44
|
-
private getFigmaFile;
|
|
45
|
-
/**
|
|
46
|
-
* Get raw Figma API response for specific nodes
|
|
47
|
-
* @param fileKey - The Figma file key from the URL
|
|
48
|
-
* @param nodeIds - Array of node IDs to fetch
|
|
49
|
-
* @param depth - Optional depth limit for traversal
|
|
50
|
-
*/
|
|
51
|
-
private getFigmaNodes;
|
|
52
|
-
/**
|
|
53
|
-
* Get comprehensive Figma design data in simplified, AI-friendly format
|
|
54
|
-
* This is the main method exposed to MCP tools
|
|
55
|
-
*
|
|
56
|
-
* @param fileKey - The Figma file key from the URL
|
|
57
|
-
* @param nodeId - Optional specific node ID(s) to fetch (format: "1:10" or "1:10;2:20")
|
|
58
|
-
* @param depth - Optional tree traversal depth limit
|
|
59
|
-
* @param dataOptions - Optional optimization options for reducing output size
|
|
60
|
-
* @returns Simplified design data ready for AI consumption
|
|
61
|
-
*/
|
|
62
|
-
getFigmaData(fileKey: string, nodeId?: string, depth?: number, dataOptions?: FigmaDataOptions): Promise<SimplifiedDesign>;
|
|
63
|
-
}
|
|
64
|
-
//# sourceMappingURL=FigmaService.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"FigmaService.d.ts","sourceRoot":"","sources":["../src/FigmaService.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,gBAAgB,EAAiC,MAAM,6BAA6B,CAAC;AAInG,MAAM,WAAW,WAAW;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,0FAA0F;IAC1F,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,6CAA6C;IAC7C,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,0EAA0E;IAC1E,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,6FAA6F;IAC7F,0BAA0B,CAAC,EAAE,OAAO,CAAC;IACrC,iFAAiF;IACjF,UAAU,CAAC,EAAE,CAAC,QAAQ,GAAG,MAAM,GAAG,SAAS,GAAG,WAAW,CAAC,EAAE,CAAC;CAC9D;AAED;;;GAGG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA8B;gBAE1C,MAAM,EAAE,WAAW;IAiB/B;;OAEG;IACH,OAAO,CAAC,cAAc;IAYtB;;OAEG;YACW,OAAO;IAgBrB;;;;OAIG;YACW,YAAY;IAQ1B;;;;;OAKG;YACW,aAAa;IAc3B;;;;;;;;;OASG;IACG,YAAY,CAChB,OAAO,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,MAAM,EACf,KAAK,CAAC,EAAE,MAAM,EACd,WAAW,CAAC,EAAE,gBAAgB,GAC7B,OAAO,CAAC,gBAAgB,CAAC;CAyF7B"}
|
package/build/FigmaService.js
DELETED
|
@@ -1,162 +0,0 @@
|
|
|
1
|
-
import { fetchWithRetry } from "./figma/utils/fetch-with-retry.js";
|
|
2
|
-
import { simplifyRawFigmaObject } from "./figma/extractors/design-extractor.js";
|
|
3
|
-
import { allExtractors, layoutExtractor, textExtractor, visualsExtractor, componentExtractor, connectorExtractor, simplifyAllConnectors, } from "./figma/extractors/built-in.js";
|
|
4
|
-
import { stripStylesFromDesign } from "./figma/transformers/style-stripper.js";
|
|
5
|
-
import { simplifyAllComponentInstances } from "./figma/transformers/component-simplifier.js";
|
|
6
|
-
/**
|
|
7
|
-
* Service for interacting with the Figma API
|
|
8
|
-
* Follows the service pattern established by PowerPlatformService
|
|
9
|
-
*/
|
|
10
|
-
export class FigmaService {
|
|
11
|
-
config;
|
|
12
|
-
baseUrl = "https://api.figma.com/v1";
|
|
13
|
-
constructor(config) {
|
|
14
|
-
this.config = config;
|
|
15
|
-
// Validate configuration
|
|
16
|
-
if (!this.config.apiKey && !this.config.oauthToken) {
|
|
17
|
-
throw new Error("Figma configuration requires either apiKey or oauthToken");
|
|
18
|
-
}
|
|
19
|
-
if (this.config.useOAuth && !this.config.oauthToken) {
|
|
20
|
-
throw new Error("useOAuth is true but oauthToken is not provided");
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
/**
|
|
24
|
-
* Get authentication headers based on configuration
|
|
25
|
-
*/
|
|
26
|
-
getAuthHeaders() {
|
|
27
|
-
if (this.config.useOAuth && this.config.oauthToken) {
|
|
28
|
-
console.error("Using OAuth Bearer token for authentication");
|
|
29
|
-
return { Authorization: `Bearer ${this.config.oauthToken}` };
|
|
30
|
-
}
|
|
31
|
-
else if (this.config.apiKey) {
|
|
32
|
-
console.error("Using Personal Access Token for authentication");
|
|
33
|
-
return { "X-Figma-Token": this.config.apiKey };
|
|
34
|
-
}
|
|
35
|
-
throw new Error("No valid authentication method configured");
|
|
36
|
-
}
|
|
37
|
-
/**
|
|
38
|
-
* Make an authenticated request to the Figma API
|
|
39
|
-
*/
|
|
40
|
-
async request(endpoint) {
|
|
41
|
-
try {
|
|
42
|
-
console.error(`Calling ${this.baseUrl}${endpoint}`);
|
|
43
|
-
const headers = this.getAuthHeaders();
|
|
44
|
-
return await fetchWithRetry(`${this.baseUrl}${endpoint}`, {
|
|
45
|
-
headers,
|
|
46
|
-
});
|
|
47
|
-
}
|
|
48
|
-
catch (error) {
|
|
49
|
-
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
50
|
-
throw new Error(`Failed to make request to Figma API endpoint '${endpoint}': ${errorMessage}`);
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
/**
|
|
54
|
-
* Get raw Figma API response for a file
|
|
55
|
-
* @param fileKey - The Figma file key from the URL
|
|
56
|
-
* @param depth - Optional depth limit for traversal
|
|
57
|
-
*/
|
|
58
|
-
async getFigmaFile(fileKey, depth) {
|
|
59
|
-
const endpoint = `/files/${fileKey}${depth ? `?depth=${depth}` : ""}`;
|
|
60
|
-
console.error(`Retrieving Figma file: ${fileKey} (depth: ${depth ?? "default"})`);
|
|
61
|
-
const response = await this.request(endpoint);
|
|
62
|
-
return response;
|
|
63
|
-
}
|
|
64
|
-
/**
|
|
65
|
-
* Get raw Figma API response for specific nodes
|
|
66
|
-
* @param fileKey - The Figma file key from the URL
|
|
67
|
-
* @param nodeIds - Array of node IDs to fetch
|
|
68
|
-
* @param depth - Optional depth limit for traversal
|
|
69
|
-
*/
|
|
70
|
-
async getFigmaNodes(fileKey, nodeIds, depth) {
|
|
71
|
-
const endpoint = `/files/${fileKey}/nodes?ids=${nodeIds.join(",")}${depth ? `&depth=${depth}` : ""}`;
|
|
72
|
-
console.error(`Retrieving Figma nodes: ${nodeIds.join(", ")} from ${fileKey} (depth: ${depth ?? "default"})`);
|
|
73
|
-
const response = await this.request(endpoint);
|
|
74
|
-
return response;
|
|
75
|
-
}
|
|
76
|
-
/**
|
|
77
|
-
* Get comprehensive Figma design data in simplified, AI-friendly format
|
|
78
|
-
* This is the main method exposed to MCP tools
|
|
79
|
-
*
|
|
80
|
-
* @param fileKey - The Figma file key from the URL
|
|
81
|
-
* @param nodeId - Optional specific node ID(s) to fetch (format: "1:10" or "1:10;2:20")
|
|
82
|
-
* @param depth - Optional tree traversal depth limit
|
|
83
|
-
* @param dataOptions - Optional optimization options for reducing output size
|
|
84
|
-
* @returns Simplified design data ready for AI consumption
|
|
85
|
-
*/
|
|
86
|
-
async getFigmaData(fileKey, nodeId, depth, dataOptions) {
|
|
87
|
-
try {
|
|
88
|
-
// Apply defaults - optimizations ON by default for reduced context usage
|
|
89
|
-
const effectiveOptions = {
|
|
90
|
-
excludeStyles: dataOptions?.excludeStyles ?? true,
|
|
91
|
-
tablesToMarkdown: dataOptions?.tablesToMarkdown ?? true,
|
|
92
|
-
simplifyConnectors: dataOptions?.simplifyConnectors ?? true,
|
|
93
|
-
simplifyComponentInstances: dataOptions?.simplifyComponentInstances ?? true,
|
|
94
|
-
extractors: dataOptions?.extractors,
|
|
95
|
-
};
|
|
96
|
-
// Fetch raw data from Figma API
|
|
97
|
-
let rawData;
|
|
98
|
-
if (nodeId) {
|
|
99
|
-
// Parse node IDs (support both single and multiple, semicolon-separated)
|
|
100
|
-
const nodeIds = nodeId.split(";").map(id => id.trim()).filter(id => id.length > 0);
|
|
101
|
-
rawData = await this.getFigmaNodes(fileKey, nodeIds, depth);
|
|
102
|
-
}
|
|
103
|
-
else {
|
|
104
|
-
rawData = await this.getFigmaFile(fileKey, depth);
|
|
105
|
-
}
|
|
106
|
-
// Build extractor array based on options
|
|
107
|
-
let extractorList = [...allExtractors];
|
|
108
|
-
if (effectiveOptions.extractors) {
|
|
109
|
-
// Use custom extractor selection
|
|
110
|
-
extractorList = [];
|
|
111
|
-
if (effectiveOptions.extractors.includes("layout")) {
|
|
112
|
-
extractorList.push(layoutExtractor);
|
|
113
|
-
}
|
|
114
|
-
if (effectiveOptions.extractors.includes("text")) {
|
|
115
|
-
extractorList.push(textExtractor);
|
|
116
|
-
}
|
|
117
|
-
if (effectiveOptions.extractors.includes("visuals")) {
|
|
118
|
-
extractorList.push(visualsExtractor);
|
|
119
|
-
}
|
|
120
|
-
if (effectiveOptions.extractors.includes("component")) {
|
|
121
|
-
extractorList.push(componentExtractor);
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
// Always add connector extractor for relationship data
|
|
125
|
-
extractorList.push(connectorExtractor);
|
|
126
|
-
// Transform raw Figma data into simplified format using extractors
|
|
127
|
-
const traversalOptions = {
|
|
128
|
-
maxDepth: depth,
|
|
129
|
-
optimization: {
|
|
130
|
-
tablesToMarkdown: effectiveOptions.tablesToMarkdown,
|
|
131
|
-
// Note: simplifyConnectors and simplifyComponentInstances are applied post-processing
|
|
132
|
-
},
|
|
133
|
-
};
|
|
134
|
-
let simplifiedData = simplifyRawFigmaObject(rawData, extractorList, traversalOptions);
|
|
135
|
-
// Apply post-processing transformations
|
|
136
|
-
// Order matters: apply connector simplification before style stripping
|
|
137
|
-
// so connector endpoints are preserved
|
|
138
|
-
if (effectiveOptions.simplifyConnectors) {
|
|
139
|
-
simplifiedData = {
|
|
140
|
-
...simplifiedData,
|
|
141
|
-
nodes: simplifyAllConnectors(simplifiedData.nodes),
|
|
142
|
-
};
|
|
143
|
-
}
|
|
144
|
-
if (effectiveOptions.simplifyComponentInstances) {
|
|
145
|
-
simplifiedData = {
|
|
146
|
-
...simplifiedData,
|
|
147
|
-
nodes: simplifyAllComponentInstances(simplifiedData.nodes),
|
|
148
|
-
};
|
|
149
|
-
}
|
|
150
|
-
// Apply style stripping last - it removes styling from all nodes
|
|
151
|
-
if (effectiveOptions.excludeStyles) {
|
|
152
|
-
simplifiedData = stripStylesFromDesign(simplifiedData);
|
|
153
|
-
}
|
|
154
|
-
return simplifiedData;
|
|
155
|
-
}
|
|
156
|
-
catch (error) {
|
|
157
|
-
console.error("Error fetching Figma data:", error);
|
|
158
|
-
throw new Error(`Failed to fetch Figma data: ${error.message}`);
|
|
159
|
-
}
|
|
160
|
-
}
|
|
161
|
-
}
|
|
162
|
-
//# sourceMappingURL=FigmaService.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"FigmaService.js","sourceRoot":"","sources":["../src/FigmaService.ts"],"names":[],"mappings":"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"}
|