export function formatDistanceToNow(date: Date): string { const seconds = Math.floor((new Date().getTime() - date.getTime()) / 1000) let interval = seconds / 31536000 if (interval > 1) return Math.floor(interval) + ' years ago' interval = seconds / 2592000 if (interval > 1) return Math.floor(interval) + ' months ago' interval = seconds / 86400 if (interval > 1) return Math.floor(interval) + ' days ago' interval = seconds / 3600 if (interval > 1) return Math.floor(interval) + ' hours ago' interval = seconds / 60 if (interval > 1) return Math.floor(interval) + ' minutes ago' return Math.floor(seconds) + ' seconds ago' } export function formatFileSize(bytes: number): string { if (!Number.isFinite(bytes) || bytes < 0) return '0 B' if (bytes === 0) return '0 B' const k = 1024 const sizes = ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'] const i = Math.floor(Math.log(bytes) / Math.log(k)) // Prevent index out of bounds for extremely large numbers const unit = sizes[i] || sizes[sizes.length - 1] const val = bytes / Math.pow(k, i) return parseFloat(val.toFixed(2)) + ' ' + unit }