Skip to content

0.12.0

Pre-release
Pre-release
Compare
Choose a tag to compare
@ssilverman ssilverman released this 14 Jul 06:48
· 135 commits to master since this 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:
    1. A string won't be examined if its parent is a definitions object, in addition to just a "properties" object.
    2. 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 and Id.
  • Other internal improvements.
  • Changed JSON.traverse to traverseSchema, JSON.JsonElementVisitor to JSON.SchemaVisitor, and JSON.TraverseState to JSON.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.