{"_id":"o-cartografo","name":"o-cartografo","dist-tags":{"latest":"1.0.0"},"versions":{"1.0.0":{"name":"o-cartografo","version":"1.0.0","description":"🗺️ Ferramenta inteligente para mapear e documentar rotas de APIs Express/Fastify com diagramas Mermaid","main":"dist/index.js","bin":{"o-cartografo":"dist/cli.js"},"scripts":{"build":"tsc","dev":"ts-node src/cli.ts","start":"node dist/cli.js","watch":"nodemon --exec ts-node src/cli.ts","lint":"eslint src/**/*.ts","format":"prettier --write src/**/*.ts","test":"echo \"Error: no test specified\" && exit 1"},"keywords":["cartografo","cartographer","express","fastify","route","rotas","mapping","mapeamento","analyzer","analisador","mermaid","documentation","documentacao","flowchart","diagram","diagrama","ai","openrouter","cli","nodejs","brasil","portuguese"],"author":"","license":"MIT","engines":{"node":">=16.0.0"},"dependencies":{"@types/fs-extra":"^11.0.4","@types/node":"^24.3.1","axios":"^1.11.0","chalk":"^5.6.0","commander":"^14.0.0","dotenv":"^17.2.2","fs-extra":"^11.3.1","typescript":"^5.9.2"},"devDependencies":{"@typescript-eslint/eslint-plugin":"^8.42.0","@typescript-eslint/parser":"^8.42.0","eslint":"^9.34.0","nodemon":"^3.1.10","prettier":"^3.6.2","ts-node":"^10.9.2"},"_id":"o-cartografo@1.0.0","types":"./dist/index.d.ts","_nodeVersion":"22.13.0","_npmVersion":"10.9.2","dist":{"integrity":"sha512-G3lMUMrZp47eVtGXxPYbcjV7jhvej13YznNucVJsSSuilNpZkJlrEU9zupFSzE2S0sMOs6OXDkaq3VyG4h7ijQ==","shasum":"6a909de709d4c7b2394cda6774c93c149ce687b1","tarball":"https://registry.npmjs.org/o-cartografo/-/o-cartografo-1.0.0.tgz","fileCount":35,"unpackedSize":87278,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIDvEaF8m2QXP6SSqfGsp2K5bbTDzm4ZRPyui4wzh8YeOAiEAyW5JKMRwGdToLrrxYzo2RndBdrfdCgy46kxhdSc3XV0="}]},"_npmUser":{"name":"caliton","email":"sr.caliton@gmail.com"},"directories":{},"maintainers":[{"name":"caliton","email":"sr.caliton@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/o-cartografo_1.0.0_1757021048888_0.20869390123274334"},"_hasShrinkwrap":false}},"time":{"created":"2025-09-04T21:24:08.887Z","1.0.0":"2025-09-04T21:24:09.072Z","modified":"2025-09-04T21:24:09.333Z"},"maintainers":[{"name":"caliton","email":"sr.caliton@gmail.com"}],"description":"🗺️ Ferramenta inteligente para mapear e documentar rotas de APIs Express/Fastify com diagramas Mermaid","keywords":["cartografo","cartographer","express","fastify","route","rotas","mapping","mapeamento","analyzer","analisador","mermaid","documentation","documentacao","flowchart","diagram","diagrama","ai","openrouter","cli","nodejs","brasil","portuguese"],"license":"MIT","readme":"# 🔍 Route Analyzer CLI\r\n\r\n> Ferramenta CLI para analisar rotas Express/Fastify e gerar documentação Mermaid automaticamente usando IA\r\n\r\n[![npm version](https://badge.fury.io/js/o-cartografo.svg)](https://badge.fury.io/js/o-cartografo)\r\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\r\n\r\n## 🚀 Características\r\n\r\n- ✅ **Suporte a Express e Fastify**\r\n- 🤖 **Análise inteligente com IA** (OpenRouter)\r\n- 📊 **Geração automática de diagramas Mermaid**\r\n- 📝 **Documentação em Markdown**\r\n- 🔧 **Interface CLI simples**\r\n- ⚙️ **Configuração flexível**\r\n- 🎯 **Detecção automática de middlewares**\r\n- 📦 **Análise de dependências**\r\n\r\n## 📦 Instalação\r\n\r\n```bash\r\n# Instalação global\r\nnpm install -g o-cartografo\r\n\r\n# Ou instalação local no projeto\r\nnpm install --save-dev o-cartografo\r\n```\r\n\r\n## 🔑 Configuração\r\n\r\n### 1. Obter chave da API OpenRouter\r\n\r\n1. Acesse [OpenRouter.ai](https://openrouter.ai/)\r\n2. Crie uma conta e obtenha sua chave API\r\n3. Configure a chave (veja opções abaixo)\r\n\r\n### 2. Configurar o projeto\r\n\r\n```bash\r\n# Criar arquivo de configuração\r\nroute-analyzer init\r\n```\r\n\r\nIsso criará um arquivo `route-analyzer.config.json`:\r\n\r\n```json\r\n{\r\n  \"framework\": \"express\",\r\n  \"openRouterApiKey\": \"sua-chave-aqui\",\r\n  \"outputFormat\": \"mermaid\",\r\n  \"includeMiddlewares\": true,\r\n  \"includeErrorHandling\": true,\r\n  \"diagramStyle\": \"flowchart\"\r\n}\r\n```\r\n\r\n### 3. Configurar chave da API\r\n\r\n**Opção 1: Arquivo de configuração**\r\n```json\r\n{\r\n  \"openRouterApiKey\": \"sk-or-v1-...\"\r\n}\r\n```\r\n\r\n**Opção 2: Variável de ambiente**\r\n```bash\r\nexport OPENROUTER_API_KEY=\"sk-or-v1-...\"\r\n```\r\n\r\n## 🎯 Uso\r\n\r\n### Analisar uma rota específica\r\n\r\n```bash\r\n# Por caminho da rota\r\nroute-analyzer analyze --route \"/api/users\" --output ./docs\r\n\r\n# Por arquivo específico\r\nroute-analyzer analyze --file ./routes/users.js --output ./docs\r\n\r\n# Com configuração customizada\r\nroute-analyzer analyze --route \"/api/posts\" --config ./custom-config.json\r\n```\r\n\r\n### Opções disponíveis\r\n\r\n```bash\r\nroute-analyzer analyze [opções]\r\n\r\nOpções:\r\n  -r, --route <route>     Caminho da rota para analisar (ex: /api/users)\r\n  -f, --file <file>       Arquivo da rota para analisar\r\n  -o, --output <output>   Diretório de saída (padrão: ./docs)\r\n  -c, --config <config>   Arquivo de configuração (padrão: ./route-analyzer.config.json)\r\n  -h, --help             Mostrar ajuda\r\n```\r\n\r\n## 📊 Exemplo de Saída\r\n\r\nO CLI gera documentação estruturada:\r\n\r\n```\r\ndocs/\r\n├── README.md              # Índice das rotas\r\n├── SUMMARY.md             # Resumo do projeto\r\n├── get-api-users.md       # Documentação da rota GET /api/users\r\n└── post-api-users.md      # Documentação da rota POST /api/users\r\n```\r\n\r\n### Exemplo de documentação gerada:\r\n\r\n```markdown\r\n# Documentação da Rota: GET /api/users\r\n\r\n## 🔄 Fluxo da Rota\r\n\r\nEsta rota busca usuários no banco de dados com paginação e filtros opcionais...\r\n\r\n## 📊 Diagrama Mermaid\r\n\r\n```mermaid\r\nflowchart TD\r\n    A[Requisição GET /api/users] --> B[Middleware de Autenticação]\r\n    B --> C[Validação de Parâmetros]\r\n    C --> D[Consulta ao Banco]\r\n    D --> E[Formatação dos Dados]\r\n    E --> F[Resposta JSON]\r\n```\r\n\r\n## 🔧 Middlewares\r\n\r\n- `authMiddleware`\r\n- `validateQuery`\r\n- `rateLimiter`\r\n```\r\n\r\n## ⚙️ Configuração Avançada\r\n\r\n### Opções de configuração\r\n\r\n```json\r\n{\r\n  \"framework\": \"express\",           // \"express\" ou \"fastify\"\r\n  \"openRouterApiKey\": \"\",           // Chave da API OpenRouter\r\n  \"outputFormat\": \"mermaid\",        // Formato de saída\r\n  \"includeMiddlewares\": true,       // Incluir middlewares na análise\r\n  \"includeErrorHandling\": true,    // Incluir tratamento de erros\r\n  \"diagramStyle\": \"flowchart\",     // \"flowchart\" ou \"sequence\"\r\n  \"customPrompt\": \"\",              // Prompt customizado para IA\r\n  \"excludePatterns\": [             // Padrões para excluir\r\n    \"node_modules\",\r\n    \"dist\",\r\n    \"build\"\r\n  ]\r\n}\r\n```\r\n\r\n### Modelos de IA disponíveis\r\n\r\nO CLI suporta vários modelos via OpenRouter:\r\n\r\n- `anthropic/claude-3.5-sonnet` (Recomendado)\r\n- `anthropic/claude-3-haiku` (Rápido)\r\n- `openai/gpt-4o` (OpenAI)\r\n- `openai/gpt-3.5-turbo` (Econômico)\r\n- `meta-llama/llama-3.1-8b-instruct` (Open Source)\r\n\r\n## 🔧 Uso Programático\r\n\r\nTambém é possível usar como biblioteca:\r\n\r\n```javascript\r\nimport { analyzeAndGenerate } from 'o-cartografo';\r\n\r\nasync function documentRoute() {\r\n  const analysis = await analyzeAndGenerate({\r\n    route: '/api/users',\r\n    outputDir: './docs',\r\n    configPath: './config.json'\r\n  });\r\n  \r\n  console.log('Análise concluída:', analysis.flowDescription);\r\n}\r\n```\r\n\r\n## 🤝 Frameworks Suportados\r\n\r\n### Express.js\r\n```javascript\r\n// Detecção automática de rotas Express\r\napp.get('/api/users', authMiddleware, async (req, res) => {\r\n  // Código da rota\r\n});\r\n```\r\n\r\n### Fastify\r\n```javascript\r\n// Detecção automática de rotas Fastify\r\nfastify.get('/api/users', {\r\n  preHandler: [authMiddleware]\r\n}, async (request, reply) => {\r\n  // Código da rota\r\n});\r\n```\r\n\r\n## 🐛 Solução de Problemas\r\n\r\n### Erro: \"Chave da API não configurada\"\r\n- Verifique se a chave está no arquivo de configuração ou variável de ambiente\r\n- Confirme que a chave começa com `sk-or-v1-`\r\n\r\n### Erro: \"Rota não encontrada\"\r\n- Verifique se o caminho da rota está correto\r\n- Use a opção `--file` para especificar o arquivo diretamente\r\n\r\n### Erro: \"Limite de taxa excedido\"\r\n- Aguarde alguns minutos antes de tentar novamente\r\n- Considere usar um modelo mais econômico\r\n\r\n## 📝 Changelog\r\n\r\n### v1.0.0\r\n- ✅ Lançamento inicial\r\n- ✅ Suporte a Express e Fastify\r\n- ✅ Integração com OpenRouter\r\n- ✅ Geração de diagramas Mermaid\r\n- ✅ Interface CLI completa\r\n\r\n## 🤝 Contribuindo\r\n\r\n1. Fork o projeto\r\n2. Crie uma branch para sua feature (`git checkout -b feature/AmazingFeature`)\r\n3. Commit suas mudanças (`git commit -m 'Add some AmazingFeature'`)\r\n4. Push para a branch (`git push origin feature/AmazingFeature`)\r\n5. Abra um Pull Request\r\n\r\n## 📄 Licença\r\n\r\nEste projeto está licenciado sob a Licença MIT - veja o arquivo [LICENSE](LICENSE) para detalhes.\r\n\r\n## 🙏 Agradecimentos\r\n\r\n- [OpenRouter](https://openrouter.ai/) pela API de IA\r\n- [Mermaid](https://mermaid.js.org/) pelos diagramas\r\n- [Commander.js](https://github.com/tj/commander.js/) pela interface CLI\r\n- [Chalk](https://github.com/chalk/chalk) pela colorização do terminal\r\n\r\n---\r\n\r\n**Desenvolvido com ❤️ para a comunidade Node.js**","readmeFilename":"README.md","_rev":"1-38b439c93677895ff3feb47c296e4b5f"}