@exanderal/stackcraft 0.0.1 → 0.1.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 (94) hide show
  1. package/dist/add/index.d.ts +2 -0
  2. package/dist/add/index.d.ts.map +1 -0
  3. package/dist/add/index.js +7 -0
  4. package/dist/add/index.js.map +1 -0
  5. package/dist/create/index.d.ts +2 -0
  6. package/dist/create/index.d.ts.map +1 -0
  7. package/dist/create/index.js +50 -0
  8. package/dist/create/index.js.map +1 -0
  9. package/dist/create/scaffold.d.ts +3 -0
  10. package/dist/create/scaffold.d.ts.map +1 -0
  11. package/dist/create/scaffold.js +22 -0
  12. package/dist/create/scaffold.js.map +1 -0
  13. package/dist/create/scaffolders/__tests__/web-vite.test.d.ts +2 -0
  14. package/dist/create/scaffolders/__tests__/web-vite.test.d.ts.map +1 -0
  15. package/dist/create/scaffolders/__tests__/web-vite.test.js +31 -0
  16. package/dist/create/scaffolders/__tests__/web-vite.test.js.map +1 -0
  17. package/dist/create/scaffolders/api-nestjs-rest.d.ts +3 -0
  18. package/dist/create/scaffolders/api-nestjs-rest.d.ts.map +1 -0
  19. package/dist/create/scaffolders/api-nestjs-rest.js +14 -0
  20. package/dist/create/scaffolders/api-nestjs-rest.js.map +1 -0
  21. package/dist/create/scaffolders/base.d.ts +3 -0
  22. package/dist/create/scaffolders/base.d.ts.map +1 -0
  23. package/dist/create/scaffolders/base.js +14 -0
  24. package/dist/create/scaffolders/base.js.map +1 -0
  25. package/dist/create/scaffolders/utils/copy.d.ts +2 -0
  26. package/dist/create/scaffolders/utils/copy.d.ts.map +1 -0
  27. package/dist/create/scaffolders/utils/copy.js +34 -0
  28. package/dist/create/scaffolders/utils/copy.js.map +1 -0
  29. package/dist/create/scaffolders/web-nextjs.d.ts +3 -0
  30. package/dist/create/scaffolders/web-nextjs.d.ts.map +1 -0
  31. package/dist/create/scaffolders/web-nextjs.js +14 -0
  32. package/dist/create/scaffolders/web-nextjs.js.map +1 -0
  33. package/dist/create/scaffolders/web-vite.d.ts +3 -0
  34. package/dist/create/scaffolders/web-vite.d.ts.map +1 -0
  35. package/dist/create/scaffolders/web-vite.js +14 -0
  36. package/dist/create/scaffolders/web-vite.js.map +1 -0
  37. package/dist/create/types.d.ts +11 -0
  38. package/dist/create/types.d.ts.map +1 -0
  39. package/dist/create/types.js +2 -0
  40. package/dist/create/types.js.map +1 -0
  41. package/dist/index.d.ts +3 -0
  42. package/dist/index.d.ts.map +1 -0
  43. package/dist/index.js +17 -0
  44. package/dist/index.js.map +1 -0
  45. package/eslint/index.js +9 -0
  46. package/package.json +39 -4
  47. package/prettier/index.js +8 -0
  48. package/templates/api-nestjs-rest/.prettierrc +4 -0
  49. package/templates/api-nestjs-rest/eslint.config.mjs +34 -0
  50. package/templates/api-nestjs-rest/nest-cli.json +8 -0
  51. package/templates/api-nestjs-rest/package.json +74 -0
  52. package/templates/api-nestjs-rest/project.json +21 -0
  53. package/templates/api-nestjs-rest/src/app.controller.spec.ts +22 -0
  54. package/templates/api-nestjs-rest/src/app.controller.ts +12 -0
  55. package/templates/api-nestjs-rest/src/app.module.ts +10 -0
  56. package/templates/api-nestjs-rest/src/app.service.ts +8 -0
  57. package/templates/api-nestjs-rest/src/main.ts +8 -0
  58. package/templates/api-nestjs-rest/test/app.e2e-spec.ts +25 -0
  59. package/templates/api-nestjs-rest/test/jest-e2e.json +9 -0
  60. package/templates/api-nestjs-rest/tsconfig.build.json +4 -0
  61. package/templates/api-nestjs-rest/tsconfig.json +21 -0
  62. package/templates/base/.gitkeep +0 -0
  63. package/templates/base/nx.json +16 -0
  64. package/templates/base/package.json +14 -0
  65. package/templates/base/pnpm-workspace.yaml +3 -0
  66. package/templates/base/tsconfig.base.json +8 -0
  67. package/templates/web-nextjs/AGENTS.md +5 -0
  68. package/templates/web-nextjs/CLAUDE.md +1 -0
  69. package/templates/web-nextjs/app/favicon.ico +0 -0
  70. package/templates/web-nextjs/app/globals.css +10 -0
  71. package/templates/web-nextjs/app/layout.tsx +30 -0
  72. package/templates/web-nextjs/app/page.tsx +3 -0
  73. package/templates/web-nextjs/next.config.ts +8 -0
  74. package/templates/web-nextjs/package.json +23 -0
  75. package/templates/web-nextjs/project.json +17 -0
  76. package/templates/web-nextjs/public/file.svg +1 -0
  77. package/templates/web-nextjs/public/globe.svg +1 -0
  78. package/templates/web-nextjs/public/window.svg +1 -0
  79. package/templates/web-nextjs/tsconfig.json +34 -0
  80. package/templates/web-vite/eslint.config.js +23 -0
  81. package/templates/web-vite/index.html +13 -0
  82. package/templates/web-vite/package.json +30 -0
  83. package/templates/web-vite/project.json +21 -0
  84. package/templates/web-vite/public/favicon.svg +1 -0
  85. package/templates/web-vite/src/App.tsx +5 -0
  86. package/templates/web-vite/src/index.css +8 -0
  87. package/templates/web-vite/src/main.tsx +10 -0
  88. package/templates/web-vite/tsconfig.app.json +28 -0
  89. package/templates/web-vite/tsconfig.json +7 -0
  90. package/templates/web-vite/tsconfig.node.json +26 -0
  91. package/templates/web-vite/vite.config.ts +7 -0
  92. package/tsconfig/base.json +13 -0
  93. package/CLAUDE.md +0 -95
  94. package/index.js +0 -1
package/CLAUDE.md DELETED
@@ -1,95 +0,0 @@
1
- # Stackcraft — Claude Context
2
-
3
- ## What is this project
4
-
5
- Stackcraft is an opinionated full-stack project scaffolding CLI tool, open source on GitHub under the `@exanderal` npm scope. The goal is to let developers (including beginners and AI agents) spin up production-ready monorepo projects with minimal configuration.
6
-
7
- **npm package name:** `stackcraft` (unscoped, claimed by exanderal)
8
- **npm scope:** `@exanderal`
9
- **npm username:** `exanderal`
10
-
11
- ## Architecture Decisions
12
-
13
- - **Monorepo tool:** Nx (chosen over Turborepo for first-class Expo/React Native support via `@nx/expo`)
14
- - **Package manager:** pnpm
15
- - **Prompt library:** `@clack/prompts` (not inquirer)
16
- - **Process runner:** `execa`
17
- - **Language:** TypeScript throughout
18
-
19
- ## Repo Structure
20
-
21
- ```
22
- /
23
- ├── packages/
24
- │ ├── cli/ # Binary: npx stackcraft
25
- │ ├── config-eslint/ # @exanderal/config-eslint (versioned)
26
- │ ├── config-typescript/ # @exanderal/config-typescript (versioned)
27
- │ └── config-prettier/ # @exanderal/config-prettier (versioned)
28
- ├── templates/
29
- │ ├── base/ # Nx workspace root scaffolding
30
- │ ├── api-nestjs-rest/ # NestJS REST structure
31
- │ ├── api-nestjs-graphql/ # NestJS GraphQL structure (Phase 2)
32
- │ ├── web-vite/ # Vite + React
33
- │ ├── web-nextjs/ # Next.js
34
- │ └── mobile-expo/ # Expo (Phase 2)
35
- ├── addons/ # Post-creation installers (Phase 3+)
36
- ├── nx.json
37
- └── pnpm-workspace.yaml
38
- ```
39
-
40
- ## CLI Design
41
-
42
- Two layers:
43
-
44
- 1. **Create** — `npx stackcraft` interactive wizard for beginners, presets for power users
45
- 2. **Add** — `stackcraft add [addon]` post-creation addon system for power users and AI agents
46
-
47
- ### Create Flow (wizard)
48
- - Project name
49
- - Backend: NestJS REST / NestJS GraphQL
50
- - Frontend: Vite + React / Next.js
51
- - Mobile: None / Expo
52
- - Package manager: pnpm (default) / npm
53
-
54
- ### Add System (addon interface)
55
- ```ts
56
- interface Addon {
57
- name: string
58
- description: string
59
- requires: AppType[]
60
- incompatible?: AddonName[]
61
- install: (ctx: AddonContext) => Promise<void>
62
- }
63
- ```
64
-
65
- ## Phase Roadmap
66
-
67
- | Phase | Scope |
68
- |---|---|
69
- | 1 (current) | Nx workspace + CLI skeleton + NestJS REST + Vite + Next.js templates |
70
- | 2 | NestJS GraphQL template + codegen pipeline + Expo |
71
- | 3 | `stackcraft add` system + first addons (auth, supabase, firebase) |
72
- | 4 | Presets, --config JSON input, dry-run mode for AI agents |
73
-
74
- ## Key Conventions
75
-
76
- - `apps/` — runnable applications (api, web, mobile, landing)
77
- - `packages/` — shared code (graphql types, ui components, configs)
78
- - Every app has the same scripts: `dev`, `build`, `test`, `lint`
79
- - Shared configs live in versioned `@exanderal/config-*` packages so users can update via `pnpm update`
80
- - Generated GraphQL types live in `packages/graphql/generated` — single source of truth
81
-
82
- ## Addons Strategy
83
-
84
- Handpicked only due to maintenance overhead. Planned categories:
85
- - Auth (e.g. better-auth)
86
- - State management
87
- - DB services (Supabase, Firebase)
88
- - NestJS repository patterns
89
-
90
- ## What NOT to do
91
-
92
- - Do not add features beyond what is asked
93
- - Do not over-engineer templates — they should be minimal and clear
94
- - Do not add addons that can't be properly maintained
95
- - Keep the beginner wizard flow simple — descriptions on every option
package/index.js DELETED
@@ -1 +0,0 @@
1
- console.log("stackcraft coming soon");