forgestack-os-cli 0.2.0 → 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 +117 -98
- package/dist/generators/backend.js.map +1 -1
- package/dist/generators/common.js +5 -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 +145 -133
- 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
|
@@ -51,7 +51,9 @@ RUN npm install --only=production
|
|
|
51
51
|
COPY --from=builder /app/dist ./dist
|
|
52
52
|
${config.database !== 'mongodb' ? 'COPY --from=builder /app/prisma ./prisma\nRUN npx prisma generate' : ''}
|
|
53
53
|
|
|
54
|
-
|
|
54
|
+
USER node
|
|
55
|
+
|
|
56
|
+
EXPOSE 3001
|
|
55
57
|
|
|
56
58
|
CMD ["node", "dist/index.js"]
|
|
57
59
|
`;
|
|
@@ -68,7 +70,7 @@ CMD ["node", "dist/index.js"]
|
|
|
68
70
|
}
|
|
69
71
|
|
|
70
72
|
location /api {
|
|
71
|
-
proxy_pass http://backend:
|
|
73
|
+
proxy_pass http://backend:3001;
|
|
72
74
|
proxy_http_version 1.1;
|
|
73
75
|
proxy_set_header Upgrade $http_upgrade;
|
|
74
76
|
proxy_set_header Connection 'upgrade';
|
|
@@ -110,17 +112,17 @@ services:
|
|
|
110
112
|
depends_on:
|
|
111
113
|
- backend
|
|
112
114
|
environment:
|
|
113
|
-
- VITE_API_URL=http://localhost:
|
|
115
|
+
- VITE_API_URL=http://localhost:3001/api
|
|
114
116
|
|
|
115
117
|
backend:
|
|
116
118
|
build:
|
|
117
119
|
context: ./backend
|
|
118
120
|
dockerfile: ../docker/backend.Dockerfile
|
|
119
121
|
ports:
|
|
120
|
-
- "
|
|
122
|
+
- "3001:3001"
|
|
121
123
|
environment:
|
|
122
124
|
- NODE_ENV=production
|
|
123
|
-
- PORT=
|
|
125
|
+
- PORT=3001
|
|
124
126
|
- DATABASE_URL=${config.database === 'postgresql' ? `postgresql://postgres:postgres@postgres:5432/${config.projectName}` : config.database === 'mongodb' ? `mongodb://mongo:mongo@mongodb:27017/${config.projectName}` : config.database === 'mysql' ? `mysql://root:mysql@mysql:3306/${config.projectName}` : 'sqlite:./dev.db'}
|
|
125
127
|
- JWT_SECRET=\${JWT_SECRET:-your-secret-key}
|
|
126
128
|
depends_on:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"docker.js","sourceRoot":"","sources":["../../src/generators/docker.ts"],"names":[],"mappings":";;;;;AAIA,
|
|
1
|
+
{"version":3,"file":"docker.js","sourceRoot":"","sources":["../../src/generators/docker.ts"],"names":[],"mappings":";;;;;AAIA,wCAqGC;AAzGD,gDAAwB;AACxB,wDAA0B;AAGnB,KAAK,UAAU,cAAc,CAAC,MAAmB,EAAE,SAAiB;IACzE,MAAM,SAAS,GAAG,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IACjD,MAAM,kBAAE,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;IAE9B,sBAAsB;IACtB,MAAM,kBAAkB,GAAG;;;;;;;;;;;;;;;;;;CAkB5B,CAAC;IAEA,MAAM,kBAAE,CAAC,SAAS,CAAC,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,qBAAqB,CAAC,EAAE,kBAAkB,CAAC,CAAC;IAEpF,qBAAqB;IACrB,MAAM,iBAAiB,GAAG;;;;;;;;;;;;;;;;;;EAkB1B,MAAM,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,mEAAmE,CAAC,CAAC,CAAC,EAAE;;;;;;;CAOzG,CAAC;IAEA,MAAM,kBAAE,CAAC,SAAS,CAAC,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,oBAAoB,CAAC,EAAE,iBAAiB,CAAC,CAAC;IAElF,4BAA4B;IAC5B,MAAM,SAAS,GAAG;;;;;;;;;;;;;;;;;;;CAmBnB,CAAC;IAEA,MAAM,kBAAE,CAAC,SAAS,CAAC,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,EAAE,SAAS,CAAC,CAAC;IAElE,iBAAiB;IACjB,MAAM,aAAa,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAC/C,MAAM,kBAAE,CAAC,SAAS,CAAC,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,oBAAoB,CAAC,EAAE,aAAa,CAAC,CAAC;IAE9E,gBAAgB;IAChB,MAAM,YAAY,GAAG;;;;;;;;;;;;CAYtB,CAAC;IAEA,MAAM,kBAAE,CAAC,SAAS,CAAC,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,eAAe,CAAC,EAAE,YAAY,CAAC,CAAC;AAC1E,CAAC;AAED,SAAS,gBAAgB,CAAC,MAAmB;IAC3C,IAAI,QAAQ,GAAG;;;;;;;;;;;;;;;;;;;;;;;uBAuBM,MAAM,CAAC,QAAQ,KAAK,YAAY,CAAC,CAAC,CAAC,gDAAgD,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,uCAAuC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,iCAAiC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,iBAAiB;;;CAGrU,CAAC;IAEA,uBAAuB;IACvB,IAAI,MAAM,CAAC,QAAQ,KAAK,YAAY,EAAE,CAAC;QACrC,QAAQ,IAAI;;;;;;;;;sBASM,MAAM,CAAC,WAAW;;;;;;CAMvC,CAAC;IACA,CAAC;SAAM,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QACzC,QAAQ,IAAI;;;;;;;;;gCASgB,MAAM,CAAC,WAAW;;;;;;CAMjD,CAAC;IACA,CAAC;SAAM,IAAI,MAAM,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QACvC,QAAQ,IAAI;;;;;;;;yBAQS,MAAM,CAAC,WAAW;;;;;;CAM1C,CAAC;IACA,CAAC;SAAM,CAAC;QACN,QAAQ,IAAI;;;;CAIf,CAAC;IACA,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC"}
|
|
@@ -39,29 +39,33 @@ async function generateReactVite(config, frontendDir) {
|
|
|
39
39
|
lint: 'eslint . --ext ts,tsx',
|
|
40
40
|
},
|
|
41
41
|
dependencies: {
|
|
42
|
-
react: '^
|
|
43
|
-
'react-dom': '^
|
|
44
|
-
'react-router-dom': '^
|
|
45
|
-
axios: '^1.
|
|
46
|
-
...(config.auth === 'clerk' && { '@clerk/clerk-react': '^
|
|
47
|
-
...(config.auth === 'supabase' && { '@supabase/supabase-js': '^2.
|
|
48
|
-
...(config.auth === 'firebase' && { firebase: '^
|
|
42
|
+
react: '^19.0.0',
|
|
43
|
+
'react-dom': '^19.0.0',
|
|
44
|
+
'react-router-dom': '^7.1.0',
|
|
45
|
+
axios: '^1.7.9',
|
|
46
|
+
...(config.auth === 'clerk' && { '@clerk/clerk-react': '^5.40.0' }),
|
|
47
|
+
...(config.auth === 'supabase' && { '@supabase/supabase-js': '^2.47.0' }),
|
|
48
|
+
...(config.auth === 'firebase' && { firebase: '^11.1.0' }),
|
|
49
49
|
},
|
|
50
50
|
devDependencies: {
|
|
51
|
-
'@types/react': '^
|
|
52
|
-
'@types/react-dom': '^
|
|
53
|
-
'@vitejs/plugin-react': '^4.
|
|
54
|
-
typescript: '^5.
|
|
55
|
-
vite: '^
|
|
56
|
-
'tailwindcss': '^3.4.
|
|
57
|
-
'autoprefixer': '^10.4.
|
|
58
|
-
'postcss': '^8.4.
|
|
59
|
-
'eslint': '^
|
|
60
|
-
'@typescript-eslint/eslint-plugin': '^6.19.0',
|
|
61
|
-
'@typescript-eslint/parser': '^6.19.0',
|
|
51
|
+
'@types/react': '^19.0.0',
|
|
52
|
+
'@types/react-dom': '^19.0.0',
|
|
53
|
+
'@vitejs/plugin-react': '^4.3.4',
|
|
54
|
+
typescript: '^5.7.2',
|
|
55
|
+
vite: '^6.0.0',
|
|
56
|
+
'tailwindcss': '^3.4.0',
|
|
57
|
+
'autoprefixer': '^10.4.0',
|
|
58
|
+
'postcss': '^8.4.49',
|
|
59
|
+
'eslint': '^9.16.0',
|
|
62
60
|
},
|
|
63
61
|
};
|
|
64
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 });
|
|
65
69
|
// Vite config
|
|
66
70
|
const viteConfig = `import { defineConfig } from 'vite'
|
|
67
71
|
import react from '@vitejs/plugin-react'
|
|
@@ -72,7 +76,7 @@ export default defineConfig({
|
|
|
72
76
|
port: 5173,
|
|
73
77
|
proxy: {
|
|
74
78
|
'/api': {
|
|
75
|
-
target: 'http://localhost:
|
|
79
|
+
target: 'http://localhost:3001',
|
|
76
80
|
changeOrigin: true,
|
|
77
81
|
},
|
|
78
82
|
},
|
|
@@ -85,7 +89,7 @@ export default defineConfig({
|
|
|
85
89
|
compilerOptions: {
|
|
86
90
|
target: 'ES2020',
|
|
87
91
|
useDefineForClassFields: true,
|
|
88
|
-
lib: ['
|
|
92
|
+
lib: ['ES2022', 'DOM', 'DOM.Iterable'],
|
|
89
93
|
module: 'ESNext',
|
|
90
94
|
skipLibCheck: true,
|
|
91
95
|
moduleResolution: 'bundler',
|
|
@@ -95,9 +99,11 @@ export default defineConfig({
|
|
|
95
99
|
noEmit: true,
|
|
96
100
|
jsx: 'react-jsx',
|
|
97
101
|
strict: true,
|
|
102
|
+
types: ['vite/client', 'node'],
|
|
98
103
|
noUnusedLocals: true,
|
|
99
104
|
noUnusedParameters: true,
|
|
100
105
|
noFallthroughCasesInSwitch: true,
|
|
106
|
+
incremental: true,
|
|
101
107
|
},
|
|
102
108
|
include: ['src'],
|
|
103
109
|
references: [{ path: './tsconfig.node.json' }],
|
|
@@ -210,10 +216,10 @@ body {
|
|
|
210
216
|
}
|
|
211
217
|
function getAppComponent(config) {
|
|
212
218
|
return `import { BrowserRouter, Routes, Route } from 'react-router-dom'
|
|
213
|
-
import HomePage from './pages/HomePage'
|
|
214
|
-
import DashboardPage from './pages/DashboardPage'
|
|
215
|
-
import LoginPage from './pages/LoginPage'
|
|
216
|
-
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'
|
|
217
223
|
${config.auth === 'clerk' ? "import { ClerkProvider } from '@clerk/clerk-react'" : ''}
|
|
218
224
|
|
|
219
225
|
function App() {
|
|
@@ -237,11 +243,11 @@ function App() {
|
|
|
237
243
|
export default App
|
|
238
244
|
`;
|
|
239
245
|
}
|
|
240
|
-
function getApiClient(
|
|
246
|
+
function getApiClient(_config) {
|
|
241
247
|
return `import axios from 'axios';
|
|
242
248
|
|
|
243
249
|
const api = axios.create({
|
|
244
|
-
baseURL: import.meta.env.VITE_API_URL || 'http://localhost:
|
|
250
|
+
baseURL: import.meta.env.VITE_API_URL || 'http://localhost:3001/api',
|
|
245
251
|
headers: {
|
|
246
252
|
'Content-Type': 'application/json',
|
|
247
253
|
},
|
|
@@ -276,6 +282,7 @@ async function generateNextJS(config, frontendDir) {
|
|
|
276
282
|
const packageJson = {
|
|
277
283
|
name: `${config.projectName}-frontend`,
|
|
278
284
|
version: '0.1.0',
|
|
285
|
+
type: 'module',
|
|
279
286
|
scripts: {
|
|
280
287
|
dev: 'next dev',
|
|
281
288
|
build: 'next build',
|
|
@@ -283,35 +290,39 @@ async function generateNextJS(config, frontendDir) {
|
|
|
283
290
|
lint: 'next lint',
|
|
284
291
|
},
|
|
285
292
|
dependencies: {
|
|
286
|
-
react: '^
|
|
287
|
-
'react-dom': '^
|
|
288
|
-
next: '^
|
|
289
|
-
axios: '^1.
|
|
290
|
-
...(config.auth === 'clerk' && { '@clerk/nextjs': '^
|
|
291
|
-
...(config.auth === 'supabase' && { '@supabase/supabase-js': '^2.
|
|
292
|
-
...(config.auth === 'firebase' && { firebase: '^
|
|
293
|
-
...(config.auth === 'authjs' && { 'next-auth': '^
|
|
293
|
+
react: '^19.0.0',
|
|
294
|
+
'react-dom': '^19.0.0',
|
|
295
|
+
next: '^15.0.0',
|
|
296
|
+
axios: '^1.7.9',
|
|
297
|
+
...(config.auth === 'clerk' && { '@clerk/nextjs': '^6.9.0' }),
|
|
298
|
+
...(config.auth === 'supabase' && { '@supabase/supabase-js': '^2.47.0', '@supabase/ssr': '^0.5.2' }),
|
|
299
|
+
...(config.auth === 'firebase' && { firebase: '^11.1.0' }),
|
|
300
|
+
...(config.auth === 'authjs' && { 'next-auth': '^5.0.0-beta.25' }),
|
|
294
301
|
},
|
|
295
302
|
devDependencies: {
|
|
296
|
-
'@types/node': '^20.
|
|
297
|
-
'@types/react': '^
|
|
298
|
-
'@types/react-dom': '^
|
|
299
|
-
typescript: '^5.
|
|
300
|
-
tailwindcss: '^3.4.
|
|
301
|
-
autoprefixer: '^10.4.
|
|
302
|
-
postcss: '^8.4.
|
|
303
|
-
eslint: '^
|
|
304
|
-
'eslint-config-next': '^
|
|
303
|
+
'@types/node': '^20.17.0',
|
|
304
|
+
'@types/react': '^19.0.0',
|
|
305
|
+
'@types/react-dom': '^19.0.0',
|
|
306
|
+
typescript: '^5.7.2',
|
|
307
|
+
tailwindcss: '^3.4.0',
|
|
308
|
+
autoprefixer: '^10.4.0',
|
|
309
|
+
postcss: '^8.4.49',
|
|
310
|
+
eslint: '^9.16.0',
|
|
311
|
+
'eslint-config-next': '^15.0.0',
|
|
305
312
|
},
|
|
306
313
|
};
|
|
307
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 });
|
|
308
319
|
// Next.js config
|
|
309
320
|
const nextConfig = `/** @type {import('next').NextConfig} */
|
|
310
321
|
const nextConfig = {
|
|
311
322
|
reactStrictMode: true,
|
|
312
323
|
}
|
|
313
324
|
|
|
314
|
-
|
|
325
|
+
export default nextConfig
|
|
315
326
|
`;
|
|
316
327
|
await fs_extra_1.default.writeFile(path_1.default.join(frontendDir, 'next.config.js'), nextConfig);
|
|
317
328
|
// TypeScript config
|
|
@@ -357,7 +368,7 @@ export default config
|
|
|
357
368
|
`;
|
|
358
369
|
await fs_extra_1.default.writeFile(path_1.default.join(frontendDir, 'tailwind.config.ts'), tailwindConfig);
|
|
359
370
|
// PostCSS config
|
|
360
|
-
const postcssConfig = `
|
|
371
|
+
const postcssConfig = `export default {
|
|
361
372
|
plugins: {
|
|
362
373
|
tailwindcss: {},
|
|
363
374
|
autoprefixer: {},
|
|
@@ -430,7 +441,7 @@ body {
|
|
|
430
441
|
const apiClient = `import axios from 'axios';
|
|
431
442
|
|
|
432
443
|
const api = axios.create({
|
|
433
|
-
baseURL: process.env.NEXT_PUBLIC_API_URL || 'http://localhost:
|
|
444
|
+
baseURL: process.env.NEXT_PUBLIC_API_URL || 'http://localhost:3001/api',
|
|
434
445
|
headers: {
|
|
435
446
|
'Content-Type': 'application/json',
|
|
436
447
|
},
|
|
@@ -505,46 +516,46 @@ export const config = {
|
|
|
505
516
|
await fs_extra_1.default.writeFile(path_1.default.join(frontendDir, 'middleware.ts'), middleware);
|
|
506
517
|
}
|
|
507
518
|
// .env.local.example
|
|
508
|
-
const envExample = `NEXT_PUBLIC_API_URL=http://localhost:
|
|
519
|
+
const envExample = `NEXT_PUBLIC_API_URL=http://localhost:3001/api
|
|
509
520
|
${config.auth === 'clerk' ? 'NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=pk_test_xxxxx\nCLERK_SECRET_KEY=sk_test_xxxxx' : ''}
|
|
510
521
|
${config.auth === 'supabase' ? 'NEXT_PUBLIC_SUPABASE_URL=https://xxxxx.supabase.co\nNEXT_PUBLIC_SUPABASE_ANON_KEY=xxxxx' : ''}
|
|
511
522
|
`;
|
|
512
523
|
await fs_extra_1.default.writeFile(path_1.default.join(frontendDir, '.env.local.example'), envExample);
|
|
513
524
|
// .gitignore
|
|
514
525
|
const gitignore = `# dependencies
|
|
515
|
-
/node_modules
|
|
516
|
-
/.pnp
|
|
517
|
-
.pnp.js
|
|
526
|
+
/ node_modules
|
|
527
|
+
/.pnp
|
|
528
|
+
.pnp.js
|
|
518
529
|
|
|
519
530
|
# testing
|
|
520
|
-
/coverage
|
|
531
|
+
/ coverage
|
|
521
532
|
|
|
522
533
|
# next.js
|
|
523
|
-
/.next/
|
|
524
|
-
/out/
|
|
534
|
+
/.next /
|
|
535
|
+
/out/
|
|
525
536
|
|
|
526
537
|
# production
|
|
527
|
-
/build
|
|
538
|
+
/ build
|
|
528
539
|
|
|
529
540
|
# misc
|
|
530
|
-
.DS_Store
|
|
531
|
-
*.pem
|
|
541
|
+
.DS_Store
|
|
542
|
+
*.pem
|
|
532
543
|
|
|
533
544
|
# debug
|
|
534
|
-
npm-debug.log*
|
|
535
|
-
yarn-debug.log*
|
|
536
|
-
yarn-error.log*
|
|
545
|
+
npm - debug.log *
|
|
546
|
+
yarn - debug.log *
|
|
547
|
+
yarn - error.log *
|
|
537
548
|
|
|
538
549
|
# local env files
|
|
539
|
-
.env*.local
|
|
550
|
+
.env *.local
|
|
540
551
|
|
|
541
552
|
# vercel
|
|
542
|
-
.vercel
|
|
553
|
+
.vercel
|
|
543
554
|
|
|
544
555
|
# typescript
|
|
545
|
-
*.tsbuildinfo
|
|
546
|
-
next-env.d.ts
|
|
547
|
-
`;
|
|
556
|
+
*.tsbuildinfo
|
|
557
|
+
next - env.d.ts
|
|
558
|
+
`;
|
|
548
559
|
await fs_extra_1.default.writeFile(path_1.default.join(frontendDir, '.gitignore'), gitignore);
|
|
549
560
|
}
|
|
550
561
|
async function generateVueVite(_config, _frontendDir) {
|
|
@@ -571,8 +582,8 @@ export default function RootLayout({
|
|
|
571
582
|
children: React.ReactNode
|
|
572
583
|
}) {
|
|
573
584
|
return (
|
|
574
|
-
<html lang="en">
|
|
575
|
-
|
|
585
|
+
<html lang= "en" >
|
|
586
|
+
<body>{ children } </body>
|
|
576
587
|
</html>
|
|
577
588
|
)
|
|
578
589
|
}
|
|
@@ -584,8 +595,8 @@ function getNextJSLoginPage(config) {
|
|
|
584
595
|
|
|
585
596
|
export default function LoginPage() {
|
|
586
597
|
return (
|
|
587
|
-
<div className="min-h-screen flex items-center justify-center bg-gray-900">
|
|
588
|
-
|
|
598
|
+
<div className= "min-h-screen flex items-center justify-center bg-gray-900" >
|
|
599
|
+
<SignIn />
|
|
589
600
|
</div>
|
|
590
601
|
)
|
|
591
602
|
}
|
|
@@ -615,40 +626,41 @@ export default function LoginPage() {
|
|
|
615
626
|
}
|
|
616
627
|
|
|
617
628
|
return (
|
|
618
|
-
<div className="min-h-screen flex items-center justify-center bg-gray-900">
|
|
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
|
-
|
|
651
|
-
|
|
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>
|
|
652
664
|
)
|
|
653
665
|
}
|
|
654
666
|
`;
|
|
@@ -667,18 +679,18 @@ export default async function DashboardPage() {
|
|
|
667
679
|
}
|
|
668
680
|
|
|
669
681
|
return (
|
|
670
|
-
<div className="min-h-screen bg-gray-900 text-white">
|
|
671
|
-
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
<UserButton afterSignOutUrl="/" />
|
|
675
|
-
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
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>
|
|
682
694
|
)
|
|
683
695
|
}
|
|
684
696
|
`;
|
|
@@ -717,30 +729,30 @@ export default function DashboardPage() {
|
|
|
717
729
|
|
|
718
730
|
if (loading) {
|
|
719
731
|
return (
|
|
720
|
-
<div className="min-h-screen bg-gray-900 flex items-center justify-center">
|
|
721
|
-
|
|
722
|
-
|
|
732
|
+
<div className= "min-h-screen bg-gray-900 flex items-center justify-center" >
|
|
733
|
+
<div className="text-white" > Loading...</div>
|
|
734
|
+
</div>
|
|
723
735
|
)
|
|
724
736
|
}
|
|
725
737
|
|
|
726
738
|
return (
|
|
727
|
-
<div className="min-h-screen bg-gray-900 text-white">
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
<button
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
</div>
|
|
738
|
-
</nav>
|
|
739
|
-
<div className="container mx-auto px-4 py-16">
|
|
740
|
-
<h2 className="text-3xl font-bold mb-4">Welcome, {user?.email}!</h2>
|
|
741
|
-
<p className="text-gray-400">You're logged in to your dashboard.</p>
|
|
742
|
-
</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>
|
|
743
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>
|
|
744
756
|
)
|
|
745
757
|
}
|
|
746
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"}
|