Releases: sourcemeta/jsontoolkit
Releases · sourcemeta/jsontoolkit
v2.0.0
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 trace...
v1.0.0
What's Changed
- Clarify that
.clear()
works on arrays by @jviotti in #11 - Implement
make_object
andmake_array
constructors by @jviotti in #12 - Document how to convert existing instances to arrays/objects by @jviotti in #14
- Note functions that are useful for programatically creating containers by @jviotti in #15
- Test programatically creating objects and arrays by @jviotti in #13
- Implement prettify contrib/ program by @jviotti in #16
- Implement a
contrib/
minify program by @jviotti in #17 - Do not build
contrib/
programs by default by @jviotti in #19 - Add FetchContent usage instructions by @jviotti in #20
- Do not build tests by default by @jviotti in #21
- Reduce required C++ version to 17 by @jviotti in #23
- Improve contribution instructions by @jviotti in #26
- Vendor bootstrap by @jviotti in #25
- Minor fixes to support Windows by @jviotti in #28
- Support a custom backend path by @jviotti in #29
- Do not run stdin contrib tests on Windows by @jviotti in #30
- Extract contrib test scripts into variables by @jviotti in #31
- Specify --build-config when running ctest by @jviotti in #32
- Fix Windows stdin checks by @jviotti in #33
- Support finding rapidjson from vcpkg by @jviotti in #34
- Fix crash on .assign() with move semantics by @jviotti in #35
- Namespace JSON tests by @jviotti in #36
- Implement a metaschema() function by @jviotti in #37
- Refactor metaschema() to solve one-definition-rule problem by @jviotti in #38
- Specify
--config
when building using CMake by @jviotti in #39 - Simplify JSON unit tests by @jviotti in #40
- Upgrade vendorpull by @jviotti in #41
- Implement a JSON Schema
id()
function by @jviotti in #42 - Implement a function to return schema vocabularies by @jviotti in #43
- Ignore
vendor/
in.ackrc
by @jviotti in #44 - Implement a function to deep-copy a JSON document or value by @jviotti in #45
- Support from() when passing a zero literal by @jviotti in #46
- Add easy-to-use range-based for loop support by @jviotti in #50
- Implement support for iterating over subschemas by @jviotti in #51
- Increase granularity of GNU Make targets by @jviotti in #52
- Implement a default JSON Schema 2020-12 schema walker by @jviotti in #53
- Let vocabularies() take an optional default metaschema URI by @jviotti in #56
- Check vocabularies at every step in
subschema_iterator()
by @jviotti in #55 - Implement a flat subschema iterator by @jviotti in #57
- Change domain to jsontoolkit.org by @jviotti in #60
- Make JSON Toolkit build on Debian 11 (current Stable) by @jviotti in #58
- Enable pthreads on Linux by @jviotti in #61
- Test building on GNU/Linux using GCC by @jviotti in #59
- Add a contrib tool to analyze JSON Schema keywords by @jviotti in #47
- Implement a function to determine the schema's dialect URI by @jviotti in #62
- Assume core vocabularies if $vocabulary is unset by @jviotti in #63
- Take small enough
std::uint64_t
as input infrom()
by @jviotti in #64 - Fix
flat_subschema_iterator()
on schema without a metaschema by @jviotti in #65 - Define a schema walker that never walks by @jviotti in #66
- Implement
erase_many()
by @jviotti in #67 - Document GCC support by @jviotti in #68
- Minor misc fixes for
erase_many()
by @jviotti in #69 - Define
defines_any()
by @jviotti in #70 - Fix
push_back()
docs example by @jviotti in #71 - Implement
is_number()
by @jviotti in #72 - Support using
from()
withstd::size_t
by @jviotti in #73 - Implement an "add" function to increment/decrement numbers in-place by @jviotti in #74
- Document the
contains()
array function by @jviotti in #75 - Implement a "compare" function for standard algorithms by @jviotti in #76
- Generalize iterator-based
erase_many
to work on arrays by @jviotti in #77 - Implement a
clear_except()
function for objects by @jviotti in #78 - Make sure
schema_walker_strategy_t
is defined outside of GCC by @jviotti in #80 - Build website using CMake by @jviotti in #81
- Test CMake installation on CI by @jviotti in #82
- Make Makefile NMAKE compliant by @jviotti in #83
- Disable some JSONTestSuite tests for MSVC by @jviotti in #85
- Fix cast to make MSVC happy by @jviotti in #84
- Add basic Windows support by @jviotti in #86
- Create a new "test" target in the Makefile by @jviotti in #87
- Get rid of
fail.sh
contrib test helper script by @jviotti in #88 - Do not run tests twice on the Makefile by @jviotti in #89
- Bring back "contrib" tests on Windows by @jviotti in #27
- Run
clang_format_test
, notclang_format
on CI by @jviotti in #92 - Implement a sample contrib cURL resolver by @jviotti in #91
- Disable min/max macros on MSVC by @jviotti in #94
- Implement a local-first resolver for 2020-12 official schemas by @jviotti in #93
- Split JSON and JSON Schema into its own modules within
src/
by @jviotti in #95 - Merge the local resolver with the core JSON Schema module by @jviotti in #96
- Support JSON Schema 2019-09 on the default resolver by @jviotti in #97
- Throw if the core vocabulary is missing or set to optional by @jviotti in #98
- Better handle vocabularies for boolean schemas by @jviotti in #99
- Check current dialect when fetching vocabularies by @jviotti in #100
- Make
vocabularies()
dialect-aware by @jviotti in #101 - Add 2019-09 support in
vocabularies()
by @jviotti in #102 - Support 2020-12 and 2019-09 Hyper Schema by @jviotti in #104
- Note intention to support older JSON Schema dialects in
.vocabularies()
by @jviotti in #105 - Implement a
copy()
function for JSON containers by @jviotti in #106 - Add a
copy()
overload to duplicate entire containers by @jviotti in #107 - Ensure doubles are never NaN or infinity by @jviotti in #108
- Re-license the project as AGPL by @jviotti in #109
- Implement a...