import type { AnalyticsAdapter, AnalyticsEvent, AliasPayload, GroupPayload, IdentifyPayload, ScreenEvent, } from '../types'; /** * Console adapter — logs all events to the console. * Ideal for development and debugging. */ export function createConsoleAdapter(options: { verbose?: boolean } = {}): AnalyticsAdapter { const prefix = '[AnalyticsBridge:console]'; const log = (...args: any[]) => console.log(prefix, ...args); return { name: 'console', async initialize() { log('Adapter initialized'); }, async track(event: AnalyticsEvent) { if (options.verbose) { log('TRACK', JSON.stringify(event, null, 2)); } else { log('TRACK', event.name, event.properties ?? {}); } }, async screen(event: ScreenEvent) { if (options.verbose) { log('SCREEN', JSON.stringify(event, null, 2)); } else { log('SCREEN', event.name, event.properties ?? {}); } }, async identify(payload: IdentifyPayload) { log('IDENTIFY', payload.userId, payload.traits ?? {}); }, async group(payload: GroupPayload) { log('GROUP', payload.groupId, payload.traits ?? {}); }, async alias(payload: AliasPayload) { log('ALIAS', payload.previousId, '->', payload.newId); }, async reset() { log('RESET'); }, }; }