{"_id":"@amarorn/toll-bck-node-core-2","name":"@amarorn/toll-bck-node-core-2","dist-tags":{"latest":"1.0.0"},"versions":{"1.0.0":{"name":"@amarorn/toll-bck-node-core-2","version":"1.0.0","description":"Template para configuração padronizada de ambiente de desenvolvimento Node.js seguindo Clean Architecture","main":"dist/index.js","types":"dist/index.d.ts","bin":{"toll-setup":"dist/scripts/setup.js"},"scripts":{"build":"tsc && tsc -p src/scripts/tsconfig.json","dev":"ts-node-dev --respawn --transpile-only src/index.ts","start":"node dist/index.js","test":"jest","test:watch":"jest --watch","test:coverage":"jest --coverage","lint":"eslint . --ext .ts","lint:fix":"eslint . --ext .ts --fix","format":"prettier --write \"src/**/*.ts\"","prepare":"husky install","release":"standard-version","docs":"typedoc --out docs src","init":"node ./dist/scripts/setup.js","prepublishOnly":"npm run build","publish":"npm publish --access public"},"keywords":["template","starter","node","typescript","clean-architecture","express","eslint","prettier","jest","husky","gitflow"],"author":{"name":"José Amaro","email":"j.amarorn@gmail.com"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/amarorn/toll-bck-node.git"},"bugs":{"url":"https://github.com/amarorn/toll-bck-node/issues"},"homepage":"https://github.com/amarorn/toll-bck-node#readme","dependencies":{"express":"^4.18.2","express-async-errors":"^3.1.1","cors":"^2.8.5","helmet":"^7.1.0","morgan":"^1.10.0","dotenv":"^16.3.1","chalk":"^4.1.2","commander":"^9.4.1","inquirer":"^8.2.5"},"devDependencies":{"@types/cors":"^2.8.17","@types/express":"^4.17.21","@types/morgan":"^1.9.9","@types/node":"^18.11.9","@typescript-eslint/eslint-plugin":"^5.45.0","@typescript-eslint/parser":"^5.45.0","eslint":"^8.29.0","eslint-config-prettier":"^8.5.0","eslint-plugin-prettier":"^4.2.1","husky":"^8.0.2","jest":"^29.3.1","lint-staged":"^13.0.3","prettier":"^2.8.0","standard-version":"^9.5.0","ts-jest":"^29.0.3","ts-node-dev":"^2.0.0","typedoc":"^0.23.20","typescript":"^4.9.3"},"engines":{"node":">=14.0.0"},"_id":"@amarorn/toll-bck-node-core-2@1.0.0","gitHead":"ac06866ba16b6a4927e7786af8a82a9dbd106f1c","_nodeVersion":"23.11.0","_npmVersion":"10.9.2","dist":{"integrity":"sha512-Vj5ADKQvACUjQ98d3E4BjDIBDtu+b0JrRycSBK7GPxtrNljEcbaMTvfQskFBU2w9R1EA9V8xb+ehAnJWdyhQfg==","shasum":"8a3889885b3250c520974e154ced583f2c67eaaf","tarball":"https://registry.npmjs.org/@amarorn/toll-bck-node-core-2/-/toll-bck-node-core-2-1.0.0.tgz","fileCount":64,"unpackedSize":49494,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIE/S1HsOIS9ZP9U3q06LoSVXJpglP+bdsy7HEm3/Dl+sAiEA3NUJZjkMXTFYGATpmBZJDljhj2wM/+iLjVQMCfHu/oA="}]},"_npmUser":{"name":"amarorn","email":"amaro.neto2@gmail.com"},"directories":{},"maintainers":[{"name":"amarorn","email":"amaro.neto2@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/toll-bck-node-core-2_1.0.0_1744942290993_0.6977493986295273"},"_hasShrinkwrap":false}},"time":{"created":"2025-04-18T02:11:30.910Z","1.0.0":"2025-04-18T02:11:31.204Z","modified":"2025-04-18T02:11:31.442Z"},"maintainers":[{"name":"amarorn","email":"amaro.neto2@gmail.com"}],"description":"Template para configuração padronizada de ambiente de desenvolvimento Node.js seguindo Clean Architecture","homepage":"https://github.com/amarorn/toll-bck-node#readme","keywords":["template","starter","node","typescript","clean-architecture","express","eslint","prettier","jest","husky","gitflow"],"repository":{"type":"git","url":"git+https://github.com/amarorn/toll-bck-node.git"},"author":{"name":"José Amaro","email":"j.amarorn@gmail.com"},"bugs":{"url":"https://github.com/amarorn/toll-bck-node/issues"},"license":"MIT","readme":"# TollBckNode\n\n[![TypeScript](https://img.shields.io/badge/TypeScript-007ACC?style=for-the-badge&logo=typescript&logoColor=white)](https://www.typescriptlang.org/)\n[![Node.js](https://img.shields.io/badge/Node.js-43853D?style=for-the-badge&logo=node.js&logoColor=white)](https://nodejs.org/)\n[![Express.js](https://img.shields.io/badge/Express.js-404D59?style=for-the-badge)](https://expressjs.com/)\n[![Clean Architecture](https://img.shields.io/badge/Clean%20Architecture-6DB33F?style=for-the-badge)](https://blog.cleancoder.com/uncle-bob/2012/08/13/the-clean-architecture.html)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg?style=for-the-badge)](https://opensource.org/licenses/MIT)\n\nTemplate para configuração padronizada de ambiente de desenvolvimento Node.js seguindo os princípios da Clean Architecture.\n\n## 🏗️ Arquitetura\n\nO projeto segue a Clean Architecture, dividida em camadas:\n\n```\nsrc/\n├── application/          # Regras de Negócio da Aplicação\n│   ├── useCases/        # Casos de uso (regras de negócio)\n│   ├── dto/             # Objetos de transferência de dados\n│   └── interfaces/      # Contratos dos casos de uso\n│\n├── domain/              # Regras de Negócio da Empresa\n│   ├── entities/        # Entidades do domínio\n│   ├── interfaces/      # Contratos do domínio\n│   ├── valueObjects/    # Objetos de valor\n│   └── enums/          # Enumeradores\n│\n├── infrastructure/      # Frameworks e Ferramentas\n│   ├── models/          # Modelos de persistência\n│   ├── repositories/    # Implementações dos repositórios\n│   ├── services/        # Serviços externos\n│   └── database/        # Configurações do banco\n│\n├── interface/           # Adaptadores de Interface\n│   ├── controllers/     # Controladores da API\n│   ├── routes/          # Rotas da API\n│   ├── middlewares/     # Middlewares Express\n│   └── validators/      # Validações de entrada\n│\n└── shared/              # Código Compartilhado\n    ├── errors/          # Erros customizados\n    ├── utils/           # Funções utilitárias\n    ├── types/           # Tipos compartilhados\n    ├── constants/       # Constantes compartilhadas\n    └── validators/      # Validadores comuns\n```\n\n## 🚀 Funcionalidades\n\n- ✅ Estrutura Clean Architecture\n- ✅ TypeScript\n- ✅ Express.js configurado\n- ✅ Persistência de dados agnóstica\n- ✅ Validações de entrada\n- ✅ Tratamento de erros\n- ✅ Logging\n- ✅ Middlewares de segurança\n- ✅ Documentação automática\n\n## 📦 Instalação\n\n```bash\n# Instalar a lib\nnpm install toll-bck-node\n\n# Ou usando yarn\nyarn add toll-bck-node\n```\n\n## 🛠️ Configuração\n\n1. Copie o arquivo `.env.example` para `.env`:\n```bash\ncp .env.example .env\n```\n\n2. Configure as variáveis de ambiente:\n```env\n# Servidor\nPORT=3000\nNODE_ENV=development\n\n# Banco de dados (exemplo)\nDB_TYPE=postgres\nDB_HOST=localhost\nDB_PORT=5432\nDB_NAME=toll_db\nDB_USER=user\nDB_PASS=pass\n```\n\n## 🏃‍♂️ Executando\n\n```bash\n# Desenvolvimento\nnpm run dev\n\n# Produção\nnpm run build\nnpm start\n```\n\n## 📚 Scripts Disponíveis\n\n- `npm run dev`: Inicia o servidor em modo desenvolvimento\n- `npm run build`: Compila o projeto\n- `npm start`: Inicia o servidor em produção\n- `npm test`: Executa os testes\n- `npm run lint`: Verifica o código\n- `npm run format`: Formata o código\n\n## 🧪 Testes\n\n```bash\n# Executar testes\nnpm test\n\n# Cobertura\nnpm run test:coverage\n```\n\n## 📝 Documentação\n\nA documentação é gerada automaticamente usando TypeDoc:\n\n```bash\nnpm run docs\n```\n\n## 🏛️ Princípios Arquiteturais\n\n1. **Independência de Frameworks**\n   - Frameworks são detalhes\n   - O domínio não conhece frameworks\n\n2. **Testabilidade**\n   - Testes independentes de infraestrutura\n   - Mocks e stubs facilitados\n\n3. **Independência de UI**\n   - Interface é um detalhe\n   - Mudanças na UI não afetam o domínio\n\n4. **Independência de Banco de Dados**\n   - Banco de dados é um detalhe\n   - Fácil trocar implementações\n   - Suporte a múltiplos tipos de banco de dados\n\n5. **Independência de Externos**\n   - APIs externas são detalhes\n   - Adaptadores isolam o domínio\n\n## 🔒 Segurança\n\n- Helmet para headers seguros\n- CORS configurável\n- Validação de entrada\n- Sanitização de dados\n- Rate limiting\n- Proteção contra ataques comuns\n\n## 🤝 Contribuindo\n\n1. Fork o projeto\n2. Crie sua branch (`git checkout -b feature/AmazingFeature`)\n3. Commit suas mudanças (`git commit -m 'Add some AmazingFeature'`)\n4. Push para a branch (`git push origin feature/AmazingFeature`)\n5. Abra um Pull Request\n\n## 📄 Licença\n\nEste projeto está sob a licença MIT. Veja o arquivo [LICENSE](LICENSE) para mais detalhes.\n\n## 📞 Suporte\n\n- Documentação: [Link para docs]\n- Issues: [Link para issues]\n- Email: [seu-email@exemplo.com]\n\n## 🎯 Roadmap\n\n- [ ] Suporte a GraphQL\n- [ ] Autenticação JWT\n- [ ] Cache distribuído\n- [ ] Documentação Swagger\n- [ ] Docker compose\n- [ ] CI/CD Pipeline\n\n## ⭐ Agradecimentos\n\n- [Clean Architecture](https://blog.cleancoder.com/uncle-bob/2012/08/13/the-clean-architecture.html)\n- [TypeScript](https://www.typescriptlang.org/)\n- [Express.js](https://expressjs.com/) ","readmeFilename":"README.md","_rev":"1-e517ba124c6aa2b137728cc989ba8cff"}