UNPKG

cardamon

Version:

A CLI tool for measuring the carbon footprint and energy consumption of web pages using the Cardamon model

194 lines 4.32 kB
export interface Sample { value: number; timestamp: number; } export interface DeviceSpecs { type: 'mobile' | 'desktop' | 'server'; oledProportion: number; oledMinPower: number; oledMaxPower: number; lcdPower: number; idlePower: number; networkMaxPower: number; networkMinPower: number; networkTransferRate: number; boaviztaCoefficients: { a: number; b: number; c: number; d: number; }; embodiedEmissions: { manufacturing: number; lifetime: number; }; info: { name: string; description: string; specs: { cpu: { cores: number; vcpu?: number; count?: number; }; }; pue: number; guessCpuUtilization?: number; }; } export interface NetworkMetrics { cachedBytes: number; uncachedBytes: number; duration: number; } export interface RegionalDistribution { region_code: string; carbon_intensity: number; proportion: number; } export interface UserAnalytics { page_visit_count: number; return_visit_count: number; start_date: string; end_date: string; average_session_duration?: number; regional_distribution: RegionalDistribution[]; } export interface ServerConfig { serverId: string; vcpu: number; cpuUtilization: number; quantity: number; totalServerVisit: number; totalReportVisit: number; regionalDistribution: { regionCode: string; carbonIntensity: number; }; specs?: DeviceSpecs; } export interface CardamonConfig { frontend: { cpu: Sample[]; screen: Sample[]; network: NetworkMetrics; device: DeviceSpecs; }; backend: { network: NetworkMetrics; serverConfig: ServerConfig[]; }; userAnalytics: UserAnalytics; scalingMethod: 'frontend' | 'backend'; } export interface EnergyMetrics { frontend: { cpu: number; screen: number; network: number; idle: number; operational: number; total: number; }; backend: { cpu: number; network: number; idle: number; operational: number; total: number; }; infrastructure: { network: number; }; operational: number; total: number; } export interface EmissionsMetrics { frontend: { cpu: number; screen: number; network: number; idle: number; operational: number; embodied: number; total: number; }; backend: { cpu: number; network: number; idle: number; operational: number; embodied: number; total: number; }; infrastructure: { network: number; }; operational: number; embodied: number; total: number; } export interface CPUUsage { value: number; timestamp: number; } export interface ColorProfile { value: number; timestamp: number; } export interface NetworkRequest { url: string; method: string; resourceType: string; requestId: string; timestamp: number; responseReceivedTime: number; encodedDataLength: number; decodedBodyLength: number; transferSize: number; fromCache: boolean; status: number; mimeType: string; } export interface FrontendMetrics { cpu: CPUUsage[]; colorProfile: ColorProfile[]; duration: number; } export interface NetworkMetricsExtended { requests: NetworkRequest[]; totalBytes: number; cachedBytes: number; loadEventSize: number; resourceBreakdown: any; duration: number; } export interface CardamonResult { frontend: { energy: number; co2: number; rating: string; }; network: { energy: number; co2: number; rating: string; }; total: { energy: number; co2: number; rating: string; }; metrics: { frontend: FrontendMetrics; network: NetworkMetricsExtended; }; } export interface MeasurementConfig { url: string; duration: number; carbonIntensity: number; device: 'desktop' | 'mobile'; quick?: boolean; } //# sourceMappingURL=types.d.ts.map