@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.
Files changed (61) hide show
  1. package/build/FigmaService.d.ts +47 -0
  2. package/build/FigmaService.d.ts.map +1 -0
  3. package/build/FigmaService.js +108 -0
  4. package/build/FigmaService.js.map +1 -0
  5. package/build/figma/extractors/built-in.d.ts +57 -0
  6. package/build/figma/extractors/built-in.d.ts.map +1 -0
  7. package/build/figma/extractors/built-in.js +206 -0
  8. package/build/figma/extractors/built-in.js.map +1 -0
  9. package/build/figma/extractors/design-extractor.d.ts +7 -0
  10. package/build/figma/extractors/design-extractor.d.ts.map +1 -0
  11. package/build/figma/extractors/design-extractor.js +66 -0
  12. package/build/figma/extractors/design-extractor.js.map +1 -0
  13. package/build/figma/extractors/index.d.ts +5 -0
  14. package/build/figma/extractors/index.d.ts.map +1 -0
  15. package/build/figma/extractors/index.js +11 -0
  16. package/build/figma/extractors/index.js.map +1 -0
  17. package/build/figma/extractors/node-walker.d.ts +16 -0
  18. package/build/figma/extractors/node-walker.d.ts.map +1 -0
  19. package/build/figma/extractors/node-walker.js +93 -0
  20. package/build/figma/extractors/node-walker.js.map +1 -0
  21. package/build/figma/extractors/types.d.ts +73 -0
  22. package/build/figma/extractors/types.d.ts.map +1 -0
  23. package/build/figma/extractors/types.js +2 -0
  24. package/build/figma/extractors/types.js.map +1 -0
  25. package/build/figma/transformers/component.d.ts +27 -0
  26. package/build/figma/transformers/component.d.ts.map +1 -0
  27. package/build/figma/transformers/component.js +29 -0
  28. package/build/figma/transformers/component.js.map +1 -0
  29. package/build/figma/transformers/effects.d.ts +9 -0
  30. package/build/figma/transformers/effects.d.ts.map +1 -0
  31. package/build/figma/transformers/effects.js +50 -0
  32. package/build/figma/transformers/effects.js.map +1 -0
  33. package/build/figma/transformers/layout.d.ts +27 -0
  34. package/build/figma/transformers/layout.d.ts.map +1 -0
  35. package/build/figma/transformers/layout.js +203 -0
  36. package/build/figma/transformers/layout.js.map +1 -0
  37. package/build/figma/transformers/style.d.ts +120 -0
  38. package/build/figma/transformers/style.d.ts.map +1 -0
  39. package/build/figma/transformers/style.js +539 -0
  40. package/build/figma/transformers/style.js.map +1 -0
  41. package/build/figma/transformers/text.d.ts +31 -0
  42. package/build/figma/transformers/text.d.ts.map +1 -0
  43. package/build/figma/transformers/text.js +34 -0
  44. package/build/figma/transformers/text.js.map +1 -0
  45. package/build/figma/utils/common.d.ts +70 -0
  46. package/build/figma/utils/common.d.ts.map +1 -0
  47. package/build/figma/utils/common.js +167 -0
  48. package/build/figma/utils/common.js.map +1 -0
  49. package/build/figma/utils/fetch-with-retry.d.ts +13 -0
  50. package/build/figma/utils/fetch-with-retry.d.ts.map +1 -0
  51. package/build/figma/utils/fetch-with-retry.js +70 -0
  52. package/build/figma/utils/fetch-with-retry.js.map +1 -0
  53. package/build/figma/utils/identity.d.ts +23 -0
  54. package/build/figma/utils/identity.d.ts.map +1 -0
  55. package/build/figma/utils/identity.js +71 -0
  56. package/build/figma/utils/identity.js.map +1 -0
  57. package/build/index.d.ts +20 -0
  58. package/build/index.d.ts.map +1 -0
  59. package/build/index.js +88 -0
  60. package/build/index.js.map +1 -0
  61. 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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"}
@@ -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"}