plazercli 1.0.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.
- package/README.md +227 -0
- package/dist/index.js +4059 -0
- package/dist/index.js.map +1 -0
- package/package.json +47 -0
- package/templates/base/root/editorconfig +9 -0
- package/templates/base/root/gitignore +14 -0
- package/templates/base/root/nvmrc +1 -0
- package/templates/base/root/package.json.ejs +19 -0
- package/templates/base/root/pnpm-workspace.yaml +2 -0
package/README.md
ADDED
|
@@ -0,0 +1,227 @@
|
|
|
1
|
+
<p align="center">
|
|
2
|
+
<h1 align="center">PlazerCLI</h1>
|
|
3
|
+
<p align="center">
|
|
4
|
+
Gerador de projetos fullstack com auto-configuracao completa.<br/>
|
|
5
|
+
Responda as perguntas e a <strong>Liz</strong> monta tudo pra voce.
|
|
6
|
+
</p>
|
|
7
|
+
</p>
|
|
8
|
+
|
|
9
|
+
<p align="center">
|
|
10
|
+
<a href="#quick-start">Quick Start</a> |
|
|
11
|
+
<a href="#features">Features</a> |
|
|
12
|
+
<a href="#stack-suportada">Stack</a> |
|
|
13
|
+
<a href="#liz---ai-agent">Liz AI</a> |
|
|
14
|
+
<a href="#como-funciona">Como Funciona</a>
|
|
15
|
+
</p>
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## Quick Start
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
npx plazercli
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
Ou instale globalmente:
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
npm install -g plazercli
|
|
29
|
+
plazercli
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
A Liz vai te perguntar sobre o projeto e configurar tudo automaticamente.
|
|
33
|
+
|
|
34
|
+
## O que a Liz faz por voce
|
|
35
|
+
|
|
36
|
+
Ao rodar o `plazercli`, a Liz:
|
|
37
|
+
|
|
38
|
+
1. **Pergunta** o nome do projeto e o que ele faz
|
|
39
|
+
2. **Pergunta** qual stack voce quer (frontend, backend, banco, etc.)
|
|
40
|
+
3. **Cria** o monorepo completo com `apps/web` + `apps/api`
|
|
41
|
+
4. **Configura** o banco de dados com o nome do projeto
|
|
42
|
+
5. **Conecta** todos os modulos automaticamente (auth, filas, integracoes)
|
|
43
|
+
6. **Gera** `docker-compose.yml` com todos os servicos
|
|
44
|
+
7. **Gera** `.env` com todas as variaveis organizadas
|
|
45
|
+
8. **Instala** as dependencias
|
|
46
|
+
9. **Inicializa** o git com commit inicial
|
|
47
|
+
10. **Configura** a si mesma (Liz) como AI agent no projeto
|
|
48
|
+
|
|
49
|
+
Resultado: projeto pronto pra rodar com `docker compose up -d && pnpm dev`
|
|
50
|
+
|
|
51
|
+
## Features
|
|
52
|
+
|
|
53
|
+
### Frontend
|
|
54
|
+
| Framework | Descricao |
|
|
55
|
+
|-----------|----------|
|
|
56
|
+
| **Next.js** | React SSR/SSG com App Router |
|
|
57
|
+
| **React (Vite)** | SPA com Vite + React |
|
|
58
|
+
| **Vue** | SPA com Vite + Vue 3 |
|
|
59
|
+
| **Angular** | SPA com Angular standalone |
|
|
60
|
+
|
|
61
|
+
### Backend
|
|
62
|
+
| Framework | Descricao |
|
|
63
|
+
|-----------|----------|
|
|
64
|
+
| **Express** | Minimalista, flexivel |
|
|
65
|
+
| **Fastify** | Alta performance, plugins |
|
|
66
|
+
| **NestJS** | Enterprise, modular, decorators |
|
|
67
|
+
|
|
68
|
+
### Banco de Dados
|
|
69
|
+
| Banco | ORM/ODM | Auto-config |
|
|
70
|
+
|-------|---------|-------------|
|
|
71
|
+
| **PostgreSQL** | Prisma | Schema com User model, docker service, DATABASE_URL |
|
|
72
|
+
| **MySQL** | Prisma | Schema com User model, docker service, DATABASE_URL |
|
|
73
|
+
| **MongoDB** | Mongoose | Models, conexao, docker service, MONGODB_URI |
|
|
74
|
+
|
|
75
|
+
### Autenticacao (multipla escolha)
|
|
76
|
+
| Metodo | O que configura |
|
|
77
|
+
|--------|----------------|
|
|
78
|
+
| **JWT** | Login/register com bcrypt, middleware de auth, guards |
|
|
79
|
+
| **Magic Link** | Token por email, verificacao, auto-habilita SMTP |
|
|
80
|
+
| **Google OAuth** | Strategy Passport, rotas de callback, env vars |
|
|
81
|
+
|
|
82
|
+
Todos adaptados automaticamente ao backend escolhido (Express/Fastify/NestJS).
|
|
83
|
+
|
|
84
|
+
### Filas e Jobs
|
|
85
|
+
| Tecnologia | O que configura |
|
|
86
|
+
|------------|----------------|
|
|
87
|
+
| **BullMQ** | Queue config, worker de exemplo, auto-habilita Redis |
|
|
88
|
+
| **RabbitMQ** | Producer/consumer, docker service, connection manager |
|
|
89
|
+
|
|
90
|
+
### Integracoes (multipla escolha)
|
|
91
|
+
| Integracao | O que configura |
|
|
92
|
+
|------------|----------------|
|
|
93
|
+
| **ViaCEP** | Service para consulta de CEP |
|
|
94
|
+
| **WhatsApp** | Service para API Meta WhatsApp Business |
|
|
95
|
+
| **Stripe** | Checkout, PaymentIntent, webhooks |
|
|
96
|
+
| **Mercado Pago** | Preferences, pagamentos PIX |
|
|
97
|
+
| **AbacatePay** | Pagamentos, PIX |
|
|
98
|
+
|
|
99
|
+
### Infraestrutura
|
|
100
|
+
| Feature | O que configura |
|
|
101
|
+
|---------|----------------|
|
|
102
|
+
| **Redis** | Service com ioredis, docker service |
|
|
103
|
+
| **SMTP** | Email service com Nodemailer, template HTML |
|
|
104
|
+
| **MinIO** | Storage S3-compatible, upload/download, docker service |
|
|
105
|
+
| **PM2** | ecosystem.config.cjs, cluster mode, zero-downtime |
|
|
106
|
+
| **Multi-tenant** | Middleware de isolamento por header/subdomain |
|
|
107
|
+
|
|
108
|
+
## Stack Suportada
|
|
109
|
+
|
|
110
|
+
### Runtimes
|
|
111
|
+
- npm
|
|
112
|
+
- pnpm
|
|
113
|
+
- bun
|
|
114
|
+
|
|
115
|
+
### Estrutura
|
|
116
|
+
Monorepo com workspaces nativos do runtime escolhido.
|
|
117
|
+
|
|
118
|
+
```
|
|
119
|
+
meu-projeto/
|
|
120
|
+
├── apps/
|
|
121
|
+
│ ├── api/ # Backend
|
|
122
|
+
│ └── web/ # Frontend
|
|
123
|
+
├── docker-compose.yml
|
|
124
|
+
├── CLAUDE.md # Liz (Claude Code)
|
|
125
|
+
├── AGENTS.md # Liz (geral)
|
|
126
|
+
├── .cursor/rules/ # Liz (Cursor)
|
|
127
|
+
└── README.md
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
## Liz - AI Agent
|
|
131
|
+
|
|
132
|
+
Todo projeto gerado vem com a **Liz**, uma agente de IA treinada na arquitetura do projeto.
|
|
133
|
+
|
|
134
|
+
### O que a Liz sabe
|
|
135
|
+
- Toda a stack escolhida
|
|
136
|
+
- Estrutura de diretorios
|
|
137
|
+
- Convencoes de codigo
|
|
138
|
+
- Como criar novas features
|
|
139
|
+
- Como adicionar endpoints
|
|
140
|
+
- Como usar cada integracao
|
|
141
|
+
|
|
142
|
+
### Integracao com editores
|
|
143
|
+
|
|
144
|
+
| Editor | Arquivo | Como funciona |
|
|
145
|
+
|--------|---------|--------------|
|
|
146
|
+
| **Claude Code** | `CLAUDE.md` | Carrega automaticamente |
|
|
147
|
+
| **Cursor** | `.cursor/rules/liz.mdc` | Regras contextuais |
|
|
148
|
+
| **Copilot / Outros** | `AGENTS.md` | Referencia completa |
|
|
149
|
+
|
|
150
|
+
### Exemplo de uso
|
|
151
|
+
Ao abrir o projeto no editor com IA, voce pode pedir:
|
|
152
|
+
|
|
153
|
+
- "Liz, cria um endpoint de listagem de produtos"
|
|
154
|
+
- "Liz, adiciona um model de Order no Prisma"
|
|
155
|
+
- "Liz, cria um job para enviar email de boas-vindas"
|
|
156
|
+
- "Liz, integra o webhook do Stripe"
|
|
157
|
+
|
|
158
|
+
A Liz vai seguir as convencoes do projeto e usar os servicos ja configurados.
|
|
159
|
+
|
|
160
|
+
## Como Funciona
|
|
161
|
+
|
|
162
|
+
### Fluxo interativo (14 perguntas)
|
|
163
|
+
|
|
164
|
+
```
|
|
165
|
+
1. Nome do projeto (texto)
|
|
166
|
+
2. Descricao (texto)
|
|
167
|
+
3. Runtime npm | pnpm | bun
|
|
168
|
+
4. Banco de dados PostgreSQL | MySQL | MongoDB | Nenhum
|
|
169
|
+
5. Multi-tenant? sim | nao
|
|
170
|
+
6. SMTP (emails)? sim | nao
|
|
171
|
+
7. Autenticacao JWT | Magic Link | Google (multipla)
|
|
172
|
+
8. Redis? sim | nao
|
|
173
|
+
9. Filas/Jobs BullMQ | RabbitMQ | Nenhum
|
|
174
|
+
10. Frontend Next.js | React | Vue | Angular
|
|
175
|
+
11. Backend Express | Fastify | NestJS
|
|
176
|
+
12. Integracoes ViaCEP | WhatsApp | Stripe | MP | Abacate (multipla)
|
|
177
|
+
13. MinIO (storage)? sim | nao
|
|
178
|
+
14. PM2 (zero-downtime)? sim | nao
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
### Dependencias implicitas
|
|
182
|
+
|
|
183
|
+
A Liz resolve automaticamente:
|
|
184
|
+
|
|
185
|
+
| Voce escolhe | Liz habilita |
|
|
186
|
+
|-------------|-------------|
|
|
187
|
+
| BullMQ | Redis |
|
|
188
|
+
| Magic Link | SMTP |
|
|
189
|
+
|
|
190
|
+
### Auto-wiring
|
|
191
|
+
|
|
192
|
+
Apos criar os arquivos, a Liz reescreve o arquivo principal do backend para importar e conectar todos os modulos:
|
|
193
|
+
|
|
194
|
+
- **NestJS:** Todos os modules importados no `app.module.ts`
|
|
195
|
+
- **Express:** Todas as rotas registradas no `app.ts`, conexoes no `index.ts`
|
|
196
|
+
- **Fastify:** Todos os plugins registrados no `app.ts`, conexoes no `index.ts`
|
|
197
|
+
|
|
198
|
+
Nada de configuracao manual - tudo ja esta conectado.
|
|
199
|
+
|
|
200
|
+
## CLI Flags
|
|
201
|
+
|
|
202
|
+
```bash
|
|
203
|
+
plazercli --version # Mostra versao
|
|
204
|
+
plazercli --name meu-app # Pre-define nome do projeto
|
|
205
|
+
plazercli --yes # Usa valores padrao
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
## Desenvolvimento
|
|
209
|
+
|
|
210
|
+
```bash
|
|
211
|
+
git clone https://github.com/pablocarss/plazercli.git
|
|
212
|
+
cd plazercli
|
|
213
|
+
npm install
|
|
214
|
+
npm run dev # Watch mode
|
|
215
|
+
npm run build # Build para dist/
|
|
216
|
+
|
|
217
|
+
# Testar localmente
|
|
218
|
+
node dist/index.js
|
|
219
|
+
```
|
|
220
|
+
|
|
221
|
+
## Licenca
|
|
222
|
+
|
|
223
|
+
MIT
|
|
224
|
+
|
|
225
|
+
---
|
|
226
|
+
|
|
227
|
+
Feito com massa por [@pablocarss](https://github.com/pablocarss)
|