0.12.0
Pre-release
Pre-release
Added
- Added the ability to add pluggable rules to the linter.
- Added non-schema tree traversal to
JSON
. JSONPath.endsWith
for checking the last element.- New linter rule that checks for
$ref
elements having siblings, for Draft-07 and earlier. - New
Id.element
field that contains the ID's JSON parent element. - New
Id.unresolvedID
field that holds the unresolved ID URI. - ID scanning and validation is now performed on all known IDs and URLs before validation so that all references (to valid IDs) will resolve.
- Added some total load and run times to the test runner.
- All known schemas, including from URLs, are now validated.
Changed
- Changed a couple linter behaviours:
- A string won't be examined if its parent is a definitions object, in addition to just a "properties" object.
- Unknown non-root keywords will have their properties examined. This is desirable because both definitions and "properties" objects allow unknown keywords. Previously, no unknown keywords had their properties examined.
- Errors reverted to instance->schema order for the mapping.
- All the fields are now final or private in
Annotation
andId
. - Other internal improvements.
- Changed
JSON.traverse
totraverseSchema
,JSON.JsonElementVisitor
toJSON.SchemaVisitor
, andJSON.TraverseState
toJSON.SchemaTraverseState
. - The Coverage tool now outputs two JSON objects: coverage by instance location and the seen-only schema locations.
- Updated how
JSON.traverseSchema
works to be more complete. It now provides a more complete picture of the schema and the state of its members. This also means that all the keyword detection logic is in one place. - Updated the linter and coverage tool to utilize the new schema traverser features.
Options.set
now returns itself, for easy chaining.- The "ipv4" and "ipv6" formats are now parsed using the internal URI parser. That uses a more current specification.
- Changed
LRUCache
maximum size to be changeable.
Fixed
- AUTO_RESOLVE now behaves properly for relative IDs.