@obra-studio/figma-console-mcp 1.32.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/LICENSE +21 -0
- package/README.md +879 -0
- package/dist/apps/design-system-dashboard/scoring/accessibility.d.ts +14 -0
- package/dist/apps/design-system-dashboard/scoring/accessibility.d.ts.map +1 -0
- package/dist/apps/design-system-dashboard/scoring/accessibility.js +278 -0
- package/dist/apps/design-system-dashboard/scoring/accessibility.js.map +1 -0
- package/dist/apps/design-system-dashboard/scoring/component-metadata.d.ts +29 -0
- package/dist/apps/design-system-dashboard/scoring/component-metadata.d.ts.map +1 -0
- package/dist/apps/design-system-dashboard/scoring/component-metadata.js +358 -0
- package/dist/apps/design-system-dashboard/scoring/component-metadata.js.map +1 -0
- package/dist/apps/design-system-dashboard/scoring/consistency.d.ts +14 -0
- package/dist/apps/design-system-dashboard/scoring/consistency.d.ts.map +1 -0
- package/dist/apps/design-system-dashboard/scoring/consistency.js +342 -0
- package/dist/apps/design-system-dashboard/scoring/consistency.js.map +1 -0
- package/dist/apps/design-system-dashboard/scoring/coverage.d.ts +14 -0
- package/dist/apps/design-system-dashboard/scoring/coverage.d.ts.map +1 -0
- package/dist/apps/design-system-dashboard/scoring/coverage.js +231 -0
- package/dist/apps/design-system-dashboard/scoring/coverage.js.map +1 -0
- package/dist/apps/design-system-dashboard/scoring/engine.d.ts +27 -0
- package/dist/apps/design-system-dashboard/scoring/engine.d.ts.map +1 -0
- package/dist/apps/design-system-dashboard/scoring/engine.js +93 -0
- package/dist/apps/design-system-dashboard/scoring/engine.js.map +1 -0
- package/dist/apps/design-system-dashboard/scoring/naming-semantics.d.ts +14 -0
- package/dist/apps/design-system-dashboard/scoring/naming-semantics.d.ts.map +1 -0
- package/dist/apps/design-system-dashboard/scoring/naming-semantics.js +309 -0
- package/dist/apps/design-system-dashboard/scoring/naming-semantics.js.map +1 -0
- package/dist/apps/design-system-dashboard/scoring/token-architecture.d.ts +14 -0
- package/dist/apps/design-system-dashboard/scoring/token-architecture.d.ts.map +1 -0
- package/dist/apps/design-system-dashboard/scoring/token-architecture.js +350 -0
- package/dist/apps/design-system-dashboard/scoring/token-architecture.js.map +1 -0
- package/dist/apps/design-system-dashboard/scoring/types.d.ts +89 -0
- package/dist/apps/design-system-dashboard/scoring/types.d.ts.map +1 -0
- package/dist/apps/design-system-dashboard/scoring/types.js +41 -0
- package/dist/apps/design-system-dashboard/scoring/types.js.map +1 -0
- package/dist/apps/design-system-dashboard/server.d.ts +24 -0
- package/dist/apps/design-system-dashboard/server.d.ts.map +1 -0
- package/dist/apps/design-system-dashboard/server.js +160 -0
- package/dist/apps/design-system-dashboard/server.js.map +1 -0
- package/dist/apps/token-browser/server.d.ts +26 -0
- package/dist/apps/token-browser/server.d.ts.map +1 -0
- package/dist/apps/token-browser/server.js +137 -0
- package/dist/apps/token-browser/server.js.map +1 -0
- package/dist/browser/base.d.ts +58 -0
- package/dist/browser/base.d.ts.map +1 -0
- package/dist/browser/base.js +6 -0
- package/dist/browser/base.js.map +1 -0
- package/dist/browser/local.d.ts +87 -0
- package/dist/browser/local.d.ts.map +1 -0
- package/dist/browser/local.js +318 -0
- package/dist/browser/local.js.map +1 -0
- package/dist/core/accessibility-tools.d.ts +21 -0
- package/dist/core/accessibility-tools.d.ts.map +1 -0
- package/dist/core/accessibility-tools.js +307 -0
- package/dist/core/accessibility-tools.js.map +1 -0
- package/dist/core/annotation-tools.d.ts +14 -0
- package/dist/core/annotation-tools.d.ts.map +1 -0
- package/dist/core/annotation-tools.js +231 -0
- package/dist/core/annotation-tools.js.map +1 -0
- package/dist/core/autodocs-tools.d.ts +7 -0
- package/dist/core/autodocs-tools.d.ts.map +1 -0
- package/dist/core/autodocs-tools.js +195 -0
- package/dist/core/autodocs-tools.js.map +1 -0
- package/dist/core/comment-tools.d.ts +11 -0
- package/dist/core/comment-tools.d.ts.map +1 -0
- package/dist/core/comment-tools.js +293 -0
- package/dist/core/comment-tools.js.map +1 -0
- package/dist/core/config.d.ts +17 -0
- package/dist/core/config.d.ts.map +1 -0
- package/dist/core/config.js +154 -0
- package/dist/core/config.js.map +1 -0
- package/dist/core/console-monitor.d.ts +82 -0
- package/dist/core/console-monitor.d.ts.map +1 -0
- package/dist/core/console-monitor.js +428 -0
- package/dist/core/console-monitor.js.map +1 -0
- package/dist/core/deep-component-tools.d.ts +14 -0
- package/dist/core/deep-component-tools.d.ts.map +1 -0
- package/dist/core/deep-component-tools.js +129 -0
- package/dist/core/deep-component-tools.js.map +1 -0
- package/dist/core/design-code-tools.d.ts +116 -0
- package/dist/core/design-code-tools.d.ts.map +1 -0
- package/dist/core/design-code-tools.js +2751 -0
- package/dist/core/design-code-tools.js.map +1 -0
- package/dist/core/design-system-manifest.d.ts +272 -0
- package/dist/core/design-system-manifest.d.ts.map +1 -0
- package/dist/core/design-system-manifest.js +261 -0
- package/dist/core/design-system-manifest.js.map +1 -0
- package/dist/core/design-system-tools.d.ts +67 -0
- package/dist/core/design-system-tools.d.ts.map +1 -0
- package/dist/core/design-system-tools.js +874 -0
- package/dist/core/design-system-tools.js.map +1 -0
- package/dist/core/diagnose-tool.d.ts +33 -0
- package/dist/core/diagnose-tool.d.ts.map +1 -0
- package/dist/core/diagnose-tool.js +97 -0
- package/dist/core/diagnose-tool.js.map +1 -0
- package/dist/core/diff/changelog-formatter.d.ts +35 -0
- package/dist/core/diff/changelog-formatter.d.ts.map +1 -0
- package/dist/core/diff/changelog-formatter.js +276 -0
- package/dist/core/diff/changelog-formatter.js.map +1 -0
- package/dist/core/diff/diff-engine.d.ts +127 -0
- package/dist/core/diff/diff-engine.d.ts.map +1 -0
- package/dist/core/diff/diff-engine.js +335 -0
- package/dist/core/diff/diff-engine.js.map +1 -0
- package/dist/core/diff/property-compare.d.ts +19 -0
- package/dist/core/diff/property-compare.d.ts.map +1 -0
- package/dist/core/diff/property-compare.js +37 -0
- package/dist/core/diff/property-compare.js.map +1 -0
- package/dist/core/diff/version-cache.d.ts +40 -0
- package/dist/core/diff/version-cache.d.ts.map +1 -0
- package/dist/core/diff/version-cache.js +75 -0
- package/dist/core/diff/version-cache.js.map +1 -0
- package/dist/core/enrichment/enrichment-service.d.ts +52 -0
- package/dist/core/enrichment/enrichment-service.d.ts.map +1 -0
- package/dist/core/enrichment/enrichment-service.js +369 -0
- package/dist/core/enrichment/enrichment-service.js.map +1 -0
- package/dist/core/enrichment/index.d.ts +8 -0
- package/dist/core/enrichment/index.d.ts.map +1 -0
- package/dist/core/enrichment/index.js +8 -0
- package/dist/core/enrichment/index.js.map +1 -0
- package/dist/core/enrichment/relationship-mapper.d.ts +106 -0
- package/dist/core/enrichment/relationship-mapper.d.ts.map +1 -0
- package/dist/core/enrichment/relationship-mapper.js +352 -0
- package/dist/core/enrichment/relationship-mapper.js.map +1 -0
- package/dist/core/enrichment/style-resolver.d.ts +80 -0
- package/dist/core/enrichment/style-resolver.d.ts.map +1 -0
- package/dist/core/enrichment/style-resolver.js +327 -0
- package/dist/core/enrichment/style-resolver.js.map +1 -0
- package/dist/core/figjam-tools.d.ts +8 -0
- package/dist/core/figjam-tools.d.ts.map +1 -0
- package/dist/core/figjam-tools.js +548 -0
- package/dist/core/figjam-tools.js.map +1 -0
- package/dist/core/figma-api.d.ts +245 -0
- package/dist/core/figma-api.d.ts.map +1 -0
- package/dist/core/figma-api.js +446 -0
- package/dist/core/figma-api.js.map +1 -0
- package/dist/core/figma-connector.d.ts +180 -0
- package/dist/core/figma-connector.d.ts.map +1 -0
- package/dist/core/figma-connector.js +8 -0
- package/dist/core/figma-connector.js.map +1 -0
- package/dist/core/figma-desktop-connector.d.ts +312 -0
- package/dist/core/figma-desktop-connector.d.ts.map +1 -0
- package/dist/core/figma-desktop-connector.js +1298 -0
- package/dist/core/figma-desktop-connector.js.map +1 -0
- package/dist/core/figma-reconstruction-spec.d.ts +166 -0
- package/dist/core/figma-reconstruction-spec.d.ts.map +1 -0
- package/dist/core/figma-reconstruction-spec.js +403 -0
- package/dist/core/figma-reconstruction-spec.js.map +1 -0
- package/dist/core/figma-style-extractor.d.ts +76 -0
- package/dist/core/figma-style-extractor.d.ts.map +1 -0
- package/dist/core/figma-style-extractor.js +312 -0
- package/dist/core/figma-style-extractor.js.map +1 -0
- package/dist/core/figma-tools.d.ts +22 -0
- package/dist/core/figma-tools.d.ts.map +1 -0
- package/dist/core/figma-tools.js +3187 -0
- package/dist/core/figma-tools.js.map +1 -0
- package/dist/core/identity.d.ts +41 -0
- package/dist/core/identity.d.ts.map +1 -0
- package/dist/core/identity.js +97 -0
- package/dist/core/identity.js.map +1 -0
- package/dist/core/library-tools.d.ts +17 -0
- package/dist/core/library-tools.d.ts.map +1 -0
- package/dist/core/library-tools.js +581 -0
- package/dist/core/library-tools.js.map +1 -0
- package/dist/core/logger.d.ts +22 -0
- package/dist/core/logger.d.ts.map +1 -0
- package/dist/core/logger.js +54 -0
- package/dist/core/logger.js.map +1 -0
- package/dist/core/port-discovery.d.ts +171 -0
- package/dist/core/port-discovery.d.ts.map +1 -0
- package/dist/core/port-discovery.js +563 -0
- package/dist/core/port-discovery.js.map +1 -0
- package/dist/core/resolve-package-root.d.ts +2 -0
- package/dist/core/resolve-package-root.d.ts.map +1 -0
- package/dist/core/resolve-package-root.js +12 -0
- package/dist/core/resolve-package-root.js.map +1 -0
- package/dist/core/slides-tools.d.ts +8 -0
- package/dist/core/slides-tools.d.ts.map +1 -0
- package/dist/core/slides-tools.js +715 -0
- package/dist/core/slides-tools.js.map +1 -0
- package/dist/core/snippet-injector.d.ts +24 -0
- package/dist/core/snippet-injector.d.ts.map +1 -0
- package/dist/core/snippet-injector.js +97 -0
- package/dist/core/snippet-injector.js.map +1 -0
- package/dist/core/tokens/alias-resolver.d.ts +55 -0
- package/dist/core/tokens/alias-resolver.d.ts.map +1 -0
- package/dist/core/tokens/alias-resolver.js +136 -0
- package/dist/core/tokens/alias-resolver.js.map +1 -0
- package/dist/core/tokens/config.d.ts +87 -0
- package/dist/core/tokens/config.d.ts.map +1 -0
- package/dist/core/tokens/config.js +285 -0
- package/dist/core/tokens/config.js.map +1 -0
- package/dist/core/tokens/figma-converter.d.ts +81 -0
- package/dist/core/tokens/figma-converter.d.ts.map +1 -0
- package/dist/core/tokens/figma-converter.js +196 -0
- package/dist/core/tokens/figma-converter.js.map +1 -0
- package/dist/core/tokens/formatters/css-vars.d.ts +24 -0
- package/dist/core/tokens/formatters/css-vars.d.ts.map +1 -0
- package/dist/core/tokens/formatters/css-vars.js +330 -0
- package/dist/core/tokens/formatters/css-vars.js.map +1 -0
- package/dist/core/tokens/formatters/dtcg.d.ts +28 -0
- package/dist/core/tokens/formatters/dtcg.d.ts.map +1 -0
- package/dist/core/tokens/formatters/dtcg.js +301 -0
- package/dist/core/tokens/formatters/dtcg.js.map +1 -0
- package/dist/core/tokens/formatters/index.d.ts +30 -0
- package/dist/core/tokens/formatters/index.d.ts.map +1 -0
- package/dist/core/tokens/formatters/index.js +46 -0
- package/dist/core/tokens/formatters/index.js.map +1 -0
- package/dist/core/tokens/formatters/json.d.ts +37 -0
- package/dist/core/tokens/formatters/json.d.ts.map +1 -0
- package/dist/core/tokens/formatters/json.js +188 -0
- package/dist/core/tokens/formatters/json.js.map +1 -0
- package/dist/core/tokens/formatters/less.d.ts +4 -0
- package/dist/core/tokens/formatters/less.d.ts.map +1 -0
- package/dist/core/tokens/formatters/less.js +5 -0
- package/dist/core/tokens/formatters/less.js.map +1 -0
- package/dist/core/tokens/formatters/scss.d.ts +26 -0
- package/dist/core/tokens/formatters/scss.d.ts.map +1 -0
- package/dist/core/tokens/formatters/scss.js +253 -0
- package/dist/core/tokens/formatters/scss.js.map +1 -0
- package/dist/core/tokens/formatters/stubs.d.ts +9 -0
- package/dist/core/tokens/formatters/stubs.d.ts.map +1 -0
- package/dist/core/tokens/formatters/stubs.js +14 -0
- package/dist/core/tokens/formatters/stubs.js.map +1 -0
- package/dist/core/tokens/formatters/style-dictionary-v3.d.ts +45 -0
- package/dist/core/tokens/formatters/style-dictionary-v3.d.ts.map +1 -0
- package/dist/core/tokens/formatters/style-dictionary-v3.js +208 -0
- package/dist/core/tokens/formatters/style-dictionary-v3.js.map +1 -0
- package/dist/core/tokens/formatters/tailwind-v3.d.ts +37 -0
- package/dist/core/tokens/formatters/tailwind-v3.d.ts.map +1 -0
- package/dist/core/tokens/formatters/tailwind-v3.js +238 -0
- package/dist/core/tokens/formatters/tailwind-v3.js.map +1 -0
- package/dist/core/tokens/formatters/tailwind-v4.d.ts +41 -0
- package/dist/core/tokens/formatters/tailwind-v4.d.ts.map +1 -0
- package/dist/core/tokens/formatters/tailwind-v4.js +331 -0
- package/dist/core/tokens/formatters/tailwind-v4.js.map +1 -0
- package/dist/core/tokens/formatters/tokens-studio.d.ts +44 -0
- package/dist/core/tokens/formatters/tokens-studio.d.ts.map +1 -0
- package/dist/core/tokens/formatters/tokens-studio.js +251 -0
- package/dist/core/tokens/formatters/tokens-studio.js.map +1 -0
- package/dist/core/tokens/formatters/ts-module.d.ts +35 -0
- package/dist/core/tokens/formatters/ts-module.d.ts.map +1 -0
- package/dist/core/tokens/formatters/ts-module.js +199 -0
- package/dist/core/tokens/formatters/ts-module.js.map +1 -0
- package/dist/core/tokens/index.d.ts +17 -0
- package/dist/core/tokens/index.d.ts.map +1 -0
- package/dist/core/tokens/index.js +16 -0
- package/dist/core/tokens/index.js.map +1 -0
- package/dist/core/tokens/parsers/css-vars.d.ts +3 -0
- package/dist/core/tokens/parsers/css-vars.d.ts.map +1 -0
- package/dist/core/tokens/parsers/css-vars.js +5 -0
- package/dist/core/tokens/parsers/css-vars.js.map +1 -0
- package/dist/core/tokens/parsers/dtcg.d.ts +21 -0
- package/dist/core/tokens/parsers/dtcg.d.ts.map +1 -0
- package/dist/core/tokens/parsers/dtcg.js +254 -0
- package/dist/core/tokens/parsers/dtcg.js.map +1 -0
- package/dist/core/tokens/parsers/index.d.ts +37 -0
- package/dist/core/tokens/parsers/index.d.ts.map +1 -0
- package/dist/core/tokens/parsers/index.js +139 -0
- package/dist/core/tokens/parsers/index.js.map +1 -0
- package/dist/core/tokens/parsers/json.d.ts +4 -0
- package/dist/core/tokens/parsers/json.d.ts.map +1 -0
- package/dist/core/tokens/parsers/json.js +8 -0
- package/dist/core/tokens/parsers/json.js.map +1 -0
- package/dist/core/tokens/parsers/scss.d.ts +3 -0
- package/dist/core/tokens/parsers/scss.d.ts.map +1 -0
- package/dist/core/tokens/parsers/scss.js +5 -0
- package/dist/core/tokens/parsers/scss.js.map +1 -0
- package/dist/core/tokens/parsers/stubs.d.ts +15 -0
- package/dist/core/tokens/parsers/stubs.d.ts.map +1 -0
- package/dist/core/tokens/parsers/stubs.js +21 -0
- package/dist/core/tokens/parsers/stubs.js.map +1 -0
- package/dist/core/tokens/parsers/style-dictionary-v3.d.ts +3 -0
- package/dist/core/tokens/parsers/style-dictionary-v3.d.ts.map +1 -0
- package/dist/core/tokens/parsers/style-dictionary-v3.js +5 -0
- package/dist/core/tokens/parsers/style-dictionary-v3.js.map +1 -0
- package/dist/core/tokens/parsers/tailwind-v3.d.ts +3 -0
- package/dist/core/tokens/parsers/tailwind-v3.d.ts.map +1 -0
- package/dist/core/tokens/parsers/tailwind-v3.js +5 -0
- package/dist/core/tokens/parsers/tailwind-v3.js.map +1 -0
- package/dist/core/tokens/parsers/tailwind-v4.d.ts +3 -0
- package/dist/core/tokens/parsers/tailwind-v4.d.ts.map +1 -0
- package/dist/core/tokens/parsers/tailwind-v4.js +5 -0
- package/dist/core/tokens/parsers/tailwind-v4.js.map +1 -0
- package/dist/core/tokens/parsers/tokens-studio.d.ts +3 -0
- package/dist/core/tokens/parsers/tokens-studio.d.ts.map +1 -0
- package/dist/core/tokens/parsers/tokens-studio.js +5 -0
- package/dist/core/tokens/parsers/tokens-studio.js.map +1 -0
- package/dist/core/tokens/schemas.d.ts +31 -0
- package/dist/core/tokens/schemas.d.ts.map +1 -0
- package/dist/core/tokens/schemas.js +149 -0
- package/dist/core/tokens/schemas.js.map +1 -0
- package/dist/core/tokens/transforms/color.d.ts +9 -0
- package/dist/core/tokens/transforms/color.d.ts.map +1 -0
- package/dist/core/tokens/transforms/color.js +13 -0
- package/dist/core/tokens/transforms/color.js.map +1 -0
- package/dist/core/tokens/transforms/index.d.ts +36 -0
- package/dist/core/tokens/transforms/index.d.ts.map +1 -0
- package/dist/core/tokens/transforms/index.js +30 -0
- package/dist/core/tokens/transforms/index.js.map +1 -0
- package/dist/core/tokens/transforms/size.d.ts +7 -0
- package/dist/core/tokens/transforms/size.d.ts.map +1 -0
- package/dist/core/tokens/transforms/size.js +8 -0
- package/dist/core/tokens/transforms/size.js.map +1 -0
- package/dist/core/tokens/types.d.ts +228 -0
- package/dist/core/tokens/types.d.ts.map +1 -0
- package/dist/core/tokens/types.js +19 -0
- package/dist/core/tokens/types.js.map +1 -0
- package/dist/core/tokens-tools.d.ts +42 -0
- package/dist/core/tokens-tools.d.ts.map +1 -0
- package/dist/core/tokens-tools.js +860 -0
- package/dist/core/tokens-tools.js.map +1 -0
- package/dist/core/types/design-code.d.ts +271 -0
- package/dist/core/types/design-code.d.ts.map +1 -0
- package/dist/core/types/design-code.js +5 -0
- package/dist/core/types/design-code.js.map +1 -0
- package/dist/core/types/enriched.d.ts +213 -0
- package/dist/core/types/enriched.d.ts.map +1 -0
- package/dist/core/types/enriched.js +6 -0
- package/dist/core/types/enriched.js.map +1 -0
- package/dist/core/types/index.d.ts +104 -0
- package/dist/core/types/index.d.ts.map +1 -0
- package/dist/core/types/index.js +5 -0
- package/dist/core/types/index.js.map +1 -0
- package/dist/core/variable-resolver.d.ts +45 -0
- package/dist/core/variable-resolver.d.ts.map +1 -0
- package/dist/core/variable-resolver.js +86 -0
- package/dist/core/variable-resolver.js.map +1 -0
- package/dist/core/version-tools.d.ts +59 -0
- package/dist/core/version-tools.d.ts.map +1 -0
- package/dist/core/version-tools.js +1159 -0
- package/dist/core/version-tools.js.map +1 -0
- package/dist/core/websocket-connector.d.ts +187 -0
- package/dist/core/websocket-connector.d.ts.map +1 -0
- package/dist/core/websocket-connector.js +378 -0
- package/dist/core/websocket-connector.js.map +1 -0
- package/dist/core/websocket-server.js +866 -0
- package/dist/core/websocket-server.js.map +1 -0
- package/dist/core/write-tools.d.ts +7 -0
- package/dist/core/write-tools.d.ts.map +1 -0
- package/dist/core/write-tools.js +2172 -0
- package/dist/core/write-tools.js.map +1 -0
- package/dist/local.d.ts +95 -0
- package/dist/local.d.ts.map +1 -0
- package/dist/local.js +3036 -0
- package/dist/local.js.map +1 -0
- package/dist/vendor/obra-autodocs/autodocs-body.generated.d.ts +2 -0
- package/dist/vendor/obra-autodocs/autodocs-body.generated.d.ts.map +1 -0
- package/dist/vendor/obra-autodocs/autodocs-body.generated.js +6 -0
- package/dist/vendor/obra-autodocs/autodocs-body.generated.js.map +1 -0
- package/figma-desktop-bridge/README.md +365 -0
- package/figma-desktop-bridge/code.js +6504 -0
- package/figma-desktop-bridge/icon.png +0 -0
- package/figma-desktop-bridge/manifest.json +67 -0
- package/figma-desktop-bridge/ui.html +2441 -0
- package/package.json +98 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"slides-tools.js","sourceRoot":"","sources":["../../src/core/slides-tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Snippet Injector
|
|
3
|
+
* Generates and manages console-based data extraction snippets for Figma
|
|
4
|
+
*/
|
|
5
|
+
import type { ConsoleLogEntry } from './types/index.js';
|
|
6
|
+
export declare class SnippetInjector {
|
|
7
|
+
/**
|
|
8
|
+
* Generate variables extraction snippet for Figma console
|
|
9
|
+
*/
|
|
10
|
+
generateVariablesSnippet(): string;
|
|
11
|
+
/**
|
|
12
|
+
* Parse variables from console log entry
|
|
13
|
+
*/
|
|
14
|
+
parseVariablesFromLog(logEntry: ConsoleLogEntry): {
|
|
15
|
+
variables: any[];
|
|
16
|
+
variableCollections: any[];
|
|
17
|
+
timestamp: number;
|
|
18
|
+
} | null;
|
|
19
|
+
/**
|
|
20
|
+
* Find the most recent variables log entry
|
|
21
|
+
*/
|
|
22
|
+
findVariablesLog(logs: ConsoleLogEntry[]): ConsoleLogEntry | null;
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=snippet-injector.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"snippet-injector.d.ts","sourceRoot":"","sources":["../../src/core/snippet-injector.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAKxD,qBAAa,eAAe;IAC3B;;OAEG;IACH,wBAAwB,IAAI,MAAM;IAyClC;;OAEG;IACH,qBAAqB,CAAC,QAAQ,EAAE,eAAe,GAAG;QACjD,SAAS,EAAE,GAAG,EAAE,CAAC;QACjB,mBAAmB,EAAE,GAAG,EAAE,CAAC;QAC3B,SAAS,EAAE,MAAM,CAAC;KAClB,GAAG,IAAI;IAuCR;;OAEG;IACH,gBAAgB,CAAC,IAAI,EAAE,eAAe,EAAE,GAAG,eAAe,GAAG,IAAI;CAUjE"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Snippet Injector
|
|
3
|
+
* Generates and manages console-based data extraction snippets for Figma
|
|
4
|
+
*/
|
|
5
|
+
import { createChildLogger } from './logger.js';
|
|
6
|
+
const logger = createChildLogger({ component: 'snippet-injector' });
|
|
7
|
+
export class SnippetInjector {
|
|
8
|
+
/**
|
|
9
|
+
* Generate variables extraction snippet for Figma console
|
|
10
|
+
*/
|
|
11
|
+
generateVariablesSnippet() {
|
|
12
|
+
return `
|
|
13
|
+
(async () => {
|
|
14
|
+
try {
|
|
15
|
+
const vars = await figma.variables.getLocalVariablesAsync();
|
|
16
|
+
const collections = await figma.variables.getLocalVariableCollectionsAsync();
|
|
17
|
+
|
|
18
|
+
const payload = {
|
|
19
|
+
timestamp: Date.now(),
|
|
20
|
+
variables: vars.map(v => ({
|
|
21
|
+
id: v.id,
|
|
22
|
+
name: v.name,
|
|
23
|
+
key: v.key,
|
|
24
|
+
resolvedType: v.resolvedType,
|
|
25
|
+
valuesByMode: v.valuesByMode,
|
|
26
|
+
variableCollectionId: v.variableCollectionId,
|
|
27
|
+
scopes: v.scopes,
|
|
28
|
+
description: v.description,
|
|
29
|
+
hiddenFromPublishing: v.hiddenFromPublishing
|
|
30
|
+
})),
|
|
31
|
+
variableCollections: collections.map(c => ({
|
|
32
|
+
id: c.id,
|
|
33
|
+
name: c.name,
|
|
34
|
+
key: c.key,
|
|
35
|
+
modes: c.modes.map(m => ({ modeId: m.modeId, name: m.name })),
|
|
36
|
+
defaultModeId: c.defaultModeId,
|
|
37
|
+
variableIds: c.variableIds
|
|
38
|
+
}))
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
console.log('[MCP_VARIABLES]', JSON.stringify(payload), '[MCP_VARIABLES_END]');
|
|
42
|
+
console.log('✅ Variables data captured! Run figma_get_variables({ parseFromConsole: true }) in Claude to retrieve.');
|
|
43
|
+
|
|
44
|
+
} catch (error) {
|
|
45
|
+
console.error('[MCP_VARIABLES_ERROR]', error.message);
|
|
46
|
+
console.log('❌ Make sure you\\'re running this in a Figma file with variables.');
|
|
47
|
+
}
|
|
48
|
+
})();
|
|
49
|
+
`.trim();
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Parse variables from console log entry
|
|
53
|
+
*/
|
|
54
|
+
parseVariablesFromLog(logEntry) {
|
|
55
|
+
try {
|
|
56
|
+
// Check for marker
|
|
57
|
+
if (!logEntry.message.includes('[MCP_VARIABLES]')) {
|
|
58
|
+
return null;
|
|
59
|
+
}
|
|
60
|
+
// Extract JSON from args
|
|
61
|
+
// The snippet logs: console.log('[MCP_VARIABLES]', JSON.stringify(payload), '[MCP_VARIABLES_END]')
|
|
62
|
+
// So args[0] is the marker, args[1] is the JSON string
|
|
63
|
+
const jsonStr = logEntry.args[1] || logEntry.args[0];
|
|
64
|
+
if (!jsonStr) {
|
|
65
|
+
throw new Error('No data found in console log');
|
|
66
|
+
}
|
|
67
|
+
const data = typeof jsonStr === 'string' ? JSON.parse(jsonStr) : jsonStr;
|
|
68
|
+
logger.info({
|
|
69
|
+
variableCount: data.variables?.length || 0,
|
|
70
|
+
collectionCount: data.variableCollections?.length || 0,
|
|
71
|
+
}, 'Successfully parsed variables from console log');
|
|
72
|
+
return {
|
|
73
|
+
variables: data.variables || [],
|
|
74
|
+
variableCollections: data.variableCollections || [],
|
|
75
|
+
timestamp: data.timestamp || Date.now(),
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
catch (error) {
|
|
79
|
+
logger.error({ error }, 'Failed to parse variables from console log');
|
|
80
|
+
throw new Error(`Failed to parse variables from console log: ${error instanceof Error ? error.message : String(error)}`);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Find the most recent variables log entry
|
|
85
|
+
*/
|
|
86
|
+
findVariablesLog(logs) {
|
|
87
|
+
// Search in reverse (most recent first)
|
|
88
|
+
for (let i = logs.length - 1; i >= 0; i--) {
|
|
89
|
+
const log = logs[i];
|
|
90
|
+
if (log.message.includes('[MCP_VARIABLES]')) {
|
|
91
|
+
return log;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
return null;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
//# sourceMappingURL=snippet-injector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"snippet-injector.js","sourceRoot":"","sources":["../../src/core/snippet-injector.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEhD,MAAM,MAAM,GAAG,iBAAiB,CAAC,EAAE,SAAS,EAAE,kBAAkB,EAAE,CAAC,CAAC;AAEpE,MAAM,OAAO,eAAe;IAC3B;;OAEG;IACH,wBAAwB;QACvB,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCN,CAAC,IAAI,EAAE,CAAC;IACV,CAAC;IAED;;OAEG;IACH,qBAAqB,CAAC,QAAyB;QAK9C,IAAI;YACH,mBAAmB;YACnB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE;gBAClD,OAAO,IAAI,CAAC;aACZ;YAED,yBAAyB;YACzB,mGAAmG;YACnG,uDAAuD;YACvD,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAErD,IAAI,CAAC,OAAO,EAAE;gBACb,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;aAChD;YAED,MAAM,IAAI,GAAG,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;YAEzE,MAAM,CAAC,IAAI,CACV;gBACC,aAAa,EAAE,IAAI,CAAC,SAAS,EAAE,MAAM,IAAI,CAAC;gBAC1C,eAAe,EAAE,IAAI,CAAC,mBAAmB,EAAE,MAAM,IAAI,CAAC;aACtD,EACD,gDAAgD,CAChD,CAAC;YAEF,OAAO;gBACN,SAAS,EAAE,IAAI,CAAC,SAAS,IAAI,EAAE;gBAC/B,mBAAmB,EAAE,IAAI,CAAC,mBAAmB,IAAI,EAAE;gBACnD,SAAS,EAAE,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,GAAG,EAAE;aACvC,CAAC;SACF;QAAC,OAAO,KAAK,EAAE;YACf,MAAM,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,EAAE,4CAA4C,CAAC,CAAC;YACtE,MAAM,IAAI,KAAK,CACd,+CAA+C,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CACvG,CAAC;SACF;IACF,CAAC;IAED;;OAEG;IACH,gBAAgB,CAAC,IAAuB;QACvC,wCAAwC;QACxC,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;YAC1C,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YACpB,IAAI,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE;gBAC5C,OAAO,GAAG,CAAC;aACX;SACD;QACD,OAAO,IAAI,CAAC;IACb,CAAC;CACD"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Alias reference resolution and validation.
|
|
3
|
+
*
|
|
4
|
+
* DTCG alias references look like `{color.primary}` or `{tier-1.color.blue.500}`.
|
|
5
|
+
* They can chain (an alias can reference another alias), but cycles are an
|
|
6
|
+
* error.
|
|
7
|
+
*
|
|
8
|
+
* This module:
|
|
9
|
+
* - Resolves an alias to its eventual literal value (for formatters that
|
|
10
|
+
* can't natively express references — CSS, SCSS, Tailwind).
|
|
11
|
+
* - Validates that every alias points to an existing token.
|
|
12
|
+
* - Detects cycles.
|
|
13
|
+
*/
|
|
14
|
+
import type { Token, TokenDocument, TokenValue } from "./types.js";
|
|
15
|
+
/**
|
|
16
|
+
* Build a lookup map from dot-path strings (e.g. "color.primary") to Token
|
|
17
|
+
* objects. Used as the index for resolveAliases().
|
|
18
|
+
*/
|
|
19
|
+
export declare function buildTokenIndex(doc: TokenDocument): Map<string, Token>;
|
|
20
|
+
/**
|
|
21
|
+
* Resolve a single alias reference. Returns the eventual literal value, or
|
|
22
|
+
* throws if the reference is unresolvable or cyclic.
|
|
23
|
+
*/
|
|
24
|
+
export declare function resolveReference(reference: string, mode: string, index: Map<string, Token>, seen?: Set<string>): TokenValue;
|
|
25
|
+
/**
|
|
26
|
+
* Resolve an alias chain to its final literal value, walking through
|
|
27
|
+
* intermediate alias hops. Returns the final TokenValue (with `literal` set
|
|
28
|
+
* if resolution succeeded) or `null` if the chain ends at a cross-library
|
|
29
|
+
* reference / unresolvable target / cycle.
|
|
30
|
+
*
|
|
31
|
+
* Used by formatters that can't natively express alias references in their
|
|
32
|
+
* output (Tailwind v3, TypeScript modules, plain JSON) — those need literal
|
|
33
|
+
* values at export time.
|
|
34
|
+
*
|
|
35
|
+
* Safer counterpart of `resolveReference` because it swallows errors
|
|
36
|
+
* (unresolvable / cycle) into `null` rather than throwing; formatters can
|
|
37
|
+
* then emit a comment or skip the token instead of failing the whole export.
|
|
38
|
+
*/
|
|
39
|
+
export declare function resolveAliasChain(value: TokenValue, mode: string, index: Map<string, Token>): TokenValue | null;
|
|
40
|
+
/**
|
|
41
|
+
* Validate every alias in the document. Returns a list of error messages —
|
|
42
|
+
* empty array means all aliases resolve cleanly.
|
|
43
|
+
*/
|
|
44
|
+
export declare function validateAliases(doc: TokenDocument): string[];
|
|
45
|
+
/**
|
|
46
|
+
* Format an alias reference for DTCG output. DTCG uses `{path.to.token}`
|
|
47
|
+
* syntax with curly braces.
|
|
48
|
+
*/
|
|
49
|
+
export declare function formatDtcgReference(referencePath: string[]): string;
|
|
50
|
+
/**
|
|
51
|
+
* Parse a DTCG alias string back into a path array. Returns null if the
|
|
52
|
+
* string isn't an alias reference.
|
|
53
|
+
*/
|
|
54
|
+
export declare function parseDtcgReference(s: string): string[] | null;
|
|
55
|
+
//# sourceMappingURL=alias-resolver.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"alias-resolver.d.ts","sourceRoot":"","sources":["../../../src/core/tokens/alias-resolver.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAEnE;;;GAGG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,aAAa,GAAG,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAStE;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,EACzB,IAAI,GAAE,GAAG,CAAC,MAAM,CAAa,GAC5B,UAAU,CAsCZ;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,UAAU,EACjB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,GACxB,UAAU,GAAG,IAAI,CAqBnB;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,aAAa,GAAG,MAAM,EAAE,CAqB5D;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,aAAa,EAAE,MAAM,EAAE,GAAG,MAAM,CAEnE;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI,CAI7D"}
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Alias reference resolution and validation.
|
|
3
|
+
*
|
|
4
|
+
* DTCG alias references look like `{color.primary}` or `{tier-1.color.blue.500}`.
|
|
5
|
+
* They can chain (an alias can reference another alias), but cycles are an
|
|
6
|
+
* error.
|
|
7
|
+
*
|
|
8
|
+
* This module:
|
|
9
|
+
* - Resolves an alias to its eventual literal value (for formatters that
|
|
10
|
+
* can't natively express references — CSS, SCSS, Tailwind).
|
|
11
|
+
* - Validates that every alias points to an existing token.
|
|
12
|
+
* - Detects cycles.
|
|
13
|
+
*/
|
|
14
|
+
/**
|
|
15
|
+
* Build a lookup map from dot-path strings (e.g. "color.primary") to Token
|
|
16
|
+
* objects. Used as the index for resolveAliases().
|
|
17
|
+
*/
|
|
18
|
+
export function buildTokenIndex(doc) {
|
|
19
|
+
const index = new Map();
|
|
20
|
+
for (const set of doc.sets) {
|
|
21
|
+
for (const token of set.tokens) {
|
|
22
|
+
const key = token.path.join(".");
|
|
23
|
+
index.set(key, token);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
return index;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Resolve a single alias reference. Returns the eventual literal value, or
|
|
30
|
+
* throws if the reference is unresolvable or cyclic.
|
|
31
|
+
*/
|
|
32
|
+
export function resolveReference(reference, mode, index, seen = new Set()) {
|
|
33
|
+
// Strip the curly braces if present: "{color.primary}" → "color.primary"
|
|
34
|
+
const path = reference.replace(/^\{|\}$/g, "");
|
|
35
|
+
if (seen.has(path)) {
|
|
36
|
+
throw new Error(`[figma-console-mcp] Alias cycle detected: ${[...seen, path].join(" → ")}`);
|
|
37
|
+
}
|
|
38
|
+
seen.add(path);
|
|
39
|
+
const target = index.get(path);
|
|
40
|
+
if (!target) {
|
|
41
|
+
throw new Error(`[figma-console-mcp] Unresolvable alias reference: {${path}}`);
|
|
42
|
+
}
|
|
43
|
+
// Find the value for the requested mode; fall back to the only mode if
|
|
44
|
+
// there's just one (alias's target may be single-mode while the source
|
|
45
|
+
// is multi-mode, or vice versa).
|
|
46
|
+
const value = target.values[mode] ??
|
|
47
|
+
(Object.keys(target.values).length === 1
|
|
48
|
+
? Object.values(target.values)[0]
|
|
49
|
+
: undefined);
|
|
50
|
+
if (!value) {
|
|
51
|
+
throw new Error(`[figma-console-mcp] Alias {${path}} has no value for mode "${mode}"`);
|
|
52
|
+
}
|
|
53
|
+
// Chain: if the target's value is itself an alias, recurse.
|
|
54
|
+
if (value.reference) {
|
|
55
|
+
return resolveReference(value.reference, mode, index, seen);
|
|
56
|
+
}
|
|
57
|
+
return value;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Resolve an alias chain to its final literal value, walking through
|
|
61
|
+
* intermediate alias hops. Returns the final TokenValue (with `literal` set
|
|
62
|
+
* if resolution succeeded) or `null` if the chain ends at a cross-library
|
|
63
|
+
* reference / unresolvable target / cycle.
|
|
64
|
+
*
|
|
65
|
+
* Used by formatters that can't natively express alias references in their
|
|
66
|
+
* output (Tailwind v3, TypeScript modules, plain JSON) — those need literal
|
|
67
|
+
* values at export time.
|
|
68
|
+
*
|
|
69
|
+
* Safer counterpart of `resolveReference` because it swallows errors
|
|
70
|
+
* (unresolvable / cycle) into `null` rather than throwing; formatters can
|
|
71
|
+
* then emit a comment or skip the token instead of failing the whole export.
|
|
72
|
+
*/
|
|
73
|
+
export function resolveAliasChain(value, mode, index) {
|
|
74
|
+
if (!value.reference)
|
|
75
|
+
return value;
|
|
76
|
+
// Cross-library aliases are not resolvable — formatters should skip with a comment.
|
|
77
|
+
const bare = value.reference.replace(/^\{|\}$/g, "");
|
|
78
|
+
if (bare.startsWith("__library:") || bare === "unknown")
|
|
79
|
+
return null;
|
|
80
|
+
try {
|
|
81
|
+
const resolved = resolveReference(value.reference, mode, index);
|
|
82
|
+
// resolveReference throws on cycles / unresolvable, so a returned value
|
|
83
|
+
// is either a literal or another reference. If still a reference,
|
|
84
|
+
// recurse (defensive — resolveReference already chases chains, but the
|
|
85
|
+
// top-level call may return a value with `reference` if mode-fallback
|
|
86
|
+
// routes through an aliased entry).
|
|
87
|
+
if (resolved.reference) {
|
|
88
|
+
return resolveAliasChain(resolved, mode, index);
|
|
89
|
+
}
|
|
90
|
+
return resolved;
|
|
91
|
+
}
|
|
92
|
+
catch {
|
|
93
|
+
return null;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Validate every alias in the document. Returns a list of error messages —
|
|
98
|
+
* empty array means all aliases resolve cleanly.
|
|
99
|
+
*/
|
|
100
|
+
export function validateAliases(doc) {
|
|
101
|
+
const index = buildTokenIndex(doc);
|
|
102
|
+
const errors = [];
|
|
103
|
+
for (const set of doc.sets) {
|
|
104
|
+
for (const token of set.tokens) {
|
|
105
|
+
for (const [mode, value] of Object.entries(token.values)) {
|
|
106
|
+
if (value.reference) {
|
|
107
|
+
try {
|
|
108
|
+
resolveReference(value.reference, mode, index);
|
|
109
|
+
}
|
|
110
|
+
catch (err) {
|
|
111
|
+
errors.push(`${token.path.join(".")} (mode "${mode}"): ${err instanceof Error ? err.message : String(err)}`);
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
return errors;
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Format an alias reference for DTCG output. DTCG uses `{path.to.token}`
|
|
121
|
+
* syntax with curly braces.
|
|
122
|
+
*/
|
|
123
|
+
export function formatDtcgReference(referencePath) {
|
|
124
|
+
return `{${referencePath.join(".")}}`;
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Parse a DTCG alias string back into a path array. Returns null if the
|
|
128
|
+
* string isn't an alias reference.
|
|
129
|
+
*/
|
|
130
|
+
export function parseDtcgReference(s) {
|
|
131
|
+
const match = s.match(/^\{([^}]+)\}$/);
|
|
132
|
+
if (!match)
|
|
133
|
+
return null;
|
|
134
|
+
return match[1].split(".");
|
|
135
|
+
}
|
|
136
|
+
//# sourceMappingURL=alias-resolver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"alias-resolver.js","sourceRoot":"","sources":["../../../src/core/tokens/alias-resolver.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* tokens.config.json schema, loader, and autodiscovery for the figma-console-mcp
|
|
3
|
+
* token sync engine.
|
|
4
|
+
*
|
|
5
|
+
* Both figma_export_tokens and figma_import_tokens read this single config so
|
|
6
|
+
* follow-up calls in a project are zero-arg. Autodiscovery walks up from the
|
|
7
|
+
* current working directory looking for `tokens.config.json` at each level
|
|
8
|
+
* — same convention as `tsconfig.json`, `package.json`, `.eslintrc`, etc.
|
|
9
|
+
*/
|
|
10
|
+
import { z } from "zod";
|
|
11
|
+
import type { ConflictResolution, ExportFormat } from "./types.js";
|
|
12
|
+
/**
|
|
13
|
+
* Schema for a single output target in `tokens.config.json`. Each entry
|
|
14
|
+
* produces one or more files when figma_export_tokens runs.
|
|
15
|
+
*/
|
|
16
|
+
declare const OutputTargetSchema: any;
|
|
17
|
+
export type OutputTarget = z.infer<typeof OutputTargetSchema>;
|
|
18
|
+
/**
|
|
19
|
+
* Full schema for `tokens.config.json`. Every field is optional so the
|
|
20
|
+
* minimum-viable config is `{ "figmaFile": "..." }` — the rest gets sensible
|
|
21
|
+
* defaults.
|
|
22
|
+
*/
|
|
23
|
+
export declare const TokensConfigSchema: any;
|
|
24
|
+
export type TokensConfig = z.infer<typeof TokensConfigSchema>;
|
|
25
|
+
/**
|
|
26
|
+
* Result of running `loadTokensConfig`. Includes the resolved config plus
|
|
27
|
+
* provenance info — where the file was found and the absolute project root.
|
|
28
|
+
*/
|
|
29
|
+
export interface LoadedTokensConfig {
|
|
30
|
+
config: TokensConfig;
|
|
31
|
+
/** Absolute path to the discovered `tokens.config.json`. */
|
|
32
|
+
configPath: string;
|
|
33
|
+
/** Directory containing the config file — used as the project root. */
|
|
34
|
+
projectRoot: string;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Walk up from `startDir` looking for `tokens.config.json`. Returns the first
|
|
38
|
+
* match, or `null` if none found by the filesystem root.
|
|
39
|
+
*/
|
|
40
|
+
export declare function findTokensConfig(startDir: string): string | null;
|
|
41
|
+
/**
|
|
42
|
+
* Load and validate `tokens.config.json`. If `explicitPath` is provided, uses
|
|
43
|
+
* that; otherwise autodiscovers by walking up from `cwd` (default
|
|
44
|
+
* `process.cwd()`).
|
|
45
|
+
*
|
|
46
|
+
* Returns `null` if no config is found AND no explicit path was given. Throws
|
|
47
|
+
* if an explicit path doesn't exist, or if the discovered file fails schema
|
|
48
|
+
* validation.
|
|
49
|
+
*/
|
|
50
|
+
export declare function loadTokensConfig(opts?: {
|
|
51
|
+
cwd?: string;
|
|
52
|
+
explicitPath?: string;
|
|
53
|
+
}): LoadedTokensConfig | null;
|
|
54
|
+
/**
|
|
55
|
+
* Default config used when none is found. Drives the "no-config detected"
|
|
56
|
+
* response shape from figma_export_tokens — the AI uses this to propose a
|
|
57
|
+
* scaffold to the user.
|
|
58
|
+
*/
|
|
59
|
+
export declare const DEFAULT_TOKENS_CONFIG: TokensConfig;
|
|
60
|
+
/**
|
|
61
|
+
* Build a `suggestedScaffold` payload returned when a tool is called and no
|
|
62
|
+
* `tokens.config.json` exists. The AI presents this scaffold to the user,
|
|
63
|
+
* writes the files via its native edit/write tools, then calls the original
|
|
64
|
+
* tool again.
|
|
65
|
+
*/
|
|
66
|
+
export declare function buildSuggestedScaffold(opts: {
|
|
67
|
+
projectRoot: string;
|
|
68
|
+
detectedFramework?: "tailwind-v4" | "tailwind-v3" | "css" | "scss" | "ts";
|
|
69
|
+
}): {
|
|
70
|
+
configContent: string;
|
|
71
|
+
directories: string[];
|
|
72
|
+
stylesheetImport: string;
|
|
73
|
+
nextSteps: string;
|
|
74
|
+
};
|
|
75
|
+
/**
|
|
76
|
+
* Pick the export formats from a loaded config that map to a given runtime
|
|
77
|
+
* format. Used by figma_export_tokens to decide which generated files to
|
|
78
|
+
* write. Returns the list verbatim if the caller passed an explicit format.
|
|
79
|
+
*/
|
|
80
|
+
export declare function resolveOutputTargets(config: TokensConfig | null, explicitFormat: ExportFormat | undefined): OutputTarget[];
|
|
81
|
+
/**
|
|
82
|
+
* Resolve the conflict-resolution strategy. Per-call argument wins over config
|
|
83
|
+
* default, which wins over the global default ("ask").
|
|
84
|
+
*/
|
|
85
|
+
export declare function resolveConflictStrategy(config: TokensConfig | null, perCall: ConflictResolution | undefined): ConflictResolution;
|
|
86
|
+
export {};
|
|
87
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/core/tokens/config.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAEnE;;;GAGG;AACH,QAAA,MAAM,kBAAkB,KAoCtB,CAAC;AAEH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,KAyDpB,CAAC;AAEZ,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,YAAY,CAAC;IACrB,4DAA4D;IAC5D,UAAU,EAAE,MAAM,CAAC;IACnB,uEAAuE;IACvE,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAkBhE;AAED;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,GAAE;IACrC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,YAAY,CAAC,EAAE,MAAM,CAAC;CAClB,GAAG,kBAAkB,GAAG,IAAI,CAwCjC;AAED;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,EAAE,YASnC,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE;IAC3C,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB,CAAC,EAAE,aAAa,GAAG,aAAa,GAAG,KAAK,GAAG,MAAM,GAAG,IAAI,CAAC;CAC3E,GAAG;IACF,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;CACnB,CAyBA;AA6CD;;;;GAIG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,YAAY,GAAG,IAAI,EAC3B,cAAc,EAAE,YAAY,GAAG,SAAS,GACvC,YAAY,EAAE,CAWhB;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,YAAY,GAAG,IAAI,EAC3B,OAAO,EAAE,kBAAkB,GAAG,SAAS,GACtC,kBAAkB,CAEpB"}
|