@stackweld/templates 0.2.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/.turbo/turbo-build.log +4 -0
- package/.turbo/turbo-lint.log +694 -0
- package/.turbo/turbo-test.log +15 -0
- package/.turbo/turbo-typecheck.log +4 -0
- package/dist/__tests__/templates.test.d.ts +2 -0
- package/dist/__tests__/templates.test.d.ts.map +1 -0
- package/dist/__tests__/templates.test.js +81 -0
- package/dist/__tests__/templates.test.js.map +1 -0
- package/dist/index.d.ts +36 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +68 -0
- package/dist/index.js.map +1 -0
- package/dist/templates/astro-landing.d.ts +3 -0
- package/dist/templates/astro-landing.d.ts.map +1 -0
- package/dist/templates/astro-landing.js +36 -0
- package/dist/templates/astro-landing.js.map +1 -0
- package/dist/templates/django-react.d.ts +3 -0
- package/dist/templates/django-react.d.ts.map +1 -0
- package/dist/templates/django-react.js +123 -0
- package/dist/templates/django-react.js.map +1 -0
- package/dist/templates/django-rest-api.d.ts +3 -0
- package/dist/templates/django-rest-api.d.ts.map +1 -0
- package/dist/templates/django-rest-api.js +95 -0
- package/dist/templates/django-rest-api.js.map +1 -0
- package/dist/templates/express-api.d.ts +3 -0
- package/dist/templates/express-api.d.ts.map +1 -0
- package/dist/templates/express-api.js +142 -0
- package/dist/templates/express-api.js.map +1 -0
- package/dist/templates/fastapi-react.d.ts +3 -0
- package/dist/templates/fastapi-react.d.ts.map +1 -0
- package/dist/templates/fastapi-react.js +120 -0
- package/dist/templates/fastapi-react.js.map +1 -0
- package/dist/templates/go-microservice.d.ts +3 -0
- package/dist/templates/go-microservice.d.ts.map +1 -0
- package/dist/templates/go-microservice.js +131 -0
- package/dist/templates/go-microservice.js.map +1 -0
- package/dist/templates/hono-microservice.d.ts +3 -0
- package/dist/templates/hono-microservice.d.ts.map +1 -0
- package/dist/templates/hono-microservice.js +80 -0
- package/dist/templates/hono-microservice.js.map +1 -0
- package/dist/templates/htmx-django.d.ts +3 -0
- package/dist/templates/htmx-django.d.ts.map +1 -0
- package/dist/templates/htmx-django.js +96 -0
- package/dist/templates/htmx-django.js.map +1 -0
- package/dist/templates/laravel-app.d.ts +3 -0
- package/dist/templates/laravel-app.d.ts.map +1 -0
- package/dist/templates/laravel-app.js +95 -0
- package/dist/templates/laravel-app.js.map +1 -0
- package/dist/templates/mern-stack.d.ts +3 -0
- package/dist/templates/mern-stack.d.ts.map +1 -0
- package/dist/templates/mern-stack.js +122 -0
- package/dist/templates/mern-stack.js.map +1 -0
- package/dist/templates/monorepo-starter.d.ts +3 -0
- package/dist/templates/monorepo-starter.d.ts.map +1 -0
- package/dist/templates/monorepo-starter.js +136 -0
- package/dist/templates/monorepo-starter.js.map +1 -0
- package/dist/templates/nestjs-api.d.ts +3 -0
- package/dist/templates/nestjs-api.d.ts.map +1 -0
- package/dist/templates/nestjs-api.js +111 -0
- package/dist/templates/nestjs-api.js.map +1 -0
- package/dist/templates/nuxt3-app.d.ts +3 -0
- package/dist/templates/nuxt3-app.d.ts.map +1 -0
- package/dist/templates/nuxt3-app.js +77 -0
- package/dist/templates/nuxt3-app.js.map +1 -0
- package/dist/templates/python-ai-lab.d.ts +3 -0
- package/dist/templates/python-ai-lab.d.ts.map +1 -0
- package/dist/templates/python-ai-lab.js +152 -0
- package/dist/templates/python-ai-lab.js.map +1 -0
- package/dist/templates/remix-fullstack.d.ts +3 -0
- package/dist/templates/remix-fullstack.d.ts.map +1 -0
- package/dist/templates/remix-fullstack.js +79 -0
- package/dist/templates/remix-fullstack.js.map +1 -0
- package/dist/templates/saas-starter.d.ts +3 -0
- package/dist/templates/saas-starter.d.ts.map +1 -0
- package/dist/templates/saas-starter.js +128 -0
- package/dist/templates/saas-starter.js.map +1 -0
- package/dist/templates/solidstart-app.d.ts +3 -0
- package/dist/templates/solidstart-app.d.ts.map +1 -0
- package/dist/templates/solidstart-app.js +72 -0
- package/dist/templates/solidstart-app.js.map +1 -0
- package/dist/templates/sveltekit-fullstack.d.ts +3 -0
- package/dist/templates/sveltekit-fullstack.d.ts.map +1 -0
- package/dist/templates/sveltekit-fullstack.js +89 -0
- package/dist/templates/sveltekit-fullstack.js.map +1 -0
- package/dist/templates/t3-stack.d.ts +3 -0
- package/dist/templates/t3-stack.d.ts.map +1 -0
- package/dist/templates/t3-stack.js +92 -0
- package/dist/templates/t3-stack.js.map +1 -0
- package/dist/templates/tauri-desktop.d.ts +3 -0
- package/dist/templates/tauri-desktop.d.ts.map +1 -0
- package/dist/templates/tauri-desktop.js +55 -0
- package/dist/templates/tauri-desktop.js.map +1 -0
- package/package.json +33 -0
- package/src/__tests__/templates.test.ts +98 -0
- package/src/index.ts +97 -0
- package/src/templates/astro-landing.ts +40 -0
- package/src/templates/django-react.ts +127 -0
- package/src/templates/django-rest-api.ts +99 -0
- package/src/templates/express-api.ts +147 -0
- package/src/templates/fastapi-react.ts +122 -0
- package/src/templates/go-microservice.ts +133 -0
- package/src/templates/hono-microservice.ts +81 -0
- package/src/templates/htmx-django.ts +100 -0
- package/src/templates/laravel-app.ts +96 -0
- package/src/templates/mern-stack.ts +126 -0
- package/src/templates/monorepo-starter.ts +138 -0
- package/src/templates/nestjs-api.ts +112 -0
- package/src/templates/nuxt3-app.ts +78 -0
- package/src/templates/python-ai-lab.ts +155 -0
- package/src/templates/remix-fullstack.ts +80 -0
- package/src/templates/saas-starter.ts +131 -0
- package/src/templates/solidstart-app.ts +73 -0
- package/src/templates/sveltekit-fullstack.ts +90 -0
- package/src/templates/t3-stack.ts +94 -0
- package/src/templates/tauri-desktop.ts +57 -0
- package/tsconfig.json +10 -0
- package/tsconfig.tsbuildinfo +1 -0
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
export const laravelApp = {
|
|
2
|
+
id: "laravel-app",
|
|
3
|
+
name: "Laravel App",
|
|
4
|
+
description: "Full-stack Laravel application with MySQL, Redis, and Docker",
|
|
5
|
+
technologyIds: ["laravel", "php", "mysql", "redis", "docker"],
|
|
6
|
+
profile: "standard",
|
|
7
|
+
scaffoldSteps: [
|
|
8
|
+
{
|
|
9
|
+
name: "Create Laravel project",
|
|
10
|
+
command: "composer create-project laravel/laravel {{projectName}}",
|
|
11
|
+
},
|
|
12
|
+
],
|
|
13
|
+
overrides: [
|
|
14
|
+
{
|
|
15
|
+
path: ".env.example",
|
|
16
|
+
content: [
|
|
17
|
+
"APP_NAME={{projectName}}",
|
|
18
|
+
"APP_ENV=local",
|
|
19
|
+
"APP_KEY=",
|
|
20
|
+
"APP_DEBUG=true",
|
|
21
|
+
"APP_URL=http://localhost:8000",
|
|
22
|
+
"",
|
|
23
|
+
"DB_CONNECTION=mysql",
|
|
24
|
+
"DB_HOST=127.0.0.1",
|
|
25
|
+
"DB_PORT=3306",
|
|
26
|
+
"DB_DATABASE={{projectName}}",
|
|
27
|
+
"DB_USERNAME=root",
|
|
28
|
+
"DB_PASSWORD=secret",
|
|
29
|
+
"",
|
|
30
|
+
"REDIS_HOST=127.0.0.1",
|
|
31
|
+
"REDIS_PASSWORD=null",
|
|
32
|
+
"REDIS_PORT=6379",
|
|
33
|
+
"",
|
|
34
|
+
"CACHE_STORE=redis",
|
|
35
|
+
"SESSION_DRIVER=redis",
|
|
36
|
+
"QUEUE_CONNECTION=redis",
|
|
37
|
+
].join("\n"),
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
path: "docker-compose.yml",
|
|
41
|
+
content: [
|
|
42
|
+
"services:",
|
|
43
|
+
" mysql:",
|
|
44
|
+
" image: mysql:8.4",
|
|
45
|
+
" restart: unless-stopped",
|
|
46
|
+
" ports:",
|
|
47
|
+
' - "3306:3306"',
|
|
48
|
+
" environment:",
|
|
49
|
+
" MYSQL_ROOT_PASSWORD: secret",
|
|
50
|
+
" MYSQL_DATABASE: {{projectName}}",
|
|
51
|
+
" volumes:",
|
|
52
|
+
" - mysqldata:/var/lib/mysql",
|
|
53
|
+
" healthcheck:",
|
|
54
|
+
' test: ["CMD", "mysqladmin", "ping", "-h", "localhost"]',
|
|
55
|
+
" interval: 10s",
|
|
56
|
+
" timeout: 5s",
|
|
57
|
+
" retries: 5",
|
|
58
|
+
"",
|
|
59
|
+
" redis:",
|
|
60
|
+
" image: redis:7-alpine",
|
|
61
|
+
" restart: unless-stopped",
|
|
62
|
+
" ports:",
|
|
63
|
+
' - "6379:6379"',
|
|
64
|
+
" healthcheck:",
|
|
65
|
+
' test: ["CMD", "redis-cli", "ping"]',
|
|
66
|
+
" interval: 5s",
|
|
67
|
+
" timeout: 5s",
|
|
68
|
+
" retries: 5",
|
|
69
|
+
"",
|
|
70
|
+
"volumes:",
|
|
71
|
+
" mysqldata:",
|
|
72
|
+
].join("\n"),
|
|
73
|
+
},
|
|
74
|
+
],
|
|
75
|
+
hooks: [
|
|
76
|
+
{
|
|
77
|
+
timing: "post-scaffold",
|
|
78
|
+
name: "Generate app key",
|
|
79
|
+
command: "cd {{projectName}} && php artisan key:generate",
|
|
80
|
+
description: "Generate Laravel application encryption key",
|
|
81
|
+
requiresConfirmation: false,
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
timing: "post-scaffold",
|
|
85
|
+
name: "Run migrations",
|
|
86
|
+
command: "cd {{projectName}} && php artisan migrate",
|
|
87
|
+
description: "Run database migrations (requires running MySQL)",
|
|
88
|
+
requiresConfirmation: true,
|
|
89
|
+
},
|
|
90
|
+
],
|
|
91
|
+
variables: {
|
|
92
|
+
projectName: "my-laravel-app",
|
|
93
|
+
},
|
|
94
|
+
};
|
|
95
|
+
//# sourceMappingURL=laravel-app.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"laravel-app.js","sourceRoot":"","sources":["../../src/templates/laravel-app.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,UAAU,GAAa;IAClC,EAAE,EAAE,aAAa;IACjB,IAAI,EAAE,aAAa;IACnB,WAAW,EAAE,8DAA8D;IAC3E,aAAa,EAAE,CAAC,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC;IAC7D,OAAO,EAAE,UAAU;IACnB,aAAa,EAAE;QACb;YACE,IAAI,EAAE,wBAAwB;YAC9B,OAAO,EAAE,yDAAyD;SACnE;KACF;IACD,SAAS,EAAE;QACT;YACE,IAAI,EAAE,cAAc;YACpB,OAAO,EAAE;gBACP,0BAA0B;gBAC1B,eAAe;gBACf,UAAU;gBACV,gBAAgB;gBAChB,+BAA+B;gBAC/B,EAAE;gBACF,qBAAqB;gBACrB,mBAAmB;gBACnB,cAAc;gBACd,6BAA6B;gBAC7B,kBAAkB;gBAClB,oBAAoB;gBACpB,EAAE;gBACF,sBAAsB;gBACtB,qBAAqB;gBACrB,iBAAiB;gBACjB,EAAE;gBACF,mBAAmB;gBACnB,sBAAsB;gBACtB,wBAAwB;aACzB,CAAC,IAAI,CAAC,IAAI,CAAC;SACb;QACD;YACE,IAAI,EAAE,oBAAoB;YAC1B,OAAO,EAAE;gBACP,WAAW;gBACX,UAAU;gBACV,sBAAsB;gBACtB,6BAA6B;gBAC7B,YAAY;gBACZ,qBAAqB;gBACrB,kBAAkB;gBAClB,mCAAmC;gBACnC,uCAAuC;gBACvC,cAAc;gBACd,kCAAkC;gBAClC,kBAAkB;gBAClB,8DAA8D;gBAC9D,qBAAqB;gBACrB,mBAAmB;gBACnB,kBAAkB;gBAClB,EAAE;gBACF,UAAU;gBACV,2BAA2B;gBAC3B,6BAA6B;gBAC7B,YAAY;gBACZ,qBAAqB;gBACrB,kBAAkB;gBAClB,0CAA0C;gBAC1C,oBAAoB;gBACpB,mBAAmB;gBACnB,kBAAkB;gBAClB,EAAE;gBACF,UAAU;gBACV,cAAc;aACf,CAAC,IAAI,CAAC,IAAI,CAAC;SACb;KACF;IACD,KAAK,EAAE;QACL;YACE,MAAM,EAAE,eAAe;YACvB,IAAI,EAAE,kBAAkB;YACxB,OAAO,EAAE,gDAAgD;YACzD,WAAW,EAAE,6CAA6C;YAC1D,oBAAoB,EAAE,KAAK;SAC5B;QACD;YACE,MAAM,EAAE,eAAe;YACvB,IAAI,EAAE,gBAAgB;YACtB,OAAO,EAAE,2CAA2C;YACpD,WAAW,EAAE,kDAAkD;YAC/D,oBAAoB,EAAE,IAAI;SAC3B;KACF;IACD,SAAS,EAAE;QACT,WAAW,EAAE,gBAAgB;KAC9B;CACF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mern-stack.d.ts","sourceRoot":"","sources":["../../src/templates/mern-stack.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAEhD,eAAO,MAAM,SAAS,EAAE,QA2HvB,CAAC"}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
export const mernStack = {
|
|
2
|
+
id: "mern-stack",
|
|
3
|
+
name: "MERN Stack",
|
|
4
|
+
description: "Full-stack MERN app with React, Express, MongoDB, Node.js, TypeScript, and Tailwind CSS",
|
|
5
|
+
technologyIds: ["react", "nodejs", "express", "mongodb", "typescript", "tailwindcss"],
|
|
6
|
+
profile: "standard",
|
|
7
|
+
scaffoldSteps: [
|
|
8
|
+
{
|
|
9
|
+
name: "Create React frontend",
|
|
10
|
+
command: "npx create-vite@latest {{projectName}}/frontend -- --template react-ts",
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
name: "Install Tailwind in frontend",
|
|
14
|
+
command: "cd {{projectName}}/frontend && npm install -D tailwindcss @tailwindcss/vite",
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
name: "Create backend directory",
|
|
18
|
+
command: "mkdir -p {{projectName}}/backend/src",
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
name: "Initialize backend",
|
|
22
|
+
command: "cd {{projectName}}/backend && npm init -y",
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
name: "Install backend dependencies",
|
|
26
|
+
command: "cd {{projectName}}/backend && npm install express cors helmet dotenv mongoose",
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
name: "Install backend dev dependencies",
|
|
30
|
+
command: "cd {{projectName}}/backend && npm install -D typescript @types/node @types/express @types/cors tsx",
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
name: "Initialize TypeScript",
|
|
34
|
+
command: "cd {{projectName}}/backend && npx tsc --init --outDir dist --rootDir src --strict --esModuleInterop --resolveJsonModule",
|
|
35
|
+
},
|
|
36
|
+
],
|
|
37
|
+
overrides: [
|
|
38
|
+
{
|
|
39
|
+
path: ".env.example",
|
|
40
|
+
content: [
|
|
41
|
+
"# Backend",
|
|
42
|
+
"PORT=3001",
|
|
43
|
+
"NODE_ENV=development",
|
|
44
|
+
"MONGODB_URI=mongodb://localhost:27017/{{projectName}}",
|
|
45
|
+
"CORS_ORIGIN=http://localhost:5173",
|
|
46
|
+
"",
|
|
47
|
+
"# Frontend",
|
|
48
|
+
"VITE_API_URL=http://localhost:3001",
|
|
49
|
+
].join("\n"),
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
path: "docker-compose.yml",
|
|
53
|
+
content: [
|
|
54
|
+
"services:",
|
|
55
|
+
" mongo:",
|
|
56
|
+
" image: mongo:7",
|
|
57
|
+
" restart: unless-stopped",
|
|
58
|
+
" ports:",
|
|
59
|
+
' - "27017:27017"',
|
|
60
|
+
" volumes:",
|
|
61
|
+
" - mongodata:/data/db",
|
|
62
|
+
" healthcheck:",
|
|
63
|
+
' test: ["CMD", "mongosh", "--eval", "db.adminCommand(\'ping\')"]',
|
|
64
|
+
" interval: 10s",
|
|
65
|
+
" timeout: 5s",
|
|
66
|
+
" retries: 5",
|
|
67
|
+
"",
|
|
68
|
+
"volumes:",
|
|
69
|
+
" mongodata:",
|
|
70
|
+
].join("\n"),
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
path: "backend/src/index.ts",
|
|
74
|
+
content: [
|
|
75
|
+
'import express from "express";',
|
|
76
|
+
'import cors from "cors";',
|
|
77
|
+
'import helmet from "helmet";',
|
|
78
|
+
'import dotenv from "dotenv";',
|
|
79
|
+
'import mongoose from "mongoose";',
|
|
80
|
+
"",
|
|
81
|
+
"dotenv.config();",
|
|
82
|
+
"",
|
|
83
|
+
"const app = express();",
|
|
84
|
+
"const port = process.env.PORT || 3001;",
|
|
85
|
+
"",
|
|
86
|
+
"app.use(helmet());",
|
|
87
|
+
"app.use(cors({ origin: process.env.CORS_ORIGIN }));",
|
|
88
|
+
"app.use(express.json());",
|
|
89
|
+
"",
|
|
90
|
+
'app.get("/health", (_req, res) => {',
|
|
91
|
+
' res.json({ status: "ok" });',
|
|
92
|
+
"});",
|
|
93
|
+
"",
|
|
94
|
+
"mongoose",
|
|
95
|
+
' .connect(process.env.MONGODB_URI || "mongodb://localhost:27017/app")',
|
|
96
|
+
" .then(() => {",
|
|
97
|
+
' console.log("Connected to MongoDB");',
|
|
98
|
+
" app.listen(port, () => {",
|
|
99
|
+
" console.log(`Server running on port ${port}`);",
|
|
100
|
+
" });",
|
|
101
|
+
" })",
|
|
102
|
+
" .catch((err) => {",
|
|
103
|
+
' console.error("MongoDB connection error:", err);',
|
|
104
|
+
" process.exit(1);",
|
|
105
|
+
" });",
|
|
106
|
+
].join("\n"),
|
|
107
|
+
},
|
|
108
|
+
],
|
|
109
|
+
hooks: [
|
|
110
|
+
{
|
|
111
|
+
timing: "post-scaffold",
|
|
112
|
+
name: "Install frontend dependencies",
|
|
113
|
+
command: "cd {{projectName}}/frontend && npm install",
|
|
114
|
+
description: "Install npm dependencies for the React frontend",
|
|
115
|
+
requiresConfirmation: false,
|
|
116
|
+
},
|
|
117
|
+
],
|
|
118
|
+
variables: {
|
|
119
|
+
projectName: "my-mern-app",
|
|
120
|
+
},
|
|
121
|
+
};
|
|
122
|
+
//# sourceMappingURL=mern-stack.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mern-stack.js","sourceRoot":"","sources":["../../src/templates/mern-stack.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,SAAS,GAAa;IACjC,EAAE,EAAE,YAAY;IAChB,IAAI,EAAE,YAAY;IAClB,WAAW,EACT,yFAAyF;IAC3F,aAAa,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,CAAC;IACrF,OAAO,EAAE,UAAU;IACnB,aAAa,EAAE;QACb;YACE,IAAI,EAAE,uBAAuB;YAC7B,OAAO,EAAE,wEAAwE;SAClF;QACD;YACE,IAAI,EAAE,8BAA8B;YACpC,OAAO,EAAE,6EAA6E;SACvF;QACD;YACE,IAAI,EAAE,0BAA0B;YAChC,OAAO,EAAE,sCAAsC;SAChD;QACD;YACE,IAAI,EAAE,oBAAoB;YAC1B,OAAO,EAAE,2CAA2C;SACrD;QACD;YACE,IAAI,EAAE,8BAA8B;YACpC,OAAO,EAAE,+EAA+E;SACzF;QACD;YACE,IAAI,EAAE,kCAAkC;YACxC,OAAO,EACL,oGAAoG;SACvG;QACD;YACE,IAAI,EAAE,uBAAuB;YAC7B,OAAO,EACL,yHAAyH;SAC5H;KACF;IACD,SAAS,EAAE;QACT;YACE,IAAI,EAAE,cAAc;YACpB,OAAO,EAAE;gBACP,WAAW;gBACX,WAAW;gBACX,sBAAsB;gBACtB,uDAAuD;gBACvD,mCAAmC;gBACnC,EAAE;gBACF,YAAY;gBACZ,oCAAoC;aACrC,CAAC,IAAI,CAAC,IAAI,CAAC;SACb;QACD;YACE,IAAI,EAAE,oBAAoB;YAC1B,OAAO,EAAE;gBACP,WAAW;gBACX,UAAU;gBACV,oBAAoB;gBACpB,6BAA6B;gBAC7B,YAAY;gBACZ,uBAAuB;gBACvB,cAAc;gBACd,4BAA4B;gBAC5B,kBAAkB;gBAClB,uEAAuE;gBACvE,qBAAqB;gBACrB,mBAAmB;gBACnB,kBAAkB;gBAClB,EAAE;gBACF,UAAU;gBACV,cAAc;aACf,CAAC,IAAI,CAAC,IAAI,CAAC;SACb;QACD;YACE,IAAI,EAAE,sBAAsB;YAC5B,OAAO,EAAE;gBACP,gCAAgC;gBAChC,0BAA0B;gBAC1B,8BAA8B;gBAC9B,8BAA8B;gBAC9B,kCAAkC;gBAClC,EAAE;gBACF,kBAAkB;gBAClB,EAAE;gBACF,wBAAwB;gBACxB,wCAAwC;gBACxC,EAAE;gBACF,oBAAoB;gBACpB,qDAAqD;gBACrD,0BAA0B;gBAC1B,EAAE;gBACF,qCAAqC;gBACrC,+BAA+B;gBAC/B,KAAK;gBACL,EAAE;gBACF,UAAU;gBACV,wEAAwE;gBACxE,iBAAiB;gBACjB,0CAA0C;gBAC1C,8BAA8B;gBAC9B,sDAAsD;gBACtD,SAAS;gBACT,MAAM;gBACN,qBAAqB;gBACrB,sDAAsD;gBACtD,sBAAsB;gBACtB,OAAO;aACR,CAAC,IAAI,CAAC,IAAI,CAAC;SACb;KACF;IACD,KAAK,EAAE;QACL;YACE,MAAM,EAAE,eAAe;YACvB,IAAI,EAAE,+BAA+B;YACrC,OAAO,EAAE,4CAA4C;YACrD,WAAW,EAAE,iDAAiD;YAC9D,oBAAoB,EAAE,KAAK;SAC5B;KACF;IACD,SAAS,EAAE;QACT,WAAW,EAAE,aAAa;KAC3B;CACF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"monorepo-starter.d.ts","sourceRoot":"","sources":["../../src/templates/monorepo-starter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAEhD,eAAO,MAAM,eAAe,EAAE,QAuI7B,CAAC"}
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
export const monorepoStarter = {
|
|
2
|
+
id: "monorepo-starter",
|
|
3
|
+
name: "Monorepo Starter",
|
|
4
|
+
description: "Turborepo monorepo with Next.js frontend, Express API, shared packages, Prisma, PostgreSQL, Biome, and Vitest",
|
|
5
|
+
technologyIds: [
|
|
6
|
+
"nextjs",
|
|
7
|
+
"react",
|
|
8
|
+
"express",
|
|
9
|
+
"nodejs",
|
|
10
|
+
"typescript",
|
|
11
|
+
"tailwindcss",
|
|
12
|
+
"prisma",
|
|
13
|
+
"postgresql",
|
|
14
|
+
"turborepo",
|
|
15
|
+
"pnpm",
|
|
16
|
+
"biome",
|
|
17
|
+
"vitest",
|
|
18
|
+
],
|
|
19
|
+
profile: "enterprise",
|
|
20
|
+
scaffoldSteps: [
|
|
21
|
+
{
|
|
22
|
+
name: "Create Turborepo project",
|
|
23
|
+
command: "npx create-turbo@latest {{projectName}} --package-manager pnpm",
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
name: "Create API package directory",
|
|
27
|
+
command: "mkdir -p {{projectName}}/apps/api/src",
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
name: "Create shared packages directory",
|
|
31
|
+
command: "mkdir -p {{projectName}}/packages/{db,shared}",
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
name: "Install Prisma in db package",
|
|
35
|
+
command: "cd {{projectName}}/packages/db && pnpm init && pnpm add prisma @prisma/client",
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
name: "Initialize Prisma",
|
|
39
|
+
command: "cd {{projectName}}/packages/db && npx prisma init --datasource-provider postgresql",
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
name: "Install Biome",
|
|
43
|
+
command: "cd {{projectName}} && pnpm add -Dw @biomejs/biome",
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
name: "Install Vitest",
|
|
47
|
+
command: "cd {{projectName}} && pnpm add -Dw vitest",
|
|
48
|
+
},
|
|
49
|
+
],
|
|
50
|
+
overrides: [
|
|
51
|
+
{
|
|
52
|
+
path: ".env.example",
|
|
53
|
+
content: [
|
|
54
|
+
"# Database",
|
|
55
|
+
"DATABASE_URL=postgresql://postgres:postgres@localhost:5432/{{projectName}}",
|
|
56
|
+
"",
|
|
57
|
+
"# API",
|
|
58
|
+
"API_PORT=3001",
|
|
59
|
+
"NODE_ENV=development",
|
|
60
|
+
"",
|
|
61
|
+
"# Frontend",
|
|
62
|
+
"NEXT_PUBLIC_API_URL=http://localhost:3001",
|
|
63
|
+
].join("\n"),
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
path: "docker-compose.yml",
|
|
67
|
+
content: [
|
|
68
|
+
"services:",
|
|
69
|
+
" db:",
|
|
70
|
+
" image: postgres:17",
|
|
71
|
+
" restart: unless-stopped",
|
|
72
|
+
" ports:",
|
|
73
|
+
' - "5432:5432"',
|
|
74
|
+
" environment:",
|
|
75
|
+
" POSTGRES_USER: postgres",
|
|
76
|
+
" POSTGRES_PASSWORD: postgres",
|
|
77
|
+
" POSTGRES_DB: {{projectName}}",
|
|
78
|
+
" volumes:",
|
|
79
|
+
" - pgdata:/var/lib/postgresql/data",
|
|
80
|
+
" healthcheck:",
|
|
81
|
+
' test: ["CMD-SHELL", "pg_isready -U postgres"]',
|
|
82
|
+
" interval: 5s",
|
|
83
|
+
" timeout: 5s",
|
|
84
|
+
" retries: 5",
|
|
85
|
+
"",
|
|
86
|
+
"volumes:",
|
|
87
|
+
" pgdata:",
|
|
88
|
+
].join("\n"),
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
path: "biome.json",
|
|
92
|
+
content: [
|
|
93
|
+
"{",
|
|
94
|
+
' "$schema": "https://biomejs.dev/schemas/2.0.0/schema.json",',
|
|
95
|
+
' "formatter": {',
|
|
96
|
+
' "indentStyle": "space",',
|
|
97
|
+
' "indentWidth": 2,',
|
|
98
|
+
' "lineWidth": 100',
|
|
99
|
+
" },",
|
|
100
|
+
' "linter": {',
|
|
101
|
+
' "rules": {',
|
|
102
|
+
' "recommended": true',
|
|
103
|
+
" }",
|
|
104
|
+
" }",
|
|
105
|
+
"}",
|
|
106
|
+
].join("\n"),
|
|
107
|
+
},
|
|
108
|
+
],
|
|
109
|
+
hooks: [
|
|
110
|
+
{
|
|
111
|
+
timing: "post-scaffold",
|
|
112
|
+
name: "Install all dependencies",
|
|
113
|
+
command: "cd {{projectName}} && pnpm install",
|
|
114
|
+
description: "Install all workspace dependencies",
|
|
115
|
+
requiresConfirmation: false,
|
|
116
|
+
},
|
|
117
|
+
{
|
|
118
|
+
timing: "post-scaffold",
|
|
119
|
+
name: "Generate Prisma client",
|
|
120
|
+
command: "cd {{projectName}}/packages/db && npx prisma generate",
|
|
121
|
+
description: "Generate the Prisma client from schema",
|
|
122
|
+
requiresConfirmation: false,
|
|
123
|
+
},
|
|
124
|
+
{
|
|
125
|
+
timing: "post-scaffold",
|
|
126
|
+
name: "Build packages",
|
|
127
|
+
command: "cd {{projectName}} && pnpm build",
|
|
128
|
+
description: "Build all packages in the monorepo",
|
|
129
|
+
requiresConfirmation: true,
|
|
130
|
+
},
|
|
131
|
+
],
|
|
132
|
+
variables: {
|
|
133
|
+
projectName: "my-monorepo",
|
|
134
|
+
},
|
|
135
|
+
};
|
|
136
|
+
//# sourceMappingURL=monorepo-starter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"monorepo-starter.js","sourceRoot":"","sources":["../../src/templates/monorepo-starter.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,eAAe,GAAa;IACvC,EAAE,EAAE,kBAAkB;IACtB,IAAI,EAAE,kBAAkB;IACxB,WAAW,EACT,+GAA+G;IACjH,aAAa,EAAE;QACb,QAAQ;QACR,OAAO;QACP,SAAS;QACT,QAAQ;QACR,YAAY;QACZ,aAAa;QACb,QAAQ;QACR,YAAY;QACZ,WAAW;QACX,MAAM;QACN,OAAO;QACP,QAAQ;KACT;IACD,OAAO,EAAE,YAAY;IACrB,aAAa,EAAE;QACb;YACE,IAAI,EAAE,0BAA0B;YAChC,OAAO,EAAE,gEAAgE;SAC1E;QACD;YACE,IAAI,EAAE,8BAA8B;YACpC,OAAO,EAAE,uCAAuC;SACjD;QACD;YACE,IAAI,EAAE,kCAAkC;YACxC,OAAO,EAAE,+CAA+C;SACzD;QACD;YACE,IAAI,EAAE,8BAA8B;YACpC,OAAO,EAAE,+EAA+E;SACzF;QACD;YACE,IAAI,EAAE,mBAAmB;YACzB,OAAO,EAAE,oFAAoF;SAC9F;QACD;YACE,IAAI,EAAE,eAAe;YACrB,OAAO,EAAE,mDAAmD;SAC7D;QACD;YACE,IAAI,EAAE,gBAAgB;YACtB,OAAO,EAAE,2CAA2C;SACrD;KACF;IACD,SAAS,EAAE;QACT;YACE,IAAI,EAAE,cAAc;YACpB,OAAO,EAAE;gBACP,YAAY;gBACZ,4EAA4E;gBAC5E,EAAE;gBACF,OAAO;gBACP,eAAe;gBACf,sBAAsB;gBACtB,EAAE;gBACF,YAAY;gBACZ,2CAA2C;aAC5C,CAAC,IAAI,CAAC,IAAI,CAAC;SACb;QACD;YACE,IAAI,EAAE,oBAAoB;YAC1B,OAAO,EAAE;gBACP,WAAW;gBACX,OAAO;gBACP,wBAAwB;gBACxB,6BAA6B;gBAC7B,YAAY;gBACZ,qBAAqB;gBACrB,kBAAkB;gBAClB,+BAA+B;gBAC/B,mCAAmC;gBACnC,oCAAoC;gBACpC,cAAc;gBACd,yCAAyC;gBACzC,kBAAkB;gBAClB,qDAAqD;gBACrD,oBAAoB;gBACpB,mBAAmB;gBACnB,kBAAkB;gBAClB,EAAE;gBACF,UAAU;gBACV,WAAW;aACZ,CAAC,IAAI,CAAC,IAAI,CAAC;SACb;QACD;YACE,IAAI,EAAE,YAAY;YAClB,OAAO,EAAE;gBACP,GAAG;gBACH,+DAA+D;gBAC/D,kBAAkB;gBAClB,6BAA6B;gBAC7B,uBAAuB;gBACvB,sBAAsB;gBACtB,MAAM;gBACN,eAAe;gBACf,gBAAgB;gBAChB,2BAA2B;gBAC3B,OAAO;gBACP,KAAK;gBACL,GAAG;aACJ,CAAC,IAAI,CAAC,IAAI,CAAC;SACb;KACF;IACD,KAAK,EAAE;QACL;YACE,MAAM,EAAE,eAAe;YACvB,IAAI,EAAE,0BAA0B;YAChC,OAAO,EAAE,oCAAoC;YAC7C,WAAW,EAAE,oCAAoC;YACjD,oBAAoB,EAAE,KAAK;SAC5B;QACD;YACE,MAAM,EAAE,eAAe;YACvB,IAAI,EAAE,wBAAwB;YAC9B,OAAO,EAAE,uDAAuD;YAChE,WAAW,EAAE,wCAAwC;YACrD,oBAAoB,EAAE,KAAK;SAC5B;QACD;YACE,MAAM,EAAE,eAAe;YACvB,IAAI,EAAE,gBAAgB;YACtB,OAAO,EAAE,kCAAkC;YAC3C,WAAW,EAAE,oCAAoC;YACjD,oBAAoB,EAAE,IAAI;SAC3B;KACF;IACD,SAAS,EAAE;QACT,WAAW,EAAE,aAAa;KAC3B;CACF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nestjs-api.d.ts","sourceRoot":"","sources":["../../src/templates/nestjs-api.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAEhD,eAAO,MAAM,SAAS,EAAE,QA6GvB,CAAC"}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
export const nestjsApi = {
|
|
2
|
+
id: "nestjs-api",
|
|
3
|
+
name: "NestJS API",
|
|
4
|
+
description: "Production-ready NestJS REST API with Prisma, PostgreSQL, Redis, and Docker",
|
|
5
|
+
technologyIds: ["nestjs", "nodejs", "typescript", "prisma", "postgresql", "redis", "docker"],
|
|
6
|
+
profile: "production",
|
|
7
|
+
scaffoldSteps: [
|
|
8
|
+
{
|
|
9
|
+
name: "Create NestJS project",
|
|
10
|
+
command: "npx @nestjs/cli new {{projectName}} --package-manager npm --strict",
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
name: "Install Prisma",
|
|
14
|
+
command: "cd {{projectName}} && npm install prisma @prisma/client",
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
name: "Initialize Prisma",
|
|
18
|
+
command: "cd {{projectName}} && npx prisma init --datasource-provider postgresql",
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
name: "Install Redis and config",
|
|
22
|
+
command: "cd {{projectName}} && npm install @nestjs/config ioredis @nestjs-modules/ioredis",
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
name: "Install validation",
|
|
26
|
+
command: "cd {{projectName}} && npm install class-validator class-transformer",
|
|
27
|
+
},
|
|
28
|
+
],
|
|
29
|
+
overrides: [
|
|
30
|
+
{
|
|
31
|
+
path: ".env.example",
|
|
32
|
+
content: [
|
|
33
|
+
"PORT=3000",
|
|
34
|
+
"NODE_ENV=development",
|
|
35
|
+
"DATABASE_URL=postgresql://postgres:postgres@localhost:5432/{{projectName}}",
|
|
36
|
+
"REDIS_URL=redis://localhost:6379",
|
|
37
|
+
].join("\n"),
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
path: "docker-compose.yml",
|
|
41
|
+
content: [
|
|
42
|
+
"services:",
|
|
43
|
+
" db:",
|
|
44
|
+
" image: postgres:17",
|
|
45
|
+
" restart: unless-stopped",
|
|
46
|
+
" ports:",
|
|
47
|
+
' - "5432:5432"',
|
|
48
|
+
" environment:",
|
|
49
|
+
" POSTGRES_USER: postgres",
|
|
50
|
+
" POSTGRES_PASSWORD: postgres",
|
|
51
|
+
" POSTGRES_DB: {{projectName}}",
|
|
52
|
+
" volumes:",
|
|
53
|
+
" - pgdata:/var/lib/postgresql/data",
|
|
54
|
+
" healthcheck:",
|
|
55
|
+
' test: ["CMD-SHELL", "pg_isready -U postgres"]',
|
|
56
|
+
" interval: 5s",
|
|
57
|
+
" timeout: 5s",
|
|
58
|
+
" retries: 5",
|
|
59
|
+
"",
|
|
60
|
+
" redis:",
|
|
61
|
+
" image: redis:7-alpine",
|
|
62
|
+
" restart: unless-stopped",
|
|
63
|
+
" ports:",
|
|
64
|
+
' - "6379:6379"',
|
|
65
|
+
" healthcheck:",
|
|
66
|
+
' test: ["CMD", "redis-cli", "ping"]',
|
|
67
|
+
" interval: 5s",
|
|
68
|
+
" timeout: 5s",
|
|
69
|
+
" retries: 5",
|
|
70
|
+
"",
|
|
71
|
+
"volumes:",
|
|
72
|
+
" pgdata:",
|
|
73
|
+
].join("\n"),
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
path: "Dockerfile",
|
|
77
|
+
content: [
|
|
78
|
+
"FROM node:22-alpine AS builder",
|
|
79
|
+
"WORKDIR /app",
|
|
80
|
+
"COPY package*.json ./",
|
|
81
|
+
"RUN npm ci",
|
|
82
|
+
"COPY . .",
|
|
83
|
+
"RUN npx prisma generate",
|
|
84
|
+
"RUN npm run build",
|
|
85
|
+
"",
|
|
86
|
+
"FROM node:22-alpine",
|
|
87
|
+
"WORKDIR /app",
|
|
88
|
+
"COPY package*.json ./",
|
|
89
|
+
"RUN npm ci --omit=dev",
|
|
90
|
+
"COPY --from=builder /app/dist ./dist",
|
|
91
|
+
"COPY --from=builder /app/node_modules/.prisma ./node_modules/.prisma",
|
|
92
|
+
"COPY prisma ./prisma",
|
|
93
|
+
"EXPOSE 3000",
|
|
94
|
+
'CMD ["node", "dist/main.js"]',
|
|
95
|
+
].join("\n"),
|
|
96
|
+
},
|
|
97
|
+
],
|
|
98
|
+
hooks: [
|
|
99
|
+
{
|
|
100
|
+
timing: "post-scaffold",
|
|
101
|
+
name: "Generate Prisma client",
|
|
102
|
+
command: "cd {{projectName}} && npx prisma generate",
|
|
103
|
+
description: "Generate the Prisma client from schema",
|
|
104
|
+
requiresConfirmation: false,
|
|
105
|
+
},
|
|
106
|
+
],
|
|
107
|
+
variables: {
|
|
108
|
+
projectName: "my-nestjs-api",
|
|
109
|
+
},
|
|
110
|
+
};
|
|
111
|
+
//# sourceMappingURL=nestjs-api.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nestjs-api.js","sourceRoot":"","sources":["../../src/templates/nestjs-api.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,SAAS,GAAa;IACjC,EAAE,EAAE,YAAY;IAChB,IAAI,EAAE,YAAY;IAClB,WAAW,EAAE,6EAA6E;IAC1F,aAAa,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,CAAC;IAC5F,OAAO,EAAE,YAAY;IACrB,aAAa,EAAE;QACb;YACE,IAAI,EAAE,uBAAuB;YAC7B,OAAO,EAAE,oEAAoE;SAC9E;QACD;YACE,IAAI,EAAE,gBAAgB;YACtB,OAAO,EAAE,yDAAyD;SACnE;QACD;YACE,IAAI,EAAE,mBAAmB;YACzB,OAAO,EAAE,wEAAwE;SAClF;QACD;YACE,IAAI,EAAE,0BAA0B;YAChC,OAAO,EAAE,kFAAkF;SAC5F;QACD;YACE,IAAI,EAAE,oBAAoB;YAC1B,OAAO,EAAE,qEAAqE;SAC/E;KACF;IACD,SAAS,EAAE;QACT;YACE,IAAI,EAAE,cAAc;YACpB,OAAO,EAAE;gBACP,WAAW;gBACX,sBAAsB;gBACtB,4EAA4E;gBAC5E,kCAAkC;aACnC,CAAC,IAAI,CAAC,IAAI,CAAC;SACb;QACD;YACE,IAAI,EAAE,oBAAoB;YAC1B,OAAO,EAAE;gBACP,WAAW;gBACX,OAAO;gBACP,wBAAwB;gBACxB,6BAA6B;gBAC7B,YAAY;gBACZ,qBAAqB;gBACrB,kBAAkB;gBAClB,+BAA+B;gBAC/B,mCAAmC;gBACnC,oCAAoC;gBACpC,cAAc;gBACd,yCAAyC;gBACzC,kBAAkB;gBAClB,qDAAqD;gBACrD,oBAAoB;gBACpB,mBAAmB;gBACnB,kBAAkB;gBAClB,EAAE;gBACF,UAAU;gBACV,2BAA2B;gBAC3B,6BAA6B;gBAC7B,YAAY;gBACZ,qBAAqB;gBACrB,kBAAkB;gBAClB,0CAA0C;gBAC1C,oBAAoB;gBACpB,mBAAmB;gBACnB,kBAAkB;gBAClB,EAAE;gBACF,UAAU;gBACV,WAAW;aACZ,CAAC,IAAI,CAAC,IAAI,CAAC;SACb;QACD;YACE,IAAI,EAAE,YAAY;YAClB,OAAO,EAAE;gBACP,gCAAgC;gBAChC,cAAc;gBACd,uBAAuB;gBACvB,YAAY;gBACZ,UAAU;gBACV,yBAAyB;gBACzB,mBAAmB;gBACnB,EAAE;gBACF,qBAAqB;gBACrB,cAAc;gBACd,uBAAuB;gBACvB,uBAAuB;gBACvB,sCAAsC;gBACtC,sEAAsE;gBACtE,sBAAsB;gBACtB,aAAa;gBACb,8BAA8B;aAC/B,CAAC,IAAI,CAAC,IAAI,CAAC;SACb;KACF;IACD,KAAK,EAAE;QACL;YACE,MAAM,EAAE,eAAe;YACvB,IAAI,EAAE,wBAAwB;YAC9B,OAAO,EAAE,2CAA2C;YACpD,WAAW,EAAE,wCAAwC;YACrD,oBAAoB,EAAE,KAAK;SAC5B;KACF;IACD,SAAS,EAAE;QACT,WAAW,EAAE,eAAe;KAC7B;CACF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nuxt3-app.d.ts","sourceRoot":"","sources":["../../src/templates/nuxt3-app.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAEhD,eAAO,MAAM,QAAQ,EAAE,QA2EtB,CAAC"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
export const nuxt3App = {
|
|
2
|
+
id: "nuxt3-app",
|
|
3
|
+
name: "Nuxt 3 App",
|
|
4
|
+
description: "Full-stack Nuxt 3 application with Vue, Tailwind CSS, and PostgreSQL",
|
|
5
|
+
technologyIds: ["nuxt", "vue", "nodejs", "typescript", "tailwindcss", "postgresql"],
|
|
6
|
+
profile: "standard",
|
|
7
|
+
scaffoldSteps: [
|
|
8
|
+
{
|
|
9
|
+
name: "Create Nuxt 3 project",
|
|
10
|
+
command: "npx nuxi@latest init {{projectName}}",
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
name: "Install Tailwind CSS module",
|
|
14
|
+
command: "npm install -D @nuxtjs/tailwindcss",
|
|
15
|
+
workingDir: "{{projectName}}",
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
name: "Install database dependencies",
|
|
19
|
+
command: "npm install postgres drizzle-orm && npm install -D drizzle-kit",
|
|
20
|
+
workingDir: "{{projectName}}",
|
|
21
|
+
},
|
|
22
|
+
],
|
|
23
|
+
overrides: [
|
|
24
|
+
{
|
|
25
|
+
path: ".env.example",
|
|
26
|
+
content: [
|
|
27
|
+
"DATABASE_URL=postgresql://postgres:postgres@localhost:5432/{{projectName}}",
|
|
28
|
+
"NUXT_PUBLIC_APP_NAME={{projectName}}",
|
|
29
|
+
].join("\n"),
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
path: "docker-compose.yml",
|
|
33
|
+
content: [
|
|
34
|
+
"services:",
|
|
35
|
+
" db:",
|
|
36
|
+
" image: postgres:17",
|
|
37
|
+
" restart: unless-stopped",
|
|
38
|
+
" ports:",
|
|
39
|
+
' - "5432:5432"',
|
|
40
|
+
" environment:",
|
|
41
|
+
" POSTGRES_USER: postgres",
|
|
42
|
+
" POSTGRES_PASSWORD: postgres",
|
|
43
|
+
" POSTGRES_DB: {{projectName}}",
|
|
44
|
+
" volumes:",
|
|
45
|
+
" - pgdata:/var/lib/postgresql/data",
|
|
46
|
+
" healthcheck:",
|
|
47
|
+
' test: ["CMD-SHELL", "pg_isready -U postgres"]',
|
|
48
|
+
" interval: 5s",
|
|
49
|
+
" timeout: 5s",
|
|
50
|
+
" retries: 5",
|
|
51
|
+
"",
|
|
52
|
+
"volumes:",
|
|
53
|
+
" pgdata:",
|
|
54
|
+
].join("\n"),
|
|
55
|
+
},
|
|
56
|
+
],
|
|
57
|
+
hooks: [
|
|
58
|
+
{
|
|
59
|
+
timing: "post-scaffold",
|
|
60
|
+
name: "Install dependencies",
|
|
61
|
+
command: "cd {{projectName}} && npm install",
|
|
62
|
+
description: "Install all npm dependencies",
|
|
63
|
+
requiresConfirmation: false,
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
timing: "post-scaffold",
|
|
67
|
+
name: "Prepare Nuxt",
|
|
68
|
+
command: "cd {{projectName}} && npx nuxi prepare",
|
|
69
|
+
description: "Generate Nuxt types and .nuxt directory",
|
|
70
|
+
requiresConfirmation: false,
|
|
71
|
+
},
|
|
72
|
+
],
|
|
73
|
+
variables: {
|
|
74
|
+
projectName: "my-nuxt3-app",
|
|
75
|
+
},
|
|
76
|
+
};
|
|
77
|
+
//# sourceMappingURL=nuxt3-app.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nuxt3-app.js","sourceRoot":"","sources":["../../src/templates/nuxt3-app.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,QAAQ,GAAa;IAChC,EAAE,EAAE,WAAW;IACf,IAAI,EAAE,YAAY;IAClB,WAAW,EAAE,sEAAsE;IACnF,aAAa,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,aAAa,EAAE,YAAY,CAAC;IACnF,OAAO,EAAE,UAAU;IACnB,aAAa,EAAE;QACb;YACE,IAAI,EAAE,uBAAuB;YAC7B,OAAO,EAAE,sCAAsC;SAChD;QACD;YACE,IAAI,EAAE,6BAA6B;YACnC,OAAO,EAAE,oCAAoC;YAC7C,UAAU,EAAE,iBAAiB;SAC9B;QACD;YACE,IAAI,EAAE,+BAA+B;YACrC,OAAO,EAAE,gEAAgE;YACzE,UAAU,EAAE,iBAAiB;SAC9B;KACF;IACD,SAAS,EAAE;QACT;YACE,IAAI,EAAE,cAAc;YACpB,OAAO,EAAE;gBACP,4EAA4E;gBAC5E,sCAAsC;aACvC,CAAC,IAAI,CAAC,IAAI,CAAC;SACb;QACD;YACE,IAAI,EAAE,oBAAoB;YAC1B,OAAO,EAAE;gBACP,WAAW;gBACX,OAAO;gBACP,wBAAwB;gBACxB,6BAA6B;gBAC7B,YAAY;gBACZ,qBAAqB;gBACrB,kBAAkB;gBAClB,+BAA+B;gBAC/B,mCAAmC;gBACnC,oCAAoC;gBACpC,cAAc;gBACd,yCAAyC;gBACzC,kBAAkB;gBAClB,qDAAqD;gBACrD,oBAAoB;gBACpB,mBAAmB;gBACnB,kBAAkB;gBAClB,EAAE;gBACF,UAAU;gBACV,WAAW;aACZ,CAAC,IAAI,CAAC,IAAI,CAAC;SACb;KACF;IACD,KAAK,EAAE;QACL;YACE,MAAM,EAAE,eAAe;YACvB,IAAI,EAAE,sBAAsB;YAC5B,OAAO,EAAE,mCAAmC;YAC5C,WAAW,EAAE,8BAA8B;YAC3C,oBAAoB,EAAE,KAAK;SAC5B;QACD;YACE,MAAM,EAAE,eAAe;YACvB,IAAI,EAAE,cAAc;YACpB,OAAO,EAAE,wCAAwC;YACjD,WAAW,EAAE,yCAAyC;YACtD,oBAAoB,EAAE,KAAK;SAC5B;KACF;IACD,SAAS,EAAE;QACT,WAAW,EAAE,cAAc;KAC5B;CACF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"python-ai-lab.d.ts","sourceRoot":"","sources":["../../src/templates/python-ai-lab.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAEhD,eAAO,MAAM,WAAW,EAAE,QAwJzB,CAAC"}
|