plazercli 1.0.0 → 2.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 +177 -66
- package/dist/index.js +7831 -1636
- package/dist/index.js.map +1 -1
- package/package.json +17 -3
package/README.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<p align="center">
|
|
2
|
-
<h1 align="center">PlazerCLI</h1>
|
|
2
|
+
<h1 align="center">PlazerCLI v2.0</h1>
|
|
3
3
|
<p align="center">
|
|
4
|
-
Gerador de projetos fullstack
|
|
4
|
+
Gerador de projetos fullstack SaaS prontos para producao.<br/>
|
|
5
5
|
Responda as perguntas e a <strong>Liz</strong> monta tudo pra voce.
|
|
6
6
|
</p>
|
|
7
7
|
</p>
|
|
@@ -9,9 +9,12 @@
|
|
|
9
9
|
<p align="center">
|
|
10
10
|
<a href="#quick-start">Quick Start</a> |
|
|
11
11
|
<a href="#features">Features</a> |
|
|
12
|
+
<a href="#presets">Presets</a> |
|
|
12
13
|
<a href="#stack-suportada">Stack</a> |
|
|
14
|
+
<a href="#cli-flags">CLI Flags</a> |
|
|
13
15
|
<a href="#liz---ai-agent">Liz AI</a> |
|
|
14
|
-
<a href="#como-funciona">Como Funciona</a>
|
|
16
|
+
<a href="#como-funciona">Como Funciona</a> |
|
|
17
|
+
<a href="https://pablocarss.github.io/plazercli/">Docs</a>
|
|
15
18
|
</p>
|
|
16
19
|
|
|
17
20
|
---
|
|
@@ -19,7 +22,14 @@
|
|
|
19
22
|
## Quick Start
|
|
20
23
|
|
|
21
24
|
```bash
|
|
25
|
+
# Modo interativo (18 perguntas)
|
|
22
26
|
npx plazercli
|
|
27
|
+
|
|
28
|
+
# Preset rapido
|
|
29
|
+
npx plazercli --preset saas-starter
|
|
30
|
+
|
|
31
|
+
# Zero perguntas com defaults inteligentes
|
|
32
|
+
npx plazercli --yes --name meu-saas
|
|
23
33
|
```
|
|
24
34
|
|
|
25
35
|
Ou instale globalmente:
|
|
@@ -36,20 +46,43 @@ A Liz vai te perguntar sobre o projeto e configurar tudo automaticamente.
|
|
|
36
46
|
Ao rodar o `plazercli`, a Liz:
|
|
37
47
|
|
|
38
48
|
1. **Pergunta** o nome do projeto e o que ele faz
|
|
39
|
-
2. **Pergunta** qual stack voce quer (frontend, backend, banco, etc.)
|
|
49
|
+
2. **Pergunta** qual stack voce quer (frontend, backend, banco, auth, billing, etc.)
|
|
40
50
|
3. **Cria** o monorepo completo com `apps/web` + `apps/api`
|
|
41
|
-
4. **Configura**
|
|
42
|
-
5. **Conecta** todos os modulos automaticamente (
|
|
43
|
-
6. **Gera**
|
|
44
|
-
7. **
|
|
45
|
-
8. **
|
|
46
|
-
9. **
|
|
47
|
-
10. **Configura** a si mesma (Liz) como AI agent no projeto
|
|
51
|
+
4. **Configura** banco de dados, autenticacao, RBAC, billing
|
|
52
|
+
5. **Conecta** todos os modulos automaticamente (auto-wiring)
|
|
53
|
+
6. **Gera** docker-compose.yml, .env, README, CI/CD, Dockerfiles
|
|
54
|
+
7. **Instala** as dependencias
|
|
55
|
+
8. **Inicializa** o git com commit inicial
|
|
56
|
+
9. **Configura** a si mesma (Liz) como AI agent no projeto
|
|
48
57
|
|
|
49
58
|
Resultado: projeto pronto pra rodar com `docker compose up -d && pnpm dev`
|
|
50
59
|
|
|
51
60
|
## Features
|
|
52
61
|
|
|
62
|
+
### SaaS Core (v2.0)
|
|
63
|
+
| Feature | O que configura |
|
|
64
|
+
|---------|----------------|
|
|
65
|
+
| **RBAC** | Roles (Admin/User/Owner), CASL abilities, guards por framework |
|
|
66
|
+
| **Organizations** | Workspaces com CRUD, convites por email, gestao de membros |
|
|
67
|
+
| **Stripe Billing** | Planos Free/Pro/Enterprise, checkout, portal, webhooks |
|
|
68
|
+
|
|
69
|
+
### API Quality (v2.0)
|
|
70
|
+
| Feature | O que configura |
|
|
71
|
+
|---------|----------------|
|
|
72
|
+
| **Zod** | Schemas de validacao prontos, pipes (NestJS) ou middleware |
|
|
73
|
+
| **Rate Limiting** | Limites globais e por rota, configuraveis por framework |
|
|
74
|
+
| **Pino Logging** | Logging estruturado com request ID, pretty-print em dev |
|
|
75
|
+
| **Swagger/OpenAPI** | Documentacao automatica da API em `/api/docs` |
|
|
76
|
+
|
|
77
|
+
### Autenticacao (multipla escolha)
|
|
78
|
+
| Metodo | O que configura |
|
|
79
|
+
|--------|----------------|
|
|
80
|
+
| **JWT** | Login/register com bcrypt, guards/middleware, strategy |
|
|
81
|
+
| **Magic Link** | Token por email, verificacao, auto-habilita SMTP |
|
|
82
|
+
| **Google OAuth** | Strategy Passport, rotas de callback, env vars |
|
|
83
|
+
|
|
84
|
+
Todos adaptados automaticamente ao backend escolhido (Express/Fastify/NestJS).
|
|
85
|
+
|
|
53
86
|
### Frontend
|
|
54
87
|
| Framework | Descricao |
|
|
55
88
|
|-----------|----------|
|
|
@@ -61,9 +94,9 @@ Resultado: projeto pronto pra rodar com `docker compose up -d && pnpm dev`
|
|
|
61
94
|
### Backend
|
|
62
95
|
| Framework | Descricao |
|
|
63
96
|
|-----------|----------|
|
|
97
|
+
| **NestJS** | Enterprise, modular, decorators |
|
|
64
98
|
| **Express** | Minimalista, flexivel |
|
|
65
99
|
| **Fastify** | Alta performance, plugins |
|
|
66
|
-
| **NestJS** | Enterprise, modular, decorators |
|
|
67
100
|
|
|
68
101
|
### Banco de Dados
|
|
69
102
|
| Banco | ORM/ODM | Auto-config |
|
|
@@ -72,15 +105,6 @@ Resultado: projeto pronto pra rodar com `docker compose up -d && pnpm dev`
|
|
|
72
105
|
| **MySQL** | Prisma | Schema com User model, docker service, DATABASE_URL |
|
|
73
106
|
| **MongoDB** | Mongoose | Models, conexao, docker service, MONGODB_URI |
|
|
74
107
|
|
|
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
108
|
### Filas e Jobs
|
|
85
109
|
| Tecnologia | O que configura |
|
|
86
110
|
|------------|----------------|
|
|
@@ -105,39 +129,107 @@ Todos adaptados automaticamente ao backend escolhido (Express/Fastify/NestJS).
|
|
|
105
129
|
| **PM2** | ecosystem.config.cjs, cluster mode, zero-downtime |
|
|
106
130
|
| **Multi-tenant** | Middleware de isolamento por header/subdomain |
|
|
107
131
|
|
|
132
|
+
### Extras (v2.0)
|
|
133
|
+
| Feature | O que configura |
|
|
134
|
+
|---------|----------------|
|
|
135
|
+
| **WebSockets** | Socket.IO com rooms, broadcast e notificacoes |
|
|
136
|
+
| **Tailwind CSS** | Config + paginas SaaS prontas (landing, login, dashboard, settings) |
|
|
137
|
+
| **CI/CD** | GitHub Actions (lint, build, Docker) + Dockerfiles multi-stage |
|
|
138
|
+
| **i18n** | Internacionalizacao pt-BR + en, setup por framework |
|
|
139
|
+
|
|
140
|
+
## Presets
|
|
141
|
+
|
|
142
|
+
Use `--preset <nome>` pra criar projetos com configuracoes prontas:
|
|
143
|
+
|
|
144
|
+
| Preset | Stack | Descricao |
|
|
145
|
+
|--------|-------|-----------|
|
|
146
|
+
| `saas-starter` | NestJS + Next.js + PostgreSQL | Stack completa: auth, billing, RBAC, dashboard |
|
|
147
|
+
| `saas-multi-tenant` | NestJS + Next.js + PostgreSQL | SaaS B2B com isolamento por tenant |
|
|
148
|
+
| `ecommerce` | NestJS + Next.js + PostgreSQL | Loja online com pagamentos e storage |
|
|
149
|
+
| `api-platform` | Fastify + Next.js + PostgreSQL | API robusta com docs e monitoramento |
|
|
150
|
+
| `realtime-app` | NestJS + Next.js + PostgreSQL | App com comunicacao em tempo real |
|
|
151
|
+
| `minimal` | Express + Next.js + PostgreSQL | Minimo necessario pra comecar |
|
|
152
|
+
|
|
153
|
+
```bash
|
|
154
|
+
# Exemplo
|
|
155
|
+
npx plazercli --preset saas-starter --name minha-plataforma
|
|
156
|
+
```
|
|
157
|
+
|
|
108
158
|
## Stack Suportada
|
|
109
159
|
|
|
110
160
|
### Runtimes
|
|
111
|
-
-
|
|
112
|
-
- pnpm
|
|
161
|
+
- pnpm (recomendado)
|
|
113
162
|
- bun
|
|
163
|
+
- npm
|
|
114
164
|
|
|
115
165
|
### Estrutura
|
|
116
166
|
Monorepo com workspaces nativos do runtime escolhido.
|
|
117
167
|
|
|
118
168
|
```
|
|
119
|
-
meu-
|
|
169
|
+
meu-saas/
|
|
120
170
|
├── apps/
|
|
121
|
-
│ ├── api/
|
|
122
|
-
│
|
|
171
|
+
│ ├── api/ # Backend
|
|
172
|
+
│ │ ├── src/
|
|
173
|
+
│ │ │ ├── auth/ # JWT, Magic Link, OAuth
|
|
174
|
+
│ │ │ ├── rbac/ # Roles + CASL
|
|
175
|
+
│ │ │ ├── organizations/ # Workspaces + convites
|
|
176
|
+
│ │ │ ├── billing/ # Stripe subscriptions
|
|
177
|
+
│ │ │ ├── database/ # Prisma/Mongoose
|
|
178
|
+
│ │ │ ├── infra/ # Redis, Email, Storage
|
|
179
|
+
│ │ │ ├── queue/ # Workers e jobs
|
|
180
|
+
│ │ │ ├── websockets/ # Socket.IO
|
|
181
|
+
│ │ │ ├── common/ # Validation, Logging
|
|
182
|
+
│ │ │ ├── integrations/ # APIs externas
|
|
183
|
+
│ │ │ ├── routes/
|
|
184
|
+
│ │ │ └── config/
|
|
185
|
+
│ │ ├── prisma/
|
|
186
|
+
│ │ └── .env
|
|
187
|
+
│ └── web/ # Frontend
|
|
188
|
+
│ └── src/
|
|
123
189
|
├── docker-compose.yml
|
|
124
|
-
├──
|
|
125
|
-
├──
|
|
126
|
-
├── .
|
|
190
|
+
├── .github/workflows/ # CI/CD
|
|
191
|
+
├── CLAUDE.md # Liz (Claude Code)
|
|
192
|
+
├── AGENTS.md # Liz (geral)
|
|
193
|
+
├── .cursor/rules/ # Liz (Cursor)
|
|
127
194
|
└── README.md
|
|
128
195
|
```
|
|
129
196
|
|
|
197
|
+
## CLI Flags
|
|
198
|
+
|
|
199
|
+
```bash
|
|
200
|
+
plazercli --version # Mostra versao
|
|
201
|
+
plazercli --name meu-app # Pre-define nome
|
|
202
|
+
plazercli --yes # Defaults inteligentes, sem perguntas
|
|
203
|
+
plazercli --preset saas-starter # Usa preset pronto
|
|
204
|
+
plazercli --dry-run # Mostra o que seria gerado
|
|
205
|
+
plazercli --save-config config.json # Salva config pra reutilizar
|
|
206
|
+
plazercli --config config.json # Carrega config salva
|
|
207
|
+
```
|
|
208
|
+
|
|
209
|
+
### Valores padrao (--yes)
|
|
210
|
+
|
|
211
|
+
| Opcao | Default |
|
|
212
|
+
|-------|---------|
|
|
213
|
+
| Runtime | pnpm |
|
|
214
|
+
| Database | PostgreSQL (Prisma) |
|
|
215
|
+
| Frontend | Next.js |
|
|
216
|
+
| Backend | NestJS |
|
|
217
|
+
| Auth | JWT |
|
|
218
|
+
| Queue | BullMQ |
|
|
219
|
+
| RBAC / Zod / Rate Limiting / Pino / Swagger | Sim |
|
|
220
|
+
| Tailwind / CI/CD | Sim |
|
|
221
|
+
| Redis / SMTP / PM2 | Sim |
|
|
222
|
+
|
|
130
223
|
## Liz - AI Agent
|
|
131
224
|
|
|
132
|
-
Todo projeto gerado vem com a **Liz**, uma agente de IA
|
|
225
|
+
Todo projeto gerado vem com a **Liz**, uma agente de IA configurada pra conhecer a arquitetura do projeto.
|
|
133
226
|
|
|
134
227
|
### O que a Liz sabe
|
|
135
228
|
- Toda a stack escolhida
|
|
136
229
|
- Estrutura de diretorios
|
|
137
230
|
- Convencoes de codigo
|
|
138
|
-
- Como criar novas features
|
|
139
|
-
- Como adicionar endpoints
|
|
140
|
-
- Como usar cada integracao
|
|
231
|
+
- Como criar novas features seguindo os patterns
|
|
232
|
+
- Como adicionar endpoints, models, workers e integracoes
|
|
141
233
|
|
|
142
234
|
### Integracao com editores
|
|
143
235
|
|
|
@@ -148,63 +240,84 @@ Todo projeto gerado vem com a **Liz**, uma agente de IA treinada na arquitetura
|
|
|
148
240
|
| **Copilot / Outros** | `AGENTS.md` | Referencia completa |
|
|
149
241
|
|
|
150
242
|
### 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
243
|
|
|
158
|
-
|
|
244
|
+
```
|
|
245
|
+
"Liz, cria um endpoint de listagem de produtos"
|
|
246
|
+
"Liz, adiciona um model de Order no Prisma"
|
|
247
|
+
"Liz, cria um job para enviar email de boas-vindas"
|
|
248
|
+
"Liz, integra o webhook do Stripe"
|
|
249
|
+
```
|
|
159
250
|
|
|
160
251
|
## Como Funciona
|
|
161
252
|
|
|
162
|
-
### Fluxo interativo (
|
|
253
|
+
### Fluxo interativo (18 perguntas)
|
|
163
254
|
|
|
164
255
|
```
|
|
165
|
-
1.
|
|
166
|
-
2.
|
|
167
|
-
3.
|
|
168
|
-
4.
|
|
169
|
-
5.
|
|
170
|
-
6.
|
|
171
|
-
7.
|
|
172
|
-
8.
|
|
173
|
-
9.
|
|
174
|
-
10.
|
|
175
|
-
11.
|
|
176
|
-
12.
|
|
177
|
-
13.
|
|
178
|
-
14.
|
|
256
|
+
1. Modo (Custom ou Preset)
|
|
257
|
+
2. Nome do projeto (validado como pacote npm)
|
|
258
|
+
3. Descricao (texto)
|
|
259
|
+
4. Runtime pnpm | bun | npm
|
|
260
|
+
5. Banco de dados PostgreSQL | MySQL | MongoDB | None
|
|
261
|
+
6. Frontend Next.js | React | Vue | Angular
|
|
262
|
+
7. Backend NestJS | Express | Fastify
|
|
263
|
+
8. Autenticacao JWT | Magic Link | Google (multipla)
|
|
264
|
+
9. SaaS Features RBAC | Organizations | Stripe (multipla)
|
|
265
|
+
10. API Quality Zod | Rate Limiting | Pino | Swagger (multipla)
|
|
266
|
+
11. Multi-tenant? sim | nao
|
|
267
|
+
12. SMTP (emails)? sim | nao
|
|
268
|
+
13. Redis? sim | nao
|
|
269
|
+
14. Filas/Jobs BullMQ | RabbitMQ | None
|
|
270
|
+
15. Integracoes ViaCEP | WhatsApp | Stripe | MP | Abacate (multipla)
|
|
271
|
+
16. MinIO (storage)? sim | nao
|
|
272
|
+
17. Extras Tailwind | CI/CD | WebSockets | i18n (multipla)
|
|
273
|
+
18. PM2 (zero-downtime)? sim | nao
|
|
179
274
|
```
|
|
180
275
|
|
|
181
276
|
### Dependencias implicitas
|
|
182
277
|
|
|
183
|
-
A Liz resolve automaticamente:
|
|
184
|
-
|
|
185
278
|
| Voce escolhe | Liz habilita |
|
|
186
279
|
|-------------|-------------|
|
|
187
280
|
| BullMQ | Redis |
|
|
188
281
|
| Magic Link | SMTP |
|
|
282
|
+
| Stripe Billing | Integracao Stripe |
|
|
189
283
|
|
|
190
284
|
### Auto-wiring
|
|
191
285
|
|
|
192
|
-
|
|
286
|
+
A Liz reescreve o arquivo principal do backend pra importar e conectar todos os modulos:
|
|
193
287
|
|
|
194
288
|
- **NestJS:** Todos os modules importados no `app.module.ts`
|
|
195
289
|
- **Express:** Todas as rotas registradas no `app.ts`, conexoes no `index.ts`
|
|
196
290
|
- **Fastify:** Todos os plugins registrados no `app.ts`, conexoes no `index.ts`
|
|
197
291
|
|
|
198
|
-
|
|
292
|
+
## Documentacao
|
|
199
293
|
|
|
200
|
-
|
|
294
|
+
O PlazerCLI tem um site de documentacao completo com 39 paginas cobrindo todas as features:
|
|
295
|
+
|
|
296
|
+
- **[Documentacao Online](https://pablocarss.github.io/plazercli/)** — Site completo com Next.js
|
|
297
|
+
|
|
298
|
+
### Rodar localmente
|
|
201
299
|
|
|
202
300
|
```bash
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
301
|
+
cd docs
|
|
302
|
+
npm install
|
|
303
|
+
npm run dev
|
|
206
304
|
```
|
|
207
305
|
|
|
306
|
+
### O que tem na documentacao
|
|
307
|
+
|
|
308
|
+
| Categoria | Paginas |
|
|
309
|
+
|-----------|---------|
|
|
310
|
+
| Comecando | Introducao, Instalacao, Quick Start, CLI Flags, Presets, Arquitetura |
|
|
311
|
+
| Stack | Frontend, Backend, Banco de Dados |
|
|
312
|
+
| Autenticacao | Visao Geral, JWT, Magic Link, Google OAuth |
|
|
313
|
+
| SaaS Features | RBAC, Organizations, Stripe Billing |
|
|
314
|
+
| API Quality | Zod, Rate Limiting, Pino Logging, Swagger |
|
|
315
|
+
| Infraestrutura | Redis, SMTP, MinIO, WebSockets, Filas, Multi-tenant, PM2 |
|
|
316
|
+
| Extras | Tailwind CSS, CI/CD, i18n |
|
|
317
|
+
| Integracoes | Visao Geral, ViaCEP, WhatsApp, Stripe, Mercado Pago, AbacatePay |
|
|
318
|
+
| IA | Liz AI Agent |
|
|
319
|
+
| Avancado | Docker, Variaveis de Ambiente |
|
|
320
|
+
|
|
208
321
|
## Desenvolvimento
|
|
209
322
|
|
|
210
323
|
```bash
|
|
@@ -213,8 +326,6 @@ cd plazercli
|
|
|
213
326
|
npm install
|
|
214
327
|
npm run dev # Watch mode
|
|
215
328
|
npm run build # Build para dist/
|
|
216
|
-
|
|
217
|
-
# Testar localmente
|
|
218
329
|
node dist/index.js
|
|
219
330
|
```
|
|
220
331
|
|
|
@@ -224,4 +335,4 @@ MIT
|
|
|
224
335
|
|
|
225
336
|
---
|
|
226
337
|
|
|
227
|
-
Feito
|
|
338
|
+
Feito por [@pablocarss](https://github.com/pablocarss)
|