waargonaut-0.5.2.1: changelog.md
# Revision history for waargonaut
## 0.5.2.1 -- 2019-01-08
* Upgraded the nix overrides to use the overlay technique.
* Lowered the bound on tagged to 0.8.5 which allowed it to be removed from the list of overridden packages.
## 0.5.2.0 -- 2019-01-03
* Add `Waargonaut.Prettier` module that contains a traversal to modify a `Json` structure to add indentation and newlines.
## 0.5.1.0 -- 2019-01-02
* Fix order of `either` decoder to match documentation, `Right` decoder was not being attempted first.
* Expose functionality to check the 'type' of the JSON at the current cursor position.
* Update list decoder to check that we're at an array before attempting to decode. It will now fail when attempting to decode a list and something of type list is not found. Previously it would return an empty list when a number was present.
## 0.5.0.0 -- 2018-12-18
* Changed internal builder from `ByteString` to `Text` builder.
* Fixed bug for going from `JString` <-> `Text`, was breaking round-trip.
* Removed instances of `AsJString` for `Text` and `ByteString`, replaced with more correct `Prism` and some better functions.
* Added regression tests for round tripping text and bytestring (char8).
## 0.4.2.0 -- 2018-11-29
* Improved pretty printing of CursorHistory by condensing multiple numeric movements and removing the single movements following searching for keys.
* Add `fromKeyOptional` and `atKeyOptional` that make it easier to handle optional keys on objects.
* Add `prismDOrFail'` function to allow the user to construct an error from the value that was decoded.
## 0.4.1.0 -- 2018-11-20
* Add `oneOf` decoder and tests
## 0.4.0.0 -- 2018-11-19
* Redesign & rebuild of `Encoder` internals to allow for greater control and flexibility
* Factor our law tests into their own module (a recheck of these tests is needed)
* Fixed bug in `list` and `nonempty` decoders
* Fixed bug in `foldCursor` function
* Fixed bug in `Cons` instance for `CommaSep`
* Fixed bug in documentation for `atKey`
* Added `_MapLikeObj` `Prism`
* Added some optics into object / maplikeobj keys
* Fixed bug in `maybeOrNull` decoder to be more strict in what it accepts
* Rewrote `either` decoder in terms of the alternative instance to allow for better errors
## 0.3.0.0 -- 2018-11-14
* Change to use the `natural` package for `Natural` numbers.
## 0.2.1.0 -- 2018-11-13
* Add `MonadError` and `Alt` instance for `Decoder`
* Add property tests for the typeclass laws for `Encoder` and `Decoder`
* Removed need for `MonadError` constraint on `prismDOrFail`
## 0.2.0.2 -- 2018-11-12
* Fix `Applicative` instance for `Decoder`.
## 0.2.0.1 -- 2018-11-07
* Update `moveToKey` to record a successful movement to a key, before continuing
## 0.2.0.0 -- 2018-11-06
* Provide more precise errors from Decoder for missing or invalid keys
* Removed a parameter from `KeyDecodeFailed` error constructor
* Fix issue where printing the zipper movements had left and right movement arrows swapped.
## 0.1.0.0 -- 2018-11-01
* First version. Released on an unsuspecting world.