Releases: theory/jsonpath
Releases · theory/jsonpath
Release v0.9.0
⚡ Improvements
- Significantly refactored the
spec
package toward greater stability, usability, and increased comprehensibility. The names of things are more consistent, the APIs more legible and user-friendly. Quite a few types were renamed or merged. - Added support for json.Number values to complement the existing support for Go core numeric types. This should allow for transparent handling of values marshaled with json.Decoder.UseNumber enabled.
- Moved the function extension types from the
registry
to thespec
package, simplifyingregistry
and the handling of function extensions, without changing the interface for using a registry or adding extensions to it.
📚 Documentation
- Vastly expanded the
spec
package documentation to make it much more thorough and accurate, with copious links to relevant parts of RFC 9535 and complete lists of interface implementations and examples for each significant type. - Removed the "Package Stability" statement from the README, as all packages are considered stable or else potentially unstable types in the
spec
package have been labeled as such. - Fixed links and typos in the main package documentation, and moved the registry example under
WithRegistry
. - Replaced the
spec.Wildcard
variable with a the functionspec.Wildcard()
.
📔 Notes
- Upgraded the compliance test suite and integrated its located path test expectations. All tests passed, no changes required.
🆚 For more detail compare changes since v0.4.1.
Release v0.4.1
🪲 Bug Fixes
- Fixed the panic messages from
spec.Slice
to properly report coming fromSlice
and notNewSlice
.
📔 Notes
- Upgraded to and fixed issues reported by
golangci-lint
v2.1.5. - Added TinyGo testing on Go v1.24.
🆚 For more detail compare changes since v0.4.0.
Release v0.4.0
⚡ Improvements
- Added the
Pointer
method toNormalizedPath
. It returns an RFC 9535 JSON Pointer string representation of the normalized path.
🆚 For more detail compare changes since v0.3.0.
Release v0.3.0
⚡ Improvements
- Added
SelectLocated
. It works just likeSelect
, but returnsLocatedNode
s that pair the selected nodes with RFC 9535-definedNormalizedPath
s that uniquely identify their locations within the JSON query argument. - Added
LocatedNodeList
, the return value fromSelectLocated
. It contains methods for working with the selected nodes, including iterators for its nodes &NormalizedPath
s, deduplication, sorting, and cloning. - Added
Compare
toNormalizedPath
, which enables the sorting ofLocatedNodeList
s.
📔 Notes
- Requires Go 1.23 to take advantage of its iterator support.
- Changed the return value of
Select
from[]any
toNodeList
, which is an alias for[]any
. Done to pair withLocatedNodeList
, the return value ofSelectLocated
. Features anAll
method, which returns an iterator over all the nodes in the list. It may gain additional methods in the future.
📚 Documentation
- Added
Select
,SelectLocated
,NodeList
, andLocatedNodeList
examples to the Go docs.
🆚 For more detail compare changes since v0.2.1 .