Manual do desenvolvedor
Esta seção é para quem deseja ler o código-fonte, modificar regras ou enviar um PR. Se você só precisa instalar a extensão, o Guia de uso é suficiente.
Seções
- Visão geral da arquitetura — estrutura de diretórios do projeto, responsabilidades dos módulos, fluxo de dados
- Formato dos arquivos de regras — como os JSONs em
public/rules/são organizados, grupos aninhados e herança de defaults - Fluxo de detecção — os estágios desde o webRequest / injeção na página até a renderização no popup
- Contribuindo com regras — como adicionar novas tecnologias às regras integradas
- Build e publicação — build local, empacotamento, assinatura de crx, fluxo de publicação
Visão geral da stack
O projeto usa Vite 8 + Vue 3 + TypeScript + @crxjs/vite-plugin 3.x. O script de background é um service worker ESM do Manifest V3; o gerenciador de pacotes é o bun.
As regras ficam em public/rules/, divididas em múltiplos arquivos JSON por página, cabeçalhos de resposta, ecossistema WordPress/Drupal, etc. Durante o build, as regras são pré-processadas e recebem os campos __hints / __legacyHints / __keywordCombined para acelerar a correspondência.
Comandos comuns de desenvolvimento
bun install # instalar dependências
bun run dev # iniciar vite dev server com hot reload da extensão
bun run build # compilar para dist/, pronto para carregar no Chrome
bun run typecheck # verificação de tipos estrita com vue-tsc
bun run lint # verificação com eslint
bun run docs:dev # iniciar preview local desta documentação
bun run docs:build # compilar o site de documentação estáticoNo modo dev, as páginas da extensão suportam hot reload. Mudanças em popup / settings / help geralmente atualizam automaticamente; mudanças em src/background/ ou content scripts exigem atualização manual do cartão da extensão em chrome://extensions/.
Pontos de entrada Vue
Três SPAs independentes, cada um compilado separadamente, sem interferência:
| Entrada | Arquivo | Descrição |
|---|---|---|
| popup | src/ui/popup/index.html | Janela de 440px × 600px que aparece ao clicar no ícone da extensão |
| settings | src/ui/settings/index.html | Options page aberta nos detalhes de chrome://extensions/ |
| help | src/ui/help/index.html | Aba independente aberta ao clicar em "Ajuda" nas configurações |