Only features and major fixes are listed. Everything else can be considered a minor bugfix or maintenance release.
- BREAKING CHANGE:
DimensionFunctionhas been replaced withGeometryFunction, changing both the option name and the shape of the expected return value - Can now probe the image stream for tile size information
- Information document (
info.json) is now rendered using tile size information from the image (or from theGeometryFunction), falling back to a default of 256
- Made entire suite able to pass the IIIF Image API Validator
- Added automatic redirect for requests that don't specify a transformation or
info.json - Added return types for redirect and error as well as content, eliminating most situations in which
IIIFErrorwas thrown - Improved test suite
- Added validator to test suite
- Auto-orient images based on EXIF orientation before transforming
- Complete refactor of entire library into TypeScript
- StreamResolver is now Promise-only: the single-argument resolver must return a
Promise<ReadableStream>; update examples and tests accordingly. - Deprecate the 2-argument callback resolver form; it continues to work for now but will be removed in a future major version. Prefer the promise-based resolver.
- Add strict typecheck scripts and internal TypeScript type contracts to reduce
anyusage. - Improve TypeScript style and CI workflows [blimmer]
- Refactor pipeline creation to simplify scaling
- Add Clover IIIF manifest viewer and sample manifest/images to tiny-iiif example
- Update
pathPrefixconstructor option to accept a{{version}}placeholder and RegExp elements (default:/iiif/{{version}}/)
- Export
Calculator - Make
sharpan optional dependency for those who just want to useCalculator
- Add support for IIIF Image API v3.0.0 alongside support for v2.1.1
- Add
canonicalLinkandprofileLinkproperties to the response to support the respective link header features (see example of how to use this) - Add
versiontoIIIF.Processorconstructor options - [BREAKING CHANGE] The
maxWidthoption was changed tomax: { width, height, area }in order to support the IIIFmaxHeightandmaxAreaconstraints
- Major refactor to support multi-resolution source images
- Backward-compatible overhaul of
dimensionFunction - Split
Calculatorout fromOperationsto make certain pre-transform information available with low overhead - Use
sharp.metadata()instead ofprobe-image-sizein default dimension function
- Support dimension probing for JPEG 2000 images
- Add
pathPrefixoption (default:/iiif/2/) to constructor instead of popping a specific number of path segments off of the end of the URL
-
[BREAKING CHANGE] The
idparameter passed to the stream resolver and dimensions callback was changed from astringto anobjectcontaining theidandbaseUrl.To maintain the existing behavior, you can use destructuring of the argument. For example:
streamResolver(id) { } // old streamResolver(id, callback) { } // old streamResolver({ id }) { } // new streamResolver({ id }, callback) { } // new dimensionFunction(id) { } // old dimensionFunction({ id }) { } // new
See issue #19 for context on why this change was made.
-
Use a consistent name for dimensions function in
README.md
- Add pixel density option
- Improve documentation
- Full test coverage
- Allow transformation to include existing metadata
- Allow
.tiffand.webprequests - Accept
.tifand.jpeg
- Add optional dimension function and
maxWidthparameter to initializer
- Initial release