Current Version: 1.0.7
This project follows Semantic Versioning and Keep a Changelog format.
[1.0.7] - 2025-12-31
Added
Typed Path Autocomplete
IDE autocomplete for object paths
Path Utility Types
Path<T>, NumericPath<T>, StringPath<T>createRuleHelpers<T>()now accepts generic type for path autocomplete- IDE will suggest valid paths like
'user.name','order.total' - Type-safe: numeric operators only accept numeric paths
Path<T>- All valid dot-notation pathsPathValue<T, P>- Get value type at pathNumericPath<T>,StringPath<T>,BooleanPath<T>,ArrayPath<T>
Changed
- Consolidated
RuleHelperstypes into single generic class - Backward compatible: untyped usage works as before
[1.0.6] - 2025-12-25
Added
- TypeScript declaration files with improved JSDoc
Changed
- Extended
in,notIn,oneOfto accept string paths for dynamic array lookup
[1.0.5] - 2025-12-20
Fixed
- Type definition fixes and alignment with implementation
[1.0.4] - 2025-12-15
Fixed
🐛 Type Definition FixesevaluateExprnow returnsEvaluationResultwithsuccesspropertyRuleHelperscomparison methods treatoptionsas optionalPathResolver.resolvemethod name aligned with implementation- Added
flagsproperty toStringOptionsfor regex
Changed
- Removed unsupported
caseInsensitiveandtrimfrom type options - Added
persistenceconfig type forStatefulRuleEngine
[1.0.3] - 2025-12-09
Added
Stateful Rule Engine
Event-driven state tracking
State Change Operators
6 new operators for detecting changes
StatefulRuleEngineclass for state tracking and event-driven evaluation- Event system:
triggered,untriggered,changed,evaluated - History storage with configurable size limits
- Batch evaluation with
evaluateBatch()
changed,changedBy,changedFrom,changedTo,increased,decreased
Changed
- Bundle size optimized: ESM/CJS reduced by 62% (~45KB, 11KB gzipped)
[1.0.2] - 2025-08-20
Added
New String Length Validation Helpersvalidation.minLength(path, minLength)- Validates minimum string lengthvalidation.maxLength(path, maxLength)- Validates maximum string lengthvalidation.lengthRange(path, min, max)- Validates string length rangevalidation.exactLength(path, length)- Validates exact string length
- Claude Code integration context (
CLAUDE.md) - Comprehensive test coverage expansion with 382+ new test cases
- Enhanced basic core functionality tests
- Expanded logical operator test coverage
- Comprehensive string operator validation
Changed
- Improved CI/CD pipeline with Claude Code Review workflow
- Enhanced test suite organization with better edge case coverage:
- Empty string handling
- Boundary condition testing
- Very long string validation
- Comprehensive string length scenarios
Fixed
- Various code quality improvements
- Better error handling and validation coverage
[1.0.0] - 2025-08-12
🎉 First stable release of Rule Engine JS
Core Features
Engine- High-performance rule evaluation with caching
- Dynamic field comparison support
- Built-in security protections
- TypeScript definitions
- Zero external dependencies
Performance
- LRU caching for expressions and path resolution
- Performance metrics tracking
- Bundle size < 25KB gzipped
- Multiple output formats (UMD, ESM, CommonJS)
Developer Experience
- Rule helpers for clean, readable syntax
- Comprehensive error handling with detailed context
- Extensive test coverage (>90%)
- Complete TypeScript support
- Field comparison helpers for dynamic rules
Security
- Prototype pollution protection
- Function access prevention
- Safe path resolution
- Configurable security settings
Build System
- Optimized Rollup configuration
- Multiple output formats
- Bundle size analysis
- Quality checks integration
[0.9.0] - Development Phase
Added
- Core engine architecture
- Basic operator implementations
- Initial testing framework
Changed
- Refined API design based on testing
Fixed
- Various bug fixes during development
Version History
v1.0.7 - Typed Path Autocomplete
v1.0.7 - Typed Path Autocomplete
Generic
RuleHelpers<T> with IDE path autocomplete supportv1.0.6 - Dynamic Array Paths
v1.0.6 - Dynamic Array Paths
Extended operators to accept string paths for array lookup
v1.0.5 - Type Fixes
v1.0.5 - Type Fixes
Type definition fixes and alignment
v1.0.4 - Type Alignment
v1.0.4 - Type Alignment
Fixed type definition mismatches
v1.0.3 - Stateful Engine
v1.0.3 - Stateful Engine
StatefulRuleEngine with state change operators and event system
v1.0.2 - String Validation
v1.0.2 - String Validation
String length validation helpers and expanded test coverage
v1.0.0 - Stable Release
v1.0.0 - Stable Release
First stable release with complete feature set
v1.0.0 Highlights
Key Features:- Zero Dependencies: Lightweight with no external dependencies
- High Performance: Intelligent caching with LRU eviction
- Type Safe: Full TypeScript support with comprehensive type definitions
- Secure: Built-in protection against common security vulnerabilities
- Flexible: Support for dynamic field comparison and custom operators
- Developer Friendly: Clean API with helper functions for rule construction
- User access control and permissions
- Business rule validation
- Form validation with dynamic dependencies
- Content filtering and recommendations
- Dynamic pricing and discount logic
- Workflow and approval processes
Migration Guides
- v1.0.6 → v1.0.7
- v1.0.5 → v1.0.6
- v1.0.2 → v1.0.3
No breaking changesNew typed path autocomplete:
Contributing to Changelog
When contributing, please follow these guidelines:-
Add entries under
[Unreleased]for new changes -
Use standard categories:
Added- New featuresChanged- Changes in existing functionalityDeprecated- Soon-to-be removed featuresRemoved- Removed featuresFixed- Bug fixesSecurity- Vulnerability fixes
-
Format:
- Brief description of change (#PR-number) - Move entries to dated release when releasing
