{"_id":"@andreywbs/codeforge","name":"@andreywbs/codeforge","dist-tags":{"latest":"1.0.0"},"versions":{"1.0.0":{"name":"@andreywbs/codeforge","version":"1.0.0","description":"O CodeForge é uma biblioteca desenvolvida em JavaScript focada na geração automatizada de código a partir de templates e arquivos de configuração .config.","main":"app.js","bin":{"codeforge":"app.js"},"type":"module","scripts":{"start":"node app.js generate","cache:list":"node app.js cache:list","cache:clear":"node app.js cache:clear","template:create":"node app.js template:create","test":"echo \"Error: no test specified\" && exit 1"},"keywords":[],"author":"","license":"ISC","dependencies":{"commander":"^14.0.3","fs-extra":"^11.3.5","handlebars":"^4.7.9"},"_id":"@andreywbs/codeforge@1.0.0","gitHead":"7e33513beb48605afb4f77e2fb5279291a8cce7c","_nodeVersion":"22.22.2","_npmVersion":"10.9.7","dist":{"integrity":"sha512-n6p9+rSvHpPMmo85sHRj1bjHu+iaraltJ/T5GEVkBELNc5Jpf/RGtloyY5ey3iQTsg50DToCp6cBaQvhpfuMqg==","shasum":"02c232a3d375d8e1abd74ff0e7ceafd8b1d030a2","tarball":"https://registry.npmjs.org/@andreywbs/codeforge/-/codeforge-1.0.0.tgz","fileCount":21,"unpackedSize":58628,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDZ7JheJMsnDW1A2K9tuy5sR4nb5j6JL5CkKofhJktEEgIgOFr0qT+J4tk5eV9t7zz/SN0MX0trvrN5w2ZspcYmWGM="}]},"_npmUser":{"name":"andreywbs","email":"andrey.wesley.sa@gmail.com"},"directories":{},"maintainers":[{"name":"andreywbs","email":"andrey.wesley.sa@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/codeforge_1.0.0_1779925485548_0.12954248115185396"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-27T23:44:45.348Z","1.0.0":"2026-05-27T23:44:45.732Z","modified":"2026-05-27T23:44:45.990Z"},"maintainers":[{"name":"andreywbs","email":"andrey.wesley.sa@gmail.com"}],"description":"O CodeForge é uma biblioteca desenvolvida em JavaScript focada na geração automatizada de código a partir de templates e arquivos de configuração .config.","keywords":[],"license":"ISC","readme":"# CodeForge\r\n\r\n> Engine de scaffolding de código inteligente baseada em templates Handlebars.\r\n\r\n**Versão:** `1.0.0`\r\n\r\n---\r\n\r\n## O que é\r\n\r\nO CodeForge gera projetos completos a partir de templates `.hbs` e um arquivo de configuração `codeForge.config.json`.\r\nVocê descreve **o que gerar**, ele resolve o template (local ou do GitHub), executa os plugins e escreve os arquivos.\r\n\r\n---\r\n\r\n## Instalação\r\n\r\n```bash\r\n# Clone o repositório\r\ngit clone https://github.com/AndreyWBS/CodeForge.git\r\ncd CodeForge\r\n\r\n# Instale as dependências\r\nnpm install\r\n\r\n# Registre o CLI globalmente\r\nnpm link\r\n```\r\n\r\nApós o `npm link`, o comando `codeforge` fica disponível em qualquer pasta do sistema.\r\n\r\n---\r\n\r\n## Como usar\r\n\r\n### 1. Crie o arquivo de configuração no seu projeto\r\n\r\n```json\r\n// codeForge.config.json\r\n{\r\n  \"template\": \"https://github.com/seu-usuario/seu-template\",\r\n  \"output\": \"./dist\"\r\n}\r\n```\r\n\r\nOu aponte para um template local:\r\n\r\n```json\r\n{\r\n  \"template\": \"./meu-template\",\r\n  \"output\": \"./dist\"\r\n}\r\n```\r\n\r\n### 2. Execute a geração\r\n\r\n```bash\r\ncodeforge generate\r\n```\r\n\r\nOs arquivos serão criados em `./dist` (ou no diretório configurado em `output`).\r\n\r\n---\r\n\r\n## Comandos disponíveis\r\n\r\n| Comando                            | Descrição                                                |\r\n| ---------------------------------- | -------------------------------------------------------- |\r\n| `codeforge generate`               | Gera o projeto a partir do `codeForge.config.json` local |\r\n| `codeforge template:create <nome>` | Cria a estrutura inicial de um novo template             |\r\n| `codeforge cache:list`             | Lista os templates remotos em cache                      |\r\n| `codeforge cache:clear`            | Remove todo o cache de templates                         |\r\n\r\n---\r\n\r\n## Templates\r\n\r\n### Usando um template do GitHub\r\n\r\n```json\r\n{\r\n  \"template\": \"https://github.com/usuario/repo\",\r\n  \"output\": \"./dist\"\r\n}\r\n```\r\n\r\nTambém é possível apontar para uma branch, tag ou subpasta específica:\r\n\r\n```json\r\n{\r\n  \"template\": {\r\n    \"github\": {\r\n      \"repo\": \"usuario/repo\",\r\n      \"ref\": \"v2.0.0\",\r\n      \"path\": \"templates/node-api\"\r\n    }\r\n  }\r\n}\r\n```\r\n\r\nPara repositórios privados, use um token:\r\n\r\n```json\r\n{\r\n  \"template\": {\r\n    \"github\": {\r\n      \"repo\": \"usuario/repo-privado\",\r\n      \"token\": \"ghp_...\"\r\n    }\r\n  }\r\n}\r\n```\r\n\r\nOu defina a variável de ambiente `CODEFORGE_GITHUB_TOKEN` / `GITHUB_TOKEN`.\r\n\r\n### Criando seu próprio template\r\n\r\nRode o comando abaixo para gerar a estrutura inicial:\r\n\r\n```bash\r\ncodeforge template:create meu-template\r\n```\r\n\r\nEstrutura gerada:\r\n\r\n```\r\nmeu-template/\r\n  arquivos/        ← templates .hbs finais\r\n  componentes/     ← partials reutilizáveis\r\n  plugins/         ← enriquecem o contexto antes da geração\r\n  template.config.json\r\n  package.json\r\n```\r\n\r\nPara aprender a montar um template completo do zero, consulte o [guia de criação de templates](docs/templates/getStart.md).\r\n\r\n---\r\n\r\n## Estrutura do codeForge.config.json\r\n\r\n| Campo                    | Tipo                 | Obrigatório | Descrição                                                   |\r\n| ------------------------ | -------------------- | ----------- | ----------------------------------------------------------- |\r\n| `template`               | `string` ou `object` | ✅          | Caminho local ou referência GitHub do template              |\r\n| `output`                 | `string`             | ❌          | Diretório de saída (padrão: `./dist`)                       |\r\n| `keepPluginDependencies` | `boolean`            | ❌          | Mantém dependências de plugins após gerar (padrão: `false`) |\r\n\r\nQualquer campo adicional é passado como contexto para os templates e plugins.\r\n\r\n---\r\n\r\n## Roadmap\r\n\r\n- [x] Geração de projetos a partir de templates locais\r\n- [x] Suporte a templates remotos via URL do GitHub\r\n- [x] Suporte a branch, tag e subpasta no template remoto\r\n- [x] Cache de templates remotos\r\n- [x] CLI global via `npm link` / `npm install -g`\r\n- [x] Comando `template:create` para scaffolding de novos templates\r\n- [x] Plugins para enriquecimento de contexto\r\n- [x] Partials (componentes reutilizáveis)\r\n- [x] Geração dinâmica com `forEach`\r\n- [ ] Tratamento de conflitos de arquivos já gerados — estratégias configuráveis: `overwrite`, `skip`, `ask` e `merge`\r\n- [ ] Comando `codeforge diff` — exibe o que mudaria antes de sobrescrever arquivos existentes\r\n- [ ] Dry run (`--dry-run`) — simula a geração sem escrever arquivos no disco\r\n- [ ] Log de arquivos gerados em `.codeforge/last-run.json` para rastreamento e rollback\r\n- [ ] Comando `codeforge rollback` — desfaz a última geração a partir do log\r\n- [ ] Suporte a hooks no template (`beforeGenerate`, `afterGenerate`) para scripts pós-geração\r\n- [ ] Herança de templates — um template pode estender outro e sobrescrever apenas partes\r\n- [ ] Comando `codeforge template:publish` — empacota e publica o template no npm ou GitHub Releases\r\n- [ ] Modo interativo para plugins — plugin pode fazer perguntas ao usuário durante a geração\r\n\r\n---\r\n\r\n## Licença\r\n\r\nISC\r\n","readmeFilename":"README.MD","_rev":"1-1b807af6dd19d9956dc8dab9af88358c"}