create-velox-app 0.3.3 → 0.3.5
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/cli.js +126 -13
- package/dist/cli.js.map +1 -1
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +135 -53
- package/dist/index.js.map +1 -1
- package/dist/templates/auth.d.ts +9 -0
- package/dist/templates/auth.d.ts.map +1 -0
- package/dist/templates/auth.js +1143 -0
- package/dist/templates/auth.js.map +1 -0
- package/dist/templates/default.d.ts +9 -0
- package/dist/templates/default.d.ts.map +1 -0
- package/dist/{templates.js → templates/default.js} +58 -306
- package/dist/templates/default.js.map +1 -0
- package/dist/templates/index.d.ts +20 -0
- package/dist/templates/index.d.ts.map +1 -0
- package/dist/templates/index.js +45 -0
- package/dist/templates/index.js.map +1 -0
- package/dist/templates/shared.d.ts +22 -0
- package/dist/templates/shared.d.ts.map +1 -0
- package/dist/templates/shared.js +301 -0
- package/dist/templates/shared.js.map +1 -0
- package/dist/templates/types.d.ts +61 -0
- package/dist/templates/types.d.ts.map +1 -0
- package/dist/templates/types.js +38 -0
- package/dist/templates/types.js.map +1 -0
- package/package.json +1 -1
- package/dist/templates.d.ts +0 -35
- package/dist/templates.d.ts.map +0 -1
- package/dist/templates.js.map +0 -1
package/dist/cli.js
CHANGED
|
@@ -6,6 +6,16 @@
|
|
|
6
6
|
* Handles command-line arguments and initiates the scaffolding process.
|
|
7
7
|
*/
|
|
8
8
|
import { CREATE_VERSION, createVeloxApp } from './index.js';
|
|
9
|
+
import { getAvailableTemplates, isValidTemplate, TEMPLATE_METADATA } from './templates/index.js';
|
|
10
|
+
// ============================================================================
|
|
11
|
+
// Constants
|
|
12
|
+
// ============================================================================
|
|
13
|
+
/** Get list of available template names for error messages */
|
|
14
|
+
function getTemplateNames() {
|
|
15
|
+
return getAvailableTemplates()
|
|
16
|
+
.map((t) => t.type)
|
|
17
|
+
.join(', ');
|
|
18
|
+
}
|
|
9
19
|
// ============================================================================
|
|
10
20
|
// Help & Version
|
|
11
21
|
// ============================================================================
|
|
@@ -13,17 +23,105 @@ const HELP_TEXT = `
|
|
|
13
23
|
create-velox-app v${CREATE_VERSION}
|
|
14
24
|
|
|
15
25
|
Usage:
|
|
16
|
-
npx create-velox-app [project-name]
|
|
17
|
-
pnpm create velox-app [project-name]
|
|
26
|
+
npx create-velox-app [project-name] [options]
|
|
27
|
+
pnpm create velox-app [project-name] [options]
|
|
18
28
|
|
|
19
29
|
Options:
|
|
20
|
-
-
|
|
21
|
-
|
|
30
|
+
-t, --template <name> Template to use (default: "default")
|
|
31
|
+
Available: ${getTemplateNames()}
|
|
32
|
+
-h, --help Show this help message
|
|
33
|
+
-v, --version Show version number
|
|
34
|
+
|
|
35
|
+
Templates:
|
|
36
|
+
default ${TEMPLATE_METADATA.default.description}
|
|
37
|
+
auth ${TEMPLATE_METADATA.auth.description}
|
|
22
38
|
|
|
23
39
|
Examples:
|
|
24
|
-
npx create-velox-app my-app
|
|
25
|
-
npx create-velox-app
|
|
40
|
+
npx create-velox-app my-app # Interactive mode
|
|
41
|
+
npx create-velox-app my-app --template=auth # Auth template
|
|
42
|
+
npx create-velox-app # Prompt for name
|
|
26
43
|
`;
|
|
44
|
+
function parseArgs(args) {
|
|
45
|
+
const result = {
|
|
46
|
+
help: false,
|
|
47
|
+
version: false,
|
|
48
|
+
};
|
|
49
|
+
const unexpectedArgs = [];
|
|
50
|
+
let templateFlagSeen = false;
|
|
51
|
+
for (let i = 0; i < args.length; i++) {
|
|
52
|
+
const arg = args[i];
|
|
53
|
+
// Handle --help / -h
|
|
54
|
+
if (arg === '-h' || arg === '--help') {
|
|
55
|
+
result.help = true;
|
|
56
|
+
continue;
|
|
57
|
+
}
|
|
58
|
+
// Handle --version / -v
|
|
59
|
+
if (arg === '-v' || arg === '--version') {
|
|
60
|
+
result.version = true;
|
|
61
|
+
continue;
|
|
62
|
+
}
|
|
63
|
+
// Handle --template=<value> or -t=<value>
|
|
64
|
+
if (arg.startsWith('--template=') || arg.startsWith('-t=')) {
|
|
65
|
+
// Check for duplicate flag
|
|
66
|
+
if (templateFlagSeen) {
|
|
67
|
+
console.error('Error: --template flag specified multiple times');
|
|
68
|
+
process.exit(1);
|
|
69
|
+
}
|
|
70
|
+
templateFlagSeen = true;
|
|
71
|
+
const value = arg.split('=')[1];
|
|
72
|
+
if (!value) {
|
|
73
|
+
console.error(`Error: --template requires a value. Available: ${getTemplateNames()}`);
|
|
74
|
+
process.exit(1);
|
|
75
|
+
}
|
|
76
|
+
if (isValidTemplate(value)) {
|
|
77
|
+
result.template = value;
|
|
78
|
+
}
|
|
79
|
+
else {
|
|
80
|
+
console.error(`Invalid template: ${value}. Available: ${getTemplateNames()}`);
|
|
81
|
+
process.exit(1);
|
|
82
|
+
}
|
|
83
|
+
continue;
|
|
84
|
+
}
|
|
85
|
+
// Handle --template <value> or -t <value>
|
|
86
|
+
if (arg === '--template' || arg === '-t') {
|
|
87
|
+
// Check for duplicate flag
|
|
88
|
+
if (templateFlagSeen) {
|
|
89
|
+
console.error('Error: --template flag specified multiple times');
|
|
90
|
+
process.exit(1);
|
|
91
|
+
}
|
|
92
|
+
templateFlagSeen = true;
|
|
93
|
+
const value = args[i + 1];
|
|
94
|
+
if (!value || value.startsWith('-')) {
|
|
95
|
+
console.error(`Error: --template requires a value. Available: ${getTemplateNames()}`);
|
|
96
|
+
process.exit(1);
|
|
97
|
+
}
|
|
98
|
+
if (isValidTemplate(value)) {
|
|
99
|
+
result.template = value;
|
|
100
|
+
i++; // Skip next arg
|
|
101
|
+
}
|
|
102
|
+
else {
|
|
103
|
+
console.error(`Invalid template: ${value}. Available: ${getTemplateNames()}`);
|
|
104
|
+
process.exit(1);
|
|
105
|
+
}
|
|
106
|
+
continue;
|
|
107
|
+
}
|
|
108
|
+
// Non-flag argument
|
|
109
|
+
if (!arg.startsWith('-')) {
|
|
110
|
+
if (!result.projectName) {
|
|
111
|
+
result.projectName = arg;
|
|
112
|
+
}
|
|
113
|
+
else {
|
|
114
|
+
// Track unexpected positional arguments
|
|
115
|
+
unexpectedArgs.push(arg);
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
// Warn about unexpected arguments
|
|
120
|
+
if (unexpectedArgs.length > 0) {
|
|
121
|
+
console.warn(`Warning: Unexpected arguments ignored: ${unexpectedArgs.join(', ')}`);
|
|
122
|
+
}
|
|
123
|
+
return result;
|
|
124
|
+
}
|
|
27
125
|
// ============================================================================
|
|
28
126
|
// Main Entry Point
|
|
29
127
|
// ============================================================================
|
|
@@ -32,30 +130,45 @@ Examples:
|
|
|
32
130
|
*/
|
|
33
131
|
async function main() {
|
|
34
132
|
try {
|
|
35
|
-
// Get arguments
|
|
36
133
|
const args = process.argv.slice(2);
|
|
134
|
+
const parsed = parseArgs(args);
|
|
37
135
|
// Handle --help
|
|
38
|
-
if (
|
|
136
|
+
if (parsed.help) {
|
|
39
137
|
console.log(HELP_TEXT);
|
|
40
138
|
process.exit(0);
|
|
41
139
|
}
|
|
42
140
|
// Handle --version
|
|
43
|
-
if (
|
|
141
|
+
if (parsed.version) {
|
|
44
142
|
console.log(CREATE_VERSION);
|
|
45
143
|
process.exit(0);
|
|
46
144
|
}
|
|
47
|
-
// Get project name (first non-flag argument)
|
|
48
|
-
const projectName = args.find((arg) => !arg.startsWith('-'));
|
|
49
145
|
// Run scaffolder
|
|
50
|
-
await createVeloxApp(projectName);
|
|
146
|
+
await createVeloxApp(parsed.projectName, parsed.template);
|
|
51
147
|
}
|
|
52
148
|
catch (error) {
|
|
53
|
-
// Handle unexpected errors
|
|
149
|
+
// Handle unexpected errors with actionable guidance
|
|
54
150
|
if (error instanceof Error) {
|
|
55
151
|
console.error(`\nError: ${error.message}`);
|
|
152
|
+
// Provide contextual help based on error type
|
|
153
|
+
const msg = error.message.toLowerCase();
|
|
154
|
+
if (msg.includes('eacces') || msg.includes('permission')) {
|
|
155
|
+
console.error('\nTry running with appropriate permissions or choose a different directory.');
|
|
156
|
+
}
|
|
157
|
+
else if (msg.includes('enospc') || msg.includes('no space')) {
|
|
158
|
+
console.error('\nInsufficient disk space. Free up some space and try again.');
|
|
159
|
+
}
|
|
160
|
+
else if (msg.includes('enotfound') ||
|
|
161
|
+
msg.includes('network') ||
|
|
162
|
+
msg.includes('etimedout')) {
|
|
163
|
+
console.error('\nCheck your internet connection and try again.');
|
|
164
|
+
}
|
|
165
|
+
else if (msg.includes('already exists')) {
|
|
166
|
+
console.error('\nChoose a different project name or remove the existing directory.');
|
|
167
|
+
}
|
|
56
168
|
}
|
|
57
169
|
else {
|
|
58
170
|
console.error('\nAn unexpected error occurred');
|
|
171
|
+
console.error('Please report this issue at: https://github.com/veloxts/velox-ts-framework/issues');
|
|
59
172
|
}
|
|
60
173
|
process.exit(1);
|
|
61
174
|
}
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA;;;;;GAKG;AAEH,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5D,+EAA+E;AAC/E,
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* create-velox-app - Project scaffolding tool
|
|
3
3
|
*
|
|
4
|
-
* CLI tool for bootstrapping new VeloxTS applications with
|
|
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 type { TemplateType } from './templates/index.js';
|
|
7
8
|
/** Create-velox-app package version */
|
|
8
9
|
export declare const CREATE_VERSION: string;
|
|
9
10
|
/**
|
|
10
11
|
* Main scaffolding function that creates a new VeloxTS project
|
|
11
12
|
*/
|
|
12
|
-
export declare function createVeloxApp(initialProjectName?: string): Promise<void>;
|
|
13
|
+
export declare function createVeloxApp(initialProjectName?: string, initialTemplate?: TemplateType): Promise<void>;
|
|
13
14
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAUH,OAAO,KAAK,EAAkB,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAezE,uCAAuC;AACvC,eAAO,MAAM,cAAc,EAAE,MAA+C,CAAC;AAiD7E;;GAEG;AACH,wBAAsB,cAAc,CAClC,kBAAkB,CAAC,EAAE,MAAM,EAC3B,eAAe,CAAC,EAAE,YAAY,GAC7B,OAAO,CAAC,IAAI,CAAC,CAgEf"}
|
package/dist/index.js
CHANGED
|
@@ -1,41 +1,73 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* create-velox-app - Project scaffolding tool
|
|
3
3
|
*
|
|
4
|
-
* CLI tool for bootstrapping new VeloxTS applications with
|
|
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
7
|
import { execSync } 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';
|
|
10
11
|
import * as p from '@clack/prompts';
|
|
11
12
|
import pc from 'picocolors';
|
|
12
|
-
import {
|
|
13
|
+
import { generateTemplateFiles, getAvailableTemplates, getTemplateDirectories, } from './templates/index.js';
|
|
13
14
|
// ============================================================================
|
|
14
15
|
// Constants
|
|
15
16
|
// ============================================================================
|
|
16
|
-
import { createRequire } from 'node:module';
|
|
17
17
|
// Read version from package.json dynamically
|
|
18
18
|
const require = createRequire(import.meta.url);
|
|
19
19
|
const packageJson = require('../package.json');
|
|
20
20
|
/** Create-velox-app package version */
|
|
21
21
|
export const CREATE_VERSION = packageJson.version ?? '0.0.0-unknown';
|
|
22
|
+
/** Timeout for exec commands (5 minutes) */
|
|
23
|
+
const EXEC_TIMEOUT_MS = 5 * 60 * 1000;
|
|
24
|
+
/** Reserved project names that could cause issues */
|
|
25
|
+
const RESERVED_NAMES = new Set([
|
|
26
|
+
'node_modules',
|
|
27
|
+
'test',
|
|
28
|
+
'tests',
|
|
29
|
+
'src',
|
|
30
|
+
'dist',
|
|
31
|
+
'build',
|
|
32
|
+
'public',
|
|
33
|
+
'lib',
|
|
34
|
+
'package',
|
|
35
|
+
'npm',
|
|
36
|
+
'pnpm',
|
|
37
|
+
'yarn',
|
|
38
|
+
]);
|
|
39
|
+
// ============================================================================
|
|
40
|
+
// Security Utilities
|
|
41
|
+
// ============================================================================
|
|
42
|
+
/**
|
|
43
|
+
* Check if a file path is safe (no path traversal attacks)
|
|
44
|
+
*/
|
|
45
|
+
function isPathSafe(baseDir, targetPath) {
|
|
46
|
+
const resolved = path.resolve(baseDir, targetPath);
|
|
47
|
+
const normalizedBase = path.normalize(baseDir);
|
|
48
|
+
return resolved.startsWith(normalizedBase);
|
|
49
|
+
}
|
|
22
50
|
// ============================================================================
|
|
23
51
|
// Main Scaffolder
|
|
24
52
|
// ============================================================================
|
|
25
53
|
/**
|
|
26
54
|
* Main scaffolding function that creates a new VeloxTS project
|
|
27
55
|
*/
|
|
28
|
-
export async function createVeloxApp(initialProjectName) {
|
|
56
|
+
export async function createVeloxApp(initialProjectName, initialTemplate) {
|
|
29
57
|
// Print welcome banner
|
|
30
58
|
console.log('');
|
|
31
59
|
p.intro(pc.cyan(pc.bold('create-velox-app')));
|
|
60
|
+
let projectDirectory;
|
|
61
|
+
let projectCreated = false;
|
|
32
62
|
try {
|
|
33
63
|
// Collect project configuration
|
|
34
|
-
const config = await promptProjectConfig(initialProjectName);
|
|
64
|
+
const config = await promptProjectConfig(initialProjectName, initialTemplate);
|
|
65
|
+
projectDirectory = config.directory;
|
|
35
66
|
// Validate project directory doesn't exist
|
|
36
67
|
await validateProjectDirectory(config.directory);
|
|
37
68
|
// Create project structure
|
|
38
69
|
await createProjectStructure(config);
|
|
70
|
+
projectCreated = true;
|
|
39
71
|
// Install dependencies
|
|
40
72
|
await installDependencies(config);
|
|
41
73
|
// Generate Prisma client
|
|
@@ -49,13 +81,30 @@ export async function createVeloxApp(initialProjectName) {
|
|
|
49
81
|
catch (error) {
|
|
50
82
|
// Handle cancellation
|
|
51
83
|
if (error === Symbol.for('clack.cancel') || error.message === 'canceled') {
|
|
84
|
+
// Clean up partial project on cancellation
|
|
85
|
+
if (projectCreated && projectDirectory) {
|
|
86
|
+
try {
|
|
87
|
+
await fs.rm(projectDirectory, { recursive: true, force: true });
|
|
88
|
+
}
|
|
89
|
+
catch {
|
|
90
|
+
// Ignore cleanup errors on cancellation
|
|
91
|
+
}
|
|
92
|
+
}
|
|
52
93
|
p.cancel('Setup cancelled');
|
|
53
94
|
process.exit(0);
|
|
54
95
|
}
|
|
55
|
-
// Handle other errors
|
|
96
|
+
// Handle other errors - provide recovery instructions
|
|
56
97
|
p.cancel('Setup failed');
|
|
57
98
|
if (error instanceof Error) {
|
|
58
99
|
console.error(pc.red(`\nError: ${error.message}`));
|
|
100
|
+
// If project was created but install failed, provide recovery instructions
|
|
101
|
+
if (projectCreated && projectDirectory) {
|
|
102
|
+
const projectName = path.basename(projectDirectory);
|
|
103
|
+
console.error(pc.yellow('\nTo recover your project:'));
|
|
104
|
+
console.error(pc.dim(` cd ${projectName}`));
|
|
105
|
+
console.error(pc.dim(' npm install'));
|
|
106
|
+
console.error(pc.dim(' npx prisma generate'));
|
|
107
|
+
}
|
|
59
108
|
}
|
|
60
109
|
process.exit(1);
|
|
61
110
|
}
|
|
@@ -66,7 +115,7 @@ export async function createVeloxApp(initialProjectName) {
|
|
|
66
115
|
/**
|
|
67
116
|
* Prompt user for project configuration
|
|
68
117
|
*/
|
|
69
|
-
async function promptProjectConfig(initialName) {
|
|
118
|
+
async function promptProjectConfig(initialName, initialTemplate) {
|
|
70
119
|
// Project name
|
|
71
120
|
const name = initialName
|
|
72
121
|
? initialName
|
|
@@ -79,15 +128,40 @@ async function promptProjectConfig(initialName) {
|
|
|
79
128
|
if (!/^[a-z0-9-]+$/.test(value)) {
|
|
80
129
|
return 'Use lowercase letters, numbers, and hyphens only';
|
|
81
130
|
}
|
|
131
|
+
if (RESERVED_NAMES.has(value)) {
|
|
132
|
+
return `"${value}" is a reserved name. Please choose another.`;
|
|
133
|
+
}
|
|
82
134
|
return undefined;
|
|
83
135
|
},
|
|
84
136
|
});
|
|
85
137
|
if (p.isCancel(name)) {
|
|
86
138
|
throw new Error('canceled');
|
|
87
139
|
}
|
|
88
|
-
// Validate project name format
|
|
89
|
-
if (typeof name === 'string'
|
|
90
|
-
|
|
140
|
+
// Validate project name format (for CLI-provided names)
|
|
141
|
+
if (typeof name === 'string') {
|
|
142
|
+
if (!/^[a-z0-9-]+$/.test(name)) {
|
|
143
|
+
throw new Error('Project name must use lowercase letters, numbers, and hyphens only');
|
|
144
|
+
}
|
|
145
|
+
if (RESERVED_NAMES.has(name)) {
|
|
146
|
+
throw new Error(`"${name}" is a reserved name. Please choose another.`);
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
// Template selection (if not provided via CLI flag)
|
|
150
|
+
let template = initialTemplate;
|
|
151
|
+
if (!template) {
|
|
152
|
+
const templates = getAvailableTemplates();
|
|
153
|
+
const selectedTemplate = await p.select({
|
|
154
|
+
message: 'Choose a template',
|
|
155
|
+
options: templates.map((t) => ({
|
|
156
|
+
value: t.type,
|
|
157
|
+
label: t.label,
|
|
158
|
+
hint: t.hint,
|
|
159
|
+
})),
|
|
160
|
+
});
|
|
161
|
+
if (p.isCancel(selectedTemplate)) {
|
|
162
|
+
throw new Error('canceled');
|
|
163
|
+
}
|
|
164
|
+
template = selectedTemplate;
|
|
91
165
|
}
|
|
92
166
|
// Detect package manager
|
|
93
167
|
const packageManager = detectPackageManager();
|
|
@@ -95,6 +169,7 @@ async function promptProjectConfig(initialName) {
|
|
|
95
169
|
name: name,
|
|
96
170
|
directory: path.resolve(process.cwd(), name),
|
|
97
171
|
packageManager,
|
|
172
|
+
template,
|
|
98
173
|
};
|
|
99
174
|
}
|
|
100
175
|
/**
|
|
@@ -131,50 +206,37 @@ async function validateProjectDirectory(directory) {
|
|
|
131
206
|
*/
|
|
132
207
|
async function createProjectStructure(config) {
|
|
133
208
|
const spinner = p.spinner();
|
|
134
|
-
spinner.start(
|
|
209
|
+
spinner.start(`Creating project files (template: ${config.template})`);
|
|
135
210
|
try {
|
|
136
211
|
// Create directory structure
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
//
|
|
146
|
-
const
|
|
212
|
+
const directories = getTemplateDirectories(config.template);
|
|
213
|
+
for (const dir of directories) {
|
|
214
|
+
// Validate path safety
|
|
215
|
+
if (!isPathSafe(config.directory, dir)) {
|
|
216
|
+
throw new Error(`Invalid directory path detected: ${dir}`);
|
|
217
|
+
}
|
|
218
|
+
await fs.mkdir(path.join(config.directory, dir), { recursive: true });
|
|
219
|
+
}
|
|
220
|
+
// Generate template files
|
|
221
|
+
const templateConfig = {
|
|
147
222
|
projectName: config.name,
|
|
148
223
|
packageManager: config.packageManager,
|
|
224
|
+
template: config.template,
|
|
149
225
|
};
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
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());
|
|
226
|
+
const files = generateTemplateFiles(templateConfig);
|
|
227
|
+
// Write all files
|
|
228
|
+
for (const file of files) {
|
|
229
|
+
// Validate path safety to prevent path traversal attacks
|
|
230
|
+
if (!isPathSafe(config.directory, file.path)) {
|
|
231
|
+
throw new Error(`Invalid file path detected: ${file.path}`);
|
|
232
|
+
}
|
|
233
|
+
const filePath = path.join(config.directory, file.path);
|
|
234
|
+
const fileDir = path.dirname(filePath);
|
|
235
|
+
// Ensure directory exists
|
|
236
|
+
await fs.mkdir(fileDir, { recursive: true });
|
|
237
|
+
// Write file
|
|
238
|
+
await fs.writeFile(filePath, file.content);
|
|
239
|
+
}
|
|
178
240
|
spinner.stop('Project files created');
|
|
179
241
|
}
|
|
180
242
|
catch (error) {
|
|
@@ -200,11 +262,16 @@ async function installDependencies(config) {
|
|
|
200
262
|
execSync(installCommand, {
|
|
201
263
|
cwd: config.directory,
|
|
202
264
|
stdio: 'ignore',
|
|
265
|
+
timeout: EXEC_TIMEOUT_MS,
|
|
203
266
|
});
|
|
204
267
|
spinner.stop('Dependencies installed');
|
|
205
268
|
}
|
|
206
269
|
catch (error) {
|
|
207
270
|
spinner.stop('Failed to install dependencies');
|
|
271
|
+
// Enhance error message for timeout
|
|
272
|
+
if (error instanceof Error && error.message.includes('ETIMEDOUT')) {
|
|
273
|
+
throw new Error('Dependency installation timed out. Check your network connection.');
|
|
274
|
+
}
|
|
208
275
|
throw error;
|
|
209
276
|
}
|
|
210
277
|
}
|
|
@@ -238,6 +305,7 @@ async function generatePrismaClient(config) {
|
|
|
238
305
|
execSync('npx prisma generate', {
|
|
239
306
|
cwd: config.directory,
|
|
240
307
|
stdio: 'ignore',
|
|
308
|
+
timeout: EXEC_TIMEOUT_MS,
|
|
241
309
|
});
|
|
242
310
|
spinner.stop('Prisma client generated');
|
|
243
311
|
}
|
|
@@ -259,20 +327,29 @@ async function initializeGit(config) {
|
|
|
259
327
|
execSync('git init', {
|
|
260
328
|
cwd: config.directory,
|
|
261
329
|
stdio: 'ignore',
|
|
330
|
+
timeout: 30000, // 30 seconds for git operations
|
|
262
331
|
});
|
|
263
332
|
execSync('git add .', {
|
|
264
333
|
cwd: config.directory,
|
|
265
334
|
stdio: 'ignore',
|
|
335
|
+
timeout: 30000,
|
|
266
336
|
});
|
|
267
337
|
execSync('git commit -m "Initial commit from create-velox-app"', {
|
|
268
338
|
cwd: config.directory,
|
|
269
339
|
stdio: 'ignore',
|
|
340
|
+
timeout: 30000,
|
|
270
341
|
});
|
|
271
342
|
spinner.stop('Git repository initialized');
|
|
272
343
|
}
|
|
273
|
-
catch (
|
|
274
|
-
// Git init is optional -
|
|
275
|
-
|
|
344
|
+
catch (error) {
|
|
345
|
+
// Git init is optional - provide context on why it was skipped
|
|
346
|
+
const errorMessage = error instanceof Error ? error.message.toLowerCase() : '';
|
|
347
|
+
if (errorMessage.includes('command not found') || errorMessage.includes('not recognized')) {
|
|
348
|
+
spinner.stop('Skipped git initialization (git not installed)');
|
|
349
|
+
}
|
|
350
|
+
else {
|
|
351
|
+
spinner.stop('Skipped git initialization');
|
|
352
|
+
}
|
|
276
353
|
}
|
|
277
354
|
}
|
|
278
355
|
// ============================================================================
|
|
@@ -286,7 +363,7 @@ function printSuccessMessage(config) {
|
|
|
286
363
|
const devCommand = `${config.packageManager} dev`;
|
|
287
364
|
const dbCommand = `${config.packageManager} db:push`;
|
|
288
365
|
console.log('');
|
|
289
|
-
console.log(pc.green(` Success! Created ${pc.bold(config.name)}`));
|
|
366
|
+
console.log(pc.green(` Success! Created ${pc.bold(config.name)} with ${config.template} template`));
|
|
290
367
|
console.log('');
|
|
291
368
|
console.log(' Next steps:');
|
|
292
369
|
console.log('');
|
|
@@ -299,6 +376,11 @@ function printSuccessMessage(config) {
|
|
|
299
376
|
console.log(` ${pc.cyan(devCommand)}${pc.dim(' # Start dev server')}`);
|
|
300
377
|
console.log('');
|
|
301
378
|
console.log(` Your app will be available at ${pc.cyan('http://localhost:3210')}`);
|
|
379
|
+
// Auth template specific message
|
|
380
|
+
if (config.template === 'auth') {
|
|
381
|
+
console.log('');
|
|
382
|
+
console.log(pc.yellow(' Note: Set JWT_SECRET and JWT_REFRESH_SECRET in .env for production'));
|
|
383
|
+
}
|
|
302
384
|
console.log('');
|
|
303
385
|
}
|
|
304
386
|
//# 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"}
|