herdux-cli 0.5.0 → 0.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 (43) hide show
  1. package/README.md +114 -246
  2. package/README.pt-BR.md +118 -220
  3. package/dist/commands/clean.d.ts.map +1 -1
  4. package/dist/commands/clean.js +3 -1
  5. package/dist/commands/clean.js.map +1 -1
  6. package/dist/commands/create.d.ts.map +1 -1
  7. package/dist/commands/create.js +3 -1
  8. package/dist/commands/create.js.map +1 -1
  9. package/dist/commands/docker.d.ts +3 -0
  10. package/dist/commands/docker.d.ts.map +1 -0
  11. package/dist/commands/docker.js +106 -0
  12. package/dist/commands/docker.js.map +1 -0
  13. package/dist/commands/doctor.d.ts.map +1 -1
  14. package/dist/commands/doctor.js +2 -1
  15. package/dist/commands/doctor.js.map +1 -1
  16. package/dist/commands/drop.d.ts.map +1 -1
  17. package/dist/commands/drop.js +3 -1
  18. package/dist/commands/drop.js.map +1 -1
  19. package/dist/commands/inspect.d.ts +3 -0
  20. package/dist/commands/inspect.d.ts.map +1 -0
  21. package/dist/commands/inspect.js +29 -0
  22. package/dist/commands/inspect.js.map +1 -0
  23. package/dist/commands/list.d.ts.map +1 -1
  24. package/dist/commands/list.js +3 -1
  25. package/dist/commands/list.js.map +1 -1
  26. package/dist/commands/version.d.ts.map +1 -1
  27. package/dist/commands/version.js +26 -16
  28. package/dist/commands/version.js.map +1 -1
  29. package/dist/index.js +4 -0
  30. package/dist/index.js.map +1 -1
  31. package/dist/infra/docker/docker.service.d.ts +14 -0
  32. package/dist/infra/docker/docker.service.d.ts.map +1 -0
  33. package/dist/infra/docker/docker.service.js +83 -0
  34. package/dist/infra/docker/docker.service.js.map +1 -0
  35. package/dist/infra/engines/inspect-backup.d.ts +13 -0
  36. package/dist/infra/engines/inspect-backup.d.ts.map +1 -0
  37. package/dist/infra/engines/inspect-backup.js +97 -0
  38. package/dist/infra/engines/inspect-backup.js.map +1 -0
  39. package/dist/infra/engines/mysql/mysql.engine.d.ts +1 -1
  40. package/dist/infra/engines/mysql/mysql.engine.d.ts.map +1 -1
  41. package/dist/infra/engines/mysql/mysql.engine.js +4 -1
  42. package/dist/infra/engines/mysql/mysql.engine.js.map +1 -1
  43. package/package.json +1 -1
package/README.pt-BR.md CHANGED
@@ -8,11 +8,11 @@
8
8
  <img src=".github/assets/logo.svg" alt="Herdux banner" style="max-width: 100%; width: 600px;" />
9
9
  </p>
10
10
 
11
- ## ⏭️ Herdux — Database Workflow CLI
11
+ ## Herdux — Database Workflow CLI
12
12
 
13
13
  Uma CLI rápida e interativa que remove a fricção dos workflows diários com bancos de dados locais, especialmente ao lidar com múltiplas instâncias e grandes datasets.
14
14
 
15
- ![Version](https://img.shields.io/badge/version-0.5.0-blue.svg)
15
+ ![Version](https://img.shields.io/badge/version-0.7.0-blue.svg)
16
16
  ![License](https://img.shields.io/badge/license-MIT-green.svg)
17
17
  ![Node](https://img.shields.io/badge/node-18%2B-43853d.svg)
18
18
  ![PostgreSQL](https://img.shields.io/badge/PostgreSQL-316192?style=flat&logo=postgresql&logoColor=white)
@@ -23,27 +23,21 @@ Uma CLI rápida e interativa que remove a fricção dos workflows diários com b
23
23
 
24
24
  > Otimizado para ambientes locais e de desenvolvimento. O uso em produção é suportado com configuração explícita.
25
25
 
26
- <!-- <p align="center">
27
- <img src=".github/herdux.gif" alt="herdux terminal gif" width="1220" />
28
- </p> -->
29
-
30
26
  ---
31
27
 
32
- ## Início Rápido
28
+ ## Início Rápido
33
29
 
34
30
  ```bash
35
31
  npm install -g herdux-cli
36
32
 
37
- # Você pode usar 'herdux' ou o alias mais curto 'hdx'
33
+ # Use 'herdux' ou o alias mais curto 'hdx'
38
34
  hdx doctor
39
35
  herdux list
40
36
  ```
41
37
 
42
- É só isso. Você já está gerenciando bancos de dados.
43
-
44
38
  ---
45
39
 
46
- ## 🔌 Engines Suportadas
40
+ ## Engines Suportadas
47
41
 
48
42
  | Engine | Status | Ferramentas Cliente Necessárias |
49
43
  | ---------- | ------ | ------------------------------- |
@@ -51,33 +45,22 @@ herdux list
51
45
  | MySQL | ✅ | `mysql`, `mysqldump` |
52
46
  | SQLite | ✅ | `sqlite3` |
53
47
 
54
- O Herdux detecta automaticamente a engine a partir do seu perfil de servidor ou da flag `--engine`. PostgreSQL é o padrão quando nenhuma engine é especificada.
48
+ Use `--engine <nome>` ou configure a engine em um perfil salvo. PostgreSQL é o padrão.
55
49
 
56
50
  ```bash
57
- # PostgreSQL (padrão)
58
- herdux list
59
- herdux create mydb
60
-
61
- # MySQL
62
- herdux --engine mysql list
63
- herdux --engine mysql create mydb
64
-
65
- # SQLite (baseado em arquivos, sem servidor)
66
- herdux --engine sqlite list
67
- herdux --engine sqlite create mydb
68
-
69
- # Ou salve no perfil e esqueça
70
- herdux config add mysql-local --port 3306 --user root --password secret --engine mysql
71
- herdux list -s mysql-local
51
+ herdux list # PostgreSQL (padrão)
52
+ herdux --engine mysql list # MySQL
53
+ herdux --engine sqlite list # SQLite (baseado em arquivos, sem servidor)
54
+ herdux list -s meu-perfil # Usando um perfil de servidor salvo
72
55
  ```
73
56
 
74
57
  ---
75
58
 
76
59
  ## Por que Herdux?
77
60
 
78
- Gerenciar bancos de dados locais através de scripts bash ou binários crus é repetitivo, propenso a erros e doloroso em escala.
61
+ Gerenciar bancos de dados locais por meio de binários brutos é repetitivo, propenso a erros e diferente para cada engine.
79
62
 
80
- ### ❌ Sem Herdux
63
+ **Antes:**
81
64
 
82
65
  ```bash
83
66
  # Backup PostgreSQL
@@ -86,15 +69,14 @@ pg_dump -U postgres -h localhost -p 5416 -Fc -f ./backups/mydb.dump mydb
86
69
  # Backup MySQL
87
70
  mysqldump -u root -h localhost -P 3306 -p mydb > ./backups/mydb.sql
88
71
 
89
- # Dropar manualmente, restaurar, verificar ferramentas...
90
72
  # Flags diferentes, ferramentas diferentes, memória muscular diferente para cada engine.
91
73
  ```
92
74
 
93
- ### ✅ Com Herdux
75
+ **Depois:**
94
76
 
95
77
  ```bash
96
78
  herdux backup mydb --drop --yes # Backup + drop em um comando
97
- herdux restore ./backups/mydb.dump --db mydb # Cria o banco (se faltar) e detecta o formato
79
+ herdux restore ./backups/mydb.dump --db mydb # Detecta formato, cria DB se necessário
98
80
  herdux clean # Multi-seleção e batch-drop de bancos
99
81
  herdux doctor # Verificação completa do sistema
100
82
  ```
@@ -103,80 +85,23 @@ Mesmos comandos. Qualquer engine. Menos flags. Menos erros. Zero fadiga de termi
103
85
 
104
86
  ---
105
87
 
106
- ## 🎯 Para quem é o Herdux?
107
-
108
- O **Herdux** foi construído _por desenvolvedores, para desenvolvedores_.
109
-
110
- Ele nasceu da frustração diária de ter que constantemente restaurar backups para testar um estado específico, dropar bancos corrompidos durante o desenvolvimento e lidar com binários crus de bancos de dados toda hora.
111
-
112
- Ele é especificamente projetado para desenvolvedores que:
113
-
114
- - Gerenciam infraestruturas locais e precisam verificar o tamanho dos discos antes de popular novos bancos.
115
- - Querem clonar, popular (seed) e resetar bancos de dados rapidamente sem precisar ler documentações complexas.
116
- - Precisam de fluxos seguros de backup & restore que não dependam de scripts bash frágeis.
117
- - Preferem ferramentas focadas no terminal (terminal-first).
118
- - Querem resolução previsível de conexões sem mágicas ocultas.
119
- - Trabalham com **múltiplas engines de banco de dados** (PostgreSQL, MySQL, SQLite) e querem uma interface unificada.
120
-
121
- Se você gerencia bancos de dados localmente e compartilha dessa dor, o Herdux foi criado para você.
122
-
123
- ---
124
-
125
- ## 🚀 Funcionalidades Principais
126
-
127
- - **🔌 Suporte Multi-Engine** — Suporte de primeira classe para PostgreSQL, MySQL e SQLite. Mesmos comandos, mesmo workflow, qualquer engine.
128
- - **📋 Listagem Inteligente** — Estratégia otimizada para clusters massivos. Flag opcional `--size` para análise de uso de disco, ordenado do maior para o menor.
129
- - **💾 Backup & Restore Inteligente** — Suporta formatos Custom (`.dump`) e Plain (`.sql`). Detecta automaticamente a ferramenta correta para restauração.
130
- - **🧹 Limpeza em Massa** — Multi-seleção de bancos, backup opcional e batch-drop. Recupere espaço em disco instantaneamente.
131
- - **🩺 Diagnóstico do Sistema** — Verificação completa de saúde com um único comando: binários, autenticação e conectividade.
132
- - **⚙️ Perfis Persistentes** — Salve configurações de servidor nomeadas com tipo de engine. Alterne entre ambientes com `-s pg16`.
133
- - **🎯 Resolução Inteligente de Conexão e Engine** — Flags CLI explícitas → perfis → padrões salvos → auto-descoberta. Sempre previsível.
134
-
135
- ---
136
-
137
- ## 💡 Filosofia
138
-
139
- **Herdux** combina _herd_ (manada/rebanho) e _UX_ — entregando uma melhor Developer Experience ao gerenciar seus clusters de bancos de dados. O nome reflete nosso foco em melhorar a experiência de desenvolvimento ao gerenciar "manadas" de bancos.
140
-
141
- O **Herdux** segue três princípios:
142
-
143
- - **Segurança primeiro** — Nunca apaga dados sem confirmação explícita ou um backup verificado.
144
- - **Explícito sobre implícito** — A resolução de conexão e engine segue uma prioridade estrita e documentada. Sem mágica.
145
- - **Otimização de workflow** — Cada comando é projetado para te salvar de tarefas repetitivas no terminal.
146
-
147
- ---
148
-
149
- ## 🔒 Segurança
150
-
151
- O **Herdux** trata operações destrutivas com cuidado:
152
-
153
- - **Nunca dropa um banco** sem confirmação explícita
154
- - **Aborta toda a operação** se um backup de segurança falhar durante o `herdux clean`
155
- - **Valida códigos de saída das ferramentas de backup** antes de considerar um backup bem-sucedido
156
- - **Requer a flag `--drop`** intencionalmente — dropar nunca é o padrão
157
- - **`--yes` deve ser combinado com `--drop`** — não é possível pular confirmação sozinho
158
-
159
- > Se você solicitar um backup antes de dropar e esse backup falhar, o **Herdux** para imediatamente. Nenhum dado é perdido.
160
-
161
- ---
162
-
163
- ## 🧩 Requisitos
88
+ ## Requisitos
164
89
 
165
90
  - **Node.js** 18 ou superior
166
- - **Para PostgreSQL:** `psql`, `pg_dump`, `pg_restore` instalados e disponíveis no `PATH`
167
- - **Para MySQL:** `mysql`, `mysqldump` instalados e disponíveis no `PATH`
168
- - **Para SQLite:** `sqlite3` instalado e disponível no `PATH`
91
+ - **Para PostgreSQL:** `psql`, `pg_dump`, `pg_restore` instalados e no `PATH`
92
+ - **Para MySQL:** `mysql`, `mysqldump` instalados e no `PATH`
93
+ - **Para SQLite:** `sqlite3` instalado e no `PATH`
169
94
 
170
95
  > [!TIP]
171
- > Execute `herdux doctor` após a instalação para verificar se tudo está configurado corretamente. O comando doctor verifica as ferramentas da engine ativa.
96
+ > Execute `herdux doctor` após a instalação para verificar se tudo está configurado corretamente.
172
97
 
173
98
  ---
174
99
 
175
- ## 📦 Instalação
100
+ ## Instalação
176
101
 
177
102
  **npm (recomendado):**
178
103
 
179
- > **⚠️ IMPORTANTE:** Você precisa usar a flag `-g` (global) para que a CLI fique disponível no seu terminal.
104
+ > **Importante:** Use a flag `-g` para que a CLI fique disponível em qualquer lugar no terminal.
180
105
 
181
106
  ```bash
182
107
  npm install -g herdux-cli
@@ -194,9 +119,7 @@ npm link
194
119
 
195
120
  ---
196
121
 
197
- ## 🛠️ Comandos
198
-
199
- Todos os comandos funcionam com PostgreSQL, MySQL e SQLite. Use `--engine mysql` ou `--engine sqlite`, ou configure a engine no seu perfil de servidor.
122
+ ## Comandos
200
123
 
201
124
  ### `herdux version`
202
125
 
@@ -209,11 +132,7 @@ herdux --engine mysql version
209
132
 
210
133
  ### `herdux doctor`
211
134
 
212
- Executa uma verificação completa de saúde do sistema:
213
-
214
- - Verifica se as ferramentas cliente necessárias estão instaladas e acessíveis (específicas por engine)
215
- - Tenta uma conexão real usando a configuração resolvida
216
- - Testa autenticação contra o servidor alvo
135
+ Executa uma verificação completa do sistema: verifica ferramentas cliente, testa conectividade e valida autenticação.
217
136
 
218
137
  ```bash
219
138
  herdux doctor
@@ -222,17 +141,17 @@ herdux --engine mysql doctor
222
141
 
223
142
  ---
224
143
 
225
- ### 📋 `herdux list`
144
+ ### `herdux list`
226
145
 
227
146
  Lista todos os bancos de dados no servidor conectado.
228
147
 
229
148
  ```bash
230
- herdux list # Listagem rápida (nome, owner, encoding)
231
- herdux ls --size # Inclui tamanho em disco, ordenado do maior menor
149
+ herdux list # Nome, owner, encoding
150
+ herdux ls --size # Inclui tamanho em disco, ordenado do maior para o menor
232
151
  ```
233
152
 
234
153
  > [!NOTE]
235
- > A flag `--size` calcula o uso físico de disco. Em servidores com dezenas de bancos multi-GB, isso pode levar alguns minutos dependendo da velocidade do disco.
154
+ > A flag `--size` calcula o uso físico de disco. Em servidores com dezenas de bancos de vários GBs, isso pode levar alguns minutos.
236
155
 
237
156
  ---
238
157
 
@@ -241,8 +160,8 @@ herdux ls --size # Inclui tamanho em disco, ordenado do maior → menor
241
160
  Cria um novo banco de dados.
242
161
 
243
162
  ```bash
244
- herdux create meu_novo_db
245
- herdux --engine mysql create meu_novo_db
163
+ herdux create meu_novo_banco
164
+ herdux --engine mysql create meu_novo_banco
246
165
  ```
247
166
 
248
167
  ### `herdux drop <nome>`
@@ -250,209 +169,188 @@ herdux --engine mysql create meu_novo_db
250
169
  Remove um banco de dados com confirmação interativa.
251
170
 
252
171
  ```bash
253
- herdux drop meu_banco_antigo
172
+ herdux drop banco_antigo
254
173
  ```
255
174
 
256
175
  ---
257
176
 
258
- ### 🧹 `herdux clean` — Limpeza em Massa
259
-
260
- Trabalhando com bancos de desenvolvimento cheios de seeds? Precisa recuperar espaço em disco rápido?
177
+ ### `herdux clean`
261
178
 
262
- `herdux clean` permite:
263
-
264
- - **Multi-seleção** de bancos a partir de uma interface interativa com checkboxes
265
- - **Gerar backups de segurança opcionais** antes de qualquer ação destrutiva
266
- - **Batch-drop** de todos os bancos selecionados com segurança
267
- - **Abortar imediatamente** se qualquer backup falhar, prevenindo perda de dados
179
+ Limpeza em massa interativa: selecione vários bancos, gere backups de segurança e remova-os em lote.
268
180
 
269
181
  ```bash
270
182
  herdux clean
271
183
  ```
272
184
 
273
- Projetado para o workflow real do desenvolvedor: clonar bancos, experimentar, depois limpar tudo de uma vez.
185
+ Aborta imediatamente se algum backup de segurança falhar. Nenhum dado é removido sem um backup confirmado.
274
186
 
275
187
  ---
276
188
 
277
- ### 📦 `herdux backup <banco>`
189
+ ### `herdux backup <database>`
278
190
 
279
- Gera um backup com timestamp em `./backups/`.
191
+ Cria um backup com timestamp em `~/.herdux/backups/` por padrão.
280
192
 
281
193
  ```bash
282
- herdux backup mydb # Formato custom (.dump para PG, .sql para MySQL)
194
+ herdux backup mydb # Formato nativo da engine (.dump para PG, .db para SQLite, .sql para MySQL)
283
195
  herdux backup mydb --format plain # SQL puro (.sql)
284
- herdux backup mydb --drop # Backup, depois pergunta se quer dropar
285
- herdux backup mydb --drop --yes # Backup + drop, sem perguntas
196
+ herdux backup mydb --drop # Backup e depois pergunta se quer dropar
197
+ herdux backup mydb --drop --yes # Backup + drop sem confirmação
286
198
  herdux backup mydb -o ./meus-backups # Diretório de saída personalizado
287
199
  ```
288
200
 
289
201
  | Opção | Descrição |
290
202
  | --------------------- | ---------------------------------------------------------- |
291
- | `-F, --format <tipo>` | `custom` (padrão, comprimido) ou `plain` (SQL puro) |
292
- | `-d, --drop` | Pergunta se deseja dropar o banco após backup bem-sucedido |
293
- | `-y, --yes` | Pula confirmação do drop (requer `--drop`) |
294
- | `-o, --output <dir>` | Diretório de saída (padrão: `./backups`) |
203
+ | `-F, --format <tipo>` | `custom` (padrão, nativo da engine) ou `plain` (SQL) |
204
+ | `-d, --drop` | Pergunta se quer dropar o banco após o backup bem-sucedido |
205
+ | `-y, --yes` | Pula a confirmação de drop (requer `--drop`) |
206
+ | `-o, --output <dir>` | Diretório de saída (padrão: `~/.herdux/backups`) |
295
207
 
296
208
  ---
297
209
 
298
- ### 📥 `herdux restore <arquivo>`
299
-
300
- Restaura um banco de dados a partir de um arquivo de backup. Detecta automaticamente o formato:
210
+ ### `herdux restore <arquivo>`
301
211
 
302
- - `.sql` usa a ferramenta de importação SQL apropriada
303
- - `.dump` ou qualquer outra extensão → usa a ferramenta de restore apropriada
212
+ Restaura um banco de dados a partir de um arquivo de backup. Detecta automaticamente o formato pela extensão.
304
213
 
305
214
  ```bash
306
215
  herdux restore ./backups/mydb_2026-02-23.dump --db mydb
307
216
  herdux restore ./exports/data.sql --db mydb
217
+ herdux restore archive.bkp --db mydb --format custom # Forçar formato
308
218
  ```
309
219
 
310
- Precisa sobrescrever a auto-detecção? Use `--format`:
220
+ O banco de dados é criado automaticamente se não existir.
221
+
222
+ > [!NOTE]
223
+ > Ao restaurar dumps de ambientes gerenciados (ex: AWS RDS), o Herdux configura a ferramenta de restauração para ignorar ownership e ACLs, evitando erros por roles de produção ausentes localmente.
224
+
225
+ ---
226
+
227
+ ### `herdux inspect <arquivo>`
228
+
229
+ Inspeciona o conteúdo de um arquivo de backup sem se conectar ao banco de dados. Funciona completamente offline.
230
+
231
+ | Extensão | Output |
232
+ | ----------------- | ------------------------------------------------------------------------------ |
233
+ | `.dump` | Formato custom do PostgreSQL: Table of Contents completo (`pg_restore --list`) |
234
+ | `.sql` | SQL puro (qualquer engine): declarações CREATE TABLE, VIEW, INDEX, SEQUENCE |
235
+ | `.db` / `.sqlite` | Arquivo SQLite: schema (`sqlite3 .schema`) |
311
236
 
312
237
  ```bash
313
- herdux restore arquivo.bkp --db mydb --format custom
314
- herdux restore script.txt --db mydb --format plain
238
+ hdx inspect backup.dump # Table of Contents de um dump custom do PostgreSQL
239
+ hdx inspect export.sql # CREATE statements extraídos de SQL puro
240
+ hdx inspect mydb.db # Schema do SQLite
315
241
  ```
316
242
 
317
- > [!NOTE]
318
- > Ao restaurar backups vindos de ambientes gerenciados (ex: AWS RDS), o Herdux configura automaticamente a engine subjacente para ignorar atribuições de permissões e roles. Isso evita erros com roles que existem em produção mas não no seu ambiente local. Se a engine de restauração concluir a operação com avisos não-fatais (como roles ausentes), o Herdux irá te informar no terminal e prosseguir normalmente sem interromper o fluxo.
243
+ ---
244
+
245
+ ### `herdux docker`
246
+
247
+ Gerencia containers de banco de dados rodando via Docker. Nao requer conexao ativa com o banco.
248
+
249
+ ```bash
250
+ hdx docker list # Lista containers postgres/mysql em execucao
251
+ hdx docker list --all # Inclui containers parados
252
+ hdx docker start pg-dev # Inicia um container parado
253
+ hdx docker stop pg-dev # Para um container em execucao
254
+ hdx docker stop pg-dev --remove # Para e remove o container
255
+ ```
319
256
 
320
257
  ---
321
258
 
322
- ## ⚙️ Configuração & Perfis de Servidor
259
+ ## Configuração e Perfis de Servidor
323
260
 
324
- O `herdux` armazena configurações localmente em `~/.herdux/config.json`.
261
+ A configuração é armazenada em `~/.herdux/config.json`.
325
262
 
326
- ### Definir Padrões Globais
263
+ ### Valores globais padrão
327
264
 
328
265
  ```bash
329
- herdux config set engine postgres # Engine padrão
266
+ herdux config set engine postgres
330
267
  herdux config set user postgres
331
268
  herdux config set password minha_senha
332
269
  herdux config set port 5432
333
270
  ```
334
271
 
335
- ### Perfis de Servidor Nomeados
336
-
337
- Gerencie múltiplas instâncias de banco de dados sem esforço:
272
+ ### Perfis de servidor nomeados
338
273
 
339
274
  ```bash
340
- # Perfis PostgreSQL
341
275
  herdux config add pg16 --port 5416
342
276
  herdux config add pg17 --port 5417 --user admin
343
-
344
- # Perfis MySQL (a engine é salva no perfil)
345
277
  herdux config add mysql-dev --port 3306 --user root --password secret --engine mysql
346
-
347
- # Servidores remotos
348
278
  herdux config add staging --host 192.168.0.10 --port 5432
349
279
  ```
350
280
 
351
- Depois conecte usando a flag `-s`:
281
+ Use perfis com a flag `-s`:
352
282
 
353
283
  ```bash
354
284
  herdux list -s pg16
355
285
  herdux backup mydb -s mysql-dev
356
286
  ```
357
287
 
358
- Ou simplesmente execute um comando sem flags — se você tiver perfis salvos, o Herdux mostrará um menu de seleção interativo exibindo a engine de cada perfil.
359
-
360
- ### Visualizar & Gerenciar Config
288
+ ### Gerenciar configuração
361
289
 
362
290
  ```bash
363
- herdux config list # Mostra todas as configurações e perfis salvos
364
- herdux config get port # Obtém um valor específico
365
- herdux config rm pg16 # Remove um perfil de servidor
366
- herdux config reset # Limpa toda a configuração
291
+ herdux config list # Mostrar todas as configurações e perfis
292
+ herdux config get port # Obter um valor específico
293
+ herdux config rm pg16 # Remover um perfil
294
+ herdux config reset # Limpar toda a configuração
367
295
  ```
368
296
 
369
297
  ---
370
298
 
371
- ## 🔌 Resolução de Conexão e Engine
372
-
373
- Ao resolver como se conectar e qual engine usar, o **Herdux** segue uma ordem de prioridade estrita e previsível:
374
-
375
- ### Prioridade da Engine
376
-
377
- | Prioridade | Fonte | Exemplo |
378
- | ---------- | ---------------- | -------------------------------- |
379
- | 1️⃣ | **Flag CLI** | `herdux --engine mysql list` |
380
- | 2️⃣ | **Perfil** | Campo `engine` do perfil |
381
- | 3️⃣ | **Padrão salvo** | `herdux config set engine mysql` |
382
- | 4️⃣ | **Fallback** | `postgres` |
383
-
384
- ### Prioridade da Conexão
385
-
386
- | Prioridade | Fonte | Exemplo |
387
- | ---------- | ---------------------- | ------------------------------------------------------- |
388
- | 1️⃣ | **Flags CLI** | `herdux list --port 5417` |
389
- | 2️⃣ | **Perfil de servidor** | `herdux list -s pg16` |
390
- | 3️⃣ | **Padrões salvos** | `herdux config set port 5432` |
391
- | 4️⃣ | **Auto-descoberta** | Escaneia portas comuns; pergunta se encontrar múltiplas |
392
-
393
- Isso significa que a entrada explícita sempre vence. Sem surpresas.
394
-
395
- ---
396
-
397
- ## 🤔 Por que não pgAdmin / phpMyAdmin?
398
-
399
- O **Herdux** não é um substituto de GUI.
400
- É um acelerador de workflow para desenvolvedores que vivem no terminal.
401
-
402
- Sem GUI. Sem overhead. Só velocidade.
403
-
404
- ---
405
-
406
- ## 🧠 Princípios de Design
299
+ ## Resolução de Conexão e Engine
407
300
 
408
- - Sem padrões ocultos (hidden defaults).
409
- - Sem mágicas destrutivas.
410
- - Resolução determinística de conexão e engine.
411
- - Comandos explícitos e combináveis.
412
- - Engine-agnostic: mesma interface, qualquer banco de dados.
301
+ O Herdux segue uma prioridade estrita e previsível ao resolver como se conectar.
413
302
 
414
- ---
303
+ **Prioridade de engine:**
415
304
 
416
- ## 🐳 Suporte Docker (Em Breve)
305
+ | Prioridade | Fonte | Exemplo |
306
+ | ---------- | ------------ | -------------------------------- |
307
+ | 1 | Flag CLI | `herdux --engine mysql list` |
308
+ | 2 | Perfil | Campo `engine` do perfil |
309
+ | 3 | Padrão salvo | `herdux config set engine mysql` |
310
+ | 4 | Fallback | `postgres` |
417
311
 
418
- O **Herdux** poderá detectar e interagir com instâncias de banco de dados rodando dentro de containers Docker — listando, conectando e gerenciando-as tão naturalmente quanto instâncias locais.
312
+ **Prioridade de conexão:**
419
313
 
420
- ---
314
+ | Prioridade | Fonte | Exemplo |
315
+ | ---------- | -------------- | ------------------------------------------ |
316
+ | 1 | Flags CLI | `herdux list --port 5417` |
317
+ | 2 | Perfil | `herdux list -s pg16` |
318
+ | 3 | Padrões salvos | `herdux config set port 5432` |
319
+ | 4 | Auto-discovery | Escaneia portas comuns; pergunta se vários |
421
320
 
422
- ## 🗺 Roadmap
423
-
424
- Consulte o [ROADMAP.md](./ROADMAP.md) para ver nossos planos futuros detalhados, incluindo integração com Docker e backups criptografados.
321
+ Input explícito sempre vence. Sem surpresas.
425
322
 
426
323
  ---
427
324
 
428
- ## 🤝 Contribuindo
429
-
430
- PRs são bem-vindas! Por favor, abra uma issue primeiro para discutir mudanças significativas.
325
+ ## Contribuindo
431
326
 
432
327
  ```bash
433
328
  git clone https://github.com/herdux/herdux-cli.git
434
329
  cd herdux-cli
435
330
  npm install
436
- npm run dev
437
331
 
438
- # Executar testes unitários
439
- npm run test:unit
440
- # Executar testes E2E (requer Docker)
441
- npm run test:e2e:pgsql
442
- npm run test:e2e:mysql
332
+ npm run test:unit # Testes unitários (238 testes, todas as engines)
333
+ npm run test:integration # Testes de integração
334
+ npm run test:e2e:pgsql # Testes E2E para PostgreSQL (requer Docker)
335
+ npm run test:e2e:mysql # Testes E2E para MySQL (requer Docker)
336
+ npm run test:e2e:sqlite # Testes E2E para SQLite (requer sqlite3)
443
337
  ```
444
338
 
339
+ O Herdux segue limites arquiteturais estritos: comandos são agnósticos de engine, engines encapsulam todo comportamento específico de banco, e todos os binários são isolados por adaptadores. Mantenha esses limites ao contribuir.
340
+
341
+ PRs são bem-vindos. Abra uma issue primeiro para mudanças maiores.
342
+
445
343
  ---
446
344
 
447
- ## ☕ Apoie o Projeto
345
+ ## Suporte
448
346
 
449
- Se o **Herdux** tem te salvado horas de dores de cabeça com bancos de dados, considere apoiar o projeto! Isso ajuda demais a mantê-lo ativo e open-source.
347
+ Se o Herdux te salvou horas de debugging e trabalho com bancos de dados, considere apoiar o projeto:
450
348
 
451
349
  <a href="https://github.com/sponsors/eduardozaniboni" target="_blank"><img src="https://img.shields.io/badge/Sponsor-%E2%9D%A4-pink?style=for-the-badge&logo=github" alt="GitHub Sponsors"></a>
452
350
  <a href="https://www.buymeacoffee.com/eduardozaniboni" target="_blank"><img src="https://cdn.buymeacoffee.com/buttons/v2/default-yellow.png" alt="Buy Me A Coffee" style="height: 28px !important;width: 100px !important;" ></a>
453
351
 
454
352
  ---
455
353
 
456
- ## 📄 Licença
354
+ ## Licença
457
355
 
458
356
  MIT
@@ -1 +1 @@
1
- {"version":3,"file":"clean.d.ts","sourceRoot":"","sources":["../../src/commands/clean.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AASzC,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAkI3D"}
1
+ {"version":3,"file":"clean.d.ts","sourceRoot":"","sources":["../../src/commands/clean.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAUzC,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAmI3D"}
@@ -3,6 +3,7 @@ import ora from "ora";
3
3
  import prompts from "prompts";
4
4
  import { resolveEngineAndConnection } from "../infra/engines/resolve-connection.js";
5
5
  import * as config from "../infra/config/config.service.js";
6
+ import { logger } from "../presentation/logger.js";
6
7
  import { join } from "path";
7
8
  import { homedir } from "os";
8
9
  export function registerCleanCommand(program) {
@@ -95,7 +96,8 @@ Note: You will be prompted to select databases, optionally backup them first,
95
96
  console.error(chalk.red(` ↳ ${message}`));
96
97
  }
97
98
  }
98
- console.log(chalk.green(`\n✔ Clean operation completed!`));
99
+ logger.blank();
100
+ logger.success("Clean operation completed.");
99
101
  }
100
102
  catch (err) {
101
103
  const message = err instanceof Error ? err.message : String(err);
@@ -1 +1 @@
1
- {"version":3,"file":"clean.js","sourceRoot":"","sources":["../../src/commands/clean.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"clean.js","sourceRoot":"","sources":["../../src/commands/clean.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../src/commands/create.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKzC,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAqC5D"}
1
+ {"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../src/commands/create.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKzC,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA0C5D"}
@@ -19,9 +19,11 @@ Examples:
19
19
  const rawOpts = program.opts();
20
20
  const { engine, opts } = await resolveEngineAndConnection(rawOpts);
21
21
  await engine.checkClientVersion();
22
+ const host = opts.host ?? "localhost";
23
+ const connLabel = opts.port ? `${host}:${opts.port}` : host;
22
24
  const spinner = ora(`Creating database "${name}"...`).start();
23
25
  await engine.createDatabase(name, opts);
24
- spinner.succeed(`Database "${name}" created successfully\n`);
26
+ spinner.succeed(`Database "${name}" created (${engine.getEngineName()} at ${connLabel})\n`);
25
27
  }
26
28
  catch (err) {
27
29
  const message = err instanceof Error ? err.message : String(err);
@@ -1 +1 @@
1
- {"version":3,"file":"create.js","sourceRoot":"","sources":["../../src/commands/create.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAE,0BAA0B,EAAE,MAAM,wCAAwC,CAAC;AAEpF,MAAM,UAAU,qBAAqB,CAAC,OAAgB;IACpD,OAAO;SACJ,OAAO,CAAC,eAAe,CAAC;SACxB,WAAW,CAAC,6BAA6B,CAAC;SAC1C,WAAW,CACV,OAAO,EACP;;;;kDAI4C,CAC7C;SACA,MAAM,CAAC,KAAK,EAAE,IAAY,EAAE,EAAE;QAC7B,IAAI,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACnC,OAAO,CAAC,KAAK,CACX,KAAK,CAAC,GAAG,CACP,8BAA8B,IAAI,uEAAuE,CAC1G,CACF,CAAC;YACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;YAC/B,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,0BAA0B,CAAC,OAAO,CAAC,CAAC;YACnE,MAAM,MAAM,CAAC,kBAAkB,EAAE,CAAC;YAElC,MAAM,OAAO,GAAG,GAAG,CAAC,sBAAsB,IAAI,MAAM,CAAC,CAAC,KAAK,EAAE,CAAC;YAE9D,MAAM,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACxC,OAAO,CAAC,OAAO,CAAC,aAAa,IAAI,0BAA0B,CAAC,CAAC;QAC/D,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACjE,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,OAAO,IAAI,CAAC,CAAC,CAAC;YAC7C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
1
+ {"version":3,"file":"create.js","sourceRoot":"","sources":["../../src/commands/create.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAE,0BAA0B,EAAE,MAAM,wCAAwC,CAAC;AAEpF,MAAM,UAAU,qBAAqB,CAAC,OAAgB;IACpD,OAAO;SACJ,OAAO,CAAC,eAAe,CAAC;SACxB,WAAW,CAAC,6BAA6B,CAAC;SAC1C,WAAW,CACV,OAAO,EACP;;;;kDAI4C,CAC7C;SACA,MAAM,CAAC,KAAK,EAAE,IAAY,EAAE,EAAE;QAC7B,IAAI,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACnC,OAAO,CAAC,KAAK,CACX,KAAK,CAAC,GAAG,CACP,8BAA8B,IAAI,uEAAuE,CAC1G,CACF,CAAC;YACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;YAC/B,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,0BAA0B,CAAC,OAAO,CAAC,CAAC;YACnE,MAAM,MAAM,CAAC,kBAAkB,EAAE,CAAC;YAElC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,WAAW,CAAC;YACtC,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;YAE5D,MAAM,OAAO,GAAG,GAAG,CAAC,sBAAsB,IAAI,MAAM,CAAC,CAAC,KAAK,EAAE,CAAC;YAE9D,MAAM,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACxC,OAAO,CAAC,OAAO,CACb,aAAa,IAAI,cAAc,MAAM,CAAC,aAAa,EAAE,OAAO,SAAS,KAAK,CAC3E,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACjE,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,OAAO,IAAI,CAAC,CAAC,CAAC;YAC7C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { Command } from "commander";
2
+ export declare function registerDockerCommand(program: Command): void;
3
+ //# sourceMappingURL=docker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"docker.d.ts","sourceRoot":"","sources":["../../src/commands/docker.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAsBzC,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAqH5D"}