@mocoto/mahoraga 0.14.6 → 0.14.8
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 +165 -511
- package/dist/analysts/css/analysts/analyst-css.js +10 -1
- package/dist/analysts/detectors/detector-bugs-ml.js +81 -19
- package/dist/analysts/js-ts/registrar.js +1 -1
- package/dist/analysts/react/analysts/analyst-react-hooks.js +109 -90
- package/dist/analysts/react/detectors/detector-react-best-practices.js +100 -6
- package/dist/cli/commands/command-perf.js +1 -1
- package/dist/cli/commands/command-update.js +3 -2
- package/dist/core/config/auto/auto-fix-config.js +9 -4
- package/dist/core/config/config.js +1 -1
- package/dist/core/messages/en/core/formatters-messages.js +1 -0
- package/dist/core/messages/ja/core/formatters-messages.js +1 -0
- package/dist/core/messages/pt/core/formatters-messages.js +1 -0
- package/dist/core/messages/shared/icons.js +3 -3
- package/dist/core/messages/zh/core/formatters-messages.js +1 -0
- package/dist/core/parsing/langs/json.js +2 -2
- package/dist/core/parsing/langs/typescript.js +33 -7
- package/dist/core/schema/version.js +1 -1
- package/dist/core/utils/exec-safe.js +47 -25
- package/dist/lib/api.js +14 -0
- package/dist/shared/data-processing/occurrences.js +3 -0
- package/dist/shared/formatters/code-min-formatter.js +1 -1
- package/dist/shared/formatters/formatters/commons.js +19 -5
- package/dist/shared/formatters/formatters/shell.js +128 -9
- package/dist/shared/helpers/ast-visitor-utils.js +3 -0
- package/dist/shared/helpers/imports.js +1 -1
- package/dist/shared/helpers/reader-report.js +13 -0
- package/dist/shared/helpers/structure.js +2 -2
- package/dist/types/guardian/result.js +38 -0
- package/dist/types/reports/processing.js +12 -0
- package/dist/types/shared/validation.js +111 -0
- package/dist/vulnerabilities/scanner.js +7 -2
- package/package.json +11 -18
package/README.md
CHANGED
|
@@ -1,135 +1,153 @@
|
|
|
1
1
|
---
|
|
2
|
-
Proveniência e Autoria: Este documento integra o projeto
|
|
2
|
+
Proveniência e Autoria: Este documento integra o projeto @mocoto/mahoraga (licença MIT-0).
|
|
3
3
|
---
|
|
4
4
|
|
|
5
5
|
<div align="center">
|
|
6
6
|
|
|
7
|
-
<p><b
|
|
7
|
+
<p><b>@mocoto/mahoraga</b>: CLI modular para análise, diagnóstico e manutenção de projetos JavaScript/TypeScript com suporte multi-linguagem<p>
|
|
8
8
|
|
|
9
9
|
</div>
|
|
10
10
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
<p> caso tenha interesse em ajudar no projeto o E-mail é esse ai em baixo o **lint que me aguarde 😜 </p>
|
|
11
|
+
Caso tenha receio em ajudar com codigo você pode me ajudar ao usar e encontrar falsos postivos/negativos e me mandar relatorios por meio desse e-mail ai em baixo, me ajudaria muito, pois nem todos os erros e bugs eu consigo resolver em ambiente de desenvolvimento sendo preciso uso em produção para serem encontrados
|
|
14
12
|
|
|
15
13
|
[Gmail](mailto:mocoto.persona@gmail.com)
|
|
16
14
|
|
|
17
|
-
|
|
15
|
+
---
|
|
18
16
|
|
|
19
17
|
## Começar Rápido (30 segundos)
|
|
20
18
|
|
|
21
19
|
```bash
|
|
22
|
-
# 1. Instalar
|
|
20
|
+
# 1. Instalar globalmente
|
|
23
21
|
npm install -g @mocoto/mahoraga
|
|
24
22
|
|
|
25
23
|
# 2. Analisar seu projeto
|
|
26
24
|
cd meu-projeto
|
|
27
25
|
mahoraga diagnosticar
|
|
28
26
|
|
|
29
|
-
# 3. Ver
|
|
30
|
-
mahoraga diagnosticar --
|
|
31
|
-
|
|
32
|
-
# 4. Exportar relatório
|
|
33
|
-
mahoraga diagnosticar --relatorio json --saida relatorio.json
|
|
34
|
-
```
|
|
35
|
-
|
|
36
|
-
**Próximos passos imediatos:**
|
|
37
|
-
|
|
38
|
-
```bash
|
|
39
|
-
# Revisar correções disponíveis
|
|
40
|
-
mahoraga corrigir --revisar
|
|
41
|
-
|
|
42
|
-
# Aplicar correções automáticas seguras
|
|
43
|
-
mahoraga corrigir --auto
|
|
44
|
-
|
|
45
|
-
# Estabelecer baseline de saúde (assinatura GPG)
|
|
46
|
-
mahoraga guardian --accept-baseline
|
|
27
|
+
# 3. Ver análise completa
|
|
28
|
+
mahoraga diagnosticar --full
|
|
47
29
|
|
|
48
|
-
#
|
|
49
|
-
mahoraga
|
|
30
|
+
# 4. Exportar relatório em JSON
|
|
31
|
+
mahoraga diagnosticar --json > relatorio.json
|
|
50
32
|
```
|
|
51
33
|
|
|
52
34
|
---
|
|
53
35
|
|
|
54
|
-
##
|
|
55
|
-
|
|
56
|
-
O Mahoraga foi projetado para guiar você por um fluxo completo de análise e manutenção do seu projeto:
|
|
36
|
+
## Comandos da CLI
|
|
57
37
|
|
|
58
|
-
###
|
|
38
|
+
### Comandos Principais
|
|
59
39
|
|
|
60
|
-
|
|
40
|
+
| Comando | Descrição | Exemplo |
|
|
41
|
+
|---------|-----------|---------|
|
|
42
|
+
| `diagnosticar` (ou `diag`) | Análise completa do projeto | `mahoraga diagnosticar --full` |
|
|
43
|
+
| `guardian` | Monitoramento de integridade com GPG | `mahoraga guardian --accept-baseline` |
|
|
44
|
+
| `fix-types` | Corrigir tipos inseguros (`any`/`unknown`) | `mahoraga fix-types --target src` |
|
|
45
|
+
| `formatar` | Formatação automática de código | `mahoraga formatar --write` |
|
|
46
|
+
| `podar` | Remover arquivos órfãos e código morto | `mahoraga podar` |
|
|
47
|
+
| `names` | Extração e renomeação em massa de variáveis | `mahoraga names --scan` |
|
|
48
|
+
| `imports` | Gerenciar aliases de import (`@/`) | `mahoraga imports --scan` |
|
|
49
|
+
| `barrels` | Gerenciar barrels (`index.ts`) | `mahoraga barrels --generate` |
|
|
50
|
+
| `analistas` | Listar analistas e detectores disponíveis | `mahoraga analistas --json` |
|
|
51
|
+
| `metricas` | Ver métricas de execução | `mahoraga metricas --analistas` |
|
|
52
|
+
| `perf` | Snapshots e comparação de performance | `mahoraga perf baseline` |
|
|
53
|
+
| `atualizar` | Auto-update do Mahoraga | `mahoraga atualizar --global` |
|
|
54
|
+
| `convert` (ou `conv`) | Converter CI/CD templates | `mahoraga convert --from github --to gitlab` |
|
|
55
|
+
| `reverter` | Reverter movimentações de arquivos | `mahoraga reverter listar` |
|
|
56
|
+
| `compliance` | Relatórios de compliance | `mahoraga compliance report iso-27001` |
|
|
57
|
+
|
|
58
|
+
### Diagnóstico
|
|
61
59
|
|
|
62
60
|
```bash
|
|
63
|
-
#
|
|
64
|
-
mahoraga diagnosticar
|
|
65
|
-
|
|
66
|
-
#
|
|
67
|
-
mahoraga diagnosticar --
|
|
68
|
-
|
|
69
|
-
#
|
|
70
|
-
mahoraga diagnosticar --
|
|
71
|
-
|
|
72
|
-
#
|
|
73
|
-
mahoraga diagnosticar --
|
|
74
|
-
mahoraga diagnosticar --
|
|
61
|
+
mahoraga diagnosticar # análise padrão
|
|
62
|
+
mahoraga diagnosticar --full # análise completa
|
|
63
|
+
mahoraga diagnosticar --fast # modo rápido
|
|
64
|
+
mahoraga diagnosticar --compact # saída compacta
|
|
65
|
+
mahoraga diagnosticar --json # saída JSON
|
|
66
|
+
mahoraga diagnosticar --detalhado # saída detalhada
|
|
67
|
+
mahoraga diagnosticar --executive # relatório executivo
|
|
68
|
+
mahoraga diagnosticar --monorepo # análise de monorepo
|
|
69
|
+
mahoraga diagnosticar --guardian-check # verificar Guardian junto
|
|
70
|
+
mahoraga diagnosticar --stream # streaming para projetos grandes
|
|
71
|
+
mahoraga diagnosticar --verbose # log detalhado
|
|
72
|
+
mahoraga diagnosticar --debug # modo debug
|
|
73
|
+
mahoraga diagnosticar --include "src/**" --exclude "**/*.test.ts"
|
|
74
|
+
mahoraga diagnosticar --path ./frontend --path ./backend
|
|
75
|
+
mahoraga diagnosticar --auto-fix # corrigir automaticamente
|
|
75
76
|
```
|
|
76
77
|
|
|
77
|
-
###
|
|
78
|
+
### Guardian (Integridade com GPG)
|
|
78
79
|
|
|
79
|
-
|
|
80
|
+
O Guardian utiliza **assinatura GPG (Ed25519)** em vez de hashes convencionais para garantir a integridade dos arquivos.
|
|
80
81
|
|
|
81
82
|
```bash
|
|
82
|
-
mahoraga guardian
|
|
83
|
+
mahoraga guardian # verificar integridade
|
|
84
|
+
mahoraga guardian --accept-baseline # aceitar estado atual como baseline
|
|
85
|
+
mahoraga guardian --diff # mostrar diferenças
|
|
86
|
+
mahoraga guardian --full-scan # scan completo
|
|
87
|
+
mahoraga guardian --json # saída JSON estruturada
|
|
83
88
|
```
|
|
84
89
|
|
|
85
|
-
###
|
|
86
|
-
|
|
87
|
-
Aplique correções automáticas com segurança:
|
|
90
|
+
### CI/CD
|
|
88
91
|
|
|
89
92
|
```bash
|
|
90
|
-
|
|
91
|
-
mahoraga
|
|
92
|
-
|
|
93
|
-
#
|
|
94
|
-
mahoraga
|
|
95
|
-
|
|
96
|
-
#
|
|
97
|
-
mahoraga
|
|
93
|
+
mahoraga github-actions scan # GitHub Actions
|
|
94
|
+
mahoraga github-actions gate --threshold 80 # quality gate
|
|
95
|
+
mahoraga github-actions app --port 3000 # servidor GitHub App
|
|
96
|
+
mahoraga gitlab-ci scan # GitLab CI
|
|
97
|
+
mahoraga circleci scan # CircleCI
|
|
98
|
+
mahoraga jenkins scan # Jenkins
|
|
99
|
+
mahoraga azure scan # Azure Pipelines
|
|
100
|
+
mahoraga convert --from github --to gitlab # converter templates
|
|
98
101
|
```
|
|
99
102
|
|
|
100
|
-
###
|
|
101
|
-
|
|
102
|
-
Revise sugestões estruturais e organize os barrels do projeto:
|
|
103
|
+
### Licenças e Compliance
|
|
103
104
|
|
|
104
105
|
```bash
|
|
105
|
-
#
|
|
106
|
-
mahoraga
|
|
106
|
+
mahoraga licencas scan # scan de dependências
|
|
107
|
+
mahoraga licencas notices generate # gerar THIRD-PARTY-NOTICES
|
|
108
|
+
mahoraga licencas disclaimer add # adicionar disclaimer
|
|
109
|
+
mahoraga licencas disclaimer verify # verificar disclaimers
|
|
110
|
+
mahoraga compliance report iso-27001 # relatório ISO 27001
|
|
111
|
+
mahoraga compliance report soc2 --json # relatório SOC 2
|
|
112
|
+
```
|
|
107
113
|
|
|
108
|
-
|
|
109
|
-
mahoraga barrels --scan # preview do que será criado
|
|
110
|
-
mahoraga barrels --generate # criar/atualizar barrels
|
|
114
|
+
### Manutenção
|
|
111
115
|
|
|
112
|
-
|
|
113
|
-
mahoraga
|
|
116
|
+
```bash
|
|
117
|
+
mahoraga fix-types --target src # corrigir tipos inseguros
|
|
118
|
+
mahoraga fix-types --dry-run # simular correção
|
|
119
|
+
mahoraga fix-types --interactive # modo interativo
|
|
120
|
+
mahoraga formatar --write # formatar código
|
|
121
|
+
mahoraga formatar --check # apenas verificar
|
|
122
|
+
mahoraga podar # remover arquivos órfãos
|
|
123
|
+
mahoraga names --scan # extrair nomes de variáveis
|
|
124
|
+
mahoraga names --apply # aplicar renomeações
|
|
125
|
+
mahoraga reverter listar # listar reversões disponíveis
|
|
126
|
+
mahoraga reverter move <id> # reverter movimento específico
|
|
114
127
|
```
|
|
115
128
|
|
|
116
|
-
###
|
|
117
|
-
|
|
118
|
-
Mantenha a saúde do projeto ao longo do tempo:
|
|
129
|
+
### Plugins e Marketplace
|
|
119
130
|
|
|
120
131
|
```bash
|
|
121
|
-
#
|
|
122
|
-
mahoraga
|
|
123
|
-
|
|
124
|
-
#
|
|
125
|
-
mahoraga
|
|
132
|
+
mahoraga plugins list # listar plugins instalados
|
|
133
|
+
mahoraga plugins install <pacote> # instalar plugin
|
|
134
|
+
mahoraga plugins remove <pacote> # remover plugin
|
|
135
|
+
mahoraga marketplace search <termo> # buscar analistas
|
|
136
|
+
mahoraga marketplace install <nome> # instalar do marketplace
|
|
137
|
+
mahoraga marketplace list # listar instalados
|
|
138
|
+
```
|
|
126
139
|
|
|
127
|
-
|
|
128
|
-
mahoraga perf snapshot --baseline
|
|
129
|
-
mahoraga perf compare
|
|
140
|
+
### Utilitários
|
|
130
141
|
|
|
131
|
-
|
|
132
|
-
mahoraga
|
|
142
|
+
```bash
|
|
143
|
+
mahoraga otimizar-svg --write # otimizar SVGs
|
|
144
|
+
mahoraga imports --scan # escanear aliases de import
|
|
145
|
+
mahoraga imports --apply # aplicar correções de import
|
|
146
|
+
mahoraga barrels --scan # preview de barrels
|
|
147
|
+
mahoraga barrels --generate # gerar barrels
|
|
148
|
+
mahoraga metricas --json # métricas em JSON
|
|
149
|
+
mahoraga vulnerabilidades scan # scan de vulnerabilidades
|
|
150
|
+
mahoraga atualizar --global # auto-update
|
|
133
151
|
```
|
|
134
152
|
|
|
135
153
|
---
|
|
@@ -138,48 +156,41 @@ mahoraga metricas
|
|
|
138
156
|
|
|
139
157
|
### Análise Inteligente
|
|
140
158
|
|
|
141
|
-
- **Diagnóstico completo
|
|
142
|
-
- **15+ detectores especializados
|
|
143
|
-
- **18+ plugins multi-linguagem
|
|
144
|
-
- **Detecção de bugs via ML
|
|
145
|
-
- **Registro inteligente
|
|
146
|
-
- **Análise de monorepos
|
|
159
|
+
- **Diagnóstico completo**: qualidade, segurança e arquitetura
|
|
160
|
+
- **15+ detectores especializados**: código frágil, duplicação, complexidade, performance, vazamentos de memória, tipos inseguros
|
|
161
|
+
- **18+ plugins multi-linguagem**: React, CSS, HTML, Python, Shell, SQL, Tailwind, XML, SVG
|
|
162
|
+
- **Detecção de bugs via ML**: 8 padrões com pontuação Bayesiana
|
|
163
|
+
- **Registro inteligente**: descoberta automática de analistas built-in e customizados
|
|
164
|
+
- **Análise de monorepos**: pnpm-workspace, lerna, nx, turbo
|
|
147
165
|
|
|
148
166
|
### Manutenção Assistida
|
|
149
167
|
|
|
150
|
-
- **
|
|
151
|
-
- **
|
|
152
|
-
- **
|
|
153
|
-
- **
|
|
154
|
-
- **
|
|
155
|
-
- **
|
|
156
|
-
- **
|
|
157
|
-
- **Reverter** — rollback de movimentações aplicadas
|
|
168
|
+
- **Guardian**: monitoramento contínuo com assinatura GPG (Ed25519), baselines criptográficos e verificação de integridade
|
|
169
|
+
- **Fix Types**: correção automática de `any` e `unknown`
|
|
170
|
+
- **Poda inteligente**: identificação e remoção de arquivos órfãos e código morto
|
|
171
|
+
- **Formatação**: formatação automática do código
|
|
172
|
+
- **Names/Rename**: extração e renomeação em massa de variáveis
|
|
173
|
+
- **Reverter**: rollback de movimentações aplicadas
|
|
174
|
+
- **Imports**: gerenciamento de aliases de import
|
|
158
175
|
|
|
159
176
|
### Relatórios Profissionais
|
|
160
177
|
|
|
161
|
-
- **
|
|
162
|
-
- **
|
|
163
|
-
- **
|
|
164
|
-
- **
|
|
165
|
-
- **
|
|
166
|
-
- **Streaming** — NDJSON sharded com gzip para projetos grandes (v0.10.0)
|
|
178
|
+
- **Métricas detalhadas**: complexidade ciclomática, duplicação, cobertura, performance com histórico
|
|
179
|
+
- **Baseline de performance**: snapshots e comparação ao longo do tempo
|
|
180
|
+
- **Scan de licenças**: verificação de dependências e geração de THIRD-PARTY-NOTICES
|
|
181
|
+
- **Relatórios de compliance**: ISO 27001, SOC 2
|
|
182
|
+
- **Streaming**: NDJSON para projetos grandes
|
|
167
183
|
|
|
168
|
-
###
|
|
184
|
+
### Integrações CI/CD
|
|
169
185
|
|
|
170
|
-
- **
|
|
171
|
-
- **
|
|
172
|
-
- **REST API** — servidor HTTP com Swagger UI
|
|
173
|
-
- **Worker pool** — processamento paralelo para projetos grandes
|
|
174
|
-
- **Marketplace** — analistas comunitários
|
|
186
|
+
- **GitLab CI / CircleCI / Jenkins / Azure Pipelines**: análise de pipelines
|
|
187
|
+
- **Conversão** entre plataformas de CI/CD
|
|
175
188
|
|
|
176
|
-
###
|
|
189
|
+
### Extensível
|
|
177
190
|
|
|
178
|
-
- **
|
|
179
|
-
- **
|
|
180
|
-
- **
|
|
181
|
-
- **LSP** — diagnóstico em tempo real para editores
|
|
182
|
-
- **VSCode Extension** — análise ao salvar/abrir arquivos
|
|
191
|
+
- **Plugin system**: crie analistas customizados com autodiscovery
|
|
192
|
+
- **API modular**: use como biblioteca (`@mocoto/mahoraga`)
|
|
193
|
+
- **Marketplace**: analistas comunitários
|
|
183
194
|
|
|
184
195
|
---
|
|
185
196
|
|
|
@@ -199,27 +210,19 @@ npm install --save-dev @mocoto/mahoraga
|
|
|
199
210
|
npx mahoraga --help
|
|
200
211
|
```
|
|
201
212
|
|
|
202
|
-
|
|
203
|
-
### Docker
|
|
204
|
-
|
|
205
|
-
```bash
|
|
206
|
-
docker build -t mahoraga .
|
|
207
|
-
docker run --rm -v $(pwd):/project mahoraga diagnosticar
|
|
208
|
-
```
|
|
209
|
-
|
|
210
213
|
### Verificar Instalação
|
|
211
214
|
|
|
212
215
|
```bash
|
|
213
|
-
mahoraga --version
|
|
214
|
-
mahoraga --help
|
|
215
|
-
mahoraga analistas --
|
|
216
|
+
mahoraga --version # v0.14.6
|
|
217
|
+
mahoraga --help # lista todos os comandos
|
|
218
|
+
mahoraga analistas --json # analistas disponíveis
|
|
216
219
|
```
|
|
217
220
|
|
|
218
221
|
---
|
|
219
222
|
|
|
220
223
|
## Configuração
|
|
221
224
|
|
|
222
|
-
O Mahoraga lê um arquivo `mahoraga.config.json` na raiz do seu projeto
|
|
225
|
+
O Mahoraga lê um arquivo `mahoraga.config.json` na raiz do seu projeto (ou variáveis de ambiente).
|
|
223
226
|
|
|
224
227
|
### Configuração Mínima
|
|
225
228
|
|
|
@@ -237,427 +240,80 @@ O Mahoraga lê um arquivo `mahoraga.config.json` na raiz do seu projeto. Se não
|
|
|
237
240
|
}
|
|
238
241
|
```
|
|
239
242
|
|
|
240
|
-
### Blocos Principais
|
|
241
|
-
|
|
242
|
-
| Bloco | Descrição |
|
|
243
|
-
|-------|-----------|
|
|
244
|
-
| `locale` | Idioma (`pt`, `en`, `zh`, `ja`) |
|
|
245
|
-
| `verbose` | Saída detalhada |
|
|
246
|
-
| `logLevel` | Nível de log (`debug`, `info`, `warn`, `error`) |
|
|
247
|
-
| `safeMode` | Modo seguro (sem operações destrutivas) |
|
|
248
|
-
| `exclude` | Glob patterns para exclusão |
|
|
249
|
-
| `INCLUDE_EXCLUDE_RULES` | Regras globais de inclusão/exclusão |
|
|
250
|
-
| `languageSupport` | Configuração por linguagem |
|
|
251
|
-
| `rules` | Customização de severidade por regra |
|
|
252
|
-
| `suppress` | Supressão de avisos por regra/caminho |
|
|
253
|
-
| `testPatterns` | Padrões para detecção de testes |
|
|
254
|
-
| `analystsExclude` | Analistas a desabilitar |
|
|
255
|
-
| `GUARDIAN_*` | Configurações do Guardian (assinatura GPG) |
|
|
256
|
-
| `REPORT_*` | Configurações de relatórios |
|
|
257
|
-
| `WORKER_POOL_*` | Pool de workers paralelos |
|
|
258
|
-
| `PLUGINS` | Sistema de plugins |
|
|
259
|
-
| `CACHE_STRATEGY` | Estratégia de cache |
|
|
260
|
-
|
|
261
243
|
### Variáveis de Ambiente
|
|
262
244
|
|
|
263
245
|
| Variável | Descrição | Padrão |
|
|
264
246
|
|----------|-----------|--------|
|
|
265
|
-
| `SUKUNA_API_PORT` | Porta da API | `3100` |
|
|
266
|
-
| `SUKUNA_API_CORS_ORIGINS` | Origens CORS | `localhost: 00` |
|
|
267
247
|
| `LOG_LEVEL` | Nível de log | `info` |
|
|
268
248
|
| `LOG_ESTRUTURADO` | Logs em JSON | `false` |
|
|
269
|
-
| `
|
|
270
|
-
| `
|
|
271
|
-
| `
|
|
272
|
-
| `
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
---
|
|
277
|
-
|
|
278
|
-
## Comandos da CLI
|
|
279
|
-
|
|
280
|
-
### Comandos Principais
|
|
281
|
-
|
|
282
|
-
| Comando | Descrição | Exemplo |
|
|
283
|
-
|---------|-----------|---------|
|
|
284
|
-
| `diagnosticar` | Análise completa do projeto | `mahoraga diagnosticar --verbose` |
|
|
285
|
-
| `corrigir` | Auto-fix com validação | `mahoraga corrigir --auto` |
|
|
286
|
-
| `guardian` | Monitoramento contínuo | `mahoraga guardian --baseline` |
|
|
287
|
-
| `reestruturar` | Reorganizar estrutura do código | `mahoraga reestruturar --auto` |
|
|
288
|
-
| `podar` | Remover código morto | `mahoraga podar` |
|
|
289
|
-
| `fix-types` | Corrigir tipos inseguros | `mahoraga fix-types --auto` |
|
|
290
|
-
| `formatar` | Formatação automática | `mahoraga formatar --write` |
|
|
291
|
-
| `analistas` | Listar analistas | `mahoraga analistas --listar` |
|
|
292
|
-
|
|
293
|
-
### Diagnóstico Avançado
|
|
294
|
-
|
|
295
|
-
```bash
|
|
296
|
-
mahoraga diagnosticar --full # análise completa
|
|
297
|
-
mahoraga diagnosticar --fast # modo rápido
|
|
298
|
-
mahoraga diagnosticar --compact # saída compacta
|
|
299
|
-
mahoraga diagnosticar --json # saída JSON
|
|
300
|
-
mahoraga diagnosticar --stream # streaming para projetos grandes
|
|
301
|
-
mahoraga diagnosticar --executive # relatório executivo
|
|
302
|
-
mahoraga diagnosticar --monorepo # análise de monorepo
|
|
303
|
-
mahoraga diagnosticar --guardian-check # verificar Guardian
|
|
304
|
-
mahoraga diagnosticar --include "src/**" # incluir padrão
|
|
305
|
-
mahoraga diagnosticar --exclude "**/*.test.ts" # excluir padrão
|
|
306
|
-
mahoraga diagnosticar --path ./frontend --path ./backend # múltiplos diretórios
|
|
307
|
-
```
|
|
308
|
-
|
|
309
|
-
### Correção e Manutenção
|
|
310
|
-
|
|
311
|
-
```bash
|
|
312
|
-
mahoraga corrigir --revisar # revisar antes de aplicar
|
|
313
|
-
mahoraga corrigir --auto # aplicar automaticamente
|
|
314
|
-
mahoraga corrigir --tipo variavel-nao-usada # tipo específico
|
|
315
|
-
mahoraga fix-types --dry-run # simular correção
|
|
316
|
-
mahoraga fix-types --target src # diretório alvo
|
|
317
|
-
```
|
|
318
|
-
|
|
319
|
-
### Guardian (Monitoramento com GPG)
|
|
320
|
-
|
|
321
|
-
O Guardian utiliza **assinatura GPG** (Ed25519) em vez de hashes convencionais para garantir a integridade dos arquivos. Cada baseline armazena assinaturas criptográficas individuais, permitindo autenticação e não-repúdio.
|
|
322
|
-
|
|
323
|
-
```bash
|
|
324
|
-
mahoraga guardian # verificar integridade
|
|
325
|
-
mahoraga guardian --accept-baseline # aceitar estado atual como baseline
|
|
326
|
-
mahoraga guardian --diff # mostrar diferenças
|
|
327
|
-
mahoraga guardian --full-scan # scan completo sem ignorar padrões
|
|
328
|
-
mahoraga guardian --json # saída JSON estruturada
|
|
329
|
-
```
|
|
330
|
-
|
|
331
|
-
**Como funciona:**
|
|
332
|
-
1. **Chaves** — um par de chaves GPG (Ed25519) é gerado automaticamente em `.mahoraga/`
|
|
333
|
-
2. **Baseline** — cada arquivo é assinado com a chave privada; a assinatura é armazenada no baseline
|
|
334
|
-
3. **Verificação** — a assinatura armazenada é verificada contra o conteúdo atual usando a chave pública
|
|
335
|
-
4. **Drift** — arquivos adicionados, removidos ou com assinatura inválida são detectados
|
|
336
|
-
|
|
337
|
-
> As chaves GPG ficam em `.mahoraga/` e são automaticamente excluídas do versionamento (`.gitignore`).
|
|
338
|
-
|
|
339
|
-
### Nomes e Renomeação
|
|
340
|
-
|
|
341
|
-
```bash
|
|
342
|
-
mahoraga names # extrair nomes de variáveis
|
|
343
|
-
mahoraga rename --apply # aplicar renomeações
|
|
344
|
-
mahoraga reverter listar # listar reversões
|
|
345
|
-
mahoraga reverter move <id> # reverter movimento específico
|
|
346
|
-
```
|
|
347
|
-
|
|
348
|
-
### Licenças e Compliance
|
|
349
|
-
|
|
350
|
-
```bash
|
|
351
|
-
mahoraga licencas scan # scan de licenças
|
|
352
|
-
mahoraga licencas notices generate # gerar THIRD-PARTY-NOTICES
|
|
353
|
-
mahoraga licencas disclaimer add # adicionar disclaimer
|
|
354
|
-
mahoraga licencas disclaimer verify # verificar disclaimers
|
|
355
|
-
mahoraga compliance report iso-27001 # relatório ISO 27001
|
|
356
|
-
mahoraga compliance report soc2 --json # relatório SOC 2
|
|
357
|
-
```
|
|
358
|
-
|
|
359
|
-
### CI/CD
|
|
360
|
-
|
|
361
|
-
```bash
|
|
362
|
-
mahoraga github-actions scan # scan de workflows
|
|
363
|
-
mahoraga github-actions report --format html # relatório HTML
|
|
364
|
-
mahoraga github-actions gate --threshold 80 # quality gate
|
|
365
|
-
mahoraga gitlab-ci scan # scan GitLab CI
|
|
366
|
-
mahoraga circleci scan # scan CircleCI
|
|
367
|
-
mahoraga jenkins scan # scan Jenkins
|
|
368
|
-
mahoraga azure scan # scan Azure Pipelines
|
|
369
|
-
```
|
|
370
|
-
|
|
371
|
-
### Métricas e Performance
|
|
372
|
-
|
|
373
|
-
```bash
|
|
374
|
-
mahoraga metricas # histórico de métricas
|
|
375
|
-
mahoraga metricas --analistas # métricas por analista
|
|
376
|
-
mahoraga perf snapshot --baseline # baseline de performance
|
|
377
|
-
mahoraga perf compare # comparar performance
|
|
378
|
-
```
|
|
379
|
-
|
|
380
|
-
### Utilitários
|
|
381
|
-
|
|
382
|
-
```bash
|
|
383
|
-
mahoraga otimizar-svg --write # otimizar SVGs
|
|
384
|
-
mahoraga atualizar # atualizar Mahoraga
|
|
385
|
-
mahoraga plugins list # listar plugins
|
|
386
|
-
mahoraga marketplace search # buscar analistas
|
|
387
|
-
mahoraga vulnerabilidades scan # scan de vulnerabilidades
|
|
388
|
-
mahoraga formatters list # listar formatadores
|
|
389
|
-
mahoraga lsp # iniciar servidor LSP
|
|
390
|
-
mahoraga serve --port 3100 # iniciar REST API
|
|
391
|
-
mahoraga convert # converter projeto
|
|
392
|
-
mahoraga imports --scan # gerenciar imports
|
|
393
|
-
```
|
|
394
|
-
|
|
395
|
-
> [BOOK] [Guia de Comandos Completo →](./docs/guias/GUIA-COMANDOS.md)
|
|
396
|
-
|
|
397
|
-
---
|
|
398
|
-
|
|
399
|
-
## REST API
|
|
400
|
-
|
|
401
|
-
O Mahoraga pode ser executado como um servidor HTTP RESTful para integração com outras ferramentas.
|
|
402
|
-
|
|
403
|
-
```bash
|
|
404
|
-
# Iniciar servidor
|
|
405
|
-
mahoraga serve --port 3100
|
|
406
|
-
```
|
|
407
|
-
|
|
408
|
-
**Base URL:** `http://localhost:3100/api/v1`
|
|
409
|
-
**Swagger UI:** `http://localhost:3100/api/docs`
|
|
410
|
-
|
|
411
|
-
### Endpoints
|
|
412
|
-
|
|
413
|
-
| Endpoint | Método | Descrição |
|
|
414
|
-
|----------|--------|-----------|
|
|
415
|
-
| `/api/health` | GET | Health check |
|
|
416
|
-
| `/api/v1/analistas` | GET | Listar analistas |
|
|
417
|
-
| `/api/v1/analistas/stats` | GET | Estatísticas |
|
|
418
|
-
| `/api/v1/diagnosticar` | POST | Executar diagnóstico |
|
|
419
|
-
| `/api/v1/diagnosticar/jobs` | GET | Listar jobs |
|
|
420
|
-
| `/api/v1/diagnosticar/jobs/:id` | GET | Status do job |
|
|
421
|
-
| `/api/v1/guardian` | GET | Status do Guardian |
|
|
422
|
-
| `/api/v1/guardian/baseline` | POST | Criar baseline |
|
|
423
|
-
| `/api/v1/guardian/diff` | GET | Comparar baseline |
|
|
424
|
-
| `/api/v1/metricas` | GET | Métricas históricas |
|
|
425
|
-
|
|
426
|
-
### Exemplo
|
|
427
|
-
|
|
428
|
-
```bash
|
|
429
|
-
# Diagnóstico assíncrono
|
|
430
|
-
curl -X POST http://localhost:3100/api/v1/diagnosticar \
|
|
431
|
-
-H "Content-Type: application/json" \
|
|
432
|
-
-d '{"async": true, "fast": true}'
|
|
433
|
-
```
|
|
434
|
-
|
|
435
|
-
> [BOOK] [Documentação da API →](./docs/api/REST-API.md)
|
|
436
|
-
|
|
437
|
-
---
|
|
438
|
-
|
|
439
|
-
## SDK Programático
|
|
440
|
-
|
|
441
|
-
Use o Mahoraga como biblioteca no seu código:
|
|
442
|
-
|
|
443
|
-
```bash
|
|
444
|
-
npm install mahoraga
|
|
445
|
-
```
|
|
446
|
-
|
|
447
|
-
```typescript
|
|
448
|
-
import { analyzeFile, analyzeProject } from 'mahoraga/sdk'
|
|
449
|
-
|
|
450
|
-
// Analisar um arquivo
|
|
451
|
-
const result = await analyzeFile('/caminho/arquivo.ts', conteudo)
|
|
452
|
-
|
|
453
|
-
// Analisar projeto inteiro
|
|
454
|
-
const projeto = await analyzeProject('/caminho/projeto')
|
|
455
|
-
```
|
|
456
|
-
|
|
457
|
-
```typescript
|
|
458
|
-
import { MahoragaSDK } from 'mahoraga/sdk'
|
|
459
|
-
|
|
460
|
-
const sdk = new MahoragaSDK()
|
|
461
|
-
await sdk.analisarGithubActions('./.github/workflows')
|
|
462
|
-
sdk.registrarDetector('meu-detector', meuDetector)
|
|
463
|
-
```
|
|
464
|
-
|
|
465
|
-
**Subpath exports:**
|
|
466
|
-
|
|
467
|
-
| Import Path | Descrição |
|
|
468
|
-
|-------------|-----------|
|
|
469
|
-
| `mahoraga` | Entry principal |
|
|
470
|
-
| `mahoraga/sdk` | SDK programático |
|
|
471
|
-
| `mahoraga/api` | REST API server |
|
|
472
|
-
| `mahoraga/types` | Typescript types |
|
|
473
|
-
| `mahoraga/bin` | CLI binary |
|
|
249
|
+
| `MAHORAGA_DEBUG` | Modo debug | não definido |
|
|
250
|
+
| `MAHORAGA_STATE_DIR` | Diretório de estado | `.mahoraga` |
|
|
251
|
+
| `MAHORAGA_API_PORT` | Porta do GitHub App | `3100` |
|
|
252
|
+
| `GITHUB_APP_ID` | ID do GitHub App | não definido |
|
|
253
|
+
| `GITHUB_PRIVATE_KEY` | Chave RSA do GitHub App | não definido |
|
|
254
|
+
| `GITHUB_WEBHOOK_SECRET` | Webhook secret | não definido |
|
|
474
255
|
|
|
475
256
|
---
|
|
476
257
|
|
|
477
|
-
##
|
|
478
|
-
|
|
479
|
-
O Mahoraga pode operar como um **GitHub App** que analisa automaticamente workflows do GitHub Actions em PRs, pushes e issues.
|
|
480
|
-
|
|
481
|
-
### Funcionalidades
|
|
482
|
-
|
|
483
|
-
- **Análise automática** de workflows em PRs e pushes
|
|
484
|
-
- **Score de qualidade** 0-100 para cada workflow
|
|
485
|
-
- **Detecção** de script injection, secrets hardcoded, permissões excessivas
|
|
486
|
-
- **Comentários automáticos** em PRs e issues
|
|
487
|
-
- **Check runs** com annotations no código
|
|
488
|
-
- **Análise sob demanda** via `@mahoraga analyze` em reviews
|
|
489
|
-
- **Scan sob demanda** via `@mahoraga scan` em issues
|
|
490
|
-
|
|
491
|
-
### Eventos Suportados
|
|
492
|
-
|
|
493
|
-
| Evento | Comportamento |
|
|
494
|
-
|--------|---------------|
|
|
495
|
-
| Check Suite | Cria check run com análise completa |
|
|
496
|
-
| Pull Request | Posta comentário detalhado |
|
|
497
|
-
| Push | Análise silenciosa |
|
|
498
|
-
| Review | Responde a `@mahoraga analyze` |
|
|
499
|
-
| Issues | Responde a `@mahoraga scan` |
|
|
500
|
-
|
|
501
|
-
### Comandos
|
|
258
|
+
## Scripts
|
|
502
259
|
|
|
503
260
|
```bash
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
> [BOOK] [Guia do GitHub App →](./docs/guias/GITHUB-APP.md)
|
|
511
|
-
|
|
512
|
-
---
|
|
513
|
-
|
|
514
|
-
## Editor (LSP / VSCode)
|
|
515
|
-
|
|
516
|
-
### LSP Server
|
|
517
|
-
|
|
518
|
-
```bash
|
|
519
|
-
mahoraga lsp
|
|
520
|
-
```
|
|
521
|
-
|
|
522
|
-
Suporta `textDocument/didOpen`, `didChange`, `didSave` para diagnóstico em tempo real.
|
|
523
|
-
|
|
524
|
-
### VSCode Extension
|
|
525
|
-
|
|
526
|
-
Uma extensão VSCode está disponível em `extensions/vscode/` com:
|
|
527
|
-
- Análise ao salvar (`mahoraga.runOnSave`)
|
|
528
|
-
- Análise ao abrir (`mahoraga.runOnOpen`)
|
|
529
|
-
- Painel de resultados
|
|
530
|
-
- Comandos: Analyze File, Analyze Project, Show Panel, Clear Diagnostics
|
|
531
|
-
|
|
532
|
-
> [BOOK] [Guia VSCode →](./docs/guias/GUIA-VSCODE.md)
|
|
533
|
-
|
|
534
|
-
---
|
|
535
|
-
|
|
536
|
-
## CI/CD
|
|
537
|
-
|
|
538
|
-
O Mahoraga analisa pipelines de CI/CD para detectar problemas de segurança, performance e boas práticas.
|
|
539
|
-
|
|
540
|
-
| Plataforma | Comando |
|
|
541
|
-
|------------|---------|
|
|
542
|
-
| GitHub Actions | `mahoraga github-actions scan` |
|
|
543
|
-
| GitLab CI | `mahoraga gitlab-ci scan` |
|
|
544
|
-
| CircleCI | `mahoraga circleci scan` |
|
|
545
|
-
| Jenkins | `mahoraga jenkins scan` |
|
|
546
|
-
| Azure Pipelines | `mahoraga azure scan` |
|
|
547
|
-
|
|
548
|
-
```bash
|
|
549
|
-
# Quality gate para CI (falha se score < 80)
|
|
550
|
-
mahoraga github-actions gate --threshold 80 --fail-on erro
|
|
261
|
+
npm run build # compilar TypeScript (tsc nativo)
|
|
262
|
+
npm run typecheck # verificar tipos
|
|
263
|
+
npm run test # testes (Vitest)
|
|
264
|
+
npm run coverage # cobertura de testes
|
|
265
|
+
npm run diagnosticar # auto-análise
|
|
266
|
+
npm run lint # ESLint
|
|
551
267
|
```
|
|
552
268
|
|
|
553
269
|
---
|
|
554
270
|
|
|
555
271
|
## Linguagens Suportadas
|
|
556
272
|
|
|
557
|
-
| Linguagem | Parser |
|
|
558
|
-
|
|
273
|
+
| Linguagem | Parser | Suporte |
|
|
274
|
+
|-----------|--------|---------|
|
|
559
275
|
| JavaScript | Babel | Nativo |
|
|
560
276
|
| TypeScript | Babel | Nativo |
|
|
561
277
|
| HTML | htmlparser2 | Nativo |
|
|
562
|
-
| CSS |
|
|
278
|
+
| CSS | postcss | Nativo |
|
|
563
279
|
| XML | fast-xml-parser | Nativo |
|
|
564
280
|
| Python | Heurístico | Nativo |
|
|
565
281
|
| PHP | Heurístico | Nativo |
|
|
566
|
-
| Shell | Heurístico |
|
|
567
|
-
| SQL | Heurístico |
|
|
568
|
-
| Go | Heurístico | Nativo
|
|
569
|
-
| Rust | Heurístico | Nativo
|
|
282
|
+
| Shell | Heurístico | Nativo |
|
|
283
|
+
| SQL | Heurístico | Nativo |
|
|
284
|
+
| Go | Heurístico | Nativo |
|
|
285
|
+
| Rust | Heurístico | Nativo |
|
|
570
286
|
| Java | java-parser | Disponível |
|
|
571
287
|
| Kotlin | Heurístico | Disponível |
|
|
572
288
|
|
|
573
289
|
---
|
|
574
290
|
|
|
575
|
-
##
|
|
576
|
-
|
|
577
|
-
### Guias
|
|
578
|
-
|
|
579
|
-
- [Guia de Início Rápido](./docs/guias/GUIA-INICIO-RAPIDO.md) — tutorial de 10 minutos
|
|
580
|
-
- [Guia de Configuração](./docs/guias/GUIA-CONFIGURACAO.md) — personalizar setup
|
|
581
|
-
- [Guia de Comandos](./docs/guias/GUIA-COMANDOS.md) — referência completa
|
|
582
|
-
- [Guia Marketplace](./docs/guias/GUIA-MARKETPLACE.md) — analistas comunitários
|
|
583
|
-
- [Guia VSCode](./docs/guias/GUIA-VSCODE.md) — extensão VSCode
|
|
584
|
-
- [Guia Compliance](./docs/guias/GUIA-COMPLIANCE.md) — ISO 27001, SOC 2
|
|
585
|
-
- [Guia Formatters](./docs/guias/GUIA-FORMATTERS.md) — plugins de saída
|
|
586
|
-
|
|
587
|
-
### Arquitetura
|
|
291
|
+
## Qualidade
|
|
588
292
|
|
|
589
|
-
-
|
|
590
|
-
-
|
|
591
|
-
-
|
|
592
|
-
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
- [Criar Analistas](./docs/desenvolvimento/analistas/CRIAR-ANALISTA.md) — guia de 6 passos
|
|
597
|
-
- [Estrutura do Código](./docs/desenvolvimento/estrutura-codigo/README.md) — mapa do src/
|
|
598
|
-
- [Padrões de Desenvolvimento](./docs/desenvolvimento/PADROES.md) — convenções
|
|
599
|
-
- [Sistema de Plugins](./docs/desenvolvimento/SISTEMA-PLUGINS.md) — como estender
|
|
600
|
-
|
|
601
|
-
### Referência
|
|
602
|
-
|
|
603
|
-
- [REST API](./docs/api/REST-API.md) — documentação da API v1
|
|
604
|
-
- [Exemplos de Uso](./docs/exemplos/EXEMPLOS-USO.md) — casos reais e CI/CD
|
|
605
|
-
- [Roadmap](./docs/roadmap/ROADMAP.md) — futuro do projeto
|
|
606
|
-
- [Índice Completo](./docs/INDICE.md) — navegação por tópico
|
|
607
|
-
|
|
608
|
-
---
|
|
609
|
-
|
|
610
|
-
### Scripts
|
|
611
|
-
|
|
612
|
-
```bash
|
|
613
|
-
npm run build # compilar TypeScript
|
|
614
|
-
npm run typecheck # verificar tipos
|
|
615
|
-
npm run lint # ESLint
|
|
616
|
-
npm run test # testes (Vitest)
|
|
617
|
-
npm run coverage # cobertura de testes
|
|
618
|
-
npm run start # executar Mahoraga
|
|
619
|
-
npm run diagnosticar # auto-análise
|
|
620
|
-
```
|
|
621
|
-
|
|
622
|
-
### Qualidade
|
|
623
|
-
|
|
624
|
-
- TypeScript 6.0+ — type-safe, sem `any` desnecessários
|
|
625
|
-
- Testes com Vitest — cobertura target > 90%
|
|
626
|
-
- ESLint 9.x — configuração strict
|
|
627
|
-
- Worker Pool — processamento paralelo
|
|
628
|
-
- Schema Versioning — relatórios versionados
|
|
629
|
-
- i18n — PT, EN, ZH, JA
|
|
630
|
-
- CodeQL — segurança auditada
|
|
631
|
-
|
|
632
|
-
### Padrões
|
|
633
|
-
|
|
634
|
-
- TypeScript type-safe (sem `any` ou `unknown` sem necessidade)
|
|
635
|
-
- Nomes descritivos em camelCase/PascalCase
|
|
636
|
-
- Testes com cobertura > 90%
|
|
637
|
-
- Sem `console.log` em produção (use sistema de mensagens)
|
|
638
|
-
- Imports organizados e ordenados
|
|
639
|
-
- Padrões arquiteturais (Registry, Strategy, Singleton)
|
|
293
|
+
- TypeScript 7.0+ (compilador nativo Go/Corsa): type-safe
|
|
294
|
+
- Testes com Vitest: cobertura target > 90%
|
|
295
|
+
- ESLint 10.x: configuração strict
|
|
296
|
+
- Worker pool: processamento paralelo
|
|
297
|
+
- i18n: PT, EN, ZH, JA
|
|
298
|
+
- Schema versioning: relatórios versionados
|
|
640
299
|
|
|
641
300
|
---
|
|
642
301
|
|
|
643
302
|
## Contribuir
|
|
644
303
|
|
|
645
|
-
|
|
646
|
-
2. Fork o repositório
|
|
647
|
-
3. Crie branch: `git checkout -b feature/sua-feature`
|
|
648
|
-
4. Commit: `git commit -m 'Add: sua feature'`
|
|
649
|
-
5. Push: `git push origin feature/sua-feature`
|
|
650
|
-
6. Abra Pull Request
|
|
304
|
+
Contribuições são bem-vindas! Como o projeto não está mais no GitHub:
|
|
651
305
|
|
|
652
|
-
|
|
306
|
+
1. Entre em contato pelo e-mail: **mocoto.persona@gmail.com**
|
|
307
|
+
2. Envie patches ou sugestões por e-mail
|
|
308
|
+
3. Reporte bugs com descrição detalhada e exemplo mínimo
|
|
653
309
|
|
|
654
|
-
|
|
655
|
-
- **Novas features** — analistas, comandos, plugins
|
|
656
|
-
- **Documentação** — guias, exemplos
|
|
657
|
-
- **Testes** — aumentar cobertura
|
|
658
|
-
- **Analisadores** — criar detectores e plugins
|
|
310
|
+
### Áreas para Contribuir
|
|
659
311
|
|
|
660
|
-
|
|
312
|
+
- **Bug fixes**: reportar e corrigir bugs
|
|
313
|
+
- **Novas features**: analistas, comandos, plugins
|
|
314
|
+
- **Documentação**: guias, exemplos
|
|
315
|
+
- **Testes**: aumentar cobertura
|
|
316
|
+
- **Analisadores**: criar detectores e plugins
|
|
661
317
|
|
|
662
318
|
---
|
|
663
319
|
|
|
@@ -674,5 +330,3 @@ Dependências de terceiros listadas em [THIRD-PARTY-NOTICES.txt](./THIRD-PARTY-N
|
|
|
674
330
|
---
|
|
675
331
|
|
|
676
332
|
**Feito para os iniciantes**
|
|
677
|
-
|
|
678
|
-
</div>
|