- Initial release
- Specification composition with builder functions and composition expression:
Spec.notEmpty,Spec.inclusiveBetween,spec { greaterThan }, ... - Access controllers with builder functions and composition express:
Access.onlyUriFromBase,Access.once,access { revokable }, ... - Access controller types:
ReadOnceandDisposable - Untrusted representation with
Untrust<_>
- Specification composition with builder functions and composition expression:
- Spec additions
startWith(Of)to verify the header of astringunique(Of)to verify if a sequence has unique valuescreateModelWithto run directly a "cross-world" function (a -> Result<'b, 'error>) on the validated value- C# basic LINQ function (
Select,SelectMany/Then,Where,Aggregate,Zip, ...) on theValidationResult<'T>type together with aTraverse/Sequencepair to run directly a series of validation functions on a sequence
- Type additions
BoundedInt, an integer that is bound by a min/max thresholdNonEmptySeq<'T>, a sequence that contains at least one elementUniqueSeq<'T>, a sequence that only contains unique elementsXmlEncodedString, astringthat can be considered a valid XML text (not neccessary a XML element)
- Spec additions
dependsOnintroduces dependent specifications to re-use and split complex specs into more maintainable building blocksalphabetical,alphanum, ... introduces a way to check a string for charaters only in the alphabeth
- Spec invariants: makes relationships between models more easy to describe
- Maybe: add optional type for better C# domain modeling
- Guard: add simple guard class for quick argument checking, but limit functionality to push users to use specifications instead
- Remove some unnecessary types to limit target projects
- Specifications with tagged errors; using words starting with
@ - Sanitization blocks for transformations before validation
Outcometype for C# devs- Extra spec requirements:
containsAll,seqEqual,structure...
- Provide
Unionto determine validation based on DU's - Provide
ErrorMessageas a means to make more security-safe error messages - Provide asynchronous
WriteOncemodels - Provide
Stringoperations on specifications
- Update project towards .NET 6
- Add missing XML code docs on all specification types
- Fix implicit operator for C#
ValidationResultwith F#Resulttype for easier interop
- Revert wrong renaming of C#-specific
Spec
- Update
Sanitizefor a more inclusive code base ♥ - Add sanitization composition expression