@stackweld/templates 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.
Files changed (75) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +57 -0
  3. package/package.json +17 -11
  4. package/.turbo/turbo-build.log +0 -4
  5. package/.turbo/turbo-lint.log +0 -694
  6. package/.turbo/turbo-test.log +0 -15
  7. package/.turbo/turbo-typecheck.log +0 -4
  8. package/dist/__tests__/templates.test.d.ts.map +0 -1
  9. package/dist/__tests__/templates.test.js.map +0 -1
  10. package/dist/index.d.ts.map +0 -1
  11. package/dist/index.js.map +0 -1
  12. package/dist/templates/astro-landing.d.ts.map +0 -1
  13. package/dist/templates/astro-landing.js.map +0 -1
  14. package/dist/templates/django-react.d.ts.map +0 -1
  15. package/dist/templates/django-react.js.map +0 -1
  16. package/dist/templates/django-rest-api.d.ts.map +0 -1
  17. package/dist/templates/django-rest-api.js.map +0 -1
  18. package/dist/templates/express-api.d.ts.map +0 -1
  19. package/dist/templates/express-api.js.map +0 -1
  20. package/dist/templates/fastapi-react.d.ts.map +0 -1
  21. package/dist/templates/fastapi-react.js.map +0 -1
  22. package/dist/templates/go-microservice.d.ts.map +0 -1
  23. package/dist/templates/go-microservice.js.map +0 -1
  24. package/dist/templates/hono-microservice.d.ts.map +0 -1
  25. package/dist/templates/hono-microservice.js.map +0 -1
  26. package/dist/templates/htmx-django.d.ts.map +0 -1
  27. package/dist/templates/htmx-django.js.map +0 -1
  28. package/dist/templates/laravel-app.d.ts.map +0 -1
  29. package/dist/templates/laravel-app.js.map +0 -1
  30. package/dist/templates/mern-stack.d.ts.map +0 -1
  31. package/dist/templates/mern-stack.js.map +0 -1
  32. package/dist/templates/monorepo-starter.d.ts.map +0 -1
  33. package/dist/templates/monorepo-starter.js.map +0 -1
  34. package/dist/templates/nestjs-api.d.ts.map +0 -1
  35. package/dist/templates/nestjs-api.js.map +0 -1
  36. package/dist/templates/nuxt3-app.d.ts.map +0 -1
  37. package/dist/templates/nuxt3-app.js.map +0 -1
  38. package/dist/templates/python-ai-lab.d.ts.map +0 -1
  39. package/dist/templates/python-ai-lab.js.map +0 -1
  40. package/dist/templates/remix-fullstack.d.ts.map +0 -1
  41. package/dist/templates/remix-fullstack.js.map +0 -1
  42. package/dist/templates/saas-starter.d.ts.map +0 -1
  43. package/dist/templates/saas-starter.js.map +0 -1
  44. package/dist/templates/solidstart-app.d.ts.map +0 -1
  45. package/dist/templates/solidstart-app.js.map +0 -1
  46. package/dist/templates/sveltekit-fullstack.d.ts.map +0 -1
  47. package/dist/templates/sveltekit-fullstack.js.map +0 -1
  48. package/dist/templates/t3-stack.d.ts.map +0 -1
  49. package/dist/templates/t3-stack.js.map +0 -1
  50. package/dist/templates/tauri-desktop.d.ts.map +0 -1
  51. package/dist/templates/tauri-desktop.js.map +0 -1
  52. package/src/__tests__/templates.test.ts +0 -98
  53. package/src/index.ts +0 -97
  54. package/src/templates/astro-landing.ts +0 -40
  55. package/src/templates/django-react.ts +0 -127
  56. package/src/templates/django-rest-api.ts +0 -99
  57. package/src/templates/express-api.ts +0 -147
  58. package/src/templates/fastapi-react.ts +0 -122
  59. package/src/templates/go-microservice.ts +0 -133
  60. package/src/templates/hono-microservice.ts +0 -81
  61. package/src/templates/htmx-django.ts +0 -100
  62. package/src/templates/laravel-app.ts +0 -96
  63. package/src/templates/mern-stack.ts +0 -126
  64. package/src/templates/monorepo-starter.ts +0 -138
  65. package/src/templates/nestjs-api.ts +0 -112
  66. package/src/templates/nuxt3-app.ts +0 -78
  67. package/src/templates/python-ai-lab.ts +0 -155
  68. package/src/templates/remix-fullstack.ts +0 -80
  69. package/src/templates/saas-starter.ts +0 -131
  70. package/src/templates/solidstart-app.ts +0 -73
  71. package/src/templates/sveltekit-fullstack.ts +0 -90
  72. package/src/templates/t3-stack.ts +0 -94
  73. package/src/templates/tauri-desktop.ts +0 -57
  74. package/tsconfig.json +0 -10
  75. package/tsconfig.tsbuildinfo +0 -1
@@ -1,694 +0,0 @@
1
-
2
- > @stackpilot/templates@0.1.0 lint /home/orlando/Desktop/XPlus-Finance/PROYECTOS_NUEVOS/StackPilot/stackpilot/packages/templates
3
- > biome check src/
4
-
5
- src/__tests__/templates.test.ts:34:12 lint/style/noNonNullAssertion FIXABLE ━━━━━━━━━━━━━━━━━━━━━━
6
-
7
- ! Forbidden non-null assertion.
8
-
9
- 32 │ const t = getTemplate("t3-stack");
10
- 33 │ expect(t).not.toBeNull();
11
- > 34 │ expect(t!.name).toBe("T3 Stack");
12
- │ ^^
13
- 35 │ });
14
- 36 │
15
-
16
- i Unsafe fix: Replace with optional chain operator ?. This operator includes runtime checks, so it is safer than the compile-only non-null assertion operator
17
-
18
- 32 32 │ const t = getTemplate("t3-stack");
19
- 33 33 │ expect(t).not.toBeNull();
20
- 34 │ - ····expect(t!.name).toBe("T3·Stack");
21
- 34 │ + ····expect(t?.name).toBe("T3·Stack");
22
- 35 35 │ });
23
- 36 36 │
24
-
25
-
26
- src/templates/express-api.ts:137:48 lint/suspicious/noTemplateCurlyInString ━━━━━━━━━━━━━━━━━━━━━━━━
27
-
28
- ! Unexpected template string placeholder.
29
-
30
- 135 │ "",
31
- 136 │ "app.listen(port, () => {",
32
- > 137 │ " console.log(`Server running on port ${port}`);",
33
- │ ^^^^^^^
34
- 138 │ "});",
35
- 139 │ ].join("\n"),
36
-
37
- i Turn the string into a template string.
38
-
39
-
40
- src/templates/mern-stack.ts:114:52 lint/suspicious/noTemplateCurlyInString ━━━━━━━━━━━━━━━━━━━━━━━━━
41
-
42
- ! Unexpected template string placeholder.
43
-
44
- 112 │ ' console.log("Connected to MongoDB");',
45
- 113 │ " app.listen(port, () => {",
46
- > 114 │ " console.log(`Server running on port ${port}`);",
47
- │ ^^^^^^^
48
- 115 │ " });",
49
- 116 │ " })",
50
-
51
- i Turn the string into a template string.
52
-
53
-
54
- src/__tests__/templates.test.ts:1:1 assist/source/organizeImports FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━
55
-
56
- × The imports and exports are not sorted.
57
-
58
- > 1 │ import { describe, it, expect } from "vitest";
59
- │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
60
- 2 │ import {
61
- 3 │ getAllTemplates,
62
-
63
- i Safe fix: Organize Imports (Biome)
64
-
65
- 1 │ - import·{·describe,·it,·expect·}·from·"vitest";
66
- 2 │ - import·{
67
- 3 │ - ··getAllTemplates,
68
- 4 │ - ··getTemplate,
69
- 5 │ - ··listTemplateIds,
70
- 6 │ - ··findTemplatesByTechnologies,
71
- 7 │ - }·from·"../index.js";
72
- 8 │ - import·{·loadAllTechnologies·}·from·"@stackpilot/registry";
73
- 1 │ + import·{·loadAllTechnologies·}·from·"@stackpilot/registry";
74
- 2 │ + import·{·describe,·expect,·it·}·from·"vitest";
75
- 3 │ + import·{
76
- 4 │ + ··findTemplatesByTechnologies,
77
- 5 │ + ··getAllTemplates,
78
- 6 │ + ··getTemplate,
79
- 7 │ + ··listTemplateIds,
80
- 8 │ + }·from·"../index.js";
81
- 9 9 │
82
- 10 10 │ describe("Templates Registry", () => {
83
-
84
-
85
- src/index.ts:7:1 assist/source/organizeImports FIXABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
86
-
87
- × The imports and exports are not sorted.
88
-
89
- 5 │ */
90
- 6 │
91
- > 7 │ import type { Template } from "@stackpilot/core";
92
- │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
93
- 8 │
94
- 9 │ import { t3Stack } from "./templates/t3-stack.js";
95
-
96
- i Safe fix: Organize Imports (Biome)
97
-
98
- 6 6 │
99
- 7 7 │ import type { Template } from "@stackpilot/core";
100
- 8 │ -
101
- 9 │ - import·{·t3Stack·}·from·"./templates/t3-stack.js";
102
- 10 │ - import·{·djangoRestApi·}·from·"./templates/django-rest-api.js";
103
- 11 │ - import·{·fastapiReact·}·from·"./templates/fastapi-react.js";
104
- 12 │ - import·{·goMicroservice·}·from·"./templates/go-microservice.js";
105
- 13 │ - import·{·astroLanding·}·from·"./templates/astro-landing.js";
106
- 14 │ - import·{·sveltekitFullstack·}·from·"./templates/sveltekit-fullstack.js";
107
- 15 │ - import·{·nuxt3App·}·from·"./templates/nuxt3-app.js";
108
- 16 │ - import·{·expressApi·}·from·"./templates/express-api.js";
109
- 17 │ - import·{·honoMicroservice·}·from·"./templates/hono-microservice.js";
110
- 18 │ - import·{·djangoReact·}·from·"./templates/django-react.js";
111
- 19 │ - import·{·mernStack·}·from·"./templates/mern-stack.js";
112
- 20 │ - import·{·saasStarter·}·from·"./templates/saas-starter.js";
113
- 21 │ - import·{·nestjsApi·}·from·"./templates/nestjs-api.js";
114
- 22 │ - import·{·remixFullstack·}·from·"./templates/remix-fullstack.js";
115
- 23 │ - import·{·solidstartApp·}·from·"./templates/solidstart-app.js";
116
- 24 │ - import·{·laravelApp·}·from·"./templates/laravel-app.js";
117
- 25 │ - import·{·pythonAiLab·}·from·"./templates/python-ai-lab.js";
118
- 26 │ - import·{·tauriDesktop·}·from·"./templates/tauri-desktop.js";
119
- 27 │ - import·{·monorepoStarter·}·from·"./templates/monorepo-starter.js";
120
- 28 │ - import·{·htmxDjango·}·from·"./templates/htmx-django.js";
121
- 8 │ + import·{·astroLanding·}·from·"./templates/astro-landing.js";
122
- 9 │ + import·{·djangoReact·}·from·"./templates/django-react.js";
123
- 10 │ + import·{·djangoRestApi·}·from·"./templates/django-rest-api.js";
124
- 11 │ + import·{·expressApi·}·from·"./templates/express-api.js";
125
- 12 │ + import·{·fastapiReact·}·from·"./templates/fastapi-react.js";
126
- 13 │ + import·{·goMicroservice·}·from·"./templates/go-microservice.js";
127
- 14 │ + import·{·honoMicroservice·}·from·"./templates/hono-microservice.js";
128
- 15 │ + import·{·htmxDjango·}·from·"./templates/htmx-django.js";
129
- 16 │ + import·{·laravelApp·}·from·"./templates/laravel-app.js";
130
- 17 │ + import·{·mernStack·}·from·"./templates/mern-stack.js";
131
- 18 │ + import·{·monorepoStarter·}·from·"./templates/monorepo-starter.js";
132
- 19 │ + import·{·nestjsApi·}·from·"./templates/nestjs-api.js";
133
- 20 │ + import·{·nuxt3App·}·from·"./templates/nuxt3-app.js";
134
- 21 │ + import·{·pythonAiLab·}·from·"./templates/python-ai-lab.js";
135
- 22 │ + import·{·remixFullstack·}·from·"./templates/remix-fullstack.js";
136
- 23 │ + import·{·saasStarter·}·from·"./templates/saas-starter.js";
137
- 24 │ + import·{·solidstartApp·}·from·"./templates/solidstart-app.js";
138
- 25 │ + import·{·sveltekitFullstack·}·from·"./templates/sveltekit-fullstack.js";
139
- 26 │ + import·{·t3Stack·}·from·"./templates/t3-stack.js";
140
- 27 │ + import·{·tauriDesktop·}·from·"./templates/tauri-desktop.js";
141
- 29 28 │
142
- 30 29 │ const templates: Template[] = [
143
- ······· │
144
- 80 79 │ // Re-export individual templates
145
- 81 80 │ export {
146
- 82 │ - ··t3Stack,
147
- 83 │ - ··djangoRestApi,
148
- 84 │ - ··fastapiReact,
149
- 85 │ - ··goMicroservice,
150
- 86 │ - ··astroLanding,
151
- 87 │ - ··sveltekitFullstack,
152
- 88 │ - ··nuxt3App,
153
- 89 │ - ··expressApi,
154
- 90 │ - ··honoMicroservice,
155
- 91 │ - ··djangoReact,
156
- 92 │ - ··mernStack,
157
- 93 │ - ··saasStarter,
158
- 94 │ - ··nestjsApi,
159
- 95 │ - ··remixFullstack,
160
- 96 │ - ··solidstartApp,
161
- 97 │ - ··laravelApp,
162
- 98 │ - ··pythonAiLab,
163
- 99 │ - ··tauriDesktop,
164
- 100 │ - ··monorepoStarter,
165
- 101 │ - ··htmxDjango,
166
- 81 │ + ··astroLanding,
167
- 82 │ + ··djangoReact,
168
- 83 │ + ··djangoRestApi,
169
- 84 │ + ··expressApi,
170
- 85 │ + ··fastapiReact,
171
- 86 │ + ··goMicroservice,
172
- 87 │ + ··honoMicroservice,
173
- 88 │ + ··htmxDjango,
174
- 89 │ + ··laravelApp,
175
- 90 │ + ··mernStack,
176
- 91 │ + ··monorepoStarter,
177
- 92 │ + ··nestjsApi,
178
- 93 │ + ··nuxt3App,
179
- 94 │ + ··pythonAiLab,
180
- 95 │ + ··remixFullstack,
181
- 96 │ + ··saasStarter,
182
- 97 │ + ··solidstartApp,
183
- 98 │ + ··sveltekitFullstack,
184
- 99 │ + ··t3Stack,
185
- 100 │ + ··tauriDesktop,
186
- 102 101 │ };
187
- 103 102 │
188
-
189
-
190
- src/index.ts format ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
191
-
192
- × Formatter would have printed the following content:
193
-
194
- 69 69 │
195
- 70 70 │ /** Find templates that match a given set of technology IDs. */
196
- 71 │ - export·function·findTemplatesByTechnologies(
197
- 72 │ - ··technologyIds:·string[],
198
- 73 │ - ):·Template[]·{
199
- 71 │ + export·function·findTemplatesByTechnologies(technologyIds:·string[]):·Template[]·{
200
- 74 72 │ const idSet = new Set(technologyIds);
201
- 75 │ - ··return·templates.filter((t)·=>
202
- 76 │ - ····t.technologyIds.some((tid)·=>·idSet.has(tid)),
203
- 77 │ - ··);
204
- 73 │ + ··return·templates.filter((t)·=>·t.technologyIds.some((tid)·=>·idSet.has(tid)));
205
- 78 74 │ }
206
- 79 75 │
207
-
208
-
209
- src/templates/astro-landing.ts format ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
210
-
211
- × Formatter would have printed the following content:
212
-
213
- 4 4 │ id: "astro-landing",
214
- 5 5 │ name: "Astro Landing Page",
215
- 6 │ - ··description:
216
- 7 │ - ····"Fast·static·landing·page·with·Astro,·Tailwind·CSS,·and·TypeScript",
217
- 8 │ - ··technologyIds:·[
218
- 9 │ - ····"astro",
219
- 10 │ - ····"nodejs",
220
- 11 │ - ····"typescript",
221
- 12 │ - ····"tailwindcss",
222
- 13 │ - ··],
223
- 6 │ + ··description:·"Fast·static·landing·page·with·Astro,·Tailwind·CSS,·and·TypeScript",
224
- 7 │ + ··technologyIds:·["astro",·"nodejs",·"typescript",·"tailwindcss"],
225
- 14 8 │ profile: "lightweight",
226
- 15 9 │ scaffoldSteps: [
227
- ····· │
228
- 27 21 │ {
229
- 28 22 │ path: ".env.example",
230
- 29 │ - ······content:·[
231
- 30 │ - ········"PUBLIC_SITE_URL=http://localhost:4321",
232
- 31 │ - ········"PUBLIC_SITE_TITLE={{projectName}}",
233
- 32 │ - ······].join("\n"),
234
- 23 │ + ······content:·["PUBLIC_SITE_URL=http://localhost:4321",·"PUBLIC_SITE_TITLE={{projectName}}"].join(
235
- 24 │ + ········"\n",
236
- 25 │ + ······),
237
- 33 26 │ },
238
- 34 27 │ ],
239
-
240
-
241
- src/templates/django-react.ts format ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
242
-
243
- × Formatter would have printed the following content:
244
-
245
- 34 34 │ {
246
- 35 35 │ name: "Create React frontend",
247
- 36 │ - ······command:
248
- 37 │ - ········"npx·create-vite@latest·{{projectName}}/frontend·--·--template·react-ts",
249
- 36 │ + ······command:·"npx·create-vite@latest·{{projectName}}/frontend·--·--template·react-ts",
250
- 38 37 │ },
251
- 39 38 │ {
252
- 40 39 │ name: "Install Tailwind in frontend",
253
- 41 │ - ······command:
254
- 42 │ - ········"cd·{{projectName}}/frontend·&&·npm·install·-D·tailwindcss·@tailwindcss/vite",
255
- 40 │ + ······command:·"cd·{{projectName}}/frontend·&&·npm·install·-D·tailwindcss·@tailwindcss/vite",
256
- 43 41 │ },
257
- 44 42 │ ],
258
- ······· │
259
- 119 117 │ timing: "post-scaffold",
260
- 120 118 │ name: "Freeze backend requirements",
261
- 121 │ - ······command:
262
- 122 │ - ········"cd·{{projectName}}/backend·&&·.venv/bin/pip·freeze·>·requirements.lock",
263
- 119 │ + ······command:·"cd·{{projectName}}/backend·&&·.venv/bin/pip·freeze·>·requirements.lock",
264
- 123 120 │ description: "Generate locked requirements file for the backend",
265
- 124 121 │ requiresConfirmation: false,
266
-
267
-
268
- src/templates/django-rest-api.ts format ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
269
-
270
- × Formatter would have printed the following content:
271
-
272
- 6 6 │ description:
273
- 7 7 │ "Production-ready REST API with Django, Django REST Framework, PostgreSQL, and Redis",
274
- 8 │ - ··technologyIds:·[
275
- 9 │ - ····"django",
276
- 10 │ - ····"python",
277
- 11 │ - ····"postgresql",
278
- 12 │ - ····"redis",
279
- 13 │ - ··],
280
- 8 │ + ··technologyIds:·["django",·"python",·"postgresql",·"redis"],
281
- 14 9 │ profile: "standard",
282
- 15 10 │ scaffoldSteps: [
283
- ······· │
284
- 94 89 │ timing: "post-scaffold",
285
- 95 90 │ name: "Freeze requirements",
286
- 96 │ - ······command:
287
- 97 │ - ········"cd·{{projectName}}·&&·.venv/bin/pip·freeze·>·requirements.lock",
288
- 91 │ + ······command:·"cd·{{projectName}}·&&·.venv/bin/pip·freeze·>·requirements.lock",
289
- 98 92 │ description: "Generate locked requirements file",
290
- 99 93 │ requiresConfirmation: false,
291
-
292
-
293
- src/templates/express-api.ts format ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
294
-
295
- × Formatter would have printed the following content:
296
-
297
- 6 6 │ description:
298
- 7 7 │ "Production-ready Express.js REST API with TypeScript, Prisma, PostgreSQL, Redis, and Docker",
299
- 8 │ - ··technologyIds:·[
300
- 9 │ - ····"express",
301
- 10 │ - ····"nodejs",
302
- 11 │ - ····"typescript",
303
- 12 │ - ····"prisma",
304
- 13 │ - ····"postgresql",
305
- 14 │ - ····"redis",
306
- 15 │ - ····"docker",
307
- 16 │ - ··],
308
- 8 │ + ··technologyIds:·["express",·"nodejs",·"typescript",·"prisma",·"postgresql",·"redis",·"docker"],
309
- 17 9 │ profile: "production",
310
- 18 10 │ scaffoldSteps: [
311
- ······· │
312
- 37 29 │ {
313
- 38 30 │ name: "Initialize TypeScript",
314
- 39 │ - ······command:·"cd·{{projectName}}·&&·npx·tsc·--init·--outDir·dist·--rootDir·src·--strict·--esModuleInterop·--resolveJsonModule",
315
- 31 │ + ······command:
316
- 32 │ + ········"cd·{{projectName}}·&&·npx·tsc·--init·--outDir·dist·--rootDir·src·--strict·--esModuleInterop·--resolveJsonModule",
317
- 40 33 │ },
318
- 41 34 │ {
319
-
320
-
321
- src/templates/fastapi-react.ts format ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
322
-
323
- × Formatter would have printed the following content:
324
-
325
- 4 4 │ id: "fastapi-react",
326
- 5 5 │ name: "FastAPI + React",
327
- 6 │ - ··description:
328
- 7 │ - ····"Full-stack·app·with·FastAPI·backend,·React·frontend,·PostgreSQL,·and·Docker",
329
- 6 │ + ··description:·"Full-stack·app·with·FastAPI·backend,·React·frontend,·PostgreSQL,·and·Docker",
330
- 8 7 │ technologyIds: [
331
- 9 8 │ "fastapi",
332
- ······· │
333
- 28 27 │ {
334
- 29 28 │ name: "Create React frontend",
335
- 30 │ - ······command:
336
- 31 │ - ········"npx·create-vite@latest·{{projectName}}/frontend·--·--template·react-ts",
337
- 29 │ + ······command:·"npx·create-vite@latest·{{projectName}}/frontend·--·--template·react-ts",
338
- 32 30 │ },
339
- 33 31 │ {
340
- 34 32 │ name: "Install Tailwind in frontend",
341
- 35 │ - ······command:
342
- 36 │ - ········"cd·{{projectName}}/frontend·&&·npm·install·-D·tailwindcss·@tailwindcss/vite",
343
- 33 │ + ······command:·"cd·{{projectName}}/frontend·&&·npm·install·-D·tailwindcss·@tailwindcss/vite",
344
- 37 34 │ },
345
- 38 35 │ ],
346
- ······· │
347
- 94 91 │ "import os",
348
- 95 92 │ "",
349
- 96 │ - ········"app·=·FastAPI(title=\"{{projectName}}\")",
350
- 93 │ + ········'app·=·FastAPI(title="{{projectName}}")',
351
- 97 94 │ "",
352
- 98 95 │ "app.add_middleware(",
353
-
354
-
355
- src/templates/go-microservice.ts format ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
356
-
357
- × Formatter would have printed the following content:
358
-
359
- 4 4 │ id: "go-microservice",
360
- 5 5 │ name: "Go Microservice",
361
- 6 │ - ··description:
362
- 7 │ - ····"Lightweight·Go·microservice·with·Gin,·PostgreSQL,·Docker,·and·health·checks",
363
- 8 │ - ··technologyIds:·[
364
- 9 │ - ····"go",
365
- 10 │ - ····"gin",
366
- 11 │ - ····"postgresql",
367
- 12 │ - ····"redis",
368
- 13 │ - ····"docker",
369
- 14 │ - ··],
370
- 6 │ + ··description:·"Lightweight·Go·microservice·with·Gin,·PostgreSQL,·Docker,·and·health·checks",
371
- 7 │ + ··technologyIds:·["go",·"gin",·"postgresql",·"redis",·"docker"],
372
- 15 8 │ profile: "production",
373
- 16 9 │ scaffoldSteps: [
374
- ······· │
375
- 89 82 │ "WORKDIR /app",
376
- 90 83 │ "COPY --from=builder /app/server .",
377
- 91 │ - ········'EXPOSE·8080',
378
- 84 │ + ········"EXPOSE·8080",
379
- 92 85 │ 'CMD ["./server"]',
380
- 93 86 │ ].join("\n"),
381
- ······· │
382
- 110 103 │ "",
383
- 111 104 │ '\tport := os.Getenv("PORT")',
384
- 112 │ - ········"\tif·port·==·\"\"·{",
385
- 105 │ + ········'\tif·port·==·""·{',
386
- 113 106 │ '\t\tport = "8080"',
387
- 114 107 │ "\t}",
388
-
389
-
390
- src/templates/htmx-django.ts format ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
391
-
392
- × Formatter would have printed the following content:
393
-
394
- 6 6 │ description:
395
- 7 7 │ "Server-rendered Django app with HTMX for interactivity, Tailwind CSS, and PostgreSQL — minimal JavaScript",
396
- 8 │ - ··technologyIds:·[
397
- 9 │ - ····"htmx",
398
- 10 │ - ····"django",
399
- 11 │ - ····"python",
400
- 12 │ - ····"postgresql",
401
- 13 │ - ····"tailwindcss",
402
- 14 │ - ··],
403
- 8 │ + ··technologyIds:·["htmx",·"django",·"python",·"postgresql",·"tailwindcss"],
404
- 15 9 │ profile: "lightweight",
405
- 16 10 │ scaffoldSteps: [
406
- ······· │
407
- 30 24 │ {
408
- 31 25 │ name: "Create Django project",
409
- 32 │ - ······command:
410
- 33 │ - ········"{{projectName}}/.venv/bin/django-admin·startproject·config·{{projectName}}",
411
- 26 │ + ······command:·"{{projectName}}/.venv/bin/django-admin·startproject·config·{{projectName}}",
412
- 34 27 │ },
413
- 35 28 │ {
414
- ······· │
415
- 90 83 │ timing: "post-scaffold",
416
- 91 84 │ name: "Run initial migrations",
417
- 92 │ - ······command:
418
- 93 │ - ········"cd·{{projectName}}·&&·.venv/bin/python·manage.py·migrate",
419
- 85 │ + ······command:·"cd·{{projectName}}·&&·.venv/bin/python·manage.py·migrate",
420
- 94 86 │ description: "Run Django migrations (requires running PostgreSQL)",
421
- 95 87 │ requiresConfirmation: true,
422
- ······· │
423
- 98 90 │ timing: "post-scaffold",
424
- 99 91 │ name: "Freeze requirements",
425
- 100 │ - ······command:
426
- 101 │ - ········"cd·{{projectName}}·&&·.venv/bin/pip·freeze·>·requirements.lock",
427
- 92 │ + ······command:·"cd·{{projectName}}·&&·.venv/bin/pip·freeze·>·requirements.lock",
428
- 102 93 │ description: "Generate locked requirements file",
429
- 103 94 │ requiresConfirmation: false,
430
-
431
-
432
- src/templates/laravel-app.ts format ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
433
-
434
- × Formatter would have printed the following content:
435
-
436
- 4 4 │ id: "laravel-app",
437
- 5 5 │ name: "Laravel App",
438
- 6 │ - ··description:
439
- 7 │ - ····"Full-stack·Laravel·application·with·MySQL,·Redis,·and·Docker",
440
- 8 │ - ··technologyIds:·[
441
- 9 │ - ····"laravel",
442
- 10 │ - ····"php",
443
- 11 │ - ····"mysql",
444
- 12 │ - ····"redis",
445
- 13 │ - ····"docker",
446
- 14 │ - ··],
447
- 6 │ + ··description:·"Full-stack·Laravel·application·with·MySQL,·Redis,·and·Docker",
448
- 7 │ + ··technologyIds:·["laravel",·"php",·"mysql",·"redis",·"docker"],
449
- 15 8 │ profile: "standard",
450
- 16 9 │ scaffoldSteps: [
451
-
452
-
453
- src/templates/mern-stack.ts format ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
454
-
455
- × Formatter would have printed the following content:
456
-
457
- 6 6 │ description:
458
- 7 7 │ "Full-stack MERN app with React, Express, MongoDB, Node.js, TypeScript, and Tailwind CSS",
459
- 8 │ - ··technologyIds:·[
460
- 9 │ - ····"react",
461
- 10 │ - ····"nodejs",
462
- 11 │ - ····"express",
463
- 12 │ - ····"mongodb",
464
- 13 │ - ····"typescript",
465
- 14 │ - ····"tailwindcss",
466
- 15 │ - ··],
467
- 8 │ + ··technologyIds:·["react",·"nodejs",·"express",·"mongodb",·"typescript",·"tailwindcss"],
468
- 16 9 │ profile: "standard",
469
- 17 10 │ scaffoldSteps: [
470
- 18 11 │ {
471
- 19 12 │ name: "Create React frontend",
472
- 20 │ - ······command:
473
- 21 │ - ········"npx·create-vite@latest·{{projectName}}/frontend·--·--template·react-ts",
474
- 13 │ + ······command:·"npx·create-vite@latest·{{projectName}}/frontend·--·--template·react-ts",
475
- 22 14 │ },
476
- 23 15 │ {
477
- 24 16 │ name: "Install Tailwind in frontend",
478
- 25 │ - ······command:
479
- 26 │ - ········"cd·{{projectName}}/frontend·&&·npm·install·-D·tailwindcss·@tailwindcss/vite",
480
- 17 │ + ······command:·"cd·{{projectName}}/frontend·&&·npm·install·-D·tailwindcss·@tailwindcss/vite",
481
- 27 18 │ },
482
- 28 19 │ {
483
- ······· │
484
- 36 27 │ {
485
- 37 28 │ name: "Install backend dependencies",
486
- 38 │ - ······command:
487
- 39 │ - ········"cd·{{projectName}}/backend·&&·npm·install·express·cors·helmet·dotenv·mongoose",
488
- 29 │ + ······command:·"cd·{{projectName}}/backend·&&·npm·install·express·cors·helmet·dotenv·mongoose",
489
- 40 30 │ },
490
- 41 31 │ {
491
-
492
-
493
- src/templates/nestjs-api.ts format ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
494
-
495
- × Formatter would have printed the following content:
496
-
497
- 4 4 │ id: "nestjs-api",
498
- 5 5 │ name: "NestJS API",
499
- 6 │ - ··description:
500
- 7 │ - ····"Production-ready·NestJS·REST·API·with·Prisma,·PostgreSQL,·Redis,·and·Docker",
501
- 8 │ - ··technologyIds:·[
502
- 9 │ - ····"nestjs",
503
- 10 │ - ····"nodejs",
504
- 11 │ - ····"typescript",
505
- 12 │ - ····"prisma",
506
- 13 │ - ····"postgresql",
507
- 14 │ - ····"redis",
508
- 15 │ - ····"docker",
509
- 16 │ - ··],
510
- 6 │ + ··description:·"Production-ready·NestJS·REST·API·with·Prisma,·PostgreSQL,·Redis,·and·Docker",
511
- 7 │ + ··technologyIds:·["nestjs",·"nodejs",·"typescript",·"prisma",·"postgresql",·"redis",·"docker"],
512
- 17 8 │ profile: "production",
513
- 18 9 │ scaffoldSteps: [
514
- ······· │
515
- 27 18 │ {
516
- 28 19 │ name: "Initialize Prisma",
517
- 29 │ - ······command:
518
- 30 │ - ········"cd·{{projectName}}·&&·npx·prisma·init·--datasource-provider·postgresql",
519
- 20 │ + ······command:·"cd·{{projectName}}·&&·npx·prisma·init·--datasource-provider·postgresql",
520
- 31 21 │ },
521
- 32 22 │ {
522
- 33 23 │ name: "Install Redis and config",
523
- 34 │ - ······command:
524
- 35 │ - ········"cd·{{projectName}}·&&·npm·install·@nestjs/config·ioredis·@nestjs-modules/ioredis",
525
- 24 │ + ······command:·"cd·{{projectName}}·&&·npm·install·@nestjs/config·ioredis·@nestjs-modules/ioredis",
526
- 36 25 │ },
527
- 37 26 │ {
528
- 38 27 │ name: "Install validation",
529
- 39 │ - ······command:
530
- 40 │ - ········"cd·{{projectName}}·&&·npm·install·class-validator·class-transformer",
531
- 28 │ + ······command:·"cd·{{projectName}}·&&·npm·install·class-validator·class-transformer",
532
- 41 29 │ },
533
- 42 30 │ ],
534
-
535
-
536
- src/templates/nuxt3-app.ts format ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
537
-
538
- × Formatter would have printed the following content:
539
-
540
- 4 4 │ id: "nuxt3-app",
541
- 5 5 │ name: "Nuxt 3 App",
542
- 6 │ - ··description:
543
- 7 │ - ····"Full-stack·Nuxt·3·application·with·Vue,·Tailwind·CSS,·and·PostgreSQL",
544
- 8 │ - ··technologyIds:·[
545
- 9 │ - ····"nuxt",
546
- 10 │ - ····"vue",
547
- 11 │ - ····"nodejs",
548
- 12 │ - ····"typescript",
549
- 13 │ - ····"tailwindcss",
550
- 14 │ - ····"postgresql",
551
- 15 │ - ··],
552
- 6 │ + ··description:·"Full-stack·Nuxt·3·application·with·Vue,·Tailwind·CSS,·and·PostgreSQL",
553
- 7 │ + ··technologyIds:·["nuxt",·"vue",·"nodejs",·"typescript",·"tailwindcss",·"postgresql"],
554
- 16 8 │ profile: "standard",
555
- 17 9 │ scaffoldSteps: [
556
-
557
-
558
- src/templates/python-ai-lab.ts format ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
559
-
560
- × Formatter would have printed the following content:
561
-
562
- 4 4 │ id: "python-ai-lab",
563
- 5 5 │ name: "Python AI Lab",
564
- 6 │ - ··description:
565
- 7 │ - ····"Python·ML/AI·development·environment·with·FastAPI,·PostgreSQL,·Redis,·and·Docker",
566
- 8 │ - ··technologyIds:·[
567
- 9 │ - ····"python",
568
- 10 │ - ····"fastapi",
569
- 11 │ - ····"postgresql",
570
- 12 │ - ····"redis",
571
- 13 │ - ····"docker",
572
- 14 │ - ··],
573
- 6 │ + ··description:·"Python·ML/AI·development·environment·with·FastAPI,·PostgreSQL,·Redis,·and·Docker",
574
- 7 │ + ··technologyIds:·["python",·"fastapi",·"postgresql",·"redis",·"docker"],
575
- 15 8 │ profile: "production",
576
- 16 9 │ scaffoldSteps: [
577
- ······· │
578
- 31 24 │ {
579
- 32 25 │ name: "Install ML dependencies",
580
- 33 │ - ······command:
581
- 34 │ - ········"{{projectName}}/.venv/bin/pip·install·numpy·pandas·scikit-learn·jupyter·matplotlib",
582
- 26 │ + ······command:·"{{projectName}}/.venv/bin/pip·install·numpy·pandas·scikit-learn·jupyter·matplotlib",
583
- 35 27 │ },
584
- 36 28 │ ],
585
- ······· │
586
- 146 138 │ timing: "post-scaffold",
587
- 147 139 │ name: "Freeze requirements",
588
- 148 │ - ······command:
589
- 149 │ - ········"cd·{{projectName}}·&&·.venv/bin/pip·freeze·>·requirements.lock",
590
- 140 │ + ······command:·"cd·{{projectName}}·&&·.venv/bin/pip·freeze·>·requirements.lock",
591
- 150 141 │ description: "Generate locked requirements file",
592
- 151 142 │ requiresConfirmation: false,
593
-
594
-
595
- src/templates/remix-fullstack.ts format ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
596
-
597
- × Formatter would have printed the following content:
598
-
599
- 4 4 │ id: "remix-fullstack",
600
- 5 5 │ name: "Remix Fullstack",
601
- 6 │ - ··description:
602
- 7 │ - ····"Full-stack·Remix·app·with·Prisma,·PostgreSQL,·Tailwind·CSS,·and·TypeScript",
603
- 8 │ - ··technologyIds:·[
604
- 9 │ - ····"remix",
605
- 10 │ - ····"react",
606
- 11 │ - ····"nodejs",
607
- 12 │ - ····"typescript",
608
- 13 │ - ····"tailwindcss",
609
- 14 │ - ····"prisma",
610
- 15 │ - ····"postgresql",
611
- 16 │ - ··],
612
- 6 │ + ··description:·"Full-stack·Remix·app·with·Prisma,·PostgreSQL,·Tailwind·CSS,·and·TypeScript",
613
- 7 │ + ··technologyIds:·["remix",·"react",·"nodejs",·"typescript",·"tailwindcss",·"prisma",·"postgresql"],
614
- 17 8 │ profile: "standard",
615
- 18 9 │ scaffoldSteps: [
616
- ····· │
617
- 27 18 │ {
618
- 28 19 │ name: "Initialize Prisma",
619
- 29 │ - ······command:
620
- 30 │ - ········"cd·{{projectName}}·&&·npx·prisma·init·--datasource-provider·postgresql",
621
- 20 │ + ······command:·"cd·{{projectName}}·&&·npx·prisma·init·--datasource-provider·postgresql",
622
- 31 21 │ },
623
- 32 22 │ {
624
- 33 23 │ name: "Install Tailwind",
625
- 34 │ - ······command:
626
- 35 │ - ········"cd·{{projectName}}·&&·npm·install·-D·tailwindcss·@tailwindcss/vite",
627
- 24 │ + ······command:·"cd·{{projectName}}·&&·npm·install·-D·tailwindcss·@tailwindcss/vite",
628
- 36 25 │ },
629
- 37 26 │ ],
630
-
631
-
632
- src/templates/tauri-desktop.ts format ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
633
-
634
- × Formatter would have printed the following content:
635
-
636
- 4 4 │ id: "tauri-desktop",
637
- 5 5 │ name: "Tauri Desktop",
638
- 6 │ - ··description:
639
- 7 │ - ····"Cross-platform·desktop·app·with·Tauri,·React,·TypeScript,·Tailwind·CSS,·and·SQLite",
640
- 8 │ - ··technologyIds:·[
641
- 9 │ - ····"react",
642
- 10 │ - ····"nodejs",
643
- 11 │ - ····"typescript",
644
- 12 │ - ····"tailwindcss",
645
- 13 │ - ····"sqlite",
646
- 14 │ - ··],
647
- 6 │ + ··description:·"Cross-platform·desktop·app·with·Tauri,·React,·TypeScript,·Tailwind·CSS,·and·SQLite",
648
- 7 │ + ··technologyIds:·["react",·"nodejs",·"typescript",·"tailwindcss",·"sqlite"],
649
- 15 8 │ profile: "standard",
650
- 16 9 │ scaffoldSteps: [
651
- 17 10 │ {
652
- 18 11 │ name: "Create Vite + React project",
653
- 19 │ - ······command:
654
- 20 │ - ········"npx·create-vite@latest·{{projectName}}·--·--template·react-ts",
655
- 12 │ + ······command:·"npx·create-vite@latest·{{projectName}}·--·--template·react-ts",
656
- 21 13 │ },
657
- 22 14 │ {
658
- 23 15 │ name: "Install Tailwind",
659
- 24 │ - ······command:
660
- 25 │ - ········"cd·{{projectName}}·&&·npm·install·-D·tailwindcss·@tailwindcss/vite",
661
- 16 │ + ······command:·"cd·{{projectName}}·&&·npm·install·-D·tailwindcss·@tailwindcss/vite",
662
- 26 17 │ },
663
- 27 18 │ {
664
- ····· │
665
- 35 26 │ {
666
- 36 27 │ name: "Initialize Tauri",
667
- 37 │ - ······command:·"cd·{{projectName}}·&&·npx·tauri·init·--app-name·{{projectName}}·--window-title·{{projectName}}·--dist-dir·../dist·--dev-path·http://localhost:5173·--ci",
668
- 28 │ + ······command:
669
- 29 │ + ········"cd·{{projectName}}·&&·npx·tauri·init·--app-name·{{projectName}}·--window-title·{{projectName}}·--dist-dir·../dist·--dev-path·http://localhost:5173·--ci",
670
- 38 30 │ },
671
- 39 31 │ ],
672
- ····· │
673
- 41 33 │ {
674
- 42 34 │ path: ".env.example",
675
- 43 │ - ······content:·[
676
- 44 │ - ········"VITE_APP_NAME={{projectName}}",
677
- 45 │ - ········"VITE_APP_VERSION=0.1.0",
678
- 46 │ - ······].join("\n"),
679
- 35 │ + ······content:·["VITE_APP_NAME={{projectName}}",·"VITE_APP_VERSION=0.1.0"].join("\n"),
680
- 47 36 │ },
681
- 48 37 │ ],
682
-
683
-
684
- The number of diagnostics exceeds the limit allowed. Use --max-diagnostics to increase it.
685
- Diagnostics not shown: 6.
686
- Checked 22 files in 31ms. No fixes applied.
687
- Found 23 errors.
688
- Found 3 warnings.
689
- check ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
690
-
691
- × Some errors were emitted while running checks.
692
-
693
-
694
-  ELIFECYCLE  Command failed with exit code 1.