Written with guidance from Keep a CHANGELOG. This project adheres to Semantic Versioning.
- updated package dependencies
- error handling for get on invalid containers
- error message format changed to be more consistent
- crash when retrieving a path which contains a null value
- add/add! - adds values indicated by pointers
- options can be passed to operations. only option so far is :strict which affects set/add behaviour
- added JSONPointer.test - checks whether the given pointer has the given value
- has changed to has? as it returns a single boolean
- stricter parsing of integer indexes
- increased terseness of error messages
- remove now actually reduces the list size, rather than replace with nil
- corrected parsing of /~01
- support for special array rules - /01 is not evaluated to an integer
- the /- pointer when used with set either appends the value to the end of a list, or creates a new list with the value
- pointers are no longer uri decoded, so the rfc example of "/c%d" now works correctly
- JSONPointer.apply changed to JSONPointer.transform
- hydrate and dehydrate functions added
- apply added - a utility to transform a source container
- extract - renamed to dehydrate
- set!, extract!, merge!
- passing a string to get/set will raise an argument error
- new elixir formatter applied to code
- code refactored to use defguard - which means this package is > 1.6 only
- deprecation warning for String.ltrim
- Unsafe variable warnings
- parse will take a list of strings
- JSONPointer.extract returns a list of paths that make up an object
- JSONPointer.merge combines dst into src
- pointers can be passed as lists as well as strings
- Initial Release