Releases: shelfio/aws-lambda-libreoffice
Releases · shelfio/aws-lambda-libreoffice
v9.0.1
v9.0.0
Highlights
- Adopt LibreOffice 25.2 in the Lambda runtime (
convertTo
now shells out tolibreoffice25.2
), matching the latest Shelf base image and unlocking the newest import/export fixes. - Replace the ad-hoc integration shell scripts with a Podman-backed Lambda harness. Use
pnpm test:integration
for Jest integration coverage andpnpm test:lambda
to bundle the handler, build a disposable image, spin up the runtime, and inspect real conversion output. - Add reusable build utilities (
scripts/build-lambda.mjs
plus thescripts/utils/*
helpers) that generate the Lambda bundle, manage container lifecycles, and expose conversion summaries for debugging. - Tighter error reporting from
convertTo
: the thrown error now keeps LibreOffice stderr/stdout in thecause
, making failed conversions easier to diagnose.
Breaking changes
- The package now expects a base image that provides the
libreoffice25.2
binary. Update to the matchinglibreoffice-lambda-base
tag (for examplepublic.ecr.aws/shelf/lambda-libreoffice-base:25.2-node22-x86_64
) before deploying. - The legacy
test/
harness has been removed. Local end-to-end checks require Podman; the Jest integration suite will skip automatically when Podman or the base image is not available.
Testing
pnpm test:unit
pnpm test:integration
pnpm test:lambda -- --cleanup
Release v8.0.0: Major ESM migration and Node.js 22 upgrade
🚀 Major Changes
This is a major release that introduces breaking changes to modernize the package and improve its stability.
💥 Breaking Changes
- ESM Migration: Package now uses ES modules instead of CommonJS
- Node.js 22+: Minimum Node.js version requirement increased from 16 to 22
- Build System: Switched from Babel to TypeScript compiler for cleaner builds
- Package Manager: Updated toolchain to use pnpm instead of yarn
✨ New Features
- Improved LibreOffice conversion error detection and handling
- Enhanced stderr error propagation for better debugging
- Comprehensive test setup with updated testing infrastructure
🔧 Improvements
- Updated to ESLint v9 with modern configuration
- Upgraded all dependencies to latest versions
- Cleaner package structure with proper ESM exports
- Removed legacy Babel configuration and CircleCI hooks
- Updated TypeScript to 5.9.2 and Jest to 30.0.5
📦 Dependencies
- Updated
@shelf/is-audio-filepath
from 2.0.0 to 3.0.1 - Updated
del
from 5.1.0 to 8.0.0 - Updated
is-image
from 3.1.0 to 4.0.0 - Updated
is-video
from 1.0.1 to 2.0.0
⚠️ Migration Guide
If you're upgrading from v7.x:
- Ensure you're using Node.js 22 or higher
- Update your imports to use ES module syntax:
// Before const { convertTo } = require('@shelf/aws-lambda-libreoffice'); // After import { convertTo } from '@shelf/aws-lambda-libreoffice';
Full Changelog: v7.2.0...v8.0.0
v7.1.0
File extensions .msg
and .mpp
added to unsupported files
v6.0.0
- Switch to async API. All methods now return promises
v4.1.0
- Add
.zip
to unsupported files - Extend an error message when converting to pdf
v4.0.1
- NPM vulnerabilities fixes
v4.0.0
- Requires Node.js 16.x+ support
- No extensions support for now. It was in 3.x w/ LibreOffice 6.x, but with LO 7.3 I can't figure out how to make them work. PRs are welcome!
- Now requires Lambda to be based on the Docker Image https://github.com/shelfio/libreoffice-lambda-base-image
v3.0.1
v3.0.0
- Support Amazon Linux 2 (works with the Latest
arn:aws:lambda:us-east-1:764866452798:layer:libreoffice-brotli:1
layer) - Drop
@shelf/aws-lambda-brotli-unpacker
as since Node.js v10 brotli is natively supported
See https://github.com/vladgolubev/serverless-libreoffice/releases/tag/v6.4.0.1 for details