From acac4a10f1a141ac8b246c5eadfe3f9f54b1f8e8 Mon Sep 17 00:00:00 2001 From: Rohan Chakraborty Date: Tue, 23 Sep 2025 03:15:06 +0530 Subject: [PATCH 1/2] feat: figma code connect setup --- lefthook.yml | 5 +- packages/raystack/figma.config.json | 10 + packages/raystack/figma/button.figma.tsx | 26 ++ packages/raystack/package.json | 7 +- .../raystack/scripts/update-figma-config.js | 31 ++ .../raystack/scripts/validate-figma-config.js | 41 +++ pnpm-lock.yaml | 301 +++++++++++++++++- 7 files changed, 415 insertions(+), 6 deletions(-) create mode 100644 packages/raystack/figma.config.json create mode 100644 packages/raystack/figma/button.figma.tsx create mode 100644 packages/raystack/scripts/update-figma-config.js create mode 100644 packages/raystack/scripts/validate-figma-config.js diff --git a/lefthook.yml b/lefthook.yml index f7f723070..6d43ffdf2 100644 --- a/lefthook.yml +++ b/lefthook.yml @@ -3,4 +3,7 @@ pre-commit: check: glob: "*.{js,ts,cjs,mjs,d.cts,d.mts,jsx,tsx,json,jsonc}" run: pnpm format - stage_fixed: true \ No newline at end of file + stage_fixed: true + figma-validate-config: + glob: "packages/raystack/figma.config.json" + run: pnpm --filter @raystack/apsara figma:validate-config diff --git a/packages/raystack/figma.config.json b/packages/raystack/figma.config.json new file mode 100644 index 000000000..b7cc8b09a --- /dev/null +++ b/packages/raystack/figma.config.json @@ -0,0 +1,10 @@ +{ + "codeConnect": { + "include": ["components/**/*", "figma/**/*"], + "exclude": [], + "parser": "react", + "documentUrlSubstitutions": { + "": "node-id=1-101" + } + } +} diff --git a/packages/raystack/figma/button.figma.tsx b/packages/raystack/figma/button.figma.tsx new file mode 100644 index 000000000..19cee0163 --- /dev/null +++ b/packages/raystack/figma/button.figma.tsx @@ -0,0 +1,26 @@ +import figma from '@figma/code-connect'; +import { Button } from '../components/button'; + +figma.connect(Button, '', { + imports: ["import { Button } from '@raystack/apsara'"], + props: { + variant: figma.enum('Variant', { + Solid: 'solid', + Outline: 'outline', + Ghost: 'ghost', + Text: 'text' + }), + color: figma.enum('Color', { + Accent: 'accent', + Neutral: 'neutral', + Danger: 'danger', + Success: 'success' + }), + size: figma.enum('Size', { + Small: 'small', + Normal: 'normal' + }), + children: figma.string('Label Copy') + }, + example: ({ children, ...props }) => +}); diff --git a/packages/raystack/package.json b/packages/raystack/package.json index 4aa351277..7fdbe136a 100644 --- a/packages/raystack/package.json +++ b/packages/raystack/package.json @@ -44,7 +44,10 @@ "test:watch": "vitest --watch", "test:coverage": "vitest --coverage", "test:ui": "vitest --ui", - "build:icons": "node scripts/create-icons.js" + "build:icons": "node scripts/create-icons.js", + "figma:update-config": "node scripts/update-figma-config.js", + "figma:validate-config": "node scripts/validate-figma-config.js", + "figma:publish": "pnpm figma:update-config && figma connect publish --dry-run" }, "typesVersions": { "*": { @@ -67,6 +70,7 @@ "author": "", "license": "ISC", "devDependencies": { + "@figma/code-connect": "^1.3.5", "@rollup/plugin-commonjs": "^25.0.2", "@rollup/plugin-image": "^3.0.2", "@rollup/plugin-node-resolve": "^15.1.0", @@ -78,6 +82,7 @@ "@types/react": "^19.0.0", "@types/react-dom": "^19.0.0", "@vitest/ui": "^3.2.4", + "dotenv": "^17.2.2", "eslint-config-custom": "workspace:*", "identity-obj-proxy": "^3.0.0", "jsdom": "^26.1.0", diff --git a/packages/raystack/scripts/update-figma-config.js b/packages/raystack/scripts/update-figma-config.js new file mode 100644 index 000000000..74fb27f75 --- /dev/null +++ b/packages/raystack/scripts/update-figma-config.js @@ -0,0 +1,31 @@ +const fs = require('fs'); +const path = require('path'); + +// Load environment variables from .env file +require('dotenv').config(); + +const CONFIG_FILE = path.join(__dirname, '..', 'figma.config.json'); + +// Read Figma URL from environment +const figmaUrl = process.env.FIGMA_FILE_URL; + +if (!figmaUrl) { + console.error('Error: FIGMA_FILE_URL environment variable is not set'); + process.exit(1); +} + +// Read current config +const config = JSON.parse(fs.readFileSync(CONFIG_FILE, 'utf8')); + +// Update documentUrlSubstitutions by appending figmaUrl to each value +for (const [key, value] of Object.entries( + config.codeConnect.documentUrlSubstitutions +)) { + if (value.startsWith('node-id=')) + config.codeConnect.documentUrlSubstitutions[key] = `${figmaUrl}?${value}`; +} + +// Write updated config +fs.writeFileSync(CONFIG_FILE, JSON.stringify(config, null, 2)); + +console.log('Updated figma.config.json'); diff --git a/packages/raystack/scripts/validate-figma-config.js b/packages/raystack/scripts/validate-figma-config.js new file mode 100644 index 000000000..1d6c79f9c --- /dev/null +++ b/packages/raystack/scripts/validate-figma-config.js @@ -0,0 +1,41 @@ +const fs = require('fs'); +const path = require('path'); + +const CONFIG_FILE = path.join(__dirname, '..', 'figma.config.json'); + +// Check if figma.config.json contains figma.com links +function checkFigmaConfig() { + try { + if (!fs.existsSync(CONFIG_FILE)) { + console.log('✅ figma.config.json not found, skipping check'); + return; + } + + const configContent = fs.readFileSync(CONFIG_FILE, 'utf8'); + const config = JSON.parse(configContent); + + // Check documentUrlSubstitutions for figma.com links + const substitutions = config.codeConnect?.documentUrlSubstitutions || {}; + const figmaLinks = []; + + for (const [key, value] of Object.entries(substitutions)) { + if (value.includes('figma.com')) { + figmaLinks.push(`${key}: ${value}`); + } + } + + if (figmaLinks.length > 0) { + console.error('❌ Error: figma.config.json contains figma.com links:'); + figmaLinks.forEach(link => console.error(` ${link}`)); + console.error('\nPlease remove the file url from the figma.config.json'); + process.exit(1); + } + + console.log('✅ figma.config.json validation passed'); + } catch (error) { + console.error('❌ Error checking figma config:', error.message); + process.exit(1); + } +} + +checkFigmaConfig(); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ddfac84fd..321a64879 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -231,6 +231,9 @@ importers: specifier: ^2.0.6 version: 2.0.7(react-dom@19.1.1(react@19.1.1))(react@19.1.1) devDependencies: + '@figma/code-connect': + specifier: ^1.3.5 + version: 1.3.5 '@rollup/plugin-commonjs': specifier: ^25.0.2 version: 25.0.2(rollup@3.25.1) @@ -264,6 +267,9 @@ importers: '@vitest/ui': specifier: ^3.2.4 version: 3.2.4(vitest@3.2.4) + dotenv: + specifier: ^17.2.2 + version: 17.2.2 eslint-config-custom: specifier: workspace:* version: link:../eslint-config-custom @@ -1498,6 +1504,15 @@ packages: resolution: {integrity: sha512-4SaFZCNfJqvk/kenHpI8xvN42DMaoycy4PzKc5otHxRswww1kAt82OlBuwRVLofCACCTZEcla2Ydxv8scMXaTg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@fastify/busboy@2.1.1': + resolution: {integrity: sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA==} + engines: {node: '>=14'} + + '@figma/code-connect@1.3.5': + resolution: {integrity: sha512-/oTdGJB/jz23DEYxjHYs8EUWcC1653FKniYdM7KyHkELnQ5qpdFZCGxgJzuGjIsEN6t0z0xNV6ZYwKwlqdPz9Q==} + engines: {node: '>=18'} + hasBin: true + '@floating-ui/core@1.6.4': resolution: {integrity: sha512-a4IowK4QkXl4SCWTGUR0INAfEOX3wtsYw3rKK5InQEHMGObkR8Xk44qYQD9P4r6HHw0iIfK6GUKECmY8sTkqRA==} @@ -4034,6 +4049,9 @@ packages: resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==} engines: {node: '>=10.13.0'} + '@ts-morph/common@0.24.0': + resolution: {integrity: sha512-c1xMmNHWpNselmpIqursHeOHHBTIsJLbB+NuovbTTRCNiTLEr/U9dbJ8qy0jd/O2x5pc3seWuOUN5R2IoOTp8A==} + '@ts-morph/common@0.26.1': resolution: {integrity: sha512-Sn28TGl/4cFpcM+jwsH1wLncYq3FtN/BIpem+HOygfBWPT5pAeS5dB4VFVzV8FbnOKHpDLZmvAl4AjPEev5idA==} @@ -4624,6 +4642,10 @@ packages: boundary@2.0.0: resolution: {integrity: sha512-rJKn5ooC9u8q13IMCrW0RSp31pxBCHE3y9V/tp3TdWSLf8Em3p6Di4NBpfzbJge9YjjFEsD0RtFEjtvHL5VyEA==} + boxen@5.1.1: + resolution: {integrity: sha512-JtIQYts08AFAYGF4eSh3pUt3NQkYV/e75pRtQmAVTLNWR/1L7Bsswxlgzgk8nmLEM+gFszsIlA9BgD3XnSqp3g==} + engines: {node: '>=10'} + boxen@7.1.1: resolution: {integrity: sha512-2hCgjEmP8YLWQ130n2FerGv7rYpfBmnmp9Uy2Le1vge6X3gZIfSmEzP5QTDElFxcvVcXlEn8Aq6MU/PZygIOog==} engines: {node: '>=14.16'} @@ -4825,6 +4847,10 @@ packages: resolution: {integrity: sha512-LYv6XPxoyODi36Dp976riBtSY27VmFo+MKqEU9QCCWyTrdEPDog+RWA7xQWHi6Vbp61j5c4cdzzX1NidnwtUWg==} engines: {node: '>=12'} + cli-boxes@2.2.1: + resolution: {integrity: sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==} + engines: {node: '>=6'} + cli-boxes@3.0.0: resolution: {integrity: sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==} engines: {node: '>=10'} @@ -4953,6 +4979,10 @@ packages: resolution: {integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==} engines: {node: '>=14'} + commander@11.1.0: + resolution: {integrity: sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==} + engines: {node: '>=16'} + commander@12.1.0: resolution: {integrity: sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==} engines: {node: '>=18'} @@ -4975,6 +5005,9 @@ packages: commondir@1.0.1: resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} + compare-versions@6.1.1: + resolution: {integrity: sha512-4hm4VPpIecmlg59CHXnRDnqGplJFrbLG4aFEl5vl6cK1u76ws3LLvX7ikFnTDl5vo39sjWD6AaDPYodJp/NNHg==} + compute-scroll-into-view@3.1.1: resolution: {integrity: sha512-VRhuHOLoKYOy4UbilLbUzbYg93XLjv2PncJC50EuTWPA3gaja1UjBsUP/D/9/juV3vQFr6XBEzn9KCAHdUvOHw==} @@ -5334,6 +5367,14 @@ packages: dotenv-expand@5.1.0: resolution: {integrity: sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==} + dotenv@16.6.1: + resolution: {integrity: sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow==} + engines: {node: '>=12'} + + dotenv@17.2.2: + resolution: {integrity: sha512-Sf2LSQP+bOlhKWWyhFsn0UsfdK/kCWRv1iuA2gXAwt3dyNabr6QSj00I2V10pidqz69soatm9ZwZvpQMTIOd5Q==} + engines: {node: '>=12'} + dotenv@7.0.0: resolution: {integrity: sha512-M3NhsLbV1i6HuGzBUH8vXrtxOk+tWmzWKDMbAVSUp3Zsjm7ywFeuwrUXhmhQyRK1q5B5GGy7hcXPbj3bnfZg2g==} engines: {node: '>=6'} @@ -5761,6 +5802,9 @@ packages: fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + fast-fuzzy@1.12.0: + resolution: {integrity: sha512-sXxGgHS+ubYpsdLnvOvJ9w5GYYZrtL9mkosG3nfuD446ahvoWEsSKBP7ieGmWIKVLnaxRDgUJkZMdxRgA2Ni+Q==} + fast-glob@3.3.2: resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} engines: {node: '>=8.6.0'} @@ -6117,6 +6161,9 @@ packages: graphemer@1.4.0: resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} + graphemesplit@2.6.0: + resolution: {integrity: sha512-rG9w2wAfkpg0DILa1pjnjNfucng3usON360shisqIMUBw/87pojcBSrHmeE4UwryAuBih7g8m1oilf5/u8EWdQ==} + gray-matter@4.0.3: resolution: {integrity: sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==} engines: {node: '>=6.0'} @@ -6706,6 +6753,9 @@ packages: resolution: {integrity: sha512-zptv57P3GpL+O0I7VdMJNBZCu+BPHVQUk55Ft8/QCJjTVxrnJHuVuX/0Bl2A6/+2oyR/ZMEuFKwmzqqZ/U5nPQ==} engines: {node: 20 || >=22} + js-base64@3.7.8: + resolution: {integrity: sha512-hNngCeKxIUQiEUN3GPJOkz4wF/YvdUdbNL9hsBcMQTkKzboD7T/q3OYOuuPZLUE6dBxSGpwhk5mwuDud7JVAow==} + js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} @@ -6720,6 +6770,15 @@ packages: resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} hasBin: true + jsdom@24.1.3: + resolution: {integrity: sha512-MyL55p3Ut3cXbeBEG7Hcv0mVM8pp8PBNWxRqchZnSfAiES1v1mRnMeFfaHWIPULpwsYfvO+ZmMZz5tGCnjzDUQ==} + engines: {node: '>=18'} + peerDependencies: + canvas: ^2.11.2 + peerDependenciesMeta: + canvas: + optional: true + jsdom@26.1.0: resolution: {integrity: sha512-Cvc9WUhxSMEo4McES3P7oK3QaXldCfNWp7pl2NNeiIFlCoLr3kfq9kb1fxftiwk1FLV7CvpvDfonxtzUDeSOPg==} engines: {node: '>=18'} @@ -6797,6 +6856,10 @@ packages: resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} engines: {node: '>=0.10.0'} + kleur@3.0.3: + resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} + engines: {node: '>=6'} + language-subtag-registry@0.3.23: resolution: {integrity: sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ==} @@ -7401,6 +7464,11 @@ packages: resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} hasBin: true + mkdirp@3.0.1: + resolution: {integrity: sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==} + engines: {node: '>=10'} + hasBin: true + mrmime@2.0.1: resolution: {integrity: sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==} engines: {node: '>=10'} @@ -7844,6 +7912,9 @@ packages: package-name-conflict@1.0.3: resolution: {integrity: sha512-DPBNWSUWC0wPofXeNThao0uP4a93J7r90UyhagmJS0QcacTTkorZwXYsOop70phn1hKdcf/2e9lJIhazS8bx5A==} + pako@0.2.9: + resolution: {integrity: sha512-NUcwaKxUxWrZLpDG+z/xZaCgQITkA/Dv4V/T6bw7VON6l1Xz/VnrBqrYjZQ12TamKHzITTfOEIYUj48y2KXImA==} + param-case@2.1.1: resolution: {integrity: sha512-eQE845L6ot89sk2N8liD8HAuH4ca6Vvr7VWAWwt7+kvvG5aBcPmmphQ68JsEG2qa9n1TykS2DLeMt363AAH8/w==} @@ -8280,6 +8351,10 @@ packages: resolution: {integrity: sha512-VWQJyU2bcDTgZw8kpfBpB/ejZASlCrzwz5f2hjb/zlujOEB4oeiAhHygAWq8ubsX2GVkD4kCU5V2dwOTaCY5EQ==} engines: {node: '>=0.12'} + prompts@2.4.2: + resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} + engines: {node: '>= 6'} + prop-types@15.8.1: resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} @@ -8289,6 +8364,9 @@ packages: proto-list@1.2.4: resolution: {integrity: sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==} + psl@1.15.0: + resolution: {integrity: sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w==} + pump@3.0.0: resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==} @@ -8308,6 +8386,9 @@ packages: resolution: {integrity: sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w==} engines: {node: '>=0.6'} + querystringify@2.2.0: + resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==} + queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} @@ -8616,6 +8697,9 @@ packages: resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} engines: {node: '>=0.10.0'} + requires-port@1.0.0: + resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==} + resolve-alpn@1.2.1: resolution: {integrity: sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==} @@ -8700,6 +8784,9 @@ packages: engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true + rrweb-cssom@0.7.1: + resolution: {integrity: sha512-TrEMa7JGdVm0UThDJSx7ddw5nVm3UJS9o9CCIZ72B1vSyEZoziDqBYP3XIoi/12lKrJR8rE3jeFHMok2F/Mnsg==} + rrweb-cssom@0.8.0: resolution: {integrity: sha512-guoltQEx+9aMf2gDZ0s62EcV8lsXR+0w8915TC3ITdn2YueuNjdAYh/levpU9nFaoChh9RUS5ZdQMrKfVEN9tw==} @@ -8874,6 +8961,9 @@ packages: resolution: {integrity: sha512-FoqMu0NCGBLCcAkS1qA+XJIQTR6/JHfQXl+uGteNCQ76T91DMUjPa9xfmeqMY3z80nLSg9yQmNjK0Px6RWsH/A==} engines: {node: '>=18'} + sisteransi@1.0.5: + resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} + slash@3.0.0: resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} engines: {node: '>=8'} @@ -9224,6 +9314,9 @@ packages: timsort@0.3.0: resolution: {integrity: sha512-qsdtZH+vMoCARQtyod4imc2nIJwg9Cc7lPRrw9CzF8ZKR0khdr8+2nX80PBhET3tcyTtJDxAffGh2rXH4tyU8A==} + tiny-inflate@1.0.3: + resolution: {integrity: sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw==} + tinybench@2.9.0: resolution: {integrity: sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==} @@ -9276,6 +9369,10 @@ packages: resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==} engines: {node: '>=6'} + tough-cookie@4.1.4: + resolution: {integrity: sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==} + engines: {node: '>=6'} + tough-cookie@5.1.2: resolution: {integrity: sha512-FVDYdxtnj0G6Qm/DhNPSb8Ju59ULcup3tuJxkFb5K8Bv2pUXILbf0xZWU8PX8Ov19OXljbUyveOFwRMwkXzO+A==} engines: {node: '>=16'} @@ -9303,6 +9400,9 @@ packages: ts-interface-checker@0.1.13: resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} + ts-morph@23.0.0: + resolution: {integrity: sha512-FcvFx7a9E8TUe6T3ShihXJLiJOiqyafzFKUO4aqIHDUCIvADdGNShcbc2W5PMr3LerXRv7mafvFZ9lRENxJmug==} + ts-morph@25.0.1: resolution: {integrity: sha512-QJEiTdnz1YjrB3JFhd626gX4rKHDLSjSVMvGGG4v7ONc3RBwa0Eei98G9AT9uNFDMtV54JyuXsFeC+OH0n6bXQ==} @@ -9453,6 +9553,11 @@ packages: engines: {node: '>=14.17'} hasBin: true + typescript@5.5.4: + resolution: {integrity: sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q==} + engines: {node: '>=14.17'} + hasBin: true + typescript@5.7.3: resolution: {integrity: sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==} engines: {node: '>=14.17'} @@ -9483,6 +9588,10 @@ packages: undici-types@6.21.0: resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==} + undici@5.29.0: + resolution: {integrity: sha512-raqeBD6NQK4SkWhQzeYKd1KmIG6dllBOTt55Rmkt4HtI9mwdWtJljnrXjAFUBLTSN67HWrOIZ3EPF4kjUw80Bg==} + engines: {node: '>=14.0'} + undici@7.10.0: resolution: {integrity: sha512-u5otvFBOBZvmdjWLVW+5DAc9Nkq8f24g0O9oY7qw2JVIF1VocIFoyz9JFkuVOS2j41AufeO0xnlweJ2RLT8nGw==} engines: {node: '>=20.18.1'} @@ -9503,6 +9612,9 @@ packages: resolution: {integrity: sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==} engines: {node: '>=4'} + unicode-trie@2.0.0: + resolution: {integrity: sha512-x7bc76x0bm4prf1VLg79uhAzKw8DVboClSN5VxJuQ+LKDOVEW9CdH+VY7SP+vX7xCYQqzzgQpFqz15zeLvAtZQ==} + unicorn-magic@0.3.0: resolution: {integrity: sha512-+QBBXBCvifc56fsbuxZQ6Sic3wqqc3WWaqxs58gvJrcOuN83HGTCwz3oS5phzU9LthRNE9VrJCFCLUgHeeFnfA==} engines: {node: '>=18'} @@ -9532,6 +9644,10 @@ packages: unist-util-visit@5.0.0: resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==} + universalify@0.2.0: + resolution: {integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==} + engines: {node: '>= 4.0.0'} + universalify@2.0.1: resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} engines: {node: '>= 10.0.0'} @@ -9571,6 +9687,9 @@ packages: url-join@4.0.1: resolution: {integrity: sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==} + url-parse@1.5.10: + resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==} + use-callback-ref@1.3.2: resolution: {integrity: sha512-elOQwe6Q8gqZgDA8mrh44qRTQqpIHDcZ3hXTLjBe1i4ph8XpNJnO+aQf3NaG+lriLopI4HMx9VjQLfPQ6vhnoA==} engines: {node: '>=10'} @@ -9823,6 +9942,10 @@ packages: engines: {node: '>=8'} hasBin: true + widest-line@3.1.0: + resolution: {integrity: sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==} + engines: {node: '>=8'} + widest-line@4.0.1: resolution: {integrity: sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==} engines: {node: '>=12'} @@ -9934,9 +10057,18 @@ packages: resolution: {integrity: sha512-cYVsTjKl8b+FrnidjibDWskAv7UKOfcwaVZdp/it9n1s9fU3IkgDbhdIRKCW4JDsAlECJY0ytoVPT3sK6kideA==} engines: {node: '>=18'} + zod-validation-error@3.5.3: + resolution: {integrity: sha512-OT5Y8lbUadqVZCsnyFaTQ4/O2mys4tj7PqhdbBCp7McPwvIEKfPtdA6QfPeFQK2/Rz5LgwmAXRJTugBNBi0btw==} + engines: {node: '>=18.0.0'} + peerDependencies: + zod: ^3.25.0 || ^4.0.0 + zod@3.24.2: resolution: {integrity: sha512-lY7CDW43ECgW9u1TcT3IoXHflywfVqDYze4waEz812jR/bZ8FHDsl7pFQoSZTz5N+2NqRXs8GBwnAwo3ZNxqhQ==} + zod@3.25.58: + resolution: {integrity: sha512-DVLmMQzSZwNYzQoMaM3MQWnxr2eq+AtM9Hx3w1/Yl0pH8sLTSjN4jGP7w6f7uand6Hw44tsnSu1hz1AOA6qI2Q==} + zwitch@2.0.4: resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} @@ -11235,6 +11367,38 @@ snapshots: '@eslint/core': 0.15.0 levn: 0.4.1 + '@fastify/busboy@2.1.1': {} + + '@figma/code-connect@1.3.5': + dependencies: + boxen: 5.1.1 + chalk: 4.1.2 + commander: 11.1.0 + compare-versions: 6.1.1 + cross-spawn: 7.0.6 + dotenv: 16.6.1 + fast-fuzzy: 1.12.0 + find-up: 5.0.0 + glob: 10.4.5 + jsdom: 24.1.3 + lodash: 4.17.21 + minimatch: 9.0.5 + ora: 5.4.1 + parse5: 7.3.0 + prettier: 2.8.8 + prompts: 2.4.2 + strip-ansi: 6.0.1 + ts-morph: 23.0.0 + typescript: 5.5.4 + undici: 5.29.0 + zod: 3.25.58 + zod-validation-error: 3.5.3(zod@3.25.58) + transitivePeerDependencies: + - bufferutil + - canvas + - supports-color + - utf-8-validate + '@floating-ui/core@1.6.4': dependencies: '@floating-ui/utils': 0.2.4 @@ -11949,7 +12113,6 @@ snapshots: '@parcel/types': 2.12.0(@parcel/core@2.12.0) transitivePeerDependencies: - '@parcel/core' - - '@swc/helpers' '@parcel/plugin@2.9.2(@parcel/core@2.12.0)': dependencies: @@ -12368,8 +12531,6 @@ snapshots: '@parcel/types': 2.12.0(@parcel/core@2.12.0) '@parcel/utils': 2.12.0 nullthrows: 1.1.1 - transitivePeerDependencies: - - '@swc/helpers' '@parcel/workers@2.9.2(@parcel/core@2.12.0)': dependencies: @@ -14803,6 +14964,13 @@ snapshots: '@trysound/sax@0.2.0': {} + '@ts-morph/common@0.24.0': + dependencies: + fast-glob: 3.3.3 + minimatch: 9.0.5 + mkdirp: 3.0.1 + path-browserify: 1.0.1 + '@ts-morph/common@0.26.1': dependencies: fast-glob: 3.3.3 @@ -15541,6 +15709,17 @@ snapshots: boundary@2.0.0: {} + boxen@5.1.1: + dependencies: + ansi-align: 3.0.1 + camelcase: 6.3.0 + chalk: 4.1.2 + cli-boxes: 2.2.1 + string-width: 4.2.3 + type-fest: 0.20.2 + widest-line: 3.1.0 + wrap-ansi: 7.0.0 + boxen@7.1.1: dependencies: ansi-align: 3.0.1 @@ -15792,6 +15971,8 @@ snapshots: dependencies: escape-string-regexp: 5.0.0 + cli-boxes@2.2.1: {} + cli-boxes@3.0.0: {} cli-cursor@2.1.0: @@ -15906,6 +16087,8 @@ snapshots: commander@10.0.1: {} + commander@11.1.0: {} + commander@12.1.0: {} commander@2.20.3: @@ -15919,6 +16102,8 @@ snapshots: commondir@1.0.1: {} + compare-versions@6.1.1: {} + compute-scroll-into-view@3.1.1: {} concat-map@0.0.1: {} @@ -16344,6 +16529,10 @@ snapshots: dotenv-expand@5.1.0: {} + dotenv@16.6.1: {} + + dotenv@17.2.2: {} + dotenv@7.0.0: {} dunder-proto@1.0.1: @@ -17168,6 +17357,10 @@ snapshots: fast-deep-equal@3.1.3: {} + fast-fuzzy@1.12.0: + dependencies: + graphemesplit: 2.6.0 + fast-glob@3.3.2: dependencies: '@nodelib/fs.stat': 2.0.5 @@ -17508,7 +17701,7 @@ snapshots: glob@10.4.5: dependencies: - foreground-child: 3.2.1 + foreground-child: 3.3.1 jackspeak: 3.4.3 minimatch: 9.0.5 minipass: 7.1.2 @@ -17644,6 +17837,11 @@ snapshots: graphemer@1.4.0: {} + graphemesplit@2.6.0: + dependencies: + js-base64: 3.7.8 + unicode-trie: 2.0.0 + gray-matter@4.0.3: dependencies: js-yaml: 3.14.1 @@ -18295,6 +18493,8 @@ snapshots: dependencies: '@isaacs/cliui': 8.0.2 + js-base64@3.7.8: {} + js-tokens@4.0.0: {} js-tokens@9.0.1: {} @@ -18308,6 +18508,34 @@ snapshots: dependencies: argparse: 2.0.1 + jsdom@24.1.3: + dependencies: + cssstyle: 4.6.0 + data-urls: 5.0.0 + decimal.js: 10.6.0 + form-data: 4.0.1 + html-encoding-sniffer: 4.0.0 + http-proxy-agent: 7.0.2 + https-proxy-agent: 7.0.6 + is-potential-custom-element-name: 1.0.1 + nwsapi: 2.2.16 + parse5: 7.3.0 + rrweb-cssom: 0.7.1 + saxes: 6.0.0 + symbol-tree: 3.2.4 + tough-cookie: 4.1.4 + w3c-xmlserializer: 5.0.0 + webidl-conversions: 7.0.0 + whatwg-encoding: 3.1.1 + whatwg-mimetype: 4.0.0 + whatwg-url: 14.2.0 + ws: 8.18.0 + xml-name-validator: 5.0.0 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + jsdom@26.1.0: dependencies: cssstyle: 4.6.0 @@ -18408,6 +18636,8 @@ snapshots: kind-of@6.0.3: {} + kleur@3.0.3: {} + language-subtag-registry@0.3.23: {} language-tags@1.0.9: @@ -19237,6 +19467,8 @@ snapshots: dependencies: minimist: 1.2.8 + mkdirp@3.0.1: {} + mrmime@2.0.1: {} ms@2.1.2: {} @@ -19693,6 +19925,8 @@ snapshots: package-name-conflict@1.0.3: {} + pako@0.2.9: {} + param-case@2.1.1: dependencies: no-case: 2.3.2 @@ -20145,6 +20379,11 @@ snapshots: promise.series@0.2.0: {} + prompts@2.4.2: + dependencies: + kleur: 3.0.3 + sisteransi: 1.0.5 + prop-types@15.8.1: dependencies: loose-envify: 1.4.0 @@ -20155,6 +20394,10 @@ snapshots: proto-list@1.2.4: {} + psl@1.15.0: + dependencies: + punycode: 2.3.1 + pump@3.0.0: dependencies: end-of-stream: 1.4.4 @@ -20172,6 +20415,8 @@ snapshots: dependencies: side-channel: 1.1.0 + querystringify@2.2.0: {} + queue-microtask@1.2.3: {} queue@6.0.2: @@ -20657,6 +20902,8 @@ snapshots: require-from-string@2.0.2: {} + requires-port@1.0.0: {} + resolve-alpn@1.2.1: {} resolve-cwd@3.0.0: @@ -20776,6 +21023,8 @@ snapshots: '@rollup/rollup-win32-x64-msvc': 4.48.1 fsevents: 2.3.3 + rrweb-cssom@0.7.1: {} + rrweb-cssom@0.8.0: {} run-applescript@5.0.0: @@ -20989,6 +21238,8 @@ snapshots: mrmime: 2.0.1 totalist: 3.0.1 + sisteransi@1.0.5: {} + slash@3.0.0: {} slash@4.0.0: {} @@ -21358,6 +21609,8 @@ snapshots: timsort@0.3.0: {} + tiny-inflate@1.0.3: {} + tinybench@2.9.0: {} tinyexec@0.3.2: {} @@ -21398,6 +21651,13 @@ snapshots: totalist@3.0.1: {} + tough-cookie@4.1.4: + dependencies: + psl: 1.15.0 + punycode: 2.3.1 + universalify: 0.2.0 + url-parse: 1.5.10 + tough-cookie@5.1.2: dependencies: tldts: 6.1.86 @@ -21418,6 +21678,11 @@ snapshots: ts-interface-checker@0.1.13: {} + ts-morph@23.0.0: + dependencies: + '@ts-morph/common': 0.24.0 + code-block-writer: 13.0.3 + ts-morph@25.0.1: dependencies: '@ts-morph/common': 0.26.1 @@ -21601,6 +21866,8 @@ snapshots: typescript@5.4.3: {} + typescript@5.5.4: {} + typescript@5.7.3: {} typescript@5.8.3: {} @@ -21623,6 +21890,10 @@ snapshots: undici-types@6.21.0: {} + undici@5.29.0: + dependencies: + '@fastify/busboy': 2.1.1 + undici@7.10.0: {} unicode-canonical-property-names-ecmascript@2.0.1: {} @@ -21636,6 +21907,11 @@ snapshots: unicode-property-aliases-ecmascript@2.1.0: {} + unicode-trie@2.0.0: + dependencies: + pako: 0.2.9 + tiny-inflate: 1.0.3 + unicorn-magic@0.3.0: {} unified@11.0.5: @@ -21679,6 +21955,8 @@ snapshots: unist-util-is: 6.0.0 unist-util-visit-parents: 6.0.1 + universalify@0.2.0: {} + universalify@2.0.1: {} untildify@4.0.0: {} @@ -21729,6 +22007,11 @@ snapshots: url-join@4.0.1: {} + url-parse@1.5.10: + dependencies: + querystringify: 2.2.0 + requires-port: 1.0.0 + use-callback-ref@1.3.2(@types/react@18.2.12)(react@18.3.1): dependencies: react: 18.3.1 @@ -22002,6 +22285,10 @@ snapshots: siginfo: 2.0.0 stackback: 0.0.2 + widest-line@3.1.0: + dependencies: + string-width: 4.2.3 + widest-line@4.0.1: dependencies: string-width: 5.1.2 @@ -22096,6 +22383,12 @@ snapshots: yoctocolors-cjs@2.1.2: {} + zod-validation-error@3.5.3(zod@3.25.58): + dependencies: + zod: 3.25.58 + zod@3.24.2: {} + zod@3.25.58: {} + zwitch@2.0.4: {} From 19b6cbc2052ec6a43d22d64423d50dcde63ad1c9 Mon Sep 17 00:00:00 2001 From: Rohan Chakraborty Date: Tue, 23 Sep 2025 03:19:13 +0530 Subject: [PATCH 2/2] chore: remove figma code connect dry run option --- packages/raystack/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/raystack/package.json b/packages/raystack/package.json index 7fdbe136a..05620eb4b 100644 --- a/packages/raystack/package.json +++ b/packages/raystack/package.json @@ -47,7 +47,7 @@ "build:icons": "node scripts/create-icons.js", "figma:update-config": "node scripts/update-figma-config.js", "figma:validate-config": "node scripts/validate-figma-config.js", - "figma:publish": "pnpm figma:update-config && figma connect publish --dry-run" + "figma:publish": "pnpm figma:update-config && figma connect publish" }, "typesVersions": { "*": {