whom-intercepts
v1.0.0
Published
Biblioteca JavaScript para interceptação e manipulação de eventos WebPKI no sistema ESAJ
Maintainers
Readme
WHOM Intercepts
Biblioteca standalone para interceptação e manipulação de eventos WebPKI no sistema ESAJ sem dependência da extensão Chrome.
🎯 Sobre
Esta biblioteca permite a integração com o sistema ESAJ (Sistema de Automação da Justiça) simulando extensões Web PKI (Lacuna, Softplan, Certisign) sem a necessidade de uma extensão Chrome. É ideal para casos onde você precisa de flexibilidade na distribuição e implementação.
✨ Características
- ✅ Standalone: Funciona sem extensão Chrome
- ✅ Compatibilidade Total: Simula extensões Web PKI (Lacuna, Softplan, Certisign)
- ✅ Múltiplas Formas de Distribuição: CDN, Bookmarklet, UserScript, NPM
- ✅ Sistema de Cache: Cache local para certificados
- ✅ Logging Estruturado: Sistema de logs configurável
- ✅ TypeScript: Código totalmente tipado
- ✅ Modular: Arquitetura modular e extensível
📦 Instalação
NPM
npm install whom-interceptsCDN
<script src="https://cdn.whom.com.br/whom-intercepts.min.js"></script>🚀 Uso Básico
Importação ES6
import { WhomEsaj } from 'whom-intercepts';
const config = {
token: 'seu-token-whom',
environment: 'production',
webpki: {
type: 'lacuna', // lacuna, softplan, certSign
certType: 'A1'
}
};
await WhomEsaj.init(config);Uso Global (CDN)
const config = {
token: 'seu-token-whom',
environment: 'production',
webpki: {
type: 'lacuna',
certType: 'A1'
}
};
const { WhomEsaj } = window.WhomIntercepts;
WhomEsaj.init(config);⚙️ Configuração
Configuração Completa
interface WhomEsajConfig {
// Autenticação
token: string;
extensionId: string;
environment: 'production' | 'development' | 'staging';
// Web PKI
webpki: {
type: 'lacuna' | 'softplan' | 'certSign';
xpath?: string; // Para iframes específicos
certType?: 'A1' | 'A3';
};
// Cache
cache: {
enabled: boolean;
ttl: number; // em segundos
maxSize: number;
};
// Logging
logging: {
level: 'debug' | 'info' | 'warn' | 'error';
enabled: boolean;
};
// Permissões
permissions: {
allowSignatures: boolean;
allowCertificates: boolean;
restrictions?: any;
};
}Configuração Mínima
const config = {
token: 'seu-token',
environment: 'production',
webpki: { type: 'lacuna' }
};📋 Exemplos de Uso
Bookmarklet
javascript:(function(){
const script = document.createElement('script');
script.src = 'https://cdn.whom.com.br/whom-intercepts.min.js';
script.onload = function() {
window.WhomIntercepts.init({
token: 'seu-token-aqui',
extensionId: 'seu-extension-id',
environment: 'production',
webpki: { type: 'lacuna', certType: 'A1' }
});
};
document.head.appendChild(script);
})();UserScript (Tampermonkey)
// ==UserScript==
// @name WHOM ESAJ Integration
// @namespace http://whom.com.br/
// @version 1.0
// @description Integração WHOM com sistema ESAJ
// @match https://*.esaj.tj*.jus.br/*
// @grant none
// ==/UserScript==
(function() {
'use strict';
const config = {
token: localStorage.getItem('whom-token'),
environment: 'production',
webpki: { type: 'lacuna', certType: 'A1' }
};
const script = document.createElement('script');
script.src = 'https://cdn.whom.com.br/whom-intercepts.min.js';
document.head.appendChild(script);
script.onload = function() {
window.WhomIntercepts.WhomEsaj.init(config);
};
})();Injeção Direta
<!DOCTYPE html>
<html>
<head>
<script src="https://cdn.whom.com.br/whom-intercepts.min.js"></script>
</head>
<body>
<script>
window.WhomIntercepts.WhomEsaj.init({
token: 'seu-token',
environment: 'production',
webpki: { type: 'lacuna', certType: 'A1' }
});
</script>
</body>
</html>🔧 Desenvolvimento
Instalação
git clone <repository>
cd whom-intercepts
npm installBuild
npm run buildTestes
npm testDesenvolvimento
npm run build:dev🚀 Publicação Automática
Este projeto usa GitHub Actions para publicação automática no NPM.
Publicação Manual (se necessário)
npm run publish:lib📦 Exemplos de Uso
Instalação
npm install whom-intercepts📁 Estrutura do Projeto
whom-intercepts/
├── src/
│ ├── core/ # Core da biblioteca
│ │ ├── types.ts # Tipos TypeScript
│ │ ├── constants.ts # Constantes
│ │ └── WhomEsajCore.ts # Classe principal
│ ├── services/ # Serviços
│ │ └── ApiService.ts # Comunicação com API
│ ├── interceptors/ # Interceptadores
│ │ └── WebPkiInterceptor.ts # Interceptor Web PKI
│ ├── utils/ # Utilitários
│ │ ├── logger.ts # Sistema de logs
│ │ ├── cache.ts # Sistema de cache
│ │ └── dom.ts # Utilitários DOM
│ └── WhomEsaj.ts # Classe principal
├── dist/ # Build de produção
├── examples/ # Exemplos de uso
└── __tests__/ # Testes🔄 Comandos Suportados
A biblioteca intercepta e responde aos seguintes comandos Web PKI:
getExtensionVersion- Versão da extensãoinitialize- Inicialização da extensãolistCertificates- Lista de certificadosreadCertificate- Leitura de certificadopreauthorizeSignatures- Autorização de assinaturassignHash- Assinatura de hashsignData- Assinatura de dadossignWithRestPki- Assinatura com REST PKI
🚀 Distribuição
CDN
npm run build
# Upload dist/whom-esaj.min.js para CDNNPM
npm publish📚 Documentação
🤝 Contribuição
- Fork o projeto
- Crie uma branch para sua feature (
git checkout -b feature/AmazingFeature) - Commit suas mudanças (
git commit -m 'Add some AmazingFeature') - Push para a branch (
git push origin feature/AmazingFeature) - Abra um Pull Request
📄 Licença
Este projeto está sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.
🆘 Suporte
Para suporte, entre em contato através dos canais oficiais da WHOM.
