@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,694 @@
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.