🎯 Overview
Implements automatic image compression for AI providers with provider-specific size limits to optimize API requests and reduce costs.
📝 Changes
New Files
src/utils/imageCompressor.ts - Core image compression utility with Sharp
src/types/imageCompressor.ts - TypeScript type definitions
test/imageCompressor.test.ts - Comprehensive test suite
Features
✅ Provider-specific size limits (OpenAI: 20MB, Anthropic: 5MB, Google: 4MB)
✅ Automatic quality reduction (starts at 90%, reduces by 10% per attempt)
✅ Format conversion support (JPEG, PNG, WebP)
✅ Maintains aspect ratio during compression
✅ Detailed compression statistics
✅ Error handling and validation
Dependencies
- Added
sharp (^0.33.2) for high-performance image processing
- Added
@types/sharp (^0.32.0) for TypeScript support
🧪 Testing
All tests passing with comprehensive coverage:
- Compression within size limits
- Format conversion
- Quality reduction
- Error handling
- Edge cases
📚 Related
Closes #553
👤 Author
Implementation by: Charan V (charan.v@juspay.in)
Co-authored-by: Charan V charan.v@juspay.in
🎯 Overview
Implements automatic image compression for AI providers with provider-specific size limits to optimize API requests and reduce costs.
📝 Changes
New Files
src/utils/imageCompressor.ts- Core image compression utility with Sharpsrc/types/imageCompressor.ts- TypeScript type definitionstest/imageCompressor.test.ts- Comprehensive test suiteFeatures
✅ Provider-specific size limits (OpenAI: 20MB, Anthropic: 5MB, Google: 4MB)
✅ Automatic quality reduction (starts at 90%, reduces by 10% per attempt)
✅ Format conversion support (JPEG, PNG, WebP)
✅ Maintains aspect ratio during compression
✅ Detailed compression statistics
✅ Error handling and validation
Dependencies
sharp(^0.33.2) for high-performance image processing@types/sharp(^0.32.0) for TypeScript support🧪 Testing
All tests passing with comprehensive coverage:
📚 Related
Closes #553
👤 Author
Implementation by: Charan V (charan.v@juspay.in)
Co-authored-by: Charan V charan.v@juspay.in