Biblioteca JavaScript para interceptação e manipulação de eventos WebPKI no sistema ESAJ
npm install whom-intercepts


Biblioteca standalone para interceptação e manipulação de eventos WebPKI no sistema ESAJ sem dependência da extensão Chrome.
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.
- ✅ 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
bash
npm install whom-intercepts
`$3
`html
`🚀 Uso Básico
$3
`javascript
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);
`$3
`javascript
const config = {
token: 'seu-token-whom',
environment: 'production',
webpki: {
type: 'lacuna',
certType: 'A1'
}
};
const { WhomEsaj } = window.WhomIntercepts;
WhomEsaj.init(config);
`⚙️ Configuração
$3
`typescript
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;
};
}
`$3
`javascript
const config = {
token: 'seu-token',
environment: 'production',
webpki: { type: 'lacuna' }
};
`📋 Exemplos de Uso
$3
`javascript
javascript:(function(){
const script = document.createElement('script');
script.src = 'https://cdn.jsdelivr.net/npm/whom-intercepts@1.0.0/dist/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);
})();
`$3
`javascript
// ==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.jsdelivr.net/npm/whom-intercepts@1.0.0/dist/whom-intercepts.min.js';
document.head.appendChild(script);
script.onload = function() {
window.WhomIntercepts.WhomEsaj.init(config);
};
})();
`$3
`html
`🔧 Desenvolvimento
$3
`bash
git clone
cd whom-intercepts
npm install
`$3
`bash
npm run build
`$3
`bash
npm test
`$3
`bash
npm run build:dev
`🚀 Publicação Automática
Este projeto usa GitHub Actions para publicação automática no NPM.
$3
`bash
npm run publish:lib
`📦 Exemplos de Uso
$3
`bash
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ão
- initialize - Inicialização da extensão
- listCertificates - Lista de certificados
- readCertificate - Leitura de certificado
- preauthorizeSignatures - Autorização de assinaturas
- signHash - Assinatura de hash
- signData - Assinatura de dados
- signWithRestPki - Assinatura com REST PKI🚀 Distribuição
$3
`bash
npm run build
Upload dist/whom-esaj.min.js para CDN
`$3
`bash
npm publish
`📚 Documentação
- Documentação Completa
- Arquitetura Standalone
- Comparação de Arquiteturas
- Exemplos de Uso
🤝 Contribuição
1. Fork o projeto
2. Crie uma branch para sua feature (
git checkout -b feature/AmazingFeature)
3. Commit suas mudanças (git commit -m 'Add some AmazingFeature')
4. Push para a branch (git push origin feature/AmazingFeature`)Este projeto está sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.
Para suporte, entre em contato através dos canais oficiais da WHOM.
---