# Assets de front-end desta app Estado real a 25/09/2026 (auditoria em `CLAUDE_GITEA/audits/fitme3070-auditoria-2026-09-24.html`, ponto 7.4). Composer real desde 25/09 (`composer.json`/`composer.lock`, ver `PLATFORM_TOOLS.md`), mas ainda sem versão no nome das pastas dos ficheiros hand-vendored. ## O que está vendorizado e onde | Biblioteca | Versão | Caminho | Usado em | |------------------------|--------|----------------------------------------|----------------------| | Bootstrap | 5.3.3 | `assets/vendor/bootstrap5/` | Site público + backoffice (unificado 25/09) | | Bootstrap Icons | — | `assets/vendor/bootstrap-icons/` | Backoffice (agora carregado do pacote partilhado `bootstrap-icons` 1.13.1; esta cópia só como recurso) | | jQuery | 3.7.1 | `assets/vendor/jquery/jquery-3.7.1.min.js` | Site público + backoffice (deduplicado 25/09) | | Font Awesome Free | 5.13.1 | `site/assets/fonts/fontawesome/` | Site público: agora FA 6.7.2 do pacote partilhado `fontawesome`; esta cópia (~18 MB) só como recurso, sem uso se o submódulo tiver `functions_icons.php` | | PHPMailer | 7.1.1 | `vendor/PHPMailer/` | Envio de email (`config/functions_mail.php`, partilhado) | `assets/vendor/bootstrap/` (a cópia 4.3.1) ficou sem nenhuma referência depois da migração — ainda no disco, ninguém a carrega, por remover (`git rm -r`, não feito ainda). Nenhuma pasta hand-vendored tem a versão no nome; para confirmar a versão real de cada uma, ver os comentários de cabeçalho dos `.min.css`/`.min.js` ou `VERSION`/`const VERSION` no caso do PHPMailer. `composer.lock` já fixa a versão exata do que o Composer instala. ## Porque não segue por completo a convenção da frota - **PHPMailer continua hand-vendored** em vez de vir do Composer da app: `shared/platform-tools/ functions_mail.php` (partilhado por toda a frota) exige `vendor/PHPMailer/src/PHPMailer.php` por caminho fixo, não o layout `vendor/phpmailer/phpmailer/...` que o Composer geraria — mudar isso é código partilhado, fora do alcance de uma app só (mesma razão que a fotografia mantém as duas árvores). `composer.json` declara a dependência mesmo assim, para `composer audit`/`outdated` saberem da versão. - **Google Fonts ainda vem de CDN** (`site/includes/include.php`) — pendente self-hosting do Roboto (ver [[fitme-audit-2026-09]] na memória do projeto, "Pending for André"). ## Antes de adicionar ou atualizar uma biblioteca 1. Preferir Composer sempre que o pacote exista (ver a convenção da frota). 2. Sem Composer: descarregar uma vez, commitar, e nomear a pasta com a versão (`vendor/-/`), não um nome genérico. 3. Nunca duplicar a mesma versão em duas pastas — importar de um único sítio. 4. Atualizar esta tabela.