@auto-engineer/design-system-importer 0.1.2 → 0.4.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.
@@ -1,5 +1,5 @@
1
1
 
2
- > @auto-engineer/design-system-importer@0.1.2 build /home/runner/work/auto-engineer/auto-engineer/packages/design-system-importer
2
+ > @auto-engineer/design-system-importer@0.3.0 build /Users/sam/WebstormProjects/top/auto-engineer/packages/design-system-importer
3
3
  > tsc && tsx ../../scripts/fix-esm-imports.ts
4
4
 
5
5
  Fixed ESM imports in dist/
@@ -0,0 +1,12 @@
1
+
2
+ > @auto-engineer/design-system-importer@0.2.0 format /Users/sam/WebstormProjects/top/auto-engineer/packages/design-system-importer
3
+ > prettier --write "**/*.{js,ts,json,md,yml,yaml}" --ignore-path ../../.prettierignore
4
+
5
+ CHANGELOG.md 20ms (unchanged)
6
+ package.json 15ms (unchanged)
7
+ README.md 10ms (unchanged)
8
+ src/commands/import-design-system.ts 40ms (unchanged)
9
+ src/FigmaComponentsBuilder.ts 23ms (unchanged)
10
+ src/index.ts 12ms (unchanged)
11
+ src/utils/FilterLoader.ts 3ms (unchanged)
12
+ tsconfig.json 1ms (unchanged)
@@ -0,0 +1,4 @@
1
+
2
+ > @auto-engineer/design-system-importer@0.2.0 lint /Users/sam/WebstormProjects/top/auto-engineer/packages/design-system-importer
3
+ > eslint 'src/**/*.ts' --max-warnings 0 --config ../../eslint.config.ts
4
+
@@ -0,0 +1,14 @@
1
+
2
+ 
3
+ > @auto-engineer/design-system-importer@0.3.0 test /Users/sam/WebstormProjects/top/auto-engineer/packages/design-system-importer
4
+ > vitest run
5
+
6
+ [?25l
7
+  RUN  v3.2.4 /Users/sam/WebstormProjects/top/auto-engineer/packages/design-system-importer
8
+
9
+ No test files found, exiting with code 0
10
+
11
+ include: **/*.specs.{js,ts}
12
+ exclude: **/.tmp/**, **/node_modules/**, **/dist/**
13
+ 
14
+ [?25h
@@ -0,0 +1,5 @@
1
+
2
+ 
3
+ > @auto-engineer/design-system-importer@0.3.0 type-check /Users/sam/WebstormProjects/top/auto-engineer/packages/design-system-importer
4
+ > tsc --noEmit
5
+
package/CHANGELOG.md CHANGED
@@ -1,5 +1,42 @@
1
1
  # @auto-engineer/design-system-importer
2
2
 
3
+ ## 0.4.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [#22](https://github.com/SamHatoum/auto-engineer/pull/22) [`927b39a`](https://github.com/SamHatoum/auto-engineer/commit/927b39a2c08c0baa1942b2955a8e8015e09364d9) Thanks [@SamHatoum](https://github.com/SamHatoum)! - Some major refactorings of the directory structure
8
+
9
+ ### Patch Changes
10
+
11
+ - [`f3e97e5`](https://github.com/SamHatoum/auto-engineer/commit/f3e97e563b79ca8328e802dd502e65285ec58ce9) Thanks [@SamHatoum](https://github.com/SamHatoum)! - global version bump to test release process
12
+
13
+ - Updated dependencies [[`f3e97e5`](https://github.com/SamHatoum/auto-engineer/commit/f3e97e563b79ca8328e802dd502e65285ec58ce9), [`927b39a`](https://github.com/SamHatoum/auto-engineer/commit/927b39a2c08c0baa1942b2955a8e8015e09364d9)]:
14
+ - @auto-engineer/message-bus@0.3.0
15
+
16
+ ## 0.3.0
17
+
18
+ ### Minor Changes
19
+
20
+ - [`330afa5`](https://github.com/SamHatoum/auto-engineer/commit/330afa565079e3b528d0f448d64919a8dc78d684) Thanks [@SamHatoum](https://github.com/SamHatoum)! - Fix multiple dependency issues
21
+
22
+ ### Patch Changes
23
+
24
+ - Updated dependencies [[`330afa5`](https://github.com/SamHatoum/auto-engineer/commit/330afa565079e3b528d0f448d64919a8dc78d684)]:
25
+ - @auto-engineer/message-bus@0.2.0
26
+
27
+ ## 0.2.0
28
+
29
+ ### Minor Changes
30
+
31
+ - [#24](https://github.com/SamHatoum/auto-engineer/pull/24) [`d4dcacd`](https://github.com/SamHatoum/auto-engineer/commit/d4dcacd18cf2217d3ac9f4354f79ab7ff2ba39a0) Thanks [@SamHatoum](https://github.com/SamHatoum)! - Making commands independent and CLI based
32
+
33
+ - [#22](https://github.com/SamHatoum/auto-engineer/pull/22) [`e39acf3`](https://github.com/SamHatoum/auto-engineer/commit/e39acf31e9051652084d0de99cf8c89b40e6531c) Thanks [@SamHatoum](https://github.com/SamHatoum)! - Some major refactorings of the directory structure
34
+
35
+ ### Patch Changes
36
+
37
+ - Updated dependencies [[`e39acf3`](https://github.com/SamHatoum/auto-engineer/commit/e39acf31e9051652084d0de99cf8c89b40e6531c)]:
38
+ - @auto-engineer/message-bus@0.1.0
39
+
3
40
  ## 0.1.2
4
41
 
5
42
  ### Patch Changes
package/README.md ADDED
@@ -0,0 +1,48 @@
1
+ # Design System Importer
2
+
3
+ Pull in your team’s design system to build consistent, on-brand apps—fast.
4
+ Easily sync shared styles, components, and tokens from design tools or code.
5
+
6
+ ## Available Importers
7
+
8
+ - **Figma** – Import components directly from Figma. Use our [Auto plugin]() to export design tokens effortlessly.
9
+ - **Code** – _(coming soon)_ Import tokens and components from an existing codebase.
10
+ - **NPM Package** – _(coming soon)_ Pull in a published design system as a dependency.
11
+
12
+ ## Figma Importer
13
+
14
+ Sync your design system directly from Figma and integrate it into your local project.
15
+
16
+ ### Prerequisites
17
+
18
+ - A **Figma Personal Access Token**
19
+ - A **Professional Figma Plan** (or higher)
20
+
21
+ ### Setup
22
+
23
+ 1. **Generate a personal access token**
24
+ Follow [these instructions](https://help.figma.com/hc/en-us/articles/8085703771159-Manage-personal-access-tokens) from Figma.
25
+
26
+ 2. **Get your design system file ID**
27
+ Open your Figma file and copy the part of the URL after `/design/`.
28
+
29
+ 3. **Configure environment variables**
30
+ - `FIGMA_PERSONAL_TOKEN` – The token from your Figma account
31
+ - `FIGMA_FILE_ID` – The ID of the design file (found in the Figma URL after `/design/`)
32
+
33
+ 4. **Publish your components in Figma**
34
+ Right-click anywhere → **Actions** → Search for “Publish changes to library”.
35
+
36
+ > _(Optional)_ If you're using a public design system, you may need to move the file into one of your own Figma projects first.
37
+
38
+ 5. **Export tokens with the Auto plugin**
39
+ - Install the [Auto plugin]()
40
+ - Run it inside your Figma file
41
+ - Click **"Export Tokens"**
42
+ - Save the exported file inside the `.context` folder of your output directory
43
+
44
+ 6. **Run the importer**
45
+
46
+ ```bash
47
+ pnpm import:design-system
48
+ ```
@@ -0,0 +1,16 @@
1
+ export interface FigmaComponent {
2
+ name: string;
3
+ description: string;
4
+ thumbnail: string;
5
+ }
6
+ export type FilterFunctionType = (components: FigmaComponent[]) => FigmaComponent[];
7
+ export declare class FigmaComponentsBuilder {
8
+ components: FigmaComponent[];
9
+ withFigmaComponents(): Promise<this>;
10
+ withFigmaComponentSets(): Promise<this>;
11
+ withFilteredNamesForShadcn(): void;
12
+ withFilter(filter: FilterFunctionType): void;
13
+ withAllFigmaInstanceNames(): Promise<this>;
14
+ build(): FigmaComponent[];
15
+ }
16
+ //# sourceMappingURL=FigmaComponentsBuilder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FigmaComponentsBuilder.d.ts","sourceRoot":"","sources":["../src/FigmaComponentsBuilder.ts"],"names":[],"mappings":"AASA,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,MAAM,kBAAkB,GAAG,CAAC,UAAU,EAAE,cAAc,EAAE,KAAK,cAAc,EAAE,CAAC;AAUpF,qBAAa,sBAAsB;IACjC,UAAU,EAAE,cAAc,EAAE,CAAM;IAE5B,mBAAmB;IAuBnB,sBAAsB;IA+B5B,0BAA0B,IAAI,IAAI;IA2BlC,UAAU,CAAC,MAAM,EAAE,kBAAkB,GAAG,IAAI;IAQtC,yBAAyB;IAsF/B,KAAK;CAGN"}
@@ -0,0 +1,175 @@
1
+ import * as dotenv from 'dotenv';
2
+ import * as Figma from 'figma-api';
3
+ dotenv.config();
4
+ const figmaApi = new Figma.Api({
5
+ personalAccessToken: process.env.FIGMA_PERSONAL_TOKEN,
6
+ });
7
+ export class FigmaComponentsBuilder {
8
+ constructor() {
9
+ this.components = [];
10
+ }
11
+ async withFigmaComponents() {
12
+ try {
13
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
14
+ const response = await figmaApi.getFileComponents({ file_key: process.env.FIGMA_FILE_ID });
15
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
16
+ if (response.meta.components.length > 0) {
17
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
18
+ console.log(JSON.stringify(response.meta.components.length, null, 2));
19
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-unsafe-call,@typescript-eslint/no-unsafe-member-access
20
+ this.components = response.meta.components.map((component) => ({
21
+ name: component.name,
22
+ description: component.description,
23
+ thumbnail: component.thumbnail_url,
24
+ }));
25
+ }
26
+ }
27
+ catch (e) {
28
+ console.error(e);
29
+ }
30
+ return this;
31
+ }
32
+ async withFigmaComponentSets() {
33
+ try {
34
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
35
+ const response = await figmaApi.getFileComponentSets({ file_key: process.env.FIGMA_FILE_ID });
36
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
37
+ if (response.meta.component_sets.length > 0) {
38
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-unsafe-call,@typescript-eslint/no-unsafe-member-access
39
+ this.components = response.meta.component_sets.map((component) => ({
40
+ name: component.name,
41
+ description: component.description ?? 'N/A',
42
+ thumbnail: component.thumbnail_url ?? 'N/A',
43
+ }));
44
+ }
45
+ }
46
+ catch (e) {
47
+ console.error(e);
48
+ }
49
+ return this;
50
+ }
51
+ // extractBracketedComponents(item: FigmaComponent): FigmaComponent | null {
52
+ // const match = item.name.match(/<([^>]+)>/);
53
+ // return match ? { ...item, name: match[1].trim() } : null;
54
+ // }
55
+ //
56
+ // withFilteredNamesForMui() {
57
+ // // eslint-disable-next-line @typescript-eslint/unbound-method
58
+ // this.components = this.components.map(this.extractBracketedComponents).filter(Boolean) as FigmaComponent[];
59
+ // }
60
+ withFilteredNamesForShadcn() {
61
+ this.components = this.components
62
+ .map((comp) => {
63
+ if (!comp?.name)
64
+ return null;
65
+ let str = comp.name.trim();
66
+ if (str.includes('/')) {
67
+ str = str.split('/')[0].trim();
68
+ }
69
+ else {
70
+ str = str.split(' ')[0].trim();
71
+ }
72
+ if (str.length > 0) {
73
+ str = str.charAt(0).toUpperCase() + str.slice(1).toLowerCase();
74
+ }
75
+ else {
76
+ return null;
77
+ }
78
+ return {
79
+ ...comp,
80
+ name: str.toLowerCase(),
81
+ };
82
+ })
83
+ .filter((c) => Boolean(c));
84
+ }
85
+ withFilter(filter) {
86
+ try {
87
+ this.components = filter(this.components);
88
+ }
89
+ catch (e) {
90
+ console.error('Error applying custom filter:', e);
91
+ }
92
+ }
93
+ async withAllFigmaInstanceNames() {
94
+ try {
95
+ /// ----
96
+ const usedComponentMap = new Map();
97
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
98
+ const { document } = await figmaApi.getFile({
99
+ file_key: process.env.FIGMA_FILE_ID,
100
+ depth: 1,
101
+ });
102
+ function walkTree(node) {
103
+ if (node.type === 'INSTANCE' && Boolean(node.name)) {
104
+ if (!usedComponentMap.has(node.name)) {
105
+ usedComponentMap.set(node.name, {
106
+ name: node.name,
107
+ description: node.description ?? '',
108
+ thumbnail: node.thumbnail_url ?? '',
109
+ });
110
+ }
111
+ }
112
+ // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions
113
+ if (node.children) {
114
+ for (const child of node.children) {
115
+ walkTree(child);
116
+ }
117
+ }
118
+ }
119
+ walkTree(document);
120
+ this.components = Array.from(usedComponentMap.values());
121
+ /// ----
122
+ // const components = []
123
+ // // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
124
+ // const { meta } = await figmaApi.getFileComponentSets({ file_key: process.env.FIGMA_FILE_ID });
125
+ // // console.log(response);
126
+ //
127
+ // console.log('Component sets:', meta.component_sets); // ⬅️ Check this!
128
+ //
129
+ // const componentSetIds = meta.component_sets.map(componentSet => componentSet.node_id); // This must return valid Figma node IDs
130
+ //
131
+ // console.log('ComponentSet IDs:', componentSetIds);
132
+ //
133
+ // const fileNodes = await figmaApi.getFileNodes({
134
+ // file_key: process.env.FIGMA_FILE_ID,
135
+ // }, {
136
+ // ids: componentSetIds.join(','),
137
+ // });
138
+ //
139
+ // for (const node of Object.values(fileNodes.nodes)) {
140
+ // const componentSet = node.document;
141
+ //
142
+ // if (componentSet.type === 'COMPONENT_SET' && componentSet.children?.length) {
143
+ // const variants = componentSet.children;
144
+ // const firstVariant = variants[0]; // or apply filtering logic
145
+ //
146
+ // components.push({
147
+ // name: componentSet.name, // e.g. "Button"
148
+ // id: firstVariant.id, // this is the actual variant node
149
+ // variantName: firstVariant.name // e.g. "primary=true, size=md"
150
+ // });
151
+ // }
152
+ // }
153
+ //
154
+ // fs.writeFileSync('output.json', JSON.stringify(components, null, 2));
155
+ // if (Boolean(response)) {
156
+ // // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-unsafe-call,@typescript-eslint/no-unsafe-member-access
157
+ // this.components = response.meta.component_sets.map(
158
+ // (component: { name: string; description: string; thumbnail_url: string }) => ({
159
+ // name: component.name,
160
+ // description: component.description,
161
+ // thumbnail_url: component.thumbnail_url,
162
+ // }),
163
+ // );
164
+ // }
165
+ }
166
+ catch (e) {
167
+ console.error(e);
168
+ }
169
+ return this;
170
+ }
171
+ build() {
172
+ return this.components;
173
+ }
174
+ }
175
+ //# sourceMappingURL=FigmaComponentsBuilder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FigmaComponentsBuilder.js","sourceRoot":"","sources":["../src/FigmaComponentsBuilder.ts"],"names":[],"mappings":"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"}
@@ -1,15 +1,15 @@
1
1
  import { type CommandHandler, type Command, type Event } from '@auto-engineer/message-bus';
2
+ import { ImportStrategy } from '../index';
2
3
  export type ImportDesignSystemCommand = Command<'ImportDesignSystem', {
3
- inputDir: string;
4
4
  outputDir: string;
5
+ strategy?: keyof typeof ImportStrategy;
6
+ filterPath?: string;
5
7
  }>;
6
8
  export type DesignSystemImportedEvent = Event<'DesignSystemImported', {
7
- inputDir: string;
8
9
  outputDir: string;
9
10
  }>;
10
11
  export type DesignSystemImportFailedEvent = Event<'DesignSystemImportFailed', {
11
12
  error: string;
12
- inputDir: string;
13
13
  outputDir: string;
14
14
  }>;
15
15
  export declare function handleImportDesignSystemCommand(command: ImportDesignSystemCommand): Promise<DesignSystemImportedEvent | DesignSystemImportFailedEvent>;
@@ -1 +1 @@
1
- {"version":3,"file":"import-design-system.d.ts","sourceRoot":"","sources":["../../src/commands/import-design-system.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,4BAA4B,CAAC;AAI3F,MAAM,MAAM,yBAAyB,GAAG,OAAO,CAC7C,oBAAoB,EACpB;IACE,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB,CACF,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG,KAAK,CAC3C,sBAAsB,EACtB;IACE,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB,CACF,CAAC;AAEF,MAAM,MAAM,6BAA6B,GAAG,KAAK,CAC/C,0BAA0B,EAC1B;IACE,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB,CACF,CAAC;AAGF,wBAAsB,+BAA+B,CACnD,OAAO,EAAE,yBAAyB,GACjC,OAAO,CAAC,yBAAyB,GAAG,6BAA6B,CAAC,CAsDpE;AAED,eAAO,MAAM,gCAAgC,EAAE,cAAc,CAAC,yBAAyB,CAUtF,CAAC"}
1
+ {"version":3,"file":"import-design-system.d.ts","sourceRoot":"","sources":["../../src/commands/import-design-system.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,4BAA4B,CAAC;AAC3F,OAAO,EAAyC,cAAc,EAA2B,MAAM,UAAU,CAAC;AAG1G,MAAM,MAAM,yBAAyB,GAAG,OAAO,CAC7C,oBAAoB,EACpB;IACE,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,OAAO,cAAc,CAAC;IACvC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CACF,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG,KAAK,CAC3C,sBAAsB,EACtB;IACE,SAAS,EAAE,MAAM,CAAC;CACnB,CACF,CAAC;AAEF,MAAM,MAAM,6BAA6B,GAAG,KAAK,CAC/C,0BAA0B,EAC1B;IACE,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACnB,CACF,CAAC;AAGF,wBAAsB,+BAA+B,CACnD,OAAO,EAAE,yBAAyB,GACjC,OAAO,CAAC,yBAAyB,GAAG,6BAA6B,CAAC,CA8CpE;AAED,eAAO,MAAM,gCAAgC,EAAE,cAAc,CAAC,yBAAyB,CAUtF,CAAC"}
@@ -1,34 +1,30 @@
1
- import { promises as fs } from 'fs';
2
- import { copyDesignSystemDocsAndUserPreferences } from '../index.js';
1
+ import { importDesignSystemComponentsFromFigma, ImportStrategy } from '../index.js';
2
+ import { FilterLoader } from '../utils/FilterLoader.js';
3
3
  // Handler
4
4
  export async function handleImportDesignSystemCommand(command) {
5
- const { inputDir, outputDir } = command.data;
5
+ const { outputDir, strategy, filterPath } = command.data;
6
6
  try {
7
- // Check if input directory exists
8
- const inputExists = await fs
9
- .access(inputDir)
10
- .then(() => true)
11
- .catch(() => false);
12
- if (!inputExists) {
13
- // Input directory doesn't exist - this is likely an error
14
- return {
15
- type: 'DesignSystemImportFailed',
16
- data: {
17
- error: `Input directory does not exist: ${inputDir}`,
18
- inputDir,
19
- outputDir,
20
- },
21
- timestamp: new Date(),
22
- requestId: command.requestId,
23
- correlationId: command.correlationId,
24
- };
7
+ const resolvedStrategy = strategy ? ImportStrategy[strategy] : ImportStrategy.WITH_COMPONENT_SETS;
8
+ let filterFn;
9
+ let loader;
10
+ if (typeof filterPath === 'string' && filterPath.trim().length > 0) {
11
+ try {
12
+ loader = new FilterLoader();
13
+ filterFn = await loader.loadFilter(filterPath);
14
+ }
15
+ catch (e) {
16
+ console.warn(`Could not import filter from ${filterPath}. Skipping custom filter.`, e);
17
+ }
18
+ finally {
19
+ if (loader)
20
+ loader.cleanup();
21
+ }
25
22
  }
26
- await copyDesignSystemDocsAndUserPreferences(inputDir, outputDir);
27
- console.log(`Design system files processed from ${inputDir} to ${outputDir}`);
23
+ await importDesignSystemComponentsFromFigma(outputDir, resolvedStrategy, filterFn);
24
+ console.log(`Design system files processed to ${outputDir}`);
28
25
  return {
29
26
  type: 'DesignSystemImported',
30
27
  data: {
31
- inputDir,
32
28
  outputDir,
33
29
  },
34
30
  timestamp: new Date(),
@@ -43,7 +39,6 @@ export async function handleImportDesignSystemCommand(command) {
43
39
  type: 'DesignSystemImportFailed',
44
40
  data: {
45
41
  error: errorMessage,
46
- inputDir,
47
42
  outputDir,
48
43
  },
49
44
  timestamp: new Date(),
@@ -1 +1 @@
1
- {"version":3,"file":"import-design-system.js","sourceRoot":"","sources":["../../src/commands/import-design-system.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,IAAI,CAAC;AACpC,OAAO,EAAE,sCAAsC,EAAE,MAAM,UAAU,CAAC;AA2BlE,UAAU;AACV,MAAM,CAAC,KAAK,UAAU,+BAA+B,CACnD,OAAkC;IAElC,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAE7C,IAAI,CAAC;QACH,kCAAkC;QAClC,MAAM,WAAW,GAAG,MAAM,EAAE;aACzB,MAAM,CAAC,QAAQ,CAAC;aAChB,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;aAChB,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;QAEtB,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,0DAA0D;YAC1D,OAAO;gBACL,IAAI,EAAE,0BAA0B;gBAChC,IAAI,EAAE;oBACJ,KAAK,EAAE,mCAAmC,QAAQ,EAAE;oBACpD,QAAQ;oBACR,SAAS;iBACV;gBACD,SAAS,EAAE,IAAI,IAAI,EAAE;gBACrB,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,aAAa,EAAE,OAAO,CAAC,aAAa;aACrC,CAAC;QACJ,CAAC;QAED,MAAM,sCAAsC,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;QAClE,OAAO,CAAC,GAAG,CAAC,sCAAsC,QAAQ,OAAO,SAAS,EAAE,CAAC,CAAC;QAE9E,OAAO;YACL,IAAI,EAAE,sBAAsB;YAC5B,IAAI,EAAE;gBACJ,QAAQ;gBACR,SAAS;aACV;YACD,SAAS,EAAE,IAAI,IAAI,EAAE;YACrB,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,aAAa,EAAE,OAAO,CAAC,aAAa;SACrC,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC5E,OAAO,CAAC,KAAK,CAAC,gCAAgC,EAAE,KAAK,CAAC,CAAC;QAEvD,OAAO;YACL,IAAI,EAAE,0BAA0B;YAChC,IAAI,EAAE;gBACJ,KAAK,EAAE,YAAY;gBACnB,QAAQ;gBACR,SAAS;aACV;YACD,SAAS,EAAE,IAAI,IAAI,EAAE;YACrB,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,aAAa,EAAE,OAAO,CAAC,aAAa;SACrC,CAAC;IACJ,CAAC;AACH,CAAC;AAED,MAAM,CAAC,MAAM,gCAAgC,GAA8C;IACzF,IAAI,EAAE,oBAAoB;IAC1B,MAAM,EAAE,KAAK,EAAE,OAAkC,EAAiB,EAAE;QAClE,MAAM,MAAM,GAAG,MAAM,+BAA+B,CAAC,OAAO,CAAC,CAAC;QAC9D,IAAI,MAAM,CAAC,IAAI,KAAK,sBAAsB,EAAE,CAAC;YAC3C,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC;QACrD,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CAAC,WAAW,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;CACF,CAAC"}
1
+ {"version":3,"file":"import-design-system.js","sourceRoot":"","sources":["../../src/commands/import-design-system.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qCAAqC,EAAE,cAAc,EAA2B,MAAM,UAAU,CAAC;AAC1G,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AA0BrD,UAAU;AACV,MAAM,CAAC,KAAK,UAAU,+BAA+B,CACnD,OAAkC;IAElC,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAEzD,IAAI,CAAC;QACH,MAAM,gBAAgB,GAAG,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,mBAAmB,CAAC;QAElG,IAAI,QAAwC,CAAC;QAC7C,IAAI,MAAgC,CAAC;QACrC,IAAI,OAAO,UAAU,KAAK,QAAQ,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACnE,IAAI,CAAC;gBACH,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;gBAC5B,QAAQ,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;YACjD,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,OAAO,CAAC,IAAI,CAAC,gCAAgC,UAAU,2BAA2B,EAAE,CAAC,CAAC,CAAC;YACzF,CAAC;oBAAS,CAAC;gBACT,IAAI,MAAM;oBAAE,MAAM,CAAC,OAAO,EAAE,CAAC;YAC/B,CAAC;QACH,CAAC;QAED,MAAM,qCAAqC,CAAC,SAAS,EAAE,gBAAgB,EAAE,QAAQ,CAAC,CAAC;QACnF,OAAO,CAAC,GAAG,CAAC,oCAAoC,SAAS,EAAE,CAAC,CAAC;QAE7D,OAAO;YACL,IAAI,EAAE,sBAAsB;YAC5B,IAAI,EAAE;gBACJ,SAAS;aACV;YACD,SAAS,EAAE,IAAI,IAAI,EAAE;YACrB,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,aAAa,EAAE,OAAO,CAAC,aAAa;SACrC,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC5E,OAAO,CAAC,KAAK,CAAC,gCAAgC,EAAE,KAAK,CAAC,CAAC;QAEvD,OAAO;YACL,IAAI,EAAE,0BAA0B;YAChC,IAAI,EAAE;gBACJ,KAAK,EAAE,YAAY;gBACnB,SAAS;aACV;YACD,SAAS,EAAE,IAAI,IAAI,EAAE;YACrB,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,aAAa,EAAE,OAAO,CAAC,aAAa;SACrC,CAAC;IACJ,CAAC;AACH,CAAC;AAED,MAAM,CAAC,MAAM,gCAAgC,GAA8C;IACzF,IAAI,EAAE,oBAAoB;IAC1B,MAAM,EAAE,KAAK,EAAE,OAAkC,EAAiB,EAAE;QAClE,MAAM,MAAM,GAAG,MAAM,+BAA+B,CAAC,OAAO,CAAC,CAAC;QAC9D,IAAI,MAAM,CAAC,IAAI,KAAK,sBAAsB,EAAE,CAAC;YAC3C,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC;QACrD,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CAAC,WAAW,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;CACF,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,4 +1,17 @@
1
+ import { type FilterFunctionType } from './FigmaComponentsBuilder';
1
2
  export declare function generateDesignSystemMarkdown(inputDir: string, outputDir: string): Promise<void>;
2
3
  export * from './commands/import-design-system';
4
+ export type { FilterFunctionType } from './FigmaComponentsBuilder';
3
5
  export declare function copyDesignSystemDocsAndUserPreferences(inputDir: string, outputDir: string): Promise<void>;
6
+ export declare function generateMarkdownFromComponents(components: {
7
+ name: string;
8
+ description: string;
9
+ thumbnail: string;
10
+ }[]): string;
11
+ export declare enum ImportStrategy {
12
+ WITH_COMPONENTS = "WITH_COMPONENTS",
13
+ WITH_COMPONENT_SETS = "WITH_COMPONENT_SETS",
14
+ WITH_ALL_FIGMA_INSTANCES = "WITH_ALL_FIGMA_INSTANCES"
15
+ }
16
+ export declare function importDesignSystemComponentsFromFigma(outputDir: string, strategy?: ImportStrategy, filterFn?: FilterFunctionType): Promise<void>;
4
17
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AA6BA,wBAAsB,4BAA4B,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAiBrG;AAED,cAAc,iCAAiC,CAAC;AAiBhD,wBAAsB,sCAAsC,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA2B/G"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAA0B,KAAK,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AA+B3F,wBAAsB,4BAA4B,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAiBrG;AAED,cAAc,iCAAiC,CAAC;AAChD,YAAY,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAiBnE,wBAAsB,sCAAsC,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA2B/G;AAwBD,wBAAgB,8BAA8B,CAC5C,UAAU,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,EAAE,GACrE,MAAM,CAYR;AAED,oBAAY,cAAc;IACxB,eAAe,oBAAoB;IACnC,mBAAmB,wBAAwB;IAC3C,wBAAwB,6BAA6B;CACtD;AAED,wBAAsB,qCAAqC,CACzD,SAAS,EAAE,MAAM,EACjB,QAAQ,GAAE,cAAmD,EAC7D,QAAQ,CAAC,EAAE,kBAAkB,GAC5B,OAAO,CAAC,IAAI,CAAC,CAwCf"}
package/dist/index.js CHANGED
@@ -2,8 +2,14 @@ import * as path from 'path';
2
2
  import * as fs from 'fs/promises';
3
3
  import * as dotenv from 'dotenv';
4
4
  import { fileURLToPath } from 'url';
5
+ import * as Figma from 'figma-api';
6
+ import { FigmaComponentsBuilder } from './FigmaComponentsBuilder.js';
7
+ // import { AIProvider, generateTextWithAI } from '@auto-engineer/ai-gateway';
5
8
  dotenv.config();
6
9
  const __filename = fileURLToPath(import.meta.url);
10
+ const api = new Figma.Api({
11
+ personalAccessToken: process.env.FIGMA_PERSONAL_TOKEN,
12
+ });
7
13
  async function getAllTsxFiles(dir) {
8
14
  let results = [];
9
15
  const entries = await fs.readdir(dir, { withFileTypes: true });
@@ -82,11 +88,84 @@ export async function copyDesignSystemDocsAndUserPreferences(inputDir, outputDir
82
88
  }
83
89
  }
84
90
  }
91
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
92
+ async function getFigmaComponents() {
93
+ let components = [];
94
+ try {
95
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
96
+ const response = await api.getFileComponentSets({ file_key: process.env.FIGMA_FILE_ID });
97
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-unsafe-call,@typescript-eslint/no-unsafe-member-access
98
+ components = response.meta.component_sets.map((component) => ({
99
+ name: component.name,
100
+ description: component.description,
101
+ thumbnail: component.thumbnail_url,
102
+ }));
103
+ console.log('figma response: ', response);
104
+ }
105
+ catch (e) {
106
+ console.error(e);
107
+ }
108
+ console.log(components.length);
109
+ return components;
110
+ }
111
+ export function generateMarkdownFromComponents(components) {
112
+ let md = '# Design System\n\n## Components\n\n';
113
+ if (components.length === 0) {
114
+ console.warn('No components found');
115
+ }
116
+ for (const component of components) {
117
+ md += `### ${component.name}\nDescription: ${component.description}\nImage: ![${component.name} image](${component.thumbnail})\n\n`;
118
+ }
119
+ return md;
120
+ }
121
+ export var ImportStrategy;
122
+ (function (ImportStrategy) {
123
+ ImportStrategy["WITH_COMPONENTS"] = "WITH_COMPONENTS";
124
+ ImportStrategy["WITH_COMPONENT_SETS"] = "WITH_COMPONENT_SETS";
125
+ ImportStrategy["WITH_ALL_FIGMA_INSTANCES"] = "WITH_ALL_FIGMA_INSTANCES";
126
+ })(ImportStrategy || (ImportStrategy = {}));
127
+ export async function importDesignSystemComponentsFromFigma(outputDir, strategy = ImportStrategy.WITH_COMPONENT_SETS, filterFn) {
128
+ const figmaComponentsBuilder = new FigmaComponentsBuilder();
129
+ if (strategy === ImportStrategy.WITH_COMPONENTS) {
130
+ await figmaComponentsBuilder.withFigmaComponents();
131
+ }
132
+ else if (strategy === ImportStrategy.WITH_COMPONENT_SETS) {
133
+ await figmaComponentsBuilder.withFigmaComponentSets();
134
+ }
135
+ else if (strategy === ImportStrategy.WITH_ALL_FIGMA_INSTANCES) {
136
+ await figmaComponentsBuilder.withAllFigmaInstanceNames();
137
+ }
138
+ // figmaComponentsBuilder.withFilteredNamesForMui();
139
+ // figmaComponentsBuilder.withFilteredNamesForShadcn();
140
+ if (filterFn) {
141
+ figmaComponentsBuilder.withFilter(filterFn);
142
+ }
143
+ const figmaComponents = figmaComponentsBuilder.build();
144
+ console.log(figmaComponents.length);
145
+ const generatedComponentsMDFile = generateMarkdownFromComponents(figmaComponents);
146
+ // const mdWithImageAnalysis = await generateTextWithAI(
147
+ // `
148
+ // Given this markdown file content:
149
+ // ${generatedComponentsMDFile}
150
+ //
151
+ // ------ INSTRUCTIONS -------
152
+ // !IMPORTANT: Only return with Markdown content, nothing else, I will be putting this straight in a .md file. Don't even start the file with \`\`\`markdown
153
+ // For every component Image: Analyze the given image and add to the given component.
154
+ // - add more content to the "Description:" part of the component.
155
+ // - add "Hierarchy:" part under the component, returning the parts a component is build of. like [Button, Input]
156
+ // `,
157
+ // AIProvider.OpenAI,
158
+ // { temperature: 0.2, maxTokens: 8000 },
159
+ // );
160
+ // await fs.mkdir(outputDir, { recursive: true });
161
+ const outPath = path.join(outputDir, 'design-system.md');
162
+ await fs.writeFile(outPath, generatedComponentsMDFile);
163
+ }
85
164
  // Check if this file is being run directly
86
165
  if (process.argv[1] === __filename) {
87
- const [, , inputDir, outputDir] = process.argv;
88
- if (!inputDir || !outputDir) {
89
- console.error('Usage: tsx src/index.ts <inputDir> <outputDir>');
166
+ const [, , outputDir] = process.argv;
167
+ if (!outputDir) {
168
+ console.error('Usage: tsx src/index.ts <outputDir>');
90
169
  process.exit(1);
91
170
  }
92
171
  // generateDesignSystemMarkdown(inputDir, outputDir)
@@ -97,12 +176,20 @@ if (process.argv[1] === __filename) {
97
176
  // console.error('Error generating design-system.md:', err);
98
177
  // process.exit(1);
99
178
  // });
100
- copyDesignSystemDocsAndUserPreferences(inputDir, outputDir)
179
+ // copyDesignSystemDocsAndUserPreferences(inputDir, outputDir)
180
+ // .then(() => {
181
+ // console.log(`design-system.md copied to ${outputDir}`);
182
+ // })
183
+ // .catch((err) => {
184
+ // console.error('Error copying design-system.md:', err);
185
+ // process.exit(1);
186
+ // });
187
+ importDesignSystemComponentsFromFigma(outputDir)
101
188
  .then(() => {
102
- console.log(`design-system.md copied to ${outputDir}`);
189
+ console.log(`design-system.md generated to ${outputDir}`);
103
190
  })
104
191
  .catch((err) => {
105
- console.error('Error copying design-system.md:', err);
192
+ console.error('Error generating design-system.md:', err);
106
193
  process.exit(1);
107
194
  });
108
195
  }
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import type { FilterFunctionType } from '../FigmaComponentsBuilder';
2
+ export declare class FilterLoader {
3
+ private tsxRegistered;
4
+ private tsxUnregister;
5
+ loadFilter(filePath: string): Promise<FilterFunctionType>;
6
+ private ensureTsxSupport;
7
+ cleanup(): void;
8
+ }
9
+ //# sourceMappingURL=FilterLoader.d.ts.map