Skip to content

Releases: jwaliszko/ExpressiveAnnotations

v2.2.7

08 Nov 15:38
Compare
Choose a tag to compare
  • thread safety for parse and tokenize operations,
  • fix for multiple attributes applied to a single field (related to allowed quantity).

v2.2.6

21 Oct 09:18
Compare
Choose a tag to compare
  • expressions are culture insensitive,
  • fix for annotations in derived types.

v2.2.5

15 Oct 18:06
Compare
Choose a tag to compare
  • improved unary boolean negation handling:
    • parsing logic adjusted to slightly modified grammar where negation can also be applied to operands joined by relational operators (EQ and NEQ),
    • restriction applied to negation operator specifying that it can only by used with boolean type operands.

v2.2.4

14 Oct 20:28
Compare
Choose a tag to compare
  • parsing verbosity related to errors detection improved:
    • erratic code location provided,
    • operands applicability constraints added to the parser,
    • minor changes in exception handling (readability improved - no information overhead),
    • etc.
  • 2 signatures for Date function provided,
  • MemberName extraction workaround - done basically for older versions of MVC (before version 5) where there was a bug related to the fact that member name was given as null in the validation context (it is correctly provided to ValidationResult now, if DisplayAttribute is present),
  • XML documentation comments revised,
  • code cleanup.

v2.2.3

30 Sep 17:07
Compare
Choose a tag to compare
  • string literal cleanups:
    • double-quoted string literals deprecated - single-quoted are the only allowed from now,
    • fixed interpretation of special characters (e.g. regex patterns are correctly interpreted at both client- and server-sides when passed as functions parameters, etc).
  • interpretation of plus and minus signs of numeric tokens moved from lexer to parser, thus spaces are not required between operands and operator as before ('1+2' is valid construction now even without spaces inside, in addition consecutive plus and minus signs are unified - as C# and JavaScript do),
  • IE8 support (older IE versions not tested),
  • few secondary fixes (unicode-related compatibility of built-in regexes between client- and server-sides preserved, etc).

v2.2.2

20 Sep 17:48
Compare
Choose a tag to compare
  • null-safety provided for almost all relevant toolchain methods,
  • parser fix related to processing of func tokens.

v2.2.1

08 Sep 19:37
Compare
Choose a tag to compare
  • underscores supported by func tokens.

2.2.0

25 Aug 22:24
Compare
Choose a tag to compare
  • toolchain extended,
  • multiple annotations of the same type can be now applied for a single field or property,
  • custom JSON formatting is discarded for client validation rules (since EA relies on specific JSON formatting),
  • dates equality comparison fix at client side (compare milliseconds instead of date objects),
  • non-standard date formats can be handled by overriding default parsing mechanism.

v2.1.2

12 Aug 00:19
Compare
Choose a tag to compare
  • assemblies signed (the private key is not included in the public repo - by default, assemblies built from the sources in debug mode will not be signed, and the key is not needed for successful compilation),
  • little optimizations:
    • first-time validation speedup - parsing logic is invoked inside ASP.NET MVC validators at application startup, and compiled lambdas are immediately cached for later usage,
    • not entire enumerated types, serialized to json, are sent to client as previously, but only the items used by the expression.
  • improved errors handling with more meaningful exception messages, e.g. while naming collision is detected,
  • improved arithmetic operations support,
  • entire spectrum of enum types supported,
  • constants supported.

v2.1.1

04 Aug 19:32
Compare
Choose a tag to compare
  • types from current domain loaded silently (reflection issues handled when collecting types from inaccessible assemblies, e.g. non-existing, broken or those to which user has no access),
  • relational and arithmetic operators work with enums,
  • types conversion improvements.