{
    "name": "codeigniter4/codeigniter4",
    "description": "The CodeIgniter framework v4",
    "license": "MIT",
    "type": "project",
    "homepage": "https://codeigniter.com",
    "support": {
        "forum": "https://forum.codeigniter.com/",
        "source": "https://github.com/codeigniter4/CodeIgniter4",
        "slack": "https://codeigniterchat.slack.com"
    },
    "require": {
        "php": "^7.4 || ^8.0",
        "ext-intl": "*",
        "ext-json": "*",
        "ext-mbstring": "*",
        "laminas/laminas-escaper": "^2.9",
        "psr/log": "^1.1"
    },
    "require-dev": {
        "codeigniter/coding-standard": "^1.7",
        "codeigniter/phpstan-codeigniter": "^1.4",
        "ergebnis/composer-normalize": "^2.28",
        "fakerphp/faker": "^1.9",
        "friendsofphp/php-cs-fixer": "^3.47.1",
        "kint-php/kint": "^5.0.4",
        "mikey179/vfsstream": "^1.6",
        "nexusphp/cs-config": "^3.6",
        "nexusphp/tachycardia": "^1.0",
        "php-coveralls/php-coveralls": "^2.5",
        "phpstan/extension-installer": "^1.3",
        "phpstan/phpstan": "^1.10.2",
        "phpstan/phpstan-strict-rules": "^1.5",
        "phpunit/phpcov": "^8.2",
        "phpunit/phpunit": "^9.1",
        "predis/predis": "^1.1 || ^2.0",
        "rector/rector": "1.0.4",
        "vimeo/psalm": "^5.0"
    },
    "replace": {
        "codeigniter4/framework": "self.version"
    },
    "suggest": {
        "ext-curl": "If you use CURLRequest class",
        "ext-dom": "If you use TestResponse",
        "ext-exif": "If you run Image class tests",
        "ext-fileinfo": "Improves mime type detection for files",
        "ext-gd": "If you use Image class GDHandler",
        "ext-imagick": "If you use Image class ImageMagickHandler",
        "ext-libxml": "If you use TestResponse",
        "ext-memcache": "If you use Cache class MemcachedHandler with Memcache",
        "ext-memcached": "If you use Cache class MemcachedHandler with Memcached",
        "ext-mysqli": "If you use MySQL",
        "ext-oci8": "If you use Oracle Database",
        "ext-pgsql": "If you use PostgreSQL",
        "ext-readline": "Improves CLI::input() usability",
        "ext-redis": "If you use Cache class RedisHandler",
        "ext-simplexml": "If you format XML",
        "ext-sodium": "If you use Encryption SodiumHandler",
        "ext-sqlite3": "If you use SQLite3",
        "ext-sqlsrv": "If you use SQL Server",
        "ext-xdebug": "If you use CIUnitTestCase::assertHeaderEmitted()"
    },
    "autoload": {
        "psr-4": {
            "CodeIgniter\\": "system/"
        },
        "exclude-from-classmap": [
            "**/Database/Migrations/**"
        ]
    },
    "autoload-dev": {
        "psr-4": {
            "CodeIgniter\\": "tests/system/",
            "Utils\\": "utils/"
        }
    },
    "config": {
        "allow-plugins": {
            "ergebnis/composer-normalize": true,
            "phpstan/extension-installer": true
        },
        "optimize-autoloader": true,
        "preferred-install": "dist",
        "sort-packages": true
    },
    "extra": {
        "branch-alias": {
            "dev-develop": "4.x-dev"
        }
    },
    "scripts": {
        "post-update-cmd": [
            "CodeIgniter\\ComposerScripts::postUpdate"
        ],
        "analyze": [
            "Composer\\Config::disableProcessTimeout",
            "bash -c \"XDEBUG_MODE=off phpstan analyse\"",
            "rector process --dry-run"
        ],
        "cs": [
            "Composer\\Config::disableProcessTimeout",
            "php-cs-fixer fix --ansi --verbose --dry-run --diff --config=.php-cs-fixer.user-guide.php",
            "php-cs-fixer fix --ansi --verbose --dry-run --diff --config=.php-cs-fixer.no-header.php",
            "php-cs-fixer fix --ansi --verbose --dry-run --diff"
        ],
        "cs-fix": [
            "Composer\\Config::disableProcessTimeout",
            "php-cs-fixer fix --ansi --verbose --diff --config=.php-cs-fixer.user-guide.php",
            "php-cs-fixer fix --ansi --verbose --diff --config=.php-cs-fixer.no-header.php",
            "php-cs-fixer fix --ansi --verbose --diff"
        ],
        "sa": "@analyze",
        "style": "@cs-fix",
        "test": "phpunit"
    },
    "scripts-descriptions": {
        "analyze": "Run static analysis",
        "cs": "Check the coding style",
        "cs-fix": "Fix the coding style",
        "test": "Run unit tests"
    }
}
