nextforge-cli 1.1.0 → 1.3.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.
- package/bin/cli.js +29 -13
- package/package.json +1 -1
package/bin/cli.js
CHANGED
|
@@ -15,13 +15,28 @@ const TEMPLATES_DIR = path.join(__dirname, '..', 'templates');
|
|
|
15
15
|
|
|
16
16
|
const program = new Command();
|
|
17
17
|
|
|
18
|
+
// ASCII Art Banner
|
|
19
|
+
const banner = `
|
|
20
|
+
${chalk.hex('#FF6B35').bold('███╗ ██╗███████╗██╗ ██╗████████╗')}${chalk.hex('#00D9FF').bold('███████╗ ██████╗ ██████╗ ██████╗ ███████╗')}
|
|
21
|
+
${chalk.hex('#FF6B35').bold('████╗ ██║██╔════╝╚██╗██╔╝╚══██╔══╝')}${chalk.hex('#00D9FF').bold('██╔════╝██╔═══██╗██╔══██╗██╔════╝ ██╔════╝')}
|
|
22
|
+
${chalk.hex('#FF6B35').bold('██╔██╗ ██║█████╗ ╚███╔╝ ██║ ')}${chalk.hex('#00D9FF').bold('█████╗ ██║ ██║██████╔╝██║ ███╗█████╗ ')}
|
|
23
|
+
${chalk.hex('#FF6B35').bold('██║╚██╗██║██╔══╝ ██╔██╗ ██║ ')}${chalk.hex('#00D9FF').bold('██╔══╝ ██║ ██║██╔══██╗██║ ██║██╔══╝ ')}
|
|
24
|
+
${chalk.hex('#FF6B35').bold('██║ ╚████║███████╗██╔╝ ██╗ ██║ ')}${chalk.hex('#00D9FF').bold('██║ ╚██████╔╝██║ ██║╚██████╔╝███████╗')}
|
|
25
|
+
${chalk.hex('#FF6B35').bold('╚═╝ ╚═══╝╚══════╝╚═╝ ╚═╝ ╚═╝ ')}${chalk.hex('#00D9FF').bold('╚═╝ ╚═════╝ ╚═╝ ╚═╝ ╚═════╝ ╚══════╝')}
|
|
26
|
+
|
|
27
|
+
${chalk.white.bold('Welcome to NextForge!')} ${chalk.dim('The ultimate full-stack boilerplate')}
|
|
28
|
+
|
|
29
|
+
${chalk.dim('Powered by:')} ${chalk.cyan('Next.js 15')} ${chalk.dim('•')} ${chalk.yellow('Hono')} ${chalk.dim('•')} ${chalk.green('Prisma')} ${chalk.dim('•')} ${chalk.magenta('TanStack Query')}
|
|
30
|
+
${chalk.blue('Zustand')} ${chalk.dim('•')} ${chalk.red('BullMQ')} ${chalk.dim('•')} ${chalk.cyan('TypeScript')} ${chalk.dim('•')} ${chalk.hex('#38BDF8')('Tailwind')}
|
|
31
|
+
`;
|
|
32
|
+
|
|
18
33
|
program
|
|
19
34
|
.name('nextforge')
|
|
20
35
|
.description('Forge your next full-stack Next.js TypeScript app')
|
|
21
|
-
.version('1.
|
|
36
|
+
.version('1.2.0')
|
|
22
37
|
.argument('[project-name]', 'Name of the project')
|
|
23
38
|
.action(async (projectName) => {
|
|
24
|
-
console.log(
|
|
39
|
+
console.log(banner);
|
|
25
40
|
|
|
26
41
|
// Get project name if not provided
|
|
27
42
|
if (!projectName) {
|
|
@@ -325,10 +340,10 @@ function generatePackageJson(projectName, answers) {
|
|
|
325
340
|
},
|
|
326
341
|
dependencies: {
|
|
327
342
|
// Core
|
|
328
|
-
next: '^
|
|
329
|
-
react: '^
|
|
330
|
-
'react-dom': '^
|
|
331
|
-
typescript: '^5.
|
|
343
|
+
next: '^15.1.0',
|
|
344
|
+
react: '^19.0.0',
|
|
345
|
+
'react-dom': '^19.0.0',
|
|
346
|
+
typescript: '^5.7.2',
|
|
332
347
|
|
|
333
348
|
// API
|
|
334
349
|
hono: '^4.0.0',
|
|
@@ -382,13 +397,14 @@ function generatePackageJson(projectName, answers) {
|
|
|
382
397
|
autoprefixer: '^10.4.17',
|
|
383
398
|
},
|
|
384
399
|
devDependencies: {
|
|
385
|
-
'@types/node': '^
|
|
386
|
-
'@types/react': '^
|
|
387
|
-
'@types/react-dom': '^
|
|
388
|
-
eslint: '^
|
|
389
|
-
'eslint-config-next': '^
|
|
390
|
-
|
|
391
|
-
|
|
400
|
+
'@types/node': '^22.10.0',
|
|
401
|
+
'@types/react': '^19.0.0',
|
|
402
|
+
'@types/react-dom': '^19.0.0',
|
|
403
|
+
eslint: '^9.17.0',
|
|
404
|
+
'eslint-config-next': '^15.1.0',
|
|
405
|
+
'@eslint/eslintrc': '^3.2.0',
|
|
406
|
+
tsx: '^4.19.0',
|
|
407
|
+
concurrently: '^9.1.0',
|
|
392
408
|
},
|
|
393
409
|
};
|
|
394
410
|
|