v2.0.0 - Major Framework Refactoring
🚀 Expressive Tea v2.0.0 - Major Release
Package Rename
@expressive-tea/core is the new official package name (formerly @zerooneit/expressive-tea)
npm install @expressive-tea/core
# or
yarn add @expressive-tea/core⚠️ Breaking Changes
Node.js Version Requirement
- Dropped Node.js 18 - Now requires Node.js 20.0.0+
- Reason: Node.js 18 reached End-of-Life (April 2025) + ESLint 9.x compatibility
- Supported: Node.js 20 LTS and Node.js 22
Package Rename
- New package:
@expressive-tea/core - Legacy package:
@zerooneit/expressive-tea(security patches until April 30, 2026) - Repository: https://github.com/Expressive-Tea/expresive-tea
Deprecated Versions
- All versions before 2.0.0 are deprecated
- No security patches, bug fixes, or support for v1.x
- Upgrade to v2.0.0 immediately
✨ Features
Complete Framework Refactoring
- TypeScript Strict Mode enabled for maximum type safety
- Enhanced Dependency Injection with scoping methods (
registerSingleton,registerTransient,registerScoped) - EngineRegistry for centralized engine management with dependency resolution
- Native Utility Library - removed internal lodash dependencies, reduced bundle size
Health Check System (NEW)
Built-in production-ready health monitoring:
/health- Detailed health status with all checks/health/live- Liveness probe (Kubernetes compatible)/health/ready- Readiness probe with critical check validation@HealthCheckdecorator for custom health checks
Environment Variable Support (NEW)
@Envdecorator for loading .env files- YAML Configuration support (.expressive-tea.yaml)
- Type-safe environment variables with transformation and validation
- Integration with Zod, Yup, and other validation libraries
ESLint 9 Migration
- Migrated to ESLint v9 flat config (
eslint.config.mjs) - 0 errors, 246 acceptable warnings
- Better TypeScript integration and performance
🔒 Security Fixes
Critical Cryptography Improvements
- Fixed AES-256-GCM implementation with proper authentication tags
- HKDF key derivation for cryptographically secure encryption
- PBKDF2 password hashing (replaced insecure MD5)
- Removed plaintext credential logging
- Fixed HTTPS server initialization
🏗️ Infrastructure
CI/CD Improvements
- CircleCI: Updated to Node.js 22 with Yarn 4.x
- GitHub Actions: Complete CI pipeline (lint, type-check, build, test)
- CodeQL: Security scanning with Node.js 20
- Corepack: Enabled for proper Yarn modern (Berry) support
Test Coverage
- 363 tests passing (363/363 - 100%)
- 95.9% statement coverage
- 88.56% branch coverage
- 97.26% function coverage
📦 Installation
# npm
npm install @expressive-tea/core
# yarn
yarn add @expressive-tea/core
# pnpm
pnpm add @expressive-tea/core🔄 Migration Guide
From v1.x to v2.0.0
1. Update Package Name
npm uninstall @zerooneit/expressive-tea
npm install @expressive-tea/core2. Upgrade Node.js
# Using nvm
nvm install 20
nvm use 20
# Or Node.js 22
nvm install 22
nvm use 223. Update imports
// Old
import { Boot } from '@zerooneit/expressive-tea';
// New
import { Boot } from '@expressive-tea/core';4. Update package.json
{
"engines": {
"node": ">=20.0.0"
}
}No code changes required - This is primarily a runtime and package rename upgrade.
📊 Statistics
- Files Modified: 113 files
- Tests: 363 passing (148 new tests added)
- Coverage: 95.9% (up from ~80%)
- TypeScript Errors Fixed: 85 strict mode violations
- Security Vulnerabilities Fixed: 3 critical issues
- Documentation: 10 comprehensive guides added
📚 Documentation
- CHANGELOG.md - Complete changelog
- MIGRATION_GUIDE_v2.md - Detailed migration guide
- RELEASE_NOTES_v2.0.0.md - Full release notes
- Configuration Files Guide - YAML config support
- Environment Variables Guide - @env decorator usage
🙏 Acknowledgments
Special thanks to the Expressive Tea community for their patience during this major refactoring. This release represents significant work to modernize the framework while maintaining developer experience.
🐛 Found a Bug?
Report issues at: https://github.com/Expressive-Tea/expresive-tea/issues
📝 License
Apache-2.0
Full Changelog: v1.3.0-Beta.6...v2.0.0