forgestack-os-cli 0.2.1 → 0.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/dist/commands/create.d.ts +1 -1
- package/dist/commands/create.js +7 -9
- package/dist/commands/create.js.map +1 -1
- package/dist/generators/api.js +16 -5
- package/dist/generators/api.js.map +1 -1
- package/dist/generators/auth.js +168 -347
- package/dist/generators/auth.js.map +1 -1
- package/dist/generators/backend.js +86 -63
- package/dist/generators/backend.js.map +1 -1
- package/dist/generators/common.js +2 -2
- package/dist/generators/common.js.map +1 -1
- package/dist/generators/docker.js +7 -5
- package/dist/generators/docker.js.map +1 -1
- package/dist/generators/frontend.js +123 -110
- package/dist/generators/frontend.js.map +1 -1
- package/dist/generators/index.js +41 -0
- package/dist/generators/index.js.map +1 -1
- package/dist/index.js +4 -2
- package/dist/index.js.map +1 -1
- package/dist/types.d.ts +3 -0
- package/dist/utils/prompts.d.ts +1 -1
- package/dist/utils/prompts.js +5 -3
- package/dist/utils/prompts.js.map +1 -1
- package/dist/utils/security.d.ts +4 -0
- package/dist/utils/security.js +14 -0
- package/dist/utils/security.js.map +1 -0
- package/package.json +12 -12
|
@@ -39,8 +39,8 @@ async function generateReactVite(config, frontendDir) {
|
|
|
39
39
|
lint: 'eslint . --ext ts,tsx',
|
|
40
40
|
},
|
|
41
41
|
dependencies: {
|
|
42
|
-
react: '^19.
|
|
43
|
-
'react-dom': '^19.
|
|
42
|
+
react: '^19.0.0',
|
|
43
|
+
'react-dom': '^19.0.0',
|
|
44
44
|
'react-router-dom': '^7.1.0',
|
|
45
45
|
axios: '^1.7.9',
|
|
46
46
|
...(config.auth === 'clerk' && { '@clerk/clerk-react': '^5.40.0' }),
|
|
@@ -52,14 +52,20 @@ async function generateReactVite(config, frontendDir) {
|
|
|
52
52
|
'@types/react-dom': '^19.0.0',
|
|
53
53
|
'@vitejs/plugin-react': '^4.3.4',
|
|
54
54
|
typescript: '^5.7.2',
|
|
55
|
-
vite: '^
|
|
56
|
-
'tailwindcss': '^4.0
|
|
57
|
-
'autoprefixer': '^
|
|
55
|
+
vite: '^6.0.0',
|
|
56
|
+
'tailwindcss': '^3.4.0',
|
|
57
|
+
'autoprefixer': '^10.4.0',
|
|
58
58
|
'postcss': '^8.4.49',
|
|
59
59
|
'eslint': '^9.16.0',
|
|
60
60
|
},
|
|
61
61
|
};
|
|
62
62
|
await fs_extra_1.default.writeJSON(path_1.default.join(frontendDir, 'package.json'), packageJson, { spaces: 2 });
|
|
63
|
+
await fs_extra_1.default.writeJSON(path_1.default.join(frontendDir, '.eslintrc.json'), {
|
|
64
|
+
root: true,
|
|
65
|
+
extends: ["eslint:recommended", "plugin:@typescript-eslint/recommended"],
|
|
66
|
+
parser: "@typescript-eslint/parser",
|
|
67
|
+
plugins: ["@typescript-eslint"]
|
|
68
|
+
}, { spaces: 2 });
|
|
63
69
|
// Vite config
|
|
64
70
|
const viteConfig = `import { defineConfig } from 'vite'
|
|
65
71
|
import react from '@vitejs/plugin-react'
|
|
@@ -70,7 +76,7 @@ export default defineConfig({
|
|
|
70
76
|
port: 5173,
|
|
71
77
|
proxy: {
|
|
72
78
|
'/api': {
|
|
73
|
-
target: 'http://localhost:
|
|
79
|
+
target: 'http://localhost:3001',
|
|
74
80
|
changeOrigin: true,
|
|
75
81
|
},
|
|
76
82
|
},
|
|
@@ -86,13 +92,14 @@ export default defineConfig({
|
|
|
86
92
|
lib: ['ES2022', 'DOM', 'DOM.Iterable'],
|
|
87
93
|
module: 'ESNext',
|
|
88
94
|
skipLibCheck: true,
|
|
89
|
-
moduleResolution: '
|
|
95
|
+
moduleResolution: 'bundler',
|
|
90
96
|
allowImportingTsExtensions: true,
|
|
91
97
|
resolveJsonModule: true,
|
|
92
98
|
isolatedModules: true,
|
|
93
99
|
noEmit: true,
|
|
94
100
|
jsx: 'react-jsx',
|
|
95
101
|
strict: true,
|
|
102
|
+
types: ['vite/client', 'node'],
|
|
96
103
|
noUnusedLocals: true,
|
|
97
104
|
noUnusedParameters: true,
|
|
98
105
|
noFallthroughCasesInSwitch: true,
|
|
@@ -108,7 +115,7 @@ export default defineConfig({
|
|
|
108
115
|
composite: true,
|
|
109
116
|
skipLibCheck: true,
|
|
110
117
|
module: 'ESNext',
|
|
111
|
-
moduleResolution: '
|
|
118
|
+
moduleResolution: 'bundler',
|
|
112
119
|
allowSyntheticDefaultImports: true,
|
|
113
120
|
strict: true,
|
|
114
121
|
},
|
|
@@ -209,10 +216,10 @@ body {
|
|
|
209
216
|
}
|
|
210
217
|
function getAppComponent(config) {
|
|
211
218
|
return `import { BrowserRouter, Routes, Route } from 'react-router-dom'
|
|
212
|
-
import HomePage from './pages/HomePage'
|
|
213
|
-
import DashboardPage from './pages/DashboardPage'
|
|
214
|
-
import LoginPage from './pages/LoginPage'
|
|
215
|
-
import { AuthProvider } from './lib/auth'
|
|
219
|
+
import HomePage from './pages/HomePage.tsx'
|
|
220
|
+
import DashboardPage from './pages/DashboardPage.tsx'
|
|
221
|
+
import LoginPage from './pages/LoginPage.tsx'
|
|
222
|
+
import { AuthProvider } from './lib/auth.tsx'
|
|
216
223
|
${config.auth === 'clerk' ? "import { ClerkProvider } from '@clerk/clerk-react'" : ''}
|
|
217
224
|
|
|
218
225
|
function App() {
|
|
@@ -236,11 +243,11 @@ function App() {
|
|
|
236
243
|
export default App
|
|
237
244
|
`;
|
|
238
245
|
}
|
|
239
|
-
function getApiClient(
|
|
246
|
+
function getApiClient(_config) {
|
|
240
247
|
return `import axios from 'axios';
|
|
241
248
|
|
|
242
249
|
const api = axios.create({
|
|
243
|
-
baseURL: import.meta.env.VITE_API_URL || 'http://localhost:
|
|
250
|
+
baseURL: import.meta.env.VITE_API_URL || 'http://localhost:3001/api',
|
|
244
251
|
headers: {
|
|
245
252
|
'Content-Type': 'application/json',
|
|
246
253
|
},
|
|
@@ -275,6 +282,7 @@ async function generateNextJS(config, frontendDir) {
|
|
|
275
282
|
const packageJson = {
|
|
276
283
|
name: `${config.projectName}-frontend`,
|
|
277
284
|
version: '0.1.0',
|
|
285
|
+
type: 'module',
|
|
278
286
|
scripts: {
|
|
279
287
|
dev: 'next dev',
|
|
280
288
|
build: 'next build',
|
|
@@ -282,9 +290,9 @@ async function generateNextJS(config, frontendDir) {
|
|
|
282
290
|
lint: 'next lint',
|
|
283
291
|
},
|
|
284
292
|
dependencies: {
|
|
285
|
-
react: '^19.
|
|
286
|
-
'react-dom': '^19.
|
|
287
|
-
next: '^
|
|
293
|
+
react: '^19.0.0',
|
|
294
|
+
'react-dom': '^19.0.0',
|
|
295
|
+
next: '^15.0.0',
|
|
288
296
|
axios: '^1.7.9',
|
|
289
297
|
...(config.auth === 'clerk' && { '@clerk/nextjs': '^6.9.0' }),
|
|
290
298
|
...(config.auth === 'supabase' && { '@supabase/supabase-js': '^2.47.0', '@supabase/ssr': '^0.5.2' }),
|
|
@@ -296,21 +304,25 @@ async function generateNextJS(config, frontendDir) {
|
|
|
296
304
|
'@types/react': '^19.0.0',
|
|
297
305
|
'@types/react-dom': '^19.0.0',
|
|
298
306
|
typescript: '^5.7.2',
|
|
299
|
-
tailwindcss: '^4.0
|
|
300
|
-
autoprefixer: '^
|
|
307
|
+
tailwindcss: '^3.4.0',
|
|
308
|
+
autoprefixer: '^10.4.0',
|
|
301
309
|
postcss: '^8.4.49',
|
|
302
310
|
eslint: '^9.16.0',
|
|
303
|
-
'eslint-config-next': '^
|
|
311
|
+
'eslint-config-next': '^15.0.0',
|
|
304
312
|
},
|
|
305
313
|
};
|
|
306
314
|
await fs_extra_1.default.writeJSON(path_1.default.join(frontendDir, 'package.json'), packageJson, { spaces: 2 });
|
|
315
|
+
await fs_extra_1.default.writeJSON(path_1.default.join(frontendDir, '.eslintrc.json'), {
|
|
316
|
+
root: true,
|
|
317
|
+
extends: ["next/core-web-vitals"]
|
|
318
|
+
}, { spaces: 2 });
|
|
307
319
|
// Next.js config
|
|
308
320
|
const nextConfig = `/** @type {import('next').NextConfig} */
|
|
309
321
|
const nextConfig = {
|
|
310
322
|
reactStrictMode: true,
|
|
311
323
|
}
|
|
312
324
|
|
|
313
|
-
|
|
325
|
+
export default nextConfig
|
|
314
326
|
`;
|
|
315
327
|
await fs_extra_1.default.writeFile(path_1.default.join(frontendDir, 'next.config.js'), nextConfig);
|
|
316
328
|
// TypeScript config
|
|
@@ -356,7 +368,7 @@ export default config
|
|
|
356
368
|
`;
|
|
357
369
|
await fs_extra_1.default.writeFile(path_1.default.join(frontendDir, 'tailwind.config.ts'), tailwindConfig);
|
|
358
370
|
// PostCSS config
|
|
359
|
-
const postcssConfig = `
|
|
371
|
+
const postcssConfig = `export default {
|
|
360
372
|
plugins: {
|
|
361
373
|
tailwindcss: {},
|
|
362
374
|
autoprefixer: {},
|
|
@@ -429,7 +441,7 @@ body {
|
|
|
429
441
|
const apiClient = `import axios from 'axios';
|
|
430
442
|
|
|
431
443
|
const api = axios.create({
|
|
432
|
-
baseURL: process.env.NEXT_PUBLIC_API_URL || 'http://localhost:
|
|
444
|
+
baseURL: process.env.NEXT_PUBLIC_API_URL || 'http://localhost:3001/api',
|
|
433
445
|
headers: {
|
|
434
446
|
'Content-Type': 'application/json',
|
|
435
447
|
},
|
|
@@ -504,46 +516,46 @@ export const config = {
|
|
|
504
516
|
await fs_extra_1.default.writeFile(path_1.default.join(frontendDir, 'middleware.ts'), middleware);
|
|
505
517
|
}
|
|
506
518
|
// .env.local.example
|
|
507
|
-
const envExample = `NEXT_PUBLIC_API_URL=http://localhost:
|
|
519
|
+
const envExample = `NEXT_PUBLIC_API_URL=http://localhost:3001/api
|
|
508
520
|
${config.auth === 'clerk' ? 'NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=pk_test_xxxxx\nCLERK_SECRET_KEY=sk_test_xxxxx' : ''}
|
|
509
521
|
${config.auth === 'supabase' ? 'NEXT_PUBLIC_SUPABASE_URL=https://xxxxx.supabase.co\nNEXT_PUBLIC_SUPABASE_ANON_KEY=xxxxx' : ''}
|
|
510
522
|
`;
|
|
511
523
|
await fs_extra_1.default.writeFile(path_1.default.join(frontendDir, '.env.local.example'), envExample);
|
|
512
524
|
// .gitignore
|
|
513
525
|
const gitignore = `# dependencies
|
|
514
|
-
/node_modules
|
|
515
|
-
/.pnp
|
|
516
|
-
.pnp.js
|
|
526
|
+
/ node_modules
|
|
527
|
+
/.pnp
|
|
528
|
+
.pnp.js
|
|
517
529
|
|
|
518
530
|
# testing
|
|
519
|
-
/coverage
|
|
531
|
+
/ coverage
|
|
520
532
|
|
|
521
533
|
# next.js
|
|
522
|
-
/.next/
|
|
523
|
-
/out/
|
|
534
|
+
/.next /
|
|
535
|
+
/out/
|
|
524
536
|
|
|
525
537
|
# production
|
|
526
|
-
/build
|
|
538
|
+
/ build
|
|
527
539
|
|
|
528
540
|
# misc
|
|
529
|
-
.DS_Store
|
|
530
|
-
*.pem
|
|
541
|
+
.DS_Store
|
|
542
|
+
*.pem
|
|
531
543
|
|
|
532
544
|
# debug
|
|
533
|
-
npm-debug.log*
|
|
534
|
-
yarn-debug.log*
|
|
535
|
-
yarn-error.log*
|
|
545
|
+
npm - debug.log *
|
|
546
|
+
yarn - debug.log *
|
|
547
|
+
yarn - error.log *
|
|
536
548
|
|
|
537
549
|
# local env files
|
|
538
|
-
.env*.local
|
|
550
|
+
.env *.local
|
|
539
551
|
|
|
540
552
|
# vercel
|
|
541
|
-
.vercel
|
|
553
|
+
.vercel
|
|
542
554
|
|
|
543
555
|
# typescript
|
|
544
|
-
*.tsbuildinfo
|
|
545
|
-
next-env.d.ts
|
|
546
|
-
`;
|
|
556
|
+
*.tsbuildinfo
|
|
557
|
+
next - env.d.ts
|
|
558
|
+
`;
|
|
547
559
|
await fs_extra_1.default.writeFile(path_1.default.join(frontendDir, '.gitignore'), gitignore);
|
|
548
560
|
}
|
|
549
561
|
async function generateVueVite(_config, _frontendDir) {
|
|
@@ -570,8 +582,8 @@ export default function RootLayout({
|
|
|
570
582
|
children: React.ReactNode
|
|
571
583
|
}) {
|
|
572
584
|
return (
|
|
573
|
-
<html lang="en">
|
|
574
|
-
|
|
585
|
+
<html lang= "en" >
|
|
586
|
+
<body>{ children } </body>
|
|
575
587
|
</html>
|
|
576
588
|
)
|
|
577
589
|
}
|
|
@@ -583,8 +595,8 @@ function getNextJSLoginPage(config) {
|
|
|
583
595
|
|
|
584
596
|
export default function LoginPage() {
|
|
585
597
|
return (
|
|
586
|
-
<div className="min-h-screen flex items-center justify-center bg-gray-900">
|
|
587
|
-
|
|
598
|
+
<div className= "min-h-screen flex items-center justify-center bg-gray-900" >
|
|
599
|
+
<SignIn />
|
|
588
600
|
</div>
|
|
589
601
|
)
|
|
590
602
|
}
|
|
@@ -614,40 +626,41 @@ export default function LoginPage() {
|
|
|
614
626
|
}
|
|
615
627
|
|
|
616
628
|
return (
|
|
617
|
-
<div className="min-h-screen flex items-center justify-center bg-gray-900">
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
629
|
+
<div className= "min-h-screen flex items-center justify-center bg-gray-900" >
|
|
630
|
+
<div className="bg-gray-800 p-8 rounded-lg shadow-lg w-full max-w-md" >
|
|
631
|
+
<h1 className="text-3xl font-bold text-white mb-6" > Login </h1>
|
|
632
|
+
{ error && <div className="bg-red-500 text-white p-3 rounded mb-4" > { error } </div> }
|
|
633
|
+
<form onSubmit={ handleSubmit }>
|
|
634
|
+
<div className="mb-4" >
|
|
635
|
+
<label className="block text-gray-300 mb-2" > Email </label>
|
|
636
|
+
< input
|
|
637
|
+
type = "email"
|
|
638
|
+
value = { email }
|
|
639
|
+
onChange = {(e) => setEmail(e.target.value)
|
|
640
|
+
}
|
|
641
|
+
className = "w-full p-3 rounded bg-gray-700 text-white"
|
|
642
|
+
required
|
|
643
|
+
/>
|
|
644
|
+
</div>
|
|
645
|
+
< div className = "mb-6" >
|
|
646
|
+
<label className="block text-gray-300 mb-2" > Password </label>
|
|
647
|
+
< input
|
|
648
|
+
type = "password"
|
|
649
|
+
value = { password }
|
|
650
|
+
onChange = {(e) => setPassword(e.target.value)}
|
|
651
|
+
className = "w-full p-3 rounded bg-gray-700 text-white"
|
|
652
|
+
required
|
|
653
|
+
/>
|
|
654
|
+
</div>
|
|
655
|
+
< button
|
|
656
|
+
type = "submit"
|
|
657
|
+
className = "w-full bg-blue-600 hover:bg-blue-700 text-white font-bold py-3 rounded"
|
|
658
|
+
>
|
|
659
|
+
Login
|
|
660
|
+
</button>
|
|
661
|
+
</form>
|
|
662
|
+
</div>
|
|
663
|
+
</div>
|
|
651
664
|
)
|
|
652
665
|
}
|
|
653
666
|
`;
|
|
@@ -666,18 +679,18 @@ export default async function DashboardPage() {
|
|
|
666
679
|
}
|
|
667
680
|
|
|
668
681
|
return (
|
|
669
|
-
<div className="min-h-screen bg-gray-900 text-white">
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
|
|
673
|
-
<UserButton afterSignOutUrl="/" />
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
682
|
+
<div className= "min-h-screen bg-gray-900 text-white" >
|
|
683
|
+
<nav className="bg-gray-800 p-4" >
|
|
684
|
+
<div className="container mx-auto flex justify-between items-center" >
|
|
685
|
+
<h1 className="text-2xl font-bold" > ${config.projectName} </h1>
|
|
686
|
+
< UserButton afterSignOutUrl = "/" />
|
|
687
|
+
</div>
|
|
688
|
+
</nav>
|
|
689
|
+
< div className = "container mx-auto px-4 py-16" >
|
|
690
|
+
<h2 className="text-3xl font-bold mb-4" > Welcome, { user.firstName || user.emailAddresses[0].emailAddress }! </h2>
|
|
691
|
+
< p className = "text-gray-400" > You're logged in to your dashboard.</p>
|
|
692
|
+
</div>
|
|
693
|
+
</div>
|
|
681
694
|
)
|
|
682
695
|
}
|
|
683
696
|
`;
|
|
@@ -716,30 +729,30 @@ export default function DashboardPage() {
|
|
|
716
729
|
|
|
717
730
|
if (loading) {
|
|
718
731
|
return (
|
|
719
|
-
<div className="min-h-screen bg-gray-900 flex items-center justify-center">
|
|
720
|
-
|
|
721
|
-
|
|
732
|
+
<div className= "min-h-screen bg-gray-900 flex items-center justify-center" >
|
|
733
|
+
<div className="text-white" > Loading...</div>
|
|
734
|
+
</div>
|
|
722
735
|
)
|
|
723
736
|
}
|
|
724
737
|
|
|
725
738
|
return (
|
|
726
|
-
<div className="min-h-screen bg-gray-900 text-white">
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
<button
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
</div>
|
|
737
|
-
</nav>
|
|
738
|
-
<div className="container mx-auto px-4 py-16">
|
|
739
|
-
<h2 className="text-3xl font-bold mb-4">Welcome, {user?.email}!</h2>
|
|
740
|
-
<p className="text-gray-400">You're logged in to your dashboard.</p>
|
|
741
|
-
</div>
|
|
739
|
+
<div className= "min-h-screen bg-gray-900 text-white" >
|
|
740
|
+
<nav className="bg-gray-800 p-4" >
|
|
741
|
+
<div className="container mx-auto flex justify-between items-center" >
|
|
742
|
+
<h1 className="text-2xl font-bold" > ${config.projectName} </h1>
|
|
743
|
+
< button
|
|
744
|
+
onClick = { handleLogout }
|
|
745
|
+
className = "bg-red-600 hover:bg-red-700 px-4 py-2 rounded"
|
|
746
|
+
>
|
|
747
|
+
Logout
|
|
748
|
+
</button>
|
|
742
749
|
</div>
|
|
750
|
+
</nav>
|
|
751
|
+
< div className = "container mx-auto px-4 py-16" >
|
|
752
|
+
<h2 className="text-3xl font-bold mb-4" > Welcome, { user?.email }! </h2>
|
|
753
|
+
< p className = "text-gray-400" > You're logged in to your dashboard.</p>
|
|
754
|
+
</div>
|
|
755
|
+
</div>
|
|
743
756
|
)
|
|
744
757
|
}
|
|
745
758
|
`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"frontend.js","sourceRoot":"","sources":["../../src/generators/frontend.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"frontend.js","sourceRoot":"","sources":["../../src/generators/frontend.ts"],"names":[],"mappings":"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"}
|
package/dist/generators/index.js
CHANGED
|
@@ -13,9 +13,16 @@ const database_1 = require("./database");
|
|
|
13
13
|
const auth_1 = require("./auth");
|
|
14
14
|
const docker_1 = require("./docker");
|
|
15
15
|
const common_1 = require("./common");
|
|
16
|
+
const api_1 = require("./api");
|
|
17
|
+
const security_1 = require("../utils/security");
|
|
18
|
+
const execa_1 = __importDefault(require("execa"));
|
|
16
19
|
async function generateProject(config, targetDir) {
|
|
17
20
|
const spinner = logger_1.logger.spinner('Creating project structure...');
|
|
18
21
|
try {
|
|
22
|
+
// Generate JWT secret if needed
|
|
23
|
+
if (config.auth === 'jwt' || config.apiStyle === 'trpc') {
|
|
24
|
+
config.jwtSecret = (0, security_1.generateRandomSecret)();
|
|
25
|
+
}
|
|
19
26
|
// Create project directory
|
|
20
27
|
await fs_extra_1.default.ensureDir(targetDir);
|
|
21
28
|
// Create subdirectories
|
|
@@ -44,12 +51,46 @@ async function generateProject(config, targetDir) {
|
|
|
44
51
|
const authSpinner = logger_1.logger.spinner(`Integrating ${config.auth} authentication...`);
|
|
45
52
|
await (0, auth_1.generateAuth)(config, frontendDir, backendDir);
|
|
46
53
|
authSpinner.succeed('Authentication integrated');
|
|
54
|
+
// Generate API Style (tRPC/GraphQL)
|
|
55
|
+
if (config.apiStyle === 'trpc') {
|
|
56
|
+
const trpcSpinner = logger_1.logger.spinner('Integrating tRPC...');
|
|
57
|
+
await (0, api_1.generateTRPC)(config, backendDir, frontendDir);
|
|
58
|
+
trpcSpinner.succeed('tRPC integrated');
|
|
59
|
+
}
|
|
60
|
+
else if (config.apiStyle === 'graphql') {
|
|
61
|
+
const gqlSpinner = logger_1.logger.spinner('Integrating GraphQL...');
|
|
62
|
+
await (0, api_1.generateGraphQL)(config, backendDir);
|
|
63
|
+
gqlSpinner.succeed('GraphQL integrated');
|
|
64
|
+
}
|
|
47
65
|
// Generate Docker configuration if requested
|
|
48
66
|
if (config.docker) {
|
|
49
67
|
const dockerSpinner = logger_1.logger.spinner('Generating Docker configuration...');
|
|
50
68
|
await (0, docker_1.generateDocker)(config, targetDir);
|
|
51
69
|
dockerSpinner.succeed('Docker configuration generated');
|
|
52
70
|
}
|
|
71
|
+
// Initialize Git
|
|
72
|
+
if (!config.skipGit) {
|
|
73
|
+
const gitSpinner = logger_1.logger.spinner('Initializing Git repository...');
|
|
74
|
+
try {
|
|
75
|
+
await (0, execa_1.default)('git', ['init'], { cwd: targetDir });
|
|
76
|
+
gitSpinner.succeed('Git repository initialized');
|
|
77
|
+
}
|
|
78
|
+
catch {
|
|
79
|
+
gitSpinner.warn('Failed to initialize Git repository');
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
// Install dependencies
|
|
83
|
+
if (!config.skipInstall) {
|
|
84
|
+
const installSpinner = logger_1.logger.spinner('Installing dependencies (this may take a few minutes)...');
|
|
85
|
+
try {
|
|
86
|
+
// Using npm install at root (for workspaces)
|
|
87
|
+
await (0, execa_1.default)('npm', ['install'], { cwd: targetDir });
|
|
88
|
+
installSpinner.succeed('Dependencies installed');
|
|
89
|
+
}
|
|
90
|
+
catch {
|
|
91
|
+
installSpinner.warn('Failed to install dependencies. You may need to run "npm install" manually.');
|
|
92
|
+
}
|
|
93
|
+
}
|
|
53
94
|
}
|
|
54
95
|
catch (error) {
|
|
55
96
|
spinner.fail('Failed to generate project');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/generators/index.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/generators/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -7,7 +7,7 @@ const program = new commander_1.Command();
|
|
|
7
7
|
program
|
|
8
8
|
.name('forgestack')
|
|
9
9
|
.description('ForgeStack OS - One platform. Any stack. Production-ready.')
|
|
10
|
-
.version('0.
|
|
10
|
+
.version('0.2.5');
|
|
11
11
|
program
|
|
12
12
|
.command('create <project-name>')
|
|
13
13
|
.description('Create a new full-stack SaaS application')
|
|
@@ -19,6 +19,8 @@ program
|
|
|
19
19
|
.option('--api <style>', 'API style')
|
|
20
20
|
.option('--docker', 'Include Docker configuration')
|
|
21
21
|
.option('--no-docker', 'Skip Docker configuration')
|
|
22
|
-
.option('--multi-tenant', 'Enable multi-tenancy')
|
|
22
|
+
.option('--multi-tenant', 'Enable multi-tenancy')
|
|
23
|
+
.option('--skip-install', 'Skip dependency installation')
|
|
24
|
+
.option('--skip-git', 'Skip Git initialization');
|
|
23
25
|
program.parse();
|
|
24
26
|
//# 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":";;;AAEA,yCAAoC;AAEpC,8CAAkD;AAElD,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAE9B,OAAO;KACF,IAAI,CAAC,YAAY,CAAC;KAClB,WAAW,CAAC,4DAA4D,CAAC;KACzE,OAAO,CAAC,OAAO,CAAC,CAAC;AAEtB,OAAO;KACF,OAAO,CAAC,uBAAuB,CAAC;KAChC,WAAW,CAAC,0CAA0C,CAAC;KACvD,MAAM,CAAC,sBAAa,CAAC;KACrB,MAAM,CAAC,wBAAwB,EAAE,oBAAoB,CAAC;KACtD,MAAM,CAAC,uBAAuB,EAAE,mBAAmB,CAAC;KACpD,MAAM,CAAC,mBAAmB,EAAE,eAAe,CAAC;KAC5C,MAAM,CAAC,iBAAiB,EAAE,UAAU,CAAC;KACrC,MAAM,CAAC,eAAe,EAAE,WAAW,CAAC;KACpC,MAAM,CAAC,UAAU,EAAE,8BAA8B,CAAC;KAClD,MAAM,CAAC,aAAa,EAAE,2BAA2B,CAAC;KAClD,MAAM,CAAC,gBAAgB,EAAE,sBAAsB,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAEA,yCAAoC;AAEpC,8CAAkD;AAElD,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAE9B,OAAO;KACF,IAAI,CAAC,YAAY,CAAC;KAClB,WAAW,CAAC,4DAA4D,CAAC;KACzE,OAAO,CAAC,OAAO,CAAC,CAAC;AAEtB,OAAO;KACF,OAAO,CAAC,uBAAuB,CAAC;KAChC,WAAW,CAAC,0CAA0C,CAAC;KACvD,MAAM,CAAC,sBAAa,CAAC;KACrB,MAAM,CAAC,wBAAwB,EAAE,oBAAoB,CAAC;KACtD,MAAM,CAAC,uBAAuB,EAAE,mBAAmB,CAAC;KACpD,MAAM,CAAC,mBAAmB,EAAE,eAAe,CAAC;KAC5C,MAAM,CAAC,iBAAiB,EAAE,UAAU,CAAC;KACrC,MAAM,CAAC,eAAe,EAAE,WAAW,CAAC;KACpC,MAAM,CAAC,UAAU,EAAE,8BAA8B,CAAC;KAClD,MAAM,CAAC,aAAa,EAAE,2BAA2B,CAAC;KAClD,MAAM,CAAC,gBAAgB,EAAE,sBAAsB,CAAC;KAChD,MAAM,CAAC,gBAAgB,EAAE,8BAA8B,CAAC;KACxD,MAAM,CAAC,YAAY,EAAE,yBAAyB,CAAC,CAAC;AAErD,OAAO,CAAC,KAAK,EAAE,CAAC"}
|
package/dist/types.d.ts
CHANGED
package/dist/utils/prompts.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { StackConfig } from '../types';
|
|
2
|
-
export declare function promptForStack(projectName: string, options?: any): Promise<StackConfig>;
|
|
2
|
+
export declare function promptForStack(projectName: string, options?: Record<string, any>): Promise<StackConfig>;
|
package/dist/utils/prompts.js
CHANGED
|
@@ -76,6 +76,8 @@ async function promptForStack(projectName, options = {}) {
|
|
|
76
76
|
: 'rest',
|
|
77
77
|
docker: options.docker !== false, // Default to true unless --no-docker
|
|
78
78
|
multiTenant: !!options.multiTenant,
|
|
79
|
+
skipInstall: !!options.skipInstall,
|
|
80
|
+
skipGit: !!options.skipGit,
|
|
79
81
|
};
|
|
80
82
|
}
|
|
81
83
|
const answers = await inquirer_1.default.prompt([
|
|
@@ -86,8 +88,8 @@ async function promptForStack(projectName, options = {}) {
|
|
|
86
88
|
choices: [
|
|
87
89
|
{ name: 'React + Vite (Recommended)', value: 'react-vite' },
|
|
88
90
|
{ name: 'Next.js 14 (App Router)', value: 'nextjs' },
|
|
89
|
-
{ name: 'Vue + Vite', value: 'vue-vite' },
|
|
90
|
-
{ name: 'SvelteKit', value: 'sveltekit' },
|
|
91
|
+
{ name: 'Vue + Vite', value: 'vue-vite', disabled: 'Coming in Phase 5' },
|
|
92
|
+
{ name: 'SvelteKit', value: 'sveltekit', disabled: 'Coming in Phase 5' },
|
|
91
93
|
],
|
|
92
94
|
default: 'react-vite',
|
|
93
95
|
},
|
|
@@ -100,7 +102,7 @@ async function promptForStack(projectName, options = {}) {
|
|
|
100
102
|
{ name: 'Node.js + Fastify', value: 'fastify' },
|
|
101
103
|
{ name: 'NestJS', value: 'nestjs' },
|
|
102
104
|
{ name: 'Bun + Elysia', value: 'bun-elysia' },
|
|
103
|
-
{ name: 'Go + Fiber (Experimental)', value: 'go-fiber' },
|
|
105
|
+
{ name: 'Go + Fiber (Experimental)', value: 'go-fiber', disabled: 'Coming in Phase 6' },
|
|
104
106
|
],
|
|
105
107
|
default: 'express',
|
|
106
108
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../src/utils/prompts.ts"],"names":[],"mappings":";;;;;AA8DA,
|
|
1
|
+
{"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../src/utils/prompts.ts"],"names":[],"mappings":"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"}
|