Releases: gmoon/s3proxy
Release v3.0.0 - TypeScript Migration & ESM-Only Architecture
🚀 TypeScript Migration & ESM-Only Architecture
This release migrates s3proxy from JavaScript to TypeScript and adopts an ESM-only architecture, bringing modern development practices, improved type safety, and enhanced developer experience.
🔄 Breaking Changes
Node.js Version Requirement
- Before: Node.js 18+
- After: Node.js 22.13.0+ (required for ESM and modern features)
Import Syntax
// ❌ v2.x (CommonJS) - No longer supported
const { S3Proxy } = require('s3proxy');
// ✅ v3.x (ESM) - New syntax
import { S3Proxy } from 's3proxy';Package Type
- Projects must use ESM or dynamic imports
- Add
"type": "module"to package.json for full ESM support - CommonJS projects can use:
const { S3Proxy } = await import('s3proxy');
✅ What's New
- TypeScript First: Full type safety and enhanced IDE support
- ESM-Only: Modern module system for better performance
- Framework Agnostic: Works with Express, Fastify, Lambda, and more
- Comprehensive Testing: 24 validation tests + performance testing
- Production Ready: Proven with load testing (920MB transferred, 0 failures)
📚 Migration Guide
See the README for complete migration instructions from v2.x to v3.x.
All existing functionality is preserved with improved reliability, maintainability, and developer experience!
Upgrade dependencies
Upgraded dependencies, including devDependencies not listed here:
- "@aws-sdk/client-s3": "^3.321.1",
+ "@aws-sdk/client-s3": "^3.405.0",
- "url": "^0.11.0"
+ "url": "^0.11.1"Upgrade to AWS SDK v3
Using AWS SDK v3 instead of v2. There are some potentially breaking changes so this is a major release.
Update Dependencies
Update dependencies per #62
aws-sdk ^2.1199.0 → ^2.1295.0
chai ^4.3.6 → ^4.3.7
eslint ^8.22.0 → ^8.31.0
eslint-plugin-import ^2.26.0 → ^2.27.4
express ^4.18.1 → ^4.18.2
helmet ^5.1.1 → ^6.0.1
mega-linter-runner ^6.6.0 → ^6.18.0
mocha ^10.0.0 → ^10.2.0
mocha-junit-reporter ^2.0.2 → ^2.2.0
nock ^13.2.9 → ^13.3.0
npm-check-updates ^16.0.5 → ^16.6.2
sinon ^14.0.0 → ^15.0.1
start-server-and-test ^1.14.0 → ^1.15.2
wait-on ^6.0.1 → ^7.0.1
Update dependencies; refactor examples/docker
- Updated package.json dependencies, except express-request-id which is pegged to 1.4.1 due to floatdrop/express-request-id#23
- Updated examples/docker/Dockerfile to depend on https://hub.docker.com/repository/docker/forkzero/s3proxy
Update dependencies
v1.6.3 1.6.3
Update dependencies
Update dependencies
Add version() method
New version() method returns s3proxy version number from package.json
New /version route in examples/docker/express-s3proxy.js
New /version route in forkzero/s3proxy:1.6.1 on Docker Hub
Updated unit tests and README documentation
Add support for Range HTTP header
This release has general purpose support for the Range HTTP header, allowing clients to specify specific byte range(s) to GET rather than the entire file.
#50 Add Range header if provided, for happy media playback on Safari
Upgrade outdated dependencies
Dependency changes:
- "aws-sdk": "^2.906.0",
+ "aws-sdk": "^2.978.0",