npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2025 – Pkg Stats / Ryan Hefner

api-stats-logger

v2.3.9

Published

SDK completo de logging e monitoramento de APIs com nova estrutura de logs organizada, auto-instrumentação, dashboard em tempo real e CLI para configuração automática. Suporta logs estruturados por contexto (HTTP, business, security, system) com campos op

Readme

API Stats Logger

npm version License: MIT

SDK profissional para logging e monitoramento de APIs em Node.js com instrumentação automática.

🚀 Instalação

npm install api-stats-logger

⚡ Início Rápido

🔐 Login Persistente (Novo!)

O SDK agora mantém você logado automaticamente entre sessões:

npx api-stats-logger
# Primeira vez: faça login (Google OAuth ou email/senha)
# Próximas vezes: login automático! 🎉

Funcionalidades do Login Persistente:

  • Armazenamento seguro no keychain do sistema
  • Modo offline com cache inteligente
  • Sincronização automática quando voltar online
  • Validação contínua de credenciais
  • Migração automática de configurações antigas

Configuração Automática (Recomendado)

npx api-stats-init

Este comando irá:

  • ✅ Configurar automaticamente o projeto
  • ✅ Gerar API key
  • ✅ Criar arquivos de configuração
  • ✅ Detectar seu framework automaticamente
  • Salvar credenciais para próximas execuções

Configuração Manual

const ApiStatsLogger = require('api-stats-logger');

const logger = new ApiStatsLogger({
  apiKey: process.env.API_STATS_API_KEY,
  service: 'minha-api',
  environment: 'production'
});

// Logging manual
logger.info('Usuário logado', { userId: 123 });
logger.error('Erro no banco', { error: 'timeout' });

🔧 Frameworks Suportados

Express.js

const express = require('express');
const ApiStatsLogger = require('api-stats-logger');

const app = express();
const logger = new ApiStatsLogger();

// Middleware automático
app.use(ApiStatsLogger.expressMiddleware({ logger }));

app.listen(3000);

NestJS

// Adicione no main.ts
import { ApiStatsLogger } from 'api-stats-logger';

async function bootstrap() {
  const app = await NestFactory.create(AppModule);
  
  const logger = new ApiStatsLogger();
  app.use(ApiStatsLogger.nestMiddleware({ logger }));
  
  await app.listen(3000);
}

Fastify & Koa

// Fastify
fastify.register(ApiStatsLogger.fastifyPlugin());

// Koa
app.use(ApiStatsLogger.koaMiddleware());

📊 Recursos

  • 🚀 Auto-instrumentação - Captura automática de requests/responses
  • 📈 Métricas de Performance - Response time, throughput, error rate
  • 🔍 Rastreamento Distribuído - Trace IDs para debugging
  • 🛡️ Segurança - Headers sensíveis automaticamente filtrados
  • 📦 Zero Configuração - Funciona out-of-the-box
  • 🔄 Retry Logic - Resiliente a falhas de rede
  • 📱 Dashboard - Interface web para visualização

⚙️ Configuração Avançada

const logger = new ApiStatsLogger({
  apiKey: process.env.API_STATS_API_KEY,
  service: 'minha-api',
  environment: 'production',
  
  // Performance
  batchSize: 50,
  flushInterval: 5000,
  maxRetries: 3,
  
  // Recursos
  captureErrors: true,
  capturePerformance: true,
  
  // Segurança
  captureBody: false,
  captureHeaders: false
});

🔒 Segurança

O SDK automaticamente filtra headers sensíveis:

  • authorization
  • cookie
  • x-api-key
  • x-auth-token

📚 Exemplos

Logging de Operações

async function processPayment(paymentData) {
  const operationId = `payment_${Date.now()}`;
  
  logger.info('Payment started', { operationId, amount: paymentData.amount });
  
  try {
    const result = await paymentGateway.process(paymentData);
    logger.info('Payment completed', { operationId, paymentId: result.id });
    return result;
  } catch (error) {
    logger.error('Payment failed', { operationId, error: error.message });
    throw error;
  }
}

Middlewares Customizados

// Express middleware customizado
app.use(ApiStatsLogger.expressMiddleware({
  logger,
  captureBody: false,
  captureHeaders: false,
  skipPaths: ['/health', '/metrics']
}));

🔧 Variáveis de Ambiente

# Obrigatório
API_STATS_API_KEY=sua-api-key-aqui

# Opcionais
API_STATS_SERVICE=minha-api
API_STATS_ENVIRONMENT=production
API_STATS_URL=https://api.exemplo.com/logs
API_STATS_ENABLED=true
API_STATS_BATCH_SIZE=20
API_STATS_FLUSH_INTERVAL=5000

📈 Métricas Coletadas

  • HTTP Requests: Response time, status codes, throughput
  • Erros: Stack traces, frequência, categorização
  • Performance: Uso de recursos, uptime
  • Operações de Negócio: Transações, conversões

🔐 Sistema de Login Persistente

Funcionalidades Avançadas

O SDK v2.3.7+ inclui um sistema robusto de login persistente:

# Primeira execução - fazer login
npx api-stats-logger
# Escolha: Google OAuth, Email/Senha ou API Key

# Próximas execuções - login automático!
npx api-stats-logger
# ✅ Logado automaticamente

Armazenamento Seguro

  • 🔐 Keychain do Sistema: Windows Credential Manager, macOS Keychain, Linux Keyring
  • 📁 Arquivo Local Seguro: Fallback com permissões restritas (0600)
  • 🧹 Limpeza Automática: Credenciais inválidas são removidas automaticamente

Modo Offline

# Trabalhe offline com dados em cache
npx api-stats-logger
# 📦 Usando dados em cache (modo offline)

Funcionalidades Offline:

  • ✅ Visualizar projetos em cache
  • ✅ Configurar projetos existentes
  • ✅ Gerar arquivos de configuração
  • ❌ Criar novos projetos (requer conexão)

Comandos Úteis

# Demonstrar funcionalidades de login persistente
npm run demo:login

# Teste completo do sistema
npm run demo:full

# Ver estatísticas de cache
npm run demo:stats

# Limpar cache e credenciais
npm run clear:cache

Gerenciamento de Credenciais

const SecureStorage = require('api-stats-logger/secure-storage');
const storage = new SecureStorage();

// Verificar se está logado
const credentials = await storage.getCredentials();
console.log('Logado:', !!credentials);

// Limpar credenciais
await storage.clearCredentials();

Segurança

  • 🔒 Criptografia: Dados sensíveis protegidos pelo keychain do SO
  • ⏰ Expiração: Tokens validados automaticamente
  • 🚫 Isolamento: Cada usuário tem seus próprios dados
  • 🔄 Migração: Credenciais antigas migradas automaticamente

📖 Documentação completa: PERSISTENT_LOGIN.md

🆘 Suporte

📜 Licença

MIT License - veja LICENSE para detalhes.


Desenvolvido com ❤️ para desenvolvedores Node.js