@anderson.tec12/utils
v1.2.0
Published
[](https://badge.fury.io/js/%40anderson.tec12%2Futils) [](https://opensource.org/licenses/MIT)
Downloads
69
Maintainers
Readme
@anderson.tec12/utils
Uma biblioteca TypeScript com utilitários essenciais para desenvolvimento web, incluindo armazenamento seguro criptografado e verificação de dispositivos de mídia.
📦 Instalação
npm install @anderson.tec12/utils🚀 Funcionalidades
🔐 SecureStorage
Armazenamento seguro no localStorage com criptografia AES-GCM de 256 bits.
📹 Device Verification
Verificação de disponibilidade de câmera e microfone do usuário.
📖 Uso
SecureStorage
O secureStorage permite armazenar dados de forma criptografada no localStorage do navegador:
import { secureStorage } from '@anderson.tec12/utils';
// Armazenar dados
await secureStorage.setItem('userData', {
name: 'João',
email: '[email protected]',
preferences: { theme: 'dark' }
});
// Recuperar dados
const userData = await secureStorage.getItem<{
name: string;
email: string;
preferences: { theme: string };
}>('userData');
console.log(userData); // { name: 'João', email: '[email protected]', ... }
// Remover item específico
secureStorage.removeItem('userData');
// Limpar todo o storage
secureStorage.clear();Verificação de Dispositivos
Verifique se o usuário possui câmera e microfone disponíveis:
import { verifyMicAndCam } from '@anderson.tec12/utils';
const hasDevices = await verifyMicAndCam();
if (hasDevices) {
console.log('Usuário possui câmera e microfone');
// Prosseguir com funcionalidades de vídeo/áudio
} else {
console.log('Dispositivos não disponíveis');
// Mostrar mensagem de erro ou alternativas
}📚 API Reference
SecureStorage
setItem(key: string, value: any): Promise<void>
Armazena um valor criptografado no localStorage.
- key: Chave para identificar o item
- value: Qualquer valor serializável em JSON
getItem<T>(key: string): Promise<T | null>
Recupera e descriptografa um valor do localStorage.
- key: Chave do item a ser recuperado
- Retorna: O valor descriptografado ou
nullse não encontrado
removeItem(key: string): void
Remove um item específico do localStorage.
clear(): void
Remove todos os itens do localStorage.
Device Verification
verifyMicAndCam(): Promise<boolean>
Verifica se o usuário possui câmera e microfone disponíveis.
- Retorna:
truese ambos os dispositivos estão disponíveis,falsecaso contrário
🔒 Segurança
O SecureStorage utiliza:
- Algoritmo: AES-GCM com chave de 256 bits
- Derivação de chave: PBKDF2 com 100.000 iterações
- Salt: Valor fixo para consistência
- IV: Vetor de inicialização aleatório para cada operação
⚠️ Importante: Esta implementação é adequada para proteger dados contra acesso casual ao localStorage, mas não substitui medidas de segurança do lado servidor para dados altamente sensíveis.
🌐 Compatibilidade
Esta biblioteca requer navegadores com suporte à:
- Web Crypto API (para SecureStorage)
- MediaDevices API (para verificação de dispositivos)
Navegadores Suportados:
- Chrome 37+
- Firefox 34+
- Safari 7+
- Edge 12+
🛠️ Desenvolvimento
# Instalar dependências
npm install
# Compilar TypeScript
npm run build
# Preparar para publicação
npm run prepublishOnly📄 Estrutura do Projeto
src/
├── index.ts # Exportações principais
├── storage/
│ └── index.ts # SecureStorage implementation
└── devices/
└── index.ts # Device verification utilities🤝 Contribuição
- Faça um fork do 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á licenciado sob a Licença MIT - veja o arquivo LICENSE para detalhes.
👨💻 Autor
Anderson - @anderson-tec12
⭐ Se este projeto foi útil para você, considere dar uma estrela no GitHub!
