Skip to content

Latest commit

 

History

History
executable file
·
103 lines (63 loc) · 3.91 KB

File metadata and controls

executable file
·
103 lines (63 loc) · 3.91 KB

Changelog

All notable changes to Compressor.js Next are documented in this file, which is (mostly) AI-generated and (always) human-edited. Dependency updates may or may not be called out specifically.

The format is based on Keep a Changelog, and the project adheres to Semantic Versioning.

[2.0.1] - 2026-02-27

Fixed

  • Updated compressed result to be returned as a File object rather than a plain Blob, so instanceof File checks pass without manual conversion (fengyuanchen/compressorjs#146)

[2.0.0] - 2026-02-20

Fixed

  • Ensured EXIF data is consistently stripped across all browsers when retainExif is false—WebKit’s canvas previously preserved the source EXIF in JPEG output

Changed

  • Expanded browser test matrix to include Firefox and WebKit (in addition to Chromium)

Removed

  • Removed checkOrientation option—all modern browsers now apply EXIF orientation natively via image-orientation: from-image (including in canvas.drawImage()), making manual correction redundant

[1.1.2] - 2026-02-16

Fixed

  • Added types condition to exports field so TypeScript finds type declarations with modern moduleResolution settings (#21)

[1.1.1] - 2026-02-15

Fixed

  • Added detection for unreliable canvas (e.g., Firefox privacy.resistFingerprinting), falling back to returning the original image with EXIF stripped, instead of silently corrupted output (fengyuanchen/compressorjs#177)

Added

  • Added warning when canvas is unreliable or produces no output

Removed

  • Removed deprecated lastModifiedDate property from output (use lastModified instead)

[1.1.0] - 2026-02-12

Fixed

  • Explicit mimeType option is no longer overridden by convertTypes/convertSize auto-conversion

Changed

  • BREAKING: Changed convertTypes default from ['image/png'] to [] to preserve PNG transparency by default (fengyuanchen/compressorjs#184) [not made major release due to package being so new]

[1.0.2] - 2026-02-12

Changed

  • Tightened package documentation

[1.0.1] - 2026-02-11

Changed

  • Simplified demo
  • Added makeshift development server option

[1.0.0] - 2026-02-11

Fixed

  • Fixed blob URL memory leak in error and abort paths
  • Fixed deprecated substr() usage

Changed

  • BREAKING: Adopted Compressor.js as Compressor.js Next
  • BREAKING: Made ESM the default module format via exports field (CommonJS still supported)
  • BREAKING: Removed noConflict() method
  • BREAKING: Dropped Internet Explorer support
  • Updated all dependencies
  • Migrated from Karma/Mocha/Chai to Vitest with browser mode for cleaner ESM-native testing
  • Updated .browserslistrc to target only modern browsers, reducing transpilation overhead
  • Added "type": "module" for native ESM support
  • Added "sideEffects": false for better tree-shaking support
  • Converted all test files to async/await pattern
  • Added unit tests for utility functions
  • Added tests for blob URL cleanup verification
  • Updated TypeScript declarations
  • Replaced uglify-js with terser
  • Migrated to ESLint flat config
  • Reviewed and revised entire project
  • Refactored binary handling functions (getExif, insertExif, arrayBufferToDataURL) to use DataView instead of Array.from() for significantly better memory efficiency on large images

Removed

  • Removed unused dependencies
  • Removed blueimp-canvas-to-blob dependency (canvas.toBlob() now universally supported)
  • Removed is-blob dependency (use native instanceof Blob)
  • Removed Karma/Mocha/Chai testing stack
  • Removed issue report templates and requirements