@mocoto/mahoraga 0.14.6 → 0.14.7
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 +170 -508
- package/dist/analysts/css/analysts/analyst-css.js +10 -1
- package/dist/analysts/detectors/detector-bugs-ml.js +81 -19
- 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/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/zh/core/formatters-messages.js +1 -0
- package/dist/core/parsing/langs/typescript.js +27 -7
- package/dist/core/utils/exec-safe.js +47 -25
- package/package.json +10 -17
package/README.md
CHANGED
|
@@ -1,135 +1,156 @@
|
|
|
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
|
-
|
|
11
|
+
> Este projeto não está mais no GitHub. Publicado exclusivamente no npm como `@mocoto/mahoraga`.
|
|
12
12
|
|
|
13
|
-
<p>
|
|
13
|
+
<p> Desisti de desistir do projeto, até parece que vou aceitar perder pra vocês 🤪 </p>
|
|
14
|
+
<p> 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</p>
|
|
14
15
|
|
|
15
16
|
[Gmail](mailto:mocoto.persona@gmail.com)
|
|
16
17
|
|
|
17
|
-
|
|
18
|
+
---
|
|
18
19
|
|
|
19
20
|
## Começar Rápido (30 segundos)
|
|
20
21
|
|
|
21
22
|
```bash
|
|
22
|
-
# 1. Instalar
|
|
23
|
+
# 1. Instalar globalmente
|
|
23
24
|
npm install -g @mocoto/mahoraga
|
|
24
25
|
|
|
25
26
|
# 2. Analisar seu projeto
|
|
26
27
|
cd meu-projeto
|
|
27
28
|
mahoraga diagnosticar
|
|
28
29
|
|
|
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
|
|
30
|
+
# 3. Ver análise completa
|
|
31
|
+
mahoraga diagnosticar --full
|
|
47
32
|
|
|
48
|
-
#
|
|
49
|
-
mahoraga
|
|
33
|
+
# 4. Exportar relatório em JSON
|
|
34
|
+
mahoraga diagnosticar --json > relatorio.json
|
|
50
35
|
```
|
|
51
36
|
|
|
52
37
|
---
|
|
53
38
|
|
|
54
|
-
##
|
|
55
|
-
|
|
56
|
-
O Mahoraga foi projetado para guiar você por um fluxo completo de análise e manutenção do seu projeto:
|
|
39
|
+
## Comandos da CLI
|
|
57
40
|
|
|
58
|
-
###
|
|
41
|
+
### Comandos Principais
|
|
59
42
|
|
|
60
|
-
|
|
43
|
+
| Comando | Descrição | Exemplo |
|
|
44
|
+
|---------|-----------|---------|
|
|
45
|
+
| `diagnosticar` (ou `diag`) | Análise completa do projeto | `mahoraga diagnosticar --full` |
|
|
46
|
+
| `guardian` | Monitoramento de integridade com GPG | `mahoraga guardian --accept-baseline` |
|
|
47
|
+
| `fix-types` | Corrigir tipos inseguros (`any`/`unknown`) | `mahoraga fix-types --target src` |
|
|
48
|
+
| `formatar` | Formatação automática de código | `mahoraga formatar --write` |
|
|
49
|
+
| `podar` | Remover arquivos órfãos e código morto | `mahoraga podar` |
|
|
50
|
+
| `names` | Extração e renomeação em massa de variáveis | `mahoraga names --scan` |
|
|
51
|
+
| `imports` | Gerenciar aliases de import (`@/`) | `mahoraga imports --scan` |
|
|
52
|
+
| `barrels` | Gerenciar barrels (`index.ts`) | `mahoraga barrels --generate` |
|
|
53
|
+
| `analistas` | Listar analistas e detectores disponíveis | `mahoraga analistas --json` |
|
|
54
|
+
| `metricas` | Ver métricas de execução | `mahoraga metricas --analistas` |
|
|
55
|
+
| `perf` | Snapshots e comparação de performance | `mahoraga perf baseline` |
|
|
56
|
+
| `atualizar` | Auto-update do Mahoraga | `mahoraga atualizar --global` |
|
|
57
|
+
| `convert` (ou `conv`) | Converter CI/CD templates | `mahoraga convert --from github --to gitlab` |
|
|
58
|
+
| `reverter` | Reverter movimentações de arquivos | `mahoraga reverter listar` |
|
|
59
|
+
| `compliance` | Relatórios de compliance | `mahoraga compliance report iso-27001` |
|
|
60
|
+
|
|
61
|
+
### Diagnóstico
|
|
61
62
|
|
|
62
63
|
```bash
|
|
63
|
-
#
|
|
64
|
-
mahoraga diagnosticar
|
|
65
|
-
|
|
66
|
-
#
|
|
67
|
-
mahoraga diagnosticar --
|
|
68
|
-
|
|
69
|
-
#
|
|
70
|
-
mahoraga diagnosticar --
|
|
71
|
-
|
|
72
|
-
#
|
|
73
|
-
mahoraga diagnosticar --
|
|
74
|
-
mahoraga diagnosticar --
|
|
64
|
+
mahoraga diagnosticar # análise padrão
|
|
65
|
+
mahoraga diagnosticar --full # análise completa
|
|
66
|
+
mahoraga diagnosticar --fast # modo rápido
|
|
67
|
+
mahoraga diagnosticar --compact # saída compacta
|
|
68
|
+
mahoraga diagnosticar --json # saída JSON
|
|
69
|
+
mahoraga diagnosticar --detalhado # saída detalhada
|
|
70
|
+
mahoraga diagnosticar --executive # relatório executivo
|
|
71
|
+
mahoraga diagnosticar --monorepo # análise de monorepo
|
|
72
|
+
mahoraga diagnosticar --guardian-check # verificar Guardian junto
|
|
73
|
+
mahoraga diagnosticar --stream # streaming para projetos grandes
|
|
74
|
+
mahoraga diagnosticar --verbose # log detalhado
|
|
75
|
+
mahoraga diagnosticar --debug # modo debug
|
|
76
|
+
mahoraga diagnosticar --include "src/**" --exclude "**/*.test.ts"
|
|
77
|
+
mahoraga diagnosticar --path ./frontend --path ./backend
|
|
78
|
+
mahoraga diagnosticar --auto-fix # corrigir automaticamente
|
|
75
79
|
```
|
|
76
80
|
|
|
77
|
-
###
|
|
81
|
+
### Guardian (Integridade com GPG)
|
|
78
82
|
|
|
79
|
-
|
|
83
|
+
O Guardian utiliza **assinatura GPG (Ed25519)** em vez de hashes convencionais para garantir a integridade dos arquivos.
|
|
80
84
|
|
|
81
85
|
```bash
|
|
82
|
-
mahoraga guardian
|
|
86
|
+
mahoraga guardian # verificar integridade
|
|
87
|
+
mahoraga guardian --accept-baseline # aceitar estado atual como baseline
|
|
88
|
+
mahoraga guardian --diff # mostrar diferenças
|
|
89
|
+
mahoraga guardian --full-scan # scan completo
|
|
90
|
+
mahoraga guardian --json # saída JSON estruturada
|
|
83
91
|
```
|
|
84
92
|
|
|
85
|
-
###
|
|
86
|
-
|
|
87
|
-
Aplique correções automáticas com segurança:
|
|
93
|
+
### CI/CD
|
|
88
94
|
|
|
89
95
|
```bash
|
|
90
|
-
|
|
91
|
-
mahoraga
|
|
92
|
-
|
|
93
|
-
#
|
|
94
|
-
mahoraga
|
|
95
|
-
|
|
96
|
-
#
|
|
97
|
-
mahoraga
|
|
96
|
+
mahoraga github-actions scan # GitHub Actions
|
|
97
|
+
mahoraga github-actions gate --threshold 80 # quality gate
|
|
98
|
+
mahoraga github-actions app --port 3000 # servidor GitHub App
|
|
99
|
+
mahoraga gitlab-ci scan # GitLab CI
|
|
100
|
+
mahoraga circleci scan # CircleCI
|
|
101
|
+
mahoraga jenkins scan # Jenkins
|
|
102
|
+
mahoraga azure scan # Azure Pipelines
|
|
103
|
+
mahoraga convert --from github --to gitlab # converter templates
|
|
98
104
|
```
|
|
99
105
|
|
|
100
|
-
###
|
|
101
|
-
|
|
102
|
-
Revise sugestões estruturais e organize os barrels do projeto:
|
|
106
|
+
### Licenças e Compliance
|
|
103
107
|
|
|
104
108
|
```bash
|
|
105
|
-
#
|
|
106
|
-
mahoraga
|
|
109
|
+
mahoraga licencas scan # scan de dependências
|
|
110
|
+
mahoraga licencas notices generate # gerar THIRD-PARTY-NOTICES
|
|
111
|
+
mahoraga licencas disclaimer add # adicionar disclaimer
|
|
112
|
+
mahoraga licencas disclaimer verify # verificar disclaimers
|
|
113
|
+
mahoraga compliance report iso-27001 # relatório ISO 27001
|
|
114
|
+
mahoraga compliance report soc2 --json # relatório SOC 2
|
|
115
|
+
```
|
|
107
116
|
|
|
108
|
-
|
|
109
|
-
mahoraga barrels --scan # preview do que será criado
|
|
110
|
-
mahoraga barrels --generate # criar/atualizar barrels
|
|
117
|
+
### Manutenção
|
|
111
118
|
|
|
112
|
-
|
|
113
|
-
mahoraga
|
|
119
|
+
```bash
|
|
120
|
+
mahoraga fix-types --target src # corrigir tipos inseguros
|
|
121
|
+
mahoraga fix-types --dry-run # simular correção
|
|
122
|
+
mahoraga fix-types --interactive # modo interativo
|
|
123
|
+
mahoraga formatar --write # formatar código
|
|
124
|
+
mahoraga formatar --check # apenas verificar
|
|
125
|
+
mahoraga podar # remover arquivos órfãos
|
|
126
|
+
mahoraga names --scan # extrair nomes de variáveis
|
|
127
|
+
mahoraga names --apply # aplicar renomeações
|
|
128
|
+
mahoraga reverter listar # listar reversões disponíveis
|
|
129
|
+
mahoraga reverter move <id> # reverter movimento específico
|
|
114
130
|
```
|
|
115
131
|
|
|
116
|
-
###
|
|
117
|
-
|
|
118
|
-
Mantenha a saúde do projeto ao longo do tempo:
|
|
132
|
+
### Plugins e Marketplace
|
|
119
133
|
|
|
120
134
|
```bash
|
|
121
|
-
#
|
|
122
|
-
mahoraga
|
|
123
|
-
|
|
124
|
-
#
|
|
125
|
-
mahoraga
|
|
135
|
+
mahoraga plugins list # listar plugins instalados
|
|
136
|
+
mahoraga plugins install <pacote> # instalar plugin
|
|
137
|
+
mahoraga plugins remove <pacote> # remover plugin
|
|
138
|
+
mahoraga marketplace search <termo> # buscar analistas
|
|
139
|
+
mahoraga marketplace install <nome> # instalar do marketplace
|
|
140
|
+
mahoraga marketplace list # listar instalados
|
|
141
|
+
```
|
|
126
142
|
|
|
127
|
-
|
|
128
|
-
mahoraga perf snapshot --baseline
|
|
129
|
-
mahoraga perf compare
|
|
143
|
+
### Utilitários
|
|
130
144
|
|
|
131
|
-
|
|
132
|
-
mahoraga
|
|
145
|
+
```bash
|
|
146
|
+
mahoraga otimizar-svg --write # otimizar SVGs
|
|
147
|
+
mahoraga imports --scan # escanear aliases de import
|
|
148
|
+
mahoraga imports --apply # aplicar correções de import
|
|
149
|
+
mahoraga barrels --scan # preview de barrels
|
|
150
|
+
mahoraga barrels --generate # gerar barrels
|
|
151
|
+
mahoraga metricas --json # métricas em JSON
|
|
152
|
+
mahoraga vulnerabilidades scan # scan de vulnerabilidades
|
|
153
|
+
mahoraga atualizar --global # auto-update
|
|
133
154
|
```
|
|
134
155
|
|
|
135
156
|
---
|
|
@@ -138,48 +159,44 @@ mahoraga metricas
|
|
|
138
159
|
|
|
139
160
|
### Análise Inteligente
|
|
140
161
|
|
|
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
|
|
162
|
+
- **Diagnóstico completo**: qualidade, segurança e arquitetura
|
|
163
|
+
- **15+ detectores especializados**: código frágil, duplicação, complexidade, performance, vazamentos de memória, tipos inseguros
|
|
164
|
+
- **18+ plugins multi-linguagem**: React, CSS, HTML, Python, Shell, SQL, Tailwind, XML, SVG
|
|
165
|
+
- **Detecção de bugs via ML**: 8 padrões com pontuação Bayesiana
|
|
166
|
+
- **Registro inteligente**: descoberta automática de analistas built-in e customizados
|
|
167
|
+
- **Análise de monorepos**: pnpm-workspace, lerna, nx, turbo
|
|
147
168
|
|
|
148
169
|
### Manutenção Assistida
|
|
149
170
|
|
|
150
|
-
- **
|
|
151
|
-
- **
|
|
152
|
-
- **
|
|
153
|
-
- **
|
|
154
|
-
- **
|
|
155
|
-
- **
|
|
156
|
-
- **
|
|
157
|
-
- **Reverter** — rollback de movimentações aplicadas
|
|
171
|
+
- **Guardian**: monitoramento contínuo com assinatura GPG (Ed25519), baselines criptográficos e verificação de integridade
|
|
172
|
+
- **Fix Types**: correção automática de `any` e `unknown`
|
|
173
|
+
- **Poda inteligente**: identificação e remoção de arquivos órfãos e código morto
|
|
174
|
+
- **Formatação**: formatação automática do código
|
|
175
|
+
- **Names/Rename**: extração e renomeação em massa de variáveis
|
|
176
|
+
- **Reverter**: rollback de movimentações aplicadas
|
|
177
|
+
- **Imports**: gerenciamento de aliases de import
|
|
158
178
|
|
|
159
179
|
### Relatórios Profissionais
|
|
160
180
|
|
|
161
|
-
- **Múltiplos formatos
|
|
162
|
-
- **Métricas detalhadas
|
|
163
|
-
- **Baseline de performance
|
|
164
|
-
- **Scan de licenças
|
|
165
|
-
- **Relatórios de compliance
|
|
166
|
-
- **Streaming
|
|
181
|
+
- **Múltiplos formatos**: JSON, Markdown
|
|
182
|
+
- **Métricas detalhadas**: complexidade ciclomática, duplicação, cobertura, performance com histórico
|
|
183
|
+
- **Baseline de performance**: snapshots e comparação ao longo do tempo
|
|
184
|
+
- **Scan de licenças**: verificação de dependências e geração de THIRD-PARTY-NOTICES
|
|
185
|
+
- **Relatórios de compliance**: ISO 27001, SOC 2
|
|
186
|
+
- **Streaming**: NDJSON para projetos grandes
|
|
167
187
|
|
|
168
|
-
###
|
|
188
|
+
### Integrações CI/CD
|
|
169
189
|
|
|
170
|
-
- **
|
|
171
|
-
- **
|
|
172
|
-
- **
|
|
173
|
-
- **
|
|
174
|
-
- **Marketplace** — analistas comunitários
|
|
190
|
+
- **GitHub Actions**: scan de workflows, score 0-100, check runs, quality gate
|
|
191
|
+
- **GitHub App**: análise automática em PRs e pushes
|
|
192
|
+
- **GitLab CI / CircleCI / Jenkins / Azure Pipelines**: análise de pipelines
|
|
193
|
+
- **Conversão** entre plataformas de CI/CD
|
|
175
194
|
|
|
176
|
-
###
|
|
195
|
+
### Extensível
|
|
177
196
|
|
|
178
|
-
- **
|
|
179
|
-
- **
|
|
180
|
-
- **
|
|
181
|
-
- **LSP** — diagnóstico em tempo real para editores
|
|
182
|
-
- **VSCode Extension** — análise ao salvar/abrir arquivos
|
|
197
|
+
- **Plugin system**: crie analistas customizados com autodiscovery
|
|
198
|
+
- **API modular**: use como biblioteca (`@mocoto/mahoraga`)
|
|
199
|
+
- **Marketplace**: analistas comunitários
|
|
183
200
|
|
|
184
201
|
---
|
|
185
202
|
|
|
@@ -199,27 +216,19 @@ npm install --save-dev @mocoto/mahoraga
|
|
|
199
216
|
npx mahoraga --help
|
|
200
217
|
```
|
|
201
218
|
|
|
202
|
-
|
|
203
|
-
### Docker
|
|
204
|
-
|
|
205
|
-
```bash
|
|
206
|
-
docker build -t mahoraga .
|
|
207
|
-
docker run --rm -v $(pwd):/project mahoraga diagnosticar
|
|
208
|
-
```
|
|
209
|
-
|
|
210
219
|
### Verificar Instalação
|
|
211
220
|
|
|
212
221
|
```bash
|
|
213
|
-
mahoraga --version
|
|
214
|
-
mahoraga --help
|
|
215
|
-
mahoraga analistas --
|
|
222
|
+
mahoraga --version # v0.14.6
|
|
223
|
+
mahoraga --help # lista todos os comandos
|
|
224
|
+
mahoraga analistas --json # analistas disponíveis
|
|
216
225
|
```
|
|
217
226
|
|
|
218
227
|
---
|
|
219
228
|
|
|
220
229
|
## Configuração
|
|
221
230
|
|
|
222
|
-
O Mahoraga lê um arquivo `mahoraga.config.json` na raiz do seu projeto
|
|
231
|
+
O Mahoraga lê um arquivo `mahoraga.config.json` na raiz do seu projeto (ou variáveis de ambiente).
|
|
223
232
|
|
|
224
233
|
### Configuração Mínima
|
|
225
234
|
|
|
@@ -237,325 +246,38 @@ O Mahoraga lê um arquivo `mahoraga.config.json` na raiz do seu projeto. Se não
|
|
|
237
246
|
}
|
|
238
247
|
```
|
|
239
248
|
|
|
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
249
|
### Variáveis de Ambiente
|
|
262
250
|
|
|
263
251
|
| Variável | Descrição | Padrão |
|
|
264
252
|
|----------|-----------|--------|
|
|
265
|
-
| `SUKUNA_API_PORT` | Porta da API | `3100` |
|
|
266
|
-
| `SUKUNA_API_CORS_ORIGINS` | Origens CORS | `localhost: 00` |
|
|
267
253
|
| `LOG_LEVEL` | Nível de log | `info` |
|
|
268
254
|
| `LOG_ESTRUTURADO` | Logs em JSON | `false` |
|
|
269
|
-
| `SUKUNA_DEBUG` | Modo debug |
|
|
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 |
|
|
474
|
-
|
|
475
|
-
---
|
|
476
|
-
|
|
477
|
-
## GitHub App
|
|
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
|
|
502
|
-
|
|
503
|
-
```bash
|
|
504
|
-
mahoraga github-actions scan # scan local
|
|
505
|
-
mahoraga github-actions report --format html # relatório
|
|
506
|
-
mahoraga github-actions gate --threshold 80 # quality gate
|
|
507
|
-
mahoraga github-actions app --port 3000 # iniciar servidor
|
|
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)
|
|
255
|
+
| `SUKUNA_DEBUG` | Modo debug | não definido |
|
|
256
|
+
| `SUKUNA_STATE_DIR` | Diretório de estado | `.mahoraga` |
|
|
257
|
+
| `SUKUNA_API_PORT` | Porta do GitHub App | `3100` |
|
|
258
|
+
| `GITHUB_APP_ID` | ID do GitHub App | não definido |
|
|
259
|
+
| `GITHUB_PRIVATE_KEY` | Chave RSA do GitHub App | não definido |
|
|
260
|
+
| `GITHUB_WEBHOOK_SECRET` | Webhook secret | não definido |
|
|
533
261
|
|
|
534
262
|
---
|
|
535
263
|
|
|
536
|
-
##
|
|
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` |
|
|
264
|
+
## Scripts
|
|
547
265
|
|
|
548
266
|
```bash
|
|
549
|
-
|
|
550
|
-
|
|
267
|
+
npm run build # compilar TypeScript (tsc nativo)
|
|
268
|
+
npm run typecheck # verificar tipos
|
|
269
|
+
npm run test # testes (Vitest)
|
|
270
|
+
npm run coverage # cobertura de testes
|
|
271
|
+
npm run diagnosticar # auto-análise
|
|
272
|
+
npm run lint # ESLint
|
|
551
273
|
```
|
|
552
274
|
|
|
553
275
|
---
|
|
554
276
|
|
|
555
277
|
## Linguagens Suportadas
|
|
556
278
|
|
|
557
|
-
| Linguagem | Parser |
|
|
558
|
-
|
|
279
|
+
| Linguagem | Parser | Suporte |
|
|
280
|
+
|-----------|--------|---------|
|
|
559
281
|
| JavaScript | Babel | Nativo |
|
|
560
282
|
| TypeScript | Babel | Nativo |
|
|
561
283
|
| HTML | htmlparser2 | Nativo |
|
|
@@ -563,101 +285,41 @@ mahoraga github-actions gate --threshold 80 --fail-on erro
|
|
|
563
285
|
| XML | fast-xml-parser | Nativo |
|
|
564
286
|
| Python | Heurístico | Nativo |
|
|
565
287
|
| PHP | Heurístico | Nativo |
|
|
566
|
-
| Shell | Heurístico |
|
|
567
|
-
| SQL | Heurístico |
|
|
568
|
-
| Go | Heurístico | Nativo
|
|
569
|
-
| Rust | Heurístico | Nativo
|
|
288
|
+
| Shell | Heurístico | Nativo |
|
|
289
|
+
| SQL | Heurístico | Nativo |
|
|
290
|
+
| Go | Heurístico | Nativo |
|
|
291
|
+
| Rust | Heurístico | Nativo |
|
|
570
292
|
| Java | java-parser | Disponível |
|
|
571
293
|
| Kotlin | Heurístico | Disponível |
|
|
572
294
|
|
|
573
295
|
---
|
|
574
296
|
|
|
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
|
|
297
|
+
## Qualidade
|
|
586
298
|
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
-
|
|
590
|
-
-
|
|
591
|
-
-
|
|
592
|
-
-
|
|
593
|
-
|
|
594
|
-
### Desenvolvimento
|
|
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)
|
|
299
|
+
- TypeScript 7.0+ (compilador nativo Go/Corsa): type-safe
|
|
300
|
+
- Testes com Vitest: cobertura target > 90%
|
|
301
|
+
- ESLint 10.x: configuração strict
|
|
302
|
+
- Worker pool: processamento paralelo
|
|
303
|
+
- i18n: PT, EN, ZH, JA
|
|
304
|
+
- Schema versioning: relatórios versionados
|
|
640
305
|
|
|
641
306
|
---
|
|
642
307
|
|
|
643
308
|
## Contribuir
|
|
644
309
|
|
|
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
|
|
310
|
+
Contribuições são bem-vindas! Como o projeto não está mais no GitHub:
|
|
651
311
|
|
|
652
|
-
|
|
312
|
+
1. Entre em contato pelo e-mail: **mocoto.persona@gmail.com**
|
|
313
|
+
2. Envie patches ou sugestões por e-mail
|
|
314
|
+
3. Reporte bugs com descrição detalhada e exemplo mínimo
|
|
653
315
|
|
|
654
|
-
|
|
655
|
-
- **Novas features** — analistas, comandos, plugins
|
|
656
|
-
- **Documentação** — guias, exemplos
|
|
657
|
-
- **Testes** — aumentar cobertura
|
|
658
|
-
- **Analisadores** — criar detectores e plugins
|
|
316
|
+
### Áreas para Contribuir
|
|
659
317
|
|
|
660
|
-
|
|
318
|
+
- **Bug fixes**: reportar e corrigir bugs
|
|
319
|
+
- **Novas features**: analistas, comandos, plugins
|
|
320
|
+
- **Documentação**: guias, exemplos
|
|
321
|
+
- **Testes**: aumentar cobertura
|
|
322
|
+
- **Analisadores**: criar detectores e plugins
|
|
661
323
|
|
|
662
324
|
---
|
|
663
325
|
|
|
@@ -675,4 +337,4 @@ Dependências de terceiros listadas em [THIRD-PARTY-NOTICES.txt](./THIRD-PARTY-N
|
|
|
675
337
|
|
|
676
338
|
**Feito para os iniciantes**
|
|
677
339
|
|
|
678
|
-
|
|
340
|
+
**_Estou testando otypescript 7.0.2 Até o momento parece muito bom. o problema é que tive que remover o eslint porque ele nao roda com ts 7, vou esperar eles atualizar e voltar o eslint para o projeto._**
|