v0.7.0 (2026-05-23)
Bug Fixes and Improvements
- Add
JSONSchex.compile_fragment/2andJSONSchex.Schema.compile_fragment!/2for compiling JSON Schema fragments while preserving the containing document as the local reference context, useful for OpenAPI 3.1 schemas under paths and components. Fragment entrypoints support exactly one of:entry_pointeror:entry_ref, with:entry_refproviding a base URI/path when:base_uriis omitted - Add
JSONSchex.bundle_fragment/2for producing standalone raw schemas from document fragments, including reachable external resources mounted under$defs - Add
JSONSchex.Ref.resolve_selected/2for selector-driven$refresolution in JSON-like documents, allowing callers such as OpenAPI tooling to choose which$refnodes are replaced while preserving unselected refs - Breaking change: rename the remote/reference loading option from
:external_loaderto:loader
v0.6.0 (2026-05-09)
Bug Fixes and Improvements
- Add first-class support for compiling static JSON Schema literals during module compilation via
JSONSchex.Schema.compile!/2and the~Xsigil inJSONSchex.Sigil - Refactor validation and compiled rule execution to support static compile-time embedding by making rules data-driven and dispatching them through
JSONSchex.Validator.Rules - Precompute legacy
dependenciesexecution modes during compilation and simplify runtime rule matching - Prune several compile-time no-op keyword rules such as empty
required,properties,patternProperties,dependentRequired,dependentSchemas, andprefixItems - Relax decimal dependency requirement
v0.5.0 (2026-04-23)
Bug Fixes and Improvements
- Embed the Draft 2020-12 built-in meta-schema family directly in code and cache compiled built-in defs for
$refand$dynamicRefresolution - Refactor built-in Draft 2020-12 support into draft-specific modules:
JSONSchex.Draft202012.Schemas,JSONSchex.Draft202012.Vocabulary, andJSONSchex.Draft202012.Dialect - Simplify and de-duplicate reference resolution logic, including URI fragment handling and loaded-schema validation flow
- Fix built-in meta-schema validation so schemas can be validated against the canonical Draft 2020-12 meta-schema without an external loader
- Update official test suite, and adapt to pass the official Draft 2020-12 optional format cases for
duration,time, anduri:- Tighten
durationformat validation to match the RFC 3339 Appendix A grammar used by the official Draft 2020-12 optional format suite - Accept RFC 3339
timevalues with unknown local offset (-00:00) - Tighten
urianduri-referenceformat validation to reject invalid percent-encoding triplets
- Tighten
v0.4.0 (2026-04-05)
Bug Fixes and Improvements
- Fixed an issue where $ref could cause an infinite loop during validation
- Refactor compile-time and validation-time failures to use the unified
JSONSchex.Types.Errormodel with structuredErrorContext - Improve error formatting so invalid keyword and compile errors produce clearer, more contextual messages
- Treat the canonical Draft 2020-12 meta-schema as a built-in dialect without requiring a loader, while still honoring explicit
$vocabularydeclarations - Split vocabulary handling between supported vocabularies and the built-in Draft 2020-12 default active vocabulary set
- Optimize local
$refcompilation by batching JSON Pointer resolution for explicit local fragment references - Improve scope scanning so
$id, anchors, and explicit local fragment refs are registered more consistently - Consolidate
timeformat validation into the date-time format implementation
v0.3.0(2026-02-21)
Bug Fixes and Improvements
- Refactor the error context to make it more consistent
v0.2.1 (2026-02-20)
Bug Fixes and Improvements
- Enhance some keywords validation.
v0.2.0 (2026-02-20)
Bug Fixes and Improvements
- Enhance some keywords checking in compile.
v0.1.0 (2026-02-16)
- Initial Release