ergebnis/json-normalizer
Normalize JSON documents with composable normalizers. Includes generic and vendor-specific normalizers for formatting, indentation, schema-based ordering, JSON encoding, chaining, callbacks, and controlling final newlines. Install via Composer and apply a Normalizer to produce consistent JSON output...
For a full diff see [4.8.0...4.9.0][4.8.0...4.9.0].
SchemaNormalizer to allow pruning empty sections when the schema declares them as not required ([#1053]), by [@fredden]Vendor\Composer\VersionConstraintNormalizer to correctly use dev- prefixes and -dev suffixes ([#1055]), by [@fredden]Vendor\Composer\VersionConstraintNormalizer to normalize and (if necessary) combine version constraints refering to extensions ([#1185]), by [@fredden]Vendor\Composer\VersionConstraintNormalizer to normalize version constraints that are combined with * to * ([#1186]), by [@fredden]For a full diff see [4.7.0...4.8.0][4.7.0...4.8.0].
justinrainbow/json-schema:^6.0.0 ([#1198]), by [@tacman]For a full diff see [4.6.0...4.7.0][4.6.0...4.7.0].
For a full diff see [4.5.0...4.6.0][4.5.0...4.6.0].
Vendor\Composer\VersionConstraintNormalizer to replace x and X wildcards with * ([#1052]), by [@fredden]For a full diff see [4.4.1...4.5.0][4.4.1...4.5.0].
ergebnis/json:^1.2.0 ([#1073]), by [@localheinz]ergebnis/json-printer:^3.5.0 ([#1074]), by [@localheinz]ergebnis/json-pointer:^3.4.0 ([#1075]), by [@localheinz]ergebnis/json-schema-validator:^4.2.0 ([#1076]), by [@localheinz]For a full diff see [4.4.0...4.4.1][4.4.0...4.4.1].
repositories when it disables packagist ([#1039]), by [@localheinz]For a full diff see [4.2.0...4.3.0][4.2.0...4.3.0].
allow-plugins and preferred-install as sensibly as is feasible ([#980]), by [@fredden]Vendor\Composer\VersionConstraintNormalizer to remove overlapping individual versions too ([#982]), by [@fredden]ergebnis/json-printer:^3.4.0 ([#989]), by [@dependabot]ergebnis/json:^1.1.0 ([#991]), by [@dependabot]ergebnis/json-schema-validator:^4.1.0 ([#992]), by [@dependabot]For a full diff see [4.1.0...4.2.0][4.1.0...4.2.0].
Vendor\Composer\VersionConstraintNormalizer to prefer tilde operators (~) over wildcard operators (*), and caret operators (^) over tilde operators (~) ([#756]), by [@fredden]For a full diff see [4.10.0...4.10.1][4.10.0...4.10.1].
For a full diff see [4.9.0...4.10.0][4.9.0...4.10.0].
For a full diff see [4.0.2...4.1.0][4.0.2...4.1.0].
Vendor\Composer\VersionConstraintNormalizer to remove extra spaces in inline aliases ([#889]), by [@fredden]Vendor\Composer\VersionConstraintNormalizer to remove useless inline aliases ([#889]), by [@fredden]SchemaNormalizer to account for objects with string and integer-like properties ([#868]), by [@alexis-saransig-lullabot] and [@fredden]SchemaNormalizer to account for objects where schema describes additional properties ([#873]), by [@fredden] and [@localheinz]For a full diff see [4.0.1...4.0.2][4.0.1...4.0.2].
Vendor\Composer\VersionConstraintNormalizer to sort versions naturally ([#863]), by [@localheinz]For a full diff see [4.0.0...4.0.1][4.0.0...4.0.1].
Vendor\Composer\ComposerJsonNormalizer to stop sorting repositories ([#858]), by [@localheinz]Vendor\Composer\BinNormalizer ([#860]), by [@localheinz]Vendor\Composer\ConfigHashNormalizer to ensure config is sorted by ket ([#861]), by [@localheinz]For a full diff see [3.0.0...4.0.0][3.0.0...4.0.0].
FormatNormalizer ([#781]), by [@localheinz]ergebnis/json-schema-validator:^4.0.0 ([#771]), by [@localheinz]Normalizer\SchemaNormalizer to exclude properties from being sorted ([#774]), by [@localheinz]Vendor\Composer\BinNormalizer, Vendor\Composer\PackageHashNormalizer, Vendor\Composer\VersionConstraintNormalizer, and SchemaNormalizer to encode JSON with JSON_PRETTY_PRINT flag ([#795]), by [@localheinz]Vendor\Composer\BinNormalizer, Vendor\Composer\PackageHashNormalizer, Vendor\Composer\VersionConstraintNormalizer, and SchemaNormalizer to encode JSON with JSON_UNESCAPED_SLASHES flag ([#801]), by [@localheinz]Vendor\Composer\BinNormalizer, Vendor\Composer\PackageHashNormalizer, Vendor\Composer\VersionConstraintNormalizer, and SchemaNormalizer to encode JSON with JSON_UNESCAPED_UNICODE flag ([#802]), by [@localheinz]Vendor\Composer\ComposerJsonNormalizer to reject JSON when it is not an object ([#804]), by [@localheinz]Vendor\Composer\ComposerJsonNormalizer to compose WithFinalNewLineNormalizer ([#806]), by [@localheinz]Vendor\Composer\VersionConstraintNormalizer to skip normalization of version constraints when they can not be parsed by Composer\Semver\VersionParser ([#813]), by [@fredden] and [@localheinz]Vendor\Composer\VersionConstraintNormalizer to sort versions in ascending order ([#816]), by [@fredden]Vendor\Composer\VersionConstraintNormalizer to normalize version constraints separators in and constraints from space ( ) or comma (,) to space ( ) ([#819]), by [@fredden]Vendor\Composer\VersionConstraintNormalizer to remove overlapping version constraints in or version constraints ([#850]), by [@fredden]Vendor\Composer\VersionConstraintNormalizer to remove duplicate version constraints ([#856]), by [@localheinz]Vendor\Composer\ComposerJsonNormalizer to stop sorting scripts.auto-scripts ([#776]), by [@localheinz]Vendor\Composer\ComposerJsonNormalizer to stop sorting extra.installer-paths ([#777]), by [@localheinz]Vendor\Composer\ComposerJsonNormalizer to stop sorting config.allow-plugins ([#778]), by [@localheinz]Vendor\Composer\ComposerJsonNormalizer to stop sorting config.preferred-install ([#779]), by [@localheinz]Vendor\Composer\ComposerJsonNormalizer to stop sorting children of extra.patches ([#780]), by [@localheinz]ergebnis/json and removed Json and Exception\InvalidJsonEncoded ([#772]), by [@localheinz]Vendor\Composer\ConfigHashNormalizer ([#775]), by [@localheinz]AutoFormatNormalizer ([#793]), by [@localheinz]FixedFormatNormalizer ([#794]), by [@localheinz]Vendor\Composer\BinNormalizer ([#805]), by [@localheinz]For a full diff see [2.2.0...3.0.0][2.2.0...3.0.0].
ergebnis/json-schema-validator:^3.0.0 ([#666]), by [@dependabot]Exception\ExceptionInterface to Exception\Exception ([#667]), by [@localheinz]Exception suffix from all exceptions ([#668]), by [@localheinz]NormalizerInterface to Normalizer ([#669]), by [@localheinz]Format\Formatter to Format\DefaultFormatter ([#672]), by [@localheinz]Format\FormatterInterface to Format\Formatter ([#673]), by [@localheinz]ergebnis/json-pointer:^3.0.0 and ergebnis/json-schema-validator:^3.1.0 ([#697]), by [@localheinz]ergebnis/json-pointer:^3.1.0 ([#698]), by [@dependabot]justinrainbow/json-schema:^5.2.12 ([#705]), by [@dependabot]ConfigHashNormalizer to sort keys correctly ([#723]), by [@fredded]For a full diff see [2.1.0...2.2.0][2.1.0...2.2.0].
type property in schema is set to array or object ([#632]), by [@localheinz]SchemaNormalizer to normalize additional object properties ([#639]), by [@localheinz]SchemaNormalizer to normalize array values for which schema does not declare item schema ([#641]), by [@localheinz]For a full diff see [2.0.0...2.1.0][2.0.0...2.1.0].
SchemaNormalizer to support anyOf ([#623]), by [@localheinz]For a full diff see [1.0.3...2.0.0][1.0.3...2.0.0].
Format::__toString(), Indent::__toString(), and Json::__toString() to Format::toString(), Indent::toString(), and Json::toString(), requiring consumers to explicitly invoke methods instead of allowing to cast to string ([#589]), by [@localheinz]SchemaValidator provided by ergebnis/json-schema-validator ([#595]), by [@localheinz]Format\JsonEncodeOptions::value() to Format\JsonEncodeOptions::toInt() ([#603]), by [@localheinz]Format\Format::create() as named constructor and reduced visibility of __construct to private ([#608]), by [@localheinz]Format\Format into Json ([#616]), by [@localheinz]FinalNewLineNormalizer to WithFinalNewLineNormalizer ([#618]), by [@localheinz]NoFinalNewLineNormalizer to WithoutFinalNewLineNormalizer ([#619]), by [@localheinz]justinrainbow/json-schema ([#517]), by [@dependabot]allow-plugins configuration ([#590]), by [@dependabot]Validator\Result, Valdiator\SchemaValidator, and Validator\SchemaValidatorInterface ([#597]), by [@dependabot]For a full diff see [1.0.2...1.0.3][1.0.2...1.0.3].
Vendor\Composer\PackageHashNormalizer to take into account the newly addded composer-plugin-api as platform requirement ([#463]), by [@localheinz]For a full diff see [1.0.1...1.0.2][1.0.1...1.0.2].
Vendor\Composer\ConfigHashNormalizer to take into account the full property path, not only the property name ([#429]), by [@localheinz]For a full diff see [1.0.0...1.0.1][1.0.0...1.0.1].
Vendor\Composer\ConfigHashNormalizer to ignore the preferred-install hash ([#425]), by [@localheinz]For a full diff see [0.14.1...1.0.0][0.14.1...1.0.0].
Vendor\Composer\ConfigHashNormalizer to recursively sort hashes by key ([#424]), by [@localheinz]For a full diff see [0.8.0...0.9.0][0.8.0...0.9.0].
JsonEncodeOptions value object ([#93]), by [@localheinz]Format into named constructor on Indent value object ([#94]), by [@localheinz]Format into named constructor on JsonEncodeOptions value object([#95]), by [@localheinz]Format into named constructor on NewLine value object ([#96]), by [@localheinz]Json value object from decoded data ([#88]), by [@localheinz]IndentInterface ([#89]), by [@localheinz]NewLineInterface ([#90]), by [@localheinz]FormatInterface ([#91]), by [@localheinz]JsonInterface ([#92]), by [@localheinz]For a full diff see [0.7.0...0.8.0][0.7.0...0.8.0].
Json value object to allow creation from data ([#86]), by [@localheinz]InvalidJsonException to InvalidJsonEncodedException ([#85]), by [@localheinz]ExceptionInterface now extends Throwable ([#82]), by [@BackEndTea]ext/json is now explicitly required ([#84]), by [@localheinz]For a full diff see [0.6.0...0.7.0][0.6.0...0.7.0].
Indent value object ([#73]), by [@localheinz]NewLine value object ([#76]), by [@localheinz]Json value object ([#64]), by [@localheinz]Sniffer in favour of a named constructor on Format value object ([#77]), by [@localheinz]Format value object now rejects mixed tabs and spaces as indent ([#69]), by [@localheinz]For a full diff see [0.5.2...0.6.0][0.5.2...0.6.0].
For a full diff see [0.5.1...0.5.2][0.5.1...0.5.2].
For a full diff see [0.5.0...0.5.1][0.5.0...0.5.1].
oneOf combination ([#47]), by [@localheinz]For a full diff see [0.4.0...0.5.0][0.4.0...0.5.0].
oneOf ([#45]), by [@localheinz]For a full diff see [0.3.0...0.4.0][0.3.0...0.4.0].
Formatter ([#31]), by [@localheinz]FormatSniffer to Sniffer ([#30]), by [@localheinz]For a full diff see [0.2.0...0.3.0][0.2.0...0.3.0].
Format value object ([#29]), by [@localheinz]For a full diff see [0.1.0...0.2.0][0.1.0...0.2.0].
FixedFormatNormalizer ([#17]), by [@localheinz]For a full diff see [0.14.0...0.14.1][0.14.0...0.14.1].
Vendor\Composer\ConfigHashNormalizer to continue normalizing properties when a property has an empty value ([#423]), by [@localheinz]For a full diff see [0.13.1...0.14.0][0.13.1...0.14.0].
Indent::CHARACTERS constant that exposes a map of indent styles to indent characters ([#384]), by [@localheinz]For a full diff see [0.13.0...0.13.1][0.13.0...0.13.1].
For a full diff see [0.12.0...0.13.0][0.12.0...0.13.0].
For a full diff see [0.11.0...0.12.0][0.11.0...0.12.0].
SchemaValidator::validate(), which returns a Result composing validation error messages ([#268]), by [@localheinz]SchemaValidator::isValid() ([#269]), by [@localheinz]For a full diff see [0.10.1...0.11.0][0.10.1...0.11.0].
ergebnis/composer-json-normalizer ([#203]), by [@localheinz]ChainUriRetriever ([#202]), by [@localheinz]For a full diff see [0.10.0...0.10.1][0.10.0...0.10.1].
For a full diff see [0.9.0...0.10.0][0.9.0...0.10.0].
ChainUriRetriever which allows specifying multiple URI retrievers ([#102]), by [@localheinz]Allowing injection of a UriRetriever into the SchemaNormalizer, and defaulting to a ChainUriRetriever which composes FileGetContents and Curl URI retrievers ([#104]), by [@localheinz]
Dropped null default values of constructor arguments of AutoFormatNormalizer, FixedFormatNormalizer, Formatter, IndentNormalizer to expose hard dependencies ([#109]), by [@localheinz]
Dropped nullable return type declaration from ChainUriRetriever::getContentType(), defaulting to an empty string when ChainUriRetriever::retrieve() wasn't invoked yet ([#132]), by [@localheinz]
Started using ergebnis/json-printer instead of localheinz/json-printer ([#176]), by [@localheinz]
Renamed vendor namespace Localheinz to Ergebnis after move to [@ergebnis] ([#181]), by [@localheinz]
Run
$ composer remove localheinz/json-normalizer
and
$ composer require ergebnis/json-normalizer
to update.
Run
$ find . -type f -exec sed -i '.bak' 's/Localheinz\\Json\\Normalizer/Ergebnis\\Json\\Normalizer/g' {} \;
to replace occurrences of Localheinz\Json\Normalizer with Ergebnis\Json\Normalizer.
Run
$ find -type f -name '*.bak' -delete
to delete backup files created in the previous step.
For a full diff see 5d8b3e2...0.1.0.
IndentNormalizer (#1), by [@localheinz]FinalNewLineNormalizer (#2), by [@localheinz]NoFinalNewLineNormalizer (#3), by [@localheinz]JsonEncodeNormalizer (#7), by [@localheinz]CallableNormalizer (#8), by [@localheinz]ChainNormalizer (#9), by [@localheinz]Format value object (#10), by [@localheinz]FormatSniffer (#12), by [@localheinz]AutoFormatNormalizer (#13), by [@localheinz]SchemaNormalizer (#15), by [@localheinz][@alexis-saransig-lullabot]: https://github.com/alexis-saransig-lullabot [@BackEndTea]: https://github.com/BackEndTea [@dependabot]: https://github.com/dependabot [@ergebnis]: https://github.com/ergebnis [@fredden]: https://github.com/fredden [@localheinz]: https://github.com/localheinz [@tacman]: https://github.com/tacman
How can I help you explore Laravel packages today?