Skip to content

Latest commit

 

History

History
232 lines (190 loc) · 12.4 KB

CHANGELOG.md

File metadata and controls

232 lines (190 loc) · 12.4 KB

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

0.13.1 / 2025-01-12

⚠️ Breaking Changes

  • Renamed FilterToken.OpenParenthese to FilterToken.LeftParenthesis
  • Renamed FilterToken.CloseParenthese to FilterToken.RightParenthesis
  • Renamed FilterToken.LeftBrace to FilterToken.LeftCurlyBrace
  • Renamed FilterToken.RightBrace to FilterToken.RightCurlyBrace
  • Renamed FilterToken.OpenSquaredBracket to FilterToken.LeftSquaredBrace
  • Renamed FilterToken.CloseSquaredBracket to FilterToken.RightSquaredBrace

🚨 Fixes

  • Fixed incorrect parsing of scientific numeric values (with E symbol).
  • Fixed incorrect parsing of some expressions that uses * character
  • Fixed incorrect parsing of text expressions when used in combination with contains

🧹 Housekeeping

  • Pipeline fails to publish NuGet packages to GitHub due to incorrect URL
  • Refactoring of ISimplifiable implementations
  • Updated GitHub nuget registry URL
  • Bumped Candoumbe.Pipelines to 0.13.0-rc.39
  • Bumped Microsoft.NET.Test.Sdk to 17.11.1

0.13.0 / 2024-07-11

🚀 New features

  • Added net8.0 support

⚠️ Breaking Changes

  • Dropped net7.0 support
  • Dropped net5.0 support
  • Dropped netcoreapp3.1 support
  • Dropped netstandard1.3 support
  • Removed IFilterService and FilterService

🚨 Fixes

  • NumericValueExpression and StringValueExpression can be equal when they wrap the same underlying value (#80)
  • Fixed ArgumentException thrown when creating a Filter with startswith | contains | endswith operator and a char value (#284)

🧹 Housekeeping

  • Moved CI pipeline to Ubuntu agent
  • Updated build definition to Candoumbe.Pipelines 0.9.0
  • Updated build.sh script by running nuke :update command
  • Removed explicit Nuke.Common dependency from the build project
  • Added local file to store encrypted secrets needed when running some CI targets locally
  • Replaced property based testing with handwritten test cases to validate DateTimeExpression.Equals implementation(#237)
  • Fixed incorrect casing filename for IFilter.cs
  • Dropped xunit and xunit.extensibility.execution direct dependencies for tests

0.12.0 / 2022-10-12

🚀 New features

  • Added net7.0 support
  • Added syntax for OneOfExpression using curly braces (#123)
  • Added + operator to combine ConstantValueExpression with AsteriskExpression
  • Added + operator to combine StartsWithExpression with EndsWithExpression
  • Added + operator to combine StartsWithExpression with ContainsExpression
  • Added + operator to combine StartsWithExpression with StartsWithExpression
  • Added + operator to combine StartsWithExpression with StringValueExpression
  • Added | operator to combine two FilterExpressions into a OrExpression
  • Added & operator to combine two FilterExpressions into a AndExpression

⚠️ Breaking changes

  • AsteriskExpression default constructor is now private
  • Dropped filter service
  • Renamed ISort<T> to IOrder<T>
  • Renamed Sort<T> to Order<T>
  • Renamed MultiSort<T> to MultiOrder<T>
  • Renamed SortValidator<T> to OrderValidator<T>
  • Renamed SortToQueries class to OrderExtensions in DataFilters.Queries
  • Renamed SortExtensions class to OrderExtensions in DataFilters.Expressions

0.12.0 / 2022-10-12

🚀 New features

  • Added syntax for OneOfExpression using curly braces (#123)
  • Added + operator to combine ConstantValueExpression with AsteriskExpression
  • Added + operator to combine StartsWithExpression with EndsWithExpression
  • Added + operator to combine StartsWithExpression with ContainsExpression
  • Added + operator to combine StartsWithExpression with StartsWithExpression
  • Added + operator to combine StartsWithExpression with StringValueExpression
  • Added | operator to combine two FilterExpressions into a OrExpression
  • Added & operator to combine two FilterExpressions into a AndExpression

⚠️ Breaking changes

  • AsteriskExpression default constructor is now private
  • Dropped filter service
  • Renamed ISort<T> to IOrder<T>
  • Renamed Sort<T> to Order<T>
  • Renamed MultiSort<T> to MultiOrder<T>
  • Renamed SortValidator<T> to OrderValidator<T>
  • Renamed SortToQueries class to OrderExtensions in DataFilters.Queries
  • Renamed SortExtensions class to OrderExtensions in DataFilters.Expressions

0.11.0 / 2022-03-13

0.10.2 / 2022-03-09

  • Fixed NullReferenceException thrown when calling OffsetExpression.Equals(null) (#98)

0.10.1 / 2022-03-09

  • Fixed equality implementation of OffsetExpression when comparing two OffsetExpression.Zero when the only difference is the numeric sign

0.10.0 / 2022-01-12

  • Added IFilterService which caches IFilter results. This partially addresses issue #15
  • Fixed NotSupportedException thrown when calling Negate() on a IFilter that contains the FilterOperator.NotContain operator

0.9.0 / 2021-12-30

  • Made BracketValue implement IParseable, IHaveComplexity
  • Bumped Candoumbe.MiscUtilities to 0.6.3
  • Bumped Queries.Core to 0.4.0
  • Added DateOnly support (#63)
  • Added TimeOnly support (#64)
  • Added NullableValueBehavior (#68)

0.8.0 / 2021-10-10

  • Added ISimplifiable marker interface which defines a FilterExpression.Simplify() method to rewrite a FilterExpression to a less complex form.
  • Renamed RangeExpression to IntervalExpression [BREAKING]
  • Added IParseableString interface which defines :
    • EscapedParseableString property that holds a string representation of a FilterExpression instance (#26).
    • OriginalString property that holds the string representation of a filter BEFORE being escaped.
  • Added Deconstruct method for TimeExpression class.
  • Added BoolValueExpression
  • Added NumericValueExpression to improve parsing of numeric values (#29)
  • Added TextExpression
  • Made ConstantValueExpression abstract [BREAKING]

0.7.0 / 2021-06-29

  • Fixed missing documentation (#17)
  • Fixed parsing *<regex>, <regex>* expressions (#18)
  • Added complexity measurement of a FilterExpression (#19)
  • Renamed PropertyNameExpression to PropertyName as its no longer a FilterExpression [BREAKING]
  • Removed EqualExpression
  • Added support for [<start>-<end>] regex syntax [BREAKING]
  • Renamed RegularExpression to BracketExpression [BREAKING]
  • Renamed RegularValue to BracketValue [BREAKING]
  • Renamed RegularConstantValue to ConstantBracketValue [BREAKING]
  • Renamed RegularRangeValue to RangeBracketValue [BREAKING]
  • Replaced ConstantValueExpression(object) constructor by : [BREAKING]
    • ConstantValueExpression(string)
    • ConstantValueExpression(int)
    • ConstantValueExpression(long)
    • ConstantValueExpression(bool)
    • ConstantValueExpression(Guid)
    • ConstantValueExpression(DateTime)
    • ConstantValueExpression(DateTimeOffset)
    • ConstantValueExpression(byte)
    • ConstantValueExpression(char)

0.6.0 / 2021-05-03

0.5.0 / 2021-05-02

  • Introduces PropertyNameResolutionStrategy base class as extension point to configure the way to lookup for a corresponding property (#8)
  • Added ToFilter<T>(string, PropertyNameResolutionStrategy) overload
  • Added ToSort<T>(string, PropertyNameResolutionStrategy) overload

0.4.1 / 2021-04-28

  • Fixes FileNotFoundException when calling StringExtensions.ToFilter<T> method after a fresh installation.

0.4.0 / 2021-04-03

0.3.2 / 2021-01-31

  • Fixed parsing of sort expressions where a sub property name was specified.

0.3.1 / 2020-12-19

  • Fixes RepositoryUrl metadata in nuget package

0.3.0 / 2020-12-19

  • Added support for filtering over complex type collections by introducing sub property syntax
  • Moved FilterExtensions.ToFilter<T>(this StringSegment) method to StringExtensions.ToFilter<T>(this StringSegment) [BREAKING]
  • Moved FilterExtensions.ToFilter<T>(this string) method to StringExtensions.ToFilter<T>(this string) [BREAKING]
  • Changed ConstantExpression to ConstantValueExpression [BREAKING]
  • Changed sub-property syntax from property.subproperty method to property["subproperty"] [BREAKING]
  • Fixed parsing RangeExpression with datetime values
  • Enabled Source Link

0.2.2 / 2020-12-05

  • Fixed "contains" parser not working with Guid.
  • Replaced "Utilities" dependency with "Candoumbe.MiscUtilities" dependency

0.2.0 / 2020-12-04

  • Added support for "equals" operator on collections
  • Added support for "contains" operator on collections.