🔒 Sistema de Ofuscação JavaScript

Este projeto implementa um sistema automatizado de ofuscação de JavaScript que funciona tanto localmente (pre-commit) quanto na produção (GitHub Actions).

📁 Estrutura de Arquivos

1
2
3
4
5
6
7
8
9
js/
├── src/
│   ├── main.js        # Código fonte limpo (para desenvolvimento)
│   └── .gitkeep       # Mantém pasta no git
└── main.js            # Código ofuscado (gerado automaticamente)

scripts/
├── obfuscate.sh       # Script de ofuscação
└── dev.sh             # Script auxiliar de desenvolvimento

🔄 Fluxo de Trabalho

1. Desenvolvimento Local

2. Pre-commit (Automático)

3. GitHub Actions (Automático)

🛠️ Comandos Úteis

Scripts de Desenvolvimento

1
2
3
4
5
6
7
8
# Ver status dos arquivos
./scripts/dev.sh status

# Usar código limpo para desenvolvimento local
./scripts/dev.sh dev

# Ofuscar manualmente para produção
./scripts/dev.sh prod

Ofuscação Manual

1
2
# Ofuscar código fonte
./scripts/obfuscate.sh

Pre-commit Manual

1
2
3
4
5
# Rodar pre-commit em todos os arquivos
pre-commit run --all-files

# Rodar apenas ofuscação
pre-commit run obfuscate-js

⚙️ Configuração de Ofuscação

O script obfuscate.sh usa as seguintes configurações:

🔧 Desenvolvimento

Para Trabalhar Localmente

  1. Edite js/src/main.js normalmente
  2. Use ./scripts/dev.sh dev para testar sem ofuscação
  3. Commit normalmente - o pre-commit ofuscará automaticamente

Para Testar Ofuscação Local

  1. Execute ./scripts/dev.sh prod
  2. Teste o site com código ofuscado
  3. Use ./scripts/dev.sh dev para voltar ao desenvolvimento

🚨 Regras Importantes

  1. NUNCA edite js/main.js diretamente
  2. SEMPRE trabalhe em js/src/main.js
  3. CONFIE no sistema automático de ofuscação
  4. TESTE localmente antes de fazer push

📊 Verificação

Para verificar se o sistema está funcionando:

1
2
3
4
5
6
7
# Ver status
./scripts/dev.sh status

# Deve mostrar:
# 📁 Fonte: js/src/main.js (X bytes)
# 🔒 Produção: js/main.js (Y bytes)
# ✅ Aparenta estar ofuscado (poucas linhas)

🔐 Segurança