create-auto-app 0.11.5 → 0.11.7

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.
@@ -4,7 +4,7 @@
4
4
  "type": "module",
5
5
  "scripts": {
6
6
  "auto": "node ../../packages/cli/dist/bin/auto.js",
7
- "auto:debug": "DEBUG=flow:*,cli:*,auto*,ai*,-*file-syncer,-*flow* node ../../packages/cli/dist/bin/auto.js",
7
+ "auto:debug": "DEBUG=auto:* node ../../packages/cli/dist/bin/auto.js",
8
8
  "start": "dotenv -e .env -- pnpm --parallel start"
9
9
  },
10
10
  "dependencies": {
@@ -148,7 +148,6 @@ export default autoConfig({
148
148
 
149
149
  on<GenerateIAEvents>('IAGenerated', () =>
150
150
  dispatch<GenerateClientCommand>('GenerateClient', {
151
- starterDir: '../../packages/frontend-generator-react-graphql/shadcn-starter',
152
151
  targetDir: './client',
153
152
  iaSchemaPath: './.context/auto-ia-scheme.json',
154
153
  gqlSchemaPath: './.context/schema.graphql',
@@ -4,7 +4,7 @@
4
4
  "type": "module",
5
5
  "scripts": {
6
6
  "auto": "node ../../packages/cli/dist/bin/auto.js",
7
- "auto:debug": "DEBUG=flow:*,cli:*,auto*,ai*,-*file-syncer,-*flow* node ../../packages/cli/dist/bin/auto.js",
7
+ "auto:debug": "DEBUG=auto:* node ../../packages/cli/dist/bin/auto.js",
8
8
  "start": "dotenv -e .env -- pnpm --parallel start"
9
9
  },
10
10
  "dependencies": {
package/dist/index.d.ts DELETED
@@ -1,14 +0,0 @@
1
- #!/usr/bin/env node
2
- interface TemplateMetadata {
3
- name: string;
4
- displayName: string;
5
- description: string;
6
- type: 'template';
7
- preset: 'minimal' | 'full';
8
- }
9
- declare function detectPackageManager(): Promise<'npm' | 'pnpm' | 'yarn'>;
10
- declare function replaceBogusFileIds(targetDir: string): Promise<void>;
11
- declare function createFromTemplate(templatePath: string, targetDir: string, projectName: string, templateName: string): Promise<void>;
12
- declare function getAvailableTemplates(): Promise<TemplateMetadata[]>;
13
- export { getAvailableTemplates, createFromTemplate, detectPackageManager, replaceBogusFileIds };
14
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAsBA,UAAU,gBAAgB;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,UAAU,CAAC;IACjB,MAAM,EAAE,SAAS,GAAG,MAAM,CAAC;CAC5B;AAiBD,iBAAe,oBAAoB,IAAI,OAAO,CAAC,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC,CAYtE;AA0GD,iBAAe,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAsCnE;AAED,iBAAe,kBAAkB,CAAC,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,iBAyBnH;AA4CD,iBAAe,qBAAqB,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC,CA0BlE;AA8PD,OAAO,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,CAAC"}
package/dist/index.js DELETED
@@ -1,466 +0,0 @@
1
- #!/usr/bin/env node
2
- import { program } from 'commander';
3
- import inquirer from 'inquirer';
4
- import chalk from 'chalk';
5
- import ora from 'ora';
6
- import { execa } from 'execa';
7
- import fs from 'fs-extra';
8
- import path from 'path';
9
- import { fileURLToPath } from 'url';
10
- import { generateId } from '@auto-engineer/id';
11
- const __filename = fileURLToPath(import.meta.url);
12
- const __dirname = path.dirname(__filename);
13
- const AUTO_ENGINEER_PACKAGES = [
14
- '@auto-engineer/message-bus',
15
- '@auto-engineer/server-checks',
16
- '@auto-engineer/design-system-importer',
17
- '@auto-engineer/server-generator-apollo-emmett',
18
- '@auto-engineer/flow',
19
- '@auto-engineer/frontend-checks',
20
- '@auto-engineer/frontend-implementer',
21
- '@auto-engineer/information-architect',
22
- '@auto-engineer/frontend-generator-react-graphql',
23
- '@auto-engineer/server-implementer',
24
- ];
25
- const MINIMAL_PACKAGES = ['@auto-engineer/flow', '@auto-engineer/server-generator-apollo-emmett'];
26
- async function detectPackageManager() {
27
- try {
28
- await execa('pnpm', ['--version']);
29
- return 'pnpm';
30
- }
31
- catch {
32
- try {
33
- await execa('yarn', ['--version']);
34
- return 'yarn';
35
- }
36
- catch {
37
- return 'npm';
38
- }
39
- }
40
- }
41
- async function getLatestVersion(packageName) {
42
- try {
43
- const { stdout } = await execa('npm', ['view', packageName, 'version']);
44
- return `^${stdout.trim()}`;
45
- }
46
- catch {
47
- return 'latest';
48
- }
49
- }
50
- async function getLatestVersions(packages) {
51
- const spinner = ora('Fetching latest package versions...').start();
52
- const versions = {};
53
- await Promise.all(packages.map(async (pkg) => {
54
- versions[pkg] = await getLatestVersion(pkg);
55
- }));
56
- // Always include CLI
57
- versions['@auto-engineer/cli'] = await getLatestVersion('@auto-engineer/cli');
58
- spinner.succeed('Package versions fetched');
59
- return versions;
60
- }
61
- async function updatePackageVersions(targetDir, projectName, versions) {
62
- const rootPackageJsonPath = path.join(targetDir, 'package.json');
63
- const clientPackageJsonPath = path.join(targetDir, 'client', 'package.json');
64
- const serverPackageJsonPath = path.join(targetDir, 'server', 'package.json');
65
- // Update root package.json
66
- if (await fs.pathExists(rootPackageJsonPath)) {
67
- const rootPkg = (await fs.readJson(rootPackageJsonPath));
68
- // Update dependencies
69
- if (rootPkg.dependencies !== undefined) {
70
- for (const [pkg, version] of Object.entries(versions)) {
71
- if (rootPkg.dependencies[pkg] !== undefined) {
72
- rootPkg.dependencies[pkg] = version;
73
- }
74
- }
75
- }
76
- // Update devDependencies
77
- if (rootPkg.devDependencies !== undefined) {
78
- for (const [pkg, version] of Object.entries(versions)) {
79
- if (rootPkg.devDependencies[pkg] !== undefined) {
80
- rootPkg.devDependencies[pkg] = version;
81
- }
82
- }
83
- }
84
- rootPkg.name = projectName;
85
- await fs.writeJson(rootPackageJsonPath, rootPkg, { spaces: 2 });
86
- }
87
- // Update client package.json if exists
88
- if (await fs.pathExists(clientPackageJsonPath)) {
89
- const clientPkg = (await fs.readJson(clientPackageJsonPath));
90
- clientPkg.name = `${projectName}-client`;
91
- await fs.writeJson(clientPackageJsonPath, clientPkg, { spaces: 2 });
92
- }
93
- // Update server package.json if exists
94
- if (await fs.pathExists(serverPackageJsonPath)) {
95
- const serverPkg = (await fs.readJson(serverPackageJsonPath));
96
- serverPkg.name = `${projectName}-server`;
97
- await fs.writeJson(serverPackageJsonPath, serverPkg, { spaces: 2 });
98
- }
99
- }
100
- async function installDependencies(targetDir, packageManager) {
101
- const spinner = ora('Installing dependencies...').start();
102
- try {
103
- // Install root dependencies
104
- await execa(packageManager, ['install'], { cwd: targetDir });
105
- // If it's a monorepo (has workspaces), pnpm install at root handles everything
106
- const rootPkg = (await fs.readJson(path.join(targetDir, 'package.json')));
107
- if (rootPkg.workspaces === undefined && rootPkg['pnpm-workspace.yaml'] === undefined) {
108
- // Install client dependencies if exists
109
- const clientDir = path.join(targetDir, 'client');
110
- if (await fs.pathExists(clientDir)) {
111
- await execa(packageManager, ['install'], { cwd: clientDir });
112
- }
113
- // Install server dependencies if exists
114
- const serverDir = path.join(targetDir, 'server');
115
- if (await fs.pathExists(serverDir)) {
116
- await execa(packageManager, ['install'], { cwd: serverDir });
117
- }
118
- }
119
- spinner.succeed('Dependencies installed');
120
- }
121
- catch (error) {
122
- spinner.fail('Failed to install dependencies');
123
- console.error(error);
124
- }
125
- }
126
- // Known bogus fileId patterns used in templates that should be replaced
127
- const BOGUS_FILE_ID_PATTERNS = [
128
- 'a1b2c3d4e', // questionnaires template
129
- 'a2b2c2d2e', // shopping-app template
130
- ];
131
- // FIXME this should be replacing no matter what
132
- async function replaceBogusFileIds(targetDir) {
133
- const autoConfigPath = path.join(targetDir, 'auto.config.ts');
134
- if (!(await fs.pathExists(autoConfigPath))) {
135
- return; // No auto.config.ts file to process
136
- }
137
- try {
138
- const content = await fs.readFile(autoConfigPath, 'utf8');
139
- let modifiedContent = content;
140
- let hasReplacement = false;
141
- // Check if any bogus patterns exist and replace them
142
- for (const bogusPattern of BOGUS_FILE_ID_PATTERNS) {
143
- if (content.includes(bogusPattern)) {
144
- // Generate a new unique ID
145
- const newFileId = generateId();
146
- // Replace the bogus pattern with the new ID
147
- modifiedContent = modifiedContent.replace(new RegExp(`fileId:\\s*['"]${bogusPattern}['"]`, 'g'), `fileId: '${newFileId}'`);
148
- hasReplacement = true;
149
- console.log(chalk.blue(`Replaced fileId ${bogusPattern} with ${newFileId} in auto.config.ts`));
150
- break; // Only replace the first match to avoid multiple replacements
151
- }
152
- }
153
- // Write back only if we made changes
154
- if (hasReplacement) {
155
- await fs.writeFile(autoConfigPath, modifiedContent, 'utf8');
156
- }
157
- }
158
- catch (error) {
159
- console.warn(chalk.yellow(`Warning: Could not process auto.config.ts fileId replacement:`, error));
160
- // Don't throw - this is not a critical failure
161
- }
162
- }
163
- async function createFromTemplate(templatePath, targetDir, projectName, templateName) {
164
- console.log(chalk.cyan(`Using ${templateName} template...`));
165
- try {
166
- // Copy without filter first to ensure it works
167
- await fs.copy(templatePath, targetDir);
168
- }
169
- catch (error) {
170
- console.error(chalk.red('Failed to copy template:'), error);
171
- throw error;
172
- }
173
- // Create pnpm-workspace.yaml if it doesn't exist (needed for monorepo setup)
174
- const workspaceYamlPath = path.join(targetDir, 'pnpm-workspace.yaml');
175
- if (!(await fs.pathExists(workspaceYamlPath))) {
176
- await fs.writeFile(workspaceYamlPath, "packages:\n - '*'\n");
177
- }
178
- // Get latest versions for all packages
179
- const packagesToCheck = [...AUTO_ENGINEER_PACKAGES];
180
- const versions = await getLatestVersions(packagesToCheck);
181
- // Replace bogus fileId values in auto.config.ts files
182
- await replaceBogusFileIds(targetDir);
183
- // Update package versions
184
- await updatePackageVersions(targetDir, projectName, versions);
185
- }
186
- async function prepareTargetDirectory(name, targetDir) {
187
- // Check if directory exists (unless it's current directory)
188
- if (name !== '.' && (await fs.pathExists(targetDir))) {
189
- const { overwrite } = (await inquirer.prompt([
190
- {
191
- type: 'confirm',
192
- name: 'overwrite',
193
- message: `Directory ${name} already exists. Overwrite?`,
194
- default: false,
195
- },
196
- ]));
197
- if (!overwrite) {
198
- console.log(chalk.yellow('Operation cancelled'));
199
- return false;
200
- }
201
- await fs.remove(targetDir);
202
- }
203
- // Create target directory
204
- try {
205
- await fs.ensureDir(targetDir);
206
- return true;
207
- }
208
- catch (error) {
209
- console.error(chalk.red('Failed to create directory:'), error);
210
- throw error;
211
- }
212
- }
213
- function printSuccessMessage(name, packageManager, installDeps) {
214
- console.log(chalk.green('\n✓ Project created successfully!\n'));
215
- console.log('Next steps:');
216
- if (name !== '.') {
217
- console.log(chalk.cyan(` cd ${name}`));
218
- }
219
- if (!installDeps) {
220
- console.log(chalk.cyan(` ${packageManager} install`));
221
- }
222
- console.log(chalk.cyan(` auto (you may need to ${packageManager} install -g @auto-engineer/cli@latest)\n`));
223
- }
224
- async function getAvailableTemplates() {
225
- const templatesDir = path.join(__dirname, '..', 'templates');
226
- const templates = [];
227
- try {
228
- const entries = await fs.readdir(templatesDir, { withFileTypes: true });
229
- for (const entry of entries) {
230
- if (entry.isDirectory()) {
231
- const templateJsonPath = path.join(templatesDir, entry.name, 'template.json');
232
- if (await fs.pathExists(templateJsonPath)) {
233
- try {
234
- const metadata = (await fs.readJson(templateJsonPath));
235
- templates.push(metadata);
236
- }
237
- catch (error) {
238
- console.warn(chalk.yellow(`Failed to read template.json for ${entry.name}:`, error));
239
- }
240
- }
241
- }
242
- }
243
- }
244
- catch (error) {
245
- console.warn(chalk.yellow('Failed to read templates directory:', error));
246
- }
247
- return templates;
248
- }
249
- async function handleTemplateCreation(template, preset, targetDir, projectName, packageManager) {
250
- if (template !== undefined) {
251
- const templatePath = path.join(__dirname, '..', 'templates', template);
252
- if (await fs.pathExists(templatePath)) {
253
- await createFromTemplate(templatePath, targetDir, projectName, template);
254
- }
255
- else {
256
- console.log(chalk.yellow(`Template not found at ${templatePath}, creating minimal project...`));
257
- await createMinimalProject(targetDir, projectName, preset || 'minimal', packageManager);
258
- }
259
- }
260
- else {
261
- // Create project based on preset
262
- await createMinimalProject(targetDir, projectName, preset || 'minimal', packageManager);
263
- }
264
- }
265
- async function createProject(options) {
266
- const { name, template, preset, packageManager, installDeps } = options;
267
- const targetDir = path.resolve(process.cwd(), name === '.' ? process.cwd() : name);
268
- const projectName = name === '.' ? path.basename(process.cwd()) : name;
269
- // Prepare directory
270
- const shouldContinue = await prepareTargetDirectory(name, targetDir);
271
- if (!shouldContinue) {
272
- process.exit(0);
273
- }
274
- console.log(chalk.blue(`\nCreating Auto Engineer project in ${chalk.bold(targetDir)}\n`));
275
- // Handle template or preset creation
276
- await handleTemplateCreation(template, preset, targetDir, projectName, packageManager);
277
- // Install dependencies if requested
278
- if (installDeps) {
279
- await installDependencies(targetDir, packageManager);
280
- }
281
- // Success message
282
- printSuccessMessage(name, packageManager, installDeps);
283
- }
284
- async function createMinimalProject(targetDir, projectName, preset, packageManager) {
285
- // Determine which packages to include
286
- const packagesToInclude = preset === 'full' ? AUTO_ENGINEER_PACKAGES : MINIMAL_PACKAGES;
287
- // Get latest versions
288
- const versions = await getLatestVersions(packagesToInclude);
289
- // Generate package.json
290
- const packageJson = {
291
- name: projectName,
292
- version: '0.1.0',
293
- private: true,
294
- scripts: {
295
- dev: 'auto dev',
296
- build: 'auto build',
297
- test: 'auto test',
298
- },
299
- devDependencies: versions,
300
- };
301
- // Write package.json
302
- await fs.writeJson(path.join(targetDir, 'package.json'), packageJson, { spaces: 2 });
303
- // Create auto.config.ts
304
- const plugins = Object.keys(versions)
305
- .filter((pkg) => pkg !== '@auto-engineer/cli')
306
- .map((pkg) => ` '${pkg}',`)
307
- .join('\n');
308
- const autoConfig = `export default {
309
- plugins: [
310
- ${plugins}
311
- ],
312
- };
313
- `;
314
- await fs.writeFile(path.join(targetDir, 'auto.config.ts'), autoConfig);
315
- // Create basic directory structure
316
- await fs.ensureDir(path.join(targetDir, 'flows'));
317
- await fs.ensureDir(path.join(targetDir, '.context'));
318
- // Create .gitignore
319
- const gitignore = `node_modules
320
- dist
321
- .tmp
322
- .env.local
323
- *.log
324
- .next
325
- .turbo
326
- `;
327
- await fs.writeFile(path.join(targetDir, '.gitignore'), gitignore);
328
- // Create README.md
329
- const readme = `# ${projectName}
330
-
331
- An Auto Engineer project.
332
-
333
- ## Getting Started
334
-
335
- \`\`\`bash
336
- # Install dependencies
337
- ${packageManager} install
338
-
339
- # Install Auto and start it
340
- ${packageManager} install -g @auto-engineer/cli@latest
341
- auto
342
-
343
- # Start the client and server in development mode
344
- ${packageManager} run start
345
- \`\`\`
346
-
347
- ## Available Commands
348
-
349
- - \`auto generate:server\` - Generate server from flows
350
- - \`auto generate:client\` - Generate client application
351
- - \`auto check:frontend\` - Run frontend checks
352
- - \`auto check:server\` - Run server checks
353
-
354
- ## Learn More
355
-
356
- Visit [Auto Engineer Documentation](https://github.com/solguru310/auto-engineer) to learn more.
357
- `;
358
- await fs.writeFile(path.join(targetDir, 'README.md'), readme);
359
- }
360
- // TODO also make this install the global cli if not present
361
- async function main() {
362
- // Get available templates for help text
363
- const availableTemplates = await getAvailableTemplates();
364
- const templateNames = availableTemplates.map((t) => t.name).join(', ');
365
- program
366
- .name('create-auto-app')
367
- .description('Create a new Auto Engineer application')
368
- .version('0.1.0')
369
- .argument('[project-name]', 'Name of the project (use "." for current directory)')
370
- .option('-t, --template <template>', `Project template (${templateNames})`)
371
- .option('-p, --preset <preset>', 'Package preset (minimal, full)', 'full')
372
- .option('--no-install', 'Skip dependency installation')
373
- .option('--use-npm', 'Use npm as package manager')
374
- .option('--use-yarn', 'Use yarn as package manager')
375
- .option('--use-pnpm', 'Use pnpm as package manager')
376
- .parse(process.argv);
377
- const options = program.opts();
378
- let projectName = program.args[0];
379
- // Interactive mode if no project name provided
380
- if (!projectName) {
381
- // Build choices dynamically from available templates
382
- const templateChoices = availableTemplates.map((template) => ({
383
- name: `${template.displayName} - ${template.description}`,
384
- value: template.name,
385
- }));
386
- const setupChoices = [
387
- ...templateChoices,
388
- { name: 'Create minimal project (just essentials)', value: 'minimal' },
389
- { name: 'Create full project (all packages)', value: 'full' },
390
- ];
391
- const answers = (await inquirer.prompt([
392
- {
393
- type: 'input',
394
- name: 'name',
395
- message: 'Project name:',
396
- default: 'my-auto-app',
397
- validate: (input) => {
398
- if (input === '.')
399
- return true;
400
- if (typeof input !== 'string' || !input.trim())
401
- return 'Project name is required';
402
- if (!/^[a-z0-9-_]+$/i.test(input)) {
403
- return 'Project name can only contain letters, numbers, hyphens, and underscores';
404
- }
405
- return true;
406
- },
407
- },
408
- {
409
- type: 'list',
410
- name: 'setupType',
411
- message: 'How would you like to set up your project?',
412
- choices: setupChoices,
413
- default: availableTemplates.length > 0 ? availableTemplates[0].name : 'minimal',
414
- },
415
- {
416
- type: 'confirm',
417
- name: 'installDeps',
418
- message: 'Install dependencies?',
419
- default: true,
420
- },
421
- ]));
422
- projectName = answers.name;
423
- const selectedTemplate = availableTemplates.find((t) => t.name === answers.setupType);
424
- if (selectedTemplate) {
425
- options.template = selectedTemplate.name;
426
- options.preset = undefined;
427
- }
428
- else {
429
- options.template = undefined;
430
- options.preset = answers.setupType;
431
- }
432
- options.install = answers.installDeps;
433
- }
434
- // Detect package manager
435
- let packageManager;
436
- if (options.useNpm === true) {
437
- packageManager = 'npm';
438
- }
439
- else if (options.useYarn === true) {
440
- packageManager = 'yarn';
441
- }
442
- else if (options.usePnpm === true) {
443
- packageManager = 'pnpm';
444
- }
445
- else {
446
- packageManager = await detectPackageManager();
447
- }
448
- const projectOptions = {
449
- name: projectName,
450
- template: typeof options.template === 'string' ? options.template : undefined,
451
- preset: options.preset,
452
- packageManager,
453
- installDeps: options.install !== false,
454
- };
455
- await createProject(projectOptions);
456
- }
457
- // Run main function when this module is executed directly (not during testing)
458
- if (process.env.NODE_ENV !== 'test' && typeof process.env.VITEST === 'undefined') {
459
- main().catch((error) => {
460
- console.error(chalk.red('Error:'), error);
461
- process.exit(1);
462
- });
463
- }
464
- // Export functions for testing
465
- export { getAvailableTemplates, createFromTemplate, detectPackageManager, replaceBogusFileIds };
466
- //# sourceMappingURL=index.js.map
package/dist/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
File without changes