> For the complete documentation index, see [llms.txt](https://senselab.gitbook.io/senselab-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://senselab.gitbook.io/senselab-docs/vendor/justinrainbow/json-schema/changelog.md).

# CHANGELOG

All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## \[Unreleased]

## \[6.7.2] - 2026-02-15

### Fixed

* Fix idn\_to\_ascii deprecation warning by using INTL\_IDNA\_VARIANT\_UTS46 ([#887](https://github.com/jsonrainbow/json-schema/pull/887))

## \[6.7.1] - 2026-02-13

### Fixed

* Fix TypeError in pattern property validation with integer keys ([#880](https://github.com/jsonrainbow/json-schema/pull/880))

## \[6.7.0] - 2026-02-13

### Fixed

* Enforce RFC 1035 hostname label length limits in draft 3/4 ([#878](https://github.com/jsonrainbow/json-schema/pull/878))
* UriRetriever: Include actual media type in InvalidSchemaMediaTypeException message ([#872](https://github.com/jsonrainbow/json-schema/pull/872))
* docs: Correct trailing spaces in Markdown ([#873](https://github.com/jsonrainbow/json-schema/pull/873))

### Added

* Feat: Add Draft-07 support ([#847](https://github.com/jsonrainbow/json-schema/pull/847))
* Automate changelog updates on PR merge ([#874](https://github.com/jsonrainbow/json-schema/pull/874))

### Changed

* Add automated release workflow with changelog integration ([#879](https://github.com/jsonrainbow/json-schema/pull/879))
* Fix welcome workflow permission errors from forked PRs ([#875](https://github.com/jsonrainbow/json-schema/pull/875))

## \[6.6.4] - 2025-12-19

### Changed

* ci: Run workflows against 5.x.x branches ([#859](https://github.com/jsonrainbow/json-schema/pull/859))

### Fixed

* UriValidator: Allow `file:/` and `file:///` ([#856](https://github.com/jsonrainbow/json-schema/discussions/856))
* Fix .php-cs-fixer.dist.php export-ignore ([#861](https://github.com/jsonrainbow/json-schema/discussions/861))

## \[6.6.3] - 2025-12-02

### Changed

* Restricted `mark-mabe/php-enum` dependency to `^4.4` due to lower versions emitting a warning on PHP 8 ([#854](https://github.com/jsonrainbow/json-schema/pull/854))

## \[6.6.2] - 2025-11-28

### Changed

* Move PHP 8.5 to default add PHP 8.6 as experimental ([#852](https://github.com/jsonrainbow/json-schema/pull/852))

### Fixed

* Allow underscore and tilde in URI hostnames as per RFC 3986 ([#853](https://github.com/jsonrainbow/json-schema/pull/853))

## \[6.6.1] - 2025-11-07

### Changed

* Rename master to main ([#848](https://github.com/jsonrainbow/json-schema/pull/848))

### Fixed

* Don't skip ref expanding for property called enum when child of property called properties ([#851](https://github.com/jsonrainbow/json-schema/pull/851))

## \[6.6.0] - 2025-10-10

### Added

* Add lint check for class autoloading PSR compliance ([#845](https://github.com/jsonrainbow/json-schema/pull/845))
* add implementation for strict fully validating using draft-06 schema ([#843](https://github.com/jsonrainbow/json-schema/pull/835))

## \[6.5.2] - 2025-09-09

### Fixed

* Fix issue when http headers are already present ([#843](https://github.com/jsonrainbow/json-schema/pull/843))

## \[6.5.1] - 2025-08-29

### Changed

* ci: Add PHP 8.5 to pipeline, ignoring dependencies and as experimental ([#842](https://github.com/jsonrainbow/json-schema/pull/842))

## \[6.5.0] - 2025-08-29

### Changed

* Update test case to current (PHP) standards ([#831](https://github.com/jsonrainbow/json-schema/pull/831))
* Upgrade test suite to use generators ([#834](https://github.com/jsonrainbow/json-schema/pull/834))
* update to latest json schema test suite ([#821](https://github.com/jsonrainbow/json-schema/pull/821))

### Fixed

* Fix PHP 8.5 $http\_response\_header deprecation ([#840](https://github.com/jsonrainbow/json-schema/pull/840))

## \[6.4.2] - 2025-06-03

### Fixed

* Fix objects are non-unique despite key order ([#819](https://github.com/jsonrainbow/json-schema/pull/819))
* Id's not being resolved and id property affects sibling ref which it should not do ([#828](https://github.com/jsonrainbow/json-schema/pull/828))

### Changed

* Added extra breaking change to UPDATE-6.0.md regarding BaseConstraint::addError signature change ([#823](https://github.com/jsonrainbow/json-schema/pull/823))
* Update constraint class to PHP 7.2 language level ([#824](https://github.com/jsonrainbow/json-schema/pull/824))
* Update base constraint class to PHP 7.2 language level ([#826](https://github.com/jsonrainbow/json-schema/pull/826))

### Added

* Introduce 32 bits CI workflow on latest php version ([#825](https://github.com/jsonrainbow/json-schema/pull/825))

## \[6.4.1] - 2025-04-04

### Fixed

* Fix support for 32bits PHP ([#817](https://github.com/jsonrainbow/json-schema/pull/817))

## \[6.4.0] - 2025-04-01

### Added

* Run PHPStan using the lowest and highest php version ([#811](https://github.com/jsonrainbow/json-schema/pull/811))

### Fixed

* Use parallel-lint and cs2pr for improved feedback on linting errors ([#812](https://github.com/jsonrainbow/json-schema/pull/812))
* Array with number values with mathematical equality are considered valid ([#813](https://github.com/jsonrainbow/json-schema/pull/813))

### Changed

* Correct PHPStan findings in validator ([#808](https://github.com/jsonrainbow/json-schema/pull/808))
* Add cs2pr handling for php-cs-fixer; avoid doing composer install ([#814](https://github.com/jsonrainbow/json-schema/pull/814))
* prepare PHP 8.5 in CI ([#815](https://github.com/jsonrainbow/json-schema/pull/815))

## \[6.3.1] - 2025-03-18

### Fixed

* ensure numeric issues in const are correctly evaluated ([#805](https://github.com/jsonrainbow/json-schema/pull/805))
* fix 6.3.0 regression with comparison of null values during validation ([#806](https://github.com/jsonrainbow/json-schema/issues/806))

## \[6.3.0] - 2025-03-14

### Fixed

* only check minProperties or maxProperties on objects ([#802](https://github.com/jsonrainbow/json-schema/pull/802))
* replace filter\_var for uri and uri-reference to userland code to be RFC 3986 compliant ([#800](https://github.com/jsonrainbow/json-schema/pull/800))
* avoid duplicate workflow runs ([#804](https://github.com/jsonrainbow/json-schema/pull/804))

## Changed

* replace icecave/parity with custom deep comparator ([#803](https://github.com/jsonrainbow/json-schema/pull/803))

## \[6.2.1] - 2025-03-06

### Fixed

* allow items: true to pass validation ([#801](https://github.com/jsonrainbow/json-schema/pull/801))

### Changed

* Include actual count in collection constraint errors ([#797](https://github.com/jsonrainbow/json-schema/pull/797))

## \[6.2.0] - 2025-02-26

### Added

* Welcome first time contributors ([#782](https://github.com/jsonrainbow/json-schema/pull/782))

### Fixed

* Add required permissions for welcome action ([#789](https://github.com/jsonrainbow/json-schema/pull/789))
* Upgrade php cs fixer to latest ([#783](https://github.com/jsonrainbow/json-schema/pull/783))
* Create deep copy before checking each sub schema in oneOf ([#791](https://github.com/jsonrainbow/json-schema/pull/791))
* Create deep copy before checking each sub schema in anyOf ([#792](https://github.com/jsonrainbow/json-schema/pull/792))
* Correctly set the schema ID when passing it as assoc array ([#794](https://github.com/jsonrainbow/json-schema/pull/794))
* Create deep copy before checking each sub schema in oneOf when only check\_mode\_apply\_defaults is set ([#795](https://github.com/jsonrainbow/json-schema/pull/795))
* Additional property casted into int when actually is numeric string ([#784](https://github.com/jsonrainbow/json-schema/pull/784))

### Changed

* Used PHPStan's int-mask-of type where applicable ([#779](https://github.com/jsonrainbow/json-schema/pull/779))
* Fixed some PHPStan errors ([#781](https://github.com/jsonrainbow/json-schema/pull/781))
* Cleanup redundant checks ([#796](https://github.com/jsonrainbow/json-schema/pull/796))

## \[6.1.0] - 2025-02-04

### Added

* Add return types in the test suite ([#748](https://github.com/jsonrainbow/json-schema/pull/748))
* Add test case for validating array of strings with objects ([#704](https://github.com/jsonrainbow/json-schema/pull/704))
* Add contributing information, contributor recognition and security information ([#771](https://github.com/jsonrainbow/json-schema/pull/771))

### Fixed

* Correct misconfigured mocks in JsonSchema\Tests\Uri\UriRetrieverTest ([#741](https://github.com/jsonrainbow/json-schema/pull/741))
* Fix pugx badges in README ([#742](https://github.com/jsonrainbow/json-schema/pull/742))
* Add missing property in UriResolverTest ([#743](https://github.com/jsonrainbow/json-schema/pull/743))
* Correct casing of paths used in tests ([#745](https://github.com/jsonrainbow/json-schema/pull/745))
* Resolve deprecations of optional parameter ([#752](https://github.com/jsonrainbow/json-schema/pull/752))
* Fix wrong combined paths when traversing upward, fixes #557 ([#652](https://github.com/jsonrainbow/json-schema/pull/652))
* Correct PHPStan baseline ([#764](https://github.com/jsonrainbow/json-schema/pull/764))
* Correct spacing issue in `README.md` ([#763](https://github.com/jsonrainbow/json-schema/pull/763))
* Format attribute: do not validate data instances that aren't the instance type to validate ([#773](https://github.com/jsonrainbow/json-schema/pull/773))

### Changed

* Bump to minimum PHP 7.2 ([#746](https://github.com/jsonrainbow/json-schema/pull/746))
* Replace traditional syntax array with short syntax array ([#747](https://github.com/jsonrainbow/json-schema/pull/747))
* Increase phpstan level to 8 with baseline to swallow existing errors ([#673](https://github.com/jsonrainbow/json-schema/pull/673))
* Add ext-json to composer.json to ensure JSON extension available ([#759](https://github.com/jsonrainbow/json-schema/pull/759))
* Add visibility modifiers to class constants ([#757](https://github.com/jsonrainbow/json-schema/pull/757))
* Include PHP 8.4 in workflow ([#765](https://github.com/jsonrainbow/json-schema/pull/765))
* Add `strict_types=1` to all classes in ./src ([#758](https://github.com/jsonrainbow/json-schema/pull/758))
* Raise minimum level of marc-mabe/php-enum ([#766](https://github.com/jsonrainbow/json-schema/pull/766))
* Cleanup test from @param annotations ([#768](https://github.com/jsonrainbow/json-schema/pull/768))
* Remove obsolete PHP 7.1 version check ([#772](https://github.com/jsonrainbow/json-schema/pull/772))

## \[6.0.0] - 2024-07-30

### Added

* Add URI translation, package:// URI scheme & bundle spec schemas ([#362](https://github.com/jsonrainbow/json-schema/pull/362))
* Add quiet option ([#382](https://github.com/jsonrainbow/json-schema/pull/382))
* Add option to disable validation of "format" constraint ([#383](https://github.com/jsonrainbow/json-schema/pull/383))
* Add more unit tests ([#366](https://github.com/jsonrainbow/json-schema/pull/366))
* Reset errors prior to validation ([#386](https://github.com/jsonrainbow/json-schema/pull/386))
* Allow the schema to be an associative array ([#389](https://github.com/jsonrainbow/json-schema/pull/389))
* Enable FILTER\_FLAG\_EMAIL\_UNICODE for email format if present ([#398](https://github.com/jsonrainbow/json-schema/pull/398))
* Add enum wrapper ([#375](https://github.com/jsonrainbow/json-schema/pull/375))
* Add option to validate the schema ([#357](https://github.com/jsonrainbow/json-schema/pull/357))
* Add support for "const" ([#507](https://github.com/jsonrainbow/json-schema/pull/507))
* Added note about supported Draft versions ([#620](https://github.com/jsonrainbow/json-schema/pull/620))
* Add linting GH action

### Changed

* Centralize errors ([#364](https://github.com/jsonrainbow/json-schema/pull/364))
* Revert "An email is a string, not much else." ([#373](https://github.com/jsonrainbow/json-schema/pull/373))
* Improvements to type coercion ([#384](https://github.com/jsonrainbow/json-schema/pull/384))
* Don't add a file:// prefix to URI that already have a scheme ([#455](https://github.com/jsonrainbow/json-schema/pull/455))
* Enhancement: Normalize `composer.json` ([#505](https://github.com/jsonrainbow/json-schema/pull/505))
* Correct echo `sprintf` for `printf` ([#634](https://github.com/jsonrainbow/json-schema/pull/634))
* Streamline validation of Regex ([#650](https://github.com/jsonrainbow/json-schema/pull/650))
* Streamline validation of patternProperties Regex ([#653](https://github.com/jsonrainbow/json-schema/pull/653))
* Switch to GH Actions ([#670](https://github.com/jsonrainbow/json-schema/pull/670))
* Updated PHPStan
* Remove unwanted whitespace ([#700](https://github.com/jsonrainbow/json-schema/pull/700))
* Bump to v4 versions of GitHub actions ([#722](https://github.com/jsonrainbow/json-schema/pull/722))
* Update references to jsonrainbow ([#725](https://github.com/jsonrainbow/json-schema/pull/725))

### Deprecated

* Mark check() and coerce() as deprecated ([#476](https://github.com/jsonrainbow/json-schema/pull/476))

### Removed

* Remove stale files from #357 (obviated by #362) ([#400](https://github.com/jsonrainbow/json-schema/pull/400))
* Remove unnecessary fallbacks when args accept null
* Removed unused variable in UndefinedConstraint ([#698](https://github.com/jsonrainbow/json-schema/pull/698))
* Remove dead block of code ([#710](https://github.com/jsonrainbow/json-schema/pull/710))

### Fixed

* Add use line for InvalidArgumentException ([#370](https://github.com/jsonrainbow/json-schema/pull/370))
* Add use line for InvalidArgumentException & adjust scope ([#372](https://github.com/jsonrainbow/json-schema/pull/372))
* Add provided schema under a dummy / internal URI (fixes #376) ([#378](https://github.com/jsonrainbow/json-schema/pull/378))
* Don't throw exceptions until after checking anyOf / oneOf ([#394](https://github.com/jsonrainbow/json-schema/pull/394))
* Fix infinite recursion on some schemas when setting defaults (#359) ([#365](https://github.com/jsonrainbow/json-schema/pull/365))
* Fix autoload to work properly with composer dependencies ([#401](https://github.com/jsonrainbow/json-schema/pull/401))
* Ignore $ref siblings & abort on infinite-loop references ([#437](https://github.com/jsonrainbow/json-schema/pull/437))
* Don't cast multipleOf to be an integer for the error message ([#471](https://github.com/jsonrainbow/json-schema/pull/471))
* Strict Enum/Const Object Checking ([#518](https://github.com/jsonrainbow/json-schema/pull/518))
* Return original value when no cast ([#535](https://github.com/jsonrainbow/json-schema/pull/535))
* Allow `marc-mabe/php-enum` v2.x and v3.x. ([#464](https://github.com/jsonrainbow/json-schema/pull/464))
* Deprecated warning message on composer install command ([#614](https://github.com/jsonrainbow/json-schema/pull/614))
* Allow `marc-mabe/php-enum` v4.x ([#629](https://github.com/jsonrainbow/json-schema/pull/629))
* Fixed method convertJsonPointerIntoPropertyPath in wrong class ([#655](https://github.com/jsonrainbow/json-schema/pull/655))
* Fix type validation failing for "any" and false-y type wording ([#686](https://github.com/jsonrainbow/json-schema/pull/686))
* Correct code style
* Fix: Clean up `.gitattributes` ([#687](https://github.com/jsonrainbow/json-schema/pull/687))
* Fix: Order `friendsofphp/php-cs-fixer` rules ([#688](https://github.com/jsonrainbow/json-schema/pull/688))
* HTTP to HTTPS redirection breaks remote reference resolution ([#709](https://github.com/jsonrainbow/json-schema/pull/709))
* Corrected several typos and code style issues


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://senselab.gitbook.io/senselab-docs/vendor/justinrainbow/json-schema/changelog.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
