@mcp-consultant-tools/figma 1.0.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.
- package/build/FigmaService.d.ts +47 -0
- package/build/FigmaService.d.ts.map +1 -0
- package/build/FigmaService.js +108 -0
- package/build/FigmaService.js.map +1 -0
- package/build/figma/extractors/built-in.d.ts +57 -0
- package/build/figma/extractors/built-in.d.ts.map +1 -0
- package/build/figma/extractors/built-in.js +206 -0
- package/build/figma/extractors/built-in.js.map +1 -0
- package/build/figma/extractors/design-extractor.d.ts +7 -0
- package/build/figma/extractors/design-extractor.d.ts.map +1 -0
- package/build/figma/extractors/design-extractor.js +66 -0
- package/build/figma/extractors/design-extractor.js.map +1 -0
- package/build/figma/extractors/index.d.ts +5 -0
- package/build/figma/extractors/index.d.ts.map +1 -0
- package/build/figma/extractors/index.js +11 -0
- package/build/figma/extractors/index.js.map +1 -0
- package/build/figma/extractors/node-walker.d.ts +16 -0
- package/build/figma/extractors/node-walker.d.ts.map +1 -0
- package/build/figma/extractors/node-walker.js +93 -0
- package/build/figma/extractors/node-walker.js.map +1 -0
- package/build/figma/extractors/types.d.ts +73 -0
- package/build/figma/extractors/types.d.ts.map +1 -0
- package/build/figma/extractors/types.js +2 -0
- package/build/figma/extractors/types.js.map +1 -0
- package/build/figma/transformers/component.d.ts +27 -0
- package/build/figma/transformers/component.d.ts.map +1 -0
- package/build/figma/transformers/component.js +29 -0
- package/build/figma/transformers/component.js.map +1 -0
- package/build/figma/transformers/effects.d.ts +9 -0
- package/build/figma/transformers/effects.d.ts.map +1 -0
- package/build/figma/transformers/effects.js +50 -0
- package/build/figma/transformers/effects.js.map +1 -0
- package/build/figma/transformers/layout.d.ts +27 -0
- package/build/figma/transformers/layout.d.ts.map +1 -0
- package/build/figma/transformers/layout.js +203 -0
- package/build/figma/transformers/layout.js.map +1 -0
- package/build/figma/transformers/style.d.ts +120 -0
- package/build/figma/transformers/style.d.ts.map +1 -0
- package/build/figma/transformers/style.js +539 -0
- package/build/figma/transformers/style.js.map +1 -0
- package/build/figma/transformers/text.d.ts +31 -0
- package/build/figma/transformers/text.d.ts.map +1 -0
- package/build/figma/transformers/text.js +34 -0
- package/build/figma/transformers/text.js.map +1 -0
- package/build/figma/utils/common.d.ts +70 -0
- package/build/figma/utils/common.d.ts.map +1 -0
- package/build/figma/utils/common.js +167 -0
- package/build/figma/utils/common.js.map +1 -0
- package/build/figma/utils/fetch-with-retry.d.ts +13 -0
- package/build/figma/utils/fetch-with-retry.d.ts.map +1 -0
- package/build/figma/utils/fetch-with-retry.js +70 -0
- package/build/figma/utils/fetch-with-retry.js.map +1 -0
- package/build/figma/utils/identity.d.ts +23 -0
- package/build/figma/utils/identity.d.ts.map +1 -0
- package/build/figma/utils/identity.js +71 -0
- package/build/figma/utils/identity.js.map +1 -0
- package/build/index.d.ts +20 -0
- package/build/index.d.ts.map +1 -0
- package/build/index.js +88 -0
- package/build/index.js.map +1 -0
- package/package.json +54 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"style.js","sourceRoot":"","sources":["../../../src/figma/transformers/style.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type { Node as FigmaDocumentNode } from "@figma/rest-api-spec";
|
|
2
|
+
export type SimplifiedTextStyle = Partial<{
|
|
3
|
+
fontFamily: string;
|
|
4
|
+
fontWeight: number;
|
|
5
|
+
fontSize: number;
|
|
6
|
+
lineHeight: string;
|
|
7
|
+
letterSpacing: string;
|
|
8
|
+
textCase: string;
|
|
9
|
+
textAlignHorizontal: string;
|
|
10
|
+
textAlignVertical: string;
|
|
11
|
+
}>;
|
|
12
|
+
export declare function isTextNode(n: FigmaDocumentNode): n is Extract<FigmaDocumentNode, {
|
|
13
|
+
type: "TEXT";
|
|
14
|
+
}>;
|
|
15
|
+
export declare function hasTextStyle(n: FigmaDocumentNode): n is FigmaDocumentNode & {
|
|
16
|
+
style: Extract<FigmaDocumentNode, {
|
|
17
|
+
style: any;
|
|
18
|
+
}>["style"];
|
|
19
|
+
};
|
|
20
|
+
export declare function extractNodeText(n: FigmaDocumentNode): string | undefined;
|
|
21
|
+
export declare function extractTextStyle(n: FigmaDocumentNode): Partial<{
|
|
22
|
+
fontFamily: string;
|
|
23
|
+
fontWeight: number;
|
|
24
|
+
fontSize: number;
|
|
25
|
+
lineHeight: string;
|
|
26
|
+
letterSpacing: string;
|
|
27
|
+
textCase: string;
|
|
28
|
+
textAlignHorizontal: string;
|
|
29
|
+
textAlignVertical: string;
|
|
30
|
+
}> | undefined;
|
|
31
|
+
//# sourceMappingURL=text.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"text.d.ts","sourceRoot":"","sources":["../../../src/figma/transformers/text.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,IAAI,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAGtE,MAAM,MAAM,mBAAmB,GAAG,OAAO,CAAC;IACxC,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,iBAAiB,EAAE,MAAM,CAAC;CAC3B,CAAC,CAAC;AAEH,wBAAgB,UAAU,CACxB,CAAC,EAAE,iBAAiB,GACnB,CAAC,IAAI,OAAO,CAAC,iBAAiB,EAAE;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CAEnD;AAED,wBAAgB,YAAY,CAC1B,CAAC,EAAE,iBAAiB,GACnB,CAAC,IAAI,iBAAiB,GAAG;IAAE,KAAK,EAAE,OAAO,CAAC,iBAAiB,EAAE;QAAE,KAAK,EAAE,GAAG,CAAA;KAAE,CAAC,CAAC,OAAO,CAAC,CAAA;CAAE,CAEzF;AAGD,wBAAgB,eAAe,CAAC,CAAC,EAAE,iBAAiB,sBAInD;AAED,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,iBAAiB;gBA7BvC,MAAM;gBACN,MAAM;cACR,MAAM;gBACJ,MAAM;mBACH,MAAM;cACX,MAAM;yBACK,MAAM;uBACR,MAAM;eA2C1B"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { hasValue, isTruthy } from "../utils/identity.js";
|
|
2
|
+
export function isTextNode(n) {
|
|
3
|
+
return n.type === "TEXT";
|
|
4
|
+
}
|
|
5
|
+
export function hasTextStyle(n) {
|
|
6
|
+
return hasValue("style", n) && Object.keys(n.style).length > 0;
|
|
7
|
+
}
|
|
8
|
+
// Keep other simple properties directly
|
|
9
|
+
export function extractNodeText(n) {
|
|
10
|
+
if (hasValue("characters", n, isTruthy)) {
|
|
11
|
+
return n.characters;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
export function extractTextStyle(n) {
|
|
15
|
+
if (hasTextStyle(n)) {
|
|
16
|
+
const style = n.style;
|
|
17
|
+
const textStyle = {
|
|
18
|
+
fontFamily: style.fontFamily,
|
|
19
|
+
fontWeight: style.fontWeight,
|
|
20
|
+
fontSize: style.fontSize,
|
|
21
|
+
lineHeight: "lineHeightPx" in style && style.lineHeightPx && style.fontSize
|
|
22
|
+
? `${style.lineHeightPx / style.fontSize}em`
|
|
23
|
+
: undefined,
|
|
24
|
+
letterSpacing: style.letterSpacing && style.letterSpacing !== 0 && style.fontSize
|
|
25
|
+
? `${(style.letterSpacing / style.fontSize) * 100}%`
|
|
26
|
+
: undefined,
|
|
27
|
+
textCase: style.textCase,
|
|
28
|
+
textAlignHorizontal: style.textAlignHorizontal,
|
|
29
|
+
textAlignVertical: style.textAlignVertical,
|
|
30
|
+
};
|
|
31
|
+
return textStyle;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=text.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"text.js","sourceRoot":"","sources":["../../../src/figma/transformers/text.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAa1D,MAAM,UAAU,UAAU,CACxB,CAAoB;IAEpB,OAAO,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC;AAC3B,CAAC;AAED,MAAM,UAAU,YAAY,CAC1B,CAAoB;IAEpB,OAAO,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;AACjE,CAAC;AAED,wCAAwC;AACxC,MAAM,UAAU,eAAe,CAAC,CAAoB;IAClD,IAAI,QAAQ,CAAC,YAAY,EAAE,CAAC,EAAE,QAAQ,CAAC,EAAE,CAAC;QACxC,OAAO,CAAC,CAAC,UAAU,CAAC;IACtB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,CAAoB;IACnD,IAAI,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;QACpB,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;QACtB,MAAM,SAAS,GAAwB;YACrC,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,UAAU,EACR,cAAc,IAAI,KAAK,IAAI,KAAK,CAAC,YAAY,IAAI,KAAK,CAAC,QAAQ;gBAC7D,CAAC,CAAC,GAAG,KAAK,CAAC,YAAY,GAAG,KAAK,CAAC,QAAQ,IAAI;gBAC5C,CAAC,CAAC,SAAS;YACf,aAAa,EACX,KAAK,CAAC,aAAa,IAAI,KAAK,CAAC,aAAa,KAAK,CAAC,IAAI,KAAK,CAAC,QAAQ;gBAChE,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,aAAa,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,GAAG,GAAG;gBACpD,CAAC,CAAC,SAAS;YACf,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,mBAAmB,EAAE,KAAK,CAAC,mBAAmB;YAC9C,iBAAiB,EAAE,KAAK,CAAC,iBAAiB;SAC3C,CAAC;QACF,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
export type StyleId = `${string}_${string}` & {
|
|
2
|
+
__brand: "StyleId";
|
|
3
|
+
};
|
|
4
|
+
/**
|
|
5
|
+
* Download Figma image and save it locally
|
|
6
|
+
* @param fileName - The filename to save as
|
|
7
|
+
* @param localPath - The local path to save to
|
|
8
|
+
* @param imageUrl - Image URL (images[nodeId])
|
|
9
|
+
* @returns A Promise that resolves to the full file path where the image was saved
|
|
10
|
+
* @throws Error if download fails
|
|
11
|
+
*/
|
|
12
|
+
export declare function downloadFigmaImage(fileName: string, localPath: string, imageUrl: string): Promise<string>;
|
|
13
|
+
/**
|
|
14
|
+
* Remove keys with empty arrays or empty objects from an object.
|
|
15
|
+
* @param input - The input object or value.
|
|
16
|
+
* @returns The processed object or the original value.
|
|
17
|
+
*/
|
|
18
|
+
export declare function removeEmptyKeys<T>(input: T): T;
|
|
19
|
+
/**
|
|
20
|
+
* Generate a 6-character random variable ID
|
|
21
|
+
* @param prefix - ID prefix
|
|
22
|
+
* @returns A 6-character random ID string with prefix
|
|
23
|
+
*/
|
|
24
|
+
export declare function generateVarId(prefix?: string): StyleId;
|
|
25
|
+
/**
|
|
26
|
+
* Generate a CSS shorthand for values that come with top, right, bottom, and left
|
|
27
|
+
*
|
|
28
|
+
* input: { top: 10, right: 10, bottom: 10, left: 10 }
|
|
29
|
+
* output: "10px"
|
|
30
|
+
*
|
|
31
|
+
* input: { top: 10, right: 20, bottom: 10, left: 20 }
|
|
32
|
+
* output: "10px 20px"
|
|
33
|
+
*
|
|
34
|
+
* input: { top: 10, right: 20, bottom: 30, left: 40 }
|
|
35
|
+
* output: "10px 20px 30px 40px"
|
|
36
|
+
*
|
|
37
|
+
* @param values - The values to generate the shorthand for
|
|
38
|
+
* @returns The generated shorthand
|
|
39
|
+
*/
|
|
40
|
+
export declare function generateCSSShorthand(values: {
|
|
41
|
+
top: number;
|
|
42
|
+
right: number;
|
|
43
|
+
bottom: number;
|
|
44
|
+
left: number;
|
|
45
|
+
}, { ignoreZero, suffix, }?: {
|
|
46
|
+
/**
|
|
47
|
+
* If true and all values are 0, return undefined. Defaults to true.
|
|
48
|
+
*/
|
|
49
|
+
ignoreZero?: boolean;
|
|
50
|
+
/**
|
|
51
|
+
* The suffix to add to the shorthand. Defaults to "px".
|
|
52
|
+
*/
|
|
53
|
+
suffix?: string;
|
|
54
|
+
}): string | undefined;
|
|
55
|
+
/**
|
|
56
|
+
* Check if an element is visible
|
|
57
|
+
* @param element - The item to check
|
|
58
|
+
* @returns True if the item is visible, false otherwise
|
|
59
|
+
*/
|
|
60
|
+
export declare function isVisible(element: {
|
|
61
|
+
visible?: boolean;
|
|
62
|
+
}): boolean;
|
|
63
|
+
/**
|
|
64
|
+
* Rounds a number to two decimal places, suitable for pixel value processing.
|
|
65
|
+
* @param num The number to be rounded.
|
|
66
|
+
* @returns The rounded number with two decimal places.
|
|
67
|
+
* @throws TypeError If the input is not a valid number
|
|
68
|
+
*/
|
|
69
|
+
export declare function pixelRound(num: number): number;
|
|
70
|
+
//# sourceMappingURL=common.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../../src/figma/utils/common.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,OAAO,GAAG,GAAG,MAAM,IAAI,MAAM,EAAE,GAAG;IAAE,OAAO,EAAE,SAAS,CAAA;CAAE,CAAC;AAErE;;;;;;;GAOG;AACH,wBAAsB,kBAAkB,CACtC,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,CAAC,CAgEjB;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAoC9C;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,MAAM,GAAE,MAAc,GAAG,OAAO,CAU7D;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE;IACN,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd,EACD,EACE,UAAiB,EACjB,MAAa,GACd,GAAE;IACD;;OAEG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACZ,sBAgBP;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAEjE;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAK9C"}
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
import fs from "fs";
|
|
2
|
+
import path from "path";
|
|
3
|
+
/**
|
|
4
|
+
* Download Figma image and save it locally
|
|
5
|
+
* @param fileName - The filename to save as
|
|
6
|
+
* @param localPath - The local path to save to
|
|
7
|
+
* @param imageUrl - Image URL (images[nodeId])
|
|
8
|
+
* @returns A Promise that resolves to the full file path where the image was saved
|
|
9
|
+
* @throws Error if download fails
|
|
10
|
+
*/
|
|
11
|
+
export async function downloadFigmaImage(fileName, localPath, imageUrl) {
|
|
12
|
+
try {
|
|
13
|
+
// Ensure local path exists
|
|
14
|
+
if (!fs.existsSync(localPath)) {
|
|
15
|
+
fs.mkdirSync(localPath, { recursive: true });
|
|
16
|
+
}
|
|
17
|
+
// Build the complete file path
|
|
18
|
+
const fullPath = path.join(localPath, fileName);
|
|
19
|
+
// Use fetch to download the image
|
|
20
|
+
const response = await fetch(imageUrl, {
|
|
21
|
+
method: "GET",
|
|
22
|
+
});
|
|
23
|
+
if (!response.ok) {
|
|
24
|
+
throw new Error(`Failed to download image: ${response.statusText}`);
|
|
25
|
+
}
|
|
26
|
+
// Create write stream
|
|
27
|
+
const writer = fs.createWriteStream(fullPath);
|
|
28
|
+
// Get the response as a readable stream and pipe it to the file
|
|
29
|
+
const reader = response.body?.getReader();
|
|
30
|
+
if (!reader) {
|
|
31
|
+
throw new Error("Failed to get response body");
|
|
32
|
+
}
|
|
33
|
+
return new Promise((resolve, reject) => {
|
|
34
|
+
// Process stream
|
|
35
|
+
const processStream = async () => {
|
|
36
|
+
try {
|
|
37
|
+
while (true) {
|
|
38
|
+
const { done, value } = await reader.read();
|
|
39
|
+
if (done) {
|
|
40
|
+
writer.end();
|
|
41
|
+
break;
|
|
42
|
+
}
|
|
43
|
+
writer.write(value);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
catch (err) {
|
|
47
|
+
writer.end();
|
|
48
|
+
fs.unlink(fullPath, () => { });
|
|
49
|
+
reject(err);
|
|
50
|
+
}
|
|
51
|
+
};
|
|
52
|
+
// Resolve only when the stream is fully written
|
|
53
|
+
writer.on("finish", () => {
|
|
54
|
+
resolve(fullPath);
|
|
55
|
+
});
|
|
56
|
+
writer.on("error", (err) => {
|
|
57
|
+
reader.cancel();
|
|
58
|
+
fs.unlink(fullPath, () => { });
|
|
59
|
+
reject(new Error(`Failed to write image: ${err.message}`));
|
|
60
|
+
});
|
|
61
|
+
processStream();
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
catch (error) {
|
|
65
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
66
|
+
throw new Error(`Error downloading image: ${errorMessage}`);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Remove keys with empty arrays or empty objects from an object.
|
|
71
|
+
* @param input - The input object or value.
|
|
72
|
+
* @returns The processed object or the original value.
|
|
73
|
+
*/
|
|
74
|
+
export function removeEmptyKeys(input) {
|
|
75
|
+
// If not an object type or null, return directly
|
|
76
|
+
if (typeof input !== "object" || input === null) {
|
|
77
|
+
return input;
|
|
78
|
+
}
|
|
79
|
+
// Handle array type
|
|
80
|
+
if (Array.isArray(input)) {
|
|
81
|
+
return input.map((item) => removeEmptyKeys(item));
|
|
82
|
+
}
|
|
83
|
+
// Handle object type
|
|
84
|
+
const result = {};
|
|
85
|
+
for (const key in input) {
|
|
86
|
+
if (Object.prototype.hasOwnProperty.call(input, key)) {
|
|
87
|
+
const value = input[key];
|
|
88
|
+
// Recursively process nested objects
|
|
89
|
+
const cleanedValue = removeEmptyKeys(value);
|
|
90
|
+
// Skip empty arrays and empty objects
|
|
91
|
+
if (cleanedValue !== undefined &&
|
|
92
|
+
!(Array.isArray(cleanedValue) && cleanedValue.length === 0) &&
|
|
93
|
+
!(typeof cleanedValue === "object" &&
|
|
94
|
+
cleanedValue !== null &&
|
|
95
|
+
Object.keys(cleanedValue).length === 0)) {
|
|
96
|
+
result[key] = cleanedValue;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
return result;
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Generate a 6-character random variable ID
|
|
104
|
+
* @param prefix - ID prefix
|
|
105
|
+
* @returns A 6-character random ID string with prefix
|
|
106
|
+
*/
|
|
107
|
+
export function generateVarId(prefix = "var") {
|
|
108
|
+
const chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
|
|
109
|
+
let result = "";
|
|
110
|
+
for (let i = 0; i < 6; i++) {
|
|
111
|
+
const randomIndex = Math.floor(Math.random() * chars.length);
|
|
112
|
+
result += chars[randomIndex];
|
|
113
|
+
}
|
|
114
|
+
return `${prefix}_${result}`;
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Generate a CSS shorthand for values that come with top, right, bottom, and left
|
|
118
|
+
*
|
|
119
|
+
* input: { top: 10, right: 10, bottom: 10, left: 10 }
|
|
120
|
+
* output: "10px"
|
|
121
|
+
*
|
|
122
|
+
* input: { top: 10, right: 20, bottom: 10, left: 20 }
|
|
123
|
+
* output: "10px 20px"
|
|
124
|
+
*
|
|
125
|
+
* input: { top: 10, right: 20, bottom: 30, left: 40 }
|
|
126
|
+
* output: "10px 20px 30px 40px"
|
|
127
|
+
*
|
|
128
|
+
* @param values - The values to generate the shorthand for
|
|
129
|
+
* @returns The generated shorthand
|
|
130
|
+
*/
|
|
131
|
+
export function generateCSSShorthand(values, { ignoreZero = true, suffix = "px", } = {}) {
|
|
132
|
+
const { top, right, bottom, left } = values;
|
|
133
|
+
if (ignoreZero && top === 0 && right === 0 && bottom === 0 && left === 0) {
|
|
134
|
+
return undefined;
|
|
135
|
+
}
|
|
136
|
+
if (top === right && right === bottom && bottom === left) {
|
|
137
|
+
return `${top}${suffix}`;
|
|
138
|
+
}
|
|
139
|
+
if (right === left) {
|
|
140
|
+
if (top === bottom) {
|
|
141
|
+
return `${top}${suffix} ${right}${suffix}`;
|
|
142
|
+
}
|
|
143
|
+
return `${top}${suffix} ${right}${suffix} ${bottom}${suffix}`;
|
|
144
|
+
}
|
|
145
|
+
return `${top}${suffix} ${right}${suffix} ${bottom}${suffix} ${left}${suffix}`;
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* Check if an element is visible
|
|
149
|
+
* @param element - The item to check
|
|
150
|
+
* @returns True if the item is visible, false otherwise
|
|
151
|
+
*/
|
|
152
|
+
export function isVisible(element) {
|
|
153
|
+
return element.visible ?? true;
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Rounds a number to two decimal places, suitable for pixel value processing.
|
|
157
|
+
* @param num The number to be rounded.
|
|
158
|
+
* @returns The rounded number with two decimal places.
|
|
159
|
+
* @throws TypeError If the input is not a valid number
|
|
160
|
+
*/
|
|
161
|
+
export function pixelRound(num) {
|
|
162
|
+
if (isNaN(num)) {
|
|
163
|
+
throw new TypeError(`Input must be a valid number`);
|
|
164
|
+
}
|
|
165
|
+
return Number(Number(num).toFixed(2));
|
|
166
|
+
}
|
|
167
|
+
//# sourceMappingURL=common.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"common.js","sourceRoot":"","sources":["../../../src/figma/utils/common.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
type RequestOptions = RequestInit & {
|
|
2
|
+
/**
|
|
3
|
+
* Force format of headers to be a record of strings, e.g. { "Authorization": "Bearer 123" }
|
|
4
|
+
*
|
|
5
|
+
* Avoids complexity of needing to deal with `instanceof Headers`, which is not supported in some environments.
|
|
6
|
+
*/
|
|
7
|
+
headers?: Record<string, string>;
|
|
8
|
+
};
|
|
9
|
+
export declare function fetchWithRetry<T extends {
|
|
10
|
+
status?: number;
|
|
11
|
+
}>(url: string, options?: RequestOptions): Promise<T>;
|
|
12
|
+
export {};
|
|
13
|
+
//# sourceMappingURL=fetch-with-retry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fetch-with-retry.d.ts","sourceRoot":"","sources":["../../../src/figma/utils/fetch-with-retry.ts"],"names":[],"mappings":"AAKA,KAAK,cAAc,GAAG,WAAW,GAAG;IAClC;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC,CAAC;AAEF,wBAAsB,cAAc,CAAC,CAAC,SAAS;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,EAChE,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,CAAC,CAAC,CA8DZ"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { execFile } from "child_process";
|
|
2
|
+
import { promisify } from "util";
|
|
3
|
+
const execFileAsync = promisify(execFile);
|
|
4
|
+
export async function fetchWithRetry(url, options = {}) {
|
|
5
|
+
try {
|
|
6
|
+
const response = await fetch(url, options);
|
|
7
|
+
if (!response.ok) {
|
|
8
|
+
throw new Error(`Fetch failed with status ${response.status}: ${response.statusText}`);
|
|
9
|
+
}
|
|
10
|
+
return (await response.json());
|
|
11
|
+
}
|
|
12
|
+
catch (fetchError) {
|
|
13
|
+
console.error(`[fetchWithRetry] Initial fetch failed for ${url}: ${fetchError.message}. Likely a corporate proxy or SSL issue. Attempting curl fallback.`);
|
|
14
|
+
const curlHeaders = formatHeadersForCurl(options.headers);
|
|
15
|
+
// Most options here are to ensure stderr only contains errors, so we can use it to confidently check if an error occurred.
|
|
16
|
+
// -s: Silent mode—no progress bar in stderr
|
|
17
|
+
// -S: Show errors in stderr
|
|
18
|
+
// --fail-with-body: curl errors with code 22, and outputs body of failed request, e.g. "Fetch failed with status 404"
|
|
19
|
+
// -L: Follow redirects
|
|
20
|
+
const curlArgs = ["-s", "-S", "--fail-with-body", "-L", ...curlHeaders, url];
|
|
21
|
+
try {
|
|
22
|
+
// Fallback to curl for corporate networks that have proxies that sometimes block fetch
|
|
23
|
+
console.error(`[fetchWithRetry] Executing curl with args: ${JSON.stringify(curlArgs)}`);
|
|
24
|
+
const { stdout, stderr } = await execFileAsync("curl", curlArgs);
|
|
25
|
+
if (stderr) {
|
|
26
|
+
// curl often outputs progress to stderr, so only treat as error if stdout is empty
|
|
27
|
+
// or if stderr contains typical error keywords.
|
|
28
|
+
if (!stdout ||
|
|
29
|
+
stderr.toLowerCase().includes("error") ||
|
|
30
|
+
stderr.toLowerCase().includes("fail")) {
|
|
31
|
+
throw new Error(`Curl command failed with stderr: ${stderr}`);
|
|
32
|
+
}
|
|
33
|
+
console.error(`[fetchWithRetry] Curl command for ${url} produced stderr (but might be informational): ${stderr}`);
|
|
34
|
+
}
|
|
35
|
+
if (!stdout) {
|
|
36
|
+
throw new Error("Curl command returned empty stdout.");
|
|
37
|
+
}
|
|
38
|
+
const result = JSON.parse(stdout);
|
|
39
|
+
// Successful Figma requests don't have a status property, and some endpoints return 200 with an
|
|
40
|
+
// error status in the body, e.g. https://www.figma.com/developers/api#get-images-endpoint
|
|
41
|
+
if (result.status && result.status !== 200) {
|
|
42
|
+
throw new Error(`Curl command failed: ${result}`);
|
|
43
|
+
}
|
|
44
|
+
return result;
|
|
45
|
+
}
|
|
46
|
+
catch (curlError) {
|
|
47
|
+
console.error(`[fetchWithRetry] Curl fallback also failed for ${url}: ${curlError.message}`);
|
|
48
|
+
// Re-throw the original fetch error to give context about the initial failure
|
|
49
|
+
// or throw a new error that wraps both, depending on desired error reporting.
|
|
50
|
+
// For now, re-throwing the original as per the user example's spirit.
|
|
51
|
+
throw fetchError;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Converts HeadersInit to an array of curl header arguments for execFile.
|
|
57
|
+
* @param headers Headers to convert.
|
|
58
|
+
* @returns Array of strings for curl arguments: ["-H", "key: value", "-H", "key2: value2"]
|
|
59
|
+
*/
|
|
60
|
+
function formatHeadersForCurl(headers) {
|
|
61
|
+
if (!headers) {
|
|
62
|
+
return [];
|
|
63
|
+
}
|
|
64
|
+
const headerArgs = [];
|
|
65
|
+
for (const [key, value] of Object.entries(headers)) {
|
|
66
|
+
headerArgs.push("-H", `${key}: ${value}`);
|
|
67
|
+
}
|
|
68
|
+
return headerArgs;
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=fetch-with-retry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fetch-with-retry.js","sourceRoot":"","sources":["../../../src/figma/utils/fetch-with-retry.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { Rectangle, HasLayoutTrait, StrokeWeights, HasFramePropertiesTrait } from "@figma/rest-api-spec";
|
|
2
|
+
import type { CSSHexColor, CSSRGBAColor } from "../transformers/style.js";
|
|
3
|
+
export declare function isTruthy<T>(value: T | null | undefined | false | 0 | ""): value is T;
|
|
4
|
+
export declare function hasValue<K extends PropertyKey, T>(key: K, obj: unknown, typeGuard?: (val: unknown) => val is T): obj is Record<K, T>;
|
|
5
|
+
export declare function isFrame(val: unknown): val is HasFramePropertiesTrait;
|
|
6
|
+
export declare function isLayout(val: unknown): val is HasLayoutTrait;
|
|
7
|
+
/**
|
|
8
|
+
* Checks if:
|
|
9
|
+
* 1. A node is a child to an auto layout frame
|
|
10
|
+
* 2. The child adheres to the auto layout rules—i.e. it's not absolutely positioned
|
|
11
|
+
*
|
|
12
|
+
* @param node - The node to check.
|
|
13
|
+
* @param parent - The parent node.
|
|
14
|
+
* @returns True if the node is a child of an auto layout frame, false otherwise.
|
|
15
|
+
*/
|
|
16
|
+
export declare function isInAutoLayoutFlow(node: unknown, parent: unknown): boolean;
|
|
17
|
+
export declare function isStrokeWeights(val: unknown): val is StrokeWeights;
|
|
18
|
+
export declare function isRectangle<T, K extends string>(key: K, obj: T): obj is T & {
|
|
19
|
+
[P in K]: Rectangle;
|
|
20
|
+
};
|
|
21
|
+
export declare function isRectangleCornerRadii(val: unknown): val is number[];
|
|
22
|
+
export declare function isCSSColorValue(val: unknown): val is CSSRGBAColor | CSSHexColor;
|
|
23
|
+
//# sourceMappingURL=identity.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"identity.d.ts","sourceRoot":"","sources":["../../../src/figma/utils/identity.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,SAAS,EACT,cAAc,EACd,aAAa,EACb,uBAAuB,EACxB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAG1E,wBAAgB,QAAQ,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI,GAAG,SAAS,GAAG,KAAK,GAAG,CAAC,GAAG,EAAE,GAAG,KAAK,IAAI,CAAC,CAEpF;AAED,wBAAgB,QAAQ,CAAC,CAAC,SAAS,WAAW,EAAE,CAAC,EAC/C,GAAG,EAAE,CAAC,EACN,GAAG,EAAE,OAAO,EACZ,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,GAAG,IAAI,CAAC,GACrC,GAAG,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAKrB;AAED,wBAAgB,OAAO,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,uBAAuB,CAOpE;AAED,wBAAgB,QAAQ,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,cAAc,CAY5D;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,GAAG,OAAO,CAQ1E;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,aAAa,CASlE;AAED,wBAAgB,WAAW,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,EAC7C,GAAG,EAAE,CAAC,EACN,GAAG,EAAE,CAAC,GACL,GAAG,IAAI,CAAC,GAAG;KAAG,CAAC,IAAI,CAAC,GAAG,SAAS;CAAE,CAapC;AAED,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,MAAM,EAAE,CAEpE;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,YAAY,GAAG,WAAW,CAE/E"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
// Simple implementation of isTruthy to avoid remeda dependency
|
|
2
|
+
export function isTruthy(value) {
|
|
3
|
+
return !!value;
|
|
4
|
+
}
|
|
5
|
+
export function hasValue(key, obj, typeGuard) {
|
|
6
|
+
const isObject = typeof obj === "object" && obj !== null;
|
|
7
|
+
if (!isObject || !(key in obj))
|
|
8
|
+
return false;
|
|
9
|
+
const val = obj[key];
|
|
10
|
+
return typeGuard ? typeGuard(val) : val !== undefined;
|
|
11
|
+
}
|
|
12
|
+
export function isFrame(val) {
|
|
13
|
+
return (typeof val === "object" &&
|
|
14
|
+
!!val &&
|
|
15
|
+
"clipsContent" in val &&
|
|
16
|
+
typeof val.clipsContent === "boolean");
|
|
17
|
+
}
|
|
18
|
+
export function isLayout(val) {
|
|
19
|
+
return (typeof val === "object" &&
|
|
20
|
+
!!val &&
|
|
21
|
+
"absoluteBoundingBox" in val &&
|
|
22
|
+
typeof val.absoluteBoundingBox === "object" &&
|
|
23
|
+
!!val.absoluteBoundingBox &&
|
|
24
|
+
"x" in val.absoluteBoundingBox &&
|
|
25
|
+
"y" in val.absoluteBoundingBox &&
|
|
26
|
+
"width" in val.absoluteBoundingBox &&
|
|
27
|
+
"height" in val.absoluteBoundingBox);
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Checks if:
|
|
31
|
+
* 1. A node is a child to an auto layout frame
|
|
32
|
+
* 2. The child adheres to the auto layout rules—i.e. it's not absolutely positioned
|
|
33
|
+
*
|
|
34
|
+
* @param node - The node to check.
|
|
35
|
+
* @param parent - The parent node.
|
|
36
|
+
* @returns True if the node is a child of an auto layout frame, false otherwise.
|
|
37
|
+
*/
|
|
38
|
+
export function isInAutoLayoutFlow(node, parent) {
|
|
39
|
+
const autoLayoutModes = ["HORIZONTAL", "VERTICAL"];
|
|
40
|
+
return (isFrame(parent) &&
|
|
41
|
+
autoLayoutModes.includes(parent.layoutMode ?? "NONE") &&
|
|
42
|
+
isLayout(node) &&
|
|
43
|
+
node.layoutPositioning !== "ABSOLUTE");
|
|
44
|
+
}
|
|
45
|
+
export function isStrokeWeights(val) {
|
|
46
|
+
return (typeof val === "object" &&
|
|
47
|
+
val !== null &&
|
|
48
|
+
"top" in val &&
|
|
49
|
+
"right" in val &&
|
|
50
|
+
"bottom" in val &&
|
|
51
|
+
"left" in val);
|
|
52
|
+
}
|
|
53
|
+
export function isRectangle(key, obj) {
|
|
54
|
+
const recordObj = obj;
|
|
55
|
+
return (typeof obj === "object" &&
|
|
56
|
+
!!obj &&
|
|
57
|
+
key in recordObj &&
|
|
58
|
+
typeof recordObj[key] === "object" &&
|
|
59
|
+
!!recordObj[key] &&
|
|
60
|
+
"x" in recordObj[key] &&
|
|
61
|
+
"y" in recordObj[key] &&
|
|
62
|
+
"width" in recordObj[key] &&
|
|
63
|
+
"height" in recordObj[key]);
|
|
64
|
+
}
|
|
65
|
+
export function isRectangleCornerRadii(val) {
|
|
66
|
+
return Array.isArray(val) && val.length === 4 && val.every((v) => typeof v === "number");
|
|
67
|
+
}
|
|
68
|
+
export function isCSSColorValue(val) {
|
|
69
|
+
return typeof val === "string" && (val.startsWith("#") || val.startsWith("rgba"));
|
|
70
|
+
}
|
|
71
|
+
//# sourceMappingURL=identity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"identity.js","sourceRoot":"","sources":["../../../src/figma/utils/identity.ts"],"names":[],"mappings":"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"}
|
package/build/index.d.ts
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* @mcp-consultant-tools/figma
|
|
4
|
+
*
|
|
5
|
+
* MCP server for Figma integration.
|
|
6
|
+
* Provides design data extraction and transformation capabilities.
|
|
7
|
+
*/
|
|
8
|
+
import { FigmaService } from "./FigmaService.js";
|
|
9
|
+
/**
|
|
10
|
+
* Register Figma tools and prompts to an MCP server
|
|
11
|
+
* @param server - The MCP server instance
|
|
12
|
+
* @param figmaService - Optional pre-configured FigmaService (for testing or custom configs)
|
|
13
|
+
*/
|
|
14
|
+
export declare function registerFigmaTools(server: any, figmaService?: FigmaService): void;
|
|
15
|
+
/**
|
|
16
|
+
* Export service class for direct usage
|
|
17
|
+
*/
|
|
18
|
+
export { FigmaService } from "./FigmaService.js";
|
|
19
|
+
export type { FigmaConfig } from "./FigmaService.js";
|
|
20
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA;;;;;GAKG;AAKH,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGjD;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,GAAG,EAAE,YAAY,CAAC,EAAE,YAAY,QAmE1E;AAED;;GAEG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,YAAY,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC"}
|