- Updated implementation to match implementation in other languages.
- Add data type cast to Integer, Float and Boolean.
- Removed classes, migrated to pure functions.
- Unlimited expression nesting, i.e. comparison expression operands now could be arbitrary expressions. (e.g.: [==, $RefA, [==, 1, 1]])
- Any primitive values could be now evaluated, i.e. the parser does not restrict the expression input to be a logical expression. (e.g.: illogical.evaluate(1) evaluated as 1)
- Collections starting with logical or comparison expression operator symbol could be now escaped to be processed as regular collections. (e.g.: [IN, $RefA, [==, 1, 1]] ... "" is used as escape character (configurable))
- Refactoring of parser options.
- Simplification of references now allows to use regular expressions in "ignoredPaths".
- Complete test coverage.
- Fix issue with nested conditions not being completely simplified.
- Add simplify capability to strictly evaluate the expression for all referred values not present in the context except for a specified list of optional keys
- Prevent unexpected parsing of any expression used as an operand in a comparison expression
- Change
@babel/env
preset target to> 1%, node 12
- Add support for reference variable data type casting before expression evaluation
- Add simplify method in the engine to simplify expressions
- Add support for array element targeting within reference operand key
- Add support for array element targeting via reference within reference operand key
- Add support for nested key resolution within reference operand key
- Add support for composite key resolution within reference operand key
- Add support for null and undefined in isObject() method
- Add Present comparison expression.
- Allow zero argument logical expressions to be treated as a collection.
- Allow logical expressions without any inner expressions to be treated as a collection.
- Simplification of the codebase.
- Add Not logical expression.
- Breaking change: removed parser strict mode.
- Operand of array value now correctly resolves references.
- Add Overlap comparison expression.
- Add predicate expression types.
- Add Undefined predicate expression.
- Value operand supports null and undefined as values.
- Invalid logical/comparison expression throw exception.
- Add Prefix comparison operator.
- Add Suffix comparison operator.
- Update readme.
- Add support for nested data context.
- Add typescript types path into package.json.
- Initial release.