Skip to content

v2.0.0 - Major Framework Refactoring

Choose a tag to compare

@chrnx-dev chrnx-dev released this 03 Feb 07:18
· 43 commits to develop since this release

🚀 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

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
  • @HealthCheck decorator for custom health checks

Environment Variable Support (NEW)

  • @Env decorator 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/core

2. Upgrade Node.js

# Using nvm
nvm install 20
nvm use 20

# Or Node.js 22
nvm install 22
nvm use 22

3. 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


🙏 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