native-update
Version:
Foundation package for building a comprehensive update system for Capacitor apps. Provides architecture and interfaces but requires backend implementation.
71 lines (70 loc) • 2.11 kB
TypeScript
export interface UpdateEvent {
type: 'check' | 'download' | 'install' | 'error' | 'rollback';
version?: string;
success: boolean;
duration?: number;
error?: string;
metadata?: Record<string, any>;
}
export interface AnalyticsProvider {
trackEvent(event: UpdateEvent): Promise<void>;
trackError(error: Error, context?: Record<string, any>): Promise<void>;
setUserId(userId: string): void;
setProperties(properties: Record<string, any>): void;
}
export declare class Analytics {
private static instance;
private providers;
private readonly logger;
private userId?;
private properties;
private constructor();
static getInstance(): Analytics;
/**
* Add an analytics provider
*/
addProvider(provider: AnalyticsProvider): void;
/**
* Track an update event
*/
trackEvent(event: UpdateEvent): Promise<void>;
/**
* Track an error
*/
trackError(error: Error, context?: Record<string, any>): Promise<void>;
/**
* Set user ID for analytics
*/
setUserId(userId: string): void;
/**
* Set global properties
*/
setProperties(properties: Record<string, any>): void;
/**
* Track update check
*/
trackUpdateCheck(available: boolean, version?: string): Promise<void>;
/**
* Track download progress
*/
trackDownload(version: string, success: boolean, error?: string): Promise<void>;
/**
* Track installation
*/
trackInstall(version: string, success: boolean, error?: string): Promise<void>;
/**
* Track rollback
*/
trackRollback(fromVersion: string, toVersion: string, reason: string): Promise<void>;
}
/**
* Console analytics provider for development
*/
export declare class ConsoleAnalyticsProvider implements AnalyticsProvider {
private userId?;
private properties;
trackEvent(event: UpdateEvent): Promise<void>;
trackError(error: Error, context?: Record<string, any>): Promise<void>;
setUserId(userId: string): void;
setProperties(properties: Record<string, any>): void;
}