create-velox-app 0.3.4 → 0.3.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1,41 +1,82 @@
1
1
  /**
2
2
  * create-velox-app - Project scaffolding tool
3
3
  *
4
- * CLI tool for bootstrapping new VeloxTS applications with a default template.
4
+ * CLI tool for bootstrapping new VeloxTS applications with multiple templates.
5
5
  * Provides an interactive setup experience similar to create-next-app.
6
6
  */
7
- import { execSync } from 'node:child_process';
7
+ import { exec } from 'node:child_process';
8
8
  import fs from 'node:fs/promises';
9
+ import { createRequire } from 'node:module';
9
10
  import path from 'node:path';
11
+ import { promisify } from 'node:util';
12
+ const execAsync = promisify(exec);
10
13
  import * as p from '@clack/prompts';
14
+ import ora from 'ora';
11
15
  import pc from 'picocolors';
12
- import { generateClaudeMd, generateConfigApp, generateConfigIndex, generateDatabaseIndex, generateEnvExample, generateGitignore, generateHealthProcedures, generateIndexHtml, generateIndexTs, generatePackageJson, generatePrismaConfig, generatePrismaSchema, generateProceduresIndex, generateReadme, generateSchemasIndex, generateTsConfig, generateTsupConfig, generateUserProcedures, generateUserSchema, } from './templates.js';
16
+ import { generateTemplateFiles, getAvailableDatabases, getAvailableTemplates, getTemplateDirectories, isDatabaseAvailable, } from './templates/index.js';
13
17
  // ============================================================================
14
18
  // Constants
15
19
  // ============================================================================
16
- import { createRequire } from 'node:module';
17
20
  // Read version from package.json dynamically
18
21
  const require = createRequire(import.meta.url);
19
22
  const packageJson = require('../package.json');
20
23
  /** Create-velox-app package version */
21
24
  export const CREATE_VERSION = packageJson.version ?? '0.0.0-unknown';
25
+ /** Timeout for exec commands (5 minutes) */
26
+ const EXEC_TIMEOUT_MS = 5 * 60 * 1000;
27
+ /** Reserved project names that could cause issues */
28
+ const RESERVED_NAMES = new Set([
29
+ 'node_modules',
30
+ 'test',
31
+ 'tests',
32
+ 'src',
33
+ 'dist',
34
+ 'build',
35
+ 'public',
36
+ 'lib',
37
+ 'package',
38
+ 'npm',
39
+ 'pnpm',
40
+ 'yarn',
41
+ ]);
42
+ // ============================================================================
43
+ // Security Utilities
44
+ // ============================================================================
45
+ /**
46
+ * Check if a file path is safe (no path traversal attacks)
47
+ */
48
+ function isPathSafe(baseDir, targetPath) {
49
+ const resolved = path.resolve(baseDir, targetPath);
50
+ const normalizedBase = path.normalize(baseDir);
51
+ return resolved.startsWith(normalizedBase);
52
+ }
22
53
  // ============================================================================
23
54
  // Main Scaffolder
24
55
  // ============================================================================
25
56
  /**
26
57
  * Main scaffolding function that creates a new VeloxTS project
27
58
  */
28
- export async function createVeloxApp(initialProjectName) {
59
+ export async function createVeloxApp(initialProjectName, initialTemplate) {
29
60
  // Print welcome banner
30
61
  console.log('');
31
62
  p.intro(pc.cyan(pc.bold('create-velox-app')));
63
+ let projectDirectory;
64
+ let projectCreated = false;
32
65
  try {
33
66
  // Collect project configuration
34
- const config = await promptProjectConfig(initialProjectName);
67
+ const config = await promptProjectConfig(initialProjectName, initialTemplate);
68
+ projectDirectory = config.directory;
69
+ // Show configuration summary
70
+ p.log.info(pc.dim('Configuration:'));
71
+ p.log.message(` ${pc.cyan('Template:')} ${config.template}`);
72
+ p.log.message(` ${pc.cyan('Database:')} ${config.database}`);
73
+ p.log.message(` ${pc.cyan('Package manager:')} ${config.packageManager}`);
74
+ console.log('');
35
75
  // Validate project directory doesn't exist
36
76
  await validateProjectDirectory(config.directory);
37
77
  // Create project structure
38
78
  await createProjectStructure(config);
79
+ projectCreated = true;
39
80
  // Install dependencies
40
81
  await installDependencies(config);
41
82
  // Generate Prisma client
@@ -49,13 +90,30 @@ export async function createVeloxApp(initialProjectName) {
49
90
  catch (error) {
50
91
  // Handle cancellation
51
92
  if (error === Symbol.for('clack.cancel') || error.message === 'canceled') {
93
+ // Clean up partial project on cancellation
94
+ if (projectCreated && projectDirectory) {
95
+ try {
96
+ await fs.rm(projectDirectory, { recursive: true, force: true });
97
+ }
98
+ catch {
99
+ // Ignore cleanup errors on cancellation
100
+ }
101
+ }
52
102
  p.cancel('Setup cancelled');
53
103
  process.exit(0);
54
104
  }
55
- // Handle other errors
105
+ // Handle other errors - provide recovery instructions
56
106
  p.cancel('Setup failed');
57
107
  if (error instanceof Error) {
58
108
  console.error(pc.red(`\nError: ${error.message}`));
109
+ // If project was created but install failed, provide recovery instructions
110
+ if (projectCreated && projectDirectory) {
111
+ const projectName = path.basename(projectDirectory);
112
+ console.error(pc.yellow('\nTo recover your project:'));
113
+ console.error(pc.dim(` cd ${projectName}`));
114
+ console.error(pc.dim(' npm install'));
115
+ console.error(pc.dim(' npx prisma generate'));
116
+ }
59
117
  }
60
118
  process.exit(1);
61
119
  }
@@ -66,7 +124,7 @@ export async function createVeloxApp(initialProjectName) {
66
124
  /**
67
125
  * Prompt user for project configuration
68
126
  */
69
- async function promptProjectConfig(initialName) {
127
+ async function promptProjectConfig(initialName, initialTemplate) {
70
128
  // Project name
71
129
  const name = initialName
72
130
  ? initialName
@@ -79,22 +137,87 @@ async function promptProjectConfig(initialName) {
79
137
  if (!/^[a-z0-9-]+$/.test(value)) {
80
138
  return 'Use lowercase letters, numbers, and hyphens only';
81
139
  }
140
+ if (RESERVED_NAMES.has(value)) {
141
+ return `"${value}" is a reserved name. Please choose another.`;
142
+ }
82
143
  return undefined;
83
144
  },
84
145
  });
85
146
  if (p.isCancel(name)) {
86
147
  throw new Error('canceled');
87
148
  }
88
- // Validate project name format
89
- if (typeof name === 'string' && !/^[a-z0-9-]+$/.test(name)) {
90
- throw new Error('Project name must use lowercase letters, numbers, and hyphens only');
149
+ // Validate project name format (for CLI-provided names)
150
+ if (typeof name === 'string') {
151
+ if (!/^[a-z0-9-]+$/.test(name)) {
152
+ throw new Error('Project name must use lowercase letters, numbers, and hyphens only');
153
+ }
154
+ if (RESERVED_NAMES.has(name)) {
155
+ throw new Error(`"${name}" is a reserved name. Please choose another.`);
156
+ }
157
+ }
158
+ // Template selection (if not provided via CLI flag)
159
+ let template = initialTemplate;
160
+ if (!template) {
161
+ const templates = getAvailableTemplates();
162
+ const selectedTemplate = await p.select({
163
+ message: 'Choose a template',
164
+ options: templates.map((t) => ({
165
+ value: t.type,
166
+ label: t.label,
167
+ hint: t.hint,
168
+ })),
169
+ });
170
+ if (p.isCancel(selectedTemplate)) {
171
+ throw new Error('canceled');
172
+ }
173
+ template = selectedTemplate;
174
+ }
175
+ // Database selection (only in interactive mode - default to SQLite for CLI)
176
+ let database = 'sqlite';
177
+ // Only show database prompt in interactive mode (when template wasn't provided via CLI)
178
+ if (!initialTemplate) {
179
+ const databases = getAvailableDatabases();
180
+ const selectedDatabase = await p.select({
181
+ message: 'Choose a database',
182
+ options: databases.map((db) => ({
183
+ value: db.type,
184
+ label: db.disabled ? pc.dim(`${db.label} (coming soon)`) : db.label,
185
+ hint: db.hint,
186
+ disabled: db.disabled,
187
+ })),
188
+ });
189
+ if (p.isCancel(selectedDatabase)) {
190
+ throw new Error('canceled');
191
+ }
192
+ database = selectedDatabase;
193
+ // Validate database is available
194
+ if (!isDatabaseAvailable(database)) {
195
+ throw new Error(`Database "${database}" is not yet available. Please choose SQLite for now.`);
196
+ }
197
+ }
198
+ // Package manager selection (only in interactive mode)
199
+ let packageManager = detectPackageManager();
200
+ if (!initialTemplate) {
201
+ const selectedPackageManager = await p.select({
202
+ message: 'Choose a package manager',
203
+ initialValue: packageManager,
204
+ options: [
205
+ { value: 'npm', label: 'npm', hint: 'Default Node.js package manager' },
206
+ { value: 'pnpm', label: 'pnpm', hint: 'Fast, disk space efficient' },
207
+ { value: 'yarn', label: 'yarn', hint: 'Classic yarn v1' },
208
+ ],
209
+ });
210
+ if (p.isCancel(selectedPackageManager)) {
211
+ throw new Error('canceled');
212
+ }
213
+ packageManager = selectedPackageManager;
91
214
  }
92
- // Detect package manager
93
- const packageManager = detectPackageManager();
94
215
  return {
95
216
  name: name,
96
217
  directory: path.resolve(process.cwd(), name),
97
218
  packageManager,
219
+ template,
220
+ database,
98
221
  };
99
222
  }
100
223
  /**
@@ -130,55 +253,45 @@ async function validateProjectDirectory(directory) {
130
253
  * Create the complete project structure with all files
131
254
  */
132
255
  async function createProjectStructure(config) {
133
- const spinner = p.spinner();
134
- spinner.start('Creating project files');
256
+ const spinner = ora({
257
+ text: `Creating project files (template: ${config.template}, database: ${config.database})`,
258
+ color: 'cyan',
259
+ }).start();
135
260
  try {
136
261
  // Create directory structure
137
- await fs.mkdir(config.directory, { recursive: true });
138
- await fs.mkdir(path.join(config.directory, 'src'), { recursive: true });
139
- await fs.mkdir(path.join(config.directory, 'src', 'config'), { recursive: true });
140
- await fs.mkdir(path.join(config.directory, 'src', 'database'), { recursive: true });
141
- await fs.mkdir(path.join(config.directory, 'src', 'procedures'), { recursive: true });
142
- await fs.mkdir(path.join(config.directory, 'src', 'schemas'), { recursive: true });
143
- await fs.mkdir(path.join(config.directory, 'prisma'), { recursive: true });
144
- await fs.mkdir(path.join(config.directory, 'public'), { recursive: true });
145
- // Template data
146
- const template = {
262
+ const directories = getTemplateDirectories(config.template);
263
+ for (const dir of directories) {
264
+ // Validate path safety
265
+ if (!isPathSafe(config.directory, dir)) {
266
+ throw new Error(`Invalid directory path detected: ${dir}`);
267
+ }
268
+ await fs.mkdir(path.join(config.directory, dir), { recursive: true });
269
+ }
270
+ // Generate template files
271
+ const templateConfig = {
147
272
  projectName: config.name,
148
273
  packageManager: config.packageManager,
274
+ template: config.template,
275
+ database: config.database,
149
276
  };
150
- // Write root files
151
- await fs.writeFile(path.join(config.directory, 'package.json'), generatePackageJson(template));
152
- await fs.writeFile(path.join(config.directory, 'tsconfig.json'), generateTsConfig());
153
- await fs.writeFile(path.join(config.directory, 'tsup.config.ts'), generateTsupConfig());
154
- await fs.writeFile(path.join(config.directory, '.env.example'), generateEnvExample());
155
- await fs.writeFile(path.join(config.directory, '.env'), generateEnvExample());
156
- await fs.writeFile(path.join(config.directory, '.gitignore'), generateGitignore());
157
- await fs.writeFile(path.join(config.directory, 'README.md'), generateReadme(config.name));
158
- await fs.writeFile(path.join(config.directory, 'CLAUDE.md'), generateClaudeMd(config.name));
159
- // Write Prisma files
160
- await fs.writeFile(path.join(config.directory, 'prisma', 'schema.prisma'), generatePrismaSchema());
161
- await fs.writeFile(path.join(config.directory, 'prisma.config.ts'), generatePrismaConfig());
162
- // Write source files
163
- await fs.writeFile(path.join(config.directory, 'src', 'index.ts'), generateIndexTs());
164
- // Write config files
165
- await fs.writeFile(path.join(config.directory, 'src', 'config', 'index.ts'), generateConfigIndex());
166
- await fs.writeFile(path.join(config.directory, 'src', 'config', 'app.ts'), generateConfigApp());
167
- // Write database files
168
- await fs.writeFile(path.join(config.directory, 'src', 'database', 'index.ts'), generateDatabaseIndex());
169
- // Write procedure files
170
- await fs.writeFile(path.join(config.directory, 'src', 'procedures', 'index.ts'), generateProceduresIndex());
171
- await fs.writeFile(path.join(config.directory, 'src', 'procedures', 'health.ts'), generateHealthProcedures());
172
- await fs.writeFile(path.join(config.directory, 'src', 'procedures', 'users.ts'), generateUserProcedures());
173
- // Write schema files
174
- await fs.writeFile(path.join(config.directory, 'src', 'schemas', 'index.ts'), generateSchemasIndex());
175
- await fs.writeFile(path.join(config.directory, 'src', 'schemas', 'user.ts'), generateUserSchema());
176
- // Write public files
177
- await fs.writeFile(path.join(config.directory, 'public', 'index.html'), generateIndexHtml());
178
- spinner.stop('Project files created');
277
+ const files = generateTemplateFiles(templateConfig);
278
+ // Write all files
279
+ for (const file of files) {
280
+ // Validate path safety to prevent path traversal attacks
281
+ if (!isPathSafe(config.directory, file.path)) {
282
+ throw new Error(`Invalid file path detected: ${file.path}`);
283
+ }
284
+ const filePath = path.join(config.directory, file.path);
285
+ const fileDir = path.dirname(filePath);
286
+ // Ensure directory exists
287
+ await fs.mkdir(fileDir, { recursive: true });
288
+ // Write file
289
+ await fs.writeFile(filePath, file.content);
290
+ }
291
+ spinner.succeed(pc.green(`Project files created ${pc.dim(`(${files.length} files)`)}`));
179
292
  }
180
293
  catch (error) {
181
- spinner.stop('Failed to create project files');
294
+ spinner.fail(pc.red('Failed to create project files'));
182
295
  throw error;
183
296
  }
184
297
  }
@@ -193,18 +306,24 @@ async function installDependencies(config) {
193
306
  if (process.env.SKIP_INSTALL === 'true') {
194
307
  return;
195
308
  }
196
- const spinner = p.spinner();
197
- spinner.start('Installing dependencies');
309
+ const spinner = ora({
310
+ text: `Installing dependencies with ${config.packageManager}`,
311
+ color: 'cyan',
312
+ }).start();
198
313
  try {
199
314
  const installCommand = getInstallCommand(config.packageManager);
200
- execSync(installCommand, {
315
+ await execAsync(installCommand, {
201
316
  cwd: config.directory,
202
- stdio: 'ignore',
317
+ timeout: EXEC_TIMEOUT_MS,
203
318
  });
204
- spinner.stop('Dependencies installed');
319
+ spinner.succeed(pc.green('Dependencies installed'));
205
320
  }
206
321
  catch (error) {
207
- spinner.stop('Failed to install dependencies');
322
+ spinner.fail(pc.red('Failed to install dependencies'));
323
+ // Enhance error message for timeout
324
+ if (error instanceof Error && error.message.includes('ETIMEDOUT')) {
325
+ throw new Error('Dependency installation timed out. Check your network connection.');
326
+ }
208
327
  throw error;
209
328
  }
210
329
  }
@@ -232,17 +351,19 @@ async function generatePrismaClient(config) {
232
351
  if (process.env.SKIP_INSTALL === 'true') {
233
352
  return;
234
353
  }
235
- const spinner = p.spinner();
236
- spinner.start('Generating Prisma client');
354
+ const spinner = ora({
355
+ text: 'Generating Prisma client',
356
+ color: 'cyan',
357
+ }).start();
237
358
  try {
238
- execSync('npx prisma generate', {
359
+ await execAsync('npx prisma generate', {
239
360
  cwd: config.directory,
240
- stdio: 'ignore',
361
+ timeout: EXEC_TIMEOUT_MS,
241
362
  });
242
- spinner.stop('Prisma client generated');
363
+ spinner.succeed(pc.green('Prisma client generated'));
243
364
  }
244
365
  catch (error) {
245
- spinner.stop('Failed to generate Prisma client');
366
+ spinner.fail(pc.red('Failed to generate Prisma client'));
246
367
  throw error;
247
368
  }
248
369
  }
@@ -253,26 +374,35 @@ async function generatePrismaClient(config) {
253
374
  * Initialize git repository
254
375
  */
255
376
  async function initializeGit(config) {
256
- const spinner = p.spinner();
257
- spinner.start('Initializing git repository');
377
+ const spinner = ora({
378
+ text: 'Initializing git repository',
379
+ color: 'cyan',
380
+ }).start();
381
+ const gitTimeout = 30000; // 30 seconds for git operations
258
382
  try {
259
- execSync('git init', {
383
+ await execAsync('git init', {
260
384
  cwd: config.directory,
261
- stdio: 'ignore',
385
+ timeout: gitTimeout,
262
386
  });
263
- execSync('git add .', {
387
+ await execAsync('git add .', {
264
388
  cwd: config.directory,
265
- stdio: 'ignore',
389
+ timeout: gitTimeout,
266
390
  });
267
- execSync('git commit -m "Initial commit from create-velox-app"', {
391
+ await execAsync('git commit -m "Initial commit from create-velox-app"', {
268
392
  cwd: config.directory,
269
- stdio: 'ignore',
393
+ timeout: gitTimeout,
270
394
  });
271
- spinner.stop('Git repository initialized');
395
+ spinner.succeed(pc.green('Git repository initialized'));
272
396
  }
273
- catch (_error) {
274
- // Git init is optional - don't fail if it doesn't work
275
- spinner.stop('Skipped git initialization');
397
+ catch (error) {
398
+ // Git init is optional - provide context on why it was skipped
399
+ const errorMessage = error instanceof Error ? error.message.toLowerCase() : '';
400
+ if (errorMessage.includes('command not found') || errorMessage.includes('not recognized')) {
401
+ spinner.warn(pc.yellow('Skipped git initialization (git not installed)'));
402
+ }
403
+ else {
404
+ spinner.warn(pc.yellow('Skipped git initialization'));
405
+ }
276
406
  }
277
407
  }
278
408
  // ============================================================================
@@ -283,10 +413,11 @@ async function initializeGit(config) {
283
413
  */
284
414
  function printSuccessMessage(config) {
285
415
  const cdCommand = `cd ${config.name}`;
286
- const devCommand = `${config.packageManager} dev`;
287
- const dbCommand = `${config.packageManager} db:push`;
416
+ const runCmd = config.packageManager === 'npm' ? 'npm run' : config.packageManager;
417
+ const devCommand = `${runCmd} dev`;
418
+ const dbCommand = `${runCmd} db:push`;
288
419
  console.log('');
289
- console.log(pc.green(` Success! Created ${pc.bold(config.name)}`));
420
+ console.log(pc.green(` Success! Created ${pc.bold(config.name)} with ${config.template} template`));
290
421
  console.log('');
291
422
  console.log(' Next steps:');
292
423
  console.log('');
@@ -299,6 +430,11 @@ function printSuccessMessage(config) {
299
430
  console.log(` ${pc.cyan(devCommand)}${pc.dim(' # Start dev server')}`);
300
431
  console.log('');
301
432
  console.log(` Your app will be available at ${pc.cyan('http://localhost:3210')}`);
433
+ // Auth template specific message
434
+ if (config.template === 'auth') {
435
+ console.log('');
436
+ console.log(pc.yellow(' Note: Set JWT_SECRET and JWT_REFRESH_SECRET in .env for production'));
437
+ }
302
438
  console.log('');
303
439
  }
304
440
  //# sourceMappingURL=index.js.map
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
+ /**
2
+ * Auth Template
3
+ *
4
+ * Full authentication template with JWT auth, guards, rate limiting,
5
+ * token rotation, and secure password hashing.
6
+ */
7
+ import type { TemplateConfig, TemplateFile } from './types.js';
8
+ export declare function generateAuthTemplate(config: TemplateConfig): TemplateFile[];
9
+ //# sourceMappingURL=auth.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/templates/auth.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAonC/D,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,cAAc,GAAG,YAAY,EAAE,CA6B3E"}