@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.
Files changed (117) hide show
  1. package/.turbo/turbo-build.log +4 -0
  2. package/.turbo/turbo-lint.log +694 -0
  3. package/.turbo/turbo-test.log +15 -0
  4. package/.turbo/turbo-typecheck.log +4 -0
  5. package/dist/__tests__/templates.test.d.ts +2 -0
  6. package/dist/__tests__/templates.test.d.ts.map +1 -0
  7. package/dist/__tests__/templates.test.js +81 -0
  8. package/dist/__tests__/templates.test.js.map +1 -0
  9. package/dist/index.d.ts +36 -0
  10. package/dist/index.d.ts.map +1 -0
  11. package/dist/index.js +68 -0
  12. package/dist/index.js.map +1 -0
  13. package/dist/templates/astro-landing.d.ts +3 -0
  14. package/dist/templates/astro-landing.d.ts.map +1 -0
  15. package/dist/templates/astro-landing.js +36 -0
  16. package/dist/templates/astro-landing.js.map +1 -0
  17. package/dist/templates/django-react.d.ts +3 -0
  18. package/dist/templates/django-react.d.ts.map +1 -0
  19. package/dist/templates/django-react.js +123 -0
  20. package/dist/templates/django-react.js.map +1 -0
  21. package/dist/templates/django-rest-api.d.ts +3 -0
  22. package/dist/templates/django-rest-api.d.ts.map +1 -0
  23. package/dist/templates/django-rest-api.js +95 -0
  24. package/dist/templates/django-rest-api.js.map +1 -0
  25. package/dist/templates/express-api.d.ts +3 -0
  26. package/dist/templates/express-api.d.ts.map +1 -0
  27. package/dist/templates/express-api.js +142 -0
  28. package/dist/templates/express-api.js.map +1 -0
  29. package/dist/templates/fastapi-react.d.ts +3 -0
  30. package/dist/templates/fastapi-react.d.ts.map +1 -0
  31. package/dist/templates/fastapi-react.js +120 -0
  32. package/dist/templates/fastapi-react.js.map +1 -0
  33. package/dist/templates/go-microservice.d.ts +3 -0
  34. package/dist/templates/go-microservice.d.ts.map +1 -0
  35. package/dist/templates/go-microservice.js +131 -0
  36. package/dist/templates/go-microservice.js.map +1 -0
  37. package/dist/templates/hono-microservice.d.ts +3 -0
  38. package/dist/templates/hono-microservice.d.ts.map +1 -0
  39. package/dist/templates/hono-microservice.js +80 -0
  40. package/dist/templates/hono-microservice.js.map +1 -0
  41. package/dist/templates/htmx-django.d.ts +3 -0
  42. package/dist/templates/htmx-django.d.ts.map +1 -0
  43. package/dist/templates/htmx-django.js +96 -0
  44. package/dist/templates/htmx-django.js.map +1 -0
  45. package/dist/templates/laravel-app.d.ts +3 -0
  46. package/dist/templates/laravel-app.d.ts.map +1 -0
  47. package/dist/templates/laravel-app.js +95 -0
  48. package/dist/templates/laravel-app.js.map +1 -0
  49. package/dist/templates/mern-stack.d.ts +3 -0
  50. package/dist/templates/mern-stack.d.ts.map +1 -0
  51. package/dist/templates/mern-stack.js +122 -0
  52. package/dist/templates/mern-stack.js.map +1 -0
  53. package/dist/templates/monorepo-starter.d.ts +3 -0
  54. package/dist/templates/monorepo-starter.d.ts.map +1 -0
  55. package/dist/templates/monorepo-starter.js +136 -0
  56. package/dist/templates/monorepo-starter.js.map +1 -0
  57. package/dist/templates/nestjs-api.d.ts +3 -0
  58. package/dist/templates/nestjs-api.d.ts.map +1 -0
  59. package/dist/templates/nestjs-api.js +111 -0
  60. package/dist/templates/nestjs-api.js.map +1 -0
  61. package/dist/templates/nuxt3-app.d.ts +3 -0
  62. package/dist/templates/nuxt3-app.d.ts.map +1 -0
  63. package/dist/templates/nuxt3-app.js +77 -0
  64. package/dist/templates/nuxt3-app.js.map +1 -0
  65. package/dist/templates/python-ai-lab.d.ts +3 -0
  66. package/dist/templates/python-ai-lab.d.ts.map +1 -0
  67. package/dist/templates/python-ai-lab.js +152 -0
  68. package/dist/templates/python-ai-lab.js.map +1 -0
  69. package/dist/templates/remix-fullstack.d.ts +3 -0
  70. package/dist/templates/remix-fullstack.d.ts.map +1 -0
  71. package/dist/templates/remix-fullstack.js +79 -0
  72. package/dist/templates/remix-fullstack.js.map +1 -0
  73. package/dist/templates/saas-starter.d.ts +3 -0
  74. package/dist/templates/saas-starter.d.ts.map +1 -0
  75. package/dist/templates/saas-starter.js +128 -0
  76. package/dist/templates/saas-starter.js.map +1 -0
  77. package/dist/templates/solidstart-app.d.ts +3 -0
  78. package/dist/templates/solidstart-app.d.ts.map +1 -0
  79. package/dist/templates/solidstart-app.js +72 -0
  80. package/dist/templates/solidstart-app.js.map +1 -0
  81. package/dist/templates/sveltekit-fullstack.d.ts +3 -0
  82. package/dist/templates/sveltekit-fullstack.d.ts.map +1 -0
  83. package/dist/templates/sveltekit-fullstack.js +89 -0
  84. package/dist/templates/sveltekit-fullstack.js.map +1 -0
  85. package/dist/templates/t3-stack.d.ts +3 -0
  86. package/dist/templates/t3-stack.d.ts.map +1 -0
  87. package/dist/templates/t3-stack.js +92 -0
  88. package/dist/templates/t3-stack.js.map +1 -0
  89. package/dist/templates/tauri-desktop.d.ts +3 -0
  90. package/dist/templates/tauri-desktop.d.ts.map +1 -0
  91. package/dist/templates/tauri-desktop.js +55 -0
  92. package/dist/templates/tauri-desktop.js.map +1 -0
  93. package/package.json +33 -0
  94. package/src/__tests__/templates.test.ts +98 -0
  95. package/src/index.ts +97 -0
  96. package/src/templates/astro-landing.ts +40 -0
  97. package/src/templates/django-react.ts +127 -0
  98. package/src/templates/django-rest-api.ts +99 -0
  99. package/src/templates/express-api.ts +147 -0
  100. package/src/templates/fastapi-react.ts +122 -0
  101. package/src/templates/go-microservice.ts +133 -0
  102. package/src/templates/hono-microservice.ts +81 -0
  103. package/src/templates/htmx-django.ts +100 -0
  104. package/src/templates/laravel-app.ts +96 -0
  105. package/src/templates/mern-stack.ts +126 -0
  106. package/src/templates/monorepo-starter.ts +138 -0
  107. package/src/templates/nestjs-api.ts +112 -0
  108. package/src/templates/nuxt3-app.ts +78 -0
  109. package/src/templates/python-ai-lab.ts +155 -0
  110. package/src/templates/remix-fullstack.ts +80 -0
  111. package/src/templates/saas-starter.ts +131 -0
  112. package/src/templates/solidstart-app.ts +73 -0
  113. package/src/templates/sveltekit-fullstack.ts +90 -0
  114. package/src/templates/t3-stack.ts +94 -0
  115. package/src/templates/tauri-desktop.ts +57 -0
  116. package/tsconfig.json +10 -0
  117. package/tsconfig.tsbuildinfo +1 -0
@@ -0,0 +1,152 @@
1
+ export const pythonAiLab = {
2
+ id: "python-ai-lab",
3
+ name: "Python AI Lab",
4
+ description: "Python ML/AI development environment with FastAPI, PostgreSQL, Redis, and Docker",
5
+ technologyIds: ["python", "fastapi", "postgresql", "redis", "docker"],
6
+ profile: "production",
7
+ scaffoldSteps: [
8
+ {
9
+ name: "Create project structure",
10
+ command: "mkdir -p {{projectName}}/{app/{api,models,services,ml},tests,notebooks,data/{raw,processed}}",
11
+ },
12
+ {
13
+ name: "Setup Python virtual environment",
14
+ command: "python3 -m venv {{projectName}}/.venv",
15
+ },
16
+ {
17
+ name: "Install dependencies",
18
+ command: "{{projectName}}/.venv/bin/pip install fastapi uvicorn[standard] sqlalchemy[asyncio] asyncpg redis python-dotenv pydantic-settings alembic",
19
+ },
20
+ {
21
+ name: "Install ML dependencies",
22
+ command: "{{projectName}}/.venv/bin/pip install numpy pandas scikit-learn jupyter matplotlib",
23
+ },
24
+ ],
25
+ overrides: [
26
+ {
27
+ path: ".env.example",
28
+ content: [
29
+ "# API",
30
+ "APP_HOST=0.0.0.0",
31
+ "APP_PORT=8000",
32
+ "APP_ENV=development",
33
+ "",
34
+ "# Database",
35
+ "DATABASE_URL=postgresql+asyncpg://postgres:postgres@localhost:5432/{{projectName}}",
36
+ "",
37
+ "# Redis",
38
+ "REDIS_URL=redis://localhost:6379",
39
+ "",
40
+ "# ML",
41
+ "MODEL_PATH=./data/models",
42
+ "OPENAI_API_KEY=sk-...",
43
+ ].join("\n"),
44
+ },
45
+ {
46
+ path: "docker-compose.yml",
47
+ content: [
48
+ "services:",
49
+ " db:",
50
+ " image: postgres:17",
51
+ " restart: unless-stopped",
52
+ " ports:",
53
+ ' - "5432:5432"',
54
+ " environment:",
55
+ " POSTGRES_USER: postgres",
56
+ " POSTGRES_PASSWORD: postgres",
57
+ " POSTGRES_DB: {{projectName}}",
58
+ " volumes:",
59
+ " - pgdata:/var/lib/postgresql/data",
60
+ " healthcheck:",
61
+ ' test: ["CMD-SHELL", "pg_isready -U postgres"]',
62
+ " interval: 5s",
63
+ " timeout: 5s",
64
+ " retries: 5",
65
+ "",
66
+ " redis:",
67
+ " image: redis:7-alpine",
68
+ " restart: unless-stopped",
69
+ " ports:",
70
+ ' - "6379:6379"',
71
+ " healthcheck:",
72
+ ' test: ["CMD", "redis-cli", "ping"]',
73
+ " interval: 5s",
74
+ " timeout: 5s",
75
+ " retries: 5",
76
+ "",
77
+ "volumes:",
78
+ " pgdata:",
79
+ ].join("\n"),
80
+ },
81
+ {
82
+ path: "requirements.txt",
83
+ content: [
84
+ "fastapi>=0.115",
85
+ "uvicorn[standard]>=0.32",
86
+ "sqlalchemy[asyncio]>=2.0",
87
+ "asyncpg>=0.30",
88
+ "redis>=5.0",
89
+ "python-dotenv>=1.0",
90
+ "pydantic-settings>=2.0",
91
+ "alembic>=1.14",
92
+ "numpy>=2.0",
93
+ "pandas>=2.2",
94
+ "scikit-learn>=1.5",
95
+ "jupyter>=1.1",
96
+ "matplotlib>=3.9",
97
+ ].join("\n"),
98
+ },
99
+ {
100
+ path: "app/__init__.py",
101
+ content: "",
102
+ },
103
+ {
104
+ path: "app/main.py",
105
+ content: [
106
+ "from fastapi import FastAPI",
107
+ "from dotenv import load_dotenv",
108
+ "",
109
+ "load_dotenv()",
110
+ "",
111
+ 'app = FastAPI(title="{{projectName}}", version="0.1.0")',
112
+ "",
113
+ "",
114
+ '@app.get("/health")',
115
+ "async def health():",
116
+ ' return {"status": "ok"}',
117
+ ].join("\n"),
118
+ },
119
+ {
120
+ path: "Dockerfile",
121
+ content: [
122
+ "FROM python:3.12-slim",
123
+ "WORKDIR /app",
124
+ "COPY requirements.txt .",
125
+ "RUN pip install --no-cache-dir -r requirements.txt",
126
+ "COPY . .",
127
+ "EXPOSE 8000",
128
+ 'CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8000"]',
129
+ ].join("\n"),
130
+ },
131
+ ],
132
+ hooks: [
133
+ {
134
+ timing: "post-scaffold",
135
+ name: "Freeze requirements",
136
+ command: "cd {{projectName}} && .venv/bin/pip freeze > requirements.lock",
137
+ description: "Generate locked requirements file",
138
+ requiresConfirmation: false,
139
+ },
140
+ {
141
+ timing: "post-scaffold",
142
+ name: "Initialize Alembic",
143
+ command: "cd {{projectName}} && .venv/bin/alembic init alembic",
144
+ description: "Initialize Alembic for database migrations",
145
+ requiresConfirmation: false,
146
+ },
147
+ ],
148
+ variables: {
149
+ projectName: "my-ai-lab",
150
+ },
151
+ };
152
+ //# sourceMappingURL=python-ai-lab.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"python-ai-lab.js","sourceRoot":"","sources":["../../src/templates/python-ai-lab.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { Template } from "@stackweld/core";
2
+ export declare const remixFullstack: Template;
3
+ //# sourceMappingURL=remix-fullstack.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remix-fullstack.d.ts","sourceRoot":"","sources":["../../src/templates/remix-fullstack.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAEhD,eAAO,MAAM,cAAc,EAAE,QA6E5B,CAAC"}
@@ -0,0 +1,79 @@
1
+ export const remixFullstack = {
2
+ id: "remix-fullstack",
3
+ name: "Remix Fullstack",
4
+ description: "Full-stack Remix app with Prisma, PostgreSQL, Tailwind CSS, and TypeScript",
5
+ technologyIds: ["remix", "react", "nodejs", "typescript", "tailwindcss", "prisma", "postgresql"],
6
+ profile: "standard",
7
+ scaffoldSteps: [
8
+ {
9
+ name: "Create Remix project",
10
+ command: "npx create-remix@latest {{projectName}} --yes",
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 Tailwind",
22
+ command: "cd {{projectName}} && npm install -D tailwindcss @tailwindcss/vite",
23
+ },
24
+ ],
25
+ overrides: [
26
+ {
27
+ path: ".env.example",
28
+ content: [
29
+ "DATABASE_URL=postgresql://postgres:postgres@localhost:5432/{{projectName}}",
30
+ "SESSION_SECRET=your-secret-key-change-me",
31
+ ].join("\n"),
32
+ },
33
+ {
34
+ path: "docker-compose.yml",
35
+ content: [
36
+ "services:",
37
+ " db:",
38
+ " image: postgres:17",
39
+ " restart: unless-stopped",
40
+ " ports:",
41
+ ' - "5432:5432"',
42
+ " environment:",
43
+ " POSTGRES_USER: postgres",
44
+ " POSTGRES_PASSWORD: postgres",
45
+ " POSTGRES_DB: {{projectName}}",
46
+ " volumes:",
47
+ " - pgdata:/var/lib/postgresql/data",
48
+ " healthcheck:",
49
+ ' test: ["CMD-SHELL", "pg_isready -U postgres"]',
50
+ " interval: 5s",
51
+ " timeout: 5s",
52
+ " retries: 5",
53
+ "",
54
+ "volumes:",
55
+ " pgdata:",
56
+ ].join("\n"),
57
+ },
58
+ ],
59
+ hooks: [
60
+ {
61
+ timing: "post-scaffold",
62
+ name: "Install dependencies",
63
+ command: "cd {{projectName}} && npm install",
64
+ description: "Install all npm dependencies",
65
+ requiresConfirmation: false,
66
+ },
67
+ {
68
+ timing: "post-scaffold",
69
+ name: "Generate Prisma client",
70
+ command: "cd {{projectName}} && npx prisma generate",
71
+ description: "Generate the Prisma client from schema",
72
+ requiresConfirmation: false,
73
+ },
74
+ ],
75
+ variables: {
76
+ projectName: "my-remix-app",
77
+ },
78
+ };
79
+ //# sourceMappingURL=remix-fullstack.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remix-fullstack.js","sourceRoot":"","sources":["../../src/templates/remix-fullstack.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,cAAc,GAAa;IACtC,EAAE,EAAE,iBAAiB;IACrB,IAAI,EAAE,iBAAiB;IACvB,WAAW,EAAE,4EAA4E;IACzF,aAAa,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,CAAC;IAChG,OAAO,EAAE,UAAU;IACnB,aAAa,EAAE;QACb;YACE,IAAI,EAAE,sBAAsB;YAC5B,OAAO,EAAE,+CAA+C;SACzD;QACD;YACE,IAAI,EAAE,gBAAgB;YACtB,OAAO,EAAE,yDAAyD;SACnE;QACD;YACE,IAAI,EAAE,mBAAmB;YACzB,OAAO,EAAE,wEAAwE;SAClF;QACD;YACE,IAAI,EAAE,kBAAkB;YACxB,OAAO,EAAE,oEAAoE;SAC9E;KACF;IACD,SAAS,EAAE;QACT;YACE,IAAI,EAAE,cAAc;YACpB,OAAO,EAAE;gBACP,4EAA4E;gBAC5E,0CAA0C;aAC3C,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,wBAAwB;YAC9B,OAAO,EAAE,2CAA2C;YACpD,WAAW,EAAE,wCAAwC;YACrD,oBAAoB,EAAE,KAAK;SAC5B;KACF;IACD,SAAS,EAAE;QACT,WAAW,EAAE,cAAc;KAC5B;CACF,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { Template } from "@stackweld/core";
2
+ export declare const saasStarter: Template;
3
+ //# sourceMappingURL=saas-starter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"saas-starter.d.ts","sourceRoot":"","sources":["../../src/templates/saas-starter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAEhD,eAAO,MAAM,WAAW,EAAE,QAgIzB,CAAC"}
@@ -0,0 +1,128 @@
1
+ export const saasStarter = {
2
+ id: "saas-starter",
3
+ name: "SaaS Starter",
4
+ description: "Production-ready SaaS boilerplate with Next.js, Prisma, PostgreSQL, Redis, NextAuth, shadcn/ui, and Stripe-ready architecture",
5
+ technologyIds: [
6
+ "nextjs",
7
+ "react",
8
+ "nodejs",
9
+ "typescript",
10
+ "tailwindcss",
11
+ "shadcn-ui",
12
+ "prisma",
13
+ "postgresql",
14
+ "redis",
15
+ "nextauth",
16
+ ],
17
+ profile: "production",
18
+ scaffoldSteps: [
19
+ {
20
+ name: "Create Next.js app",
21
+ command: "npx create-next-app@latest {{projectName}} --typescript --tailwind --eslint --app --src-dir --import-alias '@/*'",
22
+ },
23
+ {
24
+ name: "Install Prisma",
25
+ command: "cd {{projectName}} && npm install prisma @prisma/client",
26
+ },
27
+ {
28
+ name: "Initialize Prisma",
29
+ command: "cd {{projectName}} && npx prisma init --datasource-provider postgresql",
30
+ },
31
+ {
32
+ name: "Install NextAuth",
33
+ command: "cd {{projectName}} && npm install next-auth@beta",
34
+ },
35
+ {
36
+ name: "Install Redis client",
37
+ command: "cd {{projectName}} && npm install ioredis",
38
+ },
39
+ {
40
+ name: "Initialize shadcn/ui",
41
+ command: "cd {{projectName}} && npx shadcn@latest init -d",
42
+ },
43
+ {
44
+ name: "Install Stripe",
45
+ command: "cd {{projectName}} && npm install stripe @stripe/stripe-js",
46
+ },
47
+ ],
48
+ overrides: [
49
+ {
50
+ path: ".env.example",
51
+ content: [
52
+ "# Database",
53
+ "DATABASE_URL=postgresql://postgres:postgres@localhost:5432/{{projectName}}",
54
+ "",
55
+ "# Redis",
56
+ "REDIS_URL=redis://localhost:6379",
57
+ "",
58
+ "# Auth",
59
+ "NEXTAUTH_SECRET=your-secret-key-change-me",
60
+ "NEXTAUTH_URL=http://localhost:3000",
61
+ "",
62
+ "# Stripe",
63
+ "STRIPE_SECRET_KEY=sk_test_...",
64
+ "STRIPE_PUBLISHABLE_KEY=pk_test_...",
65
+ "STRIPE_WEBHOOK_SECRET=whsec_...",
66
+ "",
67
+ "# App",
68
+ "NEXT_PUBLIC_APP_URL=http://localhost:3000",
69
+ ].join("\n"),
70
+ },
71
+ {
72
+ path: "docker-compose.yml",
73
+ content: [
74
+ "services:",
75
+ " db:",
76
+ " image: postgres:17",
77
+ " restart: unless-stopped",
78
+ " ports:",
79
+ ' - "5432:5432"',
80
+ " environment:",
81
+ " POSTGRES_USER: postgres",
82
+ " POSTGRES_PASSWORD: postgres",
83
+ " POSTGRES_DB: {{projectName}}",
84
+ " volumes:",
85
+ " - pgdata:/var/lib/postgresql/data",
86
+ " healthcheck:",
87
+ ' test: ["CMD-SHELL", "pg_isready -U postgres"]',
88
+ " interval: 5s",
89
+ " timeout: 5s",
90
+ " retries: 5",
91
+ "",
92
+ " redis:",
93
+ " image: redis:7-alpine",
94
+ " restart: unless-stopped",
95
+ " ports:",
96
+ ' - "6379:6379"',
97
+ " healthcheck:",
98
+ ' test: ["CMD", "redis-cli", "ping"]',
99
+ " interval: 5s",
100
+ " timeout: 5s",
101
+ " retries: 5",
102
+ "",
103
+ "volumes:",
104
+ " pgdata:",
105
+ ].join("\n"),
106
+ },
107
+ ],
108
+ hooks: [
109
+ {
110
+ timing: "post-scaffold",
111
+ name: "Generate Prisma client",
112
+ command: "cd {{projectName}} && npx prisma generate",
113
+ description: "Generate the Prisma client from schema",
114
+ requiresConfirmation: false,
115
+ },
116
+ {
117
+ timing: "post-scaffold",
118
+ name: "Install dependencies",
119
+ command: "cd {{projectName}} && npm install",
120
+ description: "Install all npm dependencies",
121
+ requiresConfirmation: false,
122
+ },
123
+ ],
124
+ variables: {
125
+ projectName: "my-saas-app",
126
+ },
127
+ };
128
+ //# sourceMappingURL=saas-starter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"saas-starter.js","sourceRoot":"","sources":["../../src/templates/saas-starter.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,WAAW,GAAa;IACnC,EAAE,EAAE,cAAc;IAClB,IAAI,EAAE,cAAc;IACpB,WAAW,EACT,+HAA+H;IACjI,aAAa,EAAE;QACb,QAAQ;QACR,OAAO;QACP,QAAQ;QACR,YAAY;QACZ,aAAa;QACb,WAAW;QACX,QAAQ;QACR,YAAY;QACZ,OAAO;QACP,UAAU;KACX;IACD,OAAO,EAAE,YAAY;IACrB,aAAa,EAAE;QACb;YACE,IAAI,EAAE,oBAAoB;YAC1B,OAAO,EACL,kHAAkH;SACrH;QACD;YACE,IAAI,EAAE,gBAAgB;YACtB,OAAO,EAAE,yDAAyD;SACnE;QACD;YACE,IAAI,EAAE,mBAAmB;YACzB,OAAO,EAAE,wEAAwE;SAClF;QACD;YACE,IAAI,EAAE,kBAAkB;YACxB,OAAO,EAAE,kDAAkD;SAC5D;QACD;YACE,IAAI,EAAE,sBAAsB;YAC5B,OAAO,EAAE,2CAA2C;SACrD;QACD;YACE,IAAI,EAAE,sBAAsB;YAC5B,OAAO,EAAE,iDAAiD;SAC3D;QACD;YACE,IAAI,EAAE,gBAAgB;YACtB,OAAO,EAAE,4DAA4D;SACtE;KACF;IACD,SAAS,EAAE;QACT;YACE,IAAI,EAAE,cAAc;YACpB,OAAO,EAAE;gBACP,YAAY;gBACZ,4EAA4E;gBAC5E,EAAE;gBACF,SAAS;gBACT,kCAAkC;gBAClC,EAAE;gBACF,QAAQ;gBACR,2CAA2C;gBAC3C,oCAAoC;gBACpC,EAAE;gBACF,UAAU;gBACV,+BAA+B;gBAC/B,oCAAoC;gBACpC,iCAAiC;gBACjC,EAAE;gBACF,OAAO;gBACP,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,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;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;QACD;YACE,MAAM,EAAE,eAAe;YACvB,IAAI,EAAE,sBAAsB;YAC5B,OAAO,EAAE,mCAAmC;YAC5C,WAAW,EAAE,8BAA8B;YAC3C,oBAAoB,EAAE,KAAK;SAC5B;KACF;IACD,SAAS,EAAE;QACT,WAAW,EAAE,aAAa;KAC3B;CACF,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { Template } from "@stackweld/core";
2
+ export declare const solidstartApp: Template;
3
+ //# sourceMappingURL=solidstart-app.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"solidstart-app.d.ts","sourceRoot":"","sources":["../../src/templates/solidstart-app.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAEhD,eAAO,MAAM,aAAa,EAAE,QAsE3B,CAAC"}
@@ -0,0 +1,72 @@
1
+ export const solidstartApp = {
2
+ id: "solidstart-app",
3
+ name: "SolidStart App",
4
+ description: "Full-stack SolidStart application with TypeScript, Tailwind CSS, and PostgreSQL",
5
+ technologyIds: ["solidjs", "nodejs", "typescript", "tailwindcss", "postgresql"],
6
+ profile: "standard",
7
+ scaffoldSteps: [
8
+ {
9
+ name: "Create SolidStart project",
10
+ command: "mkdir -p {{projectName}} && cd {{projectName}} && npm init solid@latest . -- --yes",
11
+ },
12
+ {
13
+ name: "Install Tailwind",
14
+ command: "cd {{projectName}} && npm install -D tailwindcss @tailwindcss/vite",
15
+ },
16
+ {
17
+ name: "Install PostgreSQL client",
18
+ command: "cd {{projectName}} && npm install postgres",
19
+ },
20
+ {
21
+ name: "Install dotenv",
22
+ command: "cd {{projectName}} && npm install dotenv",
23
+ },
24
+ ],
25
+ overrides: [
26
+ {
27
+ path: ".env.example",
28
+ content: [
29
+ "DATABASE_URL=postgresql://postgres:postgres@localhost:5432/{{projectName}}",
30
+ "SESSION_SECRET=your-secret-key-change-me",
31
+ ].join("\n"),
32
+ },
33
+ {
34
+ path: "docker-compose.yml",
35
+ content: [
36
+ "services:",
37
+ " db:",
38
+ " image: postgres:17",
39
+ " restart: unless-stopped",
40
+ " ports:",
41
+ ' - "5432:5432"',
42
+ " environment:",
43
+ " POSTGRES_USER: postgres",
44
+ " POSTGRES_PASSWORD: postgres",
45
+ " POSTGRES_DB: {{projectName}}",
46
+ " volumes:",
47
+ " - pgdata:/var/lib/postgresql/data",
48
+ " healthcheck:",
49
+ ' test: ["CMD-SHELL", "pg_isready -U postgres"]',
50
+ " interval: 5s",
51
+ " timeout: 5s",
52
+ " retries: 5",
53
+ "",
54
+ "volumes:",
55
+ " pgdata:",
56
+ ].join("\n"),
57
+ },
58
+ ],
59
+ hooks: [
60
+ {
61
+ timing: "post-scaffold",
62
+ name: "Install dependencies",
63
+ command: "cd {{projectName}} && npm install",
64
+ description: "Install all npm dependencies",
65
+ requiresConfirmation: false,
66
+ },
67
+ ],
68
+ variables: {
69
+ projectName: "my-solidstart-app",
70
+ },
71
+ };
72
+ //# sourceMappingURL=solidstart-app.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"solidstart-app.js","sourceRoot":"","sources":["../../src/templates/solidstart-app.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,aAAa,GAAa;IACrC,EAAE,EAAE,gBAAgB;IACpB,IAAI,EAAE,gBAAgB;IACtB,WAAW,EAAE,iFAAiF;IAC9F,aAAa,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE,aAAa,EAAE,YAAY,CAAC;IAC/E,OAAO,EAAE,UAAU;IACnB,aAAa,EAAE;QACb;YACE,IAAI,EAAE,2BAA2B;YACjC,OAAO,EAAE,oFAAoF;SAC9F;QACD;YACE,IAAI,EAAE,kBAAkB;YACxB,OAAO,EAAE,oEAAoE;SAC9E;QACD;YACE,IAAI,EAAE,2BAA2B;YACjC,OAAO,EAAE,4CAA4C;SACtD;QACD;YACE,IAAI,EAAE,gBAAgB;YACtB,OAAO,EAAE,0CAA0C;SACpD;KACF;IACD,SAAS,EAAE;QACT;YACE,IAAI,EAAE,cAAc;YACpB,OAAO,EAAE;gBACP,4EAA4E;gBAC5E,0CAA0C;aAC3C,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;KACF;IACD,SAAS,EAAE;QACT,WAAW,EAAE,mBAAmB;KACjC;CACF,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { Template } from "@stackweld/core";
2
+ export declare const sveltekitFullstack: Template;
3
+ //# sourceMappingURL=sveltekit-fullstack.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sveltekit-fullstack.d.ts","sourceRoot":"","sources":["../../src/templates/sveltekit-fullstack.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAEhD,eAAO,MAAM,kBAAkB,EAAE,QAuFhC,CAAC"}
@@ -0,0 +1,89 @@
1
+ export const sveltekitFullstack = {
2
+ id: "sveltekit-fullstack",
3
+ name: "SvelteKit Full-Stack",
4
+ description: "Full-stack SvelteKit app with Prisma ORM, PostgreSQL, and Tailwind CSS",
5
+ technologyIds: [
6
+ "sveltekit",
7
+ "svelte",
8
+ "nodejs",
9
+ "typescript",
10
+ "tailwindcss",
11
+ "prisma",
12
+ "postgresql",
13
+ ],
14
+ profile: "standard",
15
+ scaffoldSteps: [
16
+ {
17
+ name: "Create SvelteKit project",
18
+ command: "npx sv create {{projectName}} --template minimal --types ts",
19
+ },
20
+ {
21
+ name: "Install Tailwind CSS",
22
+ command: "cd {{projectName}} && npx sv add tailwindcss",
23
+ },
24
+ {
25
+ name: "Install Prisma",
26
+ command: "npm install prisma @prisma/client",
27
+ workingDir: "{{projectName}}",
28
+ },
29
+ {
30
+ name: "Initialize Prisma",
31
+ command: "npx prisma init --datasource-provider postgresql",
32
+ workingDir: "{{projectName}}",
33
+ },
34
+ ],
35
+ overrides: [
36
+ {
37
+ path: ".env.example",
38
+ content: [
39
+ "DATABASE_URL=postgresql://postgres:postgres@localhost:5432/{{projectName}}",
40
+ "PUBLIC_APP_NAME={{projectName}}",
41
+ ].join("\n"),
42
+ },
43
+ {
44
+ path: "docker-compose.yml",
45
+ content: [
46
+ "services:",
47
+ " db:",
48
+ " image: postgres:17",
49
+ " restart: unless-stopped",
50
+ " ports:",
51
+ ' - "5432:5432"',
52
+ " environment:",
53
+ " POSTGRES_USER: postgres",
54
+ " POSTGRES_PASSWORD: postgres",
55
+ " POSTGRES_DB: {{projectName}}",
56
+ " volumes:",
57
+ " - pgdata:/var/lib/postgresql/data",
58
+ " healthcheck:",
59
+ ' test: ["CMD-SHELL", "pg_isready -U postgres"]',
60
+ " interval: 5s",
61
+ " timeout: 5s",
62
+ " retries: 5",
63
+ "",
64
+ "volumes:",
65
+ " pgdata:",
66
+ ].join("\n"),
67
+ },
68
+ ],
69
+ hooks: [
70
+ {
71
+ timing: "post-scaffold",
72
+ name: "Install dependencies",
73
+ command: "cd {{projectName}} && npm install",
74
+ description: "Install all npm dependencies",
75
+ requiresConfirmation: false,
76
+ },
77
+ {
78
+ timing: "post-scaffold",
79
+ name: "Generate Prisma client",
80
+ command: "cd {{projectName}} && npx prisma generate",
81
+ description: "Generate the Prisma client from schema",
82
+ requiresConfirmation: false,
83
+ },
84
+ ],
85
+ variables: {
86
+ projectName: "my-sveltekit-app",
87
+ },
88
+ };
89
+ //# sourceMappingURL=sveltekit-fullstack.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sveltekit-fullstack.js","sourceRoot":"","sources":["../../src/templates/sveltekit-fullstack.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,kBAAkB,GAAa;IAC1C,EAAE,EAAE,qBAAqB;IACzB,IAAI,EAAE,sBAAsB;IAC5B,WAAW,EAAE,wEAAwE;IACrF,aAAa,EAAE;QACb,WAAW;QACX,QAAQ;QACR,QAAQ;QACR,YAAY;QACZ,aAAa;QACb,QAAQ;QACR,YAAY;KACb;IACD,OAAO,EAAE,UAAU;IACnB,aAAa,EAAE;QACb;YACE,IAAI,EAAE,0BAA0B;YAChC,OAAO,EAAE,6DAA6D;SACvE;QACD;YACE,IAAI,EAAE,sBAAsB;YAC5B,OAAO,EAAE,8CAA8C;SACxD;QACD;YACE,IAAI,EAAE,gBAAgB;YACtB,OAAO,EAAE,mCAAmC;YAC5C,UAAU,EAAE,iBAAiB;SAC9B;QACD;YACE,IAAI,EAAE,mBAAmB;YACzB,OAAO,EAAE,kDAAkD;YAC3D,UAAU,EAAE,iBAAiB;SAC9B;KACF;IACD,SAAS,EAAE;QACT;YACE,IAAI,EAAE,cAAc;YACpB,OAAO,EAAE;gBACP,4EAA4E;gBAC5E,iCAAiC;aAClC,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,wBAAwB;YAC9B,OAAO,EAAE,2CAA2C;YACpD,WAAW,EAAE,wCAAwC;YACrD,oBAAoB,EAAE,KAAK;SAC5B;KACF;IACD,SAAS,EAAE;QACT,WAAW,EAAE,kBAAkB;KAChC;CACF,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { Template } from "@stackweld/core";
2
+ export declare const t3Stack: Template;
3
+ //# sourceMappingURL=t3-stack.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"t3-stack.d.ts","sourceRoot":"","sources":["../../src/templates/t3-stack.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAEhD,eAAO,MAAM,OAAO,EAAE,QA2FrB,CAAC"}