@mp3wizard/figma-console-mcp 1.32.2 → 1.34.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.
Files changed (141) hide show
  1. package/README.md +26 -17
  2. package/dist/cloudflare/core/cloud-websocket-connector.js +18 -0
  3. package/dist/cloudflare/core/design-code-tools.js +60 -17
  4. package/dist/cloudflare/core/design-system-manifest.js +19 -14
  5. package/dist/cloudflare/core/design-system-tools.js +43 -34
  6. package/dist/cloudflare/core/diagnose-tool.js +4 -0
  7. package/dist/cloudflare/core/enrichment/enrichment-service.js +11 -5
  8. package/dist/cloudflare/core/enrichment/style-resolver.js +38 -18
  9. package/dist/cloudflare/core/figma-api.js +118 -54
  10. package/dist/cloudflare/core/figma-tools.js +179 -63
  11. package/dist/cloudflare/core/port-discovery.js +404 -31
  12. package/dist/cloudflare/core/tokens/alias-resolver.js +75 -5
  13. package/dist/cloudflare/core/tokens/config.js +10 -0
  14. package/dist/cloudflare/core/tokens/dialect.js +232 -0
  15. package/dist/cloudflare/core/tokens/figma-converter.js +144 -16
  16. package/dist/cloudflare/core/tokens/formatters/css-vars.js +21 -12
  17. package/dist/cloudflare/core/tokens/formatters/dtcg.js +106 -30
  18. package/dist/cloudflare/core/tokens/formatters/json.js +28 -10
  19. package/dist/cloudflare/core/tokens/formatters/scss.js +19 -13
  20. package/dist/cloudflare/core/tokens/formatters/style-dictionary-v3.js +15 -9
  21. package/dist/cloudflare/core/tokens/formatters/tailwind-v4.js +14 -9
  22. package/dist/cloudflare/core/tokens/formatters/tokens-studio.js +11 -5
  23. package/dist/cloudflare/core/tokens/index.js +2 -1
  24. package/dist/cloudflare/core/tokens/parsers/dtcg.js +32 -5
  25. package/dist/cloudflare/core/tokens/schemas.js +4 -0
  26. package/dist/cloudflare/core/tokens-tools.js +1017 -88
  27. package/dist/cloudflare/core/version-tools.js +44 -3
  28. package/dist/cloudflare/core/websocket-connector.js +42 -0
  29. package/dist/cloudflare/core/websocket-server.js +99 -8
  30. package/dist/cloudflare/core/write-tools.js +355 -86
  31. package/dist/cloudflare/index.js +7 -7
  32. package/dist/core/design-code-tools.d.ts.map +1 -1
  33. package/dist/core/design-code-tools.js +60 -17
  34. package/dist/core/design-code-tools.js.map +1 -1
  35. package/dist/core/design-system-manifest.d.ts +1 -0
  36. package/dist/core/design-system-manifest.d.ts.map +1 -1
  37. package/dist/core/design-system-manifest.js +19 -14
  38. package/dist/core/design-system-manifest.js.map +1 -1
  39. package/dist/core/design-system-tools.d.ts.map +1 -1
  40. package/dist/core/design-system-tools.js +43 -34
  41. package/dist/core/design-system-tools.js.map +1 -1
  42. package/dist/core/diagnose-tool.d.ts +8 -0
  43. package/dist/core/diagnose-tool.d.ts.map +1 -1
  44. package/dist/core/diagnose-tool.js +4 -0
  45. package/dist/core/diagnose-tool.js.map +1 -1
  46. package/dist/core/enrichment/enrichment-service.d.ts.map +1 -1
  47. package/dist/core/enrichment/enrichment-service.js +11 -5
  48. package/dist/core/enrichment/enrichment-service.js.map +1 -1
  49. package/dist/core/enrichment/style-resolver.d.ts +7 -2
  50. package/dist/core/enrichment/style-resolver.d.ts.map +1 -1
  51. package/dist/core/enrichment/style-resolver.js +38 -18
  52. package/dist/core/enrichment/style-resolver.js.map +1 -1
  53. package/dist/core/figma-api.d.ts +18 -9
  54. package/dist/core/figma-api.d.ts.map +1 -1
  55. package/dist/core/figma-api.js +118 -54
  56. package/dist/core/figma-api.js.map +1 -1
  57. package/dist/core/figma-connector.d.ts +12 -0
  58. package/dist/core/figma-connector.d.ts.map +1 -1
  59. package/dist/core/figma-tools.d.ts.map +1 -1
  60. package/dist/core/figma-tools.js +179 -63
  61. package/dist/core/figma-tools.js.map +1 -1
  62. package/dist/core/port-discovery.d.ts +40 -0
  63. package/dist/core/port-discovery.d.ts.map +1 -1
  64. package/dist/core/port-discovery.js +404 -31
  65. package/dist/core/port-discovery.js.map +1 -1
  66. package/dist/core/tokens/alias-resolver.d.ts +45 -3
  67. package/dist/core/tokens/alias-resolver.d.ts.map +1 -1
  68. package/dist/core/tokens/alias-resolver.js +75 -5
  69. package/dist/core/tokens/alias-resolver.js.map +1 -1
  70. package/dist/core/tokens/config.d.ts +28 -0
  71. package/dist/core/tokens/config.d.ts.map +1 -1
  72. package/dist/core/tokens/config.js +10 -0
  73. package/dist/core/tokens/config.js.map +1 -1
  74. package/dist/core/tokens/dialect.d.ts +107 -0
  75. package/dist/core/tokens/dialect.d.ts.map +1 -0
  76. package/dist/core/tokens/dialect.js +233 -0
  77. package/dist/core/tokens/dialect.js.map +1 -0
  78. package/dist/core/tokens/figma-converter.d.ts +23 -2
  79. package/dist/core/tokens/figma-converter.d.ts.map +1 -1
  80. package/dist/core/tokens/figma-converter.js +144 -16
  81. package/dist/core/tokens/figma-converter.js.map +1 -1
  82. package/dist/core/tokens/formatters/css-vars.d.ts.map +1 -1
  83. package/dist/core/tokens/formatters/css-vars.js +21 -12
  84. package/dist/core/tokens/formatters/css-vars.js.map +1 -1
  85. package/dist/core/tokens/formatters/dtcg.d.ts +2 -2
  86. package/dist/core/tokens/formatters/dtcg.d.ts.map +1 -1
  87. package/dist/core/tokens/formatters/dtcg.js +106 -30
  88. package/dist/core/tokens/formatters/dtcg.js.map +1 -1
  89. package/dist/core/tokens/formatters/json.d.ts.map +1 -1
  90. package/dist/core/tokens/formatters/json.js +28 -10
  91. package/dist/core/tokens/formatters/json.js.map +1 -1
  92. package/dist/core/tokens/formatters/scss.d.ts.map +1 -1
  93. package/dist/core/tokens/formatters/scss.js +19 -13
  94. package/dist/core/tokens/formatters/scss.js.map +1 -1
  95. package/dist/core/tokens/formatters/style-dictionary-v3.d.ts.map +1 -1
  96. package/dist/core/tokens/formatters/style-dictionary-v3.js +15 -9
  97. package/dist/core/tokens/formatters/style-dictionary-v3.js.map +1 -1
  98. package/dist/core/tokens/formatters/tailwind-v4.d.ts.map +1 -1
  99. package/dist/core/tokens/formatters/tailwind-v4.js +14 -9
  100. package/dist/core/tokens/formatters/tailwind-v4.js.map +1 -1
  101. package/dist/core/tokens/formatters/tokens-studio.d.ts.map +1 -1
  102. package/dist/core/tokens/formatters/tokens-studio.js +11 -5
  103. package/dist/core/tokens/formatters/tokens-studio.js.map +1 -1
  104. package/dist/core/tokens/index.d.ts +2 -1
  105. package/dist/core/tokens/index.d.ts.map +1 -1
  106. package/dist/core/tokens/index.js +2 -1
  107. package/dist/core/tokens/index.js.map +1 -1
  108. package/dist/core/tokens/parsers/dtcg.js +32 -5
  109. package/dist/core/tokens/parsers/dtcg.js.map +1 -1
  110. package/dist/core/tokens/schemas.d.ts +3 -0
  111. package/dist/core/tokens/schemas.d.ts.map +1 -1
  112. package/dist/core/tokens/schemas.js +4 -0
  113. package/dist/core/tokens/schemas.js.map +1 -1
  114. package/dist/core/tokens/types.d.ts +57 -1
  115. package/dist/core/tokens/types.d.ts.map +1 -1
  116. package/dist/core/tokens/types.js.map +1 -1
  117. package/dist/core/tokens-tools.d.ts +250 -7
  118. package/dist/core/tokens-tools.d.ts.map +1 -1
  119. package/dist/core/tokens-tools.js +1017 -88
  120. package/dist/core/tokens-tools.js.map +1 -1
  121. package/dist/core/version-tools.d.ts.map +1 -1
  122. package/dist/core/version-tools.js +44 -3
  123. package/dist/core/version-tools.js.map +1 -1
  124. package/dist/core/websocket-connector.d.ts +38 -0
  125. package/dist/core/websocket-connector.d.ts.map +1 -1
  126. package/dist/core/websocket-connector.js +42 -0
  127. package/dist/core/websocket-connector.js.map +1 -1
  128. package/dist/core/websocket-server.d.ts +23 -0
  129. package/dist/core/websocket-server.d.ts.map +1 -1
  130. package/dist/core/websocket-server.js +99 -8
  131. package/dist/core/websocket-server.js.map +1 -1
  132. package/dist/core/write-tools.d.ts.map +1 -1
  133. package/dist/core/write-tools.js +355 -86
  134. package/dist/core/write-tools.js.map +1 -1
  135. package/dist/local.d.ts +0 -1
  136. package/dist/local.d.ts.map +1 -1
  137. package/dist/local.js +253 -63
  138. package/dist/local.js.map +1 -1
  139. package/figma-desktop-bridge/code.js +382 -28
  140. package/figma-desktop-bridge/ui.html +578 -292
  141. package/package.json +2 -2
@@ -132,7 +132,14 @@ function walkGroup(node, path, inheritedType, tokens, modes, warnings, fileMode)
132
132
  warnings.push(`Non-group, non-token entry at ${[...path, key].join(".")}; skipping.`);
133
133
  continue;
134
134
  }
135
- const childPath = [...path, key];
135
+ // Reserved "@" key: the formatter emits a leaf under "@" when its name
136
+ // collided with a group of the same name (leaf/group conflict). The
137
+ // `leafRemap` flag in our extension marks it; strip the synthetic "@"
138
+ // segment so the token gets its original path back.
139
+ const isRemappedLeaf = key === "@" &&
140
+ isLeafToken(value) &&
141
+ hasLeafRemapFlag(value);
142
+ const childPath = isRemappedLeaf ? [...path] : [...path, key];
136
143
  if (isLeafToken(value)) {
137
144
  const token = extractToken(childPath, value, groupType, warnings, fileMode);
138
145
  tokens.push(token);
@@ -147,6 +154,19 @@ function walkGroup(node, path, inheritedType, tokens, modes, warnings, fileMode)
147
154
  function isLeafToken(node) {
148
155
  return "$value" in node;
149
156
  }
157
+ /**
158
+ * True when a leaf node carries the `leafRemap` marker our formatter sets
159
+ * on tokens emitted under the reserved "@" key (leaf/group name conflicts).
160
+ */
161
+ function hasLeafRemapFlag(node) {
162
+ const ext = node.$extensions;
163
+ if (!ext || typeof ext !== "object")
164
+ return false;
165
+ const mcp = ext[FIGMA_MCP_EXTENSION_KEY];
166
+ if (!mcp || typeof mcp !== "object")
167
+ return false;
168
+ return mcp.leafRemap === true;
169
+ }
150
170
  function extractToken(path, node, inheritedType, warnings, fileMode) {
151
171
  const rawType = node.$type;
152
172
  let type;
@@ -169,12 +189,15 @@ function extractToken(path, node, inheritedType, warnings, fileMode) {
169
189
  ? ext[FIGMA_MCP_EXTENSION_KEY]
170
190
  : undefined;
171
191
  const stashedModes = mcpExt?.modes;
192
+ const stashedPrimaryMode = typeof mcpExt?.primaryMode === "string" ? mcpExt.primaryMode : undefined;
172
193
  // Decide which mode name to assign to the primary $value.
173
194
  // 1. If the file declares a fileMode (splitByMode output), use that.
174
- // 2. Otherwise fall back to "Default" the parser can't know the
175
- // mode without that hint.
195
+ // 2. Otherwise use the token-level `primaryMode` our formatter stashes
196
+ // in $extensions["figma-console-mcp"] (one-file-multi-mode output).
197
+ // 3. Otherwise fall back to "Default" — the parser can't know the
198
+ // mode without a hint.
176
199
  // Then absorb any stashedModes (one-file-multi-mode output) verbatim.
177
- const primaryMode = fileMode ?? "Default";
200
+ const primaryMode = fileMode ?? stashedPrimaryMode ?? "Default";
178
201
  values[primaryMode] = decodeValue(node.$value);
179
202
  if (stashedModes) {
180
203
  for (const [modeName, modeValue] of Object.entries(stashedModes)) {
@@ -192,9 +215,13 @@ function extractToken(path, node, inheritedType, warnings, fileMode) {
192
215
  if (vendor === FIGMA_MCP_EXTENSION_KEY &&
193
216
  payload &&
194
217
  typeof payload === "object") {
195
- // Strip the "modes" we already absorbed into values.
218
+ // Strip transient round-trip markers we already absorbed:
219
+ // "modes"/"primaryMode" were folded into `values`, "leafRemap"
220
+ // was consumed when the "@" path segment got stripped.
196
221
  const cleaned = { ...payload };
197
222
  delete cleaned.modes;
223
+ delete cleaned.primaryMode;
224
+ delete cleaned.leafRemap;
198
225
  if (Object.keys(cleaned).length > 0) {
199
226
  extensions[vendor] = cleaned;
200
227
  }
@@ -1 +1 @@
1
- {"version":3,"file":"dtcg.js","sourceRoot":"","sources":["../../../../src/core/tokens/parsers/dtcg.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dtcg.js","sourceRoot":"","sources":["../../../../src/core/tokens/parsers/dtcg.ts"],"names":[],"mappings":"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"}
@@ -31,6 +31,7 @@ export declare const ExportTokensInputSchema: z.ZodObject<{
31
31
  resolveAliases: z.ZodOptional<z.ZodBoolean>;
32
32
  splitByMode: z.ZodOptional<z.ZodBoolean>;
33
33
  splitByCollection: z.ZodOptional<z.ZodBoolean>;
34
+ dtcgDialect: z.ZodOptional<z.ZodEnum<["legacy", "2025"]>>;
34
35
  colorFormat: z.ZodOptional<z.ZodEnum<["hex", "hex8", "rgba", "oklch", "hsl"]>>;
35
36
  sizeUnit: z.ZodOptional<z.ZodEnum<["px", "rem", "pt", "dp"]>>;
36
37
  remBase: z.ZodOptional<z.ZodNumber>;
@@ -42,6 +43,7 @@ export declare const ExportTokensInputSchema: z.ZodObject<{
42
43
  prefix?: string | undefined;
43
44
  splitByMode?: boolean | undefined;
44
45
  splitByCollection?: boolean | undefined;
46
+ dtcgDialect?: "legacy" | "2025" | undefined;
45
47
  colorFormat?: "hex" | "hex8" | "rgba" | "oklch" | "hsl" | undefined;
46
48
  sizeUnit?: "px" | "rem" | "pt" | "dp" | undefined;
47
49
  remBase?: number | undefined;
@@ -57,6 +59,7 @@ export declare const ExportTokensInputSchema: z.ZodObject<{
57
59
  prefix?: string | undefined;
58
60
  splitByMode?: boolean | undefined;
59
61
  splitByCollection?: boolean | undefined;
62
+ dtcgDialect?: "legacy" | "2025" | undefined;
60
63
  colorFormat?: "hex" | "hex8" | "rgba" | "oklch" | "hsl" | undefined;
61
64
  sizeUnit?: "px" | "rem" | "pt" | "dp" | undefined;
62
65
  remBase?: number | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../../src/core/tokens/schemas.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,gKAY7B,CAAC;AAEH,eAAO,MAAM,kBAAkB,0JAW7B,CAAC;AAEH,eAAO,MAAM,kBAAkB,4CAA0C,CAAC;AAE1E,eAAO,MAAM,wBAAwB,uDAKnC,CAAC;AAKH;;;GAGG;AACH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA0ElC,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAExE;;;;GAIG;AACH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAwEjC,CAAC;AAEJ,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC"}
1
+ {"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../../src/core/tokens/schemas.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,gKAY7B,CAAC;AAEH,eAAO,MAAM,kBAAkB,0JAW7B,CAAC;AAEH,eAAO,MAAM,kBAAkB,4CAA0C,CAAC;AAE1E,eAAO,MAAM,wBAAwB,uDAKnC,CAAC;AAKH;;;GAGG;AACH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgFlC,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAExE;;;;GAIG;AACH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAwEjC,CAAC;AAEJ,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC"}
@@ -88,6 +88,10 @@ export const ExportTokensInputSchema = z.object({
88
88
  .boolean()
89
89
  .optional()
90
90
  .describe("Emit one file per Figma collection. Default false. Useful when collections map to different runtime themes."),
91
+ dtcgDialect: z
92
+ .enum(["legacy", "2025"])
93
+ .optional()
94
+ .describe("DTCG dialect for dtcg/json-flat/json-nested outputs. legacy (default): hex-string colors, maximum compatibility (Style Dictionary v4, Tokens Studio). 2025: DTCG 2025.10 object colors/dimensions (Style Dictionary v5+). Other formats (css-vars, scss, tailwind, ts-module) render final code and ignore this option."),
91
95
  colorFormat: ColorFormatSchema.optional().describe("Color value format in the output. Default: 'hex'. Use 'oklch' for modern Tailwind v4 charts."),
92
96
  sizeUnit: SizeUnitSchema.optional().describe("Unit for dimension tokens. Default: 'rem' for web outputs, 'pt' for iOS, 'dp' for Android."),
93
97
  remBase: z
@@ -1 +1 @@
1
- {"version":3,"file":"schemas.js","sourceRoot":"","sources":["../../../src/core/tokens/schemas.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schemas.js","sourceRoot":"","sources":["../../../src/core/tokens/schemas.ts"],"names":[],"mappings":"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"}
@@ -65,8 +65,22 @@ export interface TransitionValue {
65
65
  * { literal: { fontFamily: "Inter", ... } } // composite typography
66
66
  */
67
67
  export interface TokenValue {
68
- literal?: string | number | boolean | TypographyValue | ShadowValue | ShadowValue[] | GradientValue | BorderValue | TransitionValue | Record<string, unknown>;
68
+ literal?: string | number | boolean | number[] | TypographyValue | ShadowValue | ShadowValue[] | GradientValue | BorderValue | TransitionValue | Record<string, unknown>;
69
69
  reference?: string;
70
+ /**
71
+ * TRANSIENT — full-precision Figma rgba floats (0–1) carried alongside the
72
+ * hex-string literal for COLOR tokens. The DTCG 2025.10 dialect emits
73
+ * `components` from these floats instead of round-tripping through the
74
+ * 8-bit-quantized hex. Set only by the Figma converter; never serialized
75
+ * into output (formatters read it at render time, and lastSyncedValue /
76
+ * diff samples strip it via stripRawColorFromValues).
77
+ */
78
+ rawColor?: {
79
+ r: number;
80
+ g: number;
81
+ b: number;
82
+ a: number;
83
+ };
70
84
  }
71
85
  /**
72
86
  * Our vendor namespace inside DTCG $extensions. Survives round-trip through
@@ -82,6 +96,48 @@ export interface FigmaMcpExtensions {
82
96
  variableId?: string;
83
97
  /** Figma collection ID. Used to route the variable to the right collection. */
84
98
  collectionId?: string;
99
+ /**
100
+ * Figma's native resolvedType for the source variable (COLOR / FLOAT /
101
+ * STRING / BOOLEAN / TIMING / EASING). Import uses this to know the true
102
+ * write type — critically, TIMING and EASING variables are read-only via
103
+ * the Plugin API and must never be sent to setValueForMode.
104
+ */
105
+ figmaResolvedType?: string;
106
+ /**
107
+ * The original Figma variable name when it differs from the token path
108
+ * (e.g. TIMING/EASING variables carry a trailing "/Timing" or "/Easing"
109
+ * segment that we strip from the token path). Preserved for round-trip.
110
+ */
111
+ figmaName?: string;
112
+ /**
113
+ * Spring easing parameters per mode (mass/stiffness/damping) for EASING
114
+ * variables whose value can't be represented as a DTCG cubicBezier.
115
+ */
116
+ spring?: Record<string, unknown>;
117
+ /**
118
+ * Figma variable scopes (e.g. ["FILL_COLOR", "STROKE_COLOR"]). OMITTED
119
+ * when the variable has the default scoping (["ALL_SCOPES"] or empty) so
120
+ * legacy output stays byte-identical. Import semantics: an absent field
121
+ * means "no opinion" (never resets Figma-side scopes); an explicit
122
+ * ["ALL_SCOPES"] resets to the default.
123
+ */
124
+ scopes?: string[];
125
+ /**
126
+ * Figma per-platform code syntax (e.g. { WEB: "var(--color-primary)" }).
127
+ * OMITTED when empty. Import semantics: an absent field means "no
128
+ * opinion"; a present object is authoritative — platforms missing from it
129
+ * are removed via removeVariableCodeSyntax on apply.
130
+ */
131
+ codeSyntax?: Record<string, string>;
132
+ /**
133
+ * Formatter/parser round-trip markers (transient — written into DTCG
134
+ * output by the formatter, absorbed and stripped by the parser):
135
+ * `primaryMode` records which mode name the token's `$value` represents;
136
+ * `leafRemap` marks a leaf emitted under the reserved "@" key because its
137
+ * name collided with a group of the same name.
138
+ */
139
+ primaryMode?: string;
140
+ leafRemap?: boolean;
85
141
  /**
86
142
  * The value(s) that were synced to/from Figma the last time this tool ran.
87
143
  * Used to detect true two-sided conflicts: if BOTH the current Figma value
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/core/tokens/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/core/tokens/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/core/tokens/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAiSH;;;GAGG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,mBAA4B,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/core/tokens/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAqVH;;;GAGG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,mBAA4B,CAAC"}
@@ -8,19 +8,25 @@
8
8
  * return TokenFormatNotImplementedError with a helpful message
9
9
  * directing users to DTCG.
10
10
  * - figma_import_tokens: working for DTCG JSON input with full
11
- * diff-aware merge. Apply phase pushes value updates (toUpdate) to
12
- * Figma via the plugin bridge verified end-to-end against real
13
- * multi-mode design systems. toCreate / toDelete / alias-target
14
- * updates surface in the diff plan but are not yet wired through
15
- * the apply phase (use figma_setup_design_tokens /
16
- * figma_batch_create_variables / figma_delete_variable manually for
17
- * those for now).
11
+ * diff-aware merge and a complete apply phase:
12
+ * toUpdate value updates batched via the plugin bridge,
13
+ * including alias-target updates ({ type: "VARIABLE_ALIAS", id })
14
+ * when the reference resolves to an existing or just-created
15
+ * variable.
16
+ * toCreate missing collections (created with the token file's
17
+ * full mode list) and missing variables in one batched script;
18
+ * literal values first, alias values in a second pass so
19
+ * within-batch alias targets exist. TIMING/EASING cannot be
20
+ * created via the Plugin API and are skipped with a warning.
21
+ * • toDelete — STRICTLY gated behind strategy: "replace". Merge
22
+ * (default) preserves Figma-only variables and only reports them.
18
23
  *
19
24
  * Both tools auto-discover `tokens.config.json` at the project root and use
20
25
  * its source/generated/modes/conflictResolution settings as defaults. They
21
26
  * stay zero-arg in normal use.
22
27
  */
23
28
  import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
29
+ import { type TokenDocument } from "./tokens/index.js";
24
30
  export interface RegisterTokensToolsOptions {
25
31
  /**
26
32
  * True when registering in Cloud Mode (Cloudflare Workers). In Cloud Mode
@@ -39,4 +45,241 @@ export declare function registerImportTokensTool(server: McpServer, getDesktopCo
39
45
  * Convenience: register both tools at once.
40
46
  */
41
47
  export declare function registerTokensTools(server: McpServer, getDesktopConnector: () => Promise<any>, opts?: RegisterTokensToolsOptions): void;
48
+ /**
49
+ * Compute a diff plan between Figma's current state (left) and the code's
50
+ * proposed state (right). Returns a structured diff plan; value-update
51
+ * mutations are applied via the plugin bridge below.
52
+ *
53
+ * MATCH PRIORITY (as the tool description promises): Figma variable ID
54
+ * first, then exact set::path. A code-side token whose path has no Figma
55
+ * counterpart but whose $extensions["figma-console-mcp"].variableId matches
56
+ * a live variable is a RENAME — routed to toRename (name change + any
57
+ * value/meta changes), and its Figma-side counterpart is EXCLUDED from
58
+ * toDelete. Without this, a path rename in the code file would create a
59
+ * duplicate variable under merge, and under replace would permanently
60
+ * delete the original (detaching all its bindings).
61
+ *
62
+ * Exported for test coverage of the dialect-normalized comparison
63
+ * (round-trip exports in both DTCG dialects must diff as unchanged) and
64
+ * rename classification.
65
+ */
66
+ export declare function computeDiffPlan(figmaDoc: TokenDocument, codeDoc: TokenDocument): {
67
+ toCreate: Array<{
68
+ path: string;
69
+ type: string;
70
+ value: unknown;
71
+ }>;
72
+ toUpdate: Array<{
73
+ path: string;
74
+ before: unknown;
75
+ after: unknown;
76
+ /**
77
+ * Present when variable metadata (scopes/codeSyntax) changed. Absent for
78
+ * plain value-only updates (the historical entry shape). `values: false`
79
+ * tells the apply phase to skip setValueForMode entirely and only write
80
+ * the metadata.
81
+ */
82
+ changes?: {
83
+ values: boolean;
84
+ scopes: boolean;
85
+ codeSyntax: boolean;
86
+ };
87
+ }>;
88
+ toRename: Array<{
89
+ /** New (code-side) diff key. */
90
+ path: string;
91
+ /** Old (Figma-side) diff key the variableId matched. */
92
+ from: string;
93
+ variableId: string;
94
+ /** New Figma variable name — the '/'-joined code-side token path. */
95
+ newName: string;
96
+ /** Value/meta changes to apply alongside the rename. */
97
+ changes: {
98
+ values: boolean;
99
+ scopes: boolean;
100
+ codeSyntax: boolean;
101
+ };
102
+ }>;
103
+ toDelete: Array<{
104
+ path: string;
105
+ }>;
106
+ unchanged: number;
107
+ };
108
+ /**
109
+ * How an alias reference resolves for the apply phase:
110
+ * - { id } → an existing (or already-created) Figma variable ID
111
+ * - { pending } → the target is itself in this import's toCreate batch;
112
+ * the create script resolves it in its second pass via the
113
+ * returned key
114
+ * - null → unresolvable; caller skips with a warning
115
+ */
116
+ type AliasIdResolution = {
117
+ id: string;
118
+ } | {
119
+ pending: string;
120
+ } | null;
121
+ /**
122
+ * Build a resolver that maps a DTCG alias reference (set-qualified
123
+ * `{theme.color.primary}`, bare `{color.primary}` when unambiguous, or the
124
+ * converter's `{__library:VariableID:...}` cross-library form) to a Figma
125
+ * variable ID.
126
+ *
127
+ * Resolution priority for a matched code-side token:
128
+ * 1. a variable created earlier in THIS apply run (createdIdByKey — the
129
+ * resolver closes over the mutable map, so the create phase's results
130
+ * are visible to the later update phase)
131
+ * 2. the live Figma snapshot's variable ID for the same set::path
132
+ * 3. "pending" when the target is queued in this run's toCreate batch
133
+ * 4. the token's own $extensions variableId (stale-but-recorded fallback)
134
+ * References that don't match a code-side token fall back to the live Figma
135
+ * snapshot lookup. Exported for test coverage.
136
+ */
137
+ export declare function makeAliasIdResolver(figmaDoc: TokenDocument, codeDoc: TokenDocument, toCreateKeys: Set<string>, createdIdByKey: Map<string, string>): (reference: string) => AliasIdResolution;
138
+ /**
139
+ * One variable update to push to Figma. mapping is by modeId (Figma's
140
+ * native identifier), not mode name, because that's what the Plugin API
141
+ * needs.
142
+ */
143
+ interface VariableUpdate {
144
+ variableId: string;
145
+ variableName: string;
146
+ resolvedType: "COLOR" | "FLOAT" | "STRING" | "BOOLEAN";
147
+ valuesByMode: Record<string, unknown>;
148
+ /**
149
+ * Rename op: set `variable.name` to this '/'-joined path before any value
150
+ * writes. Produced by the ID-first rename classification in
151
+ * computeDiffPlan — never combined with a create/delete of the same
152
+ * variable.
153
+ */
154
+ newName?: string;
155
+ /** Full replacement scopes array (`variable.scopes = [...]`). */
156
+ scopes?: string[];
157
+ /**
158
+ * Per-platform code syntax ops: `set` maps platform → value
159
+ * (setVariableCodeSyntax), `remove` lists platforms to clear
160
+ * (removeVariableCodeSyntax).
161
+ */
162
+ codeSyntax?: {
163
+ set?: Record<string, string>;
164
+ remove?: string[];
165
+ };
166
+ }
167
+ /**
168
+ * Convert a TokenValue back to Figma's native value shape. Required for the
169
+ * Plugin API's setValueForMode call.
170
+ *
171
+ * - color hex string "#RRGGBB(AA)" → { r, g, b, a } floats in [0, 1].
172
+ * Non-hex color strings ("rgb(255,0,0)", "transparent", named colors
173
+ * like "salmon") return skip-invalid instead of throwing — a throw here
174
+ * would abort the import mid-apply.
175
+ * - DTCG 2025.10 color objects → { r, g, b, a }: srgb components map
176
+ * directly (clamped to [0, 1]); non-srgb colorSpaces (display-p3,
177
+ * oklch, …) fall back to the object's `hex` field when present, else
178
+ * skip-invalid; hex-only objects are accepted too
179
+ * - FLOAT-typed number → number ("16px"-style strings and DTCG
180
+ * { value, unit } objects are parsed to their numeric part; anything
181
+ * that still comes out NaN is skipped rather than pushed to Figma)
182
+ * - STRING-typed string → string
183
+ * - BOOLEAN → boolean
184
+ * - Alias references return `skip-alias` so the CALLER resolves them —
185
+ * both apply paths pass the reference through their alias-ID resolver
186
+ * (just-created variable → live snapshot → pending in batch → recorded
187
+ * $extensions ID) and write { type: "VARIABLE_ALIAS", id }. Only when
188
+ * the resolver comes up empty does the reference stay skipped, with a
189
+ * warning rather than a silent drop.
190
+ *
191
+ * Exported for test coverage of the value-conversion edge cases.
192
+ */
193
+ export declare function tokenValueToFigma(value: {
194
+ literal?: unknown;
195
+ reference?: string;
196
+ }, resolvedType: VariableUpdate["resolvedType"]): {
197
+ kind: "value";
198
+ value: unknown;
199
+ } | {
200
+ kind: "skip-alias";
201
+ reference: string;
202
+ } | {
203
+ kind: "skip-empty";
204
+ } | {
205
+ kind: "skip-invalid";
206
+ reason: string;
207
+ };
208
+ /**
209
+ * One value to set on a variable at creation time. New-collection variables
210
+ * carry `modeName` (the script resolves the modeId from the collection it
211
+ * just created); existing-collection variables carry `modeId` (resolved
212
+ * server-side from the live snapshot). Alias values come in two flavors:
213
+ * `alias` (target already exists in Figma) and `alias-pending` (target is
214
+ * created in this same batch; the script resolves `targetKey` against its
215
+ * created-ID map in the second pass).
216
+ */
217
+ type CreateValueEntry = {
218
+ modeName?: string;
219
+ modeId?: string;
220
+ } & ({
221
+ kind: "literal";
222
+ value: unknown;
223
+ } | {
224
+ kind: "alias";
225
+ targetId: string;
226
+ } | {
227
+ kind: "alias-pending";
228
+ targetKey: string;
229
+ });
230
+ interface CreateVariableDef {
231
+ /** Diff key ("SetName::dot.path") — primary key for created-ID mapping. */
232
+ key: string;
233
+ /** Figma variable name (slash-joined token path). */
234
+ name: string;
235
+ resolvedType: VariableUpdate["resolvedType"];
236
+ description?: string;
237
+ values: CreateValueEntry[];
238
+ /** Non-default scopes to apply at creation (from token $extensions). */
239
+ scopes?: string[];
240
+ /** Per-platform code syntax to apply at creation (from token $extensions). */
241
+ codeSyntax?: Record<string, string>;
242
+ }
243
+ /**
244
+ * The create-phase plan: which collections to create (with the token file's
245
+ * full mode list) and which variables to create where. Built entirely
246
+ * server-side so the plugin script stays a dumb executor.
247
+ */
248
+ export interface CreatePlan {
249
+ newCollections: Array<{
250
+ setName: string;
251
+ modes: string[];
252
+ variables: CreateVariableDef[];
253
+ }>;
254
+ existingCollections: Array<{
255
+ collectionId: string;
256
+ variables: CreateVariableDef[];
257
+ }>;
258
+ }
259
+ /**
260
+ * Translate the diff's toCreate entries into a CreatePlan.
261
+ *
262
+ * - Sets with no matching Figma collection (matched by the round-trip
263
+ * figmaCollectionId first, then by name) become newCollections carrying
264
+ * the set's FULL mode list.
265
+ * - Variables missing from an existing collection go to that collection,
266
+ * with values pre-resolved to modeIds; values for modes the collection
267
+ * doesn't have are skipped with a warning.
268
+ * - resolvedType honors $extensions.figmaResolvedType when recorded, else
269
+ * falls back to inferFigmaResolvedType. TIMING/EASING variables are
270
+ * skipped with a warning — the Figma Plugin API cannot create them.
271
+ * - Literal values convert via tokenValueToFigma (both DTCG dialects);
272
+ * alias values resolve via the alias-ID resolver (existing target →
273
+ * "alias", within-batch target → "alias-pending", unresolvable → skip
274
+ * with warning).
275
+ *
276
+ * Exported for test coverage.
277
+ */
278
+ export declare function buildCreatePlan(toCreate: Array<{
279
+ path: string;
280
+ }>, codeDoc: TokenDocument, figmaPayload: {
281
+ collections: any[];
282
+ variables: any[];
283
+ }, resolveAliasId: (reference: string) => AliasIdResolution, warnings: string[]): CreatePlan;
284
+ export {};
42
285
  //# sourceMappingURL=tokens-tools.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tokens-tools.d.ts","sourceRoot":"","sources":["../../src/core/tokens-tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAWH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAuDzE,MAAM,WAAW,0BAA0B;IACzC;;;;;;;;OAQG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,SAAS,EACjB,mBAAmB,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC,EACvC,IAAI,GAAE,0BAA+B,GACpC,IAAI,CAyBN;AAED,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,SAAS,EACjB,mBAAmB,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC,EACvC,IAAI,GAAE,0BAA+B,GACpC,IAAI,CAyBN;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,SAAS,EACjB,mBAAmB,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC,EACvC,IAAI,GAAE,0BAA+B,GACpC,IAAI,CAGN"}
1
+ {"version":3,"file":"tokens-tools.d.ts","sourceRoot":"","sources":["../../src/core/tokens-tools.ts"],"names":[],"mappings":"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"}