krypton-hub
v0.1.0
Published
SDK leve para enviar eventos, receita e erros ao Krypton Hub.
Maintainers
Readme
krypton-hub
SDK leve para enviar eventos, receita e erros ao Krypton Hub — painel central que agrega métricas de todos os seus MVPs em um só lugar.
Instalar
npm install krypton-hub
# ou
pnpm add krypton-hub
# ou
yarn add krypton-hubFunciona em Node 18+ e em qualquer ambiente com fetch global (browser, Edge, Bun, Deno).
Configurar
Pegue sua ingest_key no dashboard do Hub: https://hub.178.105.240.224.nip.io/mvps/<seu-mvp> → seção "Integração SDK".
import { Krypton } from 'krypton-hub';
const k = new Krypton({
key: process.env.KRYPTON_KEY!, // krp_live_...
});Em Next.js / Vercel
Use uma única instância singleton:
// lib/krypton.ts
import { Krypton } from 'krypton-hub';
export const k = new Krypton({ key: process.env.KRYPTON_KEY! });Uso
Eventos de uso
k.track('pageview', { path: '/pricing' });
k.track('signup_completed', { plan: 'pro', source: 'organic' });
k.track('checkout_abandoned', { cart_value: 9990 });Eventos são enfileirados e enviados em batch a cada 5s (configurável via flushIntervalMs).
Receita / assinaturas
// Novo cliente (status default: active)
await k.trackRevenue({
customerId: 'c_user_123',
plan: 'pro',
mrr: 4990, // em centavos, R$ 49,90
email: '[email protected]',
name: 'Alice Silva',
});
// Mudança de status (ex.: cancelamento)
await k.trackRevenue({
customerId: 'c_user_123',
mrr: 0,
status: 'canceled',
});Receita é enviada imediatamente (não enfileira), porque dispara notificação no Discord do Hub.
Erros
try {
await foo();
} catch (err) {
await k.captureError(err, { userId: '123', route: '/api/foo' });
throw err;
}Erros são agrupados automaticamente por fingerprint (mensagem + topo do stack), então o Hub mostra contagem por grupo (estilo Sentry).
API
new Krypton(options)
| Opção | Tipo | Default |
| ----------------- | -------- | --------------------------------------- |
| key | string | obrigatório — ingest_key do MVP |
| host | string | https://api.178.105.240.224.nip.io/v1 |
| flushIntervalMs | number | 5000 |
| debug | boolean | false |
Métodos
track(type, props?)— enfileira evento (batch a cadaflushIntervalMs)trackRevenue(input)— envia receita imediatamentecaptureError(err, context?)— envia erro imediatamenteflush()— força envio do batch agoradestroy()— limpa o timer interno (chame antes de encerrar o processo)
Licença
MIT
