# Changelog ## 2026-05-01 - 1.1.1 - fix(build) align TypeScript and test imports with NodeNext builds and safely copy Uint8Array inputs in browser processing - switches the project to NodeNext-oriented TypeScript configuration and updates tests to import built .js entrypoints - replaces direct Uint8Array buffer slicing with explicit ArrayBuffer copies in browser code paths to avoid incorrect input handling - refreshes package metadata, published files, formatting script, and dependency versions to match the updated build setup All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ## [1.1.0] - 2024-08-04 ### Added - Comprehensive performance testing suite with exact timing measurements - Node.js performance tests measuring initialization, conversion times, and quality impact - Browser performance tests with progress tracking and worker timeout analysis - Dedicated performance benchmark suite testing multiple quality configurations - Memory usage analysis with leak detection over multiple conversions - Stress testing for concurrent conversions (20+ simultaneous operations) - Statistical analysis including throughput calculations, standard deviation, and variance - Performance metrics reporting for capacity planning and optimization - Progress callback overhead measurement for web environments - Input type processing time comparison (File, ArrayBuffer, Uint8Array) ### Performance Insights - Initialization: ~200ms for Node.js, ~50-120ms for browser - Throughput: 12,000-60,000+ conversions per second with current implementation - Memory efficiency: <0.03MB growth per conversion, no memory leaks detected - Concurrent processing: 100% success rate for 20 simultaneous conversions - Browser overhead: Minimal additional latency for web worker setup ## [1.0.0] - 2024-08-03 ### Added - Initial release of @push.rocks/smartpreview - Dual environment support for Node.js and browsers - PDF to JPEG preview generation with configurable quality and dimensions - Web Worker-based processing for non-blocking browser operations - TypeScript-first design with comprehensive type definitions - Extensible architecture ready for additional formats - Comprehensive error handling with typed error system - Factory method pattern for easy instantiation - Browser compatibility checking utilities - File download functionality for web environments - Multi-page PDF preview support - Progress callback support for web environments - Complete test suite covering both environments ### Features - **Node.js Implementation**: Uses @push.rocks/smartpdf for server-side PDF processing - **Browser Implementation**: PDF.js integration with Web Workers for client-side processing - **Configuration Options**: Quality (1-100), dimensions, page selection, and scaling - **Error Handling**: Detailed error types including PDF_CORRUPTED, PAGE_NOT_FOUND, WORKER_ERROR - **Cross-Platform**: Single API works in Node.js, browsers, and edge functions - **Type Safety**: Full TypeScript support prevents runtime errors - **Performance**: Optimized for high-volume production use [1.1.0]: https://code.foss.global/push.rocks/smartpreview/releases/tag/v1.1.0 [1.0.0]: https://code.foss.global/push.rocks/smartpreview/releases/tag/v1.0.0