What's Changed
- Don't install
uriparser
headers by @jviotti in #503 - Set MSVC
/permissive-
by @jviotti in #508 - Fix "Escape" typo in URI docs by @jviotti in #510
- Mask
FindGoogleTest.cmake
by default by @jviotti in #511 - Attempt to fix Windows CI scripts by @jviotti in #513
- Fix
URI::path()
example by @jviotti in #512 - Reformat using ClangFormat v18 by @jviotti in #514
- Fix Windows MSVC assert where
.front()
fails on empty strings by @jviotti in #515 - Introduce a
SchemaWalkerResult
wrapper by @jviotti in #517 - Extend schema walker to report keyword dependencies by @jviotti in #518
- Implement a mechanism to calculate keyword priority for evaluation by @jviotti in #519
- Generalize
SchemaIteratorEntry
to hold an arbitrary JSON value by @jviotti in #520 - Implement a JSON Schema keyword priority-based iterator by @jviotti in #521
- Run JSON Schema keyword iterator tests on Unikraft by @jviotti in #522
- Support printing JSON types by @jviotti in #525
- Prototype a JSON Schema compiler by @jviotti in #523
- Split default schema compiler into dialects by @jviotti in #526
- Set a shell default for every entry in the matrix by @jviotti in #528
- Compile "type" for Draft 4 by @jviotti in #530
- Compile "required" in Draft 4 by @jviotti in #531
- Implement an "and" logical operator in the schema compiler by @jviotti in #532
- Compute effective dialect when compiling schemas by @jviotti in #533
- Offer a better recursion interface on the schema compiler by @jviotti in #535
- Compile "allOf" for Draft 4 by @jviotti in #534
- Use frame to simplify compilation boostrapping by @jviotti in #536
- Extend frame tests to cover bases too by @jviotti in #537
- Expose relative pointers when framing schemas by @jviotti in #538
- Rename
schema_location
toevaluation_path
by @jviotti in #540 - Add base and relative pointer to compiler context by @jviotti in #541
- Add a
resolve_from_if_absolute
method helper to URI by @jviotti in #542 - Add
absoluteKeywordLocation
to compiler steps by @jviotti in #543 - In Draft7,
$ref
takes precedence over any other keyword by @jviotti in #544 - In Draft6,
$ref
takes precedence over any other keyword by @jviotti in #545 - In Draft4,
$ref
takes precedence over any other keyword by @jviotti in #546 - In Draft3,
$ref
takes precedence over any other keyword by @jviotti in #547 - Simplify default namespaces in default schema compiler by @jviotti in #548
- Generalize the compiler recursion to perform arbitrary jumps by @jviotti in #549
- Extend JSON Pointer
to_uri
to take a base URI by @jviotti in #551 - Fix children/condition ordering in logical compiler steps by @jviotti in #552
- Test bundling a Draft 4 schema without an id by @jviotti in #553
- Fix schema compiler recursion to follow pointer on the root resource by @jviotti in #554
- Implement basic
$ref
support for Draft 4 by @jviotti in #550 - Support a "label" control step in the schema compiler by @jviotti in #555
- Extend schema compiler recursion case to select instance location by @jviotti in #557
- Implement
properties
for Draft 4 by @jviotti in #556 - Simplify the Draft 4 compiler for the
allOf
keyword by @jviotti in #558 - Simplify schema compiler evaluator by @jviotti in #559
- Keep a context long-lived object during schema evaluation by @jviotti in #560
- Fix JSON docs that reference
parse_json
by @jviotti in #562 - Downgrade CMake minimum version to 3.22 by @jviotti in #563
- Corrected some typos by @Era-cell in #564
- Run CI on fork PRs by @jviotti in #565
- Extend the schema compiler to support annotations by @jviotti in #566
- Rename
TargetVisitor
toTargetInstanceVisitor
by @jviotti in #569 - Represent schema compiler targets with a pair of type/pointer by @jviotti in #570
- Add a templated instance schema compiler target type by @jviotti in #571
- Implement property loops in the schema compiler by @jviotti in #573
- Implement a schema compiler "regex" assertion by @jviotti in #574
- Implement support for
pattern
in Draft 4 by @jviotti in #575 - Rename
target_instance
totarget_value
in schema evaluator by @jviotti in #576 - Implement a mechanism to reference templated properties by @jviotti in #577
- Support passing custom targets when making assertions with
make<>
by @jviotti in #578 - Unify how we treat compiler values in assertion/annotations by @jviotti in #579
- Add
keyword_location
to compiler loop steps by @jviotti in #580 - Add a target to logical schema compiler steps by @jviotti in #581
- Unify logical and loop compiler step definitions by @jviotti in #582
- Support JSON encoding on template property targets by @jviotti in #583
- Support templated annotation values in the schema compiler by @jviotti in #584
- Report annotation values in the evaluation callback by @jviotti in #585
- Add a
Pointer::pop_back
overload to pop many tokens by @jviotti in #587 - Implement a way to push a pointer into another pointer by @jviotti in #588
- Turn step
evaluation_path
into a relative schema location by @jviotti in #586 - Handle evaluation paths correctly in Draft
$ref
by @jviotti in #590 - Fix evaluation path in Draft 4
type
disjunctions by @jviotti in #591 - Fix and optimize Draft 4
required
by @jviotti in #592 - Pass the evaluate path on the schema compiler evaluation callback by @jviotti in #589
- Assert that every keyword location is actually valid by @jviotti in #593
- Move internal schema compiler helpers into a private header by @jviotti in #594
- Prepare the compiler to dynamically compute instance locations by @jviotti in #595
- Make
relativeInstanceLocation
actually report relative locations by @jviotti in #596 - Fix and test instance locations on schema compiler by @jviotti in #598
- Improve helper to instantiate value-oriented compiler steps by @jviotti in #601
- Implement a method to convert a Pointer token into a JSON document by @jviotti in #604
- Improve and simplify how schema compiler loops work by @jviotti in #603
- Test schema compiler annotation values in traces by @jviotti in #605
- Rename the
Basename
compiler target type toInstanceBasename
by @jviotti in #606 - Implement a
SchemaBasename
compiler target type by @jviotti in #607 - Implement a method to get the initial part of a pointer by @jviotti in #608
- Properly handle schema location when applying compiler loops by @jviotti in #610
- Report correct instance location after applying annotation by @jviotti in #609
- Support an instance parent target type in the compiler by @jviotti in #611
- Make sure annotations are not emitted twice by the compiler by @jviotti in #613
- Make sure the JSON Pointer parser handles regex carets by @jviotti in #612
- Implement Draft 4
patternProperties
by @jviotti in #600 - Remove unnecessary
SchemaBasename
compiler target type by @jviotti in #615 - Store annotations using a JSON array in the evaluator by @jviotti in #616
- Implement a
push_back_if_unique
JSON helper by @jviotti in #617 - Simplify schema compiler target/value resolution by @jviotti in #618
- Go back to storing annotations as a JSON documents by @jviotti in #619
- Fetch compiler step values after evaluating the conditions by @jviotti in #620
- Declare a
ParentAdjacentAnnotations
schema compiler target type by @jviotti in #621 - Implement a
SchemaCompilerAssertionNotContains
step by @jviotti in #622 - Implement
additionalProperties
for Draft 4 by @jviotti in #614 - Note down potential optimizations for the Draft 4 compiler by @jviotti in #623
- Make sure empty fragment references are framed correctly by @jviotti in #625
- Canonicalize URIs when compiling subschemas in the schema compiler by @jviotti in #626
- Extend the schema compile context to keep track of marked labels by @jviotti in #627
- Keep track of schema compiler control labels during evaluation by @jviotti in #628
- Implement a schema compiler control "jump" step by @jviotti in #629
- Implement support for recursive references in Draft 4 by @jviotti in #624
- Implement the
not
applicator for Draft 4 by @jviotti in #630 - Implement array loops in the schema compiler by @jviotti in #631
- Compiler the object mode of
items
in Draft 4 by @jviotti in #632 - Implement a
SizeGreater
assertion on the schema compiler by @jviotti in #633 - Compile the array variant of
items
for Draft 4 by @jviotti in #634 - Upgrade
uriparser
to 0.9.8 by @jviotti in #635 - Allow schema compiler applicators to take values by @jviotti in #636
- Implement schema compiler array loops starting on a given index by @jviotti in #637
- Compile
additionalItems
for Draft 4 by @jviotti in #638 - Compile
anyOf
for Draft 4 by @jviotti in #639 - Compile the
oneOf
keyword for Draft 4 by @jviotti in #640 - Compile the
dependencies
keyword for Draft 4 by @jviotti in #641
New Contributors
Full Changelog: v1.0.0...v2.0.0