@re-shell/cli
Version:
Full-stack development platform uniting microservices and microfrontends. Build complete applications with .NET (ASP.NET Core Web API, Minimal API), Java (Spring Boot, Quarkus, Micronaut, Vert.x), Rust (Actix-Web, Warp, Rocket, Axum), Python (FastAPI, Dja
77 lines (76 loc) • 2.18 kB
TypeScript
import { EventEmitter } from 'events';
export interface AnalyticsEvent {
event: string;
properties?: Record<string, any>;
timestamp: Date;
sessionId: string;
userId?: string;
version: string;
platform: string;
nodeVersion: string;
}
export interface AnalyticsMetric {
name: string;
value: number;
timestamp: Date;
tags?: Record<string, string>;
}
export interface AnalyticsTiming {
label: string;
startTime: number;
endTime?: number;
duration?: number;
}
export interface AnalyticsOptions {
enabled?: boolean;
debug?: boolean;
batchSize?: number;
flushInterval?: number;
endpoint?: string;
storageDir?: string;
anonymize?: boolean;
customProperties?: Record<string, any>;
}
export declare class Analytics extends EventEmitter {
private enabled;
private debug;
private batchSize;
private flushInterval;
private endpoint?;
private storageDir;
private anonymize;
private customProperties;
private sessionId;
private userId?;
private events;
private metrics;
private timings;
private flushTimer?;
constructor(options?: AnalyticsOptions);
private initialize;
private isAnalyticsEnabled;
private generateSessionId;
private generateUserId;
private getMachineId;
private startFlushTimer;
track(event: string, properties?: Record<string, any>): void;
timeStart(label: string): void;
timeEnd(label: string): void;
increment(metric: string, value?: number, tags?: Record<string, string>): void;
flush(): void;
private saveToDisk;
private cleanupOldFiles;
private sendToEndpoint;
private loadPendingEvents;
private getVersion;
disable(): void;
enable(): void;
isEnabled(): boolean;
setUserId(userId: string): void;
setCustomProperties(properties: Record<string, any>): void;
getSessionId(): string;
getUserId(): string | undefined;
}
export declare function createAnalytics(options?: AnalyticsOptions): Analytics;
export declare function getGlobalAnalytics(): Analytics;
export declare function setGlobalAnalytics(analytics: Analytics): void;