CHANGELOG.md

## v0.2.1 - 2024-07-26

### Fixes

- `in?` and `not_in?` works as expected when the accepted values are a single-item list (issue #55 fixed via #58)

## v0.2.0 - 2024-02-01

### Features

- `Drops.Type` module that allows you to define custom types (via #36)
- `Drops.Type.Validator` protocol that allows you to define custom validators for your types
- Added built-in `Drops.Types.Number` type (issue #33)
- Added `union` to type definition DSL (issue #37)

### Fixes

- Warning about `conform` callback is gone (issue #34)

### Changes

- All built-in types have been refactored to use the validator protocol
- `Drops.Types.Sum` was renamed to `Drops.Types.Union`

## v0.1.1 - 2023-10-27

### Fixes

- [`Drops.Contract`] Rules are now correctly applied only to the root map (via #32)

## v0.1.0 - 2023-10-25

### Features

- Added `Drops.Contract` module for defining validation schemas with additional rules
- Added `Drops.Validator` module for running validation functions against input
- Added `Drops.Validator.Messages.DefaultBackend` that's configured by default in contracts
- Added `Drops.Types` module with the following built-in types:
  - `Drops.Types.Type` - basic type
  - `Drops.Types.List` - a list if member type
  - `Drops.Types.Map` - a map with typed keys
  - `Drops.Types.Sum` - a composition of two types
  - `Drops.Types.Cast` - a type that defines from-to casting types and caster options
- Added `Drops.Predicates` module which provides many common predicate functions like `filled?`, `gt?`, `size?` etc.
- Added `Drops.Casters` module which provides common type casting functions that can be used with the built-in types

## v0.0.0 - 2023-09-04

Reserving the package name