{
    "name": "cuyz/valinor",
    "type": "library",
    "description": "Library that helps to map any input into a strongly-typed value object structure.",
    "keywords": [
        "object", "tree", "mapper", "mapping", "hydrator", "array", "conversion", "json", "yaml"
    ],
    "homepage": "https://github.com/CuyZ/Valinor",
    "license": "MIT",
    "authors": [
        {
            "name": "Romain Canon",
            "email": "romain.hydrocanon@gmail.com",
            "homepage": "https://github.com/romm"
        }
    ],
    "require": {
        "php": "~8.1.0 || ~8.2.0 || ~8.3.0 || ~8.4.0",
        "composer-runtime-api": "^2.0"
    },
    "require-dev": {
        "phpunit/phpunit": "^10.5",
        "infection/infection": "^0.29",
        "phpstan/phpstan": "^2.0",
        "phpstan/phpstan-strict-rules": "^2.0",
        "phpstan/phpstan-phpunit": "^2.0",
        "friendsofphp/php-cs-fixer": "^3.4",
        "marcocesarato/php-conventional-changelog": "^1.12",
        "vimeo/psalm": "^6.0",
        "mikey179/vfsstream": "^1.6.10",
        "rector/rector": "^2.0",
        "phpbench/phpbench": "^1.3"
    },
    "autoload": {
        "psr-4": {
            "CuyZ\\Valinor\\": "src"
        }
    },
    "autoload-dev": {
        "psr-4": {
            "CuyZ\\Valinor\\Tests\\": "tests",
            "CuyZ\\Valinor\\QA\\": "qa"
        }
    },
    "scripts": {
        "check": [
            "@putenv XDEBUG_MODE=off",
            "phpunit",
            "phpstan",
            "psalm --config=tests/StaticAnalysis/psalm-without-plugin.xml",
            "psalm --config=tests/StaticAnalysis/psalm-with-plugin.xml",
            "phpstan --configuration=tests/StaticAnalysis/phpstan-without-extension.neon.dist",
            "phpstan --configuration=tests/StaticAnalysis/phpstan-with-extension.neon.dist",
            "php-cs-fixer fix --dry-run",
            "rector --dry-run",
            "@check-todo"
        ],
        "check-todo": [
            "! git --no-pager grep --extended-regexp --ignore-case 'todo|fixme' -- ':!composer.json' ':!*/quality-assurance.yml'"
        ],
        "fix": [
            "@putenv XDEBUG_MODE=off",
            "php-cs-fixer fix",
            "rector"
        ],
        "test": [
            "@putenv XDEBUG_MODE=off",
            "phpunit"
        ],
        "mutation": [
            "infection --threads=max --git-diff-lines"
        ],
        "doc": [
            "Composer\\Config::disableProcessTimeout",
            "docker build -t valinor-doc ./docs",
            "docker run --name valinor-doc --rm -it -p 8000:8000 -v ${PWD}/docs:/docs valinor-doc"
        ],
        "benchmark-baseline": [
            "phpbench run --tag=original --retry-threshold=5 --iterations=10"
        ],
        "benchmark-compare": [
            "phpbench run --report=aggregate --ref=original --retry-threshold=5 --iterations=10 --assert='mode(variant.time.avg) <= mode(baseline.time.avg) +/- 10%'"
        ],
        "benchmark": [
            "phpbench run --report=aggregate --iterations=10"
        ]
    },
    "config": {
        "allow-plugins": {
            "infection/extension-installer": false
        }
    },
    "conflict": {
        "vimeo/psalm": "<5.0 || >=7.0",
        "phpstan/phpstan": "<1.0 || >= 3.0"
    }
}
