{
    "name": "realtycandy/aeroidx-wp",
    "description": "SEO-optimized real estate listings for WordPress. Render IDX listings at clean URLs with full server-side SEO.",
    "type": "wordpress-plugin",
    "license": "GPL-2.0-or-later",
    "homepage": "https://aeroidx.com",
    "authors": [
        {
            "name": "RealtyCandy",
            "homepage": "https://realtycandy.com"
        }
    ],
    "require": {
        "php": ">=8.1"
    },
    "require-dev": {
        "ext-zip": "*",
        "dealerdirect/phpcodesniffer-composer-installer": "^1.0",
        "phpstan/phpstan": "^2.1",
        "phpunit/phpunit": "^9.6",
        "squizlabs/php_codesniffer": "^3.13.6",
        "szepeviktor/phpstan-wordpress": "^2.0",
        "wp-coding-standards/wpcs": "^3.4.1",
        "wp-phpunit/wp-phpunit": "^6.4",
        "yoast/phpunit-polyfills": "^2.0"
    },
    "autoload": {
        "psr-4": {
            "AeroIDX\\": "src/"
        }
    },
    "autoload-dev": {
        "psr-4": {
            "AeroIDX\\Tests\\": "tests/"
        }
    },
    "config": {
        "allow-plugins": {
            "dealerdirect/phpcodesniffer-composer-installer": true
        },
        "sort-packages": true
    },
    "scripts": {
        "lint": "phpcs",
        "lint:fix": "phpcbf",
        "analyse": "phpstan analyse --memory-limit=1G",
        "analyse:boundary": "phpstan analyse --memory-limit=1G --level 9 src/Api src/Cache src/Routing",
        "test": "phpunit",
        "dist": [
            "@composer install --no-dev --optimize-autoloader --quiet",
            "@php bin/make-zip.php",
            "@composer install --quiet"
        ]
    },
    "scripts-descriptions": {
        "analyse": "Run PHPStan at level 8 — the CI gate. Green means no NEW findings beyond phpstan-baseline.neon.",
        "analyse:boundary": "Run PHPStan at level 9 over the API/cache/routing boundary only. Not a gate; use it when touching code that handles untyped data from the AeroIDX API.",
        "dist": "Build the distributable plugin ZIP in dist/ (vendor without dev deps, .distignore applied)."
    }
}
