diff --git a/CHANGELOG.md b/CHANGELOG.md index 5f08228e..5d6ea75d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,7 @@ For a full diff see [`4.3.0...main`][4.3.0...main]. ### Changed - Started removing `v` prefixes from version constraints ([#1027]), by [@fredden] +- Started sorting items in the `exclude` and `only` properties of items listed in the `repositories` section ([#1001]), by [@fredden] ## [`4.3.0`][4.3.0] @@ -655,6 +656,7 @@ For a full diff see [`5d8b3e2...0.1.0`][5d8b3e2...0.1.0]. [#989]: https://github.com/ergebnis/json-normalizer/pull/989 [#991]: https://github.com/ergebnis/json-normalizer/pull/991 [#992]: https://github.com/ergebnis/json-normalizer/pull/992 +[#1001]: https://github.com/ergebnis/json-normalizer/pull/1001 [#1027]: https://github.com/ergebnis/json-normalizer/pull/1027 [@alexis-saransig-lullabot]: https://github.com/alexis-saransig-lullabot diff --git a/README.md b/README.md index 6148dac1..fb48c881 100644 --- a/README.md +++ b/README.md @@ -422,6 +422,7 @@ It composes the following normalizers: - [`Ergebnis\Composer\Json\Normalizer\Vendor\Composer\BinNormalizer`](#vendorcomposerbinnormalizer) - [`Ergebnis\Composer\Json\Normalizer\Vendor\Composer\ConfigHashNormalizer`](#vendorcomposerconfighashnormalizer) - [`Ergebnis\Composer\Json\Normalizer\Vendor\Composer\PackageHashNormalizer`](#vendorcomposerpackagehashnormalizer) +- [`Ergebnis\Composer\Json\Normalizer\Vendor\Composer\RepositoriesHashNormalizer`](#vendorcomposerrepositorieshashnormalizer) - [`Ergebnis\Composer\Json\Normalizer\Vendor\Composer\VersionConstraintNormalizer`](#vendorcomposerversionconstraintnormalizer) - [`Ergebnis\Composer\Json\Normalizer\Vendor\WithFinalNewLineNormalizer`](#withfinalnewlinenormalizer) @@ -452,6 +453,14 @@ sections, the `Vendor\Composer\PackageHashNormalizer` will sort the packages in :bulb: This transfers the behaviour from using the [`--sort-packages`](https://getcomposer.org/doc/03-cli.md#require) or [`sort-packages`](https://getcomposer.org/doc/06-config.md#sort-packages) configuration flag in `require` and `require-dev` to other sections. +#### `Vendor\Composer\RepositoriesHashNormalizer` + +When `composer.json` contains any configuration in the + +- [`repositories`](https://getcomposer.org/doc/04-schema.md#repositories) + +section, the `Vendor\Composer\RepositoriesHashNormalizer` will sort the repositories listed in the [`exclude` and `only` properties of repositories](https://getcomposer.org/doc/articles/repository-priorities.md#filtering-packages). + #### `Vendor\Composer\VersionConstraintNormalizer` When `composer.json` contains version constraints in the diff --git a/psalm-baseline.xml b/psalm-baseline.xml index 6f36b8bb..14792add 100644 --- a/psalm-baseline.xml +++ b/psalm-baseline.xml @@ -37,11 +37,21 @@ <code>$value</code> </MixedAssignment> </file> + <file src="src/Vendor/Composer/RepositoriesHashNormalizer.php"> + <MixedAssignment> + <code>$repository</code> + </MixedAssignment> + </file> <file src="src/Vendor/Composer/VersionConstraintNormalizer.php"> <MixedAssignment> <code>$value</code> </MixedAssignment> </file> + <file src="src/Vendor/Composer/WildcardSorter.php"> + <MixedAssignment> + <code>$package</code> + </MixedAssignment> + </file> <file src="test/Fixture/FormatNormalizer/NormalizeNormalizesJson/Scenario.php"> <PossiblyUnusedMethod> <code>key</code> diff --git a/src/Vendor/Composer/ComposerJsonNormalizer.php b/src/Vendor/Composer/ComposerJsonNormalizer.php index b69bb848..2a67913b 100644 --- a/src/Vendor/Composer/ComposerJsonNormalizer.php +++ b/src/Vendor/Composer/ComposerJsonNormalizer.php @@ -93,6 +93,7 @@ public function __construct(string $schemaUri) new BinNormalizer(), new ConfigHashNormalizer(), new PackageHashNormalizer(), + new RepositoriesHashNormalizer(), new VersionConstraintNormalizer(new Semver\VersionParser()), new Normalizer\WithFinalNewLineNormalizer(), ); diff --git a/src/Vendor/Composer/ConfigHashNormalizer.php b/src/Vendor/Composer/ConfigHashNormalizer.php index 0490ed06..f6945ecd 100644 --- a/src/Vendor/Composer/ConfigHashNormalizer.php +++ b/src/Vendor/Composer/ConfigHashNormalizer.php @@ -29,6 +29,12 @@ final class ConfigHashNormalizer implements Normalizer */ 'preferred-install', ]; + private readonly WildcardSorter $wildcardSorter; + + public function __construct() + { + $this->wildcardSorter = new WildcardSorter(); + } public function normalize(Json $json): Json { @@ -56,7 +62,7 @@ public function normalize(Json $json): Json \ksort($config); foreach (self::PROPERTIES_WITH_WILDCARDS as $property) { - self::sortPropertyWithWildcard( + $this->wildcardSorter->sortPropertyWithWildcard( $config, $property, ); @@ -72,59 +78,4 @@ public function normalize(Json $json): Json return Json::fromString($encoded); } - - /** - * When sorting with wildcards, special care needs to be taken. - * - * @see https://github.com/ergebnis/json-normalizer/pull/775#issuecomment-1346095415 - * @see https://github.com/composer/composer/blob/2.6.5/src/Composer/Plugin/PluginManager.php#L85-L86 - * @see https://github.com/composer/composer/blob/2.6.5/src/Composer/Plugin/PluginManager.php#L626-L646 - * @see https://github.com/composer/composer/blob/2.6.5/src/Composer/Package/BasePackage.php#L252-L257 - * @see https://github.com/composer/composer/blob/2.6.5/src/Composer/Plugin/PluginManager.php#L687-L691 - */ - private static function sortPropertyWithWildcard( - array &$config, - string $property, - ): void { - if (!\array_key_exists($property, $config)) { - return; - } - - if (!\is_object($config[$property])) { - return; - } - - $value = (array) $config[$property]; - - if ([] === $value) { - return; - } - - foreach (\array_keys($value) as $package) { - /** @var string $package */ - if (\str_contains(\rtrim($package, '*'), '*')) { - // We cannot reliably sort allow-plugins when there's a wildcard other than at the end of the string. - return; - } - } - - $normalize = static function (string $package): string { - // Any key with an asterisk needs to be the last entry in its group - return \str_replace( - '*', - '~', - $package, - ); - }; - - /** @var array<string, mixed> $value */ - \uksort($value, static function (string $a, string $b) use ($normalize): int { - return \strcmp( - $normalize($a), - $normalize($b), - ); - }); - - $config[$property] = $value; - } } diff --git a/src/Vendor/Composer/RepositoriesHashNormalizer.php b/src/Vendor/Composer/RepositoriesHashNormalizer.php new file mode 100644 index 00000000..c6438486 --- /dev/null +++ b/src/Vendor/Composer/RepositoriesHashNormalizer.php @@ -0,0 +1,81 @@ +<?php + +declare(strict_types=1); + +/** + * Copyright (c) 2018-2023 Andreas Möller + * + * For the full copyright and license information, please view + * the LICENSE.md file that was distributed with this source code. + * + * @see https://github.com/ergebnis/json-normalizer + */ + +namespace Ergebnis\Json\Normalizer\Vendor\Composer; + +use Ergebnis\Json\Json; +use Ergebnis\Json\Normalizer\Format; +use Ergebnis\Json\Normalizer\Normalizer; + +final class RepositoriesHashNormalizer implements Normalizer +{ + private const PROPERTIES_WITH_WILDCARDS = [ + /** + * @see https://getcomposer.org/doc/articles/repository-priorities.md#filtering-packages + */ + 'exclude', + 'only', + ]; + private readonly WildcardSorter $wildcardSorter; + + public function __construct() + { + $this->wildcardSorter = new WildcardSorter(); + } + + public function normalize(Json $json): Json + { + $decoded = $json->decoded(); + + if (!\is_object($decoded)) { + return $json; + } + + if (!\property_exists($decoded, 'repositories')) { + return $json; + } + + if (!\is_object($decoded->repositories) && !\is_array($decoded->repositories)) { + return $json; + } + + /** @var array<string, mixed> $repositories */ + $repositories = (array) $decoded->repositories; + + if ([] === $repositories) { + return $json; + } + + foreach ($repositories as &$repository) { + $repository = (array) $repository; + + foreach (self::PROPERTIES_WITH_WILDCARDS as $property) { + $this->wildcardSorter->sortPropertyWithWildcard( + $repository, + $property, + false, + ); + } + } + + $decoded->repositories = $repositories; + + /** @var string $encoded */ + $encoded = \json_encode( + $decoded, + Format\JsonEncodeOptions::default()->toInt(), + ); + + return Json::fromString($encoded); + } +} diff --git a/src/Vendor/Composer/WildcardSorter.php b/src/Vendor/Composer/WildcardSorter.php new file mode 100644 index 00000000..4714f5e7 --- /dev/null +++ b/src/Vendor/Composer/WildcardSorter.php @@ -0,0 +1,85 @@ +<?php + +declare(strict_types=1); + +/** + * Copyright (c) 2018-2023 Andreas Möller + * + * For the full copyright and license information, please view + * the LICENSE.md file that was distributed with this source code. + * + * @see https://github.com/ergebnis/json-normalizer + */ + +namespace Ergebnis\Json\Normalizer\Vendor\Composer; + +/** + * @internal + */ +final class WildcardSorter +{ + /** + * When sorting with wildcards, special care needs to be taken. + * + * @see https://github.com/ergebnis/json-normalizer/pull/775#issuecomment-1346095415 + * @see https://github.com/composer/composer/blob/2.6.5/src/Composer/Plugin/PluginManager.php#L85-L86 + * @see https://github.com/composer/composer/blob/2.6.5/src/Composer/Plugin/PluginManager.php#L626-L646 + * @see https://github.com/composer/composer/blob/2.6.5/src/Composer/Package/BasePackage.php#L252-L257 + * @see https://github.com/composer/composer/blob/2.6.5/src/Composer/Plugin/PluginManager.php#L687-L691 + */ + public function sortPropertyWithWildcard( + array &$config, + string $property, + bool $sortByKey = true, + ): void { + if (!\array_key_exists($property, $config)) { + return; + } + + if (!\is_object($config[$property]) && !\is_array($config[$property])) { + return; + } + + $value = (array) $config[$property]; + + if ([] === $value) { + return; + } + + $packages = $sortByKey ? \array_keys($value) : \array_values($value); + + foreach ($packages as $package) { + /** @var string $package */ + if (\str_contains(\rtrim($package, '*'), '*')) { + // We cannot reliably sort allow-plugins when there's a wildcard other than at the end of the string. + return; + } + } + + $normalize = static function (string $package): string { + // Any key with an asterisk needs to be the last entry in its group + return \str_replace( + '*', + '~', + $package, + ); + }; + + $callback = static function (string $a, string $b) use ($normalize): int { + return \strcmp( + $normalize($a), + $normalize($b), + ); + }; + + if ($sortByKey) { + /** @var array<string, mixed> $value */ + \uksort($value, $callback); + } else { + /** @var array<mixed, string> $value */ + \usort($value, $callback); + } + + $config[$property] = $value; + } +} diff --git a/test/Fixture/Vendor/Composer/ComposerJsonNormalizer/NormalizeNormalizesJson/Json/IsObject/HasEntries/Yes/HasProperty/Repositories/HasEntries/Yes/IsArray/normalized.json b/test/Fixture/Vendor/Composer/ComposerJsonNormalizer/NormalizeNormalizesJson/Json/IsObject/HasEntries/Yes/HasProperty/Repositories/HasEntries/Yes/IsArray/UsesFiltering/No/normalized.json similarity index 92% rename from test/Fixture/Vendor/Composer/ComposerJsonNormalizer/NormalizeNormalizesJson/Json/IsObject/HasEntries/Yes/HasProperty/Repositories/HasEntries/Yes/IsArray/normalized.json rename to test/Fixture/Vendor/Composer/ComposerJsonNormalizer/NormalizeNormalizesJson/Json/IsObject/HasEntries/Yes/HasProperty/Repositories/HasEntries/Yes/IsArray/UsesFiltering/No/normalized.json index ed5d95e8..07dc4887 100644 --- a/test/Fixture/Vendor/Composer/ComposerJsonNormalizer/NormalizeNormalizesJson/Json/IsObject/HasEntries/Yes/HasProperty/Repositories/HasEntries/Yes/IsArray/normalized.json +++ b/test/Fixture/Vendor/Composer/ComposerJsonNormalizer/NormalizeNormalizesJson/Json/IsObject/HasEntries/Yes/HasProperty/Repositories/HasEntries/Yes/IsArray/UsesFiltering/No/normalized.json @@ -17,10 +17,7 @@ "repositories": [ { "type": "composer", - "url": "http://packages.example.com", - "only": [ - "example/*" - ] + "url": "http://packages.example.com" }, { "type": "composer", diff --git a/test/Fixture/Vendor/Composer/ComposerJsonNormalizer/NormalizeNormalizesJson/Json/IsObject/HasEntries/Yes/HasProperty/Repositories/HasEntries/Yes/IsArray/original.json b/test/Fixture/Vendor/Composer/ComposerJsonNormalizer/NormalizeNormalizesJson/Json/IsObject/HasEntries/Yes/HasProperty/Repositories/HasEntries/Yes/IsArray/UsesFiltering/No/original.json similarity index 97% rename from test/Fixture/Vendor/Composer/ComposerJsonNormalizer/NormalizeNormalizesJson/Json/IsObject/HasEntries/Yes/HasProperty/Repositories/HasEntries/Yes/IsArray/original.json rename to test/Fixture/Vendor/Composer/ComposerJsonNormalizer/NormalizeNormalizesJson/Json/IsObject/HasEntries/Yes/HasProperty/Repositories/HasEntries/Yes/IsArray/UsesFiltering/No/original.json index a476f8b0..165244d6 100644 --- a/test/Fixture/Vendor/Composer/ComposerJsonNormalizer/NormalizeNormalizesJson/Json/IsObject/HasEntries/Yes/HasProperty/Repositories/HasEntries/Yes/IsArray/original.json +++ b/test/Fixture/Vendor/Composer/ComposerJsonNormalizer/NormalizeNormalizesJson/Json/IsObject/HasEntries/Yes/HasProperty/Repositories/HasEntries/Yes/IsArray/UsesFiltering/No/original.json @@ -17,7 +17,6 @@ "repositories": [ { "url": "http://packages.example.com", - "only": [ "example/*" ], "type": "composer" }, { diff --git a/test/Fixture/Vendor/Composer/ComposerJsonNormalizer/NormalizeNormalizesJson/Json/IsObject/HasEntries/Yes/HasProperty/Repositories/HasEntries/Yes/IsArray/UsesFiltering/Yes/WithExclude/HasWildcard/No/normalized.json b/test/Fixture/Vendor/Composer/ComposerJsonNormalizer/NormalizeNormalizesJson/Json/IsObject/HasEntries/Yes/HasProperty/Repositories/HasEntries/Yes/IsArray/UsesFiltering/Yes/WithExclude/HasWildcard/No/normalized.json new file mode 100644 index 00000000..31777ed0 --- /dev/null +++ b/test/Fixture/Vendor/Composer/ComposerJsonNormalizer/NormalizeNormalizesJson/Json/IsObject/HasEntries/Yes/HasProperty/Repositories/HasEntries/Yes/IsArray/UsesFiltering/Yes/WithExclude/HasWildcard/No/normalized.json @@ -0,0 +1,27 @@ +{ + "name": "ergebnis/json-normalizer", + "description": "Provides generic and vendor-specific normalizers for normalizing JSON documents.", + "license": "MIT", + "type": "library", + "keywords": [ + "json", + "normalizer" + ], + "authors": [ + { + "name": "Andreas Möller", + "email": "am@localheinz.com" + } + ], + "homepage": "https://getcomposer.org/doc/04-schema.md#repositories", + "repositories": [ + { + "type": "composer", + "url": "http://packages.foo.com", + "exclude": [ + "vendor/one", + "vendor/two" + ] + } + ] +} diff --git a/test/Fixture/Vendor/Composer/ComposerJsonNormalizer/NormalizeNormalizesJson/Json/IsObject/HasEntries/Yes/HasProperty/Repositories/HasEntries/Yes/IsArray/UsesFiltering/Yes/WithExclude/HasWildcard/No/original.json b/test/Fixture/Vendor/Composer/ComposerJsonNormalizer/NormalizeNormalizesJson/Json/IsObject/HasEntries/Yes/HasProperty/Repositories/HasEntries/Yes/IsArray/UsesFiltering/Yes/WithExclude/HasWildcard/No/original.json new file mode 100644 index 00000000..9ef2543e --- /dev/null +++ b/test/Fixture/Vendor/Composer/ComposerJsonNormalizer/NormalizeNormalizesJson/Json/IsObject/HasEntries/Yes/HasProperty/Repositories/HasEntries/Yes/IsArray/UsesFiltering/Yes/WithExclude/HasWildcard/No/original.json @@ -0,0 +1,24 @@ +{ + "name": "ergebnis/json-normalizer", + "description": "Provides generic and vendor-specific normalizers for normalizing JSON documents.", + "license": "MIT", + "type": "library", + "keywords": [ + "json", + "normalizer" + ], + "authors": [ + { + "name": "Andreas Möller", + "email": "am@localheinz.com" + } + ], + "homepage": "https://getcomposer.org/doc/04-schema.md#repositories", + "repositories": [ + { + "url": "http://packages.foo.com", + "exclude": ["vendor/two","vendor/one"], + "type": "composer" + } + ] +} diff --git a/test/Fixture/Vendor/Composer/ComposerJsonNormalizer/NormalizeNormalizesJson/Json/IsObject/HasEntries/Yes/HasProperty/Repositories/HasEntries/Yes/IsArray/UsesFiltering/Yes/WithExclude/HasWildcard/Yes/WildcardIsAtEnd/No/normalized.json b/test/Fixture/Vendor/Composer/ComposerJsonNormalizer/NormalizeNormalizesJson/Json/IsObject/HasEntries/Yes/HasProperty/Repositories/HasEntries/Yes/IsArray/UsesFiltering/Yes/WithExclude/HasWildcard/Yes/WildcardIsAtEnd/No/normalized.json new file mode 100644 index 00000000..be185082 --- /dev/null +++ b/test/Fixture/Vendor/Composer/ComposerJsonNormalizer/NormalizeNormalizesJson/Json/IsObject/HasEntries/Yes/HasProperty/Repositories/HasEntries/Yes/IsArray/UsesFiltering/Yes/WithExclude/HasWildcard/Yes/WildcardIsAtEnd/No/normalized.json @@ -0,0 +1,27 @@ +{ + "name": "ergebnis/json-normalizer", + "description": "Provides generic and vendor-specific normalizers for normalizing JSON documents.", + "license": "MIT", + "type": "library", + "keywords": [ + "json", + "normalizer" + ], + "authors": [ + { + "name": "Andreas Möller", + "email": "am@localheinz.com" + } + ], + "homepage": "https://getcomposer.org/doc/04-schema.md#repositories", + "repositories": [ + { + "type": "composer", + "url": "http://packages.foo.com", + "exclude": [ + "vendor-two/*-test", + "vendor-one/*-test" + ] + } + ] +} diff --git a/test/Fixture/Vendor/Composer/ComposerJsonNormalizer/NormalizeNormalizesJson/Json/IsObject/HasEntries/Yes/HasProperty/Repositories/HasEntries/Yes/IsArray/UsesFiltering/Yes/WithExclude/HasWildcard/Yes/WildcardIsAtEnd/No/original.json b/test/Fixture/Vendor/Composer/ComposerJsonNormalizer/NormalizeNormalizesJson/Json/IsObject/HasEntries/Yes/HasProperty/Repositories/HasEntries/Yes/IsArray/UsesFiltering/Yes/WithExclude/HasWildcard/Yes/WildcardIsAtEnd/No/original.json new file mode 100644 index 00000000..0ea16738 --- /dev/null +++ b/test/Fixture/Vendor/Composer/ComposerJsonNormalizer/NormalizeNormalizesJson/Json/IsObject/HasEntries/Yes/HasProperty/Repositories/HasEntries/Yes/IsArray/UsesFiltering/Yes/WithExclude/HasWildcard/Yes/WildcardIsAtEnd/No/original.json @@ -0,0 +1,24 @@ +{ + "name": "ergebnis/json-normalizer", + "description": "Provides generic and vendor-specific normalizers for normalizing JSON documents.", + "license": "MIT", + "type": "library", + "keywords": [ + "json", + "normalizer" + ], + "authors": [ + { + "name": "Andreas Möller", + "email": "am@localheinz.com" + } + ], + "homepage": "https://getcomposer.org/doc/04-schema.md#repositories", + "repositories": [ + { + "url": "http://packages.foo.com", + "exclude": ["vendor-two/*-test","vendor-one/*-test"], + "type": "composer" + } + ] +} diff --git a/test/Fixture/Vendor/Composer/ComposerJsonNormalizer/NormalizeNormalizesJson/Json/IsObject/HasEntries/Yes/HasProperty/Repositories/HasEntries/Yes/IsArray/UsesFiltering/Yes/WithExclude/HasWildcard/Yes/WildcardIsAtEnd/Yes/normalized.json b/test/Fixture/Vendor/Composer/ComposerJsonNormalizer/NormalizeNormalizesJson/Json/IsObject/HasEntries/Yes/HasProperty/Repositories/HasEntries/Yes/IsArray/UsesFiltering/Yes/WithExclude/HasWildcard/Yes/WildcardIsAtEnd/Yes/normalized.json new file mode 100644 index 00000000..0cbb9655 --- /dev/null +++ b/test/Fixture/Vendor/Composer/ComposerJsonNormalizer/NormalizeNormalizesJson/Json/IsObject/HasEntries/Yes/HasProperty/Repositories/HasEntries/Yes/IsArray/UsesFiltering/Yes/WithExclude/HasWildcard/Yes/WildcardIsAtEnd/Yes/normalized.json @@ -0,0 +1,27 @@ +{ + "name": "ergebnis/json-normalizer", + "description": "Provides generic and vendor-specific normalizers for normalizing JSON documents.", + "license": "MIT", + "type": "library", + "keywords": [ + "json", + "normalizer" + ], + "authors": [ + { + "name": "Andreas Möller", + "email": "am@localheinz.com" + } + ], + "homepage": "https://getcomposer.org/doc/04-schema.md#repositories", + "repositories": [ + { + "type": "composer", + "url": "http://packages.foo.com", + "exclude": [ + "vendor-one/*", + "vendor-two/*" + ] + } + ] +} diff --git a/test/Fixture/Vendor/Composer/ComposerJsonNormalizer/NormalizeNormalizesJson/Json/IsObject/HasEntries/Yes/HasProperty/Repositories/HasEntries/Yes/IsArray/UsesFiltering/Yes/WithExclude/HasWildcard/Yes/WildcardIsAtEnd/Yes/original.json b/test/Fixture/Vendor/Composer/ComposerJsonNormalizer/NormalizeNormalizesJson/Json/IsObject/HasEntries/Yes/HasProperty/Repositories/HasEntries/Yes/IsArray/UsesFiltering/Yes/WithExclude/HasWildcard/Yes/WildcardIsAtEnd/Yes/original.json new file mode 100644 index 00000000..c4602c19 --- /dev/null +++ b/test/Fixture/Vendor/Composer/ComposerJsonNormalizer/NormalizeNormalizesJson/Json/IsObject/HasEntries/Yes/HasProperty/Repositories/HasEntries/Yes/IsArray/UsesFiltering/Yes/WithExclude/HasWildcard/Yes/WildcardIsAtEnd/Yes/original.json @@ -0,0 +1,24 @@ +{ + "name": "ergebnis/json-normalizer", + "description": "Provides generic and vendor-specific normalizers for normalizing JSON documents.", + "license": "MIT", + "type": "library", + "keywords": [ + "json", + "normalizer" + ], + "authors": [ + { + "name": "Andreas Möller", + "email": "am@localheinz.com" + } + ], + "homepage": "https://getcomposer.org/doc/04-schema.md#repositories", + "repositories": [ + { + "url": "http://packages.foo.com", + "exclude": ["vendor-two/*","vendor-one/*"], + "type": "composer" + } + ] +} diff --git a/test/Fixture/Vendor/Composer/ComposerJsonNormalizer/NormalizeNormalizesJson/Json/IsObject/HasEntries/Yes/HasProperty/Repositories/HasEntries/Yes/IsArray/UsesFiltering/Yes/WithOnly/HasWildcard/No/normalized.json b/test/Fixture/Vendor/Composer/ComposerJsonNormalizer/NormalizeNormalizesJson/Json/IsObject/HasEntries/Yes/HasProperty/Repositories/HasEntries/Yes/IsArray/UsesFiltering/Yes/WithOnly/HasWildcard/No/normalized.json new file mode 100644 index 00000000..9ebedc4f --- /dev/null +++ b/test/Fixture/Vendor/Composer/ComposerJsonNormalizer/NormalizeNormalizesJson/Json/IsObject/HasEntries/Yes/HasProperty/Repositories/HasEntries/Yes/IsArray/UsesFiltering/Yes/WithOnly/HasWildcard/No/normalized.json @@ -0,0 +1,27 @@ +{ + "name": "ergebnis/json-normalizer", + "description": "Provides generic and vendor-specific normalizers for normalizing JSON documents.", + "license": "MIT", + "type": "library", + "keywords": [ + "json", + "normalizer" + ], + "authors": [ + { + "name": "Andreas Möller", + "email": "am@localheinz.com" + } + ], + "homepage": "https://getcomposer.org/doc/04-schema.md#repositories", + "repositories": [ + { + "type": "composer", + "url": "http://packages.foo.com", + "only": [ + "vendor/one", + "vendor/two" + ] + } + ] +} diff --git a/test/Fixture/Vendor/Composer/ComposerJsonNormalizer/NormalizeNormalizesJson/Json/IsObject/HasEntries/Yes/HasProperty/Repositories/HasEntries/Yes/IsArray/UsesFiltering/Yes/WithOnly/HasWildcard/No/original.json b/test/Fixture/Vendor/Composer/ComposerJsonNormalizer/NormalizeNormalizesJson/Json/IsObject/HasEntries/Yes/HasProperty/Repositories/HasEntries/Yes/IsArray/UsesFiltering/Yes/WithOnly/HasWildcard/No/original.json new file mode 100644 index 00000000..9b7dd137 --- /dev/null +++ b/test/Fixture/Vendor/Composer/ComposerJsonNormalizer/NormalizeNormalizesJson/Json/IsObject/HasEntries/Yes/HasProperty/Repositories/HasEntries/Yes/IsArray/UsesFiltering/Yes/WithOnly/HasWildcard/No/original.json @@ -0,0 +1,24 @@ +{ + "name": "ergebnis/json-normalizer", + "description": "Provides generic and vendor-specific normalizers for normalizing JSON documents.", + "license": "MIT", + "type": "library", + "keywords": [ + "json", + "normalizer" + ], + "authors": [ + { + "name": "Andreas Möller", + "email": "am@localheinz.com" + } + ], + "homepage": "https://getcomposer.org/doc/04-schema.md#repositories", + "repositories": [ + { + "url": "http://packages.foo.com", + "only": ["vendor/two","vendor/one"], + "type": "composer" + } + ] +} diff --git a/test/Fixture/Vendor/Composer/ComposerJsonNormalizer/NormalizeNormalizesJson/Json/IsObject/HasEntries/Yes/HasProperty/Repositories/HasEntries/Yes/IsArray/UsesFiltering/Yes/WithOnly/HasWildcard/Yes/WildcardIsAtEnd/No/normalized.json b/test/Fixture/Vendor/Composer/ComposerJsonNormalizer/NormalizeNormalizesJson/Json/IsObject/HasEntries/Yes/HasProperty/Repositories/HasEntries/Yes/IsArray/UsesFiltering/Yes/WithOnly/HasWildcard/Yes/WildcardIsAtEnd/No/normalized.json new file mode 100644 index 00000000..10d1c9d6 --- /dev/null +++ b/test/Fixture/Vendor/Composer/ComposerJsonNormalizer/NormalizeNormalizesJson/Json/IsObject/HasEntries/Yes/HasProperty/Repositories/HasEntries/Yes/IsArray/UsesFiltering/Yes/WithOnly/HasWildcard/Yes/WildcardIsAtEnd/No/normalized.json @@ -0,0 +1,27 @@ +{ + "name": "ergebnis/json-normalizer", + "description": "Provides generic and vendor-specific normalizers for normalizing JSON documents.", + "license": "MIT", + "type": "library", + "keywords": [ + "json", + "normalizer" + ], + "authors": [ + { + "name": "Andreas Möller", + "email": "am@localheinz.com" + } + ], + "homepage": "https://getcomposer.org/doc/04-schema.md#repositories", + "repositories": [ + { + "type": "composer", + "url": "http://packages.foo.com", + "only": [ + "vendor-two/*-test", + "vendor-one/*-test" + ] + } + ] +} diff --git a/test/Fixture/Vendor/Composer/ComposerJsonNormalizer/NormalizeNormalizesJson/Json/IsObject/HasEntries/Yes/HasProperty/Repositories/HasEntries/Yes/IsArray/UsesFiltering/Yes/WithOnly/HasWildcard/Yes/WildcardIsAtEnd/No/original.json b/test/Fixture/Vendor/Composer/ComposerJsonNormalizer/NormalizeNormalizesJson/Json/IsObject/HasEntries/Yes/HasProperty/Repositories/HasEntries/Yes/IsArray/UsesFiltering/Yes/WithOnly/HasWildcard/Yes/WildcardIsAtEnd/No/original.json new file mode 100644 index 00000000..9dfef2a0 --- /dev/null +++ b/test/Fixture/Vendor/Composer/ComposerJsonNormalizer/NormalizeNormalizesJson/Json/IsObject/HasEntries/Yes/HasProperty/Repositories/HasEntries/Yes/IsArray/UsesFiltering/Yes/WithOnly/HasWildcard/Yes/WildcardIsAtEnd/No/original.json @@ -0,0 +1,24 @@ +{ + "name": "ergebnis/json-normalizer", + "description": "Provides generic and vendor-specific normalizers for normalizing JSON documents.", + "license": "MIT", + "type": "library", + "keywords": [ + "json", + "normalizer" + ], + "authors": [ + { + "name": "Andreas Möller", + "email": "am@localheinz.com" + } + ], + "homepage": "https://getcomposer.org/doc/04-schema.md#repositories", + "repositories": [ + { + "url": "http://packages.foo.com", + "only": ["vendor-two/*-test","vendor-one/*-test"], + "type": "composer" + } + ] +} diff --git a/test/Fixture/Vendor/Composer/ComposerJsonNormalizer/NormalizeNormalizesJson/Json/IsObject/HasEntries/Yes/HasProperty/Repositories/HasEntries/Yes/IsArray/UsesFiltering/Yes/WithOnly/HasWildcard/Yes/WildcardIsAtEnd/Yes/normalized.json b/test/Fixture/Vendor/Composer/ComposerJsonNormalizer/NormalizeNormalizesJson/Json/IsObject/HasEntries/Yes/HasProperty/Repositories/HasEntries/Yes/IsArray/UsesFiltering/Yes/WithOnly/HasWildcard/Yes/WildcardIsAtEnd/Yes/normalized.json new file mode 100644 index 00000000..9ecf44eb --- /dev/null +++ b/test/Fixture/Vendor/Composer/ComposerJsonNormalizer/NormalizeNormalizesJson/Json/IsObject/HasEntries/Yes/HasProperty/Repositories/HasEntries/Yes/IsArray/UsesFiltering/Yes/WithOnly/HasWildcard/Yes/WildcardIsAtEnd/Yes/normalized.json @@ -0,0 +1,27 @@ +{ + "name": "ergebnis/json-normalizer", + "description": "Provides generic and vendor-specific normalizers for normalizing JSON documents.", + "license": "MIT", + "type": "library", + "keywords": [ + "json", + "normalizer" + ], + "authors": [ + { + "name": "Andreas Möller", + "email": "am@localheinz.com" + } + ], + "homepage": "https://getcomposer.org/doc/04-schema.md#repositories", + "repositories": [ + { + "type": "composer", + "url": "http://packages.foo.com", + "only": [ + "vendor-one/*", + "vendor-two/*" + ] + } + ] +} diff --git a/test/Fixture/Vendor/Composer/ComposerJsonNormalizer/NormalizeNormalizesJson/Json/IsObject/HasEntries/Yes/HasProperty/Repositories/HasEntries/Yes/IsArray/UsesFiltering/Yes/WithOnly/HasWildcard/Yes/WildcardIsAtEnd/Yes/original.json b/test/Fixture/Vendor/Composer/ComposerJsonNormalizer/NormalizeNormalizesJson/Json/IsObject/HasEntries/Yes/HasProperty/Repositories/HasEntries/Yes/IsArray/UsesFiltering/Yes/WithOnly/HasWildcard/Yes/WildcardIsAtEnd/Yes/original.json new file mode 100644 index 00000000..d466a358 --- /dev/null +++ b/test/Fixture/Vendor/Composer/ComposerJsonNormalizer/NormalizeNormalizesJson/Json/IsObject/HasEntries/Yes/HasProperty/Repositories/HasEntries/Yes/IsArray/UsesFiltering/Yes/WithOnly/HasWildcard/Yes/WildcardIsAtEnd/Yes/original.json @@ -0,0 +1,24 @@ +{ + "name": "ergebnis/json-normalizer", + "description": "Provides generic and vendor-specific normalizers for normalizing JSON documents.", + "license": "MIT", + "type": "library", + "keywords": [ + "json", + "normalizer" + ], + "authors": [ + { + "name": "Andreas Möller", + "email": "am@localheinz.com" + } + ], + "homepage": "https://getcomposer.org/doc/04-schema.md#repositories", + "repositories": [ + { + "url": "http://packages.foo.com", + "only": ["vendor-two/*","vendor-one/*"], + "type": "composer" + } + ] +} diff --git a/test/Fixture/Vendor/Composer/ComposerJsonNormalizer/NormalizeNormalizesJson/Json/IsObject/HasEntries/Yes/HasProperty/Repositories/HasEntries/Yes/IsObject/normalized.json b/test/Fixture/Vendor/Composer/ComposerJsonNormalizer/NormalizeNormalizesJson/Json/IsObject/HasEntries/Yes/HasProperty/Repositories/HasEntries/Yes/IsObject/UsesFiltering/No/normalized.json similarity index 87% rename from test/Fixture/Vendor/Composer/ComposerJsonNormalizer/NormalizeNormalizesJson/Json/IsObject/HasEntries/Yes/HasProperty/Repositories/HasEntries/Yes/IsObject/normalized.json rename to test/Fixture/Vendor/Composer/ComposerJsonNormalizer/NormalizeNormalizesJson/Json/IsObject/HasEntries/Yes/HasProperty/Repositories/HasEntries/Yes/IsObject/UsesFiltering/No/normalized.json index fd2553c4..2488df56 100644 --- a/test/Fixture/Vendor/Composer/ComposerJsonNormalizer/NormalizeNormalizesJson/Json/IsObject/HasEntries/Yes/HasProperty/Repositories/HasEntries/Yes/IsObject/normalized.json +++ b/test/Fixture/Vendor/Composer/ComposerJsonNormalizer/NormalizeNormalizesJson/Json/IsObject/HasEntries/Yes/HasProperty/Repositories/HasEntries/Yes/IsObject/UsesFiltering/No/normalized.json @@ -17,10 +17,7 @@ "repositories": { "foo": { "type": "composer", - "url": "http://packages.foo.com", - "only": [ - "foo/*" - ] + "url": "http://packages.foo.com" }, "bar": { "type": "composer", diff --git a/test/Fixture/Vendor/Composer/ComposerJsonNormalizer/NormalizeNormalizesJson/Json/IsObject/HasEntries/Yes/HasProperty/Repositories/HasEntries/Yes/IsObject/original.json b/test/Fixture/Vendor/Composer/ComposerJsonNormalizer/NormalizeNormalizesJson/Json/IsObject/HasEntries/Yes/HasProperty/Repositories/HasEntries/Yes/IsObject/UsesFiltering/No/original.json similarity index 96% rename from test/Fixture/Vendor/Composer/ComposerJsonNormalizer/NormalizeNormalizesJson/Json/IsObject/HasEntries/Yes/HasProperty/Repositories/HasEntries/Yes/IsObject/original.json rename to test/Fixture/Vendor/Composer/ComposerJsonNormalizer/NormalizeNormalizesJson/Json/IsObject/HasEntries/Yes/HasProperty/Repositories/HasEntries/Yes/IsObject/UsesFiltering/No/original.json index 441409df..9598227a 100644 --- a/test/Fixture/Vendor/Composer/ComposerJsonNormalizer/NormalizeNormalizesJson/Json/IsObject/HasEntries/Yes/HasProperty/Repositories/HasEntries/Yes/IsObject/original.json +++ b/test/Fixture/Vendor/Composer/ComposerJsonNormalizer/NormalizeNormalizesJson/Json/IsObject/HasEntries/Yes/HasProperty/Repositories/HasEntries/Yes/IsObject/UsesFiltering/No/original.json @@ -17,7 +17,6 @@ "repositories": { "foo": { "url": "http://packages.foo.com", - "only": [ "foo/*" ], "type": "composer" }, "bar": { diff --git a/test/Fixture/Vendor/Composer/ComposerJsonNormalizer/NormalizeNormalizesJson/Json/IsObject/HasEntries/Yes/HasProperty/Repositories/HasEntries/Yes/IsObject/UsesFiltering/Yes/WithExclude/HasWildcard/No/normalized.json b/test/Fixture/Vendor/Composer/ComposerJsonNormalizer/NormalizeNormalizesJson/Json/IsObject/HasEntries/Yes/HasProperty/Repositories/HasEntries/Yes/IsObject/UsesFiltering/Yes/WithExclude/HasWildcard/No/normalized.json new file mode 100644 index 00000000..16eaa056 --- /dev/null +++ b/test/Fixture/Vendor/Composer/ComposerJsonNormalizer/NormalizeNormalizesJson/Json/IsObject/HasEntries/Yes/HasProperty/Repositories/HasEntries/Yes/IsObject/UsesFiltering/Yes/WithExclude/HasWildcard/No/normalized.json @@ -0,0 +1,27 @@ +{ + "name": "ergebnis/json-normalizer", + "description": "Provides generic and vendor-specific normalizers for normalizing JSON documents.", + "license": "MIT", + "type": "library", + "keywords": [ + "json", + "normalizer" + ], + "authors": [ + { + "name": "Andreas Möller", + "email": "am@localheinz.com" + } + ], + "homepage": "https://getcomposer.org/doc/04-schema.md#repositories", + "repositories": { + "foo": { + "type": "composer", + "url": "http://packages.foo.com", + "exclude": [ + "vendor/one", + "vendor/two" + ] + } + } +} diff --git a/test/Fixture/Vendor/Composer/ComposerJsonNormalizer/NormalizeNormalizesJson/Json/IsObject/HasEntries/Yes/HasProperty/Repositories/HasEntries/Yes/IsObject/UsesFiltering/Yes/WithExclude/HasWildcard/No/original.json b/test/Fixture/Vendor/Composer/ComposerJsonNormalizer/NormalizeNormalizesJson/Json/IsObject/HasEntries/Yes/HasProperty/Repositories/HasEntries/Yes/IsObject/UsesFiltering/Yes/WithExclude/HasWildcard/No/original.json new file mode 100644 index 00000000..31692d34 --- /dev/null +++ b/test/Fixture/Vendor/Composer/ComposerJsonNormalizer/NormalizeNormalizesJson/Json/IsObject/HasEntries/Yes/HasProperty/Repositories/HasEntries/Yes/IsObject/UsesFiltering/Yes/WithExclude/HasWildcard/No/original.json @@ -0,0 +1,24 @@ +{ + "name": "ergebnis/json-normalizer", + "description": "Provides generic and vendor-specific normalizers for normalizing JSON documents.", + "license": "MIT", + "type": "library", + "keywords": [ + "json", + "normalizer" + ], + "authors": [ + { + "name": "Andreas Möller", + "email": "am@localheinz.com" + } + ], + "homepage": "https://getcomposer.org/doc/04-schema.md#repositories", + "repositories": { + "foo": { + "url": "http://packages.foo.com", + "exclude": ["vendor/two","vendor/one"], + "type": "composer" + } + } +} diff --git a/test/Fixture/Vendor/Composer/ComposerJsonNormalizer/NormalizeNormalizesJson/Json/IsObject/HasEntries/Yes/HasProperty/Repositories/HasEntries/Yes/IsObject/UsesFiltering/Yes/WithExclude/HasWildcard/Yes/WildcardIsAtEnd/No/normalized.json b/test/Fixture/Vendor/Composer/ComposerJsonNormalizer/NormalizeNormalizesJson/Json/IsObject/HasEntries/Yes/HasProperty/Repositories/HasEntries/Yes/IsObject/UsesFiltering/Yes/WithExclude/HasWildcard/Yes/WildcardIsAtEnd/No/normalized.json new file mode 100644 index 00000000..7f625719 --- /dev/null +++ b/test/Fixture/Vendor/Composer/ComposerJsonNormalizer/NormalizeNormalizesJson/Json/IsObject/HasEntries/Yes/HasProperty/Repositories/HasEntries/Yes/IsObject/UsesFiltering/Yes/WithExclude/HasWildcard/Yes/WildcardIsAtEnd/No/normalized.json @@ -0,0 +1,27 @@ +{ + "name": "ergebnis/json-normalizer", + "description": "Provides generic and vendor-specific normalizers for normalizing JSON documents.", + "license": "MIT", + "type": "library", + "keywords": [ + "json", + "normalizer" + ], + "authors": [ + { + "name": "Andreas Möller", + "email": "am@localheinz.com" + } + ], + "homepage": "https://getcomposer.org/doc/04-schema.md#repositories", + "repositories": { + "foo": { + "type": "composer", + "url": "http://packages.foo.com", + "exclude": [ + "vendor-two/*-test", + "vendor-one/*-test" + ] + } + } +} diff --git a/test/Fixture/Vendor/Composer/ComposerJsonNormalizer/NormalizeNormalizesJson/Json/IsObject/HasEntries/Yes/HasProperty/Repositories/HasEntries/Yes/IsObject/UsesFiltering/Yes/WithExclude/HasWildcard/Yes/WildcardIsAtEnd/No/original.json b/test/Fixture/Vendor/Composer/ComposerJsonNormalizer/NormalizeNormalizesJson/Json/IsObject/HasEntries/Yes/HasProperty/Repositories/HasEntries/Yes/IsObject/UsesFiltering/Yes/WithExclude/HasWildcard/Yes/WildcardIsAtEnd/No/original.json new file mode 100644 index 00000000..3d9318fe --- /dev/null +++ b/test/Fixture/Vendor/Composer/ComposerJsonNormalizer/NormalizeNormalizesJson/Json/IsObject/HasEntries/Yes/HasProperty/Repositories/HasEntries/Yes/IsObject/UsesFiltering/Yes/WithExclude/HasWildcard/Yes/WildcardIsAtEnd/No/original.json @@ -0,0 +1,24 @@ +{ + "name": "ergebnis/json-normalizer", + "description": "Provides generic and vendor-specific normalizers for normalizing JSON documents.", + "license": "MIT", + "type": "library", + "keywords": [ + "json", + "normalizer" + ], + "authors": [ + { + "name": "Andreas Möller", + "email": "am@localheinz.com" + } + ], + "homepage": "https://getcomposer.org/doc/04-schema.md#repositories", + "repositories": { + "foo": { + "url": "http://packages.foo.com", + "exclude": ["vendor-two/*-test","vendor-one/*-test"], + "type": "composer" + } + } +} diff --git a/test/Fixture/Vendor/Composer/ComposerJsonNormalizer/NormalizeNormalizesJson/Json/IsObject/HasEntries/Yes/HasProperty/Repositories/HasEntries/Yes/IsObject/UsesFiltering/Yes/WithExclude/HasWildcard/Yes/WildcardIsAtEnd/Yes/normalized.json b/test/Fixture/Vendor/Composer/ComposerJsonNormalizer/NormalizeNormalizesJson/Json/IsObject/HasEntries/Yes/HasProperty/Repositories/HasEntries/Yes/IsObject/UsesFiltering/Yes/WithExclude/HasWildcard/Yes/WildcardIsAtEnd/Yes/normalized.json new file mode 100644 index 00000000..ce74ab59 --- /dev/null +++ b/test/Fixture/Vendor/Composer/ComposerJsonNormalizer/NormalizeNormalizesJson/Json/IsObject/HasEntries/Yes/HasProperty/Repositories/HasEntries/Yes/IsObject/UsesFiltering/Yes/WithExclude/HasWildcard/Yes/WildcardIsAtEnd/Yes/normalized.json @@ -0,0 +1,27 @@ +{ + "name": "ergebnis/json-normalizer", + "description": "Provides generic and vendor-specific normalizers for normalizing JSON documents.", + "license": "MIT", + "type": "library", + "keywords": [ + "json", + "normalizer" + ], + "authors": [ + { + "name": "Andreas Möller", + "email": "am@localheinz.com" + } + ], + "homepage": "https://getcomposer.org/doc/04-schema.md#repositories", + "repositories": { + "foo": { + "type": "composer", + "url": "http://packages.foo.com", + "exclude": [ + "vendor-one/*", + "vendor-two/*" + ] + } + } +} diff --git a/test/Fixture/Vendor/Composer/ComposerJsonNormalizer/NormalizeNormalizesJson/Json/IsObject/HasEntries/Yes/HasProperty/Repositories/HasEntries/Yes/IsObject/UsesFiltering/Yes/WithExclude/HasWildcard/Yes/WildcardIsAtEnd/Yes/original.json b/test/Fixture/Vendor/Composer/ComposerJsonNormalizer/NormalizeNormalizesJson/Json/IsObject/HasEntries/Yes/HasProperty/Repositories/HasEntries/Yes/IsObject/UsesFiltering/Yes/WithExclude/HasWildcard/Yes/WildcardIsAtEnd/Yes/original.json new file mode 100644 index 00000000..6e1b55ff --- /dev/null +++ b/test/Fixture/Vendor/Composer/ComposerJsonNormalizer/NormalizeNormalizesJson/Json/IsObject/HasEntries/Yes/HasProperty/Repositories/HasEntries/Yes/IsObject/UsesFiltering/Yes/WithExclude/HasWildcard/Yes/WildcardIsAtEnd/Yes/original.json @@ -0,0 +1,24 @@ +{ + "name": "ergebnis/json-normalizer", + "description": "Provides generic and vendor-specific normalizers for normalizing JSON documents.", + "license": "MIT", + "type": "library", + "keywords": [ + "json", + "normalizer" + ], + "authors": [ + { + "name": "Andreas Möller", + "email": "am@localheinz.com" + } + ], + "homepage": "https://getcomposer.org/doc/04-schema.md#repositories", + "repositories": { + "foo": { + "url": "http://packages.foo.com", + "exclude": ["vendor-two/*","vendor-one/*"], + "type": "composer" + } + } +} diff --git a/test/Fixture/Vendor/Composer/ComposerJsonNormalizer/NormalizeNormalizesJson/Json/IsObject/HasEntries/Yes/HasProperty/Repositories/HasEntries/Yes/IsObject/UsesFiltering/Yes/WithOnly/HasWildcard/No/normalized.json b/test/Fixture/Vendor/Composer/ComposerJsonNormalizer/NormalizeNormalizesJson/Json/IsObject/HasEntries/Yes/HasProperty/Repositories/HasEntries/Yes/IsObject/UsesFiltering/Yes/WithOnly/HasWildcard/No/normalized.json new file mode 100644 index 00000000..91c3e0e5 --- /dev/null +++ b/test/Fixture/Vendor/Composer/ComposerJsonNormalizer/NormalizeNormalizesJson/Json/IsObject/HasEntries/Yes/HasProperty/Repositories/HasEntries/Yes/IsObject/UsesFiltering/Yes/WithOnly/HasWildcard/No/normalized.json @@ -0,0 +1,27 @@ +{ + "name": "ergebnis/json-normalizer", + "description": "Provides generic and vendor-specific normalizers for normalizing JSON documents.", + "license": "MIT", + "type": "library", + "keywords": [ + "json", + "normalizer" + ], + "authors": [ + { + "name": "Andreas Möller", + "email": "am@localheinz.com" + } + ], + "homepage": "https://getcomposer.org/doc/04-schema.md#repositories", + "repositories": { + "foo": { + "type": "composer", + "url": "http://packages.foo.com", + "only": [ + "vendor/one", + "vendor/two" + ] + } + } +} diff --git a/test/Fixture/Vendor/Composer/ComposerJsonNormalizer/NormalizeNormalizesJson/Json/IsObject/HasEntries/Yes/HasProperty/Repositories/HasEntries/Yes/IsObject/UsesFiltering/Yes/WithOnly/HasWildcard/No/original.json b/test/Fixture/Vendor/Composer/ComposerJsonNormalizer/NormalizeNormalizesJson/Json/IsObject/HasEntries/Yes/HasProperty/Repositories/HasEntries/Yes/IsObject/UsesFiltering/Yes/WithOnly/HasWildcard/No/original.json new file mode 100644 index 00000000..02e1811d --- /dev/null +++ b/test/Fixture/Vendor/Composer/ComposerJsonNormalizer/NormalizeNormalizesJson/Json/IsObject/HasEntries/Yes/HasProperty/Repositories/HasEntries/Yes/IsObject/UsesFiltering/Yes/WithOnly/HasWildcard/No/original.json @@ -0,0 +1,24 @@ +{ + "name": "ergebnis/json-normalizer", + "description": "Provides generic and vendor-specific normalizers for normalizing JSON documents.", + "license": "MIT", + "type": "library", + "keywords": [ + "json", + "normalizer" + ], + "authors": [ + { + "name": "Andreas Möller", + "email": "am@localheinz.com" + } + ], + "homepage": "https://getcomposer.org/doc/04-schema.md#repositories", + "repositories": { + "foo": { + "url": "http://packages.foo.com", + "only": ["vendor/two","vendor/one"], + "type": "composer" + } + } +} diff --git a/test/Fixture/Vendor/Composer/ComposerJsonNormalizer/NormalizeNormalizesJson/Json/IsObject/HasEntries/Yes/HasProperty/Repositories/HasEntries/Yes/IsObject/UsesFiltering/Yes/WithOnly/HasWildcard/Yes/WildcardIsAtEnd/No/normalized.json b/test/Fixture/Vendor/Composer/ComposerJsonNormalizer/NormalizeNormalizesJson/Json/IsObject/HasEntries/Yes/HasProperty/Repositories/HasEntries/Yes/IsObject/UsesFiltering/Yes/WithOnly/HasWildcard/Yes/WildcardIsAtEnd/No/normalized.json new file mode 100644 index 00000000..ddb15a2f --- /dev/null +++ b/test/Fixture/Vendor/Composer/ComposerJsonNormalizer/NormalizeNormalizesJson/Json/IsObject/HasEntries/Yes/HasProperty/Repositories/HasEntries/Yes/IsObject/UsesFiltering/Yes/WithOnly/HasWildcard/Yes/WildcardIsAtEnd/No/normalized.json @@ -0,0 +1,27 @@ +{ + "name": "ergebnis/json-normalizer", + "description": "Provides generic and vendor-specific normalizers for normalizing JSON documents.", + "license": "MIT", + "type": "library", + "keywords": [ + "json", + "normalizer" + ], + "authors": [ + { + "name": "Andreas Möller", + "email": "am@localheinz.com" + } + ], + "homepage": "https://getcomposer.org/doc/04-schema.md#repositories", + "repositories": { + "foo": { + "type": "composer", + "url": "http://packages.foo.com", + "only": [ + "vendor-two/*-test", + "vendor-one/*-test" + ] + } + } +} diff --git a/test/Fixture/Vendor/Composer/ComposerJsonNormalizer/NormalizeNormalizesJson/Json/IsObject/HasEntries/Yes/HasProperty/Repositories/HasEntries/Yes/IsObject/UsesFiltering/Yes/WithOnly/HasWildcard/Yes/WildcardIsAtEnd/No/original.json b/test/Fixture/Vendor/Composer/ComposerJsonNormalizer/NormalizeNormalizesJson/Json/IsObject/HasEntries/Yes/HasProperty/Repositories/HasEntries/Yes/IsObject/UsesFiltering/Yes/WithOnly/HasWildcard/Yes/WildcardIsAtEnd/No/original.json new file mode 100644 index 00000000..8b3136ff --- /dev/null +++ b/test/Fixture/Vendor/Composer/ComposerJsonNormalizer/NormalizeNormalizesJson/Json/IsObject/HasEntries/Yes/HasProperty/Repositories/HasEntries/Yes/IsObject/UsesFiltering/Yes/WithOnly/HasWildcard/Yes/WildcardIsAtEnd/No/original.json @@ -0,0 +1,24 @@ +{ + "name": "ergebnis/json-normalizer", + "description": "Provides generic and vendor-specific normalizers for normalizing JSON documents.", + "license": "MIT", + "type": "library", + "keywords": [ + "json", + "normalizer" + ], + "authors": [ + { + "name": "Andreas Möller", + "email": "am@localheinz.com" + } + ], + "homepage": "https://getcomposer.org/doc/04-schema.md#repositories", + "repositories": { + "foo": { + "url": "http://packages.foo.com", + "only": ["vendor-two/*-test","vendor-one/*-test"], + "type": "composer" + } + } +} diff --git a/test/Fixture/Vendor/Composer/ComposerJsonNormalizer/NormalizeNormalizesJson/Json/IsObject/HasEntries/Yes/HasProperty/Repositories/HasEntries/Yes/IsObject/UsesFiltering/Yes/WithOnly/HasWildcard/Yes/WildcardIsAtEnd/Yes/normalized.json b/test/Fixture/Vendor/Composer/ComposerJsonNormalizer/NormalizeNormalizesJson/Json/IsObject/HasEntries/Yes/HasProperty/Repositories/HasEntries/Yes/IsObject/UsesFiltering/Yes/WithOnly/HasWildcard/Yes/WildcardIsAtEnd/Yes/normalized.json new file mode 100644 index 00000000..ac9e89ed --- /dev/null +++ b/test/Fixture/Vendor/Composer/ComposerJsonNormalizer/NormalizeNormalizesJson/Json/IsObject/HasEntries/Yes/HasProperty/Repositories/HasEntries/Yes/IsObject/UsesFiltering/Yes/WithOnly/HasWildcard/Yes/WildcardIsAtEnd/Yes/normalized.json @@ -0,0 +1,27 @@ +{ + "name": "ergebnis/json-normalizer", + "description": "Provides generic and vendor-specific normalizers for normalizing JSON documents.", + "license": "MIT", + "type": "library", + "keywords": [ + "json", + "normalizer" + ], + "authors": [ + { + "name": "Andreas Möller", + "email": "am@localheinz.com" + } + ], + "homepage": "https://getcomposer.org/doc/04-schema.md#repositories", + "repositories": { + "foo": { + "type": "composer", + "url": "http://packages.foo.com", + "only": [ + "vendor-one/*", + "vendor-two/*" + ] + } + } +} diff --git a/test/Fixture/Vendor/Composer/ComposerJsonNormalizer/NormalizeNormalizesJson/Json/IsObject/HasEntries/Yes/HasProperty/Repositories/HasEntries/Yes/IsObject/UsesFiltering/Yes/WithOnly/HasWildcard/Yes/WildcardIsAtEnd/Yes/original.json b/test/Fixture/Vendor/Composer/ComposerJsonNormalizer/NormalizeNormalizesJson/Json/IsObject/HasEntries/Yes/HasProperty/Repositories/HasEntries/Yes/IsObject/UsesFiltering/Yes/WithOnly/HasWildcard/Yes/WildcardIsAtEnd/Yes/original.json new file mode 100644 index 00000000..5724a962 --- /dev/null +++ b/test/Fixture/Vendor/Composer/ComposerJsonNormalizer/NormalizeNormalizesJson/Json/IsObject/HasEntries/Yes/HasProperty/Repositories/HasEntries/Yes/IsObject/UsesFiltering/Yes/WithOnly/HasWildcard/Yes/WildcardIsAtEnd/Yes/original.json @@ -0,0 +1,24 @@ +{ + "name": "ergebnis/json-normalizer", + "description": "Provides generic and vendor-specific normalizers for normalizing JSON documents.", + "license": "MIT", + "type": "library", + "keywords": [ + "json", + "normalizer" + ], + "authors": [ + { + "name": "Andreas Möller", + "email": "am@localheinz.com" + } + ], + "homepage": "https://getcomposer.org/doc/04-schema.md#repositories", + "repositories": { + "foo": { + "url": "http://packages.foo.com", + "only": ["vendor-two/*","vendor-one/*"], + "type": "composer" + } + } +} diff --git a/test/Unit/Vendor/Composer/ComposerJsonNormalizerTest.php b/test/Unit/Vendor/Composer/ComposerJsonNormalizerTest.php index d87b7041..7c8ee3cd 100644 --- a/test/Unit/Vendor/Composer/ComposerJsonNormalizerTest.php +++ b/test/Unit/Vendor/Composer/ComposerJsonNormalizerTest.php @@ -28,7 +28,9 @@ #[Framework\Attributes\CoversClass(Vendor\Composer\ComposerJsonNormalizer::class)] #[Framework\Attributes\CoversClass(Vendor\Composer\ConfigHashNormalizer::class)] #[Framework\Attributes\CoversClass(Vendor\Composer\PackageHashNormalizer::class)] +#[Framework\Attributes\CoversClass(Vendor\Composer\RepositoriesHashNormalizer::class)] #[Framework\Attributes\CoversClass(Vendor\Composer\VersionConstraintNormalizer::class)] +#[Framework\Attributes\CoversClass(Vendor\Composer\WildcardSorter::class)] #[Framework\Attributes\UsesClass(ChainNormalizer::class)] #[Framework\Attributes\UsesClass(Exception\OriginalInvalidAccordingToSchema::class)] #[Framework\Attributes\UsesClass(Format\JsonEncodeOptions::class)]