@auto-engineer/frontend-generator-react-graphql 0.13.3 → 0.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (96) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/README.md +139 -308
  3. package/dist/mui-starter/package.json +0 -10
  4. package/dist/mui-starter/src/App.tsx +2 -2
  5. package/dist/mui-starter/src/apolloClient.ts +1 -1
  6. package/dist/mui-starter/src/hooks/use-toast.ts +1 -1
  7. package/dist/mui-starter/src/pages/NotFound.tsx +1 -1
  8. package/dist/mui-starter/vite.config.ts +2 -2
  9. package/dist/shadcn-starter/package.json +0 -10
  10. package/dist/shadcn-starter/postcss.config.ts +1 -1
  11. package/dist/shadcn-starter/src/App.tsx +2 -2
  12. package/dist/shadcn-starter/src/apolloClient.ts +1 -1
  13. package/dist/shadcn-starter/src/components/atoms/accordion.tsx +1 -1
  14. package/dist/shadcn-starter/src/components/atoms/alert-dialog.tsx +2 -3
  15. package/dist/shadcn-starter/src/components/atoms/alert.tsx +1 -1
  16. package/dist/shadcn-starter/src/components/atoms/avatar.tsx +1 -1
  17. package/dist/shadcn-starter/src/components/atoms/badge.tsx +1 -1
  18. package/dist/shadcn-starter/src/components/atoms/breadcrumb.tsx +1 -1
  19. package/dist/shadcn-starter/src/components/atoms/button.tsx +1 -1
  20. package/dist/shadcn-starter/src/components/atoms/calendar.tsx +3 -4
  21. package/dist/shadcn-starter/src/components/atoms/carousel.tsx +2 -3
  22. package/dist/shadcn-starter/src/components/atoms/checkbox.tsx +1 -1
  23. package/dist/shadcn-starter/src/components/atoms/command.tsx +3 -4
  24. package/dist/shadcn-starter/src/components/atoms/context-menu.tsx +1 -1
  25. package/dist/shadcn-starter/src/components/atoms/dialog.tsx +1 -1
  26. package/dist/shadcn-starter/src/components/atoms/dropdown-menu.tsx +1 -1
  27. package/dist/shadcn-starter/src/components/atoms/form.tsx +5 -6
  28. package/dist/shadcn-starter/src/components/atoms/hover-card.tsx +1 -1
  29. package/dist/shadcn-starter/src/components/atoms/input-otp.tsx +1 -1
  30. package/dist/shadcn-starter/src/components/atoms/label.tsx +1 -1
  31. package/dist/shadcn-starter/src/components/atoms/menubar.tsx +1 -1
  32. package/dist/shadcn-starter/src/components/atoms/navigation-menu.tsx +1 -1
  33. package/dist/shadcn-starter/src/components/atoms/pagination.tsx +3 -9
  34. package/dist/shadcn-starter/src/components/atoms/popover.tsx +1 -1
  35. package/dist/shadcn-starter/src/components/atoms/progress.tsx +1 -1
  36. package/dist/shadcn-starter/src/components/atoms/radio-group.tsx +1 -1
  37. package/dist/shadcn-starter/src/components/atoms/scroll-area.tsx +1 -1
  38. package/dist/shadcn-starter/src/components/atoms/select.tsx +1 -1
  39. package/dist/shadcn-starter/src/components/atoms/separator.tsx +1 -1
  40. package/dist/shadcn-starter/src/components/atoms/sheet.tsx +1 -1
  41. package/dist/shadcn-starter/src/components/atoms/sidebar.tsx +6 -7
  42. package/dist/shadcn-starter/src/components/atoms/slider.tsx +1 -1
  43. package/dist/shadcn-starter/src/components/atoms/switch.tsx +1 -1
  44. package/dist/shadcn-starter/src/components/atoms/tabs.tsx +1 -1
  45. package/dist/shadcn-starter/src/components/atoms/toggle-group.tsx +3 -4
  46. package/dist/shadcn-starter/src/components/atoms/toggle.tsx +1 -1
  47. package/dist/shadcn-starter/src/components/atoms/tooltip.tsx +1 -1
  48. package/dist/shadcn-starter/src/hooks/use-toast.ts +1 -1
  49. package/dist/shadcn-starter/src/lib/utils.ts +1 -1
  50. package/dist/shadcn-starter/src/pages/NotFound.tsx +1 -1
  51. package/dist/shadcn-starter/vite.config.ts +2 -2
  52. package/dist/src/builder.js +2 -2
  53. package/dist/src/builder.js.map +1 -1
  54. package/dist/src/commands/copy-example.d.ts.map +1 -1
  55. package/dist/src/commands/copy-example.js +8 -4
  56. package/dist/src/commands/copy-example.js.map +1 -1
  57. package/dist/src/commands/generate-client.d.ts +1 -1
  58. package/dist/src/commands/generate-client.d.ts.map +1 -1
  59. package/dist/src/commands/generate-client.js +11 -7
  60. package/dist/src/commands/generate-client.js.map +1 -1
  61. package/dist/src/configure-starter.js +3 -3
  62. package/dist/src/configure-starter.js.map +1 -1
  63. package/dist/src/delete-directory.js +2 -2
  64. package/dist/src/delete-directory.js.map +1 -1
  65. package/dist/src/generator/generateComponents.d.ts +1 -1
  66. package/dist/src/generator/generateComponents.d.ts.map +1 -1
  67. package/dist/src/generator/generateComponents.js +5 -5
  68. package/dist/src/generator/generateComponents.js.map +1 -1
  69. package/dist/src/generator/templates/component.ejs.specs.js +4 -4
  70. package/dist/src/generator/templates/component.ejs.specs.js.map +1 -1
  71. package/dist/src/generator/templates/component.ejs.specs.ts +4 -4
  72. package/dist/src/generator/templates/page.ejs.specs.js +4 -4
  73. package/dist/src/generator/templates/page.ejs.specs.js.map +1 -1
  74. package/dist/src/generator/templates/page.ejs.specs.ts +4 -4
  75. package/dist/src/generator/type-guidance-builder.d.ts +2 -2
  76. package/dist/src/generator/type-guidance-builder.d.ts.map +1 -1
  77. package/dist/src/generator/type-guidance-builder.js +2 -2
  78. package/dist/src/generator/type-guidance-builder.js.map +1 -1
  79. package/dist/src/graphql-type-extractor.js +1 -1
  80. package/dist/src/graphql-type-extractor.js.map +1 -1
  81. package/dist/src/run-codegen.js +3 -3
  82. package/dist/src/run-codegen.js.map +1 -1
  83. package/dist/src/scaffold-gql-operations.d.ts +1 -1
  84. package/dist/src/scaffold-gql-operations.d.ts.map +1 -1
  85. package/dist/src/scaffold-gql-operations.js +5 -5
  86. package/dist/src/scaffold-gql-operations.js.map +1 -1
  87. package/dist/src/scaffold-gql-operations.specs.js +1 -1
  88. package/dist/src/scaffold-gql-operations.specs.js.map +1 -1
  89. package/dist/src/templates/createFile.js +3 -3
  90. package/dist/src/templates/createFile.js.map +1 -1
  91. package/dist/src/write-graphql-schema.js +2 -2
  92. package/dist/src/write-graphql-schema.js.map +1 -1
  93. package/dist/tsconfig.tsbuildinfo +1 -1
  94. package/package.json +4 -8
  95. package/dist/mui-starter/eslint.config.ts +0 -57
  96. package/dist/shadcn-starter/eslint.config.ts +0 -57
package/CHANGELOG.md CHANGED
@@ -1,5 +1,29 @@
1
1
  # @auto-engineer/frontend-react-graphql-generator
2
2
 
3
+ ## 0.15.0
4
+
5
+ ### Minor Changes
6
+
7
+ - version bump
8
+
9
+ ### Patch Changes
10
+
11
+ - Updated dependencies []:
12
+ - @auto-engineer/message-bus@0.15.0
13
+ - @auto-engineer/ai-gateway@0.15.0
14
+
15
+ ## 0.14.0
16
+
17
+ ### Minor Changes
18
+
19
+ - Rewrite CLI and Pipeline
20
+
21
+ ### Patch Changes
22
+
23
+ - Updated dependencies []:
24
+ - @auto-engineer/ai-gateway@0.14.0
25
+ - @auto-engineer/message-bus@0.14.0
26
+
3
27
  ## 0.13.3
4
28
 
5
29
  ### Patch Changes
package/README.md CHANGED
@@ -1,362 +1,193 @@
1
1
  # @auto-engineer/frontend-generator-react-graphql
2
2
 
3
- React client generation plugin for the Auto Engineer CLI that scaffolds GraphQL-powered frontend applications. This plugin creates type-safe React applications with tooling, design systems, and GraphQL integration.
3
+ React frontend generator that scaffolds GraphQL-powered applications from IA schemas.
4
4
 
5
- ## Installation
6
-
7
- This is a plugin for the Auto Engineer CLI. Install both the CLI and this plugin:
8
-
9
- ```bash
10
- npm install -g @auto-engineer/cli
11
- npm install @auto-engineer/frontend-generator-react-graphql
12
- ```
13
-
14
- ## Configuration
15
-
16
- Add this plugin to your `auto.config.ts`:
17
-
18
- ```typescript
19
- export default {
20
- plugins: [
21
- '@auto-engineer/frontend-generator-react-graphql',
22
- // ... other plugins
23
- ],
24
- };
25
- ```
26
-
27
- ## Commands
28
-
29
- This plugin provides the following commands:
30
-
31
- - `generate:client` - Generate a React GraphQL client application
32
- - `copy:example` - Copy an example React GraphQL project template
33
-
34
- ## What does this plugin do?
35
-
36
- The React GraphQL Generator creates React applications with GraphQL integration. It generates project scaffolding, configures build tools, sets up design systems, and creates type-safe GraphQL operations.
37
-
38
- ## Key Features
39
-
40
- ### Project Scaffolding
41
-
42
- - React project structure with TypeScript
43
- - Vite configuration for development and builds
44
- - ESLint and Prettier setup for code quality
45
- - Testing infrastructure with Vitest and Testing Library
5
+ ---
46
6
 
47
- ### GraphQL Integration
7
+ ## Purpose
48
8
 
49
- - Apollo Client setup with type-safe operations
50
- - Code generation from GraphQL schemas
51
- - Optimistic updates and error handling patterns
52
- - Real-time subscriptions and caching strategies
9
+ Without `@auto-engineer/frontend-generator-react-graphql`, you would have to manually scaffold React components, write GraphQL operations, configure Apollo Client, and integrate design system tokens by hand.
53
10
 
54
- ### Design System Support
11
+ This package generates complete React frontends from Information Architecture schemas. It creates type-safe components following atomic design principles, generates GraphQL operations, and configures Apollo Client with full codegen integration.
55
12
 
56
- - Design system options (Material-UI, shadcn/ui)
57
- - Theming and styling patterns
58
- - Responsive design with CSS techniques
59
- - Component library integration and customization
13
+ ---
60
14
 
61
- ### Developer Experience
62
-
63
- - Hot module replacement for feedback
64
- - TypeScript for compile-time safety
65
- - IntelliSense and autocomplete support
66
- - Development tools and debugging
67
-
68
- ## Available Starter Templates
69
-
70
- ### shadcn/ui Starter
71
-
72
- React application using shadcn/ui components:
15
+ ## Installation
73
16
 
74
17
  ```bash
75
- auto copy:example --template=shadcn
18
+ pnpm add @auto-engineer/frontend-generator-react-graphql
76
19
  ```
77
20
 
78
- Features:
21
+ ## Quick Start
79
22
 
80
- - shadcn/ui: Accessible components built with Radix UI
81
- - Tailwind CSS: Utility-first CSS framework
82
- - Apollo Client: GraphQL client with caching and state management
83
- - React Router: Client-side routing with type safety
84
- - Form Handling: React Hook Form with Zod validation
85
- - Toast Notifications: User feedback with react-hot-toast
86
-
87
- Project structure:
23
+ ```typescript
24
+ import { generateClientCommandHandler } from '@auto-engineer/frontend-generator-react-graphql';
25
+
26
+ const result = await generateClientCommandHandler.handle({
27
+ type: 'GenerateClient',
28
+ data: {
29
+ starter: 'shadcn',
30
+ targetDir: './client',
31
+ iaSchemaPath: './auto-ia.json',
32
+ gqlSchemaPath: './schema.graphql',
33
+ figmaVariablesPath: './figma-vars.json',
34
+ },
35
+ requestId: 'req-123',
36
+ });
88
37
 
38
+ console.log(result);
39
+ // → { type: 'ClientGenerated', data: { targetDir: './client', components: [...] } }
89
40
  ```
90
- client/
91
- ├── src/
92
- │ ├── components/
93
- │ │ ├── atoms/ # shadcn/ui components
94
- │ │ ├── molecules/ # Composed components
95
- │ │ └── organisms/ # Complex UI sections
96
- │ ├── pages/ # Application pages
97
- │ ├── hooks/ # Custom React hooks
98
- │ ├── lib/ # Utilities and configuration
99
- │ ├── graphql/ # Generated GraphQL operations
100
- │ └── styles/ # Global styles and theme
101
- ├── public/ # Static assets
102
- └── package.json
103
- ```
104
41
 
105
- ### Material-UI Starter
42
+ ---
43
+
44
+ ## How-to Guides
106
45
 
107
- React application using Material-UI:
46
+ ### Generate via CLI
108
47
 
109
48
  ```bash
110
- auto copy:example --template=mui
49
+ auto generate:client \
50
+ --starter=shadcn \
51
+ --target-dir=./client \
52
+ --ia-schema-path=./auto-ia.json \
53
+ --gql-schema-path=./schema.graphql \
54
+ --figma-variables-path=./figma-vars.json
111
55
  ```
112
56
 
113
- Features:
114
-
115
- - Material-UI (MUI): React components implementing Google's Material Design
116
- - Emotion: CSS-in-JS library for styling
117
- - Apollo Client: GraphQL integration with Material-UI components
118
- - React Router: Navigation with Material-UI integration
119
- - Theme Customization: Theming system
120
- - Responsive Design: Mobile-first approach with breakpoints
121
-
122
- ## Generated Application Features
123
-
124
- ### Type-Safe GraphQL Operations
125
-
126
- The generator creates fully typed GraphQL operations:
57
+ ### Generate Programmatically
127
58
 
128
59
  ```typescript
129
- // Generated types from GraphQL schema
130
- export interface User {
131
- id: string;
132
- name: string;
133
- email: string;
134
- avatar?: string;
135
- }
136
-
137
- // Generated Apollo hooks
138
- export const useGetUsersQuery = () => {
139
- return useQuery<GetUsersQuery, GetUsersQueryVariables>(GET_USERS);
140
- };
141
-
142
- export const useCreateUserMutation = () => {
143
- return useMutation<CreateUserMutation, CreateUserMutationVariables>(CREATE_USER);
144
- };
60
+ import { generateClientCommandHandler } from '@auto-engineer/frontend-generator-react-graphql';
61
+
62
+ const result = await generateClientCommandHandler.handle({
63
+ type: 'GenerateClient',
64
+ data: {
65
+ starter: 'shadcn',
66
+ targetDir: './client',
67
+ iaSchemaPath: './auto-ia.json',
68
+ gqlSchemaPath: './schema.graphql',
69
+ figmaVariablesPath: './figma-vars.json',
70
+ },
71
+ });
145
72
  ```
146
73
 
147
- ### Component Architecture
148
-
149
- Organized component structure following atomic design principles:
74
+ ### Use Material-UI Starter
150
75
 
151
76
  ```typescript
152
- // Atoms - Basic building blocks
153
- export function Button({ children, variant, ...props }: ButtonProps) {
154
- return (
155
- <button className={`btn btn-${variant}`} {...props}>
156
- {children}
157
- </button>
158
- );
159
- }
160
-
161
- // Molecules - Combined atoms
162
- export function SearchBox({ onSearch, placeholder }: SearchBoxProps) {
163
- return (
164
- <div className="flex gap-2">
165
- <Input placeholder={placeholder} />
166
- <Button onClick={onSearch}>Search</Button>
167
- </div>
168
- );
169
- }
170
-
171
- // Organisms - Complex UI sections
172
- export function UserList({ users, onUserSelect }: UserListProps) {
173
- return (
174
- <div className="space-y-4">
175
- <SearchBox onSearch={handleSearch} />
176
- <div className="grid gap-4">
177
- {users.map(user => (
178
- <UserCard key={user.id} user={user} onClick={onUserSelect} />
179
- ))}
180
- </div>
181
- </div>
182
- );
183
- }
77
+ const result = await generateClientCommandHandler.handle({
78
+ type: 'GenerateClient',
79
+ data: {
80
+ starter: 'mui',
81
+ targetDir: './client',
82
+ // ...other options
83
+ },
84
+ });
184
85
  ```
185
86
 
186
- ### Page Components
87
+ ---
88
+
89
+ ## API Reference
187
90
 
188
- Complete page implementations with routing:
91
+ ### Package Exports
189
92
 
190
93
  ```typescript
191
- export function UsersPage() {
192
- const { data, loading, error } = useGetUsersQuery();
193
- const [searchTerm, setSearchTerm] = useState('');
194
-
195
- const filteredUsers = useMemo(() =>
196
- data?.users.filter(user =>
197
- user.name.toLowerCase().includes(searchTerm.toLowerCase())
198
- ) || [],
199
- [data?.users, searchTerm]
200
- );
201
-
202
- if (loading) return <LoadingSpinner />;
203
- if (error) return <ErrorBoundary error={error} />;
204
-
205
- return (
206
- <PageLayout title="Users" breadcrumbs={[{ label: 'Users', href: '/users' }]}>
207
- <UserList
208
- users={filteredUsers}
209
- onUserSelect={handleUserSelect}
210
- />
211
- </PageLayout>
212
- );
213
- }
94
+ import {
95
+ generateClientCommandHandler,
96
+ type GenerateClientCommand,
97
+ type GenerateClientEvents,
98
+ type ClientGeneratedEvent,
99
+ type ClientGenerationFailedEvent,
100
+ } from '@auto-engineer/frontend-generator-react-graphql';
214
101
  ```
215
102
 
216
- ## Build Configuration
217
-
218
- ### Vite Setup
219
-
220
- Build configuration with:
221
-
222
- - Fast HMR for development
223
- - Production builds
224
- - Code splitting and lazy loading
225
- - Environment variable handling
226
- - Asset optimization
227
-
228
- ### GraphQL Code Generation
229
-
230
- Type generation from GraphQL schemas:
103
+ ### GenerateClientCommand
231
104
 
232
105
  ```typescript
233
- // codegen.ts configuration
234
- import type { CodegenConfig } from '@graphql-codegen/cli';
235
-
236
- const config: CodegenConfig = {
237
- schema: 'http://localhost:4000/graphql',
238
- documents: ['src/**/*.{ts,tsx}'],
239
- generates: {
240
- './src/graphql/generated.ts': {
241
- plugins: ['typescript', 'typescript-operations', 'typescript-react-apollo'],
242
- config: {
243
- withHooks: true,
244
- withComponent: false,
245
- withHOC: false,
246
- },
247
- },
248
- },
249
- };
106
+ type GenerateClientCommand = Command<
107
+ 'GenerateClient',
108
+ {
109
+ starter?: 'shadcn' | 'mui';
110
+ starterDir?: string;
111
+ targetDir: string;
112
+ iaSchemaPath: string;
113
+ gqlSchemaPath: string;
114
+ figmaVariablesPath: string;
115
+ }
116
+ >;
250
117
  ```
251
118
 
252
- ## Configuration Options
253
-
254
- Customize generation through `auto.config.ts`:
119
+ ### ClientGeneratedEvent
255
120
 
256
121
  ```typescript
257
- export default {
258
- plugins: [
259
- [
260
- '@auto-engineer/frontend-generator-react-graphql',
261
- {
262
- // Template selection
263
- template: 'shadcn', // or 'mui'
264
-
265
- // Build configuration
266
- bundler: 'vite',
267
-
268
- // GraphQL configuration
269
- graphqlEndpoint: 'http://localhost:4000/graphql',
270
- generateMocks: true,
271
-
272
- // Styling approach
273
- cssFramework: 'tailwind', // or 'emotion'
274
-
275
- // Additional features
276
- includeStorybook: true,
277
- includePWA: false,
278
- includeI18n: false,
279
- },
280
- ],
281
- ],
282
- };
122
+ type ClientGeneratedEvent = Event<
123
+ 'ClientGenerated',
124
+ {
125
+ targetDir: string;
126
+ components: Array<{ type: string; filePath: string }>;
127
+ }
128
+ >;
283
129
  ```
284
130
 
285
- ## Integration with Other Plugins
286
-
287
- Works with the Auto Engineer ecosystem:
288
-
289
- - **@auto-engineer/server-generator-apollo-emmett**: Consumes GraphQL schemas from generated servers
290
- - **@auto-engineer/design-system-importer**: Integrates imported design tokens and components
291
- - **@auto-engineer/frontend-implementer**: Provides scaffolding for AI-powered implementation
292
- - **@auto-engineer/frontend-checks**: Validates generated applications
293
- - **@auto-engineer/information-architect**: Uses IA specifications for navigation structure
294
-
295
- ## Development Workflow
296
-
297
- 1. **Generate Client Application**:
298
-
299
- ```bash
300
- auto generate:client
301
- ```
302
-
303
- 2. **Start Development Server**:
304
-
305
- ```bash
306
- cd client
307
- npm run start
308
- ```
131
+ ### IAScheme Structure
309
132
 
310
- 3. **Generate GraphQL Types** (when schema changes):
133
+ ```typescript
134
+ interface IAScheme {
135
+ schema_description: string;
136
+ atoms: ComponentGroup<AtomSpec>;
137
+ molecules: ComponentGroup<MoleculeSpec>;
138
+ organisms: ComponentGroup<OrganismSpec>;
139
+ pages: PageGroup;
140
+ }
141
+ ```
311
142
 
312
- ```bash
313
- npm run codegen
314
- ```
143
+ ### Starter Templates
315
144
 
316
- 4. **Build for Production**:
317
- ```bash
318
- npm run build
319
- ```
145
+ | Template | Stack |
146
+ |----------|-------|
147
+ | `shadcn` | React + Vite + shadcn/ui + Tailwind + Apollo |
148
+ | `mui` | React + Vite + Material-UI + Apollo |
320
149
 
321
- ## Testing Infrastructure
150
+ ---
322
151
 
323
- Generated applications include testing setup:
152
+ ## Architecture
324
153
 
325
- - Unit Testing: Vitest with React Testing Library
326
- - Component Testing: Isolated component testing
327
- - Integration Testing: Page-level testing with mocked GraphQL
328
- - E2E Testing: Playwright configuration for end-to-end tests
154
+ ```
155
+ src/
156
+ ├── index.ts
157
+ ├── types.ts
158
+ ├── builder.ts
159
+ ├── configure-starter.ts
160
+ ├── run-codegen.ts
161
+ ├── scaffold-gql-operations.ts
162
+ ├── graphql-type-extractor.ts
163
+ ├── generator/
164
+ │ ├── generateComponents.ts
165
+ │ └── templates/
166
+ ├── commands/
167
+ │ └── generate-client.ts
168
+ ├── shadcn-starter/
169
+ └── mui-starter/
170
+ ```
329
171
 
330
- Example test:
172
+ The following diagram shows the generation pipeline:
331
173
 
332
- ```typescript
333
- describe('UserList Component', () => {
334
- it('renders users correctly', async () => {
335
- const mockUsers = [
336
- { id: '1', name: 'John Doe', email: 'john@example.com' }
337
- ];
338
-
339
- render(
340
- <MockedProvider mocks={[getUsersMock(mockUsers)]}>
341
- <UserList />
342
- </MockedProvider>
343
- );
344
-
345
- await waitFor(() => {
346
- expect(screen.getByText('John Doe')).toBeInTheDocument();
347
- });
348
- });
349
- });
174
+ ```mermaid
175
+ flowchart TB
176
+ A[GenerateClient] --> B[Clone Starter]
177
+ B --> C[Generate Components]
178
+ C --> D[Write GraphQL Operations]
179
+ D --> E[Run Codegen]
180
+ E --> F[Configure Starter]
181
+ F --> G[ClientGenerated]
350
182
  ```
351
183
 
352
- ## Performance Considerations
353
-
354
- Generated applications include:
184
+ *Flow: Command clones starter, generates components from IA schema, writes GraphQL operations, runs codegen, applies Figma configuration.*
355
185
 
356
- - Code Splitting: Route-based and component-based splitting
357
- - Lazy Loading: Images and non-critical components
358
- - Bundle Analysis: Tools to analyze and optimize bundle size
359
- - Caching Strategies: Apollo Client caching and persistence
360
- - Optimization: Production build optimizations
186
+ ### Dependencies
361
187
 
362
- The React GraphQL Generator provides a foundation for building React applications with GraphQL, allowing developers to focus on business logic rather than configuration and setup.
188
+ | Package | Usage |
189
+ |---------|-------|
190
+ | `@auto-engineer/ai-gateway` | AI-powered Figma variable mapping |
191
+ | `@auto-engineer/message-bus` | Command handler infrastructure |
192
+ | `ejs` | Template rendering |
193
+ | `graphql` | GraphQL schema parsing |
@@ -8,13 +8,9 @@
8
8
  "start": "vite",
9
9
  "build": "vite build",
10
10
  "build:dev": "vite build --mode development",
11
- "lint": "eslint .",
12
11
  "preview": "vite preview",
13
12
  "codegen": "graphql-codegen --config codegen.ts",
14
- "format": "prettier --write \"**/*.{js,ts,json,md,yml,yaml}\" --ignore-path ../../../.prettierignore --log-level warn",
15
13
  "type:check": "tsc --noEmit",
16
- "lint:fix": "eslint .",
17
- "format:fix": "prettier --write \"**/*.{js,ts,json,md,yml,yaml}\" --ignore-path ../../../.prettierignore --log-level warn",
18
14
  "auto-configure": "tsx auto-configure.ts"
19
15
  },
20
16
  "dependencies": {
@@ -49,7 +45,6 @@
49
45
  "commander": "^14.0.0"
50
46
  },
51
47
  "devDependencies": {
52
- "@eslint/js": "^9.9.0",
53
48
  "@graphql-codegen/cli": "3.2.0",
54
49
  "@graphql-codegen/client-preset": "2.1.0",
55
50
  "@graphql-typed-document-node/core": "^3.2.0",
@@ -58,13 +53,8 @@
58
53
  "@types/react-dom": "^18.3.0",
59
54
  "@vitejs/plugin-react": "^4.7.0",
60
55
  "autoprefixer": "^10.4.20",
61
- "eslint": "^9.9.0",
62
- "eslint-plugin-react-hooks": "^5.1.0-rc.0",
63
- "eslint-plugin-react-refresh": "^0.4.9",
64
- "globals": "^15.9.0",
65
56
  "postcss": "^8.4.47",
66
57
  "typescript": "^5.5.3",
67
- "typescript-eslint": "^8.0.1",
68
58
  "vite": "^5.4.1"
69
59
  }
70
60
  }
@@ -1,9 +1,9 @@
1
1
  import { ApolloProvider } from '@apollo/client';
2
+ import { ThemeProvider } from '@mui/material';
2
3
  import { BrowserRouter, Route, Routes } from 'react-router-dom';
4
+ import { apolloClient } from '@/apolloClient';
3
5
  import { Index } from '@/pages/Index';
4
6
  import { NotFound } from '@/pages/NotFound';
5
- import { apolloClient } from '@/apolloClient';
6
- import { ThemeProvider } from '@mui/material';
7
7
  import { theme } from '@/theme.ts';
8
8
 
9
9
  export const App = () => (
@@ -1,4 +1,4 @@
1
- import { ApolloClient, InMemoryCache, HttpLink } from '@apollo/client';
1
+ import { ApolloClient, HttpLink, InMemoryCache } from '@apollo/client';
2
2
 
3
3
  export const apolloClient = new ApolloClient({
4
4
  link: new HttpLink({
@@ -172,7 +172,7 @@ function useToast() {
172
172
  listeners.splice(index, 1);
173
173
  }
174
174
  };
175
- }, [state]);
175
+ }, []);
176
176
 
177
177
  return {
178
178
  ...state,
@@ -1,5 +1,5 @@
1
- import { useLocation } from 'react-router-dom';
2
1
  import { useEffect } from 'react';
2
+ import { useLocation } from 'react-router-dom';
3
3
 
4
4
  export const NotFound = () => {
5
5
  const location = useLocation();
@@ -1,6 +1,6 @@
1
- import { defineConfig } from 'vite';
1
+ import path from 'node:path';
2
2
  import react from '@vitejs/plugin-react';
3
- import path from 'path';
3
+ import { defineConfig } from 'vite';
4
4
  import postcss from './postcss.config';
5
5
 
6
6
  // https://vitejs.dev/config/
@@ -8,14 +8,10 @@
8
8
  "start": "vite",
9
9
  "build": "vite build",
10
10
  "build:dev": "vite build --mode development",
11
- "lint": "eslint .",
12
11
  "preview": "vite preview",
13
12
  "codegen": "graphql-codegen --config codegen.ts",
14
- "format": "prettier --write \"**/*.{js,ts,json,md,yml,yaml}\" --ignore-path ../../../.prettierignore --log-level warn",
15
13
  "type:check": "tsc --noEmit",
16
14
  "type-check": "tsc --noEmit",
17
- "lint:fix": "eslint .",
18
- "format:fix": "prettier --write \"**/*.{js,ts,json,md,yml,yaml}\" --ignore-path ../../../.prettierignore --log-level warn",
19
15
  "auto-configure": "tsx auto-configure.ts"
20
16
  },
21
17
  "dependencies": {
@@ -76,7 +72,6 @@
76
72
  "zod": "^3.25.63"
77
73
  },
78
74
  "devDependencies": {
79
- "@eslint/js": "^9.9.0",
80
75
  "@graphql-codegen/cli": "3.2.0",
81
76
  "@graphql-codegen/client-preset": "2.1.0",
82
77
  "@graphql-typed-document-node/core": "^3.2.0",
@@ -87,14 +82,9 @@
87
82
  "@types/recharts": "^2.0.1",
88
83
  "@vitejs/plugin-react": "^4.7.0",
89
84
  "autoprefixer": "^10.4.20",
90
- "eslint": "^9.9.0",
91
- "eslint-plugin-react-hooks": "^5.1.0-rc.0",
92
- "eslint-plugin-react-refresh": "^0.4.9",
93
- "globals": "^15.9.0",
94
85
  "postcss": "^8.4.47",
95
86
  "tailwindcss": "^3.4.11",
96
87
  "typescript": "^5.4.5",
97
- "typescript-eslint": "^8.0.1",
98
88
  "vite": "^5.4.1"
99
89
  }
100
90
  }
@@ -1,5 +1,5 @@
1
- import tailwindcss from 'tailwindcss';
2
1
  import autoprefixer from 'autoprefixer';
2
+ import tailwindcss from 'tailwindcss';
3
3
 
4
4
  export default {
5
5
  plugins: [tailwindcss, autoprefixer],
@@ -1,11 +1,11 @@
1
1
  import { ApolloProvider } from '@apollo/client';
2
+ import type React from 'react';
2
3
  // import { Toaster } from '@/components/atoms/toaster';
3
4
  // import { Toaster as Sonner } from '@/components/atoms/sonner';
4
5
  // import { TooltipProvider } from '@/components/atoms/tooltip';
5
6
  import { BrowserRouter, Route, Routes } from 'react-router-dom';
6
- import { NotFound } from '@/pages/NotFound';
7
7
  import { apolloClient } from '@/apolloClient';
8
- import React from 'react';
8
+ import { NotFound } from '@/pages/NotFound';
9
9
 
10
10
  // Type assertion workaround for React component type issues
11
11
  const ApolloProviderTyped = ApolloProvider as any;