@adriankulik/create-fullstack-app 1.5.0 → 1.7.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 (67) hide show
  1. package/cli/index.js +9 -9
  2. package/package.json +21 -4
  3. package/templates/backend/dotnet/Tests/Tests.csproj +1 -1
  4. package/templates/backend/dotnet/dotnet.csproj +1 -1
  5. package/templates/backend/dotnet/lint.sh +1 -0
  6. package/templates/backend/dotnet/start.sh +1 -0
  7. package/templates/backend/dotnet/test.sh +1 -0
  8. package/templates/backend/fastapi/lint.sh +1 -0
  9. package/templates/backend/fastapi/requirements.txt +1 -1
  10. package/templates/backend/fastapi/start.sh +1 -0
  11. package/templates/backend/fastapi/test.sh +1 -0
  12. package/templates/backend/flask/lint.sh +1 -0
  13. package/templates/backend/flask/requirements.txt +1 -1
  14. package/templates/backend/flask/start.sh +1 -0
  15. package/templates/backend/flask/test.sh +1 -0
  16. package/templates/backend/nodejs/eslint.config.js +15 -0
  17. package/templates/backend/nodejs/lint.sh +1 -0
  18. package/templates/backend/nodejs/package-lock.json +1121 -2112
  19. package/templates/backend/nodejs/package.json +6 -6
  20. package/templates/backend/nodejs/start.sh +1 -0
  21. package/templates/backend/nodejs/test.sh +1 -0
  22. package/templates/base/.editorconfig +18 -0
  23. package/templates/base/.github/workflows/test.yml +26 -10
  24. package/templates/base/gitignore +4 -0
  25. package/templates/frontend/angular/angular.json +6 -0
  26. package/templates/frontend/angular/eslint.config.js +35 -0
  27. package/templates/frontend/angular/lint.sh +1 -0
  28. package/templates/frontend/angular/package-lock.json +1420 -488
  29. package/templates/frontend/angular/package.json +9 -2
  30. package/templates/frontend/angular/src/app/app.component.html +32 -0
  31. package/templates/frontend/angular/src/app/app.component.ts +12 -35
  32. package/templates/frontend/angular/start.sh +1 -0
  33. package/templates/frontend/angular/test.sh +1 -0
  34. package/templates/frontend/nextjs/__tests__/page.test.tsx +4 -4
  35. package/templates/frontend/nextjs/app/page.tsx +8 -2
  36. package/templates/frontend/nextjs/eslint.config.mjs +7 -0
  37. package/templates/frontend/nextjs/lint.sh +1 -0
  38. package/templates/frontend/nextjs/package-lock.json +1336 -872
  39. package/templates/frontend/nextjs/package.json +11 -10
  40. package/templates/frontend/nextjs/start.sh +1 -0
  41. package/templates/frontend/nextjs/test.sh +1 -0
  42. package/templates/frontend/nextjs/tsconfig.json +2 -1
  43. package/templates/frontend/svelte/eslint.config.js +29 -0
  44. package/templates/frontend/svelte/lint.sh +1 -0
  45. package/templates/frontend/svelte/package-lock.json +1676 -3482
  46. package/templates/frontend/svelte/package.json +14 -13
  47. package/templates/frontend/svelte/src/App.spec.ts +7 -7
  48. package/templates/frontend/svelte/src/App.svelte +14 -7
  49. package/templates/frontend/svelte/start.sh +1 -0
  50. package/templates/frontend/svelte/test.sh +1 -0
  51. package/templates/frontend/svelte/vite.config.ts +2 -2
  52. package/templates/frontend/vue/eslint.config.js +26 -0
  53. package/templates/frontend/vue/lint.sh +1 -0
  54. package/templates/frontend/vue/package-lock.json +1598 -2755
  55. package/templates/frontend/vue/package.json +13 -13
  56. package/templates/frontend/vue/src/App.vue +30 -9
  57. package/templates/frontend/vue/src/__tests__/App.spec.ts +4 -4
  58. package/templates/frontend/vue/start.sh +1 -0
  59. package/templates/frontend/vue/test.sh +1 -0
  60. package/templates/frontend/vue/tsconfig.json +13 -5
  61. package/templates/frontend/vue/vite.config.ts +0 -1
  62. package/cli/package-lock.json +0 -1338
  63. package/cli/package.json +0 -23
  64. package/templates/backend/nodejs/.eslintrc.json +0 -15
  65. package/templates/frontend/nextjs/.eslintrc.json +0 -3
  66. package/templates/frontend/svelte/.eslintrc.cjs +0 -27
  67. package/templates/frontend/vue/.eslintrc.cjs +0 -18
package/cli/index.js CHANGED
@@ -203,37 +203,37 @@ async function main() {
203
203
  dotnetMajor = 0;
204
204
  }
205
205
 
206
- if (dotnetMajor < 9) {
207
- console.log(pc.yellow(`\n .NET 9 SDK is required but ${dotnetMajor > 0 ? `v${dotnetMajor} was found` : "dotnet was not found"} on your system.`));
206
+ if (dotnetMajor < 10) {
207
+ console.log(pc.yellow(`\n .NET 10 SDK is required but ${dotnetMajor > 0 ? `v${dotnetMajor} was found` : "dotnet was not found"} on your system.`));
208
208
 
209
209
  if (process.platform === "win32") {
210
- console.log(pc.yellow(" Please install the .NET 9 SDK from: https://aka.ms/dotnet/download"));
210
+ console.log(pc.yellow(" Please install the .NET 10 SDK from: https://aka.ms/dotnet/download"));
211
211
  } else {
212
212
  const { installDotnet } = await prompts({
213
213
  type: "confirm",
214
214
  name: "installDotnet",
215
- message: "Would you like to install the .NET 9 SDK automatically? (uses the official Microsoft install script)",
215
+ message: "Would you like to install the .NET 10 SDK automatically? (uses the official Microsoft install script)",
216
216
  initial: true,
217
217
  });
218
218
 
219
219
  if (installDotnet) {
220
- console.log(pc.cyan(" Installing .NET 9 SDK (this may take a few minutes)..."));
220
+ console.log(pc.cyan(" Installing .NET 10 SDK (this may take a few minutes)..."));
221
221
  try {
222
222
  execSync(
223
- "curl -sSL https://dot.net/v1/dotnet-install.sh | bash -s -- --channel 9.0",
223
+ "curl -sSL https://dot.net/v1/dotnet-install.sh | bash -s -- --channel 10.0",
224
224
  { stdio: "inherit" }
225
225
  );
226
226
  // Make the newly installed dotnet available in the current process without a shell restart
227
227
  const dotnetRoot = path.join(os.homedir(), ".dotnet");
228
228
  process.env.DOTNET_ROOT = dotnetRoot;
229
229
  process.env.PATH = `${dotnetRoot}:${process.env.PATH}`;
230
- console.log(pc.green(" .NET 9 SDK installed successfully."));
230
+ console.log(pc.green(" .NET 10 SDK installed successfully."));
231
231
  console.log(pc.yellow(` Add ${dotnetRoot} to your PATH permanently by updating your shell profile (e.g. ~/.zshrc).`));
232
232
  } catch (e) {
233
233
  console.log(pc.yellow(" Could not install .NET SDK automatically. Please install it from https://aka.ms/dotnet/download"));
234
234
  }
235
235
  } else {
236
- console.log(pc.yellow(" Skipping .NET SDK installation. Please install .NET 9 SDK from https://aka.ms/dotnet/download"));
236
+ console.log(pc.yellow(" Skipping .NET SDK installation. Please install .NET 10 SDK from https://aka.ms/dotnet/download"));
237
237
  }
238
238
  }
239
239
  }
@@ -244,7 +244,7 @@ async function main() {
244
244
  } catch (e) {
245
245
  console.log(
246
246
  pc.yellow(
247
- " Could not restore .NET dependencies automatically. Please make sure .NET 9 SDK is installed and in your PATH.",
247
+ " Could not restore .NET dependencies automatically. Please make sure .NET 10 SDK is installed and in your PATH.",
248
248
  ),
249
249
  );
250
250
  }
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "publishConfig": {
4
4
  "access": "public"
5
5
  },
6
- "version": "1.5.0",
6
+ "version": "1.7.0",
7
7
  "description": "A CLI tool for scaffolding a full-stack web application with your choice of frontend and backend technologies.",
8
8
  "main": "cli/index.js",
9
9
  "bin": {
@@ -27,14 +27,31 @@
27
27
  "wait-on": "^9.0.10"
28
28
  },
29
29
  "scripts": {
30
- "test": "echo \"Error: no test specified\" && exit 1"
30
+ "test": "echo \"No unit tests specified\" && exit 0",
31
+ "test:e2e": "vitest run tests/e2e.test.js",
32
+ "test:integration": "npx playwright test tests/integration.spec.js"
31
33
  },
32
34
  "repository": {
33
35
  "type": "git",
34
36
  "url": "git+https://github.com/adriankulik/create-fullstack-app.git"
35
37
  },
36
- "keywords": [],
37
- "author": "",
38
+ "keywords": [
39
+ "cli",
40
+ "scaffold",
41
+ "fullstack",
42
+ "react",
43
+ "nextjs",
44
+ "angular",
45
+ "vue",
46
+ "svelte",
47
+ "fastapi",
48
+ "flask",
49
+ "dotnet",
50
+ "express",
51
+ "boilerplate",
52
+ "starter"
53
+ ],
54
+ "author": "Adrian Kulik",
38
55
  "license": "MIT",
39
56
  "bugs": {
40
57
  "url": "https://github.com/adriankulik/create-fullstack-app/issues"
@@ -1,7 +1,7 @@
1
1
  <Project Sdk="Microsoft.NET.Sdk">
2
2
 
3
3
  <PropertyGroup>
4
- <TargetFramework>net9.0</TargetFramework>
4
+ <TargetFramework>net10.0</TargetFramework>
5
5
  <ImplicitUsings>enable</ImplicitUsings>
6
6
  <Nullable>enable</Nullable>
7
7
 
@@ -1,7 +1,7 @@
1
1
  <Project Sdk="Microsoft.NET.Sdk.Web">
2
2
 
3
3
  <PropertyGroup>
4
- <TargetFramework>net9.0</TargetFramework>
4
+ <TargetFramework>net10.0</TargetFramework>
5
5
  <Nullable>enable</Nullable>
6
6
  <ImplicitUsings>enable</ImplicitUsings>
7
7
  <InvariantGlobalization>true</InvariantGlobalization>
@@ -1,2 +1,3 @@
1
1
  #!/usr/bin/env bash
2
+ set -e
2
3
  dotnet format backend.sln
@@ -1,2 +1,3 @@
1
1
  #!/usr/bin/env bash
2
+ set -e
2
3
  dotnet run --project dotnet.csproj
@@ -1,2 +1,3 @@
1
1
  #!/usr/bin/env bash
2
+ set -e
2
3
  dotnet test backend.sln
@@ -1,4 +1,5 @@
1
1
  #!/usr/bin/env bash
2
+ set -e
2
3
  if [ -d "venv" ]; then
3
4
  source venv/bin/activate
4
5
  ruff check . --fix
@@ -2,4 +2,4 @@ fastapi==0.136.1
2
2
  uvicorn==0.28.0
3
3
  pytest==8.1.1
4
4
  httpx==0.27.0
5
- ruff==0.3.3
5
+ ruff==0.15.13
@@ -1,4 +1,5 @@
1
1
  #!/usr/bin/env bash
2
+ set -e
2
3
  if [ -d "venv" ]; then
3
4
  source venv/bin/activate
4
5
  python -m uvicorn main:app --reload --port 8000
@@ -1,4 +1,5 @@
1
1
  #!/usr/bin/env bash
2
+ set -e
2
3
  if [ -d "venv" ]; then
3
4
  source venv/bin/activate
4
5
  pytest
@@ -1,4 +1,5 @@
1
1
  #!/usr/bin/env bash
2
+ set -e
2
3
  if [ -d "venv" ]; then
3
4
  source venv/bin/activate
4
5
  ruff check . --fix
@@ -2,4 +2,4 @@ Flask==3.1.3
2
2
  Flask-Cors==4.0.0
3
3
  pytest==8.1.1
4
4
  httpx==0.27.0
5
- ruff==0.3.3
5
+ ruff==0.15.13
@@ -1,4 +1,5 @@
1
1
  #!/usr/bin/env bash
2
+ set -e
2
3
  if [ -d "venv" ]; then
3
4
  source venv/bin/activate
4
5
  python main.py
@@ -1,4 +1,5 @@
1
1
  #!/usr/bin/env bash
2
+ set -e
2
3
  if [ -d "venv" ]; then
3
4
  source venv/bin/activate
4
5
  pytest
@@ -0,0 +1,15 @@
1
+ import js from '@eslint/js'
2
+ import tseslint from 'typescript-eslint'
3
+
4
+ export default [
5
+ js.configs.recommended,
6
+ ...tseslint.configs.recommended,
7
+ {
8
+ rules: {
9
+ '@typescript-eslint/no-explicit-any': 'warn'
10
+ }
11
+ },
12
+ {
13
+ ignores: ['dist/']
14
+ }
15
+ ]
@@ -1,2 +1,3 @@
1
1
  #!/usr/bin/env bash
2
+ set -e
2
3
  npm run lint