kilden
v0.24.0
Published
Kilden web SDK: analytics, identity, autocapture and session replay on the shared data foundation
Readme
kilden-sdk-js
SDK web de Kilden. TypeScript estricto, cero dependencias de runtime,
builds ESM + CJS + IIFE (el snippet carga el IIFE). Contexto general en el
CLAUDE.md del wrapper padre; superficie y contratos congelados en
../docs/10-sdk-api.md (y en el CLAUDE.md de este repo).
Uso
import kilden from 'kilden'; // singleton
kilden.init('wk_...', { debug: true });
kilden.track('signup_completed', { plan: 'pro' });
kilden.identify('user-42', { name: 'Ada' });
// o la primitiva real, sin singleton:
import { createClient } from 'kilden';
const client = createClient('wk_...', { autocapture: false });Para sitios sin bundler: snippet.html (loader async con cola de stubs — las
llamadas hechas antes de que cargue el bundle no se pierden y se reproducen
en orden).
Arquitectura
El core es: cola + identidad + transporte + pipeline de plugins
(before → enrichment → after, ver ../docs/13-sdk-plugins.md). Todo lo
demás son plugins — incluidas las features propias: sesiones, contexto,
$utm_* (plugins internos) y autocapture (plugin en chunk lazy: con
autocapture: false nunca se descarga). beforeSend es azúcar sobre un
plugin before.
La superficie de session replay (startSessionRecording, etc.) y group()
están reservadas: no-op con warning en debug hasta que existan sus
paquetes (docs/14 y fase B2B).
Desarrollo
npm install
npm run check # typecheck + tests + build + presupuesto de tamaño
npm run playground # http://localhost:8787 — demo con snippet y mock de /captureEl presupuesto es duro: el bundle core (dist/kilden.iife.js) debe pesar
<15KB gzip; los chunks lazy no cuentan. npm run size lo verifica y CI local
falla si se pasa.
