{ "type": "project", "license": "AGPL-3.0-or-later", "minimum-stability": "stable", "prefer-stable": true, "require": { "php": ">=8.4", "ext-ctype": "*", "ext-iconv": "*", "ext-pcntl": "*", "doctrine/doctrine-bundle": "^3.3.1", "doctrine/doctrine-migrations-bundle": "^4.0", "doctrine/orm": "^3.6", "dragonmantank/cron-expression": "^3.6", "endroid/qr-code": "^6.1", "knplabs/knp-paginator-bundle": "*", "league/oauth2-client": "^2.9", "league/oauth2-google": "^5.0", "lexik/jwt-authentication-bundle": "^3.2", "minishlink/web-push": "^11.0", "phpdocumentor/reflection-docblock": "^6.0", "phpstan/phpdoc-parser": "^2.3.3", "scheb/2fa-backup-code": "^8.6", "scheb/2fa-bundle": "^8.6", "scheb/2fa-totp": "^8.6", "scheb/2fa-trusted-device": "^8.6", "symfony/asset": "8.1.*", "symfony/asset-mapper": "8.1.*", "symfony/console": "8.1.*", "symfony/doctrine-messenger": "8.1.*", "symfony/dotenv": "8.1.*", "symfony/expression-language": "8.1.*", "symfony/flex": "^2", "symfony/form": "8.1.*", "symfony/framework-bundle": "8.1.*", "symfony/html-sanitizer": "8.1.*", "symfony/http-client": "8.1.*", "symfony/intl": "8.1.*", "symfony/mailer": "8.1.*", "symfony/mercure-bundle": "^0.4.2", "symfony/mime": "8.1.*", "symfony/monolog-bundle": "^3.0|^4.0", "symfony/notifier": "8.1.*", "symfony/process": "8.1.*", "symfony/property-access": "8.1.*", "symfony/property-info": "8.1.*", "symfony/rate-limiter": "8.1.*", "symfony/runtime": "8.1.*", "symfony/scheduler": "8.1.*", "symfony/security-bundle": "8.1.*", "symfony/serializer": "8.1.*", "symfony/stimulus-bundle": "^3.3", "symfony/string": "8.1.*", "symfony/translation": "8.1.*", "symfony/twig-bundle": "8.1.*", "symfony/uid": "8.1.*", "symfony/ux-autocomplete": "^3.3", "symfony/ux-turbo": "^3.3", "symfony/validator": "8.1.*", "symfony/web-link": "8.1.*", "symfony/yaml": "8.1.*", "symfonycasts/tailwind-bundle": "^0.14.0", "thenetworg/oauth2-azure": "*", "tijsverkoyen/css-to-inline-styles": "^2.4", "twig/extra-bundle": "^2.12|^3.0", "twig/twig": "^2.12|^3.28", "webklex/php-imap": "^6.2" }, "config": { "allow-plugins": { "php-http/discovery": true, "symfony/flex": true, "symfony/runtime": true }, "bump-after-update": true, "sort-packages": true }, "autoload": { "psr-4": { "App\\": "src/" }, "files": [ "config/bootstrap_generated_secrets.php" ] }, "autoload-dev": { "psr-4": { "App\\Tests\\": "tests/" } }, "replace": { "symfony/polyfill-ctype": "*", "symfony/polyfill-iconv": "*", "symfony/polyfill-php72": "*", "symfony/polyfill-php73": "*", "symfony/polyfill-php74": "*", "symfony/polyfill-php80": "*", "symfony/polyfill-php81": "*", "symfony/polyfill-php82": "*", "symfony/polyfill-php83": "*", "symfony/polyfill-php84": "*" }, "scripts": { "auto-scripts": { "cache:clear": "symfony-cmd", "assets:install %PUBLIC_DIR%": "symfony-cmd", "importmap:install": "symfony-cmd" }, "post-install-cmd": [ "@auto-scripts" ], "post-update-cmd": [ "@auto-scripts" ], "test": [ "vendor/bin/phpunit" ], "stan": [ "vendor/bin/phpstan analyse --configuration=phpstan.dist.neon" ] }, "scripts-descriptions": { "test": "Run the PHPUnit suite (unit tests). Browser end-to-end tests live in tests/e2e and run via `npm run test:e2e`.", "stan": "Run PHPStan at level 5 against src/ and tests/, ignoring what phpstan-baseline.neon already records." }, "conflict": { "symfony/symfony": "*" }, "extra": { "symfony": { "allow-contrib": false, "require": "8.1.*" } }, "require-dev": { "phpstan/phpstan": "^2.2", "phpstan/phpstan-doctrine": "^2.0", "phpstan/phpstan-symfony": "^2.0", "phpunit/phpunit": "^13.2.5", "symfony/browser-kit": "8.1.*", "symfony/css-selector": "8.1.*", "symfony/debug-bundle": "8.1.*", "symfony/maker-bundle": "^1.0", "symfony/stopwatch": "8.1.*", "symfony/web-profiler-bundle": "8.1.*" } }