From e679d02b411c0642c2638ec80328fe7d9ac97afb Mon Sep 17 00:00:00 2001 From: Jan-Marlon Leibl Date: Fri, 3 Nov 2023 21:17:49 +0100 Subject: [PATCH] Dockerize Project --- .env | 46 + .env.test | 6 + .gitattributes | 1 + .gitignore | 21 + .idea/.gitignore | 8 + .idea/codeception.xml | 12 + .idea/dataSources.xml | 12 + .idea/inspectionProfiles/Project_Default.xml | 22 + .idea/jsLibraryMappings.xml | 6 + .idea/modules.xml | 8 + .idea/php-test-framework.xml | 14 + .idea/php.xml | 165 + .idea/phpspec.xml | 34 + .idea/phpunit.xml | 10 + .idea/symfony2.xml | 6 + .idea/vcs.xml | 7 + .idea/ventry-hosting-service.iml | 148 + README.md | 58 + bin/console | 17 + bin/phpunit | 19 + bin/setup.sh | 23 + composer.json | 107 + composer.lock | 10282 ++++++++++++++++ config/bundles.php | 15 + config/packages/cache.yaml | 19 + config/packages/debug.yaml | 5 + config/packages/doctrine.yaml | 48 + config/packages/doctrine_migrations.yaml | 6 + config/packages/framework.yaml | 25 + config/packages/mailer.yaml | 3 + config/packages/messenger.yaml | 24 + config/packages/monolog.yaml | 61 + config/packages/notifier.yaml | 12 + config/packages/routing.yaml | 12 + config/packages/security.yaml | 50 + config/packages/snc_redis.yaml | 12 + config/packages/translation.yaml | 15 + config/packages/twig.yaml | 6 + config/packages/validator.yaml | 13 + config/packages/web_profiler.yaml | 17 + config/preload.php | 5 + config/routes.yaml | 9 + config/routes/framework.yaml | 4 + config/routes/web_profiler.yaml | 8 + config/services.yaml | 27 + docker/.env | 1 + docker/.gitignore | 1 + docker/apache/Dockerfile | 20 + docker/apache/sites/symfony-skeleton.conf | 29 + docker/apache/xdebug.ini | 4 + docker/docker-compose.yml | 28 + docker/opcache.ini | 8 + docker/php.ini | 1996 +++ docker/xdebug.ini | 4 + migrations/.gitignore | 0 migrations/Version20231016141648.php | 33 + migrations/Version20231020053615.php | 31 + migrations/Version20231020055144.php | 33 + migrations/Version20231020082438.php | 31 + migrations/Version20231023062854.php | 31 + migrations/Version20231103112501.php | 31 + phpunit.xml.dist | 38 + public/.htaccess | 5 + public/assets/css/style.css | 1198 ++ public/assets/fonts/nucleo-icons.eot | Bin 0 -> 18516 bytes public/assets/fonts/nucleo-icons.svg | 312 + public/assets/fonts/nucleo-icons.ttf | Bin 0 -> 18292 bytes public/assets/fonts/nucleo-icons.woff | Bin 0 -> 10220 bytes public/assets/fonts/nucleo-icons.woff2 | Bin 0 -> 8580 bytes public/assets/fonts/nucleo.eot | Bin 0 -> 26524 bytes public/assets/fonts/nucleo.ttf | Bin 0 -> 26364 bytes public/assets/fonts/nucleo.woff | Bin 0 -> 15168 bytes public/assets/fonts/nucleo.woff2 | Bin 0 -> 12616 bytes public/assets/img/BlankMap-World.svg.png | Bin 0 -> 89726 bytes public/assets/img/BlankMap-World1.svg.png | Bin 0 -> 53908 bytes public/assets/img/apple-icon.png | Bin 0 -> 809 bytes public/assets/img/cta-illustration.svg | 1 + public/assets/img/curved-images/curved-10.jpg | Bin 0 -> 134275 bytes public/assets/img/curved-images/curved-11.jpg | Bin 0 -> 177181 bytes public/assets/img/curved-images/curved-6.jpg | Bin 0 -> 185597 bytes public/assets/img/curved-images/curved-8.jpg | Bin 0 -> 108926 bytes public/assets/img/curved-images/curved0.jpg | Bin 0 -> 362523 bytes public/assets/img/curved-images/curved1.jpg | Bin 0 -> 136181 bytes public/assets/img/curved-images/curved10.jpg | Bin 0 -> 5872495 bytes .../img/curved-images/curved11-small.jpg | Bin 0 -> 578900 bytes public/assets/img/curved-images/curved11.jpg | Bin 0 -> 1072844 bytes public/assets/img/curved-images/curved12.jpg | Bin 0 -> 243610 bytes public/assets/img/curved-images/curved13.jpg | Bin 0 -> 541159 bytes public/assets/img/curved-images/curved14.jpg | Bin 0 -> 239289 bytes public/assets/img/curved-images/curved19.jpg | Bin 0 -> 1694566 bytes public/assets/img/curved-images/curved2.jpg | Bin 0 -> 387861 bytes public/assets/img/curved-images/curved21.jpg | Bin 0 -> 393478 bytes public/assets/img/curved-images/curved3.jpg | Bin 0 -> 526261 bytes public/assets/img/curved-images/curved4.jpg | Bin 0 -> 409160 bytes .../img/curved-images/curved5-small.jpg | Bin 0 -> 5043970 bytes public/assets/img/curved-images/curved5.jpg | Bin 0 -> 565251 bytes .../img/curved-images/curved6-small.jpg | Bin 0 -> 1077530 bytes public/assets/img/curved-images/curved6.jpg | Bin 0 -> 412607 bytes public/assets/img/curved-images/curved7.jpg | Bin 0 -> 441539 bytes public/assets/img/curved-images/curved8.jpg | Bin 0 -> 262249 bytes public/assets/img/curved-images/curved9.jpg | Bin 0 -> 444456 bytes .../img/curved-images/white-curved.jpeg | Bin 0 -> 55537 bytes public/assets/img/down-arrow-dark.svg | 11 + public/assets/img/down-arrow-white.svg | 1 + public/assets/img/down-arrow.svg | 11 + public/assets/img/favicon.png | Bin 0 -> 809 bytes public/assets/img/feature-icon-01.svg | 1 + public/assets/img/feature-icon-02.svg | 1 + public/assets/img/feature-icon-03.svg | 1 + public/assets/img/feature-icon-04.svg | 1 + public/assets/img/feature-icon-05.svg | 1 + public/assets/img/feature-icon-06.svg | 1 + public/assets/img/hero-back-illustration.svg | 1 + public/assets/img/hero-top-illustration.svg | 1 + public/assets/img/icons/flags/AU.png | Bin 0 -> 1253 bytes public/assets/img/icons/flags/BR.png | Bin 0 -> 1172 bytes public/assets/img/icons/flags/DE.png | Bin 0 -> 927 bytes public/assets/img/icons/flags/GB.png | Bin 0 -> 1376 bytes public/assets/img/icons/flags/US.png | Bin 0 -> 1157 bytes .../img/illustrations/icon-documentation.svg | 127 + .../assets/img/illustrations/rocket-white.png | Bin 0 -> 65096 bytes public/assets/img/large-banner-textonly.png | Bin 0 -> 28205 bytes public/assets/img/large-banner.png | Bin 0 -> 111415 bytes public/assets/img/logo-white.png | Bin 0 -> 99921 bytes public/assets/img/logo.svg | 1 + public/assets/img/logos/mastercard.png | Bin 0 -> 41970 bytes public/assets/img/logos/visa.png | Bin 0 -> 46206 bytes public/assets/img/pricing-illustration.svg | 1 + public/assets/img/shapes/pattern-lines.svg | 91 + public/assets/img/shapes/shape-1.svg | 1 + public/assets/img/shapes/shape-2.svg | 1 + public/assets/img/shapes/shape-3.svg | 1 + public/assets/img/shapes/wave-down.svg | 11 + public/assets/img/shapes/wave-up.svg | 11 + public/assets/img/shapes/waves-gray.svg | 41 + public/assets/img/shapes/waves-white.svg | 48 + .../assets/img/small-logos/icon-sun-cloud.png | Bin 0 -> 96900 bytes .../assets/img/small-logos/logo-atlassian.svg | 16 + .../assets/img/small-logos/logo-invision.svg | 10 + public/assets/img/small-logos/logo-jira.svg | 21 + public/assets/img/small-logos/logo-slack.svg | 12 + .../assets/img/small-logos/logo-spotify.svg | 9 + public/assets/img/small-logos/logo-webdev.svg | 11 + public/assets/img/small-logos/logo-xd.svg | 11 + public/assets/img/theme/angular.jpg | Bin 0 -> 22527 bytes public/assets/img/theme/bootstrap.jpg | Bin 0 -> 18083 bytes public/assets/img/theme/dribbble.png | Bin 0 -> 32621 bytes public/assets/img/theme/dropbox.png | Bin 0 -> 3729 bytes public/assets/img/theme/mastercard.png | Bin 0 -> 2074 bytes public/assets/img/theme/paypal.png | Bin 0 -> 1448 bytes public/assets/img/theme/react.jpg | Bin 0 -> 25566 bytes public/assets/img/theme/sketch.jpg | Bin 0 -> 22085 bytes public/assets/img/theme/slack.png | Bin 0 -> 3523 bytes public/assets/img/theme/spotify.jpeg | Bin 0 -> 18987 bytes public/assets/img/theme/tim.png | Bin 0 -> 76209 bytes public/assets/img/theme/unass.jpg | Bin 0 -> 12380 bytes public/assets/img/theme/visa.png | Bin 0 -> 1472 bytes public/assets/img/theme/vue.jpg | Bin 0 -> 18469 bytes public/assets/js/main.js | 73 + public/assets/js/main.min.js | 78 + public/index.php | 9 + qodana.yaml | 32 + src/Controller/.gitignore | 0 src/Controller/ConfigController.php | 26 + src/Controller/File/FileController.php | 86 + src/Controller/File/UploadController.php | 138 + src/Controller/Page/DefaultController.php | 16 + src/Controller/Page/FaqController.php | 16 + src/Controller/Page/HomeController.php | 66 + src/Controller/Page/LoginController.php | 26 + .../Page/RegistrationController.php | 60 + src/Controller/Profile/UserController.php | 19 + src/Entity/.gitignore | 0 src/Entity/File.php | 97 + src/Entity/User.php | 174 + src/Form/RegistrationFormType.php | 55 + src/Kernel.php | 11 + src/Repository/.gitignore | 0 src/Repository/FileRepository.php | 29 + src/Repository/UserRepository.php | 66 + src/Security/AppAuthenticator.php | 52 + src/Service/ConfigGenerator.php | 44 + src/Service/PaginationMaker.php | 21 + src/Service/SizeFormatter.php | 44 + src/Service/TokenGenerator.php | 19 + src/Twig/FilesizeExtension.php | 27 + symfony.lock | 273 + templates/base.html.twig | 36 + templates/faq/index.html.twig | 133 + templates/file_upload/index.html.twig | 27 + templates/home/index.html.twig | 98 + templates/landing/index.html.twig | 53 + templates/login/login.html.twig | 34 + templates/partials/__footer.html.twig | 29 + templates/partials/__header.html.twig | 18 + templates/partials/__spacer.html.twig | 3 + templates/partials/home/__gallery.html.twig | 12 + .../partials/home/__pagination.html.twig | 23 + .../partials/home/__statistics.html.twig | 51 + templates/partials/landing/__faq.html.twig | 12 + .../partials/landing/__features.html.twig | 67 + templates/profile/index.html.twig | 21 + templates/registration/register.html.twig | 38 + tests/bootstrap.php | 11 + translations/.gitignore | 0 205 files changed, 17941 insertions(+) create mode 100644 .env create mode 100644 .env.test create mode 100755 .gitattributes create mode 100644 .gitignore create mode 100755 .idea/.gitignore create mode 100755 .idea/codeception.xml create mode 100644 .idea/dataSources.xml create mode 100755 .idea/inspectionProfiles/Project_Default.xml create mode 100644 .idea/jsLibraryMappings.xml create mode 100755 .idea/modules.xml create mode 100755 .idea/php-test-framework.xml create mode 100644 .idea/php.xml create mode 100644 .idea/phpspec.xml create mode 100755 .idea/phpunit.xml create mode 100755 .idea/symfony2.xml create mode 100644 .idea/vcs.xml create mode 100644 .idea/ventry-hosting-service.iml create mode 100644 README.md create mode 100644 bin/console create mode 100644 bin/phpunit create mode 100755 bin/setup.sh create mode 100644 composer.json create mode 100644 composer.lock create mode 100644 config/bundles.php create mode 100644 config/packages/cache.yaml create mode 100755 config/packages/debug.yaml create mode 100755 config/packages/doctrine.yaml create mode 100755 config/packages/doctrine_migrations.yaml create mode 100644 config/packages/framework.yaml create mode 100755 config/packages/mailer.yaml create mode 100755 config/packages/messenger.yaml create mode 100755 config/packages/monolog.yaml create mode 100755 config/packages/notifier.yaml create mode 100644 config/packages/routing.yaml create mode 100755 config/packages/security.yaml create mode 100644 config/packages/snc_redis.yaml create mode 100755 config/packages/translation.yaml create mode 100755 config/packages/twig.yaml create mode 100755 config/packages/validator.yaml create mode 100755 config/packages/web_profiler.yaml create mode 100644 config/preload.php create mode 100644 config/routes.yaml create mode 100644 config/routes/framework.yaml create mode 100755 config/routes/web_profiler.yaml create mode 100644 config/services.yaml create mode 100644 docker/.env create mode 100644 docker/.gitignore create mode 100644 docker/apache/Dockerfile create mode 100644 docker/apache/sites/symfony-skeleton.conf create mode 100644 docker/apache/xdebug.ini create mode 100644 docker/docker-compose.yml create mode 100644 docker/opcache.ini create mode 100644 docker/php.ini create mode 100644 docker/xdebug.ini create mode 100755 migrations/.gitignore create mode 100755 migrations/Version20231016141648.php create mode 100755 migrations/Version20231020053615.php create mode 100755 migrations/Version20231020055144.php create mode 100755 migrations/Version20231020082438.php create mode 100755 migrations/Version20231023062854.php create mode 100644 migrations/Version20231103112501.php create mode 100755 phpunit.xml.dist create mode 100644 public/.htaccess create mode 100755 public/assets/css/style.css create mode 100755 public/assets/fonts/nucleo-icons.eot create mode 100755 public/assets/fonts/nucleo-icons.svg create mode 100755 public/assets/fonts/nucleo-icons.ttf create mode 100755 public/assets/fonts/nucleo-icons.woff create mode 100755 public/assets/fonts/nucleo-icons.woff2 create mode 100755 public/assets/fonts/nucleo.eot create mode 100755 public/assets/fonts/nucleo.ttf create mode 100755 public/assets/fonts/nucleo.woff create mode 100755 public/assets/fonts/nucleo.woff2 create mode 100755 public/assets/img/BlankMap-World.svg.png create mode 100755 public/assets/img/BlankMap-World1.svg.png create mode 100755 public/assets/img/apple-icon.png create mode 100755 public/assets/img/cta-illustration.svg create mode 100755 public/assets/img/curved-images/curved-10.jpg create mode 100755 public/assets/img/curved-images/curved-11.jpg create mode 100755 public/assets/img/curved-images/curved-6.jpg create mode 100755 public/assets/img/curved-images/curved-8.jpg create mode 100755 public/assets/img/curved-images/curved0.jpg create mode 100755 public/assets/img/curved-images/curved1.jpg create mode 100755 public/assets/img/curved-images/curved10.jpg create mode 100755 public/assets/img/curved-images/curved11-small.jpg create mode 100755 public/assets/img/curved-images/curved11.jpg create mode 100755 public/assets/img/curved-images/curved12.jpg create mode 100755 public/assets/img/curved-images/curved13.jpg create mode 100755 public/assets/img/curved-images/curved14.jpg create mode 100755 public/assets/img/curved-images/curved19.jpg create mode 100755 public/assets/img/curved-images/curved2.jpg create mode 100755 public/assets/img/curved-images/curved21.jpg create mode 100755 public/assets/img/curved-images/curved3.jpg create mode 100755 public/assets/img/curved-images/curved4.jpg create mode 100755 public/assets/img/curved-images/curved5-small.jpg create mode 100755 public/assets/img/curved-images/curved5.jpg create mode 100755 public/assets/img/curved-images/curved6-small.jpg create mode 100755 public/assets/img/curved-images/curved6.jpg create mode 100755 public/assets/img/curved-images/curved7.jpg create mode 100755 public/assets/img/curved-images/curved8.jpg create mode 100755 public/assets/img/curved-images/curved9.jpg create mode 100755 public/assets/img/curved-images/white-curved.jpeg create mode 100755 public/assets/img/down-arrow-dark.svg create mode 100755 public/assets/img/down-arrow-white.svg create mode 100755 public/assets/img/down-arrow.svg create mode 100755 public/assets/img/favicon.png create mode 100755 public/assets/img/feature-icon-01.svg create mode 100755 public/assets/img/feature-icon-02.svg create mode 100755 public/assets/img/feature-icon-03.svg create mode 100755 public/assets/img/feature-icon-04.svg create mode 100755 public/assets/img/feature-icon-05.svg create mode 100755 public/assets/img/feature-icon-06.svg create mode 100755 public/assets/img/hero-back-illustration.svg create mode 100755 public/assets/img/hero-top-illustration.svg create mode 100755 public/assets/img/icons/flags/AU.png create mode 100755 public/assets/img/icons/flags/BR.png create mode 100755 public/assets/img/icons/flags/DE.png create mode 100755 public/assets/img/icons/flags/GB.png create mode 100755 public/assets/img/icons/flags/US.png create mode 100755 public/assets/img/illustrations/icon-documentation.svg create mode 100755 public/assets/img/illustrations/rocket-white.png create mode 100755 public/assets/img/large-banner-textonly.png create mode 100755 public/assets/img/large-banner.png create mode 100755 public/assets/img/logo-white.png create mode 100755 public/assets/img/logo.svg create mode 100755 public/assets/img/logos/mastercard.png create mode 100755 public/assets/img/logos/visa.png create mode 100755 public/assets/img/pricing-illustration.svg create mode 100755 public/assets/img/shapes/pattern-lines.svg create mode 100755 public/assets/img/shapes/shape-1.svg create mode 100755 public/assets/img/shapes/shape-2.svg create mode 100755 public/assets/img/shapes/shape-3.svg create mode 100755 public/assets/img/shapes/wave-down.svg create mode 100755 public/assets/img/shapes/wave-up.svg create mode 100755 public/assets/img/shapes/waves-gray.svg create mode 100755 public/assets/img/shapes/waves-white.svg create mode 100755 public/assets/img/small-logos/icon-sun-cloud.png create mode 100755 public/assets/img/small-logos/logo-atlassian.svg create mode 100755 public/assets/img/small-logos/logo-invision.svg create mode 100755 public/assets/img/small-logos/logo-jira.svg create mode 100755 public/assets/img/small-logos/logo-slack.svg create mode 100755 public/assets/img/small-logos/logo-spotify.svg create mode 100755 public/assets/img/small-logos/logo-webdev.svg create mode 100755 public/assets/img/small-logos/logo-xd.svg create mode 100755 public/assets/img/theme/angular.jpg create mode 100755 public/assets/img/theme/bootstrap.jpg create mode 100755 public/assets/img/theme/dribbble.png create mode 100755 public/assets/img/theme/dropbox.png create mode 100755 public/assets/img/theme/mastercard.png create mode 100755 public/assets/img/theme/paypal.png create mode 100755 public/assets/img/theme/react.jpg create mode 100755 public/assets/img/theme/sketch.jpg create mode 100755 public/assets/img/theme/slack.png create mode 100755 public/assets/img/theme/spotify.jpeg create mode 100755 public/assets/img/theme/tim.png create mode 100755 public/assets/img/theme/unass.jpg create mode 100755 public/assets/img/theme/visa.png create mode 100755 public/assets/img/theme/vue.jpg create mode 100755 public/assets/js/main.js create mode 100755 public/assets/js/main.min.js create mode 100644 public/index.php create mode 100755 qodana.yaml create mode 100644 src/Controller/.gitignore create mode 100755 src/Controller/ConfigController.php create mode 100755 src/Controller/File/FileController.php create mode 100755 src/Controller/File/UploadController.php create mode 100755 src/Controller/Page/DefaultController.php create mode 100755 src/Controller/Page/FaqController.php create mode 100755 src/Controller/Page/HomeController.php create mode 100755 src/Controller/Page/LoginController.php create mode 100755 src/Controller/Page/RegistrationController.php create mode 100644 src/Controller/Profile/UserController.php create mode 100755 src/Entity/.gitignore create mode 100755 src/Entity/File.php create mode 100755 src/Entity/User.php create mode 100755 src/Form/RegistrationFormType.php create mode 100644 src/Kernel.php create mode 100755 src/Repository/.gitignore create mode 100755 src/Repository/FileRepository.php create mode 100755 src/Repository/UserRepository.php create mode 100755 src/Security/AppAuthenticator.php create mode 100755 src/Service/ConfigGenerator.php create mode 100755 src/Service/PaginationMaker.php create mode 100755 src/Service/SizeFormatter.php create mode 100755 src/Service/TokenGenerator.php create mode 100755 src/Twig/FilesizeExtension.php create mode 100644 symfony.lock create mode 100755 templates/base.html.twig create mode 100755 templates/faq/index.html.twig create mode 100755 templates/file_upload/index.html.twig create mode 100755 templates/home/index.html.twig create mode 100755 templates/landing/index.html.twig create mode 100755 templates/login/login.html.twig create mode 100755 templates/partials/__footer.html.twig create mode 100755 templates/partials/__header.html.twig create mode 100755 templates/partials/__spacer.html.twig create mode 100755 templates/partials/home/__gallery.html.twig create mode 100755 templates/partials/home/__pagination.html.twig create mode 100755 templates/partials/home/__statistics.html.twig create mode 100755 templates/partials/landing/__faq.html.twig create mode 100755 templates/partials/landing/__features.html.twig create mode 100644 templates/profile/index.html.twig create mode 100755 templates/registration/register.html.twig create mode 100755 tests/bootstrap.php create mode 100755 translations/.gitignore diff --git a/.env b/.env new file mode 100644 index 0000000..f91f379 --- /dev/null +++ b/.env @@ -0,0 +1,46 @@ +# In all environments, the following files are loaded if they exist, +# the latter taking precedence over the former: +# +# * .env contains default values for the environment variables needed by the app +# * .env.local uncommitted file with local overrides +# * .env.$APP_ENV committed environment-specific defaults +# * .env.$APP_ENV.local uncommitted environment-specific overrides +# +# Real environment variables win over .env files. +# +# DO NOT DEFINE PRODUCTION SECRETS IN THIS FILE NOR IN ANY OTHER COMMITTED FILES. +# https://symfony.com/doc/current/configuration/secrets.html +# +# Run "composer dump-env prod" to compile .env files for production use (requires symfony/flex >=1.2). +# https://symfony.com/doc/current/best_practices.html#use-environment-variables-for-infrastructure-configuration + +###> symfony/framework-bundle ### +APP_ENV=dev +APP_SECRET=7fe636b63dc255ac5032b011aa4d90e6 +###< symfony/framework-bundle ### + +###> doctrine/doctrine-bundle ### +# Format described at https://www.doctrine-project.org/projects/doctrine-dbal/en/latest/reference/configuration.html#connecting-using-a-url +# IMPORTANT: You MUST configure your server version, either here or in config/packages/doctrine.yaml +# +# DATABASE_URL="sqlite:///%kernel.project_dir%/var/data.db" +# DATABASE_URL="mysql://app:!ChangeMe!@127.0.0.1:3306/app?serverVersion=8.0.32&charset=utf8mb4" +# DATABASE_URL="mysql://app:!ChangeMe!@127.0.0.1:3306/app?serverVersion=10.11.2-MariaDB&charset=utf8mb4" +###< doctrine/doctrine-bundle ### + +###> symfony/messenger ### +# Choose one of the transports below +# MESSENGER_TRANSPORT_DSN=amqp://guest:guest@localhost:5672/%2f/messages +# MESSENGER_TRANSPORT_DSN=redis://localhost:6379/messages +MESSENGER_TRANSPORT_DSN=doctrine://default?auto_setup=0 +###< symfony/messenger ### + +###> symfony/mailer ### +# MAILER_DSN=null://null +###< symfony/mailer ### + +###> snc/redis-bundle ### +# passwords that contain special characters (@, %, :, +) must be urlencoded +REDIS_URL=redis://localhost +###< snc/redis-bundle ### +DATABASE_URL=mysql://root:root@database:3306/ventry-hosting-service diff --git a/.env.test b/.env.test new file mode 100644 index 0000000..3596780 --- /dev/null +++ b/.env.test @@ -0,0 +1,6 @@ +# define your env variables for the test env here +KERNEL_CLASS='App\Kernel' +APP_SECRET='$ecretf0rt3st' +SYMFONY_DEPRECATIONS_HELPER=999999 +PANTHER_APP_ENV=panther +PANTHER_ERROR_SCREENSHOT_DIR=./var/error-screenshots diff --git a/.gitattributes b/.gitattributes new file mode 100755 index 0000000..a23b70a --- /dev/null +++ b/.gitattributes @@ -0,0 +1 @@ +public/assets/* linguist-vendored diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..df775de --- /dev/null +++ b/.gitignore @@ -0,0 +1,21 @@ + +###> symfony/framework-bundle ### +/.env.local +/.env.local.php +/.env.*.local +/config/secrets/prod/prod.decrypt.private.php +/public/bundles/ +/var/ +/vendor/ +/public/uploads/* +###< symfony/framework-bundle ### + +###> phpunit/phpunit ### +/phpunit.xml +.phpunit.result.cache +###< phpunit/phpunit ### + +###> symfony/phpunit-bridge ### +.phpunit.result.cache +/phpunit.xml +###< symfony/phpunit-bridge ### diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100755 index 0000000..1c2fda5 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,8 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Editor-based HTTP Client requests +/httpRequests/ +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml diff --git a/.idea/codeception.xml b/.idea/codeception.xml new file mode 100755 index 0000000..3e19148 --- /dev/null +++ b/.idea/codeception.xml @@ -0,0 +1,12 @@ + + + + + + \ No newline at end of file diff --git a/.idea/dataSources.xml b/.idea/dataSources.xml new file mode 100644 index 0000000..ff81819 --- /dev/null +++ b/.idea/dataSources.xml @@ -0,0 +1,12 @@ + + + + + mysql.8 + true + com.mysql.cj.jdbc.Driver + jdbc:mysql://127.0.0.1:3306 + $ProjectFileDir$ + + + \ No newline at end of file diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml new file mode 100755 index 0000000..8639361 --- /dev/null +++ b/.idea/inspectionProfiles/Project_Default.xml @@ -0,0 +1,22 @@ + + + + \ No newline at end of file diff --git a/.idea/jsLibraryMappings.xml b/.idea/jsLibraryMappings.xml new file mode 100644 index 0000000..b6beb65 --- /dev/null +++ b/.idea/jsLibraryMappings.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100755 index 0000000..a0a4225 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/php-test-framework.xml b/.idea/php-test-framework.xml new file mode 100755 index 0000000..9a5c3cc --- /dev/null +++ b/.idea/php-test-framework.xml @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/php.xml b/.idea/php.xml new file mode 100644 index 0000000..7d128f9 --- /dev/null +++ b/.idea/php.xml @@ -0,0 +1,165 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/phpspec.xml b/.idea/phpspec.xml new file mode 100644 index 0000000..7b8071c --- /dev/null +++ b/.idea/phpspec.xml @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/phpunit.xml b/.idea/phpunit.xml new file mode 100755 index 0000000..83eacae --- /dev/null +++ b/.idea/phpunit.xml @@ -0,0 +1,10 @@ + + + + + + \ No newline at end of file diff --git a/.idea/symfony2.xml b/.idea/symfony2.xml new file mode 100755 index 0000000..2dfac5e --- /dev/null +++ b/.idea/symfony2.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..6a392ba --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/.idea/ventry-hosting-service.iml b/.idea/ventry-hosting-service.iml new file mode 100644 index 0000000..b7466e0 --- /dev/null +++ b/.idea/ventry-hosting-service.iml @@ -0,0 +1,148 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..9ff9f85 --- /dev/null +++ b/README.md @@ -0,0 +1,58 @@ +# ventry.host v² | File Hosting +This web application is the second version of a service called `ventry.host`. It serves as a platform for uploading images, text, and files using the ShareX program. It offers an intuitive user interface for seamless sharing. + +## Installation + +### Without Docker +Clone this repository to your local environment. + +Ensure that PHP and Symfony are installed on your system. + +Run composer install in the project directory. + +Create a `.env.local` file and configure your database settings. + +Set up the database with the following commands: + +- `php bin/console doctrine:database:create` +- `php bin/console doctrine:migrations:migrate` + +Start the Symfony development server: + +- ``symfony server:start`` + +Access the application in your browser at http://127.0.0.1:8000. + +### With Docker +Run following commands inside the docker container in the project directory: + +- ``chown www-data:www-data -R public/`` + +Access the application in your browser at http://127.0.0.1. + + +## Usage +**Register**: Visit ``/register`` to create an account by providing your username and a secure password. + +**Login**: After registration, log in at ``/login``. + +**Upload**: Once logged in, navigate to the home page at ``/home``. You can upload images, text, and files using [ShareX](https://getsharex.com/). + +## Features +- DONE: + - User registration and login. + - Secure password hashing. + - User-friendly interface. + - File Uploading. + - ShareX integration for easy file uploads. + - Discord Embedding. + - User Profiles + + +- TODO: + - User-friendly interface. + - Customizable Interface and Settings. + - Customizable File-Preview Page. + +## Contributing +Contributions are welcome. Please open issues and pull requests to enhance this project. diff --git a/bin/console b/bin/console new file mode 100644 index 0000000..ad9197a --- /dev/null +++ b/bin/console @@ -0,0 +1,17 @@ +#!/usr/bin/env php +=8.1", + "ext-ctype": "*", + "ext-fileinfo": "*", + "ext-iconv": "*", + "doctrine/doctrine-bundle": "^2.10", + "doctrine/doctrine-migrations-bundle": "^3.2", + "doctrine/orm": "^2.16", + "phpdocumentor/reflection-docblock": "^5.3", + "phpstan/phpdoc-parser": "^1.24", + "snc/redis-bundle": "^4.7", + "symfony/asset": "6.3.*", + "symfony/cache": "6.3.*", + "symfony/console": "6.3.*", + "symfony/doctrine-messenger": "6.3.*", + "symfony/dotenv": "6.3.*", + "symfony/expression-language": "6.3.*", + "symfony/flex": "^2", + "symfony/form": "6.3.*", + "symfony/framework-bundle": "6.3.*", + "symfony/http-client": "6.3.*", + "symfony/intl": "6.3.*", + "symfony/mailer": "6.3.*", + "symfony/mime": "6.3.*", + "symfony/monolog-bundle": "^3.0", + "symfony/notifier": "6.3.*", + "symfony/process": "6.3.*", + "symfony/property-access": "6.3.*", + "symfony/property-info": "6.3.*", + "symfony/runtime": "6.3.*", + "symfony/security-bundle": "6.3.*", + "symfony/serializer": "6.3.*", + "symfony/string": "6.3.*", + "symfony/translation": "6.3.*", + "symfony/twig-bundle": "6.3.*", + "symfony/validator": "6.3.*", + "symfony/web-link": "6.3.*", + "symfony/yaml": "6.3.*", + "twig/extra-bundle": "^2.12|^3.0", + "twig/twig": "^3.7" + }, + "config": { + "allow-plugins": { + "php-http/discovery": true, + "symfony/flex": true, + "symfony/runtime": true + }, + "sort-packages": true + }, + "autoload": { + "psr-4": { + "App\\": "src/" + } + }, + "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": "*" + }, + "scripts": { + "auto-scripts": { + "cache:clear": "symfony-cmd", + "assets:install %PUBLIC_DIR%": "symfony-cmd" + }, + "post-install-cmd": [ + "@auto-scripts" + ], + "post-update-cmd": [ + "@auto-scripts" + ] + }, + "conflict": { + "symfony/symfony": "*" + }, + "extra": { + "symfony": { + "allow-contrib": false, + "require": "6.3.*" + } + }, + "require-dev": { + "roave/security-advisories": "dev-latest" + , + "phpunit/phpunit": "^9.5", + "symfony/browser-kit": "6.3.*", + "symfony/css-selector": "6.3.*", + "symfony/debug-bundle": "6.3.*", + "symfony/maker-bundle": "^1.0", + "symfony/phpunit-bridge": "^6.3", + "symfony/stopwatch": "6.3.*", + "symfony/web-profiler-bundle": "6.3.*" + } +} diff --git a/composer.lock b/composer.lock new file mode 100644 index 0000000..3f0795c --- /dev/null +++ b/composer.lock @@ -0,0 +1,10282 @@ +{ + "_readme": [ + "This file locks the dependencies of your project to a known state", + "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", + "This file is @generated automatically" + ], + "content-hash": "58eac24836ac3198392e4a4669fe8a23", + "packages": [ + { + "name": "doctrine/cache", + "version": "2.2.0", + "source": { + "type": "git", + "url": "https://github.com/doctrine/cache.git", + "reference": "1ca8f21980e770095a31456042471a57bc4c68fb" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/cache/zipball/1ca8f21980e770095a31456042471a57bc4c68fb", + "reference": "1ca8f21980e770095a31456042471a57bc4c68fb", + "shasum": "" + }, + "require": { + "php": "~7.1 || ^8.0" + }, + "conflict": { + "doctrine/common": ">2.2,<2.4" + }, + "require-dev": { + "cache/integration-tests": "dev-master", + "doctrine/coding-standard": "^9", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", + "psr/cache": "^1.0 || ^2.0 || ^3.0", + "symfony/cache": "^4.4 || ^5.4 || ^6", + "symfony/var-exporter": "^4.4 || ^5.4 || ^6" + }, + "type": "library", + "autoload": { + "psr-4": { + "Doctrine\\Common\\Cache\\": "lib/Doctrine/Common/Cache" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" + } + ], + "description": "PHP Doctrine Cache library is a popular cache implementation that supports many different drivers such as redis, memcache, apc, mongodb and others.", + "homepage": "https://www.doctrine-project.org/projects/cache.html", + "keywords": [ + "abstraction", + "apcu", + "cache", + "caching", + "couchdb", + "memcached", + "php", + "redis", + "xcache" + ], + "support": { + "issues": "https://github.com/doctrine/cache/issues", + "source": "https://github.com/doctrine/cache/tree/2.2.0" + }, + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fcache", + "type": "tidelift" + } + ], + "time": "2022-05-20T20:07:39+00:00" + }, + { + "name": "doctrine/collections", + "version": "2.1.4", + "source": { + "type": "git", + "url": "https://github.com/doctrine/collections.git", + "reference": "72328a11443a0de79967104ad36ba7b30bded134" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/collections/zipball/72328a11443a0de79967104ad36ba7b30bded134", + "reference": "72328a11443a0de79967104ad36ba7b30bded134", + "shasum": "" + }, + "require": { + "doctrine/deprecations": "^1", + "php": "^8.1" + }, + "require-dev": { + "doctrine/coding-standard": "^12", + "ext-json": "*", + "phpstan/phpstan": "^1.8", + "phpstan/phpstan-phpunit": "^1.0", + "phpunit/phpunit": "^9.5", + "vimeo/psalm": "^5.11" + }, + "type": "library", + "autoload": { + "psr-4": { + "Doctrine\\Common\\Collections\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" + } + ], + "description": "PHP Doctrine Collections library that adds additional functionality on top of PHP arrays.", + "homepage": "https://www.doctrine-project.org/projects/collections.html", + "keywords": [ + "array", + "collections", + "iterators", + "php" + ], + "support": { + "issues": "https://github.com/doctrine/collections/issues", + "source": "https://github.com/doctrine/collections/tree/2.1.4" + }, + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fcollections", + "type": "tidelift" + } + ], + "time": "2023-10-03T09:22:33+00:00" + }, + { + "name": "doctrine/common", + "version": "3.4.3", + "source": { + "type": "git", + "url": "https://github.com/doctrine/common.git", + "reference": "8b5e5650391f851ed58910b3e3d48a71062eeced" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/common/zipball/8b5e5650391f851ed58910b3e3d48a71062eeced", + "reference": "8b5e5650391f851ed58910b3e3d48a71062eeced", + "shasum": "" + }, + "require": { + "doctrine/persistence": "^2.0 || ^3.0", + "php": "^7.1 || ^8.0" + }, + "require-dev": { + "doctrine/coding-standard": "^9.0 || ^10.0", + "doctrine/collections": "^1", + "phpstan/phpstan": "^1.4.1", + "phpstan/phpstan-phpunit": "^1", + "phpunit/phpunit": "^7.5.20 || ^8.5 || ^9.0", + "squizlabs/php_codesniffer": "^3.0", + "symfony/phpunit-bridge": "^6.1", + "vimeo/psalm": "^4.4" + }, + "type": "library", + "autoload": { + "psr-4": { + "Doctrine\\Common\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" + }, + { + "name": "Marco Pivetta", + "email": "ocramius@gmail.com" + } + ], + "description": "PHP Doctrine Common project is a library that provides additional functionality that other Doctrine projects depend on such as better reflection support, proxies and much more.", + "homepage": "https://www.doctrine-project.org/projects/common.html", + "keywords": [ + "common", + "doctrine", + "php" + ], + "support": { + "issues": "https://github.com/doctrine/common/issues", + "source": "https://github.com/doctrine/common/tree/3.4.3" + }, + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fcommon", + "type": "tidelift" + } + ], + "time": "2022-10-09T11:47:59+00:00" + }, + { + "name": "doctrine/dbal", + "version": "3.7.1", + "source": { + "type": "git", + "url": "https://github.com/doctrine/dbal.git", + "reference": "5b7bd66c9ff58c04c5474ab85edce442f8081cb2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/dbal/zipball/5b7bd66c9ff58c04c5474ab85edce442f8081cb2", + "reference": "5b7bd66c9ff58c04c5474ab85edce442f8081cb2", + "shasum": "" + }, + "require": { + "composer-runtime-api": "^2", + "doctrine/cache": "^1.11|^2.0", + "doctrine/deprecations": "^0.5.3|^1", + "doctrine/event-manager": "^1|^2", + "php": "^7.4 || ^8.0", + "psr/cache": "^1|^2|^3", + "psr/log": "^1|^2|^3" + }, + "require-dev": { + "doctrine/coding-standard": "12.0.0", + "fig/log-test": "^1", + "jetbrains/phpstorm-stubs": "2023.1", + "phpstan/phpstan": "1.10.35", + "phpstan/phpstan-strict-rules": "^1.5", + "phpunit/phpunit": "9.6.13", + "psalm/plugin-phpunit": "0.18.4", + "slevomat/coding-standard": "8.13.1", + "squizlabs/php_codesniffer": "3.7.2", + "symfony/cache": "^5.4|^6.0", + "symfony/console": "^4.4|^5.4|^6.0", + "vimeo/psalm": "4.30.0" + }, + "suggest": { + "symfony/console": "For helpful console commands such as SQL execution and import of files." + }, + "bin": [ + "bin/doctrine-dbal" + ], + "type": "library", + "autoload": { + "psr-4": { + "Doctrine\\DBAL\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com" + } + ], + "description": "Powerful PHP database abstraction layer (DBAL) with many features for database schema introspection and management.", + "homepage": "https://www.doctrine-project.org/projects/dbal.html", + "keywords": [ + "abstraction", + "database", + "db2", + "dbal", + "mariadb", + "mssql", + "mysql", + "oci8", + "oracle", + "pdo", + "pgsql", + "postgresql", + "queryobject", + "sasql", + "sql", + "sqlite", + "sqlserver", + "sqlsrv" + ], + "support": { + "issues": "https://github.com/doctrine/dbal/issues", + "source": "https://github.com/doctrine/dbal/tree/3.7.1" + }, + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fdbal", + "type": "tidelift" + } + ], + "time": "2023-10-06T05:06:20+00:00" + }, + { + "name": "doctrine/deprecations", + "version": "1.1.2", + "source": { + "type": "git", + "url": "https://github.com/doctrine/deprecations.git", + "reference": "4f2d4f2836e7ec4e7a8625e75c6aa916004db931" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/deprecations/zipball/4f2d4f2836e7ec4e7a8625e75c6aa916004db931", + "reference": "4f2d4f2836e7ec4e7a8625e75c6aa916004db931", + "shasum": "" + }, + "require": { + "php": "^7.1 || ^8.0" + }, + "require-dev": { + "doctrine/coding-standard": "^9", + "phpstan/phpstan": "1.4.10 || 1.10.15", + "phpstan/phpstan-phpunit": "^1.0", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", + "psalm/plugin-phpunit": "0.18.4", + "psr/log": "^1 || ^2 || ^3", + "vimeo/psalm": "4.30.0 || 5.12.0" + }, + "suggest": { + "psr/log": "Allows logging deprecations via PSR-3 logger implementation" + }, + "type": "library", + "autoload": { + "psr-4": { + "Doctrine\\Deprecations\\": "lib/Doctrine/Deprecations" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "A small layer on top of trigger_error(E_USER_DEPRECATED) or PSR-3 logging with options to disable all deprecations or selectively for packages.", + "homepage": "https://www.doctrine-project.org/", + "support": { + "issues": "https://github.com/doctrine/deprecations/issues", + "source": "https://github.com/doctrine/deprecations/tree/1.1.2" + }, + "time": "2023-09-27T20:04:15+00:00" + }, + { + "name": "doctrine/doctrine-bundle", + "version": "2.10.2", + "source": { + "type": "git", + "url": "https://github.com/doctrine/DoctrineBundle.git", + "reference": "f28b1f78de3a2938ff05cfe751233097624cc756" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/DoctrineBundle/zipball/f28b1f78de3a2938ff05cfe751233097624cc756", + "reference": "f28b1f78de3a2938ff05cfe751233097624cc756", + "shasum": "" + }, + "require": { + "doctrine/cache": "^1.11 || ^2.0", + "doctrine/dbal": "^3.6.0", + "doctrine/persistence": "^2.2 || ^3", + "doctrine/sql-formatter": "^1.0.1", + "php": "^7.4 || ^8.0", + "symfony/cache": "^5.4 || ^6.0", + "symfony/config": "^5.4 || ^6.0", + "symfony/console": "^5.4 || ^6.0", + "symfony/dependency-injection": "^5.4 || ^6.0", + "symfony/deprecation-contracts": "^2.1 || ^3", + "symfony/doctrine-bridge": "^5.4.19 || ^6.0.7", + "symfony/framework-bundle": "^5.4 || ^6.0", + "symfony/service-contracts": "^1.1.1 || ^2.0 || ^3" + }, + "conflict": { + "doctrine/annotations": ">=3.0", + "doctrine/orm": "<2.11 || >=3.0", + "twig/twig": "<1.34 || >=2.0 <2.4" + }, + "require-dev": { + "doctrine/annotations": "^1 || ^2", + "doctrine/coding-standard": "^9.0", + "doctrine/deprecations": "^1.0", + "doctrine/orm": "^2.11 || ^3.0", + "friendsofphp/proxy-manager-lts": "^1.0", + "phpunit/phpunit": "^9.5.26 || ^10.0", + "psalm/plugin-phpunit": "^0.18.4", + "psalm/plugin-symfony": "^4", + "psr/log": "^1.1.4 || ^2.0 || ^3.0", + "symfony/phpunit-bridge": "^6.1", + "symfony/property-info": "^5.4 || ^6.0", + "symfony/proxy-manager-bridge": "^5.4 || ^6.0", + "symfony/security-bundle": "^5.4 || ^6.0", + "symfony/twig-bridge": "^5.4 || ^6.0", + "symfony/validator": "^5.4 || ^6.0", + "symfony/web-profiler-bundle": "^5.4 || ^6.0", + "symfony/yaml": "^5.4 || ^6.0", + "twig/twig": "^1.34 || ^2.12 || ^3.0", + "vimeo/psalm": "^4.30" + }, + "suggest": { + "doctrine/orm": "The Doctrine ORM integration is optional in the bundle.", + "ext-pdo": "*", + "symfony/web-profiler-bundle": "To use the data collector." + }, + "type": "symfony-bundle", + "autoload": { + "psr-4": { + "Doctrine\\Bundle\\DoctrineBundle\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + }, + { + "name": "Doctrine Project", + "homepage": "https://www.doctrine-project.org/" + } + ], + "description": "Symfony DoctrineBundle", + "homepage": "https://www.doctrine-project.org", + "keywords": [ + "database", + "dbal", + "orm", + "persistence" + ], + "support": { + "issues": "https://github.com/doctrine/DoctrineBundle/issues", + "source": "https://github.com/doctrine/DoctrineBundle/tree/2.10.2" + }, + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fdoctrine-bundle", + "type": "tidelift" + } + ], + "time": "2023-08-06T09:31:40+00:00" + }, + { + "name": "doctrine/doctrine-migrations-bundle", + "version": "3.2.4", + "source": { + "type": "git", + "url": "https://github.com/doctrine/DoctrineMigrationsBundle.git", + "reference": "94e6b0fe1a50901d52f59dbb9b4b0737718b2c1e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/DoctrineMigrationsBundle/zipball/94e6b0fe1a50901d52f59dbb9b4b0737718b2c1e", + "reference": "94e6b0fe1a50901d52f59dbb9b4b0737718b2c1e", + "shasum": "" + }, + "require": { + "doctrine/doctrine-bundle": "~1.0|~2.0", + "doctrine/migrations": "^3.2", + "php": "^7.2|^8.0", + "symfony/framework-bundle": "~3.4|~4.0|~5.0|~6.0" + }, + "require-dev": { + "doctrine/coding-standard": "^9", + "doctrine/orm": "^2.6", + "doctrine/persistence": "^1.3||^2.0", + "phpstan/phpstan": "^1.4", + "phpstan/phpstan-deprecation-rules": "^1", + "phpstan/phpstan-phpunit": "^1", + "phpstan/phpstan-strict-rules": "^1.1", + "phpunit/phpunit": "^8.5|^9.5", + "vimeo/psalm": "^4.22" + }, + "type": "symfony-bundle", + "autoload": { + "psr-4": { + "Doctrine\\Bundle\\MigrationsBundle\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Doctrine Project", + "homepage": "https://www.doctrine-project.org" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony DoctrineMigrationsBundle", + "homepage": "https://www.doctrine-project.org", + "keywords": [ + "dbal", + "migrations", + "schema" + ], + "support": { + "issues": "https://github.com/doctrine/DoctrineMigrationsBundle/issues", + "source": "https://github.com/doctrine/DoctrineMigrationsBundle/tree/3.2.4" + }, + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fdoctrine-migrations-bundle", + "type": "tidelift" + } + ], + "time": "2023-06-02T08:19:26+00:00" + }, + { + "name": "doctrine/event-manager", + "version": "2.0.0", + "source": { + "type": "git", + "url": "https://github.com/doctrine/event-manager.git", + "reference": "750671534e0241a7c50ea5b43f67e23eb5c96f32" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/event-manager/zipball/750671534e0241a7c50ea5b43f67e23eb5c96f32", + "reference": "750671534e0241a7c50ea5b43f67e23eb5c96f32", + "shasum": "" + }, + "require": { + "php": "^8.1" + }, + "conflict": { + "doctrine/common": "<2.9" + }, + "require-dev": { + "doctrine/coding-standard": "^10", + "phpstan/phpstan": "^1.8.8", + "phpunit/phpunit": "^9.5", + "vimeo/psalm": "^4.28" + }, + "type": "library", + "autoload": { + "psr-4": { + "Doctrine\\Common\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" + }, + { + "name": "Marco Pivetta", + "email": "ocramius@gmail.com" + } + ], + "description": "The Doctrine Event Manager is a simple PHP event system that was built to be used with the various Doctrine projects.", + "homepage": "https://www.doctrine-project.org/projects/event-manager.html", + "keywords": [ + "event", + "event dispatcher", + "event manager", + "event system", + "events" + ], + "support": { + "issues": "https://github.com/doctrine/event-manager/issues", + "source": "https://github.com/doctrine/event-manager/tree/2.0.0" + }, + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fevent-manager", + "type": "tidelift" + } + ], + "time": "2022-10-12T20:59:15+00:00" + }, + { + "name": "doctrine/inflector", + "version": "2.0.8", + "source": { + "type": "git", + "url": "https://github.com/doctrine/inflector.git", + "reference": "f9301a5b2fb1216b2b08f02ba04dc45423db6bff" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/inflector/zipball/f9301a5b2fb1216b2b08f02ba04dc45423db6bff", + "reference": "f9301a5b2fb1216b2b08f02ba04dc45423db6bff", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0" + }, + "require-dev": { + "doctrine/coding-standard": "^11.0", + "phpstan/phpstan": "^1.8", + "phpstan/phpstan-phpunit": "^1.1", + "phpstan/phpstan-strict-rules": "^1.3", + "phpunit/phpunit": "^8.5 || ^9.5", + "vimeo/psalm": "^4.25 || ^5.4" + }, + "type": "library", + "autoload": { + "psr-4": { + "Doctrine\\Inflector\\": "lib/Doctrine/Inflector" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" + } + ], + "description": "PHP Doctrine Inflector is a small library that can perform string manipulations with regard to upper/lowercase and singular/plural forms of words.", + "homepage": "https://www.doctrine-project.org/projects/inflector.html", + "keywords": [ + "inflection", + "inflector", + "lowercase", + "manipulation", + "php", + "plural", + "singular", + "strings", + "uppercase", + "words" + ], + "support": { + "issues": "https://github.com/doctrine/inflector/issues", + "source": "https://github.com/doctrine/inflector/tree/2.0.8" + }, + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Finflector", + "type": "tidelift" + } + ], + "time": "2023-06-16T13:40:37+00:00" + }, + { + "name": "doctrine/instantiator", + "version": "2.0.0", + "source": { + "type": "git", + "url": "https://github.com/doctrine/instantiator.git", + "reference": "c6222283fa3f4ac679f8b9ced9a4e23f163e80d0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/instantiator/zipball/c6222283fa3f4ac679f8b9ced9a4e23f163e80d0", + "reference": "c6222283fa3f4ac679f8b9ced9a4e23f163e80d0", + "shasum": "" + }, + "require": { + "php": "^8.1" + }, + "require-dev": { + "doctrine/coding-standard": "^11", + "ext-pdo": "*", + "ext-phar": "*", + "phpbench/phpbench": "^1.2", + "phpstan/phpstan": "^1.9.4", + "phpstan/phpstan-phpunit": "^1.3", + "phpunit/phpunit": "^9.5.27", + "vimeo/psalm": "^5.4" + }, + "type": "library", + "autoload": { + "psr-4": { + "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Marco Pivetta", + "email": "ocramius@gmail.com", + "homepage": "https://ocramius.github.io/" + } + ], + "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors", + "homepage": "https://www.doctrine-project.org/projects/instantiator.html", + "keywords": [ + "constructor", + "instantiate" + ], + "support": { + "issues": "https://github.com/doctrine/instantiator/issues", + "source": "https://github.com/doctrine/instantiator/tree/2.0.0" + }, + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Finstantiator", + "type": "tidelift" + } + ], + "time": "2022-12-30T00:23:10+00:00" + }, + { + "name": "doctrine/lexer", + "version": "2.1.0", + "source": { + "type": "git", + "url": "https://github.com/doctrine/lexer.git", + "reference": "39ab8fcf5a51ce4b85ca97c7a7d033eb12831124" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/lexer/zipball/39ab8fcf5a51ce4b85ca97c7a7d033eb12831124", + "reference": "39ab8fcf5a51ce4b85ca97c7a7d033eb12831124", + "shasum": "" + }, + "require": { + "doctrine/deprecations": "^1.0", + "php": "^7.1 || ^8.0" + }, + "require-dev": { + "doctrine/coding-standard": "^9 || ^10", + "phpstan/phpstan": "^1.3", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", + "psalm/plugin-phpunit": "^0.18.3", + "vimeo/psalm": "^4.11 || ^5.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Doctrine\\Common\\Lexer\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" + } + ], + "description": "PHP Doctrine Lexer parser library that can be used in Top-Down, Recursive Descent Parsers.", + "homepage": "https://www.doctrine-project.org/projects/lexer.html", + "keywords": [ + "annotations", + "docblock", + "lexer", + "parser", + "php" + ], + "support": { + "issues": "https://github.com/doctrine/lexer/issues", + "source": "https://github.com/doctrine/lexer/tree/2.1.0" + }, + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Flexer", + "type": "tidelift" + } + ], + "time": "2022-12-14T08:49:07+00:00" + }, + { + "name": "doctrine/migrations", + "version": "3.6.0", + "source": { + "type": "git", + "url": "https://github.com/doctrine/migrations.git", + "reference": "e542ad8bcd606d7a18d0875babb8a6d963c9c059" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/migrations/zipball/e542ad8bcd606d7a18d0875babb8a6d963c9c059", + "reference": "e542ad8bcd606d7a18d0875babb8a6d963c9c059", + "shasum": "" + }, + "require": { + "composer-runtime-api": "^2", + "doctrine/dbal": "^3.5.1", + "doctrine/deprecations": "^0.5.3 || ^1", + "doctrine/event-manager": "^1.2 || ^2.0", + "php": "^8.1", + "psr/log": "^1.1.3 || ^2 || ^3", + "symfony/console": "^4.4.16 || ^5.4 || ^6.0", + "symfony/stopwatch": "^4.4 || ^5.4 || ^6.0", + "symfony/var-exporter": "^6.2" + }, + "conflict": { + "doctrine/orm": "<2.12" + }, + "require-dev": { + "doctrine/coding-standard": "^9", + "doctrine/orm": "^2.13", + "doctrine/persistence": "^2 || ^3", + "doctrine/sql-formatter": "^1.0", + "ext-pdo_sqlite": "*", + "phpstan/phpstan": "^1.5", + "phpstan/phpstan-deprecation-rules": "^1", + "phpstan/phpstan-phpunit": "^1.1", + "phpstan/phpstan-strict-rules": "^1.1", + "phpstan/phpstan-symfony": "^1.1", + "phpunit/phpunit": "^9.5.24", + "symfony/cache": "^4.4 || ^5.4 || ^6.0", + "symfony/process": "^4.4 || ^5.4 || ^6.0", + "symfony/yaml": "^4.4 || ^5.4 || ^6.0" + }, + "suggest": { + "doctrine/sql-formatter": "Allows to generate formatted SQL with the diff command.", + "symfony/yaml": "Allows the use of yaml for migration configuration files." + }, + "bin": [ + "bin/doctrine-migrations" + ], + "type": "library", + "autoload": { + "psr-4": { + "Doctrine\\Migrations\\": "lib/Doctrine/Migrations" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com" + }, + { + "name": "Michael Simonson", + "email": "contact@mikesimonson.com" + } + ], + "description": "PHP Doctrine Migrations project offer additional functionality on top of the database abstraction layer (DBAL) for versioning your database schema and easily deploying changes to it. It is a very easy to use and a powerful tool.", + "homepage": "https://www.doctrine-project.org/projects/migrations.html", + "keywords": [ + "database", + "dbal", + "migrations" + ], + "support": { + "issues": "https://github.com/doctrine/migrations/issues", + "source": "https://github.com/doctrine/migrations/tree/3.6.0" + }, + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fmigrations", + "type": "tidelift" + } + ], + "time": "2023-02-15T18:49:46+00:00" + }, + { + "name": "doctrine/orm", + "version": "2.16.2", + "source": { + "type": "git", + "url": "https://github.com/doctrine/orm.git", + "reference": "17500f56eaa930f5cd14d765bc2cd851c7d37cc0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/orm/zipball/17500f56eaa930f5cd14d765bc2cd851c7d37cc0", + "reference": "17500f56eaa930f5cd14d765bc2cd851c7d37cc0", + "shasum": "" + }, + "require": { + "composer-runtime-api": "^2", + "doctrine/cache": "^1.12.1 || ^2.1.1", + "doctrine/collections": "^1.5 || ^2.1", + "doctrine/common": "^3.0.3", + "doctrine/dbal": "^2.13.1 || ^3.2", + "doctrine/deprecations": "^0.5.3 || ^1", + "doctrine/event-manager": "^1.2 || ^2", + "doctrine/inflector": "^1.4 || ^2.0", + "doctrine/instantiator": "^1.3 || ^2", + "doctrine/lexer": "^2", + "doctrine/persistence": "^2.4 || ^3", + "ext-ctype": "*", + "php": "^7.1 || ^8.0", + "psr/cache": "^1 || ^2 || ^3", + "symfony/console": "^4.2 || ^5.0 || ^6.0", + "symfony/polyfill-php72": "^1.23", + "symfony/polyfill-php80": "^1.16" + }, + "conflict": { + "doctrine/annotations": "<1.13 || >= 3.0" + }, + "require-dev": { + "doctrine/annotations": "^1.13 || ^2", + "doctrine/coding-standard": "^9.0.2 || ^12.0", + "phpbench/phpbench": "^0.16.10 || ^1.0", + "phpstan/phpstan": "~1.4.10 || 1.10.28", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.6", + "psr/log": "^1 || ^2 || ^3", + "squizlabs/php_codesniffer": "3.7.2", + "symfony/cache": "^4.4 || ^5.4 || ^6.0", + "symfony/var-exporter": "^4.4 || ^5.4 || ^6.2", + "symfony/yaml": "^3.4 || ^4.0 || ^5.0 || ^6.0", + "vimeo/psalm": "4.30.0 || 5.14.1" + }, + "suggest": { + "ext-dom": "Provides support for XSD validation for XML mapping files", + "symfony/cache": "Provides cache support for Setup Tool with doctrine/cache 2.0", + "symfony/yaml": "If you want to use YAML Metadata Mapping Driver" + }, + "bin": [ + "bin/doctrine" + ], + "type": "library", + "autoload": { + "psr-4": { + "Doctrine\\ORM\\": "lib/Doctrine/ORM" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com" + }, + { + "name": "Marco Pivetta", + "email": "ocramius@gmail.com" + } + ], + "description": "Object-Relational-Mapper for PHP", + "homepage": "https://www.doctrine-project.org/projects/orm.html", + "keywords": [ + "database", + "orm" + ], + "support": { + "issues": "https://github.com/doctrine/orm/issues", + "source": "https://github.com/doctrine/orm/tree/2.16.2" + }, + "time": "2023-08-27T18:21:56+00:00" + }, + { + "name": "doctrine/persistence", + "version": "3.2.0", + "source": { + "type": "git", + "url": "https://github.com/doctrine/persistence.git", + "reference": "63fee8c33bef740db6730eb2a750cd3da6495603" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/persistence/zipball/63fee8c33bef740db6730eb2a750cd3da6495603", + "reference": "63fee8c33bef740db6730eb2a750cd3da6495603", + "shasum": "" + }, + "require": { + "doctrine/event-manager": "^1 || ^2", + "php": "^7.2 || ^8.0", + "psr/cache": "^1.0 || ^2.0 || ^3.0" + }, + "conflict": { + "doctrine/common": "<2.10" + }, + "require-dev": { + "composer/package-versions-deprecated": "^1.11", + "doctrine/coding-standard": "^11", + "doctrine/common": "^3.0", + "phpstan/phpstan": "1.9.4", + "phpstan/phpstan-phpunit": "^1", + "phpstan/phpstan-strict-rules": "^1.1", + "phpunit/phpunit": "^8.5 || ^9.5", + "symfony/cache": "^4.4 || ^5.4 || ^6.0", + "vimeo/psalm": "4.30.0 || 5.3.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Doctrine\\Persistence\\": "src/Persistence" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" + }, + { + "name": "Marco Pivetta", + "email": "ocramius@gmail.com" + } + ], + "description": "The Doctrine Persistence project is a set of shared interfaces and functionality that the different Doctrine object mappers share.", + "homepage": "https://www.doctrine-project.org/projects/persistence.html", + "keywords": [ + "mapper", + "object", + "odm", + "orm", + "persistence" + ], + "support": { + "issues": "https://github.com/doctrine/persistence/issues", + "source": "https://github.com/doctrine/persistence/tree/3.2.0" + }, + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fpersistence", + "type": "tidelift" + } + ], + "time": "2023-05-17T18:32:04+00:00" + }, + { + "name": "doctrine/sql-formatter", + "version": "1.1.3", + "source": { + "type": "git", + "url": "https://github.com/doctrine/sql-formatter.git", + "reference": "25a06c7bf4c6b8218f47928654252863ffc890a5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/sql-formatter/zipball/25a06c7bf4c6b8218f47928654252863ffc890a5", + "reference": "25a06c7bf4c6b8218f47928654252863ffc890a5", + "shasum": "" + }, + "require": { + "php": "^7.1 || ^8.0" + }, + "require-dev": { + "bamarni/composer-bin-plugin": "^1.4" + }, + "bin": [ + "bin/sql-formatter" + ], + "type": "library", + "autoload": { + "psr-4": { + "Doctrine\\SqlFormatter\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jeremy Dorn", + "email": "jeremy@jeremydorn.com", + "homepage": "https://jeremydorn.com/" + } + ], + "description": "a PHP SQL highlighting library", + "homepage": "https://github.com/doctrine/sql-formatter/", + "keywords": [ + "highlight", + "sql" + ], + "support": { + "issues": "https://github.com/doctrine/sql-formatter/issues", + "source": "https://github.com/doctrine/sql-formatter/tree/1.1.3" + }, + "time": "2022-05-23T21:33:49+00:00" + }, + { + "name": "egulias/email-validator", + "version": "4.0.2", + "source": { + "type": "git", + "url": "https://github.com/egulias/EmailValidator.git", + "reference": "ebaaf5be6c0286928352e054f2d5125608e5405e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/egulias/EmailValidator/zipball/ebaaf5be6c0286928352e054f2d5125608e5405e", + "reference": "ebaaf5be6c0286928352e054f2d5125608e5405e", + "shasum": "" + }, + "require": { + "doctrine/lexer": "^2.0 || ^3.0", + "php": ">=8.1", + "symfony/polyfill-intl-idn": "^1.26" + }, + "require-dev": { + "phpunit/phpunit": "^10.2", + "vimeo/psalm": "^5.12" + }, + "suggest": { + "ext-intl": "PHP Internationalization Libraries are required to use the SpoofChecking validation" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Egulias\\EmailValidator\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Eduardo Gulias Davis" + } + ], + "description": "A library for validating emails against several RFCs", + "homepage": "https://github.com/egulias/EmailValidator", + "keywords": [ + "email", + "emailvalidation", + "emailvalidator", + "validation", + "validator" + ], + "support": { + "issues": "https://github.com/egulias/EmailValidator/issues", + "source": "https://github.com/egulias/EmailValidator/tree/4.0.2" + }, + "funding": [ + { + "url": "https://github.com/egulias", + "type": "github" + } + ], + "time": "2023-10-06T06:47:41+00:00" + }, + { + "name": "monolog/monolog", + "version": "3.5.0", + "source": { + "type": "git", + "url": "https://github.com/Seldaek/monolog.git", + "reference": "c915e2634718dbc8a4a15c61b0e62e7a44e14448" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Seldaek/monolog/zipball/c915e2634718dbc8a4a15c61b0e62e7a44e14448", + "reference": "c915e2634718dbc8a4a15c61b0e62e7a44e14448", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "psr/log": "^2.0 || ^3.0" + }, + "provide": { + "psr/log-implementation": "3.0.0" + }, + "require-dev": { + "aws/aws-sdk-php": "^3.0", + "doctrine/couchdb": "~1.0@dev", + "elasticsearch/elasticsearch": "^7 || ^8", + "ext-json": "*", + "graylog2/gelf-php": "^1.4.2 || ^2.0", + "guzzlehttp/guzzle": "^7.4.5", + "guzzlehttp/psr7": "^2.2", + "mongodb/mongodb": "^1.8", + "php-amqplib/php-amqplib": "~2.4 || ^3", + "phpstan/phpstan": "^1.9", + "phpstan/phpstan-deprecation-rules": "^1.0", + "phpstan/phpstan-strict-rules": "^1.4", + "phpunit/phpunit": "^10.1", + "predis/predis": "^1.1 || ^2", + "ruflin/elastica": "^7", + "symfony/mailer": "^5.4 || ^6", + "symfony/mime": "^5.4 || ^6" + }, + "suggest": { + "aws/aws-sdk-php": "Allow sending log messages to AWS services like DynamoDB", + "doctrine/couchdb": "Allow sending log messages to a CouchDB server", + "elasticsearch/elasticsearch": "Allow sending log messages to an Elasticsearch server via official client", + "ext-amqp": "Allow sending log messages to an AMQP server (1.0+ required)", + "ext-curl": "Required to send log messages using the IFTTTHandler, the LogglyHandler, the SendGridHandler, the SlackWebhookHandler or the TelegramBotHandler", + "ext-mbstring": "Allow to work properly with unicode symbols", + "ext-mongodb": "Allow sending log messages to a MongoDB server (via driver)", + "ext-openssl": "Required to send log messages using SSL", + "ext-sockets": "Allow sending log messages to a Syslog server (via UDP driver)", + "graylog2/gelf-php": "Allow sending log messages to a GrayLog2 server", + "mongodb/mongodb": "Allow sending log messages to a MongoDB server (via library)", + "php-amqplib/php-amqplib": "Allow sending log messages to an AMQP server using php-amqplib", + "rollbar/rollbar": "Allow sending log messages to Rollbar", + "ruflin/elastica": "Allow sending log messages to an Elastic Search server" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.x-dev" + } + }, + "autoload": { + "psr-4": { + "Monolog\\": "src/Monolog" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "https://seld.be" + } + ], + "description": "Sends your logs to files, sockets, inboxes, databases and various web services", + "homepage": "https://github.com/Seldaek/monolog", + "keywords": [ + "log", + "logging", + "psr-3" + ], + "support": { + "issues": "https://github.com/Seldaek/monolog/issues", + "source": "https://github.com/Seldaek/monolog/tree/3.5.0" + }, + "funding": [ + { + "url": "https://github.com/Seldaek", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/monolog/monolog", + "type": "tidelift" + } + ], + "time": "2023-10-27T15:32:31+00:00" + }, + { + "name": "phpdocumentor/reflection-common", + "version": "2.2.0", + "source": { + "type": "git", + "url": "https://github.com/phpDocumentor/ReflectionCommon.git", + "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/1d01c49d4ed62f25aa84a747ad35d5a16924662b", + "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-2.x": "2.x-dev" + } + }, + "autoload": { + "psr-4": { + "phpDocumentor\\Reflection\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jaap van Otterdijk", + "email": "opensource@ijaap.nl" + } + ], + "description": "Common reflection classes used by phpdocumentor to reflect the code structure", + "homepage": "http://www.phpdoc.org", + "keywords": [ + "FQSEN", + "phpDocumentor", + "phpdoc", + "reflection", + "static analysis" + ], + "support": { + "issues": "https://github.com/phpDocumentor/ReflectionCommon/issues", + "source": "https://github.com/phpDocumentor/ReflectionCommon/tree/2.x" + }, + "time": "2020-06-27T09:03:43+00:00" + }, + { + "name": "phpdocumentor/reflection-docblock", + "version": "5.3.0", + "source": { + "type": "git", + "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", + "reference": "622548b623e81ca6d78b721c5e029f4ce664f170" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/622548b623e81ca6d78b721c5e029f4ce664f170", + "reference": "622548b623e81ca6d78b721c5e029f4ce664f170", + "shasum": "" + }, + "require": { + "ext-filter": "*", + "php": "^7.2 || ^8.0", + "phpdocumentor/reflection-common": "^2.2", + "phpdocumentor/type-resolver": "^1.3", + "webmozart/assert": "^1.9.1" + }, + "require-dev": { + "mockery/mockery": "~1.3.2", + "psalm/phar": "^4.8" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.x-dev" + } + }, + "autoload": { + "psr-4": { + "phpDocumentor\\Reflection\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Mike van Riel", + "email": "me@mikevanriel.com" + }, + { + "name": "Jaap van Otterdijk", + "email": "account@ijaap.nl" + } + ], + "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", + "support": { + "issues": "https://github.com/phpDocumentor/ReflectionDocBlock/issues", + "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/5.3.0" + }, + "time": "2021-10-19T17:43:47+00:00" + }, + { + "name": "phpdocumentor/type-resolver", + "version": "1.7.3", + "source": { + "type": "git", + "url": "https://github.com/phpDocumentor/TypeResolver.git", + "reference": "3219c6ee25c9ea71e3d9bbaf39c67c9ebd499419" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/3219c6ee25c9ea71e3d9bbaf39c67c9ebd499419", + "reference": "3219c6ee25c9ea71e3d9bbaf39c67c9ebd499419", + "shasum": "" + }, + "require": { + "doctrine/deprecations": "^1.0", + "php": "^7.4 || ^8.0", + "phpdocumentor/reflection-common": "^2.0", + "phpstan/phpdoc-parser": "^1.13" + }, + "require-dev": { + "ext-tokenizer": "*", + "phpbench/phpbench": "^1.2", + "phpstan/extension-installer": "^1.1", + "phpstan/phpstan": "^1.8", + "phpstan/phpstan-phpunit": "^1.1", + "phpunit/phpunit": "^9.5", + "rector/rector": "^0.13.9", + "vimeo/psalm": "^4.25" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-1.x": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "phpDocumentor\\Reflection\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Mike van Riel", + "email": "me@mikevanriel.com" + } + ], + "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names", + "support": { + "issues": "https://github.com/phpDocumentor/TypeResolver/issues", + "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.7.3" + }, + "time": "2023-08-12T11:01:26+00:00" + }, + { + "name": "phpstan/phpdoc-parser", + "version": "1.24.2", + "source": { + "type": "git", + "url": "https://github.com/phpstan/phpdoc-parser.git", + "reference": "bcad8d995980440892759db0c32acae7c8e79442" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/bcad8d995980440892759db0c32acae7c8e79442", + "reference": "bcad8d995980440892759db0c32acae7c8e79442", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0" + }, + "require-dev": { + "doctrine/annotations": "^2.0", + "nikic/php-parser": "^4.15", + "php-parallel-lint/php-parallel-lint": "^1.2", + "phpstan/extension-installer": "^1.0", + "phpstan/phpstan": "^1.5", + "phpstan/phpstan-phpunit": "^1.1", + "phpstan/phpstan-strict-rules": "^1.0", + "phpunit/phpunit": "^9.5", + "symfony/process": "^5.2" + }, + "type": "library", + "autoload": { + "psr-4": { + "PHPStan\\PhpDocParser\\": [ + "src/" + ] + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "PHPDoc parser with support for nullable, intersection and generic types", + "support": { + "issues": "https://github.com/phpstan/phpdoc-parser/issues", + "source": "https://github.com/phpstan/phpdoc-parser/tree/1.24.2" + }, + "time": "2023-09-26T12:28:12+00:00" + }, + { + "name": "psr/cache", + "version": "3.0.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/cache.git", + "reference": "aa5030cfa5405eccfdcb1083ce040c2cb8d253bf" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/cache/zipball/aa5030cfa5405eccfdcb1083ce040c2cb8d253bf", + "reference": "aa5030cfa5405eccfdcb1083ce040c2cb8d253bf", + "shasum": "" + }, + "require": { + "php": ">=8.0.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Cache\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common interface for caching libraries", + "keywords": [ + "cache", + "psr", + "psr-6" + ], + "support": { + "source": "https://github.com/php-fig/cache/tree/3.0.0" + }, + "time": "2021-02-03T23:26:27+00:00" + }, + { + "name": "psr/clock", + "version": "1.0.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/clock.git", + "reference": "e41a24703d4560fd0acb709162f73b8adfc3aa0d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/clock/zipball/e41a24703d4560fd0acb709162f73b8adfc3aa0d", + "reference": "e41a24703d4560fd0acb709162f73b8adfc3aa0d", + "shasum": "" + }, + "require": { + "php": "^7.0 || ^8.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Psr\\Clock\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common interface for reading the clock.", + "homepage": "https://github.com/php-fig/clock", + "keywords": [ + "clock", + "now", + "psr", + "psr-20", + "time" + ], + "support": { + "issues": "https://github.com/php-fig/clock/issues", + "source": "https://github.com/php-fig/clock/tree/1.0.0" + }, + "time": "2022-11-25T14:36:26+00:00" + }, + { + "name": "psr/container", + "version": "2.0.2", + "source": { + "type": "git", + "url": "https://github.com/php-fig/container.git", + "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/container/zipball/c71ecc56dfe541dbd90c5360474fbc405f8d5963", + "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963", + "shasum": "" + }, + "require": { + "php": ">=7.4.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Container\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common Container Interface (PHP FIG PSR-11)", + "homepage": "https://github.com/php-fig/container", + "keywords": [ + "PSR-11", + "container", + "container-interface", + "container-interop", + "psr" + ], + "support": { + "issues": "https://github.com/php-fig/container/issues", + "source": "https://github.com/php-fig/container/tree/2.0.2" + }, + "time": "2021-11-05T16:47:00+00:00" + }, + { + "name": "psr/event-dispatcher", + "version": "1.0.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/event-dispatcher.git", + "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/event-dispatcher/zipball/dbefd12671e8a14ec7f180cab83036ed26714bb0", + "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0", + "shasum": "" + }, + "require": { + "php": ">=7.2.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\EventDispatcher\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Standard interfaces for event handling.", + "keywords": [ + "events", + "psr", + "psr-14" + ], + "support": { + "issues": "https://github.com/php-fig/event-dispatcher/issues", + "source": "https://github.com/php-fig/event-dispatcher/tree/1.0.0" + }, + "time": "2019-01-08T18:20:26+00:00" + }, + { + "name": "psr/link", + "version": "2.0.1", + "source": { + "type": "git", + "url": "https://github.com/php-fig/link.git", + "reference": "84b159194ecfd7eaa472280213976e96415433f7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/link/zipball/84b159194ecfd7eaa472280213976e96415433f7", + "reference": "84b159194ecfd7eaa472280213976e96415433f7", + "shasum": "" + }, + "require": { + "php": ">=8.0.0" + }, + "suggest": { + "fig/link-util": "Provides some useful PSR-13 utilities" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Link\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common interfaces for HTTP links", + "homepage": "https://github.com/php-fig/link", + "keywords": [ + "http", + "http-link", + "link", + "psr", + "psr-13", + "rest" + ], + "support": { + "source": "https://github.com/php-fig/link/tree/2.0.1" + }, + "time": "2021-03-11T23:00:27+00:00" + }, + { + "name": "psr/log", + "version": "3.0.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/log.git", + "reference": "fe5ea303b0887d5caefd3d431c3e61ad47037001" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/log/zipball/fe5ea303b0887d5caefd3d431c3e61ad47037001", + "reference": "fe5ea303b0887d5caefd3d431c3e61ad47037001", + "shasum": "" + }, + "require": { + "php": ">=8.0.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Log\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common interface for logging libraries", + "homepage": "https://github.com/php-fig/log", + "keywords": [ + "log", + "psr", + "psr-3" + ], + "support": { + "source": "https://github.com/php-fig/log/tree/3.0.0" + }, + "time": "2021-07-14T16:46:02+00:00" + }, + { + "name": "snc/redis-bundle", + "version": "4.7.0", + "source": { + "type": "git", + "url": "https://github.com/snc/SncRedisBundle.git", + "reference": "ff9c4e6f8a8292f2549f07c5c303d97d8e19374d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/snc/SncRedisBundle/zipball/ff9c4e6f8a8292f2549f07c5c303d97d8e19374d", + "reference": "ff9c4e6f8a8292f2549f07c5c303d97d8e19374d", + "shasum": "" + }, + "require": { + "php": "^7.4 || ^8.0", + "symfony/deprecation-contracts": "^2 || ^3", + "symfony/framework-bundle": "^4.4 || ^5.3 || ^6.0 || ^7.0", + "symfony/http-foundation": "^4.4 || ^5.3 || ^6.0 || ^7.0", + "symfony/service-contracts": ">=1.0", + "symfony/var-dumper": "^4.4 || ^5.3 || ^6.0 || ^7.0" + }, + "conflict": { + "ext-redis": "<5.3", + "predis/predis": "<2.0" + }, + "require-dev": { + "doctrine/annotations": "^1.13", + "doctrine/coding-standard": "^10.0", + "ext-pdo_sqlite": "*", + "ext-redis": "*", + "friendsofphp/proxy-manager-lts": "^1.0.6", + "monolog/monolog": "*", + "phpunit/phpunit": "^8.5.32 || ^9.5.28", + "predis/predis": "^2.0", + "symfony/browser-kit": "^4.4 || ^5.3 || ^6.0 || ^7.0", + "symfony/cache": "^4.4 || ^5.3 || ^6.0 || ^7.0", + "symfony/console": "^4.4 || ^5.3 || ^6.0 || ^7.0", + "symfony/dom-crawler": "^4.4 || ^5.3 || ^6.0 || ^7.0", + "symfony/filesystem": "^4.4 || ^5.3 || ^6.0 || ^7.0", + "symfony/phpunit-bridge": "^6.0 || ^7.0", + "symfony/profiler-pack": "^1.0", + "symfony/stopwatch": "^4.4 || ^5.3 || ^6.0 || ^7.0", + "symfony/twig-bundle": "^4.4 || ^5.3 || ^6.0 || ^7.0", + "symfony/yaml": "^4.4 || ^5.3 || ^6.0 || ^7.0", + "vimeo/psalm": "^5.2" + }, + "suggest": { + "monolog/monolog": "If you want to use the monolog redis handler.", + "predis/predis": "If you want to use predis.", + "symfony/console": "If you want to use commands to interact with the redis database" + }, + "type": "symfony-bundle", + "extra": { + "branch-alias": { + "dev-master": "3.x-dev" + } + }, + "autoload": { + "psr-4": { + "Snc\\RedisBundle\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Henrik Westphal", + "email": "henrik.westphal@gmail.com" + }, + { + "name": "Community contributors", + "homepage": "https://github.com/snc/SncRedisBundle/contributors" + } + ], + "description": "A Redis bundle for Symfony", + "homepage": "https://github.com/snc/SncRedisBundle", + "keywords": [ + "nosql", + "redis", + "symfony" + ], + "support": { + "issues": "https://github.com/snc/SncRedisBundle/issues", + "source": "https://github.com/snc/SncRedisBundle/tree/4.7.0" + }, + "time": "2023-11-01T14:51:01+00:00" + }, + { + "name": "symfony/asset", + "version": "v6.3.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/asset.git", + "reference": "b77a4cc8e266b7e0db688de740f9ee7253aa411c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/asset/zipball/b77a4cc8e266b7e0db688de740f9ee7253aa411c", + "reference": "b77a4cc8e266b7e0db688de740f9ee7253aa411c", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "conflict": { + "symfony/http-foundation": "<5.4" + }, + "require-dev": { + "symfony/http-client": "^5.4|^6.0", + "symfony/http-foundation": "^5.4|^6.0", + "symfony/http-kernel": "^5.4|^6.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Asset\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Manages URL generation and versioning of web assets such as CSS stylesheets, JavaScript files and image files", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/asset/tree/v6.3.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-04-21T14:41:17+00:00" + }, + { + "name": "symfony/cache", + "version": "v6.3.6", + "source": { + "type": "git", + "url": "https://github.com/symfony/cache.git", + "reference": "84aff8d948d6292d2b5a01ac622760be44dddc72" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/cache/zipball/84aff8d948d6292d2b5a01ac622760be44dddc72", + "reference": "84aff8d948d6292d2b5a01ac622760be44dddc72", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "psr/cache": "^2.0|^3.0", + "psr/log": "^1.1|^2|^3", + "symfony/cache-contracts": "^2.5|^3", + "symfony/service-contracts": "^2.5|^3", + "symfony/var-exporter": "^6.3.6" + }, + "conflict": { + "doctrine/dbal": "<2.13.1", + "symfony/dependency-injection": "<5.4", + "symfony/http-kernel": "<5.4", + "symfony/var-dumper": "<5.4" + }, + "provide": { + "psr/cache-implementation": "2.0|3.0", + "psr/simple-cache-implementation": "1.0|2.0|3.0", + "symfony/cache-implementation": "1.1|2.0|3.0" + }, + "require-dev": { + "cache/integration-tests": "dev-master", + "doctrine/dbal": "^2.13.1|^3|^4", + "predis/predis": "^1.1|^2.0", + "psr/simple-cache": "^1.0|^2.0|^3.0", + "symfony/config": "^5.4|^6.0", + "symfony/dependency-injection": "^5.4|^6.0", + "symfony/filesystem": "^5.4|^6.0", + "symfony/http-kernel": "^5.4|^6.0", + "symfony/messenger": "^5.4|^6.0", + "symfony/var-dumper": "^5.4|^6.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Cache\\": "" + }, + "classmap": [ + "Traits/ValueWrapper.php" + ], + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides extended PSR-6, PSR-16 (and tags) implementations", + "homepage": "https://symfony.com", + "keywords": [ + "caching", + "psr6" + ], + "support": { + "source": "https://github.com/symfony/cache/tree/v6.3.6" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-10-17T14:44:58+00:00" + }, + { + "name": "symfony/cache-contracts", + "version": "v3.3.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/cache-contracts.git", + "reference": "ad945640ccc0ae6e208bcea7d7de4b39b569896b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/cache-contracts/zipball/ad945640ccc0ae6e208bcea7d7de4b39b569896b", + "reference": "ad945640ccc0ae6e208bcea7d7de4b39b569896b", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "psr/cache": "^3.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.4-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\Cache\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Generic abstractions related to caching", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "support": { + "source": "https://github.com/symfony/cache-contracts/tree/v3.3.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-05-23T14:45:45+00:00" + }, + { + "name": "symfony/clock", + "version": "v6.3.4", + "source": { + "type": "git", + "url": "https://github.com/symfony/clock.git", + "reference": "a74086d3db70d0f06ffd84480daa556248706e98" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/clock/zipball/a74086d3db70d0f06ffd84480daa556248706e98", + "reference": "a74086d3db70d0f06ffd84480daa556248706e98", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "psr/clock": "^1.0" + }, + "provide": { + "psr/clock-implementation": "1.0" + }, + "type": "library", + "autoload": { + "files": [ + "Resources/now.php" + ], + "psr-4": { + "Symfony\\Component\\Clock\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Decouples applications from the system clock", + "homepage": "https://symfony.com", + "keywords": [ + "clock", + "psr20", + "time" + ], + "support": { + "source": "https://github.com/symfony/clock/tree/v6.3.4" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-07-31T11:35:03+00:00" + }, + { + "name": "symfony/config", + "version": "v6.3.2", + "source": { + "type": "git", + "url": "https://github.com/symfony/config.git", + "reference": "b47ca238b03e7b0d7880ffd1cf06e8d637ca1467" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/config/zipball/b47ca238b03e7b0d7880ffd1cf06e8d637ca1467", + "reference": "b47ca238b03e7b0d7880ffd1cf06e8d637ca1467", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/filesystem": "^5.4|^6.0", + "symfony/polyfill-ctype": "~1.8" + }, + "conflict": { + "symfony/finder": "<5.4", + "symfony/service-contracts": "<2.5" + }, + "require-dev": { + "symfony/event-dispatcher": "^5.4|^6.0", + "symfony/finder": "^5.4|^6.0", + "symfony/messenger": "^5.4|^6.0", + "symfony/service-contracts": "^2.5|^3", + "symfony/yaml": "^5.4|^6.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Config\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Helps you find, load, combine, autofill and validate configuration values of any kind", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/config/tree/v6.3.2" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-07-19T20:22:16+00:00" + }, + { + "name": "symfony/console", + "version": "v6.3.4", + "source": { + "type": "git", + "url": "https://github.com/symfony/console.git", + "reference": "eca495f2ee845130855ddf1cf18460c38966c8b6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/console/zipball/eca495f2ee845130855ddf1cf18460c38966c8b6", + "reference": "eca495f2ee845130855ddf1cf18460c38966c8b6", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/polyfill-mbstring": "~1.0", + "symfony/service-contracts": "^2.5|^3", + "symfony/string": "^5.4|^6.0" + }, + "conflict": { + "symfony/dependency-injection": "<5.4", + "symfony/dotenv": "<5.4", + "symfony/event-dispatcher": "<5.4", + "symfony/lock": "<5.4", + "symfony/process": "<5.4" + }, + "provide": { + "psr/log-implementation": "1.0|2.0|3.0" + }, + "require-dev": { + "psr/log": "^1|^2|^3", + "symfony/config": "^5.4|^6.0", + "symfony/dependency-injection": "^5.4|^6.0", + "symfony/event-dispatcher": "^5.4|^6.0", + "symfony/lock": "^5.4|^6.0", + "symfony/process": "^5.4|^6.0", + "symfony/var-dumper": "^5.4|^6.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Console\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Eases the creation of beautiful and testable command line interfaces", + "homepage": "https://symfony.com", + "keywords": [ + "cli", + "command-line", + "console", + "terminal" + ], + "support": { + "source": "https://github.com/symfony/console/tree/v6.3.4" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-08-16T10:10:12+00:00" + }, + { + "name": "symfony/dependency-injection", + "version": "v6.3.5", + "source": { + "type": "git", + "url": "https://github.com/symfony/dependency-injection.git", + "reference": "2ed62b3bf98346e1f45529a7b6be2196739bb993" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/2ed62b3bf98346e1f45529a7b6be2196739bb993", + "reference": "2ed62b3bf98346e1f45529a7b6be2196739bb993", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "psr/container": "^1.1|^2.0", + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/service-contracts": "^2.5|^3.0", + "symfony/var-exporter": "^6.2.10" + }, + "conflict": { + "ext-psr": "<1.1|>=2", + "symfony/config": "<6.1", + "symfony/finder": "<5.4", + "symfony/proxy-manager-bridge": "<6.3", + "symfony/yaml": "<5.4" + }, + "provide": { + "psr/container-implementation": "1.1|2.0", + "symfony/service-implementation": "1.1|2.0|3.0" + }, + "require-dev": { + "symfony/config": "^6.1", + "symfony/expression-language": "^5.4|^6.0", + "symfony/yaml": "^5.4|^6.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\DependencyInjection\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Allows you to standardize and centralize the way objects are constructed in your application", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/dependency-injection/tree/v6.3.5" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-09-25T16:46:40+00:00" + }, + { + "name": "symfony/deprecation-contracts", + "version": "v3.3.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/deprecation-contracts.git", + "reference": "7c3aff79d10325257a001fcf92d991f24fc967cf" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/7c3aff79d10325257a001fcf92d991f24fc967cf", + "reference": "7c3aff79d10325257a001fcf92d991f24fc967cf", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.4-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, + "autoload": { + "files": [ + "function.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "A generic function and convention to trigger deprecation notices", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/deprecation-contracts/tree/v3.3.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-05-23T14:45:45+00:00" + }, + { + "name": "symfony/doctrine-bridge", + "version": "v6.3.7", + "source": { + "type": "git", + "url": "https://github.com/symfony/doctrine-bridge.git", + "reference": "c8af292f733cc28149485639177c5f2b67dff200" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/doctrine-bridge/zipball/c8af292f733cc28149485639177c5f2b67dff200", + "reference": "c8af292f733cc28149485639177c5f2b67dff200", + "shasum": "" + }, + "require": { + "doctrine/event-manager": "^1.2|^2", + "doctrine/persistence": "^2|^3", + "php": ">=8.1", + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-mbstring": "~1.0", + "symfony/service-contracts": "^2.5|^3" + }, + "conflict": { + "doctrine/annotations": "<1.13.1", + "doctrine/dbal": "<2.13.1", + "doctrine/lexer": "<1.1", + "doctrine/orm": "<2.12", + "symfony/cache": "<5.4", + "symfony/dependency-injection": "<6.2", + "symfony/form": "<5.4.21|>=6,<6.2.7", + "symfony/http-foundation": "<6.3", + "symfony/http-kernel": "<6.2", + "symfony/lock": "<6.3", + "symfony/messenger": "<5.4", + "symfony/property-info": "<5.4", + "symfony/security-bundle": "<5.4", + "symfony/security-core": "<6.0", + "symfony/validator": "<5.4.25|>=6,<6.2.12|>=6.3,<6.3.1" + }, + "require-dev": { + "doctrine/annotations": "^1.13.1|^2", + "doctrine/collections": "^1.0|^2.0", + "doctrine/data-fixtures": "^1.1", + "doctrine/dbal": "^2.13.1|^3|^4", + "doctrine/orm": "^2.12|^3", + "psr/log": "^1|^2|^3", + "symfony/cache": "^5.4|^6.0", + "symfony/config": "^5.4|^6.0", + "symfony/dependency-injection": "^6.2", + "symfony/doctrine-messenger": "^5.4|^6.0", + "symfony/expression-language": "^5.4|^6.0", + "symfony/form": "^5.4.21|^6.2.7", + "symfony/http-kernel": "^6.3", + "symfony/lock": "^6.3", + "symfony/messenger": "^5.4|^6.0", + "symfony/property-access": "^5.4|^6.0", + "symfony/property-info": "^5.4|^6.0", + "symfony/proxy-manager-bridge": "^5.4|^6.0", + "symfony/security-core": "^6.0", + "symfony/stopwatch": "^5.4|^6.0", + "symfony/translation": "^5.4|^6.0", + "symfony/uid": "^5.4|^6.0", + "symfony/validator": "^5.4.25|~6.2.12|^6.3.1", + "symfony/var-dumper": "^5.4|^6.0" + }, + "type": "symfony-bridge", + "autoload": { + "psr-4": { + "Symfony\\Bridge\\Doctrine\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides integration for Doctrine with various Symfony components", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/doctrine-bridge/tree/v6.3.7" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-10-28T23:11:45+00:00" + }, + { + "name": "symfony/doctrine-messenger", + "version": "v6.3.7", + "source": { + "type": "git", + "url": "https://github.com/symfony/doctrine-messenger.git", + "reference": "b8dab85f66ffd5e4275eaf7558f9db8f4586dd41" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/doctrine-messenger/zipball/b8dab85f66ffd5e4275eaf7558f9db8f4586dd41", + "reference": "b8dab85f66ffd5e4275eaf7558f9db8f4586dd41", + "shasum": "" + }, + "require": { + "doctrine/dbal": "^2.13|^3|^4", + "php": ">=8.1", + "symfony/messenger": "^5.4|^6.0", + "symfony/service-contracts": "^2.5|^3" + }, + "conflict": { + "doctrine/persistence": "<1.3" + }, + "require-dev": { + "doctrine/persistence": "^1.3|^2|^3", + "symfony/property-access": "^5.4|^6.0", + "symfony/serializer": "^5.4|^6.0" + }, + "type": "symfony-messenger-bridge", + "autoload": { + "psr-4": { + "Symfony\\Component\\Messenger\\Bridge\\Doctrine\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Doctrine Messenger Bridge", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/doctrine-messenger/tree/v6.3.7" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-10-26T18:15:14+00:00" + }, + { + "name": "symfony/dotenv", + "version": "v6.3.7", + "source": { + "type": "git", + "url": "https://github.com/symfony/dotenv.git", + "reference": "7dfbe2976f3c1b7cfa8fac2212a050bfa9bd7d9e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/dotenv/zipball/7dfbe2976f3c1b7cfa8fac2212a050bfa9bd7d9e", + "reference": "7dfbe2976f3c1b7cfa8fac2212a050bfa9bd7d9e", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "conflict": { + "symfony/console": "<5.4", + "symfony/process": "<5.4" + }, + "require-dev": { + "symfony/console": "^5.4|^6.0", + "symfony/process": "^5.4|^6.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Dotenv\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Registers environment variables from a .env file", + "homepage": "https://symfony.com", + "keywords": [ + "dotenv", + "env", + "environment" + ], + "support": { + "source": "https://github.com/symfony/dotenv/tree/v6.3.7" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-10-26T18:15:14+00:00" + }, + { + "name": "symfony/error-handler", + "version": "v6.3.5", + "source": { + "type": "git", + "url": "https://github.com/symfony/error-handler.git", + "reference": "1f69476b64fb47105c06beef757766c376b548c4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/error-handler/zipball/1f69476b64fb47105c06beef757766c376b548c4", + "reference": "1f69476b64fb47105c06beef757766c376b548c4", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "psr/log": "^1|^2|^3", + "symfony/var-dumper": "^5.4|^6.0" + }, + "conflict": { + "symfony/deprecation-contracts": "<2.5" + }, + "require-dev": { + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/http-kernel": "^5.4|^6.0", + "symfony/serializer": "^5.4|^6.0" + }, + "bin": [ + "Resources/bin/patch-type-declarations" + ], + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\ErrorHandler\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides tools to manage errors and ease debugging PHP code", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/error-handler/tree/v6.3.5" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-09-12T06:57:20+00:00" + }, + { + "name": "symfony/event-dispatcher", + "version": "v6.3.2", + "source": { + "type": "git", + "url": "https://github.com/symfony/event-dispatcher.git", + "reference": "adb01fe097a4ee930db9258a3cc906b5beb5cf2e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/adb01fe097a4ee930db9258a3cc906b5beb5cf2e", + "reference": "adb01fe097a4ee930db9258a3cc906b5beb5cf2e", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "symfony/event-dispatcher-contracts": "^2.5|^3" + }, + "conflict": { + "symfony/dependency-injection": "<5.4", + "symfony/service-contracts": "<2.5" + }, + "provide": { + "psr/event-dispatcher-implementation": "1.0", + "symfony/event-dispatcher-implementation": "2.0|3.0" + }, + "require-dev": { + "psr/log": "^1|^2|^3", + "symfony/config": "^5.4|^6.0", + "symfony/dependency-injection": "^5.4|^6.0", + "symfony/error-handler": "^5.4|^6.0", + "symfony/expression-language": "^5.4|^6.0", + "symfony/http-foundation": "^5.4|^6.0", + "symfony/service-contracts": "^2.5|^3", + "symfony/stopwatch": "^5.4|^6.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\EventDispatcher\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/event-dispatcher/tree/v6.3.2" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-07-06T06:56:43+00:00" + }, + { + "name": "symfony/event-dispatcher-contracts", + "version": "v3.3.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/event-dispatcher-contracts.git", + "reference": "a76aed96a42d2b521153fb382d418e30d18b59df" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/a76aed96a42d2b521153fb382d418e30d18b59df", + "reference": "a76aed96a42d2b521153fb382d418e30d18b59df", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "psr/event-dispatcher": "^1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.4-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\EventDispatcher\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Generic abstractions related to dispatching event", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "support": { + "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.3.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-05-23T14:45:45+00:00" + }, + { + "name": "symfony/expression-language", + "version": "v6.3.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/expression-language.git", + "reference": "6d560c4c80e7e328708efd923f93ad67e6a0c1c0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/expression-language/zipball/6d560c4c80e7e328708efd923f93ad67e6a0c1c0", + "reference": "6d560c4c80e7e328708efd923f93ad67e6a0c1c0", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "symfony/cache": "^5.4|^6.0", + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/service-contracts": "^2.5|^3" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\ExpressionLanguage\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides an engine that can compile and evaluate expressions", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/expression-language/tree/v6.3.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-04-28T16:05:33+00:00" + }, + { + "name": "symfony/filesystem", + "version": "v6.3.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/filesystem.git", + "reference": "edd36776956f2a6fcf577edb5b05eb0e3bdc52ae" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/edd36776956f2a6fcf577edb5b05eb0e3bdc52ae", + "reference": "edd36776956f2a6fcf577edb5b05eb0e3bdc52ae", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-mbstring": "~1.8" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Filesystem\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides basic utilities for the filesystem", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/filesystem/tree/v6.3.1" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-06-01T08:30:39+00:00" + }, + { + "name": "symfony/finder", + "version": "v6.3.5", + "source": { + "type": "git", + "url": "https://github.com/symfony/finder.git", + "reference": "a1b31d88c0e998168ca7792f222cbecee47428c4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/finder/zipball/a1b31d88c0e998168ca7792f222cbecee47428c4", + "reference": "a1b31d88c0e998168ca7792f222cbecee47428c4", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "require-dev": { + "symfony/filesystem": "^6.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Finder\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Finds files and directories via an intuitive fluent interface", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/finder/tree/v6.3.5" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-09-26T12:56:25+00:00" + }, + { + "name": "symfony/flex", + "version": "v2.4.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/flex.git", + "reference": "ae6dea68771c5fca9d172e0c0910bdd06199f6f4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/flex/zipball/ae6dea68771c5fca9d172e0c0910bdd06199f6f4", + "reference": "ae6dea68771c5fca9d172e0c0910bdd06199f6f4", + "shasum": "" + }, + "require": { + "composer-plugin-api": "^2.1", + "php": ">=8.0" + }, + "require-dev": { + "composer/composer": "^2.1", + "symfony/dotenv": "^5.4|^6.0", + "symfony/filesystem": "^5.4|^6.0", + "symfony/phpunit-bridge": "^5.4|^6.0", + "symfony/process": "^5.4|^6.0" + }, + "type": "composer-plugin", + "extra": { + "class": "Symfony\\Flex\\Flex" + }, + "autoload": { + "psr-4": { + "Symfony\\Flex\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien.potencier@gmail.com" + } + ], + "description": "Composer plugin for Symfony", + "support": { + "issues": "https://github.com/symfony/flex/issues", + "source": "https://github.com/symfony/flex/tree/v2.4.1" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-10-30T18:35:17+00:00" + }, + { + "name": "symfony/form", + "version": "v6.3.7", + "source": { + "type": "git", + "url": "https://github.com/symfony/form.git", + "reference": "e6743d188f168643cb247f65cbad09ddb1dfcfe5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/form/zipball/e6743d188f168643cb247f65cbad09ddb1dfcfe5", + "reference": "e6743d188f168643cb247f65cbad09ddb1dfcfe5", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/event-dispatcher": "^5.4|^6.0", + "symfony/options-resolver": "^5.4|^6.0", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-intl-icu": "^1.21", + "symfony/polyfill-mbstring": "~1.0", + "symfony/property-access": "^5.4|^6.0", + "symfony/service-contracts": "^2.5|^3" + }, + "conflict": { + "symfony/console": "<5.4", + "symfony/dependency-injection": "<5.4", + "symfony/doctrine-bridge": "<5.4.21|>=6,<6.2.7", + "symfony/error-handler": "<5.4", + "symfony/framework-bundle": "<5.4", + "symfony/http-kernel": "<5.4", + "symfony/translation": "<5.4", + "symfony/translation-contracts": "<2.5", + "symfony/twig-bridge": "<6.3" + }, + "require-dev": { + "doctrine/collections": "^1.0|^2.0", + "symfony/config": "^5.4|^6.0", + "symfony/console": "^5.4|^6.0", + "symfony/dependency-injection": "^5.4|^6.0", + "symfony/expression-language": "^5.4|^6.0", + "symfony/html-sanitizer": "^6.1", + "symfony/http-foundation": "^5.4|^6.0", + "symfony/http-kernel": "^5.4|^6.0", + "symfony/intl": "^5.4|^6.0", + "symfony/security-core": "^6.2", + "symfony/security-csrf": "^5.4|^6.0", + "symfony/translation": "^5.4|^6.0", + "symfony/uid": "^5.4|^6.0", + "symfony/validator": "^5.4|^6.0", + "symfony/var-dumper": "^5.4|^6.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Form\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Allows to easily create, process and reuse HTML forms", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/form/tree/v6.3.7" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-10-28T23:11:45+00:00" + }, + { + "name": "symfony/framework-bundle", + "version": "v6.3.7", + "source": { + "type": "git", + "url": "https://github.com/symfony/framework-bundle.git", + "reference": "dba20792c726c30d455626eddfb2db008f64085f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/framework-bundle/zipball/dba20792c726c30d455626eddfb2db008f64085f", + "reference": "dba20792c726c30d455626eddfb2db008f64085f", + "shasum": "" + }, + "require": { + "composer-runtime-api": ">=2.1", + "ext-xml": "*", + "php": ">=8.1", + "symfony/cache": "^5.4|^6.0", + "symfony/config": "^6.1", + "symfony/dependency-injection": "^6.3.1", + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/error-handler": "^6.1", + "symfony/event-dispatcher": "^5.4|^6.0", + "symfony/filesystem": "^5.4|^6.0", + "symfony/finder": "^5.4|^6.0", + "symfony/http-foundation": "^6.3", + "symfony/http-kernel": "^6.3", + "symfony/polyfill-mbstring": "~1.0", + "symfony/routing": "^5.4|^6.0" + }, + "conflict": { + "doctrine/annotations": "<1.13.1", + "doctrine/persistence": "<1.3", + "phpdocumentor/reflection-docblock": "<3.2.2", + "phpdocumentor/type-resolver": "<1.4.0", + "symfony/asset": "<5.4", + "symfony/clock": "<6.3", + "symfony/console": "<5.4", + "symfony/dom-crawler": "<6.3", + "symfony/dotenv": "<5.4", + "symfony/form": "<5.4", + "symfony/http-client": "<6.3", + "symfony/lock": "<5.4", + "symfony/mailer": "<5.4", + "symfony/messenger": "<6.3", + "symfony/mime": "<6.2", + "symfony/property-access": "<5.4", + "symfony/property-info": "<5.4", + "symfony/security-core": "<5.4", + "symfony/security-csrf": "<5.4", + "symfony/serializer": "<6.3", + "symfony/stopwatch": "<5.4", + "symfony/translation": "<6.2.8", + "symfony/twig-bridge": "<5.4", + "symfony/twig-bundle": "<5.4", + "symfony/validator": "<6.3", + "symfony/web-profiler-bundle": "<5.4", + "symfony/workflow": "<5.4" + }, + "require-dev": { + "doctrine/annotations": "^1.13.1|^2", + "doctrine/persistence": "^1.3|^2|^3", + "phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0", + "symfony/asset": "^5.4|^6.0", + "symfony/asset-mapper": "^6.3", + "symfony/browser-kit": "^5.4|^6.0", + "symfony/clock": "^6.2", + "symfony/console": "^5.4.9|^6.0.9", + "symfony/css-selector": "^5.4|^6.0", + "symfony/dom-crawler": "^6.3", + "symfony/dotenv": "^5.4|^6.0", + "symfony/expression-language": "^5.4|^6.0", + "symfony/form": "^5.4|^6.0", + "symfony/html-sanitizer": "^6.1", + "symfony/http-client": "^6.3", + "symfony/lock": "^5.4|^6.0", + "symfony/mailer": "^5.4|^6.0", + "symfony/messenger": "^6.3", + "symfony/mime": "^6.2", + "symfony/notifier": "^5.4|^6.0", + "symfony/polyfill-intl-icu": "~1.0", + "symfony/process": "^5.4|^6.0", + "symfony/property-info": "^5.4|^6.0", + "symfony/rate-limiter": "^5.4|^6.0", + "symfony/scheduler": "^6.3", + "symfony/security-bundle": "^5.4|^6.0", + "symfony/semaphore": "^5.4|^6.0", + "symfony/serializer": "^6.3", + "symfony/stopwatch": "^5.4|^6.0", + "symfony/string": "^5.4|^6.0", + "symfony/translation": "^6.2.8", + "symfony/twig-bundle": "^5.4|^6.0", + "symfony/uid": "^5.4|^6.0", + "symfony/validator": "^6.3", + "symfony/web-link": "^5.4|^6.0", + "symfony/workflow": "^5.4|^6.0", + "symfony/yaml": "^5.4|^6.0", + "twig/twig": "^2.10|^3.0" + }, + "type": "symfony-bundle", + "autoload": { + "psr-4": { + "Symfony\\Bundle\\FrameworkBundle\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides a tight integration between Symfony components and the Symfony full-stack framework", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/framework-bundle/tree/v6.3.7" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-10-26T18:15:14+00:00" + }, + { + "name": "symfony/http-client", + "version": "v6.3.7", + "source": { + "type": "git", + "url": "https://github.com/symfony/http-client.git", + "reference": "cd67fcaf4524ec6ae5d9b2d9497682d7ad3ce57d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/http-client/zipball/cd67fcaf4524ec6ae5d9b2d9497682d7ad3ce57d", + "reference": "cd67fcaf4524ec6ae5d9b2d9497682d7ad3ce57d", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "psr/log": "^1|^2|^3", + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/http-client-contracts": "^3", + "symfony/service-contracts": "^2.5|^3" + }, + "conflict": { + "php-http/discovery": "<1.15", + "symfony/http-foundation": "<6.3" + }, + "provide": { + "php-http/async-client-implementation": "*", + "php-http/client-implementation": "*", + "psr/http-client-implementation": "1.0", + "symfony/http-client-implementation": "3.0" + }, + "require-dev": { + "amphp/amp": "^2.5", + "amphp/http-client": "^4.2.1", + "amphp/http-tunnel": "^1.0", + "amphp/socket": "^1.1", + "guzzlehttp/promises": "^1.4", + "nyholm/psr7": "^1.0", + "php-http/httplug": "^1.0|^2.0", + "psr/http-client": "^1.0", + "symfony/dependency-injection": "^5.4|^6.0", + "symfony/http-kernel": "^5.4|^6.0", + "symfony/process": "^5.4|^6.0", + "symfony/stopwatch": "^5.4|^6.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\HttpClient\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides powerful methods to fetch HTTP resources synchronously or asynchronously", + "homepage": "https://symfony.com", + "keywords": [ + "http" + ], + "support": { + "source": "https://github.com/symfony/http-client/tree/v6.3.7" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-10-29T12:41:36+00:00" + }, + { + "name": "symfony/http-client-contracts", + "version": "v3.3.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/http-client-contracts.git", + "reference": "3b66325d0176b4ec826bffab57c9037d759c31fb" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/http-client-contracts/zipball/3b66325d0176b4ec826bffab57c9037d759c31fb", + "reference": "3b66325d0176b4ec826bffab57c9037d759c31fb", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.4-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\HttpClient\\": "" + }, + "exclude-from-classmap": [ + "/Test/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Generic abstractions related to HTTP clients", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "support": { + "source": "https://github.com/symfony/http-client-contracts/tree/v3.3.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-05-23T14:45:45+00:00" + }, + { + "name": "symfony/http-foundation", + "version": "v6.3.7", + "source": { + "type": "git", + "url": "https://github.com/symfony/http-foundation.git", + "reference": "59d1837d5d992d16c2628cd0d6b76acf8d69b33e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/59d1837d5d992d16c2628cd0d6b76acf8d69b33e", + "reference": "59d1837d5d992d16c2628cd0d6b76acf8d69b33e", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/polyfill-mbstring": "~1.1", + "symfony/polyfill-php83": "^1.27" + }, + "conflict": { + "symfony/cache": "<6.3" + }, + "require-dev": { + "doctrine/dbal": "^2.13.1|^3|^4", + "predis/predis": "^1.1|^2.0", + "symfony/cache": "^6.3", + "symfony/dependency-injection": "^5.4|^6.0", + "symfony/expression-language": "^5.4|^6.0", + "symfony/http-kernel": "^5.4.12|^6.0.12|^6.1.4", + "symfony/mime": "^5.4|^6.0", + "symfony/rate-limiter": "^5.2|^6.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\HttpFoundation\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Defines an object-oriented layer for the HTTP specification", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/http-foundation/tree/v6.3.7" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-10-28T23:55:27+00:00" + }, + { + "name": "symfony/http-kernel", + "version": "v6.3.7", + "source": { + "type": "git", + "url": "https://github.com/symfony/http-kernel.git", + "reference": "6d4098095f93279d9536a0e9124439560cc764d0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/6d4098095f93279d9536a0e9124439560cc764d0", + "reference": "6d4098095f93279d9536a0e9124439560cc764d0", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "psr/log": "^1|^2|^3", + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/error-handler": "^6.3", + "symfony/event-dispatcher": "^5.4|^6.0", + "symfony/http-foundation": "^6.3.4", + "symfony/polyfill-ctype": "^1.8" + }, + "conflict": { + "symfony/browser-kit": "<5.4", + "symfony/cache": "<5.4", + "symfony/config": "<6.1", + "symfony/console": "<5.4", + "symfony/dependency-injection": "<6.3.4", + "symfony/doctrine-bridge": "<5.4", + "symfony/form": "<5.4", + "symfony/http-client": "<5.4", + "symfony/http-client-contracts": "<2.5", + "symfony/mailer": "<5.4", + "symfony/messenger": "<5.4", + "symfony/translation": "<5.4", + "symfony/translation-contracts": "<2.5", + "symfony/twig-bridge": "<5.4", + "symfony/validator": "<5.4", + "symfony/var-dumper": "<6.3", + "twig/twig": "<2.13" + }, + "provide": { + "psr/log-implementation": "1.0|2.0|3.0" + }, + "require-dev": { + "psr/cache": "^1.0|^2.0|^3.0", + "symfony/browser-kit": "^5.4|^6.0", + "symfony/clock": "^6.2", + "symfony/config": "^6.1", + "symfony/console": "^5.4|^6.0", + "symfony/css-selector": "^5.4|^6.0", + "symfony/dependency-injection": "^6.3.4", + "symfony/dom-crawler": "^5.4|^6.0", + "symfony/expression-language": "^5.4|^6.0", + "symfony/finder": "^5.4|^6.0", + "symfony/http-client-contracts": "^2.5|^3", + "symfony/process": "^5.4|^6.0", + "symfony/property-access": "^5.4.5|^6.0.5", + "symfony/routing": "^5.4|^6.0", + "symfony/serializer": "^6.3", + "symfony/stopwatch": "^5.4|^6.0", + "symfony/translation": "^5.4|^6.0", + "symfony/translation-contracts": "^2.5|^3", + "symfony/uid": "^5.4|^6.0", + "symfony/validator": "^6.3", + "symfony/var-exporter": "^6.2", + "twig/twig": "^2.13|^3.0.4" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\HttpKernel\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides a structured process for converting a Request into a Response", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/http-kernel/tree/v6.3.7" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-10-29T14:31:45+00:00" + }, + { + "name": "symfony/intl", + "version": "v6.3.7", + "source": { + "type": "git", + "url": "https://github.com/symfony/intl.git", + "reference": "4cc98c05f2c55150a6aa5b3e20667f7a6d06cca9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/intl/zipball/4cc98c05f2c55150a6aa5b3e20667f7a6d06cca9", + "reference": "4cc98c05f2c55150a6aa5b3e20667f7a6d06cca9", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "require-dev": { + "symfony/filesystem": "^5.4|^6.0", + "symfony/finder": "^5.4|^6.0", + "symfony/var-exporter": "^5.4|^6.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Intl\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Bernhard Schussek", + "email": "bschussek@gmail.com" + }, + { + "name": "Eriksen Costa", + "email": "eriksen.costa@infranology.com.br" + }, + { + "name": "Igor Wiedler", + "email": "igor@wiedler.ch" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides access to the localization data of the ICU library", + "homepage": "https://symfony.com", + "keywords": [ + "i18n", + "icu", + "internationalization", + "intl", + "l10n", + "localization" + ], + "support": { + "source": "https://github.com/symfony/intl/tree/v6.3.7" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-10-28T23:11:45+00:00" + }, + { + "name": "symfony/mailer", + "version": "v6.3.5", + "source": { + "type": "git", + "url": "https://github.com/symfony/mailer.git", + "reference": "d89611a7830d51b5e118bca38e390dea92f9ea06" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/mailer/zipball/d89611a7830d51b5e118bca38e390dea92f9ea06", + "reference": "d89611a7830d51b5e118bca38e390dea92f9ea06", + "shasum": "" + }, + "require": { + "egulias/email-validator": "^2.1.10|^3|^4", + "php": ">=8.1", + "psr/event-dispatcher": "^1", + "psr/log": "^1|^2|^3", + "symfony/event-dispatcher": "^5.4|^6.0", + "symfony/mime": "^6.2", + "symfony/service-contracts": "^2.5|^3" + }, + "conflict": { + "symfony/http-client-contracts": "<2.5", + "symfony/http-kernel": "<5.4", + "symfony/messenger": "<6.2", + "symfony/mime": "<6.2", + "symfony/twig-bridge": "<6.2.1" + }, + "require-dev": { + "symfony/console": "^5.4|^6.0", + "symfony/http-client": "^5.4|^6.0", + "symfony/messenger": "^6.2", + "symfony/twig-bridge": "^6.2" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Mailer\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Helps sending emails", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/mailer/tree/v6.3.5" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-09-06T09:47:15+00:00" + }, + { + "name": "symfony/messenger", + "version": "v6.3.7", + "source": { + "type": "git", + "url": "https://github.com/symfony/messenger.git", + "reference": "a0a8860ca625116c474c9c1f5570bd7ec752c599" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/messenger/zipball/a0a8860ca625116c474c9c1f5570bd7ec752c599", + "reference": "a0a8860ca625116c474c9c1f5570bd7ec752c599", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "psr/log": "^1|^2|^3", + "symfony/clock": "^6.3", + "symfony/deprecation-contracts": "^2.5|^3" + }, + "conflict": { + "symfony/console": "<6.3", + "symfony/event-dispatcher": "<5.4", + "symfony/event-dispatcher-contracts": "<2.5", + "symfony/framework-bundle": "<5.4", + "symfony/http-kernel": "<5.4", + "symfony/serializer": "<5.4" + }, + "require-dev": { + "psr/cache": "^1.0|^2.0|^3.0", + "symfony/console": "^6.3", + "symfony/dependency-injection": "^5.4|^6.0", + "symfony/event-dispatcher": "^5.4|^6.0", + "symfony/http-kernel": "^5.4|^6.0", + "symfony/process": "^5.4|^6.0", + "symfony/property-access": "^5.4|^6.0", + "symfony/rate-limiter": "^5.4|^6.0", + "symfony/routing": "^5.4|^6.0", + "symfony/serializer": "^5.4|^6.0", + "symfony/service-contracts": "^2.5|^3", + "symfony/stopwatch": "^5.4|^6.0", + "symfony/validator": "^5.4|^6.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Messenger\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Samuel Roze", + "email": "samuel.roze@gmail.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Helps applications send and receive messages to/from other applications or via message queues", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/messenger/tree/v6.3.7" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-10-26T18:15:14+00:00" + }, + { + "name": "symfony/mime", + "version": "v6.3.5", + "source": { + "type": "git", + "url": "https://github.com/symfony/mime.git", + "reference": "d5179eedf1cb2946dbd760475ebf05c251ef6a6e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/mime/zipball/d5179eedf1cb2946dbd760475ebf05c251ef6a6e", + "reference": "d5179eedf1cb2946dbd760475ebf05c251ef6a6e", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/polyfill-intl-idn": "^1.10", + "symfony/polyfill-mbstring": "^1.0" + }, + "conflict": { + "egulias/email-validator": "~3.0.0", + "phpdocumentor/reflection-docblock": "<3.2.2", + "phpdocumentor/type-resolver": "<1.4.0", + "symfony/mailer": "<5.4", + "symfony/serializer": "<6.2.13|>=6.3,<6.3.2" + }, + "require-dev": { + "egulias/email-validator": "^2.1.10|^3.1|^4", + "league/html-to-markdown": "^5.0", + "phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0", + "symfony/dependency-injection": "^5.4|^6.0", + "symfony/property-access": "^5.4|^6.0", + "symfony/property-info": "^5.4|^6.0", + "symfony/serializer": "~6.2.13|^6.3.2" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Mime\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Allows manipulating MIME messages", + "homepage": "https://symfony.com", + "keywords": [ + "mime", + "mime-type" + ], + "support": { + "source": "https://github.com/symfony/mime/tree/v6.3.5" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-09-29T06:59:36+00:00" + }, + { + "name": "symfony/monolog-bridge", + "version": "v6.3.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/monolog-bridge.git", + "reference": "04b04b8e465e0fa84940e5609b6796a8b4e51bf1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/monolog-bridge/zipball/04b04b8e465e0fa84940e5609b6796a8b4e51bf1", + "reference": "04b04b8e465e0fa84940e5609b6796a8b4e51bf1", + "shasum": "" + }, + "require": { + "monolog/monolog": "^1.25.1|^2|^3", + "php": ">=8.1", + "symfony/http-kernel": "^5.4|^6.0", + "symfony/service-contracts": "^2.5|^3" + }, + "conflict": { + "symfony/console": "<5.4", + "symfony/http-foundation": "<5.4", + "symfony/security-core": "<6.0" + }, + "require-dev": { + "symfony/console": "^5.4|^6.0", + "symfony/http-client": "^5.4|^6.0", + "symfony/mailer": "^5.4|^6.0", + "symfony/messenger": "^5.4|^6.0", + "symfony/mime": "^5.4|^6.0", + "symfony/security-core": "^6.0", + "symfony/var-dumper": "^5.4|^6.0" + }, + "type": "symfony-bridge", + "autoload": { + "psr-4": { + "Symfony\\Bridge\\Monolog\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides integration for Monolog with various Symfony components", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/monolog-bridge/tree/v6.3.1" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-06-08T11:13:32+00:00" + }, + { + "name": "symfony/monolog-bundle", + "version": "v3.8.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/monolog-bundle.git", + "reference": "a41bbcdc1105603b6d73a7d9a43a3788f8e0fb7d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/monolog-bundle/zipball/a41bbcdc1105603b6d73a7d9a43a3788f8e0fb7d", + "reference": "a41bbcdc1105603b6d73a7d9a43a3788f8e0fb7d", + "shasum": "" + }, + "require": { + "monolog/monolog": "^1.22 || ^2.0 || ^3.0", + "php": ">=7.1.3", + "symfony/config": "~4.4 || ^5.0 || ^6.0", + "symfony/dependency-injection": "^4.4 || ^5.0 || ^6.0", + "symfony/http-kernel": "~4.4 || ^5.0 || ^6.0", + "symfony/monolog-bridge": "~4.4 || ^5.0 || ^6.0" + }, + "require-dev": { + "symfony/console": "~4.4 || ^5.0 || ^6.0", + "symfony/phpunit-bridge": "^5.2 || ^6.0", + "symfony/yaml": "~4.4 || ^5.0 || ^6.0" + }, + "type": "symfony-bundle", + "extra": { + "branch-alias": { + "dev-master": "3.x-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Bundle\\MonologBundle\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony MonologBundle", + "homepage": "https://symfony.com", + "keywords": [ + "log", + "logging" + ], + "support": { + "issues": "https://github.com/symfony/monolog-bundle/issues", + "source": "https://github.com/symfony/monolog-bundle/tree/v3.8.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-05-10T14:24:36+00:00" + }, + { + "name": "symfony/notifier", + "version": "v6.3.6", + "source": { + "type": "git", + "url": "https://github.com/symfony/notifier.git", + "reference": "2e39d4a9a96e25d127ffe30171127f6ef73934df" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/notifier/zipball/2e39d4a9a96e25d127ffe30171127f6ef73934df", + "reference": "2e39d4a9a96e25d127ffe30171127f6ef73934df", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "psr/log": "^1|^2|^3" + }, + "conflict": { + "symfony/event-dispatcher": "<5.4", + "symfony/event-dispatcher-contracts": "<2.5", + "symfony/http-client-contracts": "<2.5", + "symfony/http-kernel": "<5.4" + }, + "require-dev": { + "symfony/event-dispatcher-contracts": "^2.5|^3", + "symfony/http-client-contracts": "^2.5|^3", + "symfony/http-foundation": "^5.4|^6.0", + "symfony/messenger": "^5.4|^6.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Notifier\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Sends notifications via one or more channels (email, SMS, ...)", + "homepage": "https://symfony.com", + "keywords": [ + "notification", + "notifier" + ], + "support": { + "source": "https://github.com/symfony/notifier/tree/v6.3.6" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-10-07T07:32:05+00:00" + }, + { + "name": "symfony/options-resolver", + "version": "v6.3.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/options-resolver.git", + "reference": "a10f19f5198d589d5c33333cffe98dc9820332dd" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/options-resolver/zipball/a10f19f5198d589d5c33333cffe98dc9820332dd", + "reference": "a10f19f5198d589d5c33333cffe98dc9820332dd", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "symfony/deprecation-contracts": "^2.5|^3" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\OptionsResolver\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides an improved replacement for the array_replace PHP function", + "homepage": "https://symfony.com", + "keywords": [ + "config", + "configuration", + "options" + ], + "support": { + "source": "https://github.com/symfony/options-resolver/tree/v6.3.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-05-12T14:21:09+00:00" + }, + { + "name": "symfony/password-hasher", + "version": "v6.3.5", + "source": { + "type": "git", + "url": "https://github.com/symfony/password-hasher.git", + "reference": "278d3a49715073879f75e372ad80b8cfeca949d3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/password-hasher/zipball/278d3a49715073879f75e372ad80b8cfeca949d3", + "reference": "278d3a49715073879f75e372ad80b8cfeca949d3", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "conflict": { + "symfony/security-core": "<5.4" + }, + "require-dev": { + "symfony/console": "^5.4|^6.0", + "symfony/security-core": "^5.4|^6.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\PasswordHasher\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Robin Chalas", + "email": "robin.chalas@gmail.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides password hashing utilities", + "homepage": "https://symfony.com", + "keywords": [ + "hashing", + "password" + ], + "support": { + "source": "https://github.com/symfony/password-hasher/tree/v6.3.5" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-09-25T17:05:16+00:00" + }, + { + "name": "symfony/polyfill-intl-grapheme", + "version": "v1.28.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-intl-grapheme.git", + "reference": "875e90aeea2777b6f135677f618529449334a612" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/875e90aeea2777b6f135677f618529449334a612", + "reference": "875e90aeea2777b6f135677f618529449334a612", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "suggest": { + "ext-intl": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.28-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Intl\\Grapheme\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for intl's grapheme_* functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "grapheme", + "intl", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.28.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-01-26T09:26:14+00:00" + }, + { + "name": "symfony/polyfill-intl-icu", + "version": "v1.28.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-intl-icu.git", + "reference": "e46b4da57951a16053cd751f63f4a24292788157" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-intl-icu/zipball/e46b4da57951a16053cd751f63f4a24292788157", + "reference": "e46b4da57951a16053cd751f63f4a24292788157", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "suggest": { + "ext-intl": "For best performance and support of other locales than \"en\"" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.28-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Intl\\Icu\\": "" + }, + "classmap": [ + "Resources/stubs" + ], + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for intl's ICU-related data and classes", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "icu", + "intl", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-intl-icu/tree/v1.28.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-03-21T17:27:24+00:00" + }, + { + "name": "symfony/polyfill-intl-idn", + "version": "v1.28.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-intl-idn.git", + "reference": "ecaafce9f77234a6a449d29e49267ba10499116d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/ecaafce9f77234a6a449d29e49267ba10499116d", + "reference": "ecaafce9f77234a6a449d29e49267ba10499116d", + "shasum": "" + }, + "require": { + "php": ">=7.1", + "symfony/polyfill-intl-normalizer": "^1.10", + "symfony/polyfill-php72": "^1.10" + }, + "suggest": { + "ext-intl": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.28-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Intl\\Idn\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Laurent Bassin", + "email": "laurent@bassin.info" + }, + { + "name": "Trevor Rowbotham", + "email": "trevor.rowbotham@pm.me" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for intl's idn_to_ascii and idn_to_utf8 functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "idn", + "intl", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.28.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-01-26T09:30:37+00:00" + }, + { + "name": "symfony/polyfill-intl-normalizer", + "version": "v1.28.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-intl-normalizer.git", + "reference": "8c4ad05dd0120b6a53c1ca374dca2ad0a1c4ed92" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/8c4ad05dd0120b6a53c1ca374dca2ad0a1c4ed92", + "reference": "8c4ad05dd0120b6a53c1ca374dca2ad0a1c4ed92", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "suggest": { + "ext-intl": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.28-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Intl\\Normalizer\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for intl's Normalizer class and related functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "intl", + "normalizer", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.28.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-01-26T09:26:14+00:00" + }, + { + "name": "symfony/polyfill-mbstring", + "version": "v1.28.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-mbstring.git", + "reference": "42292d99c55abe617799667f454222c54c60e229" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/42292d99c55abe617799667f454222c54c60e229", + "reference": "42292d99c55abe617799667f454222c54c60e229", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "provide": { + "ext-mbstring": "*" + }, + "suggest": { + "ext-mbstring": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.28-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Mbstring\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for the Mbstring extension", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "mbstring", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.28.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-07-28T09:04:16+00:00" + }, + { + "name": "symfony/polyfill-php83", + "version": "v1.28.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php83.git", + "reference": "b0f46ebbeeeda3e9d2faebdfbf4b4eae9b59fa11" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php83/zipball/b0f46ebbeeeda3e9d2faebdfbf4b4eae9b59fa11", + "reference": "b0f46ebbeeeda3e9d2faebdfbf4b4eae9b59fa11", + "shasum": "" + }, + "require": { + "php": ">=7.1", + "symfony/polyfill-php80": "^1.14" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.28-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Php83\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 8.3+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php83/tree/v1.28.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-08-16T06:22:46+00:00" + }, + { + "name": "symfony/process", + "version": "v6.3.4", + "source": { + "type": "git", + "url": "https://github.com/symfony/process.git", + "reference": "0b5c29118f2e980d455d2e34a5659f4579847c54" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/process/zipball/0b5c29118f2e980d455d2e34a5659f4579847c54", + "reference": "0b5c29118f2e980d455d2e34a5659f4579847c54", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Process\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Executes commands in sub-processes", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/process/tree/v6.3.4" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-08-07T10:39:22+00:00" + }, + { + "name": "symfony/property-access", + "version": "v6.3.2", + "source": { + "type": "git", + "url": "https://github.com/symfony/property-access.git", + "reference": "2dc4f9da444b8f8ff592e95d570caad67924f1d0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/property-access/zipball/2dc4f9da444b8f8ff592e95d570caad67924f1d0", + "reference": "2dc4f9da444b8f8ff592e95d570caad67924f1d0", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/property-info": "^5.4|^6.0" + }, + "require-dev": { + "symfony/cache": "^5.4|^6.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\PropertyAccess\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides functions to read and write from/to an object or array using a simple string notation", + "homepage": "https://symfony.com", + "keywords": [ + "access", + "array", + "extraction", + "index", + "injection", + "object", + "property", + "property-path", + "reflection" + ], + "support": { + "source": "https://github.com/symfony/property-access/tree/v6.3.2" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-07-13T15:26:11+00:00" + }, + { + "name": "symfony/property-info", + "version": "v6.3.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/property-info.git", + "reference": "7f3a03716112269741fe2a809f8f791a371d1fcd" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/property-info/zipball/7f3a03716112269741fe2a809f8f791a371d1fcd", + "reference": "7f3a03716112269741fe2a809f8f791a371d1fcd", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "symfony/string": "^5.4|^6.0" + }, + "conflict": { + "phpdocumentor/reflection-docblock": "<5.2", + "phpdocumentor/type-resolver": "<1.5.1", + "symfony/dependency-injection": "<5.4" + }, + "require-dev": { + "doctrine/annotations": "^1.10.4|^2", + "phpdocumentor/reflection-docblock": "^5.2", + "phpstan/phpdoc-parser": "^1.0", + "symfony/cache": "^5.4|^6.0", + "symfony/dependency-injection": "^5.4|^6.0", + "symfony/serializer": "^5.4|^6.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\PropertyInfo\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Kévin Dunglas", + "email": "dunglas@gmail.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Extracts information about PHP class' properties using metadata of popular sources", + "homepage": "https://symfony.com", + "keywords": [ + "doctrine", + "phpdoc", + "property", + "symfony", + "type", + "validator" + ], + "support": { + "source": "https://github.com/symfony/property-info/tree/v6.3.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-05-19T08:06:44+00:00" + }, + { + "name": "symfony/routing", + "version": "v6.3.5", + "source": { + "type": "git", + "url": "https://github.com/symfony/routing.git", + "reference": "82616e59acd3e3d9c916bba798326cb7796d7d31" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/routing/zipball/82616e59acd3e3d9c916bba798326cb7796d7d31", + "reference": "82616e59acd3e3d9c916bba798326cb7796d7d31", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "symfony/deprecation-contracts": "^2.5|^3" + }, + "conflict": { + "doctrine/annotations": "<1.12", + "symfony/config": "<6.2", + "symfony/dependency-injection": "<5.4", + "symfony/yaml": "<5.4" + }, + "require-dev": { + "doctrine/annotations": "^1.12|^2", + "psr/log": "^1|^2|^3", + "symfony/config": "^6.2", + "symfony/dependency-injection": "^5.4|^6.0", + "symfony/expression-language": "^5.4|^6.0", + "symfony/http-foundation": "^5.4|^6.0", + "symfony/yaml": "^5.4|^6.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Routing\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Maps an HTTP request to a set of configuration variables", + "homepage": "https://symfony.com", + "keywords": [ + "router", + "routing", + "uri", + "url" + ], + "support": { + "source": "https://github.com/symfony/routing/tree/v6.3.5" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-09-20T16:05:51+00:00" + }, + { + "name": "symfony/runtime", + "version": "v6.3.2", + "source": { + "type": "git", + "url": "https://github.com/symfony/runtime.git", + "reference": "d5c09493647a0c1a16e6c8da308098e840d1164f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/runtime/zipball/d5c09493647a0c1a16e6c8da308098e840d1164f", + "reference": "d5c09493647a0c1a16e6c8da308098e840d1164f", + "shasum": "" + }, + "require": { + "composer-plugin-api": "^1.0|^2.0", + "php": ">=8.1" + }, + "conflict": { + "symfony/dotenv": "<5.4" + }, + "require-dev": { + "composer/composer": "^1.0.2|^2.0", + "symfony/console": "^5.4.9|^6.0.9", + "symfony/dotenv": "^5.4|^6.0", + "symfony/http-foundation": "^5.4|^6.0", + "symfony/http-kernel": "^5.4|^6.0" + }, + "type": "composer-plugin", + "extra": { + "class": "Symfony\\Component\\Runtime\\Internal\\ComposerPlugin" + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Runtime\\": "", + "Symfony\\Runtime\\Symfony\\Component\\": "Internal/" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Enables decoupling PHP applications from global state", + "homepage": "https://symfony.com", + "keywords": [ + "runtime" + ], + "support": { + "source": "https://github.com/symfony/runtime/tree/v6.3.2" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-07-16T17:05:46+00:00" + }, + { + "name": "symfony/security-bundle", + "version": "v6.3.7", + "source": { + "type": "git", + "url": "https://github.com/symfony/security-bundle.git", + "reference": "8ece4fd6e242acbabad4461feae7c52fe1982c48" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/security-bundle/zipball/8ece4fd6e242acbabad4461feae7c52fe1982c48", + "reference": "8ece4fd6e242acbabad4461feae7c52fe1982c48", + "shasum": "" + }, + "require": { + "composer-runtime-api": ">=2.1", + "ext-xml": "*", + "php": ">=8.1", + "symfony/clock": "^6.3", + "symfony/config": "^6.1", + "symfony/dependency-injection": "^6.2", + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/event-dispatcher": "^5.4|^6.0", + "symfony/http-foundation": "^6.2", + "symfony/http-kernel": "^6.2", + "symfony/password-hasher": "^5.4|^6.0", + "symfony/security-core": "^6.2", + "symfony/security-csrf": "^5.4|^6.0", + "symfony/security-http": "^6.3.6", + "symfony/service-contracts": "^2.5|^3" + }, + "conflict": { + "symfony/browser-kit": "<5.4", + "symfony/console": "<5.4", + "symfony/framework-bundle": "<6.3", + "symfony/http-client": "<5.4", + "symfony/ldap": "<5.4", + "symfony/twig-bundle": "<5.4" + }, + "require-dev": { + "doctrine/annotations": "^1.10.4|^2", + "symfony/asset": "^5.4|^6.0", + "symfony/browser-kit": "^5.4|^6.0", + "symfony/console": "^5.4|^6.0", + "symfony/css-selector": "^5.4|^6.0", + "symfony/dom-crawler": "^5.4|^6.0", + "symfony/expression-language": "^5.4|^6.0", + "symfony/form": "^5.4|^6.0", + "symfony/framework-bundle": "^6.3", + "symfony/http-client": "^5.4|^6.0", + "symfony/ldap": "^5.4|^6.0", + "symfony/process": "^5.4|^6.0", + "symfony/rate-limiter": "^5.4|^6.0", + "symfony/serializer": "^5.4|^6.0", + "symfony/translation": "^5.4|^6.0", + "symfony/twig-bridge": "^5.4|^6.0", + "symfony/twig-bundle": "^5.4|^6.0", + "symfony/validator": "^5.4|^6.0", + "symfony/yaml": "^5.4|^6.0", + "twig/twig": "^2.13|^3.0.4", + "web-token/jwt-checker": "^3.1", + "web-token/jwt-signature-algorithm-ecdsa": "^3.1", + "web-token/jwt-signature-algorithm-eddsa": "^3.1", + "web-token/jwt-signature-algorithm-hmac": "^3.1", + "web-token/jwt-signature-algorithm-none": "^3.1", + "web-token/jwt-signature-algorithm-rsa": "^3.1" + }, + "type": "symfony-bundle", + "autoload": { + "psr-4": { + "Symfony\\Bundle\\SecurityBundle\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides a tight integration of the Security component into the Symfony full-stack framework", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/security-bundle/tree/v6.3.7" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-10-26T18:15:14+00:00" + }, + { + "name": "symfony/security-core", + "version": "v6.3.7", + "source": { + "type": "git", + "url": "https://github.com/symfony/security-core.git", + "reference": "7ceb30fed93f5ea40ccde3173d1f7712527c0d62" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/security-core/zipball/7ceb30fed93f5ea40ccde3173d1f7712527c0d62", + "reference": "7ceb30fed93f5ea40ccde3173d1f7712527c0d62", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/event-dispatcher-contracts": "^2.5|^3", + "symfony/password-hasher": "^5.4|^6.0", + "symfony/service-contracts": "^2.5|^3" + }, + "conflict": { + "symfony/event-dispatcher": "<5.4", + "symfony/http-foundation": "<5.4", + "symfony/ldap": "<5.4", + "symfony/security-guard": "<5.4", + "symfony/validator": "<5.4" + }, + "require-dev": { + "psr/cache": "^1.0|^2.0|^3.0", + "psr/container": "^1.1|^2.0", + "psr/log": "^1|^2|^3", + "symfony/cache": "^5.4|^6.0", + "symfony/event-dispatcher": "^5.4|^6.0", + "symfony/expression-language": "^5.4|^6.0", + "symfony/http-foundation": "^5.4|^6.0", + "symfony/ldap": "^5.4|^6.0", + "symfony/string": "^5.4|^6.0", + "symfony/translation": "^5.4|^6.0", + "symfony/validator": "^5.4|^6.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Security\\Core\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Security Component - Core Library", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/security-core/tree/v6.3.7" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-10-28T23:11:45+00:00" + }, + { + "name": "symfony/security-csrf", + "version": "v6.3.2", + "source": { + "type": "git", + "url": "https://github.com/symfony/security-csrf.git", + "reference": "63d7b098c448cbddb46ea5eda33b68c1ece6eb5b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/security-csrf/zipball/63d7b098c448cbddb46ea5eda33b68c1ece6eb5b", + "reference": "63d7b098c448cbddb46ea5eda33b68c1ece6eb5b", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "symfony/security-core": "^5.4|^6.0" + }, + "conflict": { + "symfony/http-foundation": "<5.4" + }, + "require-dev": { + "symfony/http-foundation": "^5.4|^6.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Security\\Csrf\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Security Component - CSRF Library", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/security-csrf/tree/v6.3.2" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-07-05T08:41:27+00:00" + }, + { + "name": "symfony/security-http", + "version": "v6.3.6", + "source": { + "type": "git", + "url": "https://github.com/symfony/security-http.git", + "reference": "573ef96ab62d509ac953362fa61f9d1bd283f3a7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/security-http/zipball/573ef96ab62d509ac953362fa61f9d1bd283f3a7", + "reference": "573ef96ab62d509ac953362fa61f9d1bd283f3a7", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/http-foundation": "^5.4|^6.0", + "symfony/http-kernel": "^6.3", + "symfony/polyfill-mbstring": "~1.0", + "symfony/property-access": "^5.4|^6.0", + "symfony/security-core": "^6.3", + "symfony/service-contracts": "^2.5|^3" + }, + "conflict": { + "symfony/clock": "<6.3", + "symfony/event-dispatcher": "<5.4.9|>=6,<6.0.9", + "symfony/http-client-contracts": "<3.0", + "symfony/security-bundle": "<5.4", + "symfony/security-csrf": "<5.4" + }, + "require-dev": { + "psr/log": "^1|^2|^3", + "symfony/cache": "^5.4|^6.0", + "symfony/clock": "^6.3", + "symfony/expression-language": "^5.4|^6.0", + "symfony/http-client-contracts": "^3.0", + "symfony/rate-limiter": "^5.4|^6.0", + "symfony/routing": "^5.4|^6.0", + "symfony/security-csrf": "^5.4|^6.0", + "symfony/translation": "^5.4|^6.0", + "web-token/jwt-checker": "^3.1", + "web-token/jwt-signature-algorithm-ecdsa": "^3.1" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Security\\Http\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Security Component - HTTP Integration", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/security-http/tree/v6.3.6" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-10-13T10:26:24+00:00" + }, + { + "name": "symfony/serializer", + "version": "v6.3.7", + "source": { + "type": "git", + "url": "https://github.com/symfony/serializer.git", + "reference": "641472dd3d6dc3c4d0fdd1496ebd1b55c72e43d9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/serializer/zipball/641472dd3d6dc3c4d0fdd1496ebd1b55c72e43d9", + "reference": "641472dd3d6dc3c4d0fdd1496ebd1b55c72e43d9", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/polyfill-ctype": "~1.8" + }, + "conflict": { + "doctrine/annotations": "<1.12", + "phpdocumentor/reflection-docblock": "<3.2.2", + "phpdocumentor/type-resolver": "<1.4.0", + "symfony/dependency-injection": "<5.4", + "symfony/property-access": "<5.4", + "symfony/property-info": "<5.4.24|>=6,<6.2.11", + "symfony/uid": "<5.4", + "symfony/yaml": "<5.4" + }, + "require-dev": { + "doctrine/annotations": "^1.12|^2", + "phpdocumentor/reflection-docblock": "^3.2|^4.0|^5.0", + "symfony/cache": "^5.4|^6.0", + "symfony/config": "^5.4|^6.0", + "symfony/console": "^5.4|^6.0", + "symfony/dependency-injection": "^5.4|^6.0", + "symfony/error-handler": "^5.4|^6.0", + "symfony/filesystem": "^5.4|^6.0", + "symfony/form": "^5.4|^6.0", + "symfony/http-foundation": "^5.4|^6.0", + "symfony/http-kernel": "^5.4|^6.0", + "symfony/mime": "^5.4|^6.0", + "symfony/property-access": "^5.4|^6.0", + "symfony/property-info": "^5.4.24|^6.2.11", + "symfony/uid": "^5.4|^6.0", + "symfony/validator": "^5.4|^6.0", + "symfony/var-dumper": "^5.4|^6.0", + "symfony/var-exporter": "^5.4|^6.0", + "symfony/yaml": "^5.4|^6.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Serializer\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Handles serializing and deserializing data structures, including object graphs, into array structures or other formats like XML and JSON.", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/serializer/tree/v6.3.7" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-10-26T18:15:14+00:00" + }, + { + "name": "symfony/service-contracts", + "version": "v3.3.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/service-contracts.git", + "reference": "40da9cc13ec349d9e4966ce18b5fbcd724ab10a4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/40da9cc13ec349d9e4966ce18b5fbcd724ab10a4", + "reference": "40da9cc13ec349d9e4966ce18b5fbcd724ab10a4", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "psr/container": "^2.0" + }, + "conflict": { + "ext-psr": "<1.1|>=2" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.4-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\Service\\": "" + }, + "exclude-from-classmap": [ + "/Test/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Generic abstractions related to writing services", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "support": { + "source": "https://github.com/symfony/service-contracts/tree/v3.3.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-05-23T14:45:45+00:00" + }, + { + "name": "symfony/stopwatch", + "version": "v6.3.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/stopwatch.git", + "reference": "fc47f1015ec80927ff64ba9094dfe8b9d48fe9f2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/stopwatch/zipball/fc47f1015ec80927ff64ba9094dfe8b9d48fe9f2", + "reference": "fc47f1015ec80927ff64ba9094dfe8b9d48fe9f2", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "symfony/service-contracts": "^2.5|^3" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Stopwatch\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides a way to profile code", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/stopwatch/tree/v6.3.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-02-16T10:14:28+00:00" + }, + { + "name": "symfony/string", + "version": "v6.3.5", + "source": { + "type": "git", + "url": "https://github.com/symfony/string.git", + "reference": "13d76d0fb049051ed12a04bef4f9de8715bea339" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/string/zipball/13d76d0fb049051ed12a04bef4f9de8715bea339", + "reference": "13d76d0fb049051ed12a04bef4f9de8715bea339", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-intl-grapheme": "~1.0", + "symfony/polyfill-intl-normalizer": "~1.0", + "symfony/polyfill-mbstring": "~1.0" + }, + "conflict": { + "symfony/translation-contracts": "<2.5" + }, + "require-dev": { + "symfony/error-handler": "^5.4|^6.0", + "symfony/http-client": "^5.4|^6.0", + "symfony/intl": "^6.2", + "symfony/translation-contracts": "^2.5|^3.0", + "symfony/var-exporter": "^5.4|^6.0" + }, + "type": "library", + "autoload": { + "files": [ + "Resources/functions.php" + ], + "psr-4": { + "Symfony\\Component\\String\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides an object-oriented API to strings and deals with bytes, UTF-8 code points and grapheme clusters in a unified way", + "homepage": "https://symfony.com", + "keywords": [ + "grapheme", + "i18n", + "string", + "unicode", + "utf-8", + "utf8" + ], + "support": { + "source": "https://github.com/symfony/string/tree/v6.3.5" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-09-18T10:38:32+00:00" + }, + { + "name": "symfony/translation", + "version": "v6.3.7", + "source": { + "type": "git", + "url": "https://github.com/symfony/translation.git", + "reference": "30212e7c87dcb79c83f6362b00bde0e0b1213499" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/translation/zipball/30212e7c87dcb79c83f6362b00bde0e0b1213499", + "reference": "30212e7c87dcb79c83f6362b00bde0e0b1213499", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/polyfill-mbstring": "~1.0", + "symfony/translation-contracts": "^2.5|^3.0" + }, + "conflict": { + "symfony/config": "<5.4", + "symfony/console": "<5.4", + "symfony/dependency-injection": "<5.4", + "symfony/http-client-contracts": "<2.5", + "symfony/http-kernel": "<5.4", + "symfony/service-contracts": "<2.5", + "symfony/twig-bundle": "<5.4", + "symfony/yaml": "<5.4" + }, + "provide": { + "symfony/translation-implementation": "2.3|3.0" + }, + "require-dev": { + "nikic/php-parser": "^4.13", + "psr/log": "^1|^2|^3", + "symfony/config": "^5.4|^6.0", + "symfony/console": "^5.4|^6.0", + "symfony/dependency-injection": "^5.4|^6.0", + "symfony/finder": "^5.4|^6.0", + "symfony/http-client-contracts": "^2.5|^3.0", + "symfony/http-kernel": "^5.4|^6.0", + "symfony/intl": "^5.4|^6.0", + "symfony/polyfill-intl-icu": "^1.21", + "symfony/routing": "^5.4|^6.0", + "symfony/service-contracts": "^2.5|^3", + "symfony/yaml": "^5.4|^6.0" + }, + "type": "library", + "autoload": { + "files": [ + "Resources/functions.php" + ], + "psr-4": { + "Symfony\\Component\\Translation\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides tools to internationalize your application", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/translation/tree/v6.3.7" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-10-28T23:11:45+00:00" + }, + { + "name": "symfony/translation-contracts", + "version": "v3.3.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/translation-contracts.git", + "reference": "02c24deb352fb0d79db5486c0c79905a85e37e86" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/02c24deb352fb0d79db5486c0c79905a85e37e86", + "reference": "02c24deb352fb0d79db5486c0c79905a85e37e86", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.4-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\Translation\\": "" + }, + "exclude-from-classmap": [ + "/Test/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Generic abstractions related to translation", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "support": { + "source": "https://github.com/symfony/translation-contracts/tree/v3.3.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-05-30T17:17:10+00:00" + }, + { + "name": "symfony/twig-bridge", + "version": "v6.3.5", + "source": { + "type": "git", + "url": "https://github.com/symfony/twig-bridge.git", + "reference": "18f2cbe1d46ad43c4d3bd45e5e6279172068e064" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/twig-bridge/zipball/18f2cbe1d46ad43c4d3bd45e5e6279172068e064", + "reference": "18f2cbe1d46ad43c4d3bd45e5e6279172068e064", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "symfony/translation-contracts": "^2.5|^3", + "twig/twig": "^2.13|^3.0.4" + }, + "conflict": { + "phpdocumentor/reflection-docblock": "<3.2.2", + "phpdocumentor/type-resolver": "<1.4.0", + "symfony/console": "<5.4", + "symfony/form": "<6.3", + "symfony/http-foundation": "<5.4", + "symfony/http-kernel": "<6.2", + "symfony/mime": "<6.2", + "symfony/translation": "<5.4", + "symfony/workflow": "<5.4" + }, + "require-dev": { + "doctrine/annotations": "^1.12|^2", + "egulias/email-validator": "^2.1.10|^3|^4", + "league/html-to-markdown": "^5.0", + "phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0", + "symfony/asset": "^5.4|^6.0", + "symfony/asset-mapper": "^6.3", + "symfony/console": "^5.4|^6.0", + "symfony/dependency-injection": "^5.4|^6.0", + "symfony/expression-language": "^5.4|^6.0", + "symfony/finder": "^5.4|^6.0", + "symfony/form": "^6.3", + "symfony/html-sanitizer": "^6.1", + "symfony/http-foundation": "^5.4|^6.0", + "symfony/http-kernel": "^6.2", + "symfony/intl": "^5.4|^6.0", + "symfony/mime": "^6.2", + "symfony/polyfill-intl-icu": "~1.0", + "symfony/property-info": "^5.4|^6.0", + "symfony/routing": "^5.4|^6.0", + "symfony/security-acl": "^2.8|^3.0", + "symfony/security-core": "^5.4|^6.0", + "symfony/security-csrf": "^5.4|^6.0", + "symfony/security-http": "^5.4|^6.0", + "symfony/serializer": "^6.2", + "symfony/stopwatch": "^5.4|^6.0", + "symfony/translation": "^6.1", + "symfony/web-link": "^5.4|^6.0", + "symfony/workflow": "^5.4|^6.0", + "symfony/yaml": "^5.4|^6.0", + "twig/cssinliner-extra": "^2.12|^3", + "twig/inky-extra": "^2.12|^3", + "twig/markdown-extra": "^2.12|^3" + }, + "type": "symfony-bridge", + "autoload": { + "psr-4": { + "Symfony\\Bridge\\Twig\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides integration for Twig with various Symfony components", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/twig-bridge/tree/v6.3.5" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-09-12T06:57:20+00:00" + }, + { + "name": "symfony/twig-bundle", + "version": "v6.3.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/twig-bundle.git", + "reference": "d0cd4d1675c0582d27c2e8bb0dc27c0303d8e3ea" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/twig-bundle/zipball/d0cd4d1675c0582d27c2e8bb0dc27c0303d8e3ea", + "reference": "d0cd4d1675c0582d27c2e8bb0dc27c0303d8e3ea", + "shasum": "" + }, + "require": { + "composer-runtime-api": ">=2.1", + "php": ">=8.1", + "symfony/config": "^6.1", + "symfony/dependency-injection": "^6.1", + "symfony/http-foundation": "^5.4|^6.0", + "symfony/http-kernel": "^6.2", + "symfony/twig-bridge": "^6.3", + "twig/twig": "^2.13|^3.0.4" + }, + "conflict": { + "symfony/framework-bundle": "<5.4", + "symfony/translation": "<5.4" + }, + "require-dev": { + "doctrine/annotations": "^1.10.4|^2", + "symfony/asset": "^5.4|^6.0", + "symfony/expression-language": "^5.4|^6.0", + "symfony/finder": "^5.4|^6.0", + "symfony/form": "^5.4|^6.0", + "symfony/framework-bundle": "^5.4|^6.0", + "symfony/routing": "^5.4|^6.0", + "symfony/stopwatch": "^5.4|^6.0", + "symfony/translation": "^5.4|^6.0", + "symfony/web-link": "^5.4|^6.0", + "symfony/yaml": "^5.4|^6.0" + }, + "type": "symfony-bundle", + "autoload": { + "psr-4": { + "Symfony\\Bundle\\TwigBundle\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides a tight integration of Twig into the Symfony full-stack framework", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/twig-bundle/tree/v6.3.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-05-06T09:53:41+00:00" + }, + { + "name": "symfony/validator", + "version": "v6.3.7", + "source": { + "type": "git", + "url": "https://github.com/symfony/validator.git", + "reference": "9cc736663fa5839b9710ac2c303bb0b951014fc1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/validator/zipball/9cc736663fa5839b9710ac2c303bb0b951014fc1", + "reference": "9cc736663fa5839b9710ac2c303bb0b951014fc1", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-mbstring": "~1.0", + "symfony/polyfill-php83": "^1.27", + "symfony/translation-contracts": "^2.5|^3" + }, + "conflict": { + "doctrine/annotations": "<1.13", + "doctrine/lexer": "<1.1", + "symfony/dependency-injection": "<5.4", + "symfony/expression-language": "<5.4", + "symfony/http-kernel": "<5.4", + "symfony/intl": "<5.4", + "symfony/property-info": "<5.4", + "symfony/translation": "<5.4", + "symfony/yaml": "<5.4" + }, + "require-dev": { + "doctrine/annotations": "^1.13|^2", + "egulias/email-validator": "^2.1.10|^3|^4", + "symfony/cache": "^5.4|^6.0", + "symfony/config": "^5.4|^6.0", + "symfony/console": "^5.4|^6.0", + "symfony/dependency-injection": "^5.4|^6.0", + "symfony/expression-language": "^5.4|^6.0", + "symfony/finder": "^5.4|^6.0", + "symfony/http-client": "^5.4|^6.0", + "symfony/http-foundation": "^5.4|^6.0", + "symfony/http-kernel": "^5.4|^6.0", + "symfony/intl": "^5.4|^6.0", + "symfony/mime": "^5.4|^6.0", + "symfony/property-access": "^5.4|^6.0", + "symfony/property-info": "^5.4|^6.0", + "symfony/translation": "^5.4|^6.0", + "symfony/yaml": "^5.4|^6.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Validator\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides tools to validate values", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/validator/tree/v6.3.7" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-10-28T23:11:45+00:00" + }, + { + "name": "symfony/var-dumper", + "version": "v6.3.6", + "source": { + "type": "git", + "url": "https://github.com/symfony/var-dumper.git", + "reference": "999ede244507c32b8e43aebaa10e9fce20de7c97" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/999ede244507c32b8e43aebaa10e9fce20de7c97", + "reference": "999ede244507c32b8e43aebaa10e9fce20de7c97", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/polyfill-mbstring": "~1.0" + }, + "conflict": { + "symfony/console": "<5.4" + }, + "require-dev": { + "ext-iconv": "*", + "symfony/console": "^5.4|^6.0", + "symfony/http-kernel": "^5.4|^6.0", + "symfony/process": "^5.4|^6.0", + "symfony/uid": "^5.4|^6.0", + "twig/twig": "^2.13|^3.0.4" + }, + "bin": [ + "Resources/bin/var-dump-server" + ], + "type": "library", + "autoload": { + "files": [ + "Resources/functions/dump.php" + ], + "psr-4": { + "Symfony\\Component\\VarDumper\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides mechanisms for walking through any arbitrary PHP variable", + "homepage": "https://symfony.com", + "keywords": [ + "debug", + "dump" + ], + "support": { + "source": "https://github.com/symfony/var-dumper/tree/v6.3.6" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-10-12T18:45:56+00:00" + }, + { + "name": "symfony/var-exporter", + "version": "v6.3.6", + "source": { + "type": "git", + "url": "https://github.com/symfony/var-exporter.git", + "reference": "374d289c13cb989027274c86206ddc63b16a2441" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/var-exporter/zipball/374d289c13cb989027274c86206ddc63b16a2441", + "reference": "374d289c13cb989027274c86206ddc63b16a2441", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "require-dev": { + "symfony/var-dumper": "^5.4|^6.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\VarExporter\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Allows exporting any serializable PHP data structure to plain PHP code", + "homepage": "https://symfony.com", + "keywords": [ + "clone", + "construct", + "export", + "hydrate", + "instantiate", + "lazy-loading", + "proxy", + "serialize" + ], + "support": { + "source": "https://github.com/symfony/var-exporter/tree/v6.3.6" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-10-13T09:16:49+00:00" + }, + { + "name": "symfony/web-link", + "version": "v6.3.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/web-link.git", + "reference": "0989ca617d0703cdca501a245f10e194ff22315b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/web-link/zipball/0989ca617d0703cdca501a245f10e194ff22315b", + "reference": "0989ca617d0703cdca501a245f10e194ff22315b", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "psr/link": "^1.1|^2.0" + }, + "conflict": { + "symfony/http-kernel": "<5.4" + }, + "provide": { + "psr/link-implementation": "1.0|2.0" + }, + "require-dev": { + "symfony/http-kernel": "^5.4|^6.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\WebLink\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Kévin Dunglas", + "email": "dunglas@gmail.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Manages links between resources", + "homepage": "https://symfony.com", + "keywords": [ + "dns-prefetch", + "http", + "http2", + "link", + "performance", + "prefetch", + "preload", + "prerender", + "psr13", + "push" + ], + "support": { + "source": "https://github.com/symfony/web-link/tree/v6.3.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-04-21T14:41:17+00:00" + }, + { + "name": "symfony/yaml", + "version": "v6.3.7", + "source": { + "type": "git", + "url": "https://github.com/symfony/yaml.git", + "reference": "9758b6c69d179936435d0ffb577c3708d57e38a8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/yaml/zipball/9758b6c69d179936435d0ffb577c3708d57e38a8", + "reference": "9758b6c69d179936435d0ffb577c3708d57e38a8", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/polyfill-ctype": "^1.8" + }, + "conflict": { + "symfony/console": "<5.4" + }, + "require-dev": { + "symfony/console": "^5.4|^6.0" + }, + "bin": [ + "Resources/bin/yaml-lint" + ], + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Yaml\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Loads and dumps YAML files", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/yaml/tree/v6.3.7" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-10-28T23:31:00+00:00" + }, + { + "name": "twig/extra-bundle", + "version": "v3.7.1", + "source": { + "type": "git", + "url": "https://github.com/twigphp/twig-extra-bundle.git", + "reference": "f10baafe6eb0ecd615d52d5cbfb713a39f68e8f3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/twigphp/twig-extra-bundle/zipball/f10baafe6eb0ecd615d52d5cbfb713a39f68e8f3", + "reference": "f10baafe6eb0ecd615d52d5cbfb713a39f68e8f3", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/framework-bundle": "^5.4|^6.0", + "symfony/twig-bundle": "^5.4|^6.0", + "twig/twig": "^2.7|^3.0" + }, + "require-dev": { + "league/commonmark": "^1.0|^2.0", + "symfony/phpunit-bridge": "^5.4|^6.3", + "twig/cache-extra": "^3.0", + "twig/cssinliner-extra": "^2.12|^3.0", + "twig/html-extra": "^2.12|^3.0", + "twig/inky-extra": "^2.12|^3.0", + "twig/intl-extra": "^2.12|^3.0", + "twig/markdown-extra": "^2.12|^3.0", + "twig/string-extra": "^2.12|^3.0" + }, + "type": "symfony-bundle", + "autoload": { + "psr-4": { + "Twig\\Extra\\TwigExtraBundle\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com", + "homepage": "http://fabien.potencier.org", + "role": "Lead Developer" + } + ], + "description": "A Symfony bundle for extra Twig extensions", + "homepage": "https://twig.symfony.com", + "keywords": [ + "bundle", + "extra", + "twig" + ], + "support": { + "source": "https://github.com/twigphp/twig-extra-bundle/tree/v3.7.1" + }, + "funding": [ + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/twig/twig", + "type": "tidelift" + } + ], + "time": "2023-07-29T15:34:56+00:00" + }, + { + "name": "twig/twig", + "version": "v3.7.1", + "source": { + "type": "git", + "url": "https://github.com/twigphp/Twig.git", + "reference": "a0ce373a0ca3bf6c64b9e3e2124aca502ba39554" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/twigphp/Twig/zipball/a0ce373a0ca3bf6c64b9e3e2124aca502ba39554", + "reference": "a0ce373a0ca3bf6c64b9e3e2124aca502ba39554", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/polyfill-ctype": "^1.8", + "symfony/polyfill-mbstring": "^1.3" + }, + "require-dev": { + "psr/container": "^1.0|^2.0", + "symfony/phpunit-bridge": "^5.4.9|^6.3" + }, + "type": "library", + "autoload": { + "psr-4": { + "Twig\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com", + "homepage": "http://fabien.potencier.org", + "role": "Lead Developer" + }, + { + "name": "Twig Team", + "role": "Contributors" + }, + { + "name": "Armin Ronacher", + "email": "armin.ronacher@active-4.com", + "role": "Project Founder" + } + ], + "description": "Twig, the flexible, fast, and secure template language for PHP", + "homepage": "https://twig.symfony.com", + "keywords": [ + "templating" + ], + "support": { + "issues": "https://github.com/twigphp/Twig/issues", + "source": "https://github.com/twigphp/Twig/tree/v3.7.1" + }, + "funding": [ + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/twig/twig", + "type": "tidelift" + } + ], + "time": "2023-08-28T11:09:02+00:00" + }, + { + "name": "webmozart/assert", + "version": "1.11.0", + "source": { + "type": "git", + "url": "https://github.com/webmozarts/assert.git", + "reference": "11cb2199493b2f8a3b53e7f19068fc6aac760991" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/webmozarts/assert/zipball/11cb2199493b2f8a3b53e7f19068fc6aac760991", + "reference": "11cb2199493b2f8a3b53e7f19068fc6aac760991", + "shasum": "" + }, + "require": { + "ext-ctype": "*", + "php": "^7.2 || ^8.0" + }, + "conflict": { + "phpstan/phpstan": "<0.12.20", + "vimeo/psalm": "<4.6.1 || 4.6.2" + }, + "require-dev": { + "phpunit/phpunit": "^8.5.13" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.10-dev" + } + }, + "autoload": { + "psr-4": { + "Webmozart\\Assert\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Bernhard Schussek", + "email": "bschussek@gmail.com" + } + ], + "description": "Assertions to validate method input/output with nice error messages.", + "keywords": [ + "assert", + "check", + "validate" + ], + "support": { + "issues": "https://github.com/webmozarts/assert/issues", + "source": "https://github.com/webmozarts/assert/tree/1.11.0" + }, + "time": "2022-06-03T18:03:27+00:00" + } + ], + "packages-dev": [ + { + "name": "masterminds/html5", + "version": "2.8.1", + "source": { + "type": "git", + "url": "https://github.com/Masterminds/html5-php.git", + "reference": "f47dcf3c70c584de14f21143c55d9939631bc6cf" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Masterminds/html5-php/zipball/f47dcf3c70c584de14f21143c55d9939631bc6cf", + "reference": "f47dcf3c70c584de14f21143c55d9939631bc6cf", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "php": ">=5.3.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.8.35 || ^5.7.21 || ^6 || ^7 || ^8" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.7-dev" + } + }, + "autoload": { + "psr-4": { + "Masterminds\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Matt Butcher", + "email": "technosophos@gmail.com" + }, + { + "name": "Matt Farina", + "email": "matt@mattfarina.com" + }, + { + "name": "Asmir Mustafic", + "email": "goetas@gmail.com" + } + ], + "description": "An HTML5 parser and serializer.", + "homepage": "http://masterminds.github.io/html5-php", + "keywords": [ + "HTML5", + "dom", + "html", + "parser", + "querypath", + "serializer", + "xml" + ], + "support": { + "issues": "https://github.com/Masterminds/html5-php/issues", + "source": "https://github.com/Masterminds/html5-php/tree/2.8.1" + }, + "time": "2023-05-10T11:58:31+00:00" + }, + { + "name": "myclabs/deep-copy", + "version": "1.11.1", + "source": { + "type": "git", + "url": "https://github.com/myclabs/DeepCopy.git", + "reference": "7284c22080590fb39f2ffa3e9057f10a4ddd0e0c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/7284c22080590fb39f2ffa3e9057f10a4ddd0e0c", + "reference": "7284c22080590fb39f2ffa3e9057f10a4ddd0e0c", + "shasum": "" + }, + "require": { + "php": "^7.1 || ^8.0" + }, + "conflict": { + "doctrine/collections": "<1.6.8", + "doctrine/common": "<2.13.3 || >=3,<3.2.2" + }, + "require-dev": { + "doctrine/collections": "^1.6.8", + "doctrine/common": "^2.13.3 || ^3.2.2", + "phpunit/phpunit": "^7.5.20 || ^8.5.23 || ^9.5.13" + }, + "type": "library", + "autoload": { + "files": [ + "src/DeepCopy/deep_copy.php" + ], + "psr-4": { + "DeepCopy\\": "src/DeepCopy/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "Create deep copies (clones) of your objects", + "keywords": [ + "clone", + "copy", + "duplicate", + "object", + "object graph" + ], + "support": { + "issues": "https://github.com/myclabs/DeepCopy/issues", + "source": "https://github.com/myclabs/DeepCopy/tree/1.11.1" + }, + "funding": [ + { + "url": "https://tidelift.com/funding/github/packagist/myclabs/deep-copy", + "type": "tidelift" + } + ], + "time": "2023-03-08T13:26:56+00:00" + }, + { + "name": "nikic/php-parser", + "version": "v4.17.1", + "source": { + "type": "git", + "url": "https://github.com/nikic/PHP-Parser.git", + "reference": "a6303e50c90c355c7eeee2c4a8b27fe8dc8fef1d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/a6303e50c90c355c7eeee2c4a8b27fe8dc8fef1d", + "reference": "a6303e50c90c355c7eeee2c4a8b27fe8dc8fef1d", + "shasum": "" + }, + "require": { + "ext-tokenizer": "*", + "php": ">=7.0" + }, + "require-dev": { + "ircmaxell/php-yacc": "^0.0.7", + "phpunit/phpunit": "^6.5 || ^7.0 || ^8.0 || ^9.0" + }, + "bin": [ + "bin/php-parse" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.9-dev" + } + }, + "autoload": { + "psr-4": { + "PhpParser\\": "lib/PhpParser" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Nikita Popov" + } + ], + "description": "A PHP parser written in PHP", + "keywords": [ + "parser", + "php" + ], + "support": { + "issues": "https://github.com/nikic/PHP-Parser/issues", + "source": "https://github.com/nikic/PHP-Parser/tree/v4.17.1" + }, + "time": "2023-08-13T19:53:39+00:00" + }, + { + "name": "phar-io/manifest", + "version": "2.0.3", + "source": { + "type": "git", + "url": "https://github.com/phar-io/manifest.git", + "reference": "97803eca37d319dfa7826cc2437fc020857acb53" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phar-io/manifest/zipball/97803eca37d319dfa7826cc2437fc020857acb53", + "reference": "97803eca37d319dfa7826cc2437fc020857acb53", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-phar": "*", + "ext-xmlwriter": "*", + "phar-io/version": "^3.0.1", + "php": "^7.2 || ^8.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Arne Blankerts", + "email": "arne@blankerts.de", + "role": "Developer" + }, + { + "name": "Sebastian Heuer", + "email": "sebastian@phpeople.de", + "role": "Developer" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "Developer" + } + ], + "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)", + "support": { + "issues": "https://github.com/phar-io/manifest/issues", + "source": "https://github.com/phar-io/manifest/tree/2.0.3" + }, + "time": "2021-07-20T11:28:43+00:00" + }, + { + "name": "phar-io/version", + "version": "3.2.1", + "source": { + "type": "git", + "url": "https://github.com/phar-io/version.git", + "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phar-io/version/zipball/4f7fd7836c6f332bb2933569e566a0d6c4cbed74", + "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0" + }, + "type": "library", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Arne Blankerts", + "email": "arne@blankerts.de", + "role": "Developer" + }, + { + "name": "Sebastian Heuer", + "email": "sebastian@phpeople.de", + "role": "Developer" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "Developer" + } + ], + "description": "Library for handling version information and constraints", + "support": { + "issues": "https://github.com/phar-io/version/issues", + "source": "https://github.com/phar-io/version/tree/3.2.1" + }, + "time": "2022-02-21T01:04:05+00:00" + }, + { + "name": "phpunit/php-code-coverage", + "version": "9.2.29", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-code-coverage.git", + "reference": "6a3a87ac2bbe33b25042753df8195ba4aa534c76" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/6a3a87ac2bbe33b25042753df8195ba4aa534c76", + "reference": "6a3a87ac2bbe33b25042753df8195ba4aa534c76", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-libxml": "*", + "ext-xmlwriter": "*", + "nikic/php-parser": "^4.15", + "php": ">=7.3", + "phpunit/php-file-iterator": "^3.0.3", + "phpunit/php-text-template": "^2.0.2", + "sebastian/code-unit-reverse-lookup": "^2.0.2", + "sebastian/complexity": "^2.0", + "sebastian/environment": "^5.1.2", + "sebastian/lines-of-code": "^1.0.3", + "sebastian/version": "^3.0.1", + "theseer/tokenizer": "^1.2.0" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "suggest": { + "ext-pcov": "PHP extension that provides line coverage", + "ext-xdebug": "PHP extension that provides line coverage as well as branch and path coverage" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "9.2-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.", + "homepage": "https://github.com/sebastianbergmann/php-code-coverage", + "keywords": [ + "coverage", + "testing", + "xunit" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", + "security": "https://github.com/sebastianbergmann/php-code-coverage/security/policy", + "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.29" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2023-09-19T04:57:46+00:00" + }, + { + "name": "phpunit/php-file-iterator", + "version": "3.0.6", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-file-iterator.git", + "reference": "cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf", + "reference": "cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "FilterIterator implementation that filters files based on a list of suffixes.", + "homepage": "https://github.com/sebastianbergmann/php-file-iterator/", + "keywords": [ + "filesystem", + "iterator" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-file-iterator/issues", + "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/3.0.6" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2021-12-02T12:48:52+00:00" + }, + { + "name": "phpunit/php-invoker", + "version": "3.1.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-invoker.git", + "reference": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/5a10147d0aaf65b58940a0b72f71c9ac0423cc67", + "reference": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "ext-pcntl": "*", + "phpunit/phpunit": "^9.3" + }, + "suggest": { + "ext-pcntl": "*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.1-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Invoke callables with a timeout", + "homepage": "https://github.com/sebastianbergmann/php-invoker/", + "keywords": [ + "process" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-invoker/issues", + "source": "https://github.com/sebastianbergmann/php-invoker/tree/3.1.1" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-09-28T05:58:55+00:00" + }, + { + "name": "phpunit/php-text-template", + "version": "2.0.4", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-text-template.git", + "reference": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28", + "reference": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Simple template engine.", + "homepage": "https://github.com/sebastianbergmann/php-text-template/", + "keywords": [ + "template" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-text-template/issues", + "source": "https://github.com/sebastianbergmann/php-text-template/tree/2.0.4" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T05:33:50+00:00" + }, + { + "name": "phpunit/php-timer", + "version": "5.0.3", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-timer.git", + "reference": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2", + "reference": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Utility class for timing", + "homepage": "https://github.com/sebastianbergmann/php-timer/", + "keywords": [ + "timer" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-timer/issues", + "source": "https://github.com/sebastianbergmann/php-timer/tree/5.0.3" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T13:16:10+00:00" + }, + { + "name": "phpunit/phpunit", + "version": "9.6.13", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/phpunit.git", + "reference": "f3d767f7f9e191eab4189abe41ab37797e30b1be" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/f3d767f7f9e191eab4189abe41ab37797e30b1be", + "reference": "f3d767f7f9e191eab4189abe41ab37797e30b1be", + "shasum": "" + }, + "require": { + "doctrine/instantiator": "^1.3.1 || ^2", + "ext-dom": "*", + "ext-json": "*", + "ext-libxml": "*", + "ext-mbstring": "*", + "ext-xml": "*", + "ext-xmlwriter": "*", + "myclabs/deep-copy": "^1.10.1", + "phar-io/manifest": "^2.0.3", + "phar-io/version": "^3.0.2", + "php": ">=7.3", + "phpunit/php-code-coverage": "^9.2.28", + "phpunit/php-file-iterator": "^3.0.5", + "phpunit/php-invoker": "^3.1.1", + "phpunit/php-text-template": "^2.0.3", + "phpunit/php-timer": "^5.0.2", + "sebastian/cli-parser": "^1.0.1", + "sebastian/code-unit": "^1.0.6", + "sebastian/comparator": "^4.0.8", + "sebastian/diff": "^4.0.3", + "sebastian/environment": "^5.1.3", + "sebastian/exporter": "^4.0.5", + "sebastian/global-state": "^5.0.1", + "sebastian/object-enumerator": "^4.0.3", + "sebastian/resource-operations": "^3.0.3", + "sebastian/type": "^3.2", + "sebastian/version": "^3.0.2" + }, + "suggest": { + "ext-soap": "To be able to generate mocks based on WSDL files", + "ext-xdebug": "PHP extension that provides line coverage as well as branch and path coverage" + }, + "bin": [ + "phpunit" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "9.6-dev" + } + }, + "autoload": { + "files": [ + "src/Framework/Assert/Functions.php" + ], + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "The PHP Unit Testing framework.", + "homepage": "https://phpunit.de/", + "keywords": [ + "phpunit", + "testing", + "xunit" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/phpunit/issues", + "security": "https://github.com/sebastianbergmann/phpunit/security/policy", + "source": "https://github.com/sebastianbergmann/phpunit/tree/9.6.13" + }, + "funding": [ + { + "url": "https://phpunit.de/sponsors.html", + "type": "custom" + }, + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/phpunit/phpunit", + "type": "tidelift" + } + ], + "time": "2023-09-19T05:39:22+00:00" + }, + { + "name": "roave/security-advisories", + "version": "dev-latest", + "source": { + "type": "git", + "url": "https://github.com/Roave/SecurityAdvisories.git", + "reference": "2f42c940aab53728fa307ebd78c42494fcd663d1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Roave/SecurityAdvisories/zipball/2f42c940aab53728fa307ebd78c42494fcd663d1", + "reference": "2f42c940aab53728fa307ebd78c42494fcd663d1", + "shasum": "" + }, + "conflict": { + "3f/pygmentize": "<1.2", + "admidio/admidio": "<4.2.11", + "adodb/adodb-php": "<=5.20.20|>=5.21,<=5.21.3", + "aheinze/cockpit": "<2.2", + "aimeos/aimeos-typo3": "<19.10.12|>=20,<20.10.5", + "akaunting/akaunting": "<2.1.13", + "akeneo/pim-community-dev": "<5.0.119|>=6,<6.0.53", + "alextselegidis/easyappointments": "<1.5", + "alterphp/easyadmin-extension-bundle": ">=1.2,<1.2.11|>=1.3,<1.3.1", + "amazing/media2click": ">=1,<1.3.3", + "amphp/artax": "<1.0.6|>=2,<2.0.6", + "amphp/http": "<1.0.1", + "amphp/http-client": ">=4,<4.4", + "anchorcms/anchor-cms": "<=0.12.7", + "andreapollastri/cipi": "<=3.1.15", + "andrewhaine/silverstripe-form-capture": ">=0.2,<=0.2.3|>=1,<1.0.2|>=2,<2.2.5", + "apache-solr-for-typo3/solr": "<2.8.3", + "apereo/phpcas": "<1.6", + "api-platform/core": ">=2.2,<2.2.10|>=2.3,<2.3.6|>=2.6,<2.7.10|>=3,<3.0.12|>=3.1,<3.1.3", + "appwrite/server-ce": "<=1.2.1", + "arc/web": "<3", + "area17/twill": "<1.2.5|>=2,<2.5.3", + "artesaos/seotools": "<0.17.2", + "asymmetricrypt/asymmetricrypt": "<9.9.99", + "athlon1600/php-proxy": "<=5.1", + "athlon1600/php-proxy-app": "<=3", + "austintoddj/canvas": "<=3.4.2", + "automad/automad": "<1.8", + "awesome-support/awesome-support": "<=6.0.7", + "aws/aws-sdk-php": ">=3,<3.2.1", + "azuracast/azuracast": "<0.18.3", + "backdrop/backdrop": "<1.24.2", + "backpack/crud": "<3.4.9", + "bacula-web/bacula-web": "<8.0.0.0-RC2-dev", + "badaso/core": "<2.7", + "bagisto/bagisto": "<0.1.5", + "barrelstrength/sprout-base-email": "<1.2.7", + "barrelstrength/sprout-forms": "<3.9", + "barryvdh/laravel-translation-manager": "<0.6.2", + "barzahlen/barzahlen-php": "<2.0.1", + "baserproject/basercms": "<4.8", + "bassjobsen/bootstrap-3-typeahead": ">4.0.2", + "bigfork/silverstripe-form-capture": ">=3,<3.1.1", + "billz/raspap-webgui": "<=2.9.2", + "bk2k/bootstrap-package": ">=7.1,<7.1.2|>=8,<8.0.8|>=9,<9.0.4|>=9.1,<9.1.3|>=10,<10.0.10|>=11,<11.0.3", + "bmarshall511/wordpress_zero_spam": "<5.2.13", + "bolt/bolt": "<3.7.2", + "bolt/core": "<=4.2", + "bottelet/flarepoint": "<2.2.1", + "brightlocal/phpwhois": "<=4.2.5", + "brotkrueml/codehighlight": "<2.7", + "brotkrueml/schema": "<1.13.1|>=2,<2.5.1", + "brotkrueml/typo3-matomo-integration": "<1.3.2", + "buddypress/buddypress": "<7.2.1", + "bugsnag/bugsnag-laravel": "<2.0.2", + "bytefury/crater": "<6.0.2", + "cachethq/cachet": "<2.5.1", + "cakephp/cakephp": "<3.10.3|>=4,<4.0.10|>=4.1,<4.1.4|>=4.2,<4.2.12|>=4.3,<4.3.11|>=4.4,<4.4.10", + "cakephp/database": ">=4.2,<4.2.12|>=4.3,<4.3.11|>=4.4,<4.4.10", + "cardgate/magento2": "<2.0.33", + "cardgate/woocommerce": "<=3.1.15", + "cart2quote/module-quotation": ">=4.1.6,<=4.4.5|>=5,<5.4.4", + "cartalyst/sentry": "<=2.1.6", + "catfan/medoo": "<1.7.5", + "cecil/cecil": "<7.47.1", + "centreon/centreon": "<22.10.0.0-beta1", + "cesnet/simplesamlphp-module-proxystatistics": "<3.1", + "chriskacerguis/codeigniter-restserver": "<=2.7.1", + "civicrm/civicrm-core": ">=4.2,<4.2.9|>=4.3,<4.3.3", + "cockpit-hq/cockpit": "<=2.6.3", + "codeception/codeception": "<3.1.3|>=4,<4.1.22", + "codeigniter/framework": "<3.1.9", + "codeigniter4/framework": "<=4.4.2", + "codeigniter4/shield": "<1.0.0.0-beta4", + "codiad/codiad": "<=2.8.4", + "composer/composer": "<1.10.27|>=2,<2.2.22|>=2.3,<2.6.4", + "concrete5/concrete5": "<=9.2.1", + "concrete5/core": "<8.5.8|>=9,<9.1", + "contao-components/mediaelement": ">=2.14.2,<2.21.1", + "contao/contao": ">=4,<4.4.56|>=4.5,<4.9.40|>=4.10,<4.11.7|>=4.13,<4.13.21|>=5.1,<5.1.4", + "contao/core": ">=2,<3.5.39", + "contao/core-bundle": "<4.9.42|>=4.10,<4.13.28|>=5,<5.1.10", + "contao/listing-bundle": ">=4,<4.4.8", + "contao/managed-edition": "<=1.5", + "cosenary/instagram": "<=2.3", + "craftcms/cms": "<=4.4.14", + "croogo/croogo": "<4", + "cuyz/valinor": "<0.12", + "czproject/git-php": "<4.0.3", + "darylldoyle/safe-svg": "<1.9.10", + "datadog/dd-trace": ">=0.30,<0.30.2", + "datatables/datatables": "<1.10.10", + "david-garcia/phpwhois": "<=4.3.1", + "dbrisinajumi/d2files": "<1", + "dcat/laravel-admin": "<=2.1.3.0-beta", + "derhansen/fe_change_pwd": "<2.0.5|>=3,<3.0.3", + "derhansen/sf_event_mgt": "<4.3.1|>=5,<5.1.1", + "desperado/xml-bundle": "<=0.1.7", + "directmailteam/direct-mail": "<5.2.4", + "doctrine/annotations": "<1.2.7", + "doctrine/cache": "<1.3.2|>=1.4,<1.4.2", + "doctrine/common": "<2.4.3|>=2.5,<2.5.1", + "doctrine/dbal": ">=2,<2.0.8|>=2.1,<2.1.2|>=3,<3.1.4", + "doctrine/doctrine-bundle": "<1.5.2", + "doctrine/doctrine-module": "<=0.7.1", + "doctrine/mongodb-odm": "<1.0.2", + "doctrine/mongodb-odm-bundle": "<3.0.1", + "doctrine/orm": ">=2,<2.4.8|>=2.5,<2.5.1|>=2.8.3,<2.8.4", + "dolibarr/dolibarr": "<18.0.2", + "dompdf/dompdf": "<2.0.2|==2.0.2", + "drupal/core": "<9.4.14|>=9.5,<9.5.8|>=10,<10.0.8", + "drupal/drupal": ">=6,<6.38|>=7,<7.80|>=8,<8.9.16|>=9,<9.1.12|>=9.2,<9.2.4", + "dweeves/magmi": "<=0.7.24", + "ecodev/newsletter": "<=4", + "ectouch/ectouch": "<=2.7.2", + "elefant/cms": "<2.0.7", + "elgg/elgg": "<3.3.24|>=4,<4.0.5", + "encore/laravel-admin": "<=1.8.19", + "endroid/qr-code-bundle": "<3.4.2", + "enshrined/svg-sanitize": "<0.15", + "erusev/parsedown": "<1.7.2", + "ether/logs": "<3.0.4", + "evolutioncms/evolution": "<=3.2.3", + "exceedone/exment": "<4.4.3|>=5,<5.0.3", + "exceedone/laravel-admin": "<2.2.3|==3", + "ezsystems/demobundle": ">=5.4,<5.4.6.1-dev", + "ezsystems/ez-support-tools": ">=2.2,<2.2.3", + "ezsystems/ezdemo-ls-extension": ">=5.4,<5.4.2.1-dev", + "ezsystems/ezfind-ls": ">=5.3,<5.3.6.1-dev|>=5.4,<5.4.11.1-dev|>=2017.12,<2017.12.0.1-dev", + "ezsystems/ezplatform": "<=1.13.6|>=2,<=2.5.24", + "ezsystems/ezplatform-admin-ui": ">=1.3,<1.3.5|>=1.4,<1.4.6|>=1.5,<1.5.29|>=2.3,<2.3.26", + "ezsystems/ezplatform-admin-ui-assets": ">=4,<4.2.1|>=5,<5.0.1|>=5.1,<5.1.1", + "ezsystems/ezplatform-graphql": ">=1.0.0.0-RC1-dev,<1.0.13|>=2.0.0.0-beta1,<2.3.12", + "ezsystems/ezplatform-kernel": "<1.2.5.1-dev|>=1.3,<1.3.26", + "ezsystems/ezplatform-rest": ">=1.2,<=1.2.2|>=1.3,<1.3.8", + "ezsystems/ezplatform-richtext": ">=2.3,<2.3.7.1-dev", + "ezsystems/ezplatform-user": ">=1,<1.0.1", + "ezsystems/ezpublish-kernel": "<6.13.8.2-dev|>=7,<7.5.30", + "ezsystems/ezpublish-legacy": "<=2017.12.7.3|>=2018.6,<=2019.03.5.1", + "ezsystems/platform-ui-assets-bundle": ">=4.2,<4.2.3", + "ezsystems/repository-forms": ">=2.3,<2.3.2.1-dev|>=2.5,<2.5.15", + "ezyang/htmlpurifier": "<4.1.1", + "facade/ignition": "<1.16.15|>=2,<2.4.2|>=2.5,<2.5.2", + "facturascripts/facturascripts": "<=2022.08", + "feehi/cms": "<=2.1.1", + "feehi/feehicms": "<=2.1.1", + "fenom/fenom": "<=2.12.1", + "filegator/filegator": "<7.8", + "firebase/php-jwt": "<6", + "fixpunkt/fp-masterquiz": "<2.2.1|>=3,<3.5.2", + "fixpunkt/fp-newsletter": "<1.1.1|>=2,<2.1.2|>=2.2,<3.2.6", + "flarum/core": "<1.8", + "flarum/framework": "<1.8", + "flarum/mentions": "<1.6.3", + "flarum/sticky": ">=0.1.0.0-beta14,<=0.1.0.0-beta15", + "flarum/tags": "<=0.1.0.0-beta13", + "fluidtypo3/vhs": "<5.1.1", + "fof/byobu": ">=0.3.0.0-beta2,<1.1.7", + "fof/upload": "<1.2.3", + "foodcoopshop/foodcoopshop": "<3.6.1", + "fooman/tcpdf": "<6.2.22", + "forkcms/forkcms": "<5.11.1", + "fossar/tcpdf-parser": "<6.2.22", + "francoisjacquet/rosariosis": "<11", + "frappant/frp-form-answers": "<3.1.2|>=4,<4.0.2", + "friendsofsymfony/oauth2-php": "<1.3", + "friendsofsymfony/rest-bundle": ">=1.2,<1.2.2", + "friendsofsymfony/user-bundle": ">=1.2,<1.3.5", + "friendsoftypo3/mediace": ">=7.6.2,<7.6.5", + "friendsoftypo3/openid": ">=4.5,<4.5.31|>=4.7,<4.7.16|>=6,<6.0.11|>=6.1,<6.1.6", + "froala/wysiwyg-editor": "<3.2.7|>=4.0.1,<=4.1.1", + "froxlor/froxlor": "<2.1", + "fuel/core": "<1.8.1", + "funadmin/funadmin": "<=3.2|>=3.3.2,<=3.3.3", + "gaoming13/wechat-php-sdk": "<=1.10.2", + "genix/cms": "<=1.1.11", + "getgrav/grav": "<=1.7.42.1", + "getkirby/cms": "<3.5.8.3-dev|>=3.6,<3.6.6.3-dev|>=3.7,<3.7.5.2-dev|>=3.8,<3.8.4.1-dev|>=3.9,<3.9.6", + "getkirby/kirby": "<=2.5.12", + "getkirby/panel": "<2.5.14", + "getkirby/starterkit": "<=3.7.0.2", + "gilacms/gila": "<=1.11.4", + "gleez/cms": "<=1.2|==2", + "globalpayments/php-sdk": "<2", + "gogentooss/samlbase": "<1.2.7", + "google/protobuf": "<3.15", + "gos/web-socket-bundle": "<1.10.4|>=2,<2.6.1|>=3,<3.3", + "gree/jose": "<2.2.1", + "gregwar/rst": "<1.0.3", + "grumpydictator/firefly-iii": "<6", + "gugoan/economizzer": "<=0.9.0.0-beta1", + "guzzlehttp/guzzle": "<6.5.8|>=7,<7.4.5", + "guzzlehttp/psr7": "<1.9.1|>=2,<2.4.5", + "haffner/jh_captcha": "<=2.1.3|>=3,<=3.0.2", + "harvesthq/chosen": "<1.8.7", + "helloxz/imgurl": "<=2.31", + "hhxsv5/laravel-s": "<3.7.36", + "hillelcoren/invoice-ninja": "<5.3.35", + "himiklab/yii2-jqgrid-widget": "<1.0.8", + "hjue/justwriting": "<=1", + "hov/jobfair": "<1.0.13|>=2,<2.0.2", + "httpsoft/http-message": "<1.0.12", + "hyn/multi-tenant": ">=5.6,<5.7.2", + "ibexa/admin-ui": ">=4.2,<4.2.3", + "ibexa/core": ">=4,<4.0.7|>=4.1,<4.1.4|>=4.2,<4.2.3", + "ibexa/graphql": ">=2.5,<2.5.31|>=3.3,<3.3.28|>=4.2,<4.2.3", + "ibexa/post-install": "<=1.0.4", + "ibexa/user": ">=4,<4.4.3", + "icecoder/icecoder": "<=8.1", + "idno/known": "<=1.3.1", + "illuminate/auth": ">=4,<4.0.99|>=4.1,<=4.1.31|>=4.2,<=4.2.22|>=5,<=5.0.35|>=5.1,<=5.1.46|>=5.2,<=5.2.45|>=5.3,<=5.3.31|>=5.4,<=5.4.36|>=5.5,<5.5.10", + "illuminate/cookie": ">=4,<=4.0.11|>=4.1,<=4.1.99999|>=4.2,<=4.2.99999|>=5,<=5.0.99999|>=5.1,<=5.1.99999|>=5.2,<=5.2.99999|>=5.3,<=5.3.99999|>=5.4,<=5.4.99999|>=5.5,<=5.5.49|>=5.6,<=5.6.99999|>=5.7,<=5.7.99999|>=5.8,<=5.8.99999|>=6,<6.18.31|>=7,<7.22.4", + "illuminate/database": "<6.20.26|>=7,<7.30.5|>=8,<8.40", + "illuminate/encryption": ">=4,<=4.0.11|>=4.1,<=4.1.31|>=4.2,<=4.2.22|>=5,<=5.0.35|>=5.1,<=5.1.46|>=5.2,<=5.2.45|>=5.3,<=5.3.31|>=5.4,<=5.4.36|>=5.5,<5.5.40|>=5.6,<5.6.15", + "illuminate/view": "<6.20.42|>=7,<7.30.6|>=8,<8.75", + "impresscms/impresscms": "<=1.4.5", + "in2code/femanager": "<5.5.3|>=6,<6.3.4|>=7,<7.2.2", + "in2code/ipandlanguageredirect": "<5.1.2", + "in2code/lux": "<17.6.1|>=18,<24.0.2", + "innologi/typo3-appointments": "<2.0.6", + "intelliants/subrion": "<4.2.2", + "islandora/islandora": ">=2,<2.4.1", + "ivankristianto/phpwhois": "<=4.3", + "jackalope/jackalope-doctrine-dbal": "<1.7.4", + "james-heinrich/getid3": "<1.9.21", + "james-heinrich/phpthumb": "<1.7.12", + "jasig/phpcas": "<1.3.3", + "jcbrand/converse.js": "<3.3.3", + "joomla/application": "<1.0.13", + "joomla/archive": "<1.1.12|>=2,<2.0.1", + "joomla/filesystem": "<1.6.2|>=2,<2.0.1", + "joomla/filter": "<1.4.4|>=2,<2.0.1", + "joomla/framework": ">=2.5.4,<=3.8.12", + "joomla/input": ">=2,<2.0.2", + "joomla/joomla-cms": ">=2.5,<3.9.12", + "joomla/session": "<1.3.1", + "joyqi/hyper-down": "<=2.4.27", + "jsdecena/laracom": "<2.0.9", + "jsmitty12/phpwhois": "<5.1", + "kazist/phpwhois": "<=4.2.6", + "kelvinmo/simplexrd": "<3.1.1", + "kevinpapst/kimai2": "<1.16.7", + "khodakhah/nodcms": "<=3", + "kimai/kimai": "<=2.1", + "kitodo/presentation": "<3.2.3|>=3.3,<3.3.4", + "klaviyo/magento2-extension": ">=1,<3", + "knplabs/knp-snappy": "<=1.4.2", + "kohana/core": "<3.3.3", + "krayin/laravel-crm": "<1.2.2", + "kreait/firebase-php": ">=3.2,<3.8.1", + "la-haute-societe/tcpdf": "<6.2.22", + "laminas/laminas-diactoros": "<2.18.1|==2.19|==2.20|==2.21|==2.22|==2.23|>=2.24,<2.24.2|>=2.25,<2.25.2", + "laminas/laminas-form": "<2.17.1|>=3,<3.0.2|>=3.1,<3.1.1", + "laminas/laminas-http": "<2.14.2", + "laravel/fortify": "<1.11.1", + "laravel/framework": "<6.20.44|>=7,<7.30.6|>=8,<8.75", + "laravel/socialite": ">=1,<1.0.99|>=2,<2.0.10", + "latte/latte": "<2.10.8", + "lavalite/cms": "<=9", + "lcobucci/jwt": ">=3.4,<3.4.6|>=4,<4.0.4|>=4.1,<4.1.5", + "league/commonmark": "<0.18.3", + "league/flysystem": "<1.1.4|>=2,<2.1.1", + "league/oauth2-server": ">=8.3.2,<8.4.2|>=8.5,<8.5.3", + "lexik/jwt-authentication-bundle": "<2.10.7|>=2.11,<2.11.3", + "librenms/librenms": "<2017.08.18", + "liftkit/database": "<2.13.2", + "limesurvey/limesurvey": "<3.27.19", + "livehelperchat/livehelperchat": "<=3.91", + "livewire/livewire": ">2.2.4,<2.2.6", + "lms/routes": "<2.1.1", + "localizationteam/l10nmgr": "<7.4|>=8,<8.7|>=9,<9.2", + "luyadev/yii-helpers": "<1.2.1", + "magento/community-edition": "<=2.4", + "magento/magento1ce": "<1.9.4.3-dev", + "magento/magento1ee": ">=1,<1.14.4.3-dev", + "magento/product-community-edition": ">=2,<2.2.10|>=2.3,<2.3.2.0-patch2", + "maikuolan/phpmussel": ">=1,<1.6", + "mantisbt/mantisbt": "<=2.25.7", + "marcwillmann/turn": "<0.3.3", + "matyhtf/framework": "<3.0.6", + "mautic/core": "<4.3", + "mediawiki/core": ">=1.27,<1.27.6|>=1.29,<1.29.3|>=1.30,<1.30.2|>=1.31,<1.31.9|>=1.32,<1.32.6|>=1.32.99,<1.33.3|>=1.33.99,<1.34.3|>=1.34.99,<1.35", + "mediawiki/matomo": "<2.4.3", + "melisplatform/melis-asset-manager": "<5.0.1", + "melisplatform/melis-cms": "<5.0.1", + "melisplatform/melis-front": "<5.0.1", + "mezzio/mezzio-swoole": "<3.7|>=4,<4.3", + "mgallegos/laravel-jqgrid": "<=1.3", + "microweber/microweber": "<2", + "miniorange/miniorange-saml": "<1.4.3", + "mittwald/typo3_forum": "<1.2.1", + "mobiledetect/mobiledetectlib": "<2.8.32", + "modx/revolution": "<=2.8.3.0-patch", + "mojo42/jirafeau": "<4.4", + "mongodb/mongodb": ">=1,<1.9.2", + "monolog/monolog": ">=1.8,<1.12", + "moodle/moodle": "<4.2.0.0-RC2-dev|==4.2", + "mos/cimage": "<0.7.19", + "movim/moxl": ">=0.8,<=0.10", + "mpdf/mpdf": "<=7.1.7", + "mustache/mustache": ">=2,<2.14.1", + "namshi/jose": "<2.2", + "neoan3-apps/template": "<1.1.1", + "neorazorx/facturascripts": "<2022.04", + "neos/flow": ">=1,<1.0.4|>=1.1,<1.1.1|>=2,<2.0.1|>=2.3,<2.3.16|>=3,<3.0.12|>=3.1,<3.1.10|>=3.2,<3.2.13|>=3.3,<3.3.13|>=4,<4.0.6", + "neos/form": ">=1.2,<4.3.3|>=5,<5.0.9|>=5.1,<5.1.3", + "neos/neos": ">=1.1,<1.1.3|>=1.2,<1.2.13|>=2,<2.0.4|>=2.3,<2.9.99|>=3,<3.0.20|>=3.1,<3.1.18|>=3.2,<3.2.14|>=3.3,<5.3.10|>=7,<7.0.9|>=7.1,<7.1.7|>=7.2,<7.2.6|>=7.3,<7.3.4|>=8,<8.0.2", + "neos/neos-ui": "<=8.3.3", + "neos/swiftmailer": ">=4.1,<4.1.99|>=5.4,<5.4.5", + "netgen/tagsbundle": ">=3.4,<3.4.11|>=4,<4.0.15", + "nette/application": ">=2,<2.0.19|>=2.1,<2.1.13|>=2.2,<2.2.10|>=2.3,<2.3.14|>=2.4,<2.4.16|>=3,<3.0.6", + "nette/nette": ">=2,<2.0.19|>=2.1,<2.1.13", + "nilsteampassnet/teampass": "<3.0.10", + "nonfiction/nterchange": "<4.1.1", + "notrinos/notrinos-erp": "<=0.7", + "noumo/easyii": "<=0.9", + "nukeviet/nukeviet": "<4.5.02", + "nyholm/psr7": "<1.6.1", + "nystudio107/craft-seomatic": "<3.4.12", + "nzo/url-encryptor-bundle": ">=4,<4.3.2|>=5,<5.0.1", + "october/backend": "<1.1.2", + "october/cms": "<1.0.469|==1.0.469|==1.0.471|==1.1.1", + "october/october": "<=3.4.4", + "october/rain": "<1.0.472|>=1.1,<1.1.2", + "october/system": "<1.0.476|>=1.1,<1.1.12|>=2,<2.2.34|>=3,<3.0.66", + "omeka/omeka-s": "<4.0.3", + "onelogin/php-saml": "<2.10.4", + "oneup/uploader-bundle": "<1.9.3|>=2,<2.1.5", + "open-web-analytics/open-web-analytics": "<1.7.4", + "opencart/opencart": "<=3.0.3.7|>=4,<4.0.2.3-dev", + "openid/php-openid": "<2.3", + "openmage/magento-lts": "<=19.5|>=20,<=20.1", + "opensource-workshop/connect-cms": "<1.7.2|>=2,<2.3.2", + "orchid/platform": ">=9,<9.4.4|>=14.0.0.0-alpha4,<14.5", + "oro/commerce": ">=4.1,<5.0.11|>=5.1,<5.1.1", + "oro/crm": ">=1.7,<1.7.4|>=3.1,<4.1.17|>=4.2,<4.2.7", + "oro/platform": ">=1.7,<1.7.4|>=3.1,<3.1.29|>=4.1,<4.1.17|>=4.2,<4.2.8", + "oxid-esales/oxideshop-ce": "<4.5", + "packbackbooks/lti-1-3-php-library": "<5", + "padraic/humbug_get_contents": "<1.1.2", + "pagarme/pagarme-php": "<3", + "pagekit/pagekit": "<=1.0.18", + "paragonie/random_compat": "<2", + "passbolt/passbolt_api": "<2.11", + "paypal/merchant-sdk-php": "<3.12", + "pear/archive_tar": "<1.4.14", + "pear/crypt_gpg": "<1.6.7", + "pear/pear": "<=1.10.1", + "pegasus/google-for-jobs": "<1.5.1|>=2,<2.1.1", + "personnummer/personnummer": "<3.0.2", + "phanan/koel": "<5.1.4", + "php-mod/curl": "<2.3.2", + "phpbb/phpbb": "<3.2.10|>=3.3,<3.3.1", + "phpfastcache/phpfastcache": "<6.1.5|>=7,<7.1.2|>=8,<8.0.7", + "phpmailer/phpmailer": "<6.5", + "phpmussel/phpmussel": ">=1,<1.6", + "phpmyadmin/phpmyadmin": "<5.2.1", + "phpmyfaq/phpmyfaq": "<=3.1.7", + "phpoffice/phpexcel": "<1.8", + "phpoffice/phpspreadsheet": "<1.16", + "phpseclib/phpseclib": "<2.0.31|>=3,<3.0.19", + "phpservermon/phpservermon": "<3.6", + "phpsysinfo/phpsysinfo": "<3.2.5", + "phpunit/phpunit": ">=4.8.19,<4.8.28|>=5,<5.6.3", + "phpwhois/phpwhois": "<=4.2.5", + "phpxmlrpc/extras": "<0.6.1", + "phpxmlrpc/phpxmlrpc": "<4.9.2", + "pi/pi": "<=2.5", + "pimcore/admin-ui-classic-bundle": "<1.2", + "pimcore/customer-management-framework-bundle": "<3.4.2", + "pimcore/data-hub": "<1.2.4", + "pimcore/demo": "<10.3", + "pimcore/perspective-editor": "<1.5.1", + "pimcore/pimcore": "<11.1", + "pixelfed/pixelfed": "<=0.11.4", + "pocketmine/bedrock-protocol": "<8.0.2", + "pocketmine/pocketmine-mp": "<=4.23|>=5,<5.3.1", + "pressbooks/pressbooks": "<5.18", + "prestashop/autoupgrade": ">=4,<4.10.1", + "prestashop/blockwishlist": ">=2,<2.1.1", + "prestashop/contactform": ">=1.0.1,<4.3", + "prestashop/gamification": "<2.3.2", + "prestashop/prestashop": "<8.1.2", + "prestashop/productcomments": "<5.0.2", + "prestashop/ps_emailsubscription": "<2.6.1", + "prestashop/ps_facetedsearch": "<3.4.1", + "prestashop/ps_linklist": "<3.1", + "privatebin/privatebin": "<1.4", + "processwire/processwire": "<=3.0.200", + "propel/propel": ">=2.0.0.0-alpha1,<=2.0.0.0-alpha7", + "propel/propel1": ">=1,<=1.7.1", + "pterodactyl/panel": "<1.7", + "ptheofan/yii2-statemachine": ">=2.0.0.0-RC1-dev,<=2", + "ptrofimov/beanstalk_console": "<1.7.14", + "pusher/pusher-php-server": "<2.2.1", + "pwweb/laravel-core": "<=0.3.6.0-beta", + "pyrocms/pyrocms": "<=3.9.1", + "rainlab/blog-plugin": "<1.4.1", + "rainlab/debugbar-plugin": "<3.1", + "rainlab/user-plugin": "<=1.4.5", + "rankmath/seo-by-rank-math": "<=1.0.95", + "rap2hpoutre/laravel-log-viewer": "<0.13", + "react/http": ">=0.7,<1.9", + "really-simple-plugins/complianz-gdpr": "<6.4.2", + "remdex/livehelperchat": "<3.99", + "rmccue/requests": ">=1.6,<1.8", + "robrichards/xmlseclibs": "<3.0.4", + "roots/soil": "<4.1", + "rudloff/alltube": "<3.0.3", + "s-cart/core": "<6.9", + "s-cart/s-cart": "<6.9", + "sabberworm/php-css-parser": ">=1,<1.0.1|>=2,<2.0.1|>=3,<3.0.1|>=4,<4.0.1|>=5,<5.0.9|>=5.1,<5.1.3|>=5.2,<5.2.1|>=6,<6.0.2|>=7,<7.0.4|>=8,<8.0.1|>=8.1,<8.1.1|>=8.2,<8.2.1|>=8.3,<8.3.1", + "sabre/dav": "<1.7.11|>=1.8,<1.8.9", + "scheb/two-factor-bundle": "<3.26|>=4,<4.11", + "sensiolabs/connect": "<4.2.3", + "serluck/phpwhois": "<=4.2.6", + "sfroemken/url_redirect": "<=1.2.1", + "sheng/yiicms": "<=1.2", + "shopware/core": "<=6.4.20", + "shopware/platform": "<=6.4.20", + "shopware/production": "<=6.3.5.2", + "shopware/shopware": "<=5.7.17", + "shopware/storefront": "<=6.4.8.1", + "shopxo/shopxo": "<2.2.6", + "showdoc/showdoc": "<2.10.4", + "silverstripe-australia/advancedreports": ">=1,<=2", + "silverstripe/admin": "<1.13.6", + "silverstripe/assets": ">=1,<1.11.1", + "silverstripe/cms": "<4.11.3", + "silverstripe/comments": ">=1.3,<1.9.99|>=2,<2.9.99|>=3,<3.1.1", + "silverstripe/forum": "<=0.6.1|>=0.7,<=0.7.3", + "silverstripe/framework": "<4.13.14|>=5,<5.0.13", + "silverstripe/graphql": "<3.8.2|>=4,<4.1.3|>=4.2,<4.2.5|>=4.3,<4.3.4|>=5,<5.0.3", + "silverstripe/hybridsessions": ">=1,<2.4.1|>=2.5,<2.5.1", + "silverstripe/recipe-cms": ">=4.5,<4.5.3", + "silverstripe/registry": ">=2.1,<2.1.2|>=2.2,<2.2.1", + "silverstripe/restfulserver": ">=1,<1.0.9|>=2,<2.0.4", + "silverstripe/silverstripe-omnipay": "<2.5.2|>=3,<3.0.2|>=3.1,<3.1.4|>=3.2,<3.2.1", + "silverstripe/subsites": ">=2,<2.6.1", + "silverstripe/taxonomy": ">=1.3,<1.3.1|>=2,<2.0.1", + "silverstripe/userforms": "<3", + "silverstripe/versioned-admin": ">=1,<1.11.1", + "simple-updates/phpwhois": "<=1", + "simplesamlphp/saml2": "<1.15.4|>=2,<2.3.8|>=3,<3.1.4", + "simplesamlphp/simplesamlphp": "<1.18.6", + "simplesamlphp/simplesamlphp-module-infocard": "<1.0.1", + "simplesamlphp/simplesamlphp-module-openid": "<1", + "simplesamlphp/simplesamlphp-module-openidprovider": "<0.9", + "simplito/elliptic-php": "<1.0.6", + "sitegeist/fluid-components": "<3.5", + "sjbr/sr-freecap": "<2.4.6|>=2.5,<2.5.3", + "slim/psr7": "<1.4.1|>=1.5,<1.5.1|>=1.6,<1.6.1", + "slim/slim": "<2.6", + "slub/slub-events": "<3.0.3", + "smarty/smarty": "<3.1.48|>=4,<4.3.1", + "snipe/snipe-it": "<=6.2.2", + "socalnick/scn-social-auth": "<1.15.2", + "socialiteproviders/steam": "<1.1", + "spatie/browsershot": "<3.57.4", + "spipu/html2pdf": "<5.2.8", + "spoon/library": "<1.4.1", + "spoonity/tcpdf": "<6.2.22", + "squizlabs/php_codesniffer": ">=1,<2.8.1|>=3,<3.0.1", + "ssddanbrown/bookstack": "<22.02.3", + "statamic/cms": "<4.10", + "stormpath/sdk": "<9.9.99", + "studio-42/elfinder": "<2.1.62", + "subhh/libconnect": "<7.0.8|>=8,<8.1", + "sukohi/surpass": "<1", + "sulu/sulu": "<1.6.44|>=2,<2.2.18|>=2.3,<2.3.8|==2.4.0.0-RC1|>=2.5,<2.5.10", + "sumocoders/framework-user-bundle": "<1.4", + "swag/paypal": "<5.4.4", + "swiftmailer/swiftmailer": ">=4,<5.4.5", + "sylius/admin-bundle": ">=1,<1.0.17|>=1.1,<1.1.9|>=1.2,<1.2.2", + "sylius/grid": ">=1,<1.1.19|>=1.2,<1.2.18|>=1.3,<1.3.13|>=1.4,<1.4.5|>=1.5,<1.5.1", + "sylius/grid-bundle": "<1.10.1", + "sylius/paypal-plugin": ">=1,<1.2.4|>=1.3,<1.3.1", + "sylius/resource-bundle": "<1.3.14|>=1.4,<1.4.7|>=1.5,<1.5.2|>=1.6,<1.6.4", + "sylius/sylius": "<1.9.10|>=1.10,<1.10.11|>=1.11,<1.11.2", + "symbiote/silverstripe-multivaluefield": ">=3,<3.0.99", + "symbiote/silverstripe-queuedjobs": ">=3,<3.0.2|>=3.1,<3.1.4|>=4,<4.0.7|>=4.1,<4.1.2|>=4.2,<4.2.4|>=4.3,<4.3.3|>=4.4,<4.4.3|>=4.5,<4.5.1|>=4.6,<4.6.4", + "symbiote/silverstripe-seed": "<6.0.3", + "symbiote/silverstripe-versionedfiles": "<=2.0.3", + "symfont/process": ">=0", + "symfony/cache": ">=3.1,<3.4.35|>=4,<4.2.12|>=4.3,<4.3.8", + "symfony/dependency-injection": ">=2,<2.0.17|>=2.7,<2.7.51|>=2.8,<2.8.50|>=3,<3.4.26|>=4,<4.1.12|>=4.2,<4.2.7", + "symfony/error-handler": ">=4.4,<4.4.4|>=5,<5.0.4", + "symfony/form": ">=2.3,<2.3.35|>=2.4,<2.6.12|>=2.7,<2.7.50|>=2.8,<2.8.49|>=3,<3.4.20|>=4,<4.0.15|>=4.1,<4.1.9|>=4.2,<4.2.1", + "symfony/framework-bundle": ">=2,<2.3.18|>=2.4,<2.4.8|>=2.5,<2.5.2|>=2.7,<2.7.51|>=2.8,<2.8.50|>=3,<3.4.26|>=4,<4.1.12|>=4.2,<4.2.7|>=5.3.14,<=5.3.14|>=5.4.3,<=5.4.3|>=6.0.3,<=6.0.3", + "symfony/http-foundation": ">=2,<2.8.52|>=3,<3.4.35|>=4,<4.2.12|>=4.3,<4.3.8|>=4.4,<4.4.7|>=5,<5.0.7", + "symfony/http-kernel": ">=2,<4.4.50|>=5,<5.4.20|>=6,<6.0.20|>=6.1,<6.1.12|>=6.2,<6.2.6", + "symfony/intl": ">=2.7,<2.7.38|>=2.8,<2.8.31|>=3,<3.2.14|>=3.3,<3.3.13", + "symfony/maker-bundle": ">=1.27,<1.29.2|>=1.30,<1.31.1", + "symfony/mime": ">=4.3,<4.3.8", + "symfony/phpunit-bridge": ">=2.8,<2.8.50|>=3,<3.4.26|>=4,<4.1.12|>=4.2,<4.2.7", + "symfony/polyfill": ">=1,<1.10", + "symfony/polyfill-php55": ">=1,<1.10", + "symfony/proxy-manager-bridge": ">=2.7,<2.7.51|>=2.8,<2.8.50|>=3,<3.4.26|>=4,<4.1.12|>=4.2,<4.2.7", + "symfony/routing": ">=2,<2.0.19", + "symfony/security": ">=2,<2.7.51|>=2.8,<3.4.49|>=4,<4.4.24|>=5,<5.2.8", + "symfony/security-bundle": ">=2,<4.4.50|>=5,<5.4.20|>=6,<6.0.20|>=6.1,<6.1.12|>=6.2,<6.2.6", + "symfony/security-core": ">=2.4,<2.6.13|>=2.7,<2.7.9|>=2.7.30,<2.7.32|>=2.8,<3.4.49|>=4,<4.4.24|>=5,<5.2.9", + "symfony/security-csrf": ">=2.4,<2.7.48|>=2.8,<2.8.41|>=3,<3.3.17|>=3.4,<3.4.11|>=4,<4.0.11", + "symfony/security-guard": ">=2.8,<3.4.48|>=4,<4.4.23|>=5,<5.2.8", + "symfony/security-http": ">=2.3,<2.3.41|>=2.4,<2.7.51|>=2.8,<2.8.50|>=3,<3.4.26|>=4,<4.2.12|>=4.3,<4.3.8|>=4.4,<4.4.7|>=5,<5.0.7|>=5.1,<5.2.8|>=5.3,<5.3.2", + "symfony/serializer": ">=2,<2.0.11|>=4.1,<4.4.35|>=5,<5.3.12", + "symfony/symfony": "<4.4.50|>=5,<5.4.20|>=6,<6.0.20|>=6.1,<6.1.12|>=6.2,<6.2.6", + "symfony/translation": ">=2,<2.0.17", + "symfony/ux-autocomplete": "<2.11.2", + "symfony/validator": ">=2,<2.0.24|>=2.1,<2.1.12|>=2.2,<2.2.5|>=2.3,<2.3.3", + "symfony/var-exporter": ">=4.2,<4.2.12|>=4.3,<4.3.8", + "symfony/web-profiler-bundle": ">=2,<2.3.19|>=2.4,<2.4.9|>=2.5,<2.5.4", + "symfony/yaml": ">=2,<2.0.22|>=2.1,<2.1.7", + "t3/dce": "<0.11.5|>=2.2,<2.6.2", + "t3g/svg-sanitizer": "<1.0.3", + "tastyigniter/tastyigniter": "<3.3", + "tcg/voyager": "<=1.4", + "tecnickcom/tcpdf": "<6.2.22", + "terminal42/contao-tablelookupwizard": "<3.3.5", + "thelia/backoffice-default-template": ">=2.1,<2.1.2", + "thelia/thelia": ">=2.1,<2.1.3", + "theonedemon/phpwhois": "<=4.2.5", + "thinkcmf/thinkcmf": "<=5.1.7", + "thorsten/phpmyfaq": "<3.2.2", + "tikiwiki/tiki-manager": "<=17.1", + "tinymce/tinymce": "<5.10.8|>=6,<6.7.1", + "tinymighty/wiki-seo": "<1.2.2", + "titon/framework": "<9.9.99", + "tobiasbg/tablepress": "<=2.0.0.0-RC1", + "topthink/framework": "<6.0.14", + "topthink/think": "<=6.1.1", + "topthink/thinkphp": "<=3.2.3", + "tpwd/ke_search": "<4.0.3|>=4.1,<4.6.6|>=5,<5.0.2", + "tribalsystems/zenario": "<=9.4.59197", + "truckersmp/phpwhois": "<=4.3.1", + "ttskch/pagination-service-provider": "<1", + "twig/twig": "<1.44.7|>=2,<2.15.3|>=3,<3.4.3", + "typo3/cms": "<9.5.29|>=10,<10.4.35|>=11,<11.5.23|>=12,<12.2", + "typo3/cms-backend": ">=7,<=7.6.50|>=8,<=8.7.39|>=9,<=9.5.24|>=10,<=10.4.13|>=11,<=11.1", + "typo3/cms-core": "<8.7.51|>=9,<9.5.42|>=10,<10.4.39|>=11,<11.5.30|>=12,<12.4.4", + "typo3/cms-extbase": "<6.2.24|>=7,<7.6.8|==8.1.1", + "typo3/cms-form": ">=8,<=8.7.39|>=9,<=9.5.24|>=10,<=10.4.13|>=11,<=11.1", + "typo3/cms-rte-ckeditor": ">=9.5,<9.5.42|>=10,<10.4.39|>=11,<11.5.30", + "typo3/flow": ">=1,<1.0.4|>=1.1,<1.1.1|>=2,<2.0.1|>=2.3,<2.3.16|>=3,<3.0.12|>=3.1,<3.1.10|>=3.2,<3.2.13|>=3.3,<3.3.13|>=4,<4.0.6", + "typo3/html-sanitizer": ">=1,<1.5.1|>=2,<2.1.2", + "typo3/neos": ">=1.1,<1.1.3|>=1.2,<1.2.13|>=2,<2.0.4|>=2.3,<2.3.99|>=3,<3.0.20|>=3.1,<3.1.18|>=3.2,<3.2.14|>=3.3,<3.3.23|>=4,<4.0.17|>=4.1,<4.1.16|>=4.2,<4.2.12|>=4.3,<4.3.3", + "typo3/phar-stream-wrapper": ">=1,<2.1.1|>=3,<3.1.1", + "typo3/swiftmailer": ">=4.1,<4.1.99|>=5.4,<5.4.5", + "typo3fluid/fluid": ">=2,<2.0.8|>=2.1,<2.1.7|>=2.2,<2.2.4|>=2.3,<2.3.7|>=2.4,<2.4.4|>=2.5,<2.5.11|>=2.6,<2.6.10", + "ua-parser/uap-php": "<3.8", + "uasoft-indonesia/badaso": "<=2.9.7", + "unisharp/laravel-filemanager": "<=2.5.1", + "userfrosting/userfrosting": ">=0.3.1,<4.6.3", + "usmanhalalit/pixie": "<1.0.3|>=2,<2.0.2", + "uvdesk/community-skeleton": "<=1.1.1", + "vanilla/safecurl": "<0.9.2", + "verot/class.upload.php": "<=1.0.3|>=2,<=2.0.4", + "vova07/yii2-fileapi-widget": "<0.1.9", + "vrana/adminer": "<4.8.1", + "waldhacker/hcaptcha": "<2.1.2", + "wallabag/tcpdf": "<6.2.22", + "wallabag/wallabag": "<2.6.7", + "wanglelecc/laracms": "<=1.0.3", + "web-auth/webauthn-framework": ">=3.3,<3.3.4", + "webbuilders-group/silverstripe-kapost-bridge": "<0.4", + "webcoast/deferred-image-processing": "<1.0.2", + "webklex/laravel-imap": "<5.3", + "webklex/php-imap": "<5.3", + "webpa/webpa": "<3.1.2", + "wikibase/wikibase": "<=1.39.3", + "wikimedia/parsoid": "<0.12.2", + "willdurand/js-translation-bundle": "<2.1.1", + "wintercms/winter": "<1.2.3", + "woocommerce/woocommerce": "<6.6", + "wp-cli/wp-cli": "<2.5", + "wp-graphql/wp-graphql": "<=1.14.5", + "wpanel/wpanel4-cms": "<=4.3.1", + "wpcloud/wp-stateless": "<3.2", + "wwbn/avideo": "<=12.4", + "xataface/xataface": "<3", + "xpressengine/xpressengine": "<3.0.15", + "yeswiki/yeswiki": "<4.1", + "yetiforce/yetiforce-crm": "<=6.4", + "yidashi/yii2cmf": "<=2", + "yii2mod/yii2-cms": "<1.9.2", + "yiisoft/yii": "<1.1.27", + "yiisoft/yii2": "<2.0.38", + "yiisoft/yii2-bootstrap": "<2.0.4", + "yiisoft/yii2-dev": "<2.0.43", + "yiisoft/yii2-elasticsearch": "<2.0.5", + "yiisoft/yii2-gii": "<=2.2.4", + "yiisoft/yii2-jui": "<2.0.4", + "yiisoft/yii2-redis": "<2.0.8", + "yikesinc/yikes-inc-easy-mailchimp-extender": "<6.8.6", + "yoast-seo-for-typo3/yoast_seo": "<7.2.3", + "yourls/yourls": "<=1.8.2", + "zencart/zencart": "<=1.5.7.0-beta", + "zendesk/zendesk_api_client_php": "<2.2.11", + "zendframework/zend-cache": "<2.4.8|>=2.5,<2.5.3", + "zendframework/zend-captcha": ">=2,<2.4.9|>=2.5,<2.5.2", + "zendframework/zend-crypt": ">=2,<2.4.9|>=2.5,<2.5.2", + "zendframework/zend-db": ">=2,<2.0.99|>=2.1,<2.1.99|>=2.2,<2.2.10|>=2.3,<2.3.5", + "zendframework/zend-developer-tools": ">=1.2.2,<1.2.3", + "zendframework/zend-diactoros": "<1.8.4", + "zendframework/zend-feed": "<2.10.3", + "zendframework/zend-form": ">=2,<2.2.7|>=2.3,<2.3.1", + "zendframework/zend-http": "<2.8.1", + "zendframework/zend-json": ">=2.1,<2.1.6|>=2.2,<2.2.6", + "zendframework/zend-ldap": ">=2,<2.0.99|>=2.1,<2.1.99|>=2.2,<2.2.8|>=2.3,<2.3.3", + "zendframework/zend-mail": ">=2,<2.4.11|>=2.5,<2.7.2", + "zendframework/zend-navigation": ">=2,<2.2.7|>=2.3,<2.3.1", + "zendframework/zend-session": ">=2,<2.0.99|>=2.1,<2.1.99|>=2.2,<2.2.9|>=2.3,<2.3.4", + "zendframework/zend-validator": ">=2.3,<2.3.6", + "zendframework/zend-view": ">=2,<2.2.7|>=2.3,<2.3.1", + "zendframework/zend-xmlrpc": ">=2.1,<2.1.6|>=2.2,<2.2.6", + "zendframework/zendframework": "<=3", + "zendframework/zendframework1": "<1.12.20", + "zendframework/zendopenid": "<2.0.2", + "zendframework/zendrest": "<2.0.2", + "zendframework/zendservice-amazon": "<2.0.3", + "zendframework/zendservice-api": "<1", + "zendframework/zendservice-audioscrobbler": "<2.0.2", + "zendframework/zendservice-nirvanix": "<2.0.2", + "zendframework/zendservice-slideshare": "<2.0.2", + "zendframework/zendservice-technorati": "<2.0.2", + "zendframework/zendservice-windowsazure": "<2.0.2", + "zendframework/zendxml": "<1.0.1", + "zenstruck/collection": "<0.2.1", + "zetacomponents/mail": "<1.8.2", + "zf-commons/zfc-user": "<1.2.2", + "zfcampus/zf-apigility-doctrine": "<1.0.3", + "zfr/zfr-oauth2-server-module": "<0.1.2", + "zoujingli/thinkadmin": "<6.0.22" + }, + "default-branch": true, + "type": "metapackage", + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Marco Pivetta", + "email": "ocramius@gmail.com", + "role": "maintainer" + }, + { + "name": "Ilya Tribusean", + "email": "slash3b@gmail.com", + "role": "maintainer" + } + ], + "description": "Prevents installation of composer packages with known security vulnerabilities: no API, simply require it", + "keywords": [ + "dev" + ], + "support": { + "issues": "https://github.com/Roave/SecurityAdvisories/issues", + "source": "https://github.com/Roave/SecurityAdvisories/tree/latest" + }, + "funding": [ + { + "url": "https://github.com/Ocramius", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/roave/security-advisories", + "type": "tidelift" + } + ], + "time": "2023-11-02T21:04:20+00:00" + }, + { + "name": "sebastian/cli-parser", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/cli-parser.git", + "reference": "442e7c7e687e42adc03470c7b668bc4b2402c0b2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/442e7c7e687e42adc03470c7b668bc4b2402c0b2", + "reference": "442e7c7e687e42adc03470c7b668bc4b2402c0b2", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library for parsing CLI options", + "homepage": "https://github.com/sebastianbergmann/cli-parser", + "support": { + "issues": "https://github.com/sebastianbergmann/cli-parser/issues", + "source": "https://github.com/sebastianbergmann/cli-parser/tree/1.0.1" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-09-28T06:08:49+00:00" + }, + { + "name": "sebastian/code-unit", + "version": "1.0.8", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/code-unit.git", + "reference": "1fc9f64c0927627ef78ba436c9b17d967e68e120" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/code-unit/zipball/1fc9f64c0927627ef78ba436c9b17d967e68e120", + "reference": "1fc9f64c0927627ef78ba436c9b17d967e68e120", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Collection of value objects that represent the PHP code units", + "homepage": "https://github.com/sebastianbergmann/code-unit", + "support": { + "issues": "https://github.com/sebastianbergmann/code-unit/issues", + "source": "https://github.com/sebastianbergmann/code-unit/tree/1.0.8" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T13:08:54+00:00" + }, + { + "name": "sebastian/code-unit-reverse-lookup", + "version": "2.0.3", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git", + "reference": "ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5", + "reference": "ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Looks up which function or method a line of code belongs to", + "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/", + "support": { + "issues": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/issues", + "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/2.0.3" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-09-28T05:30:19+00:00" + }, + { + "name": "sebastian/comparator", + "version": "4.0.8", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/comparator.git", + "reference": "fa0f136dd2334583309d32b62544682ee972b51a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/fa0f136dd2334583309d32b62544682ee972b51a", + "reference": "fa0f136dd2334583309d32b62544682ee972b51a", + "shasum": "" + }, + "require": { + "php": ">=7.3", + "sebastian/diff": "^4.0", + "sebastian/exporter": "^4.0" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Volker Dusch", + "email": "github@wallbash.com" + }, + { + "name": "Bernhard Schussek", + "email": "bschussek@2bepublished.at" + } + ], + "description": "Provides the functionality to compare PHP values for equality", + "homepage": "https://github.com/sebastianbergmann/comparator", + "keywords": [ + "comparator", + "compare", + "equality" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/comparator/issues", + "source": "https://github.com/sebastianbergmann/comparator/tree/4.0.8" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2022-09-14T12:41:17+00:00" + }, + { + "name": "sebastian/complexity", + "version": "2.0.2", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/complexity.git", + "reference": "739b35e53379900cc9ac327b2147867b8b6efd88" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/739b35e53379900cc9ac327b2147867b8b6efd88", + "reference": "739b35e53379900cc9ac327b2147867b8b6efd88", + "shasum": "" + }, + "require": { + "nikic/php-parser": "^4.7", + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library for calculating the complexity of PHP code units", + "homepage": "https://github.com/sebastianbergmann/complexity", + "support": { + "issues": "https://github.com/sebastianbergmann/complexity/issues", + "source": "https://github.com/sebastianbergmann/complexity/tree/2.0.2" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T15:52:27+00:00" + }, + { + "name": "sebastian/diff", + "version": "4.0.5", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/diff.git", + "reference": "74be17022044ebaaecfdf0c5cd504fc9cd5a7131" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/74be17022044ebaaecfdf0c5cd504fc9cd5a7131", + "reference": "74be17022044ebaaecfdf0c5cd504fc9cd5a7131", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3", + "symfony/process": "^4.2 || ^5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Kore Nordmann", + "email": "mail@kore-nordmann.de" + } + ], + "description": "Diff implementation", + "homepage": "https://github.com/sebastianbergmann/diff", + "keywords": [ + "diff", + "udiff", + "unidiff", + "unified diff" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/diff/issues", + "source": "https://github.com/sebastianbergmann/diff/tree/4.0.5" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2023-05-07T05:35:17+00:00" + }, + { + "name": "sebastian/environment", + "version": "5.1.5", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/environment.git", + "reference": "830c43a844f1f8d5b7a1f6d6076b784454d8b7ed" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/830c43a844f1f8d5b7a1f6d6076b784454d8b7ed", + "reference": "830c43a844f1f8d5b7a1f6d6076b784454d8b7ed", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "suggest": { + "ext-posix": "*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.1-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Provides functionality to handle HHVM/PHP environments", + "homepage": "http://www.github.com/sebastianbergmann/environment", + "keywords": [ + "Xdebug", + "environment", + "hhvm" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/environment/issues", + "source": "https://github.com/sebastianbergmann/environment/tree/5.1.5" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2023-02-03T06:03:51+00:00" + }, + { + "name": "sebastian/exporter", + "version": "4.0.5", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/exporter.git", + "reference": "ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d", + "reference": "ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d", + "shasum": "" + }, + "require": { + "php": ">=7.3", + "sebastian/recursion-context": "^4.0" + }, + "require-dev": { + "ext-mbstring": "*", + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Volker Dusch", + "email": "github@wallbash.com" + }, + { + "name": "Adam Harvey", + "email": "aharvey@php.net" + }, + { + "name": "Bernhard Schussek", + "email": "bschussek@gmail.com" + } + ], + "description": "Provides the functionality to export PHP variables for visualization", + "homepage": "https://www.github.com/sebastianbergmann/exporter", + "keywords": [ + "export", + "exporter" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/exporter/issues", + "source": "https://github.com/sebastianbergmann/exporter/tree/4.0.5" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2022-09-14T06:03:37+00:00" + }, + { + "name": "sebastian/global-state", + "version": "5.0.6", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/global-state.git", + "reference": "bde739e7565280bda77be70044ac1047bc007e34" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/bde739e7565280bda77be70044ac1047bc007e34", + "reference": "bde739e7565280bda77be70044ac1047bc007e34", + "shasum": "" + }, + "require": { + "php": ">=7.3", + "sebastian/object-reflector": "^2.0", + "sebastian/recursion-context": "^4.0" + }, + "require-dev": { + "ext-dom": "*", + "phpunit/phpunit": "^9.3" + }, + "suggest": { + "ext-uopz": "*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Snapshotting of global state", + "homepage": "http://www.github.com/sebastianbergmann/global-state", + "keywords": [ + "global state" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/global-state/issues", + "source": "https://github.com/sebastianbergmann/global-state/tree/5.0.6" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2023-08-02T09:26:13+00:00" + }, + { + "name": "sebastian/lines-of-code", + "version": "1.0.3", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/lines-of-code.git", + "reference": "c1c2e997aa3146983ed888ad08b15470a2e22ecc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/c1c2e997aa3146983ed888ad08b15470a2e22ecc", + "reference": "c1c2e997aa3146983ed888ad08b15470a2e22ecc", + "shasum": "" + }, + "require": { + "nikic/php-parser": "^4.6", + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library for counting the lines of code in PHP source code", + "homepage": "https://github.com/sebastianbergmann/lines-of-code", + "support": { + "issues": "https://github.com/sebastianbergmann/lines-of-code/issues", + "source": "https://github.com/sebastianbergmann/lines-of-code/tree/1.0.3" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-11-28T06:42:11+00:00" + }, + { + "name": "sebastian/object-enumerator", + "version": "4.0.4", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/object-enumerator.git", + "reference": "5c9eeac41b290a3712d88851518825ad78f45c71" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/5c9eeac41b290a3712d88851518825ad78f45c71", + "reference": "5c9eeac41b290a3712d88851518825ad78f45c71", + "shasum": "" + }, + "require": { + "php": ">=7.3", + "sebastian/object-reflector": "^2.0", + "sebastian/recursion-context": "^4.0" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Traverses array structures and object graphs to enumerate all referenced objects", + "homepage": "https://github.com/sebastianbergmann/object-enumerator/", + "support": { + "issues": "https://github.com/sebastianbergmann/object-enumerator/issues", + "source": "https://github.com/sebastianbergmann/object-enumerator/tree/4.0.4" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T13:12:34+00:00" + }, + { + "name": "sebastian/object-reflector", + "version": "2.0.4", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/object-reflector.git", + "reference": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/b4f479ebdbf63ac605d183ece17d8d7fe49c15c7", + "reference": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Allows reflection of object attributes, including inherited and non-public ones", + "homepage": "https://github.com/sebastianbergmann/object-reflector/", + "support": { + "issues": "https://github.com/sebastianbergmann/object-reflector/issues", + "source": "https://github.com/sebastianbergmann/object-reflector/tree/2.0.4" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T13:14:26+00:00" + }, + { + "name": "sebastian/recursion-context", + "version": "4.0.5", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/recursion-context.git", + "reference": "e75bd0f07204fec2a0af9b0f3cfe97d05f92efc1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/e75bd0f07204fec2a0af9b0f3cfe97d05f92efc1", + "reference": "e75bd0f07204fec2a0af9b0f3cfe97d05f92efc1", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Adam Harvey", + "email": "aharvey@php.net" + } + ], + "description": "Provides functionality to recursively process PHP variables", + "homepage": "https://github.com/sebastianbergmann/recursion-context", + "support": { + "issues": "https://github.com/sebastianbergmann/recursion-context/issues", + "source": "https://github.com/sebastianbergmann/recursion-context/tree/4.0.5" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2023-02-03T06:07:39+00:00" + }, + { + "name": "sebastian/resource-operations", + "version": "3.0.3", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/resource-operations.git", + "reference": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8", + "reference": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Provides a list of PHP built-in functions that operate on resources", + "homepage": "https://www.github.com/sebastianbergmann/resource-operations", + "support": { + "issues": "https://github.com/sebastianbergmann/resource-operations/issues", + "source": "https://github.com/sebastianbergmann/resource-operations/tree/3.0.3" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-09-28T06:45:17+00:00" + }, + { + "name": "sebastian/type", + "version": "3.2.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/type.git", + "reference": "75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7", + "reference": "75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.2-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Collection of value objects that represent the types of the PHP type system", + "homepage": "https://github.com/sebastianbergmann/type", + "support": { + "issues": "https://github.com/sebastianbergmann/type/issues", + "source": "https://github.com/sebastianbergmann/type/tree/3.2.1" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2023-02-03T06:13:03+00:00" + }, + { + "name": "sebastian/version", + "version": "3.0.2", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/version.git", + "reference": "c6c1022351a901512170118436c764e473f6de8c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/c6c1022351a901512170118436c764e473f6de8c", + "reference": "c6c1022351a901512170118436c764e473f6de8c", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library that helps with managing the version number of Git-hosted PHP projects", + "homepage": "https://github.com/sebastianbergmann/version", + "support": { + "issues": "https://github.com/sebastianbergmann/version/issues", + "source": "https://github.com/sebastianbergmann/version/tree/3.0.2" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-09-28T06:39:44+00:00" + }, + { + "name": "symfony/browser-kit", + "version": "v6.3.2", + "source": { + "type": "git", + "url": "https://github.com/symfony/browser-kit.git", + "reference": "ca4a988488f61ac18f8f845445eabdd36f89aa8d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/browser-kit/zipball/ca4a988488f61ac18f8f845445eabdd36f89aa8d", + "reference": "ca4a988488f61ac18f8f845445eabdd36f89aa8d", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "symfony/dom-crawler": "^5.4|^6.0" + }, + "require-dev": { + "symfony/css-selector": "^5.4|^6.0", + "symfony/http-client": "^5.4|^6.0", + "symfony/mime": "^5.4|^6.0", + "symfony/process": "^5.4|^6.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\BrowserKit\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Simulates the behavior of a web browser, allowing you to make requests, click on links and submit forms programmatically", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/browser-kit/tree/v6.3.2" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-07-06T06:56:43+00:00" + }, + { + "name": "symfony/css-selector", + "version": "v6.3.2", + "source": { + "type": "git", + "url": "https://github.com/symfony/css-selector.git", + "reference": "883d961421ab1709877c10ac99451632a3d6fa57" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/css-selector/zipball/883d961421ab1709877c10ac99451632a3d6fa57", + "reference": "883d961421ab1709877c10ac99451632a3d6fa57", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\CssSelector\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Jean-François Simon", + "email": "jeanfrancois.simon@sensiolabs.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Converts CSS selectors to XPath expressions", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/css-selector/tree/v6.3.2" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-07-12T16:00:22+00:00" + }, + { + "name": "symfony/debug-bundle", + "version": "v6.3.2", + "source": { + "type": "git", + "url": "https://github.com/symfony/debug-bundle.git", + "reference": "3f04a578e1a9f1d7da84a87b690c03123e5d8c31" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/debug-bundle/zipball/3f04a578e1a9f1d7da84a87b690c03123e5d8c31", + "reference": "3f04a578e1a9f1d7da84a87b690c03123e5d8c31", + "shasum": "" + }, + "require": { + "ext-xml": "*", + "php": ">=8.1", + "symfony/dependency-injection": "^5.4|^6.0", + "symfony/http-kernel": "^5.4|^6.0", + "symfony/twig-bridge": "^5.4|^6.0", + "symfony/var-dumper": "^5.4|^6.0" + }, + "conflict": { + "symfony/config": "<5.4", + "symfony/dependency-injection": "<5.4" + }, + "require-dev": { + "symfony/config": "^5.4|^6.0", + "symfony/web-profiler-bundle": "^5.4|^6.0" + }, + "type": "symfony-bundle", + "autoload": { + "psr-4": { + "Symfony\\Bundle\\DebugBundle\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides a tight integration of the Symfony VarDumper component and the ServerLogCommand from MonologBridge into the Symfony full-stack framework", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/debug-bundle/tree/v6.3.2" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-07-13T14:29:38+00:00" + }, + { + "name": "symfony/dom-crawler", + "version": "v6.3.4", + "source": { + "type": "git", + "url": "https://github.com/symfony/dom-crawler.git", + "reference": "3fdd2a3d5fdc363b2e8dbf817f9726a4d013cbd1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/3fdd2a3d5fdc363b2e8dbf817f9726a4d013cbd1", + "reference": "3fdd2a3d5fdc363b2e8dbf817f9726a4d013cbd1", + "shasum": "" + }, + "require": { + "masterminds/html5": "^2.6", + "php": ">=8.1", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-mbstring": "~1.0" + }, + "require-dev": { + "symfony/css-selector": "^5.4|^6.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\DomCrawler\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Eases DOM navigation for HTML and XML documents", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/dom-crawler/tree/v6.3.4" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-08-01T07:43:40+00:00" + }, + { + "name": "symfony/maker-bundle", + "version": "v1.51.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/maker-bundle.git", + "reference": "0890fd3cf1e2a5221f9b3c6ee1769c537aef683d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/maker-bundle/zipball/0890fd3cf1e2a5221f9b3c6ee1769c537aef683d", + "reference": "0890fd3cf1e2a5221f9b3c6ee1769c537aef683d", + "shasum": "" + }, + "require": { + "doctrine/inflector": "^2.0", + "nikic/php-parser": "^4.11", + "php": ">=8.1", + "symfony/config": "^6.3|^7.0", + "symfony/console": "^6.3|^7.0", + "symfony/dependency-injection": "^6.3|^7.0", + "symfony/deprecation-contracts": "^2.2|^3", + "symfony/filesystem": "^6.3|^7.0", + "symfony/finder": "^6.3|^7.0", + "symfony/framework-bundle": "^6.3|^7.0", + "symfony/http-kernel": "^6.3|^7.0", + "symfony/process": "^6.3|^7.0" + }, + "conflict": { + "doctrine/doctrine-bundle": "<2.4", + "doctrine/orm": "<2.10" + }, + "require-dev": { + "composer/semver": "^3.0", + "doctrine/doctrine-bundle": "^2.5.0", + "doctrine/orm": "^2.10.0", + "symfony/http-client": "^6.3|^7.0", + "symfony/phpunit-bridge": "^6.3|^7.0", + "symfony/security-core": "^6.3|^7.0", + "symfony/yaml": "^6.3|^7.0", + "twig/twig": "^2.0|^3.0" + }, + "type": "symfony-bundle", + "extra": { + "branch-alias": { + "dev-main": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Bundle\\MakerBundle\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Maker helps you create empty commands, controllers, form classes, tests and more so you can forget about writing boilerplate code.", + "homepage": "https://symfony.com/doc/current/bundles/SymfonyMakerBundle/index.html", + "keywords": [ + "code generator", + "dev", + "generator", + "scaffold", + "scaffolding" + ], + "support": { + "issues": "https://github.com/symfony/maker-bundle/issues", + "source": "https://github.com/symfony/maker-bundle/tree/v1.51.1" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-09-18T18:17:31+00:00" + }, + { + "name": "symfony/phpunit-bridge", + "version": "v6.3.6", + "source": { + "type": "git", + "url": "https://github.com/symfony/phpunit-bridge.git", + "reference": "c6f1df6a76c2c12bd14a0a5bf7c556dd935efe1d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/phpunit-bridge/zipball/c6f1df6a76c2c12bd14a0a5bf7c556dd935efe1d", + "reference": "c6f1df6a76c2c12bd14a0a5bf7c556dd935efe1d", + "shasum": "" + }, + "require": { + "php": ">=7.1.3" + }, + "conflict": { + "phpunit/phpunit": "<7.5|9.1.2" + }, + "require-dev": { + "symfony/deprecation-contracts": "^2.5|^3.0", + "symfony/error-handler": "^5.4|^6.0", + "symfony/polyfill-php81": "^1.27" + }, + "bin": [ + "bin/simple-phpunit" + ], + "type": "symfony-bridge", + "extra": { + "thanks": { + "name": "phpunit/phpunit", + "url": "https://github.com/sebastianbergmann/phpunit" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Bridge\\PhpUnit\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides utilities for PHPUnit, especially user deprecation notices management", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/phpunit-bridge/tree/v6.3.6" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-10-12T15:02:41+00:00" + }, + { + "name": "symfony/web-profiler-bundle", + "version": "v6.3.6", + "source": { + "type": "git", + "url": "https://github.com/symfony/web-profiler-bundle.git", + "reference": "249cb2486597d3ab810d8bcc8e4db5ad0fc3e3bd" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/web-profiler-bundle/zipball/249cb2486597d3ab810d8bcc8e4db5ad0fc3e3bd", + "reference": "249cb2486597d3ab810d8bcc8e4db5ad0fc3e3bd", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "symfony/config": "^5.4|^6.0", + "symfony/framework-bundle": "^5.4|^6.0", + "symfony/http-kernel": "^6.3", + "symfony/routing": "^5.4|^6.0", + "symfony/twig-bundle": "^5.4|^6.0", + "twig/twig": "^2.13|^3.0.4" + }, + "conflict": { + "symfony/form": "<5.4", + "symfony/mailer": "<5.4", + "symfony/messenger": "<5.4" + }, + "require-dev": { + "symfony/browser-kit": "^5.4|^6.0", + "symfony/console": "^5.4|^6.0", + "symfony/css-selector": "^5.4|^6.0", + "symfony/stopwatch": "^5.4|^6.0" + }, + "type": "symfony-bundle", + "autoload": { + "psr-4": { + "Symfony\\Bundle\\WebProfilerBundle\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides a development tool that gives detailed information about the execution of any request", + "homepage": "https://symfony.com", + "keywords": [ + "dev" + ], + "support": { + "source": "https://github.com/symfony/web-profiler-bundle/tree/v6.3.6" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-10-11T18:18:20+00:00" + }, + { + "name": "theseer/tokenizer", + "version": "1.2.1", + "source": { + "type": "git", + "url": "https://github.com/theseer/tokenizer.git", + "reference": "34a41e998c2183e22995f158c581e7b5e755ab9e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/theseer/tokenizer/zipball/34a41e998c2183e22995f158c581e7b5e755ab9e", + "reference": "34a41e998c2183e22995f158c581e7b5e755ab9e", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-tokenizer": "*", + "ext-xmlwriter": "*", + "php": "^7.2 || ^8.0" + }, + "type": "library", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Arne Blankerts", + "email": "arne@blankerts.de", + "role": "Developer" + } + ], + "description": "A small library for converting tokenized PHP source code into XML and potentially other formats", + "support": { + "issues": "https://github.com/theseer/tokenizer/issues", + "source": "https://github.com/theseer/tokenizer/tree/1.2.1" + }, + "funding": [ + { + "url": "https://github.com/theseer", + "type": "github" + } + ], + "time": "2021-07-28T10:34:58+00:00" + } + ], + "aliases": [], + "minimum-stability": "stable", + "stability-flags": { + "roave/security-advisories": 20 + }, + "prefer-stable": true, + "prefer-lowest": false, + "platform": { + "php": ">=8.1", + "ext-ctype": "*", + "ext-fileinfo": "*", + "ext-iconv": "*" + }, + "platform-dev": [], + "plugin-api-version": "2.6.0" +} diff --git a/config/bundles.php b/config/bundles.php new file mode 100644 index 0000000..a324a0e --- /dev/null +++ b/config/bundles.php @@ -0,0 +1,15 @@ + ['all' => true], + Doctrine\Bundle\DoctrineBundle\DoctrineBundle::class => ['all' => true], + Doctrine\Bundle\MigrationsBundle\DoctrineMigrationsBundle::class => ['all' => true], + Symfony\Bundle\DebugBundle\DebugBundle::class => ['dev' => true], + Symfony\Bundle\TwigBundle\TwigBundle::class => ['all' => true], + Symfony\Bundle\WebProfilerBundle\WebProfilerBundle::class => ['dev' => true, 'test' => true], + Twig\Extra\TwigExtraBundle\TwigExtraBundle::class => ['all' => true], + Symfony\Bundle\SecurityBundle\SecurityBundle::class => ['all' => true], + Symfony\Bundle\MonologBundle\MonologBundle::class => ['all' => true], + Symfony\Bundle\MakerBundle\MakerBundle::class => ['dev' => true], + Snc\RedisBundle\SncRedisBundle::class => ['all' => true], +]; diff --git a/config/packages/cache.yaml b/config/packages/cache.yaml new file mode 100644 index 0000000..e9be324 --- /dev/null +++ b/config/packages/cache.yaml @@ -0,0 +1,19 @@ +framework: + cache: + # Unique name of your app: used to compute stable namespaces for cache keys. + #prefix_seed: your_vendor_name/app_name + + # The "app" cache stores to the filesystem by default. + # The data in this cache should persist between deploys. + # Other options include: + + # Redis + #app: cache.adapter.redis + #default_redis_provider: redis://localhost + + # APCu (not recommended with heavy random-write workloads as memory fragmentation can cause perf issues) + #app: cache.adapter.apcu + + # Namespaced pools use the above "app" backend by default + #pools: + #my.dedicated.cache: null diff --git a/config/packages/debug.yaml b/config/packages/debug.yaml new file mode 100755 index 0000000..8224453 --- /dev/null +++ b/config/packages/debug.yaml @@ -0,0 +1,5 @@ +when@dev: + debug: + # Forwards VarDumper Data clones to a centralized server allowing to inspect dumps on CLI or in your browser. + # See the "server:dump" command to start a new server. + dump_destination: "tcp://%env(VAR_DUMPER_SERVER)%" diff --git a/config/packages/doctrine.yaml b/config/packages/doctrine.yaml new file mode 100755 index 0000000..565bf78 --- /dev/null +++ b/config/packages/doctrine.yaml @@ -0,0 +1,48 @@ +doctrine: + dbal: + url: '%env(resolve:DATABASE_URL)%' + + # IMPORTANT: You MUST configure your server version, + # either here or in the DATABASE_URL env var (see .env file) + #server_version: '15' + + profiling_collect_backtrace: '%kernel.debug%' + orm: + auto_generate_proxy_classes: true + enable_lazy_ghost_objects: true + report_fields_where_declared: true + validate_xml_mapping: true + naming_strategy: doctrine.orm.naming_strategy.underscore_number_aware + auto_mapping: true + mappings: + App: + is_bundle: false + dir: '%kernel.project_dir%/src/Entity' + prefix: 'App\Entity' + alias: App + +when@test: + doctrine: + dbal: + # "TEST_TOKEN" is typically set by ParaTest + dbname_suffix: '_test%env(default::TEST_TOKEN)%' + +when@prod: + doctrine: + orm: + auto_generate_proxy_classes: false + proxy_dir: '%kernel.build_dir%/doctrine/orm/Proxies' + query_cache_driver: + type: pool + pool: doctrine.system_cache_pool + result_cache_driver: + type: pool + pool: doctrine.result_cache_pool + + framework: + cache: + pools: + doctrine.result_cache_pool: + adapter: cache.app + doctrine.system_cache_pool: + adapter: cache.system diff --git a/config/packages/doctrine_migrations.yaml b/config/packages/doctrine_migrations.yaml new file mode 100755 index 0000000..30aa598 --- /dev/null +++ b/config/packages/doctrine_migrations.yaml @@ -0,0 +1,6 @@ +doctrine_migrations: + migrations_paths: + # namespace is arbitrary but should be different from App\Migrations + # as migrations classes should NOT be autoloaded + 'DoctrineMigrations': '%kernel.project_dir%/migrations' + enable_profiler: false diff --git a/config/packages/framework.yaml b/config/packages/framework.yaml new file mode 100644 index 0000000..a93bb87 --- /dev/null +++ b/config/packages/framework.yaml @@ -0,0 +1,25 @@ +# see https://symfony.com/doc/current/reference/configuration/framework.html +framework: + secret: '%env(APP_SECRET)%' + #csrf_protection: true + http_method_override: false + handle_all_throwables: true + + # Enables session support. Note that the session will ONLY be started if you read or write from it. + # Remove or comment this section to explicitly disable session support. + session: + handler_id: null + cookie_secure: auto + cookie_samesite: lax + storage_factory_id: session.storage.factory.native + + #esi: true + #fragments: true + php_errors: + log: true + +when@test: + framework: + test: true + session: + storage_factory_id: session.storage.factory.mock_file diff --git a/config/packages/mailer.yaml b/config/packages/mailer.yaml new file mode 100755 index 0000000..6717534 --- /dev/null +++ b/config/packages/mailer.yaml @@ -0,0 +1,3 @@ +framework: + mailer: + dsn: '%env(MAILER_DSN)%' diff --git a/config/packages/messenger.yaml b/config/packages/messenger.yaml new file mode 100755 index 0000000..6163341 --- /dev/null +++ b/config/packages/messenger.yaml @@ -0,0 +1,24 @@ +framework: + messenger: + failure_transport: failed + + transports: + # https://symfony.com/doc/current/messenger.html#transport-configuration + async: + dsn: '%env(MESSENGER_TRANSPORT_DSN)%' + options: + use_notify: true + check_delayed_interval: 60000 + retry_strategy: + max_retries: 3 + multiplier: 2 + failed: 'doctrine://default?queue_name=failed' + # sync: 'sync://' + + routing: + Symfony\Component\Mailer\Messenger\SendEmailMessage: async + Symfony\Component\Notifier\Message\ChatMessage: async + Symfony\Component\Notifier\Message\SmsMessage: async + + # Route your messages to the transports + # 'App\Message\YourMessage': async diff --git a/config/packages/monolog.yaml b/config/packages/monolog.yaml new file mode 100755 index 0000000..8a91964 --- /dev/null +++ b/config/packages/monolog.yaml @@ -0,0 +1,61 @@ +monolog: + channels: + - deprecation # Deprecations are logged in the dedicated "deprecation" channel when it exists + +when@dev: + monolog: + handlers: + main: + type: stream + path: "%kernel.logs_dir%/%kernel.environment%.log" + level: debug + channels: ["!event"] + # uncomment to get logging in your browser + # you may have to allow bigger header sizes in your Web server configuration + #firephp: + # type: firephp + # level: info + #chromephp: + # type: chromephp + # level: info + console: + type: console + process_psr_3_messages: false + channels: ["!event", "!doctrine", "!console"] + +when@test: + monolog: + handlers: + main: + type: fingers_crossed + action_level: error + handler: nested + excluded_http_codes: [404, 405] + channels: ["!event"] + nested: + type: stream + path: "%kernel.logs_dir%/%kernel.environment%.log" + level: debug + +when@prod: + monolog: + handlers: + main: + type: fingers_crossed + action_level: error + handler: nested + excluded_http_codes: [404, 405] + buffer_size: 50 # How many messages should be saved? Prevent memory leaks + nested: + type: stream + path: php://stderr + level: debug + formatter: monolog.formatter.json + console: + type: console + process_psr_3_messages: false + channels: ["!event", "!doctrine"] + deprecation: + type: stream + channels: [deprecation] + path: php://stderr diff --git a/config/packages/notifier.yaml b/config/packages/notifier.yaml new file mode 100755 index 0000000..37f251c --- /dev/null +++ b/config/packages/notifier.yaml @@ -0,0 +1,12 @@ +framework: + notifier: + chatter_transports: + texter_transports: + channel_policy: + # use chat/slack, chat/telegram, sms/twilio or sms/nexmo + urgent: ['email'] + high: ['email'] + medium: ['email'] + low: ['email'] + admin_recipients: + - { email: admin@example.com } diff --git a/config/packages/routing.yaml b/config/packages/routing.yaml new file mode 100644 index 0000000..cc27b2a --- /dev/null +++ b/config/packages/routing.yaml @@ -0,0 +1,12 @@ +framework: + router: + utf8: true + + # Configure how to generate URLs in non-HTTP contexts, such as CLI commands. + # See https://symfony.com/doc/current/routing.html#generating-urls-in-commands + #default_uri: http://localhost + +when@prod: + framework: + router: + strict_requirements: null diff --git a/config/packages/security.yaml b/config/packages/security.yaml new file mode 100755 index 0000000..c7dacac --- /dev/null +++ b/config/packages/security.yaml @@ -0,0 +1,50 @@ +security: + # https://symfony.com/doc/current/security.html#registering-the-user-hashing-passwords + password_hashers: + Symfony\Component\Security\Core\User\PasswordAuthenticatedUserInterface: 'auto' + # https://symfony.com/doc/current/security.html#loading-the-user-the-user-provider + providers: + # used to reload user from session & other features (e.g. switch_user) + app_user_provider: + entity: + class: App\Entity\User + property: username + firewalls: + dev: + pattern: ^/(_(profiler|wdt)|css|images|js)/ + security: false + main: + lazy: true + provider: app_user_provider + logout: + path: app_logout + form_login: + login_path: app_login + check_path: app_login + default_target_path: app_home + + # activate different ways to authenticate + # https://symfony.com/doc/current/security.html#the-firewall + + # https://symfony.com/doc/current/security/impersonating_user.html + # switch_user: true + + # Easy way to control access for large sections of your site + # Note: Only the *first* access control that matches will be used + access_control: + - { path: ^/home, roles: ROLE_USER } + - { path: ^/download-config, roles: ROLE_USER } + # - { path: ^/profile, roles: ROLE_USER } + +when@test: + security: + password_hashers: + # By default, password hashers are resource intensive and take time. This is + # important to generate secure password hashes. In tests however, secure hashes + # are not important, waste resources and increase test times. The following + # reduces the work factor to the lowest possible values. + Symfony\Component\Security\Core\User\PasswordAuthenticatedUserInterface: + algorithm: auto + cost: 4 # Lowest possible value for bcrypt + time_cost: 3 # Lowest possible value for argon + memory_cost: 10 # Lowest possible value for argon diff --git a/config/packages/snc_redis.yaml b/config/packages/snc_redis.yaml new file mode 100644 index 0000000..b75a8b8 --- /dev/null +++ b/config/packages/snc_redis.yaml @@ -0,0 +1,12 @@ +snc_redis: + clients: + +# Define your clients here. The example below connects to database 0 of the default Redis server. +# +# See https://github.com/snc/SncRedisBundle/blob/master/docs/README.md for instructions on +# how to configure the bundle. +# +# default: +# type: phpredis +# alias: default +# dsn: "%env(REDIS_URL)%" diff --git a/config/packages/translation.yaml b/config/packages/translation.yaml new file mode 100755 index 0000000..a1f6efd --- /dev/null +++ b/config/packages/translation.yaml @@ -0,0 +1,15 @@ +framework: + default_locale: en + translator: + default_path: '%kernel.project_dir%/translations' + fallbacks: + - en +# providers: +# crowdin: +# dsn: '%env(CROWDIN_DSN)%' +# loco: +# dsn: '%env(LOCO_DSN)%' +# lokalise: +# dsn: '%env(LOKALISE_DSN)%' +# phrase: +# dsn: '%env(PHRASE_DSN)%' diff --git a/config/packages/twig.yaml b/config/packages/twig.yaml new file mode 100755 index 0000000..25e6ea3 --- /dev/null +++ b/config/packages/twig.yaml @@ -0,0 +1,6 @@ +twig: + default_path: '%kernel.project_dir%/templates' + +when@test: + twig: + strict_variables: true diff --git a/config/packages/validator.yaml b/config/packages/validator.yaml new file mode 100755 index 0000000..4238d6a --- /dev/null +++ b/config/packages/validator.yaml @@ -0,0 +1,13 @@ +framework: + validation: + email_validation_mode: html5 + + # Enables validator auto-mapping support. + # For instance, basic validation constraints will be inferred from Doctrine's metadata. + #auto_mapping: + # App\Entity\: [] + +when@test: + framework: + validation: + not_compromised_password: false diff --git a/config/packages/web_profiler.yaml b/config/packages/web_profiler.yaml new file mode 100755 index 0000000..4aaa88b --- /dev/null +++ b/config/packages/web_profiler.yaml @@ -0,0 +1,17 @@ +when@dev: + web_profiler: + toolbar: true + intercept_redirects: false + + framework: + profiler: + only_exceptions: false + collect_serializer_data: true + +when@test: + web_profiler: + toolbar: false + intercept_redirects: false + + framework: + profiler: { collect: false } diff --git a/config/preload.php b/config/preload.php new file mode 100644 index 0000000..ee702ca --- /dev/null +++ b/config/preload.php @@ -0,0 +1,5 @@ + + # The ServerName directive sets the request scheme, hostname and port that + # the server uses to identify itself. This is used when creating + # redirection URLs. In the context of virtual hosts, the ServerName + # specifies what hostname must appear in the request's Host: header to + # match this virtual host. For the default virtual host (this file) this + # value is not decisive as it is used as a last resort host regardless. + # However, you must set it for any further virtual host explicitly. + #ServerName www.example.com + + ServerAdmin webmaster@localhost + DocumentRoot /var/www/public + + # Available loglevels: trace8, ..., trace1, debug, info, notice, warn, + # error, crit, alert, emerg. + # It is also possible to configure the loglevel for particular + # modules, e.g. + #LogLevel info ssl:warn + + ErrorLog ${APACHE_LOG_DIR}/error.log + CustomLog ${APACHE_LOG_DIR}/access.log combined + + # For most configuration files from conf-available/, which are + # enabled or disabled at a global level, it is possible to + # include a line for only one particular virtual host. For example the + # following line enables the CGI configuration for this host only + # after it has been globally disabled with "a2disconf". + #Include conf-available/serve-cgi-bin.conf + \ No newline at end of file diff --git a/docker/apache/xdebug.ini b/docker/apache/xdebug.ini new file mode 100644 index 0000000..a6f053c --- /dev/null +++ b/docker/apache/xdebug.ini @@ -0,0 +1,4 @@ +;xdebug.mode=develop,debug +;xdebug.start_with_request=yes +;xdebug.discover_client_host=0 +;xdebug.client_host=host.docker.internal diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml new file mode 100644 index 0000000..bbb6f65 --- /dev/null +++ b/docker/docker-compose.yml @@ -0,0 +1,28 @@ +services: + app: + build: + context: . + dockerfile: apache/Dockerfile + container_name: ${PROJECT_NAME}-app + restart: always + working_dir: /var/www/ + ports: + - '80:80' + volumes: + - ../:/var/www + - ./apache/sites/symfony-skeleton.conf:/etc/apache2/sites-available/000-default.conf + database: + image: mysql:8.0 + container_name: ${PROJECT_NAME}-db + restart: always + environment: + MYSQL_DATABASE: ${PROJECT_NAME} + MYSQL_USER: 'user' + MYSQL_PASSWORD: 'root' + MYSQL_ROOT_PASSWORD: 'root' + ports: + - '3306:3306' + expose: + - '3306' + volumes: + - ./db:/var/lib/mysql \ No newline at end of file diff --git a/docker/opcache.ini b/docker/opcache.ini new file mode 100644 index 0000000..175a538 --- /dev/null +++ b/docker/opcache.ini @@ -0,0 +1,8 @@ +opcache.enable=1 +opcache.revalidate_freq=0 +opcache.validate_timestamps=1 +opcache.max_accelerated_files=20000 +opcache.memory_consumption=256 +opcache.max_wasted_percentage=10 +opcache.interned_strings_buffer=16 +opcache.fast_shutdown=1 \ No newline at end of file diff --git a/docker/php.ini b/docker/php.ini new file mode 100644 index 0000000..98a4c9c --- /dev/null +++ b/docker/php.ini @@ -0,0 +1,1996 @@ +[PHP] + +;;;;;;;;;;;;;;;;;;; +; About php.ini ; +;;;;;;;;;;;;;;;;;;; +; PHP's initialization file, generally called php.ini, is responsible for +; configuring many of the aspects of PHP's behavior. + +; PHP attempts to find and load this configuration from a number of locations. +; The following is a summary of its search order: +; 1. SAPI module specific location. +; 2. The PHPRC environment variable. +; 3. A number of predefined registry keys on Windows +; 4. Current working directory (except CLI) +; 5. The web server's directory (for SAPI modules), or directory of PHP +; (otherwise in Windows) +; 6. The directory from the --with-config-file-path compile time option, or the +; Windows directory (usually C:\windows) +; See the PHP docs for more specific information. +; https://php.net/configuration.file + +; The syntax of the file is extremely simple. Whitespace and lines +; beginning with a semicolon are silently ignored (as you probably guessed). +; Section headers (e.g. [Foo]) are also silently ignored, even though +; they might mean something in the future. + +; Directives following the section heading [PATH=/www/mysite] only +; apply to PHP files in the /www/mysite directory. Directives +; following the section heading [HOST=www.example.com] only apply to +; PHP files served from www.example.com. Directives set in these +; special sections cannot be overridden by user-defined INI files or +; at runtime. Currently, [PATH=] and [HOST=] sections only work under +; CGI/FastCGI. +; https://php.net/ini.sections + +; Directives are specified using the following syntax: +; directive = value +; Directive names are *case sensitive* - foo=bar is different from FOO=bar. +; Directives are variables used to configure PHP or PHP extensions. +; There is no name validation. If PHP can't find an expected +; directive because it is not set or is mistyped, a default value will be used. + +; The value can be a string, a number, a PHP constant (e.g. E_ALL or M_PI), one +; of the INI constants (On, Off, True, False, Yes, No and None) or an expression +; (e.g. E_ALL & ~E_NOTICE), a quoted string ("bar"), or a reference to a +; previously set variable or directive (e.g. ${foo}) + +; Expressions in the INI file are limited to bitwise operators and parentheses: +; | bitwise OR +; ^ bitwise XOR +; & bitwise AND +; ~ bitwise NOT +; ! boolean NOT + +; Boolean flags can be turned on using the values 1, On, True or Yes. +; They can be turned off using the values 0, Off, False or No. + +; An empty string can be denoted by simply not writing anything after the equal +; sign, or by using the None keyword: + +; foo = ; sets foo to an empty string +; foo = None ; sets foo to an empty string +; foo = "None" ; sets foo to the string 'None' + +; If you use constants in your value, and these constants belong to a +; dynamically loaded extension (either a PHP extension or a Zend extension), +; you may only use these constants *after* the line that loads the extension. + +;;;;;;;;;;;;;;;;;;; +; About this file ; +;;;;;;;;;;;;;;;;;;; +; PHP comes packaged with two INI files. One that is recommended to be used +; in production environments and one that is recommended to be used in +; development environments. + +; php.ini-production contains settings which hold security, performance and +; best practices at its core. But please be aware, these settings may break +; compatibility with older or less security conscience applications. We +; recommending using the production ini in production and testing environments. + +; php.ini-development is very similar to its production variant, except it is +; much more verbose when it comes to errors. We recommend using the +; development version only in development environments, as errors shown to +; application users can inadvertently leak otherwise secure information. + +; This is the php.ini-development INI file. + +;;;;;;;;;;;;;;;;;;; +; Quick Reference ; +;;;;;;;;;;;;;;;;;;; + +; The following are all the settings which are different in either the production +; or development versions of the INIs with respect to PHP's default behavior. +; Please see the actual settings later in the document for more details as to why +; we recommend these changes in PHP's behavior. + +; display_errors +; Default Value: On +; Development Value: On +; Production Value: Off + +; display_startup_errors +; Default Value: On +; Development Value: On +; Production Value: Off + +; error_reporting +; Default Value: E_ALL +; Development Value: E_ALL +; Production Value: E_ALL & ~E_DEPRECATED & ~E_STRICT + +; log_errors +; Default Value: Off +; Development Value: On +; Production Value: On + +; max_input_time +; Default Value: -1 (Unlimited) +; Development Value: 60 (60 seconds) +; Production Value: 60 (60 seconds) + +; output_buffering +; Default Value: Off +; Development Value: 4096 +; Production Value: 4096 + +; register_argc_argv +; Default Value: On +; Development Value: Off +; Production Value: Off + +; request_order +; Default Value: None +; Development Value: "GP" +; Production Value: "GP" + +; session.gc_divisor +; Default Value: 100 +; Development Value: 1000 +; Production Value: 1000 + +; session.sid_bits_per_character +; Default Value: 4 +; Development Value: 5 +; Production Value: 5 + +; short_open_tag +; Default Value: On +; Development Value: Off +; Production Value: Off + +; variables_order +; Default Value: "EGPCS" +; Development Value: "GPCS" +; Production Value: "GPCS" + +; zend.exception_ignore_args +; Default Value: Off +; Development Value: Off +; Production Value: On + +; zend.exception_string_param_max_len +; Default Value: 15 +; Development Value: 15 +; Production Value: 0 + +;;;;;;;;;;;;;;;;;;;; +; php.ini Options ; +;;;;;;;;;;;;;;;;;;;; +; Name for user-defined php.ini (.htaccess) files. Default is ".user.ini" +;user_ini.filename = ".user.ini" + +; To disable this feature set this option to an empty value +;user_ini.filename = + +; TTL for user-defined php.ini files (time-to-live) in seconds. Default is 300 seconds (5 minutes) +;user_ini.cache_ttl = 300 + +;;;;;;;;;;;;;;;;;;;; +; Language Options ; +;;;;;;;;;;;;;;;;;;;; + +; Enable the PHP scripting language engine under Apache. +; https://php.net/engine +engine = On + +; This directive determines whether or not PHP will recognize code between +; tags as PHP source which should be processed as such. It is +; generally recommended that should be used and that this feature +; should be disabled, as enabling it may result in issues when generating XML +; documents, however this remains supported for backward compatibility reasons. +; Note that this directive does not control the would work. +; https://php.net/syntax-highlighting +;highlight.string = #DD0000 +;highlight.comment = #FF9900 +;highlight.keyword = #007700 +;highlight.default = #0000BB +;highlight.html = #000000 + +; If enabled, the request will be allowed to complete even if the user aborts +; the request. Consider enabling it if executing long requests, which may end up +; being interrupted by the user or a browser timing out. PHP's default behavior +; is to disable this feature. +; https://php.net/ignore-user-abort +;ignore_user_abort = On + +; Determines the size of the realpath cache to be used by PHP. This value should +; be increased on systems where PHP opens many files to reflect the quantity of +; the file operations performed. +; Note: if open_basedir is set, the cache is disabled +; https://php.net/realpath-cache-size +;realpath_cache_size = 4096k + +; Duration of time, in seconds for which to cache realpath information for a given +; file or directory. For systems with rarely changing files, consider increasing this +; value. +; https://php.net/realpath-cache-ttl +;realpath_cache_ttl = 120 + +; Enables or disables the circular reference collector. +; https://php.net/zend.enable-gc +zend.enable_gc = On + +; If enabled, scripts may be written in encodings that are incompatible with +; the scanner. CP936, Big5, CP949 and Shift_JIS are the examples of such +; encodings. To use this feature, mbstring extension must be enabled. +;zend.multibyte = Off + +; Allows to set the default encoding for the scripts. This value will be used +; unless "declare(encoding=...)" directive appears at the top of the script. +; Only affects if zend.multibyte is set. +;zend.script_encoding = + +; Allows to include or exclude arguments from stack traces generated for exceptions. +; In production, it is recommended to turn this setting on to prohibit the output +; of sensitive information in stack traces +; Default Value: Off +; Development Value: Off +; Production Value: On +zend.exception_ignore_args = Off + +; Allows setting the maximum string length in an argument of a stringified stack trace +; to a value between 0 and 1000000. +; This has no effect when zend.exception_ignore_args is enabled. +; Default Value: 15 +; Development Value: 15 +; Production Value: 0 +zend.exception_string_param_max_len = 15 + +;;;;;;;;;;;;;;;;; +; Miscellaneous ; +;;;;;;;;;;;;;;;;; + +; Decides whether PHP may expose the fact that it is installed on the server +; (e.g. by adding its signature to the Web server header). It is no security +; threat in any way, but it makes it possible to determine whether you use PHP +; on your server or not. +; https://php.net/expose-php +expose_php = On + +;;;;;;;;;;;;;;;;;;; +; Resource Limits ; +;;;;;;;;;;;;;;;;;;; + +; Maximum execution time of each script, in seconds +; https://php.net/max-execution-time +; Note: This directive is hardcoded to 0 for the CLI SAPI +max_execution_time = 30 + +; Maximum amount of time each script may spend parsing request data. It's a good +; idea to limit this time on productions servers in order to eliminate unexpectedly +; long running scripts. +; Note: This directive is hardcoded to -1 for the CLI SAPI +; Default Value: -1 (Unlimited) +; Development Value: 60 (60 seconds) +; Production Value: 60 (60 seconds) +; https://php.net/max-input-time +max_input_time = 60 + +; Maximum input variable nesting level +; https://php.net/max-input-nesting-level +;max_input_nesting_level = 64 + +; How many GET/POST/COOKIE input variables may be accepted +;max_input_vars = 1000 + +; How many multipart body parts (combined input variable and file uploads) may +; be accepted. +; Default Value: -1 (Sum of max_input_vars and max_file_uploads) +;max_multipart_body_parts = 1500 + +; Maximum amount of memory a script may consume +; https://php.net/memory-limit +memory_limit = 128M + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; Error handling and logging ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +; This directive informs PHP of which errors, warnings and notices you would like +; it to take action for. The recommended way of setting values for this +; directive is through the use of the error level constants and bitwise +; operators. The error level constants are below here for convenience as well as +; some common settings and their meanings. +; By default, PHP is set to take action on all errors, notices and warnings EXCEPT +; those related to E_NOTICE and E_STRICT, which together cover best practices and +; recommended coding standards in PHP. For performance reasons, this is the +; recommend error reporting setting. Your production server shouldn't be wasting +; resources complaining about best practices and coding standards. That's what +; development servers and development settings are for. +; Note: The php.ini-development file has this setting as E_ALL. This +; means it pretty much reports everything which is exactly what you want during +; development and early testing. +; +; Error Level Constants: +; E_ALL - All errors and warnings +; E_ERROR - fatal run-time errors +; E_RECOVERABLE_ERROR - almost fatal run-time errors +; E_WARNING - run-time warnings (non-fatal errors) +; E_PARSE - compile-time parse errors +; E_NOTICE - run-time notices (these are warnings which often result +; from a bug in your code, but it's possible that it was +; intentional (e.g., using an uninitialized variable and +; relying on the fact it is automatically initialized to an +; empty string) +; E_STRICT - run-time notices, enable to have PHP suggest changes +; to your code which will ensure the best interoperability +; and forward compatibility of your code +; E_CORE_ERROR - fatal errors that occur during PHP's initial startup +; E_CORE_WARNING - warnings (non-fatal errors) that occur during PHP's +; initial startup +; E_COMPILE_ERROR - fatal compile-time errors +; E_COMPILE_WARNING - compile-time warnings (non-fatal errors) +; E_USER_ERROR - user-generated error message +; E_USER_WARNING - user-generated warning message +; E_USER_NOTICE - user-generated notice message +; E_DEPRECATED - warn about code that will not work in future versions +; of PHP +; E_USER_DEPRECATED - user-generated deprecation warnings +; +; Common Values: +; E_ALL (Show all errors, warnings and notices including coding standards.) +; E_ALL & ~E_NOTICE (Show all errors, except for notices) +; E_ALL & ~E_NOTICE & ~E_STRICT (Show all errors, except for notices and coding standards warnings.) +; E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR (Show only errors) +; Default Value: E_ALL +; Development Value: E_ALL +; Production Value: E_ALL & ~E_DEPRECATED & ~E_STRICT +; https://php.net/error-reporting +error_reporting = E_ALL + +; This directive controls whether or not and where PHP will output errors, +; notices and warnings too. Error output is very useful during development, but +; it could be very dangerous in production environments. Depending on the code +; which is triggering the error, sensitive information could potentially leak +; out of your application such as database usernames and passwords or worse. +; For production environments, we recommend logging errors rather than +; sending them to STDOUT. +; Possible Values: +; Off = Do not display any errors +; stderr = Display errors to STDERR (affects only CGI/CLI binaries!) +; On or stdout = Display errors to STDOUT +; Default Value: On +; Development Value: On +; Production Value: Off +; https://php.net/display-errors +display_errors = On + +; The display of errors which occur during PHP's startup sequence are handled +; separately from display_errors. We strongly recommend you set this to 'off' +; for production servers to avoid leaking configuration details. +; Default Value: On +; Development Value: On +; Production Value: Off +; https://php.net/display-startup-errors +display_startup_errors = On + +; Besides displaying errors, PHP can also log errors to locations such as a +; server-specific log, STDERR, or a location specified by the error_log +; directive found below. While errors should not be displayed on productions +; servers they should still be monitored and logging is a great way to do that. +; Default Value: Off +; Development Value: On +; Production Value: On +; https://php.net/log-errors +log_errors = On + +; Do not log repeated messages. Repeated errors must occur in same file on same +; line unless ignore_repeated_source is set true. +; https://php.net/ignore-repeated-errors +ignore_repeated_errors = Off + +; Ignore source of message when ignoring repeated messages. When this setting +; is On you will not log errors with repeated messages from different files or +; source lines. +; https://php.net/ignore-repeated-source +ignore_repeated_source = Off + +; If this parameter is set to Off, then memory leaks will not be shown (on +; stdout or in the log). This is only effective in a debug compile, and if +; error reporting includes E_WARNING in the allowed list +; https://php.net/report-memleaks +report_memleaks = On + +; This setting is off by default. +;report_zend_debug = 0 + +; Turn off normal error reporting and emit XML-RPC error XML +; https://php.net/xmlrpc-errors +;xmlrpc_errors = 0 + +; An XML-RPC faultCode +;xmlrpc_error_number = 0 + +; When PHP displays or logs an error, it has the capability of formatting the +; error message as HTML for easier reading. This directive controls whether +; the error message is formatted as HTML or not. +; Note: This directive is hardcoded to Off for the CLI SAPI +; https://php.net/html-errors +;html_errors = On + +; If html_errors is set to On *and* docref_root is not empty, then PHP +; produces clickable error messages that direct to a page describing the error +; or function causing the error in detail. +; You can download a copy of the PHP manual from https://php.net/docs +; and change docref_root to the base URL of your local copy including the +; leading '/'. You must also specify the file extension being used including +; the dot. PHP's default behavior is to leave these settings empty, in which +; case no links to documentation are generated. +; Note: Never use this feature for production boxes. +; https://php.net/docref-root +; Examples +;docref_root = "/phpmanual/" + +; https://php.net/docref-ext +;docref_ext = .html + +; String to output before an error message. PHP's default behavior is to leave +; this setting blank. +; https://php.net/error-prepend-string +; Example: +;error_prepend_string = "" + +; String to output after an error message. PHP's default behavior is to leave +; this setting blank. +; https://php.net/error-append-string +; Example: +;error_append_string = "" + +; Log errors to specified file. PHP's default behavior is to leave this value +; empty. +; https://php.net/error-log +; Example: +;error_log = php_errors.log +; Log errors to syslog (Event Log on Windows). +;error_log = syslog + +; The syslog ident is a string which is prepended to every message logged +; to syslog. Only used when error_log is set to syslog. +;syslog.ident = php + +; The syslog facility is used to specify what type of program is logging +; the message. Only used when error_log is set to syslog. +;syslog.facility = user + +; Set this to disable filtering control characters (the default). +; Some loggers only accept NVT-ASCII, others accept anything that's not +; control characters. If your logger accepts everything, then no filtering +; is needed at all. +; Allowed values are: +; ascii (all printable ASCII characters and NL) +; no-ctrl (all characters except control characters) +; all (all characters) +; raw (like "all", but messages are not split at newlines) +; https://php.net/syslog.filter +;syslog.filter = ascii + +;windows.show_crt_warning +; Default value: 0 +; Development value: 0 +; Production value: 0 + +;;;;;;;;;;;;;;;;; +; Data Handling ; +;;;;;;;;;;;;;;;;; + +; The separator used in PHP generated URLs to separate arguments. +; PHP's default setting is "&". +; https://php.net/arg-separator.output +; Example: +;arg_separator.output = "&" + +; List of separator(s) used by PHP to parse input URLs into variables. +; PHP's default setting is "&". +; NOTE: Every character in this directive is considered as separator! +; https://php.net/arg-separator.input +; Example: +;arg_separator.input = ";&" + +; This directive determines which super global arrays are registered when PHP +; starts up. G,P,C,E & S are abbreviations for the following respective super +; globals: GET, POST, COOKIE, ENV and SERVER. There is a performance penalty +; paid for the registration of these arrays and because ENV is not as commonly +; used as the others, ENV is not recommended on productions servers. You +; can still get access to the environment variables through getenv() should you +; need to. +; Default Value: "EGPCS" +; Development Value: "GPCS" +; Production Value: "GPCS"; +; https://php.net/variables-order +variables_order = "GPCS" + +; This directive determines which super global data (G,P & C) should be +; registered into the super global array REQUEST. If so, it also determines +; the order in which that data is registered. The values for this directive +; are specified in the same manner as the variables_order directive, +; EXCEPT one. Leaving this value empty will cause PHP to use the value set +; in the variables_order directive. It does not mean it will leave the super +; globals array REQUEST empty. +; Default Value: None +; Development Value: "GP" +; Production Value: "GP" +; https://php.net/request-order +request_order = "GP" + +; This directive determines whether PHP registers $argv & $argc each time it +; runs. $argv contains an array of all the arguments passed to PHP when a script +; is invoked. $argc contains an integer representing the number of arguments +; that were passed when the script was invoked. These arrays are extremely +; useful when running scripts from the command line. When this directive is +; enabled, registering these variables consumes CPU cycles and memory each time +; a script is executed. For performance reasons, this feature should be disabled +; on production servers. +; Note: This directive is hardcoded to On for the CLI SAPI +; Default Value: On +; Development Value: Off +; Production Value: Off +; https://php.net/register-argc-argv +register_argc_argv = Off + +; When enabled, the ENV, REQUEST and SERVER variables are created when they're +; first used (Just In Time) instead of when the script starts. If these +; variables are not used within a script, having this directive on will result +; in a performance gain. The PHP directive register_argc_argv must be disabled +; for this directive to have any effect. +; https://php.net/auto-globals-jit +auto_globals_jit = On + +; Whether PHP will read the POST data. +; This option is enabled by default. +; Most likely, you won't want to disable this option globally. It causes $_POST +; and $_FILES to always be empty; the only way you will be able to read the +; POST data will be through the php://input stream wrapper. This can be useful +; to proxy requests or to process the POST data in a memory efficient fashion. +; https://php.net/enable-post-data-reading +;enable_post_data_reading = Off + +; Maximum size of POST data that PHP will accept. +; Its value may be 0 to disable the limit. It is ignored if POST data reading +; is disabled through enable_post_data_reading. +; https://php.net/post-max-size +post_max_size = 100M + +; Automatically add files before PHP document. +; https://php.net/auto-prepend-file +auto_prepend_file = + +; Automatically add files after PHP document. +; https://php.net/auto-append-file +auto_append_file = + +; By default, PHP will output a media type using the Content-Type header. To +; disable this, simply set it to be empty. +; +; PHP's built-in default media type is set to text/html. +; https://php.net/default-mimetype +default_mimetype = "text/html" + +; PHP's default character set is set to UTF-8. +; https://php.net/default-charset +default_charset = "UTF-8" + +; PHP internal character encoding is set to empty. +; If empty, default_charset is used. +; https://php.net/internal-encoding +;internal_encoding = + +; PHP input character encoding is set to empty. +; If empty, default_charset is used. +; https://php.net/input-encoding +;input_encoding = + +; PHP output character encoding is set to empty. +; If empty, default_charset is used. +; See also output_buffer. +; https://php.net/output-encoding +;output_encoding = + +;;;;;;;;;;;;;;;;;;;;;;;;; +; Paths and Directories ; +;;;;;;;;;;;;;;;;;;;;;;;;; + +; UNIX: "/path1:/path2" +;include_path = ".:/php/includes" +; +; Windows: "\path1;\path2" +;include_path = ".;c:\php\includes" +; +; PHP's default setting for include_path is ".;/path/to/php/pear" +; https://php.net/include-path + +; The root of the PHP pages, used only if nonempty. +; if PHP was not compiled with FORCE_REDIRECT, you SHOULD set doc_root +; if you are running php as a CGI under any web server (other than IIS) +; see documentation for security issues. The alternate is to use the +; cgi.force_redirect configuration below +; https://php.net/doc-root +doc_root = + +; The directory under which PHP opens the script using /~username used only +; if nonempty. +; https://php.net/user-dir +user_dir = + +; Directory in which the loadable extensions (modules) reside. +; https://php.net/extension-dir +;extension_dir = "./" +; On windows: +;extension_dir = "ext" + +; Directory where the temporary files should be placed. +; Defaults to the system default (see sys_get_temp_dir) +;sys_temp_dir = "/tmp" + +; Whether or not to enable the dl() function. The dl() function does NOT work +; properly in multithreaded servers, such as IIS or Zeus, and is automatically +; disabled on them. +; https://php.net/enable-dl +enable_dl = Off + +; cgi.force_redirect is necessary to provide security running PHP as a CGI under +; most web servers. Left undefined, PHP turns this on by default. You can +; turn it off here AT YOUR OWN RISK +; **You CAN safely turn this off for IIS, in fact, you MUST.** +; https://php.net/cgi.force-redirect +;cgi.force_redirect = 1 + +; if cgi.nph is enabled it will force cgi to always sent Status: 200 with +; every request. PHP's default behavior is to disable this feature. +;cgi.nph = 1 + +; if cgi.force_redirect is turned on, and you are not running under Apache or Netscape +; (iPlanet) web servers, you MAY need to set an environment variable name that PHP +; will look for to know it is OK to continue execution. Setting this variable MAY +; cause security issues, KNOW WHAT YOU ARE DOING FIRST. +; https://php.net/cgi.redirect-status-env +;cgi.redirect_status_env = + +; cgi.fix_pathinfo provides *real* PATH_INFO/PATH_TRANSLATED support for CGI. PHP's +; previous behaviour was to set PATH_TRANSLATED to SCRIPT_FILENAME, and to not grok +; what PATH_INFO is. For more information on PATH_INFO, see the cgi specs. Setting +; this to 1 will cause PHP CGI to fix its paths to conform to the spec. A setting +; of zero causes PHP to behave as before. Default is 1. You should fix your scripts +; to use SCRIPT_FILENAME rather than PATH_TRANSLATED. +; https://php.net/cgi.fix-pathinfo +;cgi.fix_pathinfo=1 + +; if cgi.discard_path is enabled, the PHP CGI binary can safely be placed outside +; of the web tree and people will not be able to circumvent .htaccess security. +;cgi.discard_path=1 + +; FastCGI under IIS supports the ability to impersonate +; security tokens of the calling client. This allows IIS to define the +; security context that the request runs under. mod_fastcgi under Apache +; does not currently support this feature (03/17/2002) +; Set to 1 if running under IIS. Default is zero. +; https://php.net/fastcgi.impersonate +;fastcgi.impersonate = 1 + +; Disable logging through FastCGI connection. PHP's default behavior is to enable +; this feature. +;fastcgi.logging = 0 + +; cgi.rfc2616_headers configuration option tells PHP what type of headers to +; use when sending HTTP response code. If set to 0, PHP sends Status: header that +; is supported by Apache. When this option is set to 1, PHP will send +; RFC2616 compliant header. +; Default is zero. +; https://php.net/cgi.rfc2616-headers +;cgi.rfc2616_headers = 0 + +; cgi.check_shebang_line controls whether CGI PHP checks for line starting with #! +; (shebang) at the top of the running script. This line might be needed if the +; script support running both as stand-alone script and via PHP CGI<. PHP in CGI +; mode skips this line and ignores its content if this directive is turned on. +; https://php.net/cgi.check-shebang-line +;cgi.check_shebang_line=1 + +;;;;;;;;;;;;;;;; +; File Uploads ; +;;;;;;;;;;;;;;;; + +; Whether to allow HTTP file uploads. +; https://php.net/file-uploads +file_uploads = On + +; Temporary directory for HTTP uploaded files (will use system default if not +; specified). +; https://php.net/upload-tmp-dir +;upload_tmp_dir = + +; Maximum allowed size for uploaded files. +; https://php.net/upload-max-filesize +upload_max_filesize = 100M + +; Maximum number of files that can be uploaded via a single request +max_file_uploads = 32 + +;;;;;;;;;;;;;;;;;; +; Fopen wrappers ; +;;;;;;;;;;;;;;;;;; + +; Whether to allow the treatment of URLs (like http:// or ftp://) as files. +; https://php.net/allow-url-fopen +allow_url_fopen = On + +; Whether to allow include/require to open URLs (like https:// or ftp://) as files. +; https://php.net/allow-url-include +allow_url_include = Off + +; Define the anonymous ftp password (your email address). PHP's default setting +; for this is empty. +; https://php.net/from +;from="john@doe.com" + +; Define the User-Agent string. PHP's default setting for this is empty. +; https://php.net/user-agent +;user_agent="PHP" + +; Default timeout for socket based streams (seconds) +; https://php.net/default-socket-timeout +default_socket_timeout = 60 + +; If your scripts have to deal with files from Macintosh systems, +; or you are running on a Mac and need to deal with files from +; unix or win32 systems, setting this flag will cause PHP to +; automatically detect the EOL character in those files so that +; fgets() and file() will work regardless of the source of the file. +; https://php.net/auto-detect-line-endings +;auto_detect_line_endings = Off + +;;;;;;;;;;;;;;;;;;;;;; +; Dynamic Extensions ; +;;;;;;;;;;;;;;;;;;;;;; + +; If you wish to have an extension loaded automatically, use the following +; syntax: +; +; extension=modulename +; +; For example: +; +; extension=mysqli +; +; When the extension library to load is not located in the default extension +; directory, You may specify an absolute path to the library file: +; +; extension=/path/to/extension/mysqli.so +; +; Note : The syntax used in previous PHP versions ('extension=.so' and +; 'extension='php_.dll') is supported for legacy reasons and may be +; deprecated in a future PHP major version. So, when it is possible, please +; move to the new ('extension=) syntax. +; +; Notes for Windows environments : +; +; - Many DLL files are located in the ext/ +; extension folders as well as the separate PECL DLL download. +; Be sure to appropriately set the extension_dir directive. +; +;extension=bz2 + +; The ldap extension must be before curl if OpenSSL 1.0.2 and OpenLDAP is used +; otherwise it results in segfault when unloading after using SASL. +; See https://github.com/php/php-src/issues/8620 for more info. +;extension=ldap + +;extension=curl +;extension=ffi +;extension=ftp +;extension=fileinfo +;extension=gd +;extension=gettext +;extension=gmp +;extension=intl +;extension=imap +;extension=mbstring +;extension=exif ; Must be after mbstring as it depends on it +;extension=mysqli +;extension=oci8_12c ; Use with Oracle Database 12c Instant Client +;extension=oci8_19 ; Use with Oracle Database 19 Instant Client +;extension=odbc +;extension=openssl +;extension=pdo_firebird +;extension=pdo_mysql +;extension=pdo_oci +;extension=pdo_odbc +;extension=pdo_pgsql +;extension=pdo_sqlite +;extension=pgsql +;extension=shmop + +; The MIBS data available in the PHP distribution must be installed. +; See https://www.php.net/manual/en/snmp.installation.php +;extension=snmp + +;extension=soap +;extension=sockets +;extension=sodium +;extension=sqlite3 +;extension=tidy +;extension=xsl +;extension=zip + +;zend_extension=opcache + +;;;;;;;;;;;;;;;;;;; +; Module Settings ; +;;;;;;;;;;;;;;;;;;; + +[CLI Server] +; Whether the CLI web server uses ANSI color coding in its terminal output. +cli_server.color = On + +[Date] +; Defines the default timezone used by the date functions +; https://php.net/date.timezone +date.timezone = Europe/Berlin + +; https://php.net/date.default-latitude +;date.default_latitude = 31.7667 + +; https://php.net/date.default-longitude +;date.default_longitude = 35.2333 + +; https://php.net/date.sunrise-zenith +;date.sunrise_zenith = 90.833333 + +; https://php.net/date.sunset-zenith +;date.sunset_zenith = 90.833333 + +[filter] +; https://php.net/filter.default +;filter.default = unsafe_raw + +; https://php.net/filter.default-flags +;filter.default_flags = + +[iconv] +; Use of this INI entry is deprecated, use global input_encoding instead. +; If empty, default_charset or input_encoding or iconv.input_encoding is used. +; The precedence is: default_charset < input_encoding < iconv.input_encoding +;iconv.input_encoding = + +; Use of this INI entry is deprecated, use global internal_encoding instead. +; If empty, default_charset or internal_encoding or iconv.internal_encoding is used. +; The precedence is: default_charset < internal_encoding < iconv.internal_encoding +;iconv.internal_encoding = + +; Use of this INI entry is deprecated, use global output_encoding instead. +; If empty, default_charset or output_encoding or iconv.output_encoding is used. +; The precedence is: default_charset < output_encoding < iconv.output_encoding +; To use an output encoding conversion, iconv's output handler must be set +; otherwise output encoding conversion cannot be performed. +;iconv.output_encoding = + +[imap] +; rsh/ssh logins are disabled by default. Use this INI entry if you want to +; enable them. Note that the IMAP library does not filter mailbox names before +; passing them to rsh/ssh command, thus passing untrusted data to this function +; with rsh/ssh enabled is insecure. +;imap.enable_insecure_rsh=0 + +[intl] +;intl.default_locale = +; This directive allows you to produce PHP errors when some error +; happens within intl functions. The value is the level of the error produced. +; Default is 0, which does not produce any errors. +;intl.error_level = E_WARNING +;intl.use_exceptions = 0 + +[sqlite3] +; Directory pointing to SQLite3 extensions +; https://php.net/sqlite3.extension-dir +;sqlite3.extension_dir = + +; SQLite defensive mode flag (only available from SQLite 3.26+) +; When the defensive flag is enabled, language features that allow ordinary +; SQL to deliberately corrupt the database file are disabled. This forbids +; writing directly to the schema, shadow tables (eg. FTS data tables), or +; the sqlite_dbpage virtual table. +; https://www.sqlite.org/c3ref/c_dbconfig_defensive.html +; (for older SQLite versions, this flag has no use) +;sqlite3.defensive = 1 + +[Pcre] +; PCRE library backtracking limit. +; https://php.net/pcre.backtrack-limit +;pcre.backtrack_limit=100000 + +; PCRE library recursion limit. +; Please note that if you set this value to a high number you may consume all +; the available process stack and eventually crash PHP (due to reaching the +; stack size limit imposed by the Operating System). +; https://php.net/pcre.recursion-limit +;pcre.recursion_limit=100000 + +; Enables or disables JIT compilation of patterns. This requires the PCRE +; library to be compiled with JIT support. +;pcre.jit=1 + +[Pdo] +; Whether to pool ODBC connections. Can be one of "strict", "relaxed" or "off" +; https://php.net/pdo-odbc.connection-pooling +;pdo_odbc.connection_pooling=strict + +[Pdo_mysql] +; Default socket name for local MySQL connects. If empty, uses the built-in +; MySQL defaults. +pdo_mysql.default_socket= + +[Phar] +; https://php.net/phar.readonly +;phar.readonly = On + +; https://php.net/phar.require-hash +;phar.require_hash = On + +;phar.cache_list = + +[mail function] +; For Win32 only. +; https://php.net/smtp +SMTP = localhost +; https://php.net/smtp-port +smtp_port = 25 + +; For Win32 only. +; https://php.net/sendmail-from +;sendmail_from = me@example.com + +; For Unix only. You may supply arguments as well (default: "sendmail -t -i"). +; https://php.net/sendmail-path +;sendmail_path = + +; Force the addition of the specified parameters to be passed as extra parameters +; to the sendmail binary. These parameters will always replace the value of +; the 5th parameter to mail(). +;mail.force_extra_parameters = + +; Add X-PHP-Originating-Script: that will include uid of the script followed by the filename +mail.add_x_header = Off + +; Use mixed LF and CRLF line separators to keep compatibility with some +; RFC 2822 non conformant MTA. +mail.mixed_lf_and_crlf = Off + +; The path to a log file that will log all mail() calls. Log entries include +; the full path of the script, line number, To address and headers. +;mail.log = +; Log mail to syslog (Event Log on Windows). +;mail.log = syslog + +[ODBC] +; https://php.net/odbc.default-db +;odbc.default_db = Not yet implemented + +; https://php.net/odbc.default-user +;odbc.default_user = Not yet implemented + +; https://php.net/odbc.default-pw +;odbc.default_pw = Not yet implemented + +; Controls the ODBC cursor model. +; Default: SQL_CURSOR_STATIC (default). +;odbc.default_cursortype + +; Allow or prevent persistent links. +; https://php.net/odbc.allow-persistent +odbc.allow_persistent = On + +; Check that a connection is still valid before reuse. +; https://php.net/odbc.check-persistent +odbc.check_persistent = On + +; Maximum number of persistent links. -1 means no limit. +; https://php.net/odbc.max-persistent +odbc.max_persistent = -1 + +; Maximum number of links (persistent + non-persistent). -1 means no limit. +; https://php.net/odbc.max-links +odbc.max_links = -1 + +; Handling of LONG fields. Returns number of bytes to variables. 0 means +; passthru. +; https://php.net/odbc.defaultlrl +odbc.defaultlrl = 4096 + +; Handling of binary data. 0 means passthru, 1 return as is, 2 convert to char. +; See the documentation on odbc_binmode and odbc_longreadlen for an explanation +; of odbc.defaultlrl and odbc.defaultbinmode +; https://php.net/odbc.defaultbinmode +odbc.defaultbinmode = 1 + +[MySQLi] + +; Maximum number of persistent links. -1 means no limit. +; https://php.net/mysqli.max-persistent +mysqli.max_persistent = -1 + +; Allow accessing, from PHP's perspective, local files with LOAD DATA statements +; https://php.net/mysqli.allow_local_infile +;mysqli.allow_local_infile = On + +; It allows the user to specify a folder where files that can be sent via LOAD DATA +; LOCAL can exist. It is ignored if mysqli.allow_local_infile is enabled. +;mysqli.local_infile_directory = + +; Allow or prevent persistent links. +; https://php.net/mysqli.allow-persistent +mysqli.allow_persistent = On + +; Maximum number of links. -1 means no limit. +; https://php.net/mysqli.max-links +mysqli.max_links = -1 + +; Default port number for mysqli_connect(). If unset, mysqli_connect() will use +; the $MYSQL_TCP_PORT or the mysql-tcp entry in /etc/services or the +; compile-time value defined MYSQL_PORT (in that order). Win32 will only look +; at MYSQL_PORT. +; https://php.net/mysqli.default-port +mysqli.default_port = 3306 + +; Default socket name for local MySQL connects. If empty, uses the built-in +; MySQL defaults. +; https://php.net/mysqli.default-socket +mysqli.default_socket = + +; Default host for mysqli_connect() (doesn't apply in safe mode). +; https://php.net/mysqli.default-host +mysqli.default_host = + +; Default user for mysqli_connect() (doesn't apply in safe mode). +; https://php.net/mysqli.default-user +mysqli.default_user = + +; Default password for mysqli_connect() (doesn't apply in safe mode). +; Note that this is generally a *bad* idea to store passwords in this file. +; *Any* user with PHP access can run 'echo get_cfg_var("mysqli.default_pw") +; and reveal this password! And of course, any users with read access to this +; file will be able to reveal the password as well. +; https://php.net/mysqli.default-pw +mysqli.default_pw = + +; Allow or prevent reconnect +mysqli.reconnect = Off + +; If this option is enabled, closing a persistent connection will rollback +; any pending transactions of this connection, before it is put back +; into the persistent connection pool. +;mysqli.rollback_on_cached_plink = Off + +[mysqlnd] +; Enable / Disable collection of general statistics by mysqlnd which can be +; used to tune and monitor MySQL operations. +mysqlnd.collect_statistics = On + +; Enable / Disable collection of memory usage statistics by mysqlnd which can be +; used to tune and monitor MySQL operations. +mysqlnd.collect_memory_statistics = On + +; Records communication from all extensions using mysqlnd to the specified log +; file. +; https://php.net/mysqlnd.debug +;mysqlnd.debug = + +; Defines which queries will be logged. +;mysqlnd.log_mask = 0 + +; Default size of the mysqlnd memory pool, which is used by result sets. +;mysqlnd.mempool_default_size = 16000 + +; Size of a pre-allocated buffer used when sending commands to MySQL in bytes. +;mysqlnd.net_cmd_buffer_size = 2048 + +; Size of a pre-allocated buffer used for reading data sent by the server in +; bytes. +;mysqlnd.net_read_buffer_size = 32768 + +; Timeout for network requests in seconds. +;mysqlnd.net_read_timeout = 31536000 + +; SHA-256 Authentication Plugin related. File with the MySQL server public RSA +; key. +;mysqlnd.sha256_server_public_key = + +[OCI8] + +; Connection: Enables privileged connections using external +; credentials (OCI_SYSOPER, OCI_SYSDBA) +; https://php.net/oci8.privileged-connect +;oci8.privileged_connect = Off + +; Connection: The maximum number of persistent OCI8 connections per +; process. Using -1 means no limit. +; https://php.net/oci8.max-persistent +;oci8.max_persistent = -1 + +; Connection: The maximum number of seconds a process is allowed to +; maintain an idle persistent connection. Using -1 means idle +; persistent connections will be maintained forever. +; https://php.net/oci8.persistent-timeout +;oci8.persistent_timeout = -1 + +; Connection: The number of seconds that must pass before issuing a +; ping during oci_pconnect() to check the connection validity. When +; set to 0, each oci_pconnect() will cause a ping. Using -1 disables +; pings completely. +; https://php.net/oci8.ping-interval +;oci8.ping_interval = 60 + +; Connection: Set this to a user chosen connection class to be used +; for all pooled server requests with Oracle Database Resident +; Connection Pooling (DRCP). To use DRCP, this value should be set to +; the same string for all web servers running the same application, +; the database pool must be configured, and the connection string must +; specify to use a pooled server. +;oci8.connection_class = + +; High Availability: Using On lets PHP receive Fast Application +; Notification (FAN) events generated when a database node fails. The +; database must also be configured to post FAN events. +;oci8.events = Off + +; Tuning: This option enables statement caching, and specifies how +; many statements to cache. Using 0 disables statement caching. +; https://php.net/oci8.statement-cache-size +;oci8.statement_cache_size = 20 + +; Tuning: Enables row prefetching and sets the default number of +; rows that will be fetched automatically after statement execution. +; https://php.net/oci8.default-prefetch +;oci8.default_prefetch = 100 + +; Tuning: Sets the amount of LOB data that is internally returned from +; Oracle Database when an Oracle LOB locator is initially retrieved as +; part of a query. Setting this can improve performance by reducing +; round-trips. +; https://php.net/oci8.prefetch-lob-size +; oci8.prefetch_lob_size = 0 + +; Compatibility. Using On means oci_close() will not close +; oci_connect() and oci_new_connect() connections. +; https://php.net/oci8.old-oci-close-semantics +;oci8.old_oci_close_semantics = Off + +[PostgreSQL] +; Allow or prevent persistent links. +; https://php.net/pgsql.allow-persistent +pgsql.allow_persistent = On + +; Detect broken persistent links always with pg_pconnect(). +; Auto reset feature requires a little overheads. +; https://php.net/pgsql.auto-reset-persistent +pgsql.auto_reset_persistent = Off + +; Maximum number of persistent links. -1 means no limit. +; https://php.net/pgsql.max-persistent +pgsql.max_persistent = -1 + +; Maximum number of links (persistent+non persistent). -1 means no limit. +; https://php.net/pgsql.max-links +pgsql.max_links = -1 + +; Ignore PostgreSQL backends Notice message or not. +; Notice message logging require a little overheads. +; https://php.net/pgsql.ignore-notice +pgsql.ignore_notice = 0 + +; Log PostgreSQL backends Notice message or not. +; Unless pgsql.ignore_notice=0, module cannot log notice message. +; https://php.net/pgsql.log-notice +pgsql.log_notice = 0 + +[bcmath] +; Number of decimal digits for all bcmath functions. +; https://php.net/bcmath.scale +bcmath.scale = 0 + +[browscap] +; https://php.net/browscap +;browscap = extra/browscap.ini + +[Session] +; Handler used to store/retrieve data. +; https://php.net/session.save-handler +session.save_handler = files + +; Argument passed to save_handler. In the case of files, this is the path +; where data files are stored. Note: Windows users have to change this +; variable in order to use PHP's session functions. +; +; The path can be defined as: +; +; session.save_path = "N;/path" +; +; where N is an integer. Instead of storing all the session files in +; /path, what this will do is use subdirectories N-levels deep, and +; store the session data in those directories. This is useful if +; your OS has problems with many files in one directory, and is +; a more efficient layout for servers that handle many sessions. +; +; NOTE 1: PHP will not create this directory structure automatically. +; You can use the script in the ext/session dir for that purpose. +; NOTE 2: See the section on garbage collection below if you choose to +; use subdirectories for session storage +; +; The file storage module creates files using mode 600 by default. +; You can change that by using +; +; session.save_path = "N;MODE;/path" +; +; where MODE is the octal representation of the mode. Note that this +; does not overwrite the process's umask. +; https://php.net/session.save-path +;session.save_path = "/tmp" + +; Whether to use strict session mode. +; Strict session mode does not accept an uninitialized session ID, and +; regenerates the session ID if the browser sends an uninitialized session ID. +; Strict mode protects applications from session fixation via a session adoption +; vulnerability. It is disabled by default for maximum compatibility, but +; enabling it is encouraged. +; https://wiki.php.net/rfc/strict_sessions +session.use_strict_mode = 0 + +; Whether to use cookies. +; https://php.net/session.use-cookies +session.use_cookies = 1 + +; https://php.net/session.cookie-secure +;session.cookie_secure = + +; This option forces PHP to fetch and use a cookie for storing and maintaining +; the session id. We encourage this operation as it's very helpful in combating +; session hijacking when not specifying and managing your own session id. It is +; not the be-all and end-all of session hijacking defense, but it's a good start. +; https://php.net/session.use-only-cookies +session.use_only_cookies = 1 + +; Name of the session (used as cookie name). +; https://php.net/session.name +session.name = PHPSESSID + +; Initialize session on request startup. +; https://php.net/session.auto-start +session.auto_start = 0 + +; Lifetime in seconds of cookie or, if 0, until browser is restarted. +; https://php.net/session.cookie-lifetime +session.cookie_lifetime = 0 + +; The path for which the cookie is valid. +; https://php.net/session.cookie-path +session.cookie_path = / + +; The domain for which the cookie is valid. +; https://php.net/session.cookie-domain +session.cookie_domain = + +; Whether or not to add the httpOnly flag to the cookie, which makes it +; inaccessible to browser scripting languages such as JavaScript. +; https://php.net/session.cookie-httponly +session.cookie_httponly = + +; Add SameSite attribute to cookie to help mitigate Cross-Site Request Forgery (CSRF/XSRF) +; Current valid values are "Strict", "Lax" or "None". When using "None", +; make sure to include the quotes, as `none` is interpreted like `false` in ini files. +; https://tools.ietf.org/html/draft-west-first-party-cookies-07 +session.cookie_samesite = + +; Handler used to serialize data. php is the standard serializer of PHP. +; https://php.net/session.serialize-handler +session.serialize_handler = php + +; Defines the probability that the 'garbage collection' process is started on every +; session initialization. The probability is calculated by using gc_probability/gc_divisor, +; e.g. 1/100 means there is a 1% chance that the GC process starts on each request. +; Default Value: 1 +; Development Value: 1 +; Production Value: 1 +; https://php.net/session.gc-probability +session.gc_probability = 1 + +; Defines the probability that the 'garbage collection' process is started on every +; session initialization. The probability is calculated by using gc_probability/gc_divisor, +; e.g. 1/100 means there is a 1% chance that the GC process starts on each request. +; For high volume production servers, using a value of 1000 is a more efficient approach. +; Default Value: 100 +; Development Value: 1000 +; Production Value: 1000 +; https://php.net/session.gc-divisor +session.gc_divisor = 1000 + +; After this number of seconds, stored data will be seen as 'garbage' and +; cleaned up by the garbage collection process. +; https://php.net/session.gc-maxlifetime +session.gc_maxlifetime = 1440 + +; NOTE: If you are using the subdirectory option for storing session files +; (see session.save_path above), then garbage collection does *not* +; happen automatically. You will need to do your own garbage +; collection through a shell script, cron entry, or some other method. +; For example, the following script is the equivalent of setting +; session.gc_maxlifetime to 1440 (1440 seconds = 24 minutes): +; find /path/to/sessions -cmin +24 -type f | xargs rm + +; Check HTTP Referer to invalidate externally stored URLs containing ids. +; HTTP_REFERER has to contain this substring for the session to be +; considered as valid. +; https://php.net/session.referer-check +session.referer_check = + +; Set to {nocache,private,public,} to determine HTTP caching aspects +; or leave this empty to avoid sending anti-caching headers. +; https://php.net/session.cache-limiter +session.cache_limiter = nocache + +; Document expires after n minutes. +; https://php.net/session.cache-expire +session.cache_expire = 180 + +; trans sid support is disabled by default. +; Use of trans sid may risk your users' security. +; Use this option with caution. +; - User may send URL contains active session ID +; to other person via. email/irc/etc. +; - URL that contains active session ID may be stored +; in publicly accessible computer. +; - User may access your site with the same session ID +; always using URL stored in browser's history or bookmarks. +; https://php.net/session.use-trans-sid +session.use_trans_sid = 0 + +; Set session ID character length. This value could be between 22 to 256. +; Shorter length than default is supported only for compatibility reason. +; Users should use 32 or more chars. +; https://php.net/session.sid-length +; Default Value: 32 +; Development Value: 26 +; Production Value: 26 +session.sid_length = 26 + +; The URL rewriter will look for URLs in a defined set of HTML tags. +;
is special; if you include them here, the rewriter will +; add a hidden field with the info which is otherwise appended +; to URLs. tag's action attribute URL will not be modified +; unless it is specified. +; Note that all valid entries require a "=", even if no value follows. +; Default Value: "a=href,area=href,frame=src,form=" +; Development Value: "a=href,area=href,frame=src,form=" +; Production Value: "a=href,area=href,frame=src,form=" +; https://php.net/url-rewriter.tags +session.trans_sid_tags = "a=href,area=href,frame=src,form=" + +; URL rewriter does not rewrite absolute URLs by default. +; To enable rewrites for absolute paths, target hosts must be specified +; at RUNTIME. i.e. use ini_set() +; tags is special. PHP will check action attribute's URL regardless +; of session.trans_sid_tags setting. +; If no host is defined, HTTP_HOST will be used for allowed host. +; Example value: php.net,www.php.net,wiki.php.net +; Use "," for multiple hosts. No spaces are allowed. +; Default Value: "" +; Development Value: "" +; Production Value: "" +;session.trans_sid_hosts="" + +; Define how many bits are stored in each character when converting +; the binary hash data to something readable. +; Possible values: +; 4 (4 bits: 0-9, a-f) +; 5 (5 bits: 0-9, a-v) +; 6 (6 bits: 0-9, a-z, A-Z, "-", ",") +; Default Value: 4 +; Development Value: 5 +; Production Value: 5 +; https://php.net/session.hash-bits-per-character +session.sid_bits_per_character = 5 + +; Enable upload progress tracking in $_SESSION +; Default Value: On +; Development Value: On +; Production Value: On +; https://php.net/session.upload-progress.enabled +;session.upload_progress.enabled = On + +; Cleanup the progress information as soon as all POST data has been read +; (i.e. upload completed). +; Default Value: On +; Development Value: On +; Production Value: On +; https://php.net/session.upload-progress.cleanup +;session.upload_progress.cleanup = On + +; A prefix used for the upload progress key in $_SESSION +; Default Value: "upload_progress_" +; Development Value: "upload_progress_" +; Production Value: "upload_progress_" +; https://php.net/session.upload-progress.prefix +;session.upload_progress.prefix = "upload_progress_" + +; The index name (concatenated with the prefix) in $_SESSION +; containing the upload progress information +; Default Value: "PHP_SESSION_UPLOAD_PROGRESS" +; Development Value: "PHP_SESSION_UPLOAD_PROGRESS" +; Production Value: "PHP_SESSION_UPLOAD_PROGRESS" +; https://php.net/session.upload-progress.name +;session.upload_progress.name = "PHP_SESSION_UPLOAD_PROGRESS" + +; How frequently the upload progress should be updated. +; Given either in percentages (per-file), or in bytes +; Default Value: "1%" +; Development Value: "1%" +; Production Value: "1%" +; https://php.net/session.upload-progress.freq +;session.upload_progress.freq = "1%" + +; The minimum delay between updates, in seconds +; Default Value: 1 +; Development Value: 1 +; Production Value: 1 +; https://php.net/session.upload-progress.min-freq +;session.upload_progress.min_freq = "1" + +; Only write session data when session data is changed. Enabled by default. +; https://php.net/session.lazy-write +;session.lazy_write = On + +[Assertion] +; Switch whether to compile assertions at all (to have no overhead at run-time) +; -1: Do not compile at all +; 0: Jump over assertion at run-time +; 1: Execute assertions +; Changing from or to a negative value is only possible in php.ini! (For turning assertions on and off at run-time, see assert.active, when zend.assertions = 1) +; Default Value: 1 +; Development Value: 1 +; Production Value: -1 +; https://php.net/zend.assertions +zend.assertions = 1 + +; Assert(expr); active by default. +; https://php.net/assert.active +;assert.active = On + +; Throw an AssertionError on failed assertions +; https://php.net/assert.exception +;assert.exception = On + +; Issue a PHP warning for each failed assertion. (Overridden by assert.exception if active) +; https://php.net/assert.warning +;assert.warning = On + +; Don't bail out by default. +; https://php.net/assert.bail +;assert.bail = Off + +; User-function to be called if an assertion fails. +; https://php.net/assert.callback +;assert.callback = 0 + +[COM] +; path to a file containing GUIDs, IIDs or filenames of files with TypeLibs +; https://php.net/com.typelib-file +;com.typelib_file = + +; allow Distributed-COM calls +; https://php.net/com.allow-dcom +;com.allow_dcom = true + +; autoregister constants of a component's typelib on com_load() +; https://php.net/com.autoregister-typelib +;com.autoregister_typelib = true + +; register constants casesensitive +; https://php.net/com.autoregister-casesensitive +;com.autoregister_casesensitive = false + +; show warnings on duplicate constant registrations +; https://php.net/com.autoregister-verbose +;com.autoregister_verbose = true + +; The default character set code-page to use when passing strings to and from COM objects. +; Default: system ANSI code page +;com.code_page= + +; The version of the .NET framework to use. The value of the setting are the first three parts +; of the framework's version number, separated by dots, and prefixed with "v", e.g. "v4.0.30319". +;com.dotnet_version= + +[mbstring] +; language for internal character representation. +; This affects mb_send_mail() and mbstring.detect_order. +; https://php.net/mbstring.language +;mbstring.language = Japanese + +; Use of this INI entry is deprecated, use global internal_encoding instead. +; internal/script encoding. +; Some encoding cannot work as internal encoding. (e.g. SJIS, BIG5, ISO-2022-*) +; If empty, default_charset or internal_encoding or iconv.internal_encoding is used. +; The precedence is: default_charset < internal_encoding < iconv.internal_encoding +;mbstring.internal_encoding = + +; Use of this INI entry is deprecated, use global input_encoding instead. +; http input encoding. +; mbstring.encoding_translation = On is needed to use this setting. +; If empty, default_charset or input_encoding or mbstring.input is used. +; The precedence is: default_charset < input_encoding < mbstring.http_input +; https://php.net/mbstring.http-input +;mbstring.http_input = + +; Use of this INI entry is deprecated, use global output_encoding instead. +; http output encoding. +; mb_output_handler must be registered as output buffer to function. +; If empty, default_charset or output_encoding or mbstring.http_output is used. +; The precedence is: default_charset < output_encoding < mbstring.http_output +; To use an output encoding conversion, mbstring's output handler must be set +; otherwise output encoding conversion cannot be performed. +; https://php.net/mbstring.http-output +;mbstring.http_output = + +; enable automatic encoding translation according to +; mbstring.internal_encoding setting. Input chars are +; converted to internal encoding by setting this to On. +; Note: Do _not_ use automatic encoding translation for +; portable libs/applications. +; https://php.net/mbstring.encoding-translation +;mbstring.encoding_translation = Off + +; automatic encoding detection order. +; "auto" detect order is changed according to mbstring.language +; https://php.net/mbstring.detect-order +;mbstring.detect_order = auto + +; substitute_character used when character cannot be converted +; one from another +; https://php.net/mbstring.substitute-character +;mbstring.substitute_character = none + +; Enable strict encoding detection. +;mbstring.strict_detection = Off + +; This directive specifies the regex pattern of content types for which mb_output_handler() +; is activated. +; Default: mbstring.http_output_conv_mimetypes=^(text/|application/xhtml\+xml) +;mbstring.http_output_conv_mimetypes= + +; This directive specifies maximum stack depth for mbstring regular expressions. It is similar +; to the pcre.recursion_limit for PCRE. +;mbstring.regex_stack_limit=100000 + +; This directive specifies maximum retry count for mbstring regular expressions. It is similar +; to the pcre.backtrack_limit for PCRE. +;mbstring.regex_retry_limit=1000000 + +[gd] +; Tell the jpeg decode to ignore warnings and try to create +; a gd image. The warning will then be displayed as notices +; disabled by default +; https://php.net/gd.jpeg-ignore-warning +;gd.jpeg_ignore_warning = 1 + +[exif] +; Exif UNICODE user comments are handled as UCS-2BE/UCS-2LE and JIS as JIS. +; With mbstring support this will automatically be converted into the encoding +; given by corresponding encode setting. When empty mbstring.internal_encoding +; is used. For the decode settings you can distinguish between motorola and +; intel byte order. A decode setting cannot be empty. +; https://php.net/exif.encode-unicode +;exif.encode_unicode = ISO-8859-15 + +; https://php.net/exif.decode-unicode-motorola +;exif.decode_unicode_motorola = UCS-2BE + +; https://php.net/exif.decode-unicode-intel +;exif.decode_unicode_intel = UCS-2LE + +; https://php.net/exif.encode-jis +;exif.encode_jis = + +; https://php.net/exif.decode-jis-motorola +;exif.decode_jis_motorola = JIS + +; https://php.net/exif.decode-jis-intel +;exif.decode_jis_intel = JIS + +[Tidy] +; The path to a default tidy configuration file to use when using tidy +; https://php.net/tidy.default-config +;tidy.default_config = /usr/local/lib/php/default.tcfg + +; Should tidy clean and repair output automatically? +; WARNING: Do not use this option if you are generating non-html content +; such as dynamic images +; https://php.net/tidy.clean-output +tidy.clean_output = Off + +[soap] +; Enables or disables WSDL caching feature. +; https://php.net/soap.wsdl-cache-enabled +soap.wsdl_cache_enabled=1 + +; Sets the directory name where SOAP extension will put cache files. +; https://php.net/soap.wsdl-cache-dir +soap.wsdl_cache_dir="/tmp" + +; (time to live) Sets the number of second while cached file will be used +; instead of original one. +; https://php.net/soap.wsdl-cache-ttl +soap.wsdl_cache_ttl=86400 + +; Sets the size of the cache limit. (Max. number of WSDL files to cache) +soap.wsdl_cache_limit = 5 + +[sysvshm] +; A default size of the shared memory segment +;sysvshm.init_mem = 10000 + +[ldap] +; Sets the maximum number of open links or -1 for unlimited. +ldap.max_links = -1 + +[dba] +;dba.default_handler= + +[opcache] +; Determines if Zend OPCache is enabled +;opcache.enable=1 + +; Determines if Zend OPCache is enabled for the CLI version of PHP +;opcache.enable_cli=0 + +; The OPcache shared memory storage size. +;opcache.memory_consumption=128 + +; The amount of memory for interned strings in Mbytes. +;opcache.interned_strings_buffer=8 + +; The maximum number of keys (scripts) in the OPcache hash table. +; Only numbers between 200 and 1000000 are allowed. +;opcache.max_accelerated_files=10000 + +; The maximum percentage of "wasted" memory until a restart is scheduled. +;opcache.max_wasted_percentage=5 + +; When this directive is enabled, the OPcache appends the current working +; directory to the script key, thus eliminating possible collisions between +; files with the same name (basename). Disabling the directive improves +; performance, but may break existing applications. +;opcache.use_cwd=1 + +; When disabled, you must reset the OPcache manually or restart the +; webserver for changes to the filesystem to take effect. +;opcache.validate_timestamps=1 + +; How often (in seconds) to check file timestamps for changes to the shared +; memory storage allocation. ("1" means validate once per second, but only +; once per request. "0" means always validate) +;opcache.revalidate_freq=2 + +; Enables or disables file search in include_path optimization +;opcache.revalidate_path=0 + +; If disabled, all PHPDoc comments are dropped from the code to reduce the +; size of the optimized code. +;opcache.save_comments=1 + +; If enabled, compilation warnings (including notices and deprecations) will +; be recorded and replayed each time a file is included. Otherwise, compilation +; warnings will only be emitted when the file is first cached. +;opcache.record_warnings=0 + +; Allow file existence override (file_exists, etc.) performance feature. +;opcache.enable_file_override=0 + +; A bitmask, where each bit enables or disables the appropriate OPcache +; passes +;opcache.optimization_level=0x7FFFBFFF + +;opcache.dups_fix=0 + +; The location of the OPcache blacklist file (wildcards allowed). +; Each OPcache blacklist file is a text file that holds the names of files +; that should not be accelerated. The file format is to add each filename +; to a new line. The filename may be a full path or just a file prefix +; (i.e., /var/www/x blacklists all the files and directories in /var/www +; that start with 'x'). Line starting with a ; are ignored (comments). +;opcache.blacklist_filename= + +; Allows exclusion of large files from being cached. By default all files +; are cached. +;opcache.max_file_size=0 + +; Check the cache checksum each N requests. +; The default value of "0" means that the checks are disabled. +;opcache.consistency_checks=0 + +; How long to wait (in seconds) for a scheduled restart to begin if the cache +; is not being accessed. +;opcache.force_restart_timeout=180 + +; OPcache error_log file name. Empty string assumes "stderr". +;opcache.error_log= + +; All OPcache errors go to the Web server log. +; By default, only fatal errors (level 0) or errors (level 1) are logged. +; You can also enable warnings (level 2), info messages (level 3) or +; debug messages (level 4). +;opcache.log_verbosity_level=1 + +; Preferred Shared Memory back-end. Leave empty and let the system decide. +;opcache.preferred_memory_model= + +; Protect the shared memory from unexpected writing during script execution. +; Useful for internal debugging only. +;opcache.protect_memory=0 + +; Allows calling OPcache API functions only from PHP scripts which path is +; started from specified string. The default "" means no restriction +;opcache.restrict_api= + +; Mapping base of shared memory segments (for Windows only). All the PHP +; processes have to map shared memory into the same address space. This +; directive allows to manually fix the "Unable to reattach to base address" +; errors. +;opcache.mmap_base= + +; Facilitates multiple OPcache instances per user (for Windows only). All PHP +; processes with the same cache ID and user share an OPcache instance. +;opcache.cache_id= + +; Enables and sets the second level cache directory. +; It should improve performance when SHM memory is full, at server restart or +; SHM reset. The default "" disables file based caching. +;opcache.file_cache= + +; Enables or disables opcode caching in shared memory. +;opcache.file_cache_only=0 + +; Enables or disables checksum validation when script loaded from file cache. +;opcache.file_cache_consistency_checks=1 + +; Implies opcache.file_cache_only=1 for a certain process that failed to +; reattach to the shared memory (for Windows only). Explicitly enabled file +; cache is required. +;opcache.file_cache_fallback=1 + +; Enables or disables copying of PHP code (text segment) into HUGE PAGES. +; Under certain circumstances (if only a single global PHP process is +; started from which all others fork), this can increase performance +; by a tiny amount because TLB misses are reduced. On the other hand, this +; delays PHP startup, increases memory usage and degrades performance +; under memory pressure - use with care. +; Requires appropriate OS configuration. +;opcache.huge_code_pages=0 + +; Validate cached file permissions. +;opcache.validate_permission=0 + +; Prevent name collisions in chroot'ed environment. +;opcache.validate_root=0 + +; If specified, it produces opcode dumps for debugging different stages of +; optimizations. +;opcache.opt_debug_level=0 + +; Specifies a PHP script that is going to be compiled and executed at server +; start-up. +; https://php.net/opcache.preload +;opcache.preload= + +; Preloading code as root is not allowed for security reasons. This directive +; facilitates to let the preloading to be run as another user. +; https://php.net/opcache.preload_user +;opcache.preload_user= + +; Prevents caching files that are less than this number of seconds old. It +; protects from caching of incompletely updated files. In case all file updates +; on your site are atomic, you may increase performance by setting it to "0". +;opcache.file_update_protection=2 + +; Absolute path used to store shared lockfiles (for *nix only). +;opcache.lockfile_path=/tmp + +[curl] +; A default value for the CURLOPT_CAINFO option. This is required to be an +; absolute path. +;curl.cainfo = + +[openssl] +; The location of a Certificate Authority (CA) file on the local filesystem +; to use when verifying the identity of SSL/TLS peers. Most users should +; not specify a value for this directive as PHP will attempt to use the +; OS-managed cert stores in its absence. If specified, this value may still +; be overridden on a per-stream basis via the "cafile" SSL stream context +; option. +;openssl.cafile= + +; If openssl.cafile is not specified or if the CA file is not found, the +; directory pointed to by openssl.capath is searched for a suitable +; certificate. This value must be a correctly hashed certificate directory. +; Most users should not specify a value for this directive as PHP will +; attempt to use the OS-managed cert stores in its absence. If specified, +; this value may still be overridden on a per-stream basis via the "capath" +; SSL stream context option. +;openssl.capath= + +[ffi] +; FFI API restriction. Possible values: +; "preload" - enabled in CLI scripts and preloaded files (default) +; "false" - always disabled +; "true" - always enabled +;ffi.enable=preload + +; List of headers files to preload, wildcard patterns allowed. +;ffi.preload= + + + + +; enables opcache +opcache.enable=1 + +; maximum memory that OPcache can use to store compiled PHP files +opcache.memory_consumption=256 + +; maximum number of files that can be stored in the cache +opcache.max_accelerated_files=20000 + +; don't check for timestamps +opcache.validate_timestamps=0 + +; maximum memory allocated to store the results +realpath_cache_size=4096K + +; save the results for 1 hour (3600 seconds) +realpath_cache_ttl=3600 diff --git a/docker/xdebug.ini b/docker/xdebug.ini new file mode 100644 index 0000000..a6f053c --- /dev/null +++ b/docker/xdebug.ini @@ -0,0 +1,4 @@ +;xdebug.mode=develop,debug +;xdebug.start_with_request=yes +;xdebug.discover_client_host=0 +;xdebug.client_host=host.docker.internal diff --git a/migrations/.gitignore b/migrations/.gitignore new file mode 100755 index 0000000..e69de29 diff --git a/migrations/Version20231016141648.php b/migrations/Version20231016141648.php new file mode 100755 index 0000000..623f680 --- /dev/null +++ b/migrations/Version20231016141648.php @@ -0,0 +1,33 @@ +addSql('CREATE TABLE `user` (id INT AUTO_INCREMENT NOT NULL, username VARCHAR(180) NOT NULL, roles JSON NOT NULL COMMENT \'(DC2Type:json)\', password VARCHAR(255) NOT NULL, UNIQUE INDEX UNIQ_8D93D649F85E0677 (username), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE `utf8_unicode_ci` ENGINE = InnoDB'); + $this->addSql('CREATE TABLE messenger_messages (id BIGINT AUTO_INCREMENT NOT NULL, body LONGTEXT NOT NULL, headers LONGTEXT NOT NULL, queue_name VARCHAR(190) NOT NULL, created_at DATETIME NOT NULL COMMENT \'(DC2Type:datetime_immutable)\', available_at DATETIME NOT NULL COMMENT \'(DC2Type:datetime_immutable)\', delivered_at DATETIME DEFAULT NULL COMMENT \'(DC2Type:datetime_immutable)\', INDEX IDX_75EA56E0FB7336F0 (queue_name), INDEX IDX_75EA56E0E3BD61CE (available_at), INDEX IDX_75EA56E016BA31DB (delivered_at), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE `utf8_unicode_ci` ENGINE = InnoDB'); + } + + public function down(Schema $schema): void + { + // this down() migration is auto-generated, please modify it to your needs + $this->addSql('DROP TABLE `user`'); + $this->addSql('DROP TABLE messenger_messages'); + } +} diff --git a/migrations/Version20231020053615.php b/migrations/Version20231020053615.php new file mode 100755 index 0000000..be5112f --- /dev/null +++ b/migrations/Version20231020053615.php @@ -0,0 +1,31 @@ +addSql('ALTER TABLE user ADD token VARCHAR(255) NOT NULL'); + } + + public function down(Schema $schema): void + { + // this down() migration is auto-generated, please modify it to your needs + $this->addSql('ALTER TABLE `user` DROP token'); + } +} diff --git a/migrations/Version20231020055144.php b/migrations/Version20231020055144.php new file mode 100755 index 0000000..26d2e5d --- /dev/null +++ b/migrations/Version20231020055144.php @@ -0,0 +1,33 @@ +addSql('CREATE TABLE file (id INT AUTO_INCREMENT NOT NULL, user_id INT NOT NULL, name VARCHAR(255) NOT NULL, INDEX IDX_8C9F3610A76ED395 (user_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE `utf8_unicode_ci` ENGINE = InnoDB'); + $this->addSql('ALTER TABLE file ADD CONSTRAINT FK_8C9F3610A76ED395 FOREIGN KEY (user_id) REFERENCES `user` (id)'); + } + + public function down(Schema $schema): void + { + // this down() migration is auto-generated, please modify it to your needs + $this->addSql('ALTER TABLE file DROP FOREIGN KEY FK_8C9F3610A76ED395'); + $this->addSql('DROP TABLE file'); + } +} diff --git a/migrations/Version20231020082438.php b/migrations/Version20231020082438.php new file mode 100755 index 0000000..2ac3754 --- /dev/null +++ b/migrations/Version20231020082438.php @@ -0,0 +1,31 @@ +addSql('ALTER TABLE file ADD original_filename VARCHAR(255) NOT NULL'); + } + + public function down(Schema $schema): void + { + // this down() migration is auto-generated, please modify it to your needs + $this->addSql('ALTER TABLE file DROP original_filename'); + } +} diff --git a/migrations/Version20231023062854.php b/migrations/Version20231023062854.php new file mode 100755 index 0000000..e7df203 --- /dev/null +++ b/migrations/Version20231023062854.php @@ -0,0 +1,31 @@ +addSql('ALTER TABLE file ADD size INT NOT NULL, ADD created_at DATETIME NOT NULL COMMENT \'(DC2Type:datetime_immutable)\''); + } + + public function down(Schema $schema): void + { + // this down() migration is auto-generated, please modify it to your needs + $this->addSql('ALTER TABLE file DROP size, DROP created_at'); + } +} diff --git a/migrations/Version20231103112501.php b/migrations/Version20231103112501.php new file mode 100644 index 0000000..b6b0d3a --- /dev/null +++ b/migrations/Version20231103112501.php @@ -0,0 +1,31 @@ +addSql('ALTER TABLE user ADD created_at DATETIME NOT NULL COMMENT \'(DC2Type:datetime_immutable)\''); + } + + public function down(Schema $schema): void + { + // this down() migration is auto-generated, please modify it to your needs + $this->addSql('ALTER TABLE `user` DROP created_at'); + } +} diff --git a/phpunit.xml.dist b/phpunit.xml.dist new file mode 100755 index 0000000..38c778b --- /dev/null +++ b/phpunit.xml.dist @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + tests + + + + + + src + + + + + + + + + + diff --git a/public/.htaccess b/public/.htaccess new file mode 100644 index 0000000..bb545f9 --- /dev/null +++ b/public/.htaccess @@ -0,0 +1,5 @@ + + RewriteEngine On + RewriteCond %{REQUEST_FILENAME} !-f + RewriteRule ^(.*)$ index.php [QSA,L] + \ No newline at end of file diff --git a/public/assets/css/style.css b/public/assets/css/style.css new file mode 100755 index 0000000..a71c882 --- /dev/null +++ b/public/assets/css/style.css @@ -0,0 +1,1198 @@ +:root { + /*DARK THEMES*/ + /*ventry-themes: default*/ + --default-theme-bg: #1D2026 !important; + --default-theme-bg-primary: #15181D !important; + --default-theme-bg-secondary: #1d2026 !important; + --default-theme-gradient: linear-gradient(80deg, rgb(36 40 48 / 25%) 0%, rgb(36 40 48 / 0%) 100%) !important; + --default-theme-button-primary: linear-gradient(65deg, #0270D7 0, #0F8AFD 100%); + --default-theme-button-secondary: linear-gradient(65deg, #0270D7 0, #0F8AFD 100%); +} + +.card { + --bs-card-bg: #15181D !important; +} + +html { + line-height: 1.15; + -ms-text-size-adjust: 100%; + -webkit-text-size-adjust: 100% +} + +body { + margin: 0 +} + +footer, header, section { + display: block +} + +h1 { + font-size: 2em; + margin: 0.67em 0 +} + +main { + display: block +} + +a { + background-color: transparent; +} + +b { + font-weight: inherit +} + +b { + font-weight: bolder +} + +img { + border-style: none +} + +svg:not(:root) { + overflow: hidden +} + +button, input { + font-family: sans-serif; + font-size: 100%; + line-height: 1.15; + margin: 0 +} + +button, input { + overflow: visible +} + +button { + text-transform: none +} + +button, html [type="button"], [type="submit"] { + -webkit-appearance: button; +} + +button::-moz-focus-inner, [type="button"]::-moz-focus-inner, [type="submit"]::-moz-focus-inner { + border-style: none; + padding: 0 +} + +button:-moz-focusring, [type="button"]:-moz-focusring, [type="submit"]:-moz-focusring { + outline: 1px dotted ButtonText +} + +::-webkit-file-upload-button { + -webkit-appearance: button; + font: inherit +} + +html { + box-sizing: border-box +} + +*, *:before, *:after { + box-sizing: inherit +} + +body { + background: #1D2026; + -moz-osx-font-smoothing: grayscale; + -webkit-font-smoothing: antialiased +} + +ul { + margin-top: 0; + margin-bottom: 24px; + padding-left: 24px +} + +ul { + list-style: disc +} + +img { + height: auto; + max-width: 100%; + vertical-align: middle +} + +img, svg { + display: block +} + +table { + border-collapse: collapse; + margin-bottom: 24px; + width: 100% +} + +tr { + border-bottom: 1px solid #242830 +} + +th { + text-align: left +} + +th { + padding: 10px 16px +} + +th:first-child { + padding-left: 0 +} + +th:last-child { + padding-right: 0 +} + +html { + font-size: 20px; + line-height: 30px +} + +body { + color: #8A94A7; + font-size: 1rem +} + +body, button, input { + font-family: "IBM Plex Sans", sans-serif +} + +a { + color: #8A94A7; + text-decoration: underline +} + +a:hover, a:active { + outline: 0; + text-decoration: none +} + +h1, h3, h4 { + clear: both; + color: #fff; + font-weight: 600 +} + +h1 { + font-size: 38px; + line-height: 48px; + letter-spacing: 0; +} + +@media (min-width: 641px) { + h1 { + font-size: 44px; + line-height: 54px; + letter-spacing: 0; + } +} + +h3 { + font-size: 24px; + line-height: 34px; + letter-spacing: 0 +} + +@media (min-width: 641px) { + h3 { + font-size: 32px; + line-height: 42px; + letter-spacing: 0 + } +} + +h4 { + font-size: 20px; + line-height: 30px; + letter-spacing: -0.1px +} + +@media (min-width: 641px) { + h4 { + font-size: 24px; + line-height: 34px; + letter-spacing: 0 + } +} + +.text-sm { + font-size: 18px; + line-height: 28px; + letter-spacing: -0.1px +} + +h1 { + margin-top: 48px; + margin-bottom: 16px +} + +h3 { + margin-top: 36px; + margin-bottom: 12px +} + +h4 { + margin-top: 24px; + margin-bottom: 4px +} + +p { + margin-top: 0; + margin-bottom: 24px +} + +i { + font-style: italic +} + +b { + font-weight: 600 +} + +button, input, label { + font-size: 20px; + line-height: 30px +} + +.container { + width: 100%; + margin: 0 auto; + padding-left: 16px; + padding-right: 16px +} + +@media (min-width: 481px) { + .container { + padding-left: 24px; + padding-right: 24px + } +} + +.container { + max-width: 1320px; +} + +.list-reset { + list-style: none; + padding: 0 +} + +.text-center { + text-align: center +} + +.m-0 { + margin: 0 +} + +.mt-0 { + margin-top: 0 +} + +.mb-0 { + margin-bottom: 0 +} + +.mt-24 { + margin-top: 24px +} + +.mt-48 { + margin-top: 48px +} + +.sr .has-animations .is-revealing { + visibility: hidden +} + +.has-animations .anime-element { + visibility: hidden +} + +.anime-ready .has-animations .anime-element { + visibility: visible +} + +.button { + display: inline-flex; + font-size: 14px; + letter-spacing: 0; + font-weight: 600; + line-height: 16px; + text-decoration: none !important; + text-transform: uppercase; + background-color: #242830; + color: #fff !important; + border: none; + cursor: pointer; + transition: .2s; + justify-content: center; + padding: 16px 32px; + height: 48px; + text-align: center; + border-radius: 15px; + white-space: nowrap +} + +.button:hover { + background: #262a33 +} + +.button:active { + outline: 0 +} + +.button::before { + border-radius: 2px +} + +.button-primary { + background: #097dea; + background: linear-gradient(65deg, #0270D7 0, #0F8AFD 100%); + border-radius: 15px; +} + +.button-primary:hover { + background: #0982f4; + background: linear-gradient(65deg, #0275e1 0, #198ffd 100%) +} + +@media (max-width: 640px) { + .button-wide-mobile { + width: 100%; + max-width: 280px + } +} + +.site-header { + padding: 24px 0 +} + +@media (min-width: 641px) { + .site-header { + position: relative + } + + .site-header::before { + content: ''; + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 700px; + background: #242830; + background: linear-gradient(80deg, rgba(36, 40, 48, 0.5) 0%, rgba(36, 40, 48, 0) 100%); + -webkit-transform-origin: 0; + transform-origin: 0; + transform: skewY(-12deg) + } +} + +.hero { + text-align: center; + padding-top: 48px; + padding-bottom: 88px +} + +.hero-copy { + position: relative; + z-index: 1 +} + +.hero-cta { + margin-bottom: 40px +} + +.hero-figure { + position: relative +} + +.hero-figure svg { + width: 100%; + height: auto +} + +.hero-figure::before, .hero-figure::after { + content: ''; + position: absolute; + background-repeat: no-repeat; + background-size: 100% +} + +.has-animations .hero-figure::before, .has-animations .hero-figure::after { + opacity: 0; + transition: opacity 2s ease +} + +.anime-ready .has-animations .hero-figure::before, .anime-ready .has-animations .hero-figure::after { + opacity: 1 +} + +.hero-figure::before { + top: -57.8%; + left: -1.3%; + width: 152.84%; + height: 178.78%; + background-image: url("../img/hero-back-illustration.svg") +} + +.hero-figure::after { + top: -35.6%; + left: 99.6%; + width: 57.2%; + height: 87.88%; +} + +.hero-figure-box { + position: absolute; + top: 0; + will-change: transform +} + +.hero-figure-box-01, .hero-figure-box-02, .hero-figure-box-04, .hero-figure-box-08, .hero-figure-box-09 { + overflow: hidden +} + +.hero-figure-box-01::before, .hero-figure-box-02::before, .hero-figure-box-04::before, .hero-figure-box-08::before, .hero-figure-box-09::before { + content: ''; + position: absolute; + top: 0; + bottom: 0; + left: 0; + right: 0; + transform-origin: 100% 100% +} + +.hero-figure-box-01 { + left: 103.2%; + top: 41.9%; + width: 28.03%; + height: 37.37%; + background: linear-gradient(to left top, #00BFFB, rgba(0, 191, 251, 0)); + transform: rotateZ(45deg) +} + +.hero-figure-box-01::before { + background: linear-gradient(to left, #15181D 0%, rgba(21, 24, 29, 0) 60%); + transform: rotateZ(45deg) scale(1.5) +} + +.hero-figure-box-02 { + left: 61.3%; + top: 64.1%; + width: 37.87%; + height: 50.50%; + background: linear-gradient(to left top, #0270D7, rgba(2, 112, 215, 0)); + transform: rotateZ(-45deg) +} + +.hero-figure-box-02::before { + background: linear-gradient(to top, #15181D 0%, rgba(21, 24, 29, 0) 60%); + transform: rotateZ(-45deg) scale(1.5) +} + +.hero-figure-box-04 { + left: 54.9%; + top: -8%; + width: 45.45%; + height: 60.60%; + background: linear-gradient(to left top, #0270D7, rgba(2, 112, 215, 0)); + transform: rotateZ(-135deg) +} + +.hero-figure-box-04::before { + background: linear-gradient(to top, rgba(255, 255, 255, 0.24) 0%, rgba(255, 255, 255, 0) 60%); + transform: rotateZ(-45deg) scale(1.5) +} + +.hero-figure-box-05, .hero-figure-box-06, .hero-figure-box-07 { + background-color: #242830; + box-shadow: -20px 32px 64px rgba(0, 0, 0, 0.25) +} + +.hero-figure-box-05 { + left: 17.4%; + top: 13.3%; + width: 64%; + height: 73.7%; + transform: perspective(500px) rotateY(-15deg) rotateX(8deg) rotateZ(-1deg) +} + +.hero-figure-box-06 { + left: 65.5%; + top: 6.3%; + width: 30.3%; + height: 40.4%; + transform: rotateZ(20deg) +} + +.hero-figure-box-07 { + left: 1.9%; + top: 42.4%; + width: 12.12%; + height: 16.16%; + transform: rotateZ(20deg) +} + +.hero-figure-box-08 { + left: 27.1%; + top: 81.6%; + width: 19.51%; + height: 26.01%; + background: #0270D7; + transform: rotateZ(-22deg) +} + +.hero-figure-box-08::before { + background: linear-gradient(to left, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.48) 100%); + transform: rotateZ(45deg) scale(1.5) +} + +.hero-figure-box-09 { + left: 42.6%; + top: -17.9%; + width: 6.63%; + height: 8.83%; + background: #00BFFB; + transform: rotateZ(-52deg) +} + +.hero-figure-box-09::before { + background: linear-gradient(to left, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.64) 100%); + transform: rotateZ(45deg) scale(1.5) +} + +.hero-figure-box-10 { + left: -3.8%; + top: 4.3%; + width: 3.03%; + height: 4.04%; + background: rgba(0, 191, 251, 0.32); + transform: rotateZ(-50deg) +} + +@media (max-width: 640px) { + .hero-cta { + max-width: 280px; + margin-left: auto; + margin-right: auto + } + + .hero-cta .button { + display: flex + } + + .hero-cta .button + .button { + margin-top: 16px + } + + .hero-figure::after, .hero-figure-box-04, .hero-figure-box-09 { + display: none + } +} + +@media (min-width: 641px) { + .hero { + text-align: left; + padding-top: 64px; + padding-bottom: 88px + } + + .hero-inner { + display: flex; + justify-content: space-between; + align-items: center + } + + .hero-copy { + padding-right: 64px; + min-width: 552px; + width: 552px + } + + .hero-cta { + margin: 0 + } + + .hero-cta .button { + min-width: 170px + } + + .hero-cta .button:first-child { + margin-right: 16px + } + + .hero-figure svg { + width: auto + } +} + +.features-wrap { + display: flex; + flex-wrap: wrap; + justify-content: space-evenly; + margin-right: -32px; + margin-left: -32px +} + +.features-wrap:first-of-type { + margin-top: -16px +} + +.features-wrap:last-of-type { + margin-bottom: -16px +} + +.feature { + width: 380px; + max-width: 380px; + flex-grow: 1; + background-color: #15181D; + border-radius: 15px; + margin: 15px 32px 15px 32px; + padding: 48px 16px; +} + +.feature-inner { + height: 100% +} + +.feature-icon { + display: flex; + justify-content: center +} + +@media (min-width: 641px) { + .features-wrap:first-of-type { + margin-top: -24px + } + + .features-wrap:last-of-type { + margin-bottom: -24px + } + + .feature { + padding: 32px 32px + } +} + +.cta { + text-align: center +} + +.cta .section-inner { + padding: 48px 16px +} + +.cta .section-title { + margin-bottom: 40px +} + +.cta-inner { + border-radius: 15px; + position: relative; + background: #15181D; + overflow: hidden +} + +.cta-inner::before { + content: ''; + position: absolute; + right: 98px; + top: -117px; + width: 160px; + height: 187px; + background-image: url("../img/cta-illustration.svg"); + background-repeat: no-repeat +} + +.cta-inner > * { + position: relative +} + +@media (min-width: 641px) { + .cta { + text-align: left + } + + .cta .section-inner { + padding: 64px 32px + } + + .cta .section-title { + margin-bottom: 0; + padding-right: 24px + } + + .cta-inner { + display: flex; + align-items: center; + justify-content: space-between + } +} + +.is-boxed { + background: #242830 +} + +.body-wrap { + background: #1D2026; + overflow: hidden; + display: flex; + flex-direction: column; + min-height: 100vh +} + +main { + flex: 1 0 auto +} + +.section-inner { + border-radius: 15px; + position: relative; + padding-top: 48px; + padding-bottom: 48px +} + +@media (min-width: 641px) { + .section-inner { + padding-top: 88px; + padding-bottom: 88px + } +} + +.site-footer { + font-size: 14px; + line-height: 22px; + letter-spacing: 0; + background-color: #15181D; + margin-top: 15em; +} + +.site-footer a { + color: #8A94A7; + text-decoration: none +} + +.site-footer a:hover, .site-footer a:active { + text-decoration: underline +} + +.site-footer-inner { + position: relative; + display: flex; + flex-wrap: wrap; + padding-top: 48px; + padding-bottom: 48px +} + +.footer-brand, .footer-links, .footer-social-links, .footer-copyright { + flex: none; + width: 100%; + display: inline-flex; + justify-content: center +} + +.footer-brand, .footer-links, .footer-social-links { + margin-bottom: 24px +} + +.footer-links li + li { + margin-left: 24px +} + +@media (min-width: 641px) { + .site-footer { + margin-top: 15em + } + + .site-footer-inner { + justify-content: space-between; + padding-top: 64px; + padding-bottom: 64px + } + + .footer-brand, .footer-links, .footer-social-links, .footer-copyright { + flex: 50% + } + + .footer-brand, .footer-copyright { + justify-content: flex-start + } + + .footer-links, .footer-social-links { + justify-content: flex-end + } + + .footer-links { + order: 1; + margin-bottom: 0 + } +} + +/* The sticky class is added to the header with JS when it reaches its scroll position */ +.sticky { + position: fixed; + top: 0; + width: 100% +} + +/* Add some top padding to the page content to prevent sudden quick movement (as the header gets a new position at the top of the page (position:fixed and top:0) */ + +.site-header-no-bg { + padding: 24px 0; + backdrop-filter: blur(10px); + -webkit-backdrop-filter: blur(10px); + z-index: 999; +} + +.site-header-no-bg-inner { + position: relative; + backdrop-filter: blur(10px); + display: flex; + justify-content: space-between; + align-items: center +} + +.button:active { + transform: scale(0.95); +} + +.modal { + backdrop-filter: blur(10px); + -webkit-backdrop-filter: blur(10px); + display: none; + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; + background-color: rgba(0, 0, 0, 0.2); +} + +.modal-content { + margin: 15% auto; + max-width: 500px; + background-color: #242830; + border: 5px solid #1D2026; + padding: 20px; + animation: scale 0.5s ease; + border-radius: 10px; + width: max-content; + box-shadow: 7px 7px 5px rgb(0 0 0 / 2%), 22px 22px 18px rgb(0 0 0 / 3%), 100px 100px 80px rgb(0 0 0 / 5%); +} + +@media (max-width: 620px) { + .modal-content { + margin: 30% 15px 10px 15px !important; + max-width: 500px; + background-color: #242830; + border: 5px solid #1D2026; + padding: 20px; + animation: scale 0.5s ease; + border-radius: 10px; + box-shadow: 7px 7px 5px rgb(0 0 0 / 2%), 22px 22px 18px rgb(0 0 0 / 3%), 100px 100px 80px rgb(0 0 0 / 5%); + } +} + +.modal-body { + margin-top: 5px; +} + +#close-loginmodal { + float: right; + font-size: 1.2rem; + font-weight: bold; + cursor: pointer; + background-color: #15181D !important; + border: 5px solid #1D2026; + border-radius: 10px; + height: auto; + padding: 0 10px 5px 10px; + position: relative; + user-select: none !important; +} + +#close-registermodal { + float: right; + font-size: 1.2rem; + font-weight: bold; + cursor: pointer; + background-color: #15181D !important; + border: 5px solid #1D2026; + border-radius: 10px; + height: auto; + padding: 0 10px 5px 10px; + position: relative; + user-select: none !important; +} + +@keyframes scale { + from { + transform: scale(0); + } + to { + transform: scale(1); + } +} + +form i { + margin-left: -40px; + margin-right: 5px; + cursor: pointer; +} + +.textField { + border: 5px solid #1D2026; + border-radius: 10px; + padding: 5px 15px 5px 15px; + width: 100%; + color: white !important; + background-color: #15181D !important; + margin: 5px 0 10px 0; + transition: .15s; +} + +.textField:focus +{ + border: 5px solid #393e4a; +} + +*:focus { + outline: none; +} + +form .button { + background-color: #15181D !important; + border: 5px solid #1D2026; + border-radius: 10px; + height: auto; + padding: 15px 50px 15px 50px; + position: relative; +} + +label i { + margin-left: 0; + background-color: #1D2026; + padding: 5px; + color: #8A94A7; + border-radius: 7px; + cursor: default; +} + +form label { + display: flex; +} + +.fa-solid:hover { + transform: scale(1.1); + transition: .2s; + color: #097dea; +} + +.fa-solid { + transition: .2s; + -webkit-text-stroke-width: 0; + -webkit-text-stroke-color: #fff; +} + +.alert { + background-color: #15181D !important; + border: 5px solid #1D2026; + border-radius: 10px; + height: auto; + padding: 15px; + position: relative; + transition: .2s; + margin-bottom: 10px; +} + +.alert::after { + transition: .2s; +} + +.modal-header { + display: flex; + justify-content: space-between; + align-items: center; +} + +.modal-header h3 { + margin-top: 0; +} + +.bg-card-secondary { + background-color: #242830; +} + +.error { + border: 5px solid #4a3030; + border-radius: 10px; + padding: 5px 15px 5px 15px; + width: fit-content; + color: white !important; + background-color: #412525 !important; + transition: .15s; + margin: auto; +} + +ul { + margin: 0; +} + +.button-danger { + background-color: #dc3545 !important; +} + +.row { + display: flex; + flex-wrap: wrap; +} + +.col { + flex: 1; + margin: 5px; +} + +.image-grid { + display: grid; + grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); + gap: 20px; + background-color: #15181D; + padding: 20px; + border-radius: 10px; + align-content: center; +} + +.preview-container { + background-color: #15181D; + padding: 20px; + border-radius: 10px; +} + +.preview-container img { + border-radius: 10px; + max-height: 60vh; + margin: auto; +} + +.image-container { + position: relative; + padding-bottom: 100%; /* Maintain the aspect ratio (1:1 for square) */ +} + +.image-container img { + position: absolute; + width: 100%; + height: 100%; + object-fit: cover; /* Keeps aspect ratio and fills the container */ + transition: .15s; + border-radius: 10px; + border: 5px solid #1D2026; + user-select: none; +} + +.image-container img:hover { + border: 5px solid #2d313a; +} + +.image-container img:active { + transform: scale(0.975); + border: 5px solid #292d35; +} + +.ml-10 { + margin-left: 10px; +} + +.m-auto { + margin:auto; +} + +main { + z-index: 1; +} + +* { + color: white; +} + +svg.placeholder { + color: transparent; +} + +p { + color: #8A94A7; +} + +.custom-card { + margin: 0 0 20px; + border: 5px solid #2d313a !important; + border-radius: 10px !important; + transition: .15s; +} + +.custom-card:hover { + border: 5px solid #424856 !important; +} + +.icon-background { + background-color: #097dea; + width: 40px; /* Equal width and height for a perfect circle */ + height: 40px; + border-radius: 50%; /* Apply a 50% border radius for a circular shape */ + display: flex; + align-items: center; + justify-content: center; + overflow: hidden; /* Ensure content doesn't affect the shape */ + aspect-ratio: 1; /* Force a perfect circle */ +} + +.image-container .overlay { + display: block; + transition: transform 0.3s ease, opacity 0.3s ease; + opacity: 0; +} + +.image-container:hover .overlay { + backdrop-filter: blur(10px); + border-radius: 10px; + width: 100%; + opacity: 1; +} + +.modal-backdrop { + z-index: -1 !important; +} + +body.modal-open { + overflow: hidden; +} + +.button-secondary { + background-color: #3a3f4a; +} + +.modal-content { + border: 5px solid #1D2026 !important; +} + +.overlay { + width: 100%; + height: 100%; + position: absolute; + top: 0; + left: 0; + background-color: rgba(0, 0, 0, 0.3); + color: white; + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; +} \ No newline at end of file diff --git a/public/assets/fonts/nucleo-icons.eot b/public/assets/fonts/nucleo-icons.eot new file mode 100755 index 0000000000000000000000000000000000000000..ab96810adf6e7862e0297f03958a1b18e0607c37 GIT binary patch literal 18516 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/assets/fonts/nucleo-icons.ttf b/public/assets/fonts/nucleo-icons.ttf new file mode 100755 index 0000000000000000000000000000000000000000..1a5598505e4324b19be3e4dee9d2e10df541cc13 GIT binary patch literal 18292 zcmd^ndyre#dEYtr{lxoT0Q&$yUbkW4*HO15liDcO?c#qNUKC3hFA zeNdL1PSW(rVJ9gQbCX-fentDP`#?GX4n#`n^?o8vD za>jPT{=R#F<%(9^@l5|K7T>w&o_p@S=X~dTe+SDrW6WkdOlF6kd~Wu!!lnIhFvbs~ z_4yAzcW}Bn`@T7x{{qg>EUb3cmB0RBoH6+mjA`FExAOYg@$Y?p6b~pcHuI&WZfDV% z`iq}M-`jxZ5*j4N7f}Blz}V92)+ZK+@BIm$_ve6LUg<4#o;&pMzhTUJ9@qc#YUdN{ z{0;U?xR$|rVXd>;{YL7*CmB2O$Bao|Tkmady*&0cm9fWug)!xu3}dI^Q+e+P_x_g4 z{nM~5EV^L}I-Pm)f3AHz`p8{oi#u*v&pl2(=!koN$Yn0!)L>N7hq`sy&j2^{p;ilj zjNPMCeCWEx4zc4*I{C!Y&$Gx%XKRfOF(tezuJ5h$mF06CJYQVl=toyMS~$~oTmP2- z62tu1zhM6sWvPFBgE{Om8iXpN^*uh%o_&0gwF4>WhOTA^RN`Dvk%Ybqo~SV$6lLN*8#Lpx2#c~9i?akvvJ~@}&(bWzvY^vpHo`_( zj^$Z_?PEpI+8Eo<%B;c;u!q<<33hI0xJINkrPp~K1Q|$fh6g$nHX3ww>un)3l*@xJN*>mi9Hp|Yi7ubvJBkZH> zCH6A=7<+|%oXxQgn`aAb5z`?~`2YRm5CW7NeKY_o0i+K>xcZ=&fT)Jru=WH*MFFUZ zfaoCr772*L0$l*fm;lm;05rk^QvgY%08~Z*x?ut29RX2ZfRPZ83=CWWpehzb1c1I+ z5ETGQV?j&+XpRNY5(J<=79<3K4q1>C0E%QmN&sk+1)cy1Pk^F0C%vU zC;)uIf|3Am3=75tfOlB1UjVp>1!V!?Cl*u$fU{U|Kmd4*1rG@Tx3OSc0QimtRRQ2Y z7EA~LFS4K}fTTq*DFFP*f`bCUsVq1o06fcrDFNVK7EB8OAG4q?036MN83EvJ7BmEa z%URGA0DfmdO8_{Z1&0Md2C(2^0gwhPI3fUYfdxkeKtizK5dn}DEI1|rQiBD@1wekV z;Di835*D-tK&G(ZQ2~tF9uojL!-Dq-Abl8|6ad-7g2x3w3bEh`0gy*5cv1i)6APXa z02#%C_X~iuV!|AIEO=P}WGxFmCIC{G1+NHz{AIz%1wazBU`_yJG7CBa7`4p{fShK*f&fTt z7Ay*Y?1oknKvF#Xl<~yhX5Z(>`M>0UC~4B~%PIL~`I;Qa-&ZVUNEuhwl+P)Du13_S z)n8S=t~uJ0c18Ow?H&ENeo?<+XvR~X9am`{8z8A-mJ{G(JPbtLr*ssHWGc#GZ@U-Ey&57LY2Urql>=1As7=63d1hF%Ue zF=KzqzDH80RcXwWD`jnzml~xa4yin^x0>aDf5tMbsBM{UWb{%@ihedWW4K&$t?hzq z=KVxz#qog^3FhNHc8fDeNXUSec!YnHPdAToJowO5sTkp2D($DKvDIuf8#9yq^0=yL zDiv8NUGY=4D{E~{cI}j3sp^VHS3O0)nXaV0171p1Q#jy+DP$vXn!+$-$iu`lEezb- zg>VYH@7GI>x>vss`XrC?2+wgE;6a}9r<*h7qIS3875swNpw|W{qPMDHL-iTSQsyK{ zR^=<2CV$>?P1CjRc;QD^Zc_i7ihk>cXn9=a@)=3fWm}!qO*3Mep)EtBy#tMthE#J2avlMbpmi zj^lpYj~$0foCJK_hE}PC>j$Y3(qNT?5UYH!emN{qt1ilrmUO}z;j9&|b|YNX^loEH z!@XtDT!>lk`%z78XzFDesI8=PzB(a!!=B`;+6~ij5{@(BdA{#?Phg>3%Sy?TC*$Ku z@;}t~D_VhWd{fmTiA00|#Hv5(#$9~paHHp46twV?B+HUbg|K{SrQd;-Vv{v+f>+8> zp7vVc1-;^>{5;?J_)Dt%()o|*7v~iDBmca5K#~p|+o>qp8`bI?vc|zfVy)Pnkf%nW zq4)nNU+IJChSXiDd!-iO_6?#BDh_JO8AbEj-kaC170#c(t}7uXE-U(J>QeB$SzN@s z%#eTYa*ow#LQB0LQv74^5?^I+;H?l0Q9g+^(aXA~YsAE99H~~HZiS1J_FKn!xdOhf z_?kXL75zAG`6;kkYnr;3E62Is6t!}?3=t4Mri`_#_~{65X_fGPYOV}8^4ppn%NV*p z;_K;H!ce&sr4@-vTs1S1gzk;{x{-9_F*lXe^&utctBxJL6t8-U;#J2~SG676(VSUj z|4=q%X_lg(&`mBUychJiIy9uZvr5!+>k}(WXNhGFJ*^VVFJG!bvfa+Q- zqDqs+k(eDzPN|&Bk*Kc69IJtq0LLQia1S5IG>+96g;g~PO9r+H5$?F zoFOEuPOL!GulFe)-Rlj&<#ER}ow-wIP7%V0KY!hHT@d`fM8tEGvu%9dYJvyMLKUL+ zE$a0a=)y@*uUR*lbS=;~XhQ}t_727s#i*tkOFkgo_2ML$7EB4!o`zfxYgo`dg6!tC zNJ3L?DOzG7o{MXymL1EYjOR{XqZd=bSt24NX(VwyF&d}#cs47Jqlq2O((uJd)LlH~ zVOQ2*`!xtll}SkSJTJAHlU$4P2gg{#;7HmxDnL%U4|m57NQNOv`_}hKR5>t4ZzW_! zZ-pFm$@8kdKkj*NJt51gp&UJ`7^*Bkp(#GZ9u@8Lbc@%ZPpAhmLgM`b*}Sb8(sIyz z(5J*Ny5^<8F2{i`5Ig?#VkKlB?d??QKq;jurYmkvA)VmqR$BL}?RNFT)v)Yee;Yk; z9T(GjMO?Y_Ue|Fs-I@!pyz6@Z`7OPoS6bqV=+&o{Z(;sfXgOH%tp?-*nE(fQqduJm zi2w@_oT*X;RsgV2S37Q3`f+s@zgR{Q^PvraBoQ$UMnKa${ z1N4^$d6LPIhtW|7N*d!tHdK75N-wK|oL;R-I;=;P*Cb7zP}Dm@h=-DVxA@wZ(ZS+| z@)bp~ISnS{&(Ic9;cpIMzI8%tIy8m`BdWAYdNIm>^SNV+Qp}v04XOM$Q${23$^}I)6m%RkvL!bI z1#Ni=6x$|sPvaBv@LQlQ7uX)dxV(DfI2Vkb@>?^ z$57&u>AG7X1HkKpofu9ghZB3t*~{VQCa4@27H}9!Cg)+=pywC7whwE-AX}iXhmx>X z$-ojl2W&+eAoeDX5=<|ANcIv>l70PSIdTrT4;MiH zsomP$kZ2z$=&4w2d~UP9p~z4x^poJrOrPM*nQvZIZB^E!tLo2RfLOkz!5Fw8I|HBS z9o(9y*hZ@y;eI;DQxOh*In#s?nB;nd3xxox6=)NK{)%EMlH!9XKrur;>ZUTB&o|r6 zeEy6u7`_>5EVo7-CT41GsK{c?6U{;aMO9Nz5e=cBk?XtsJdDwlcKM2U>c@Ibdf%oT z9ErT{j{D&sJwHGZy>;ux_;`EI_eWi$E5u(u;7ozWqfi0NyaR4ZB63BxEuJiRdO%~q z$$)fr4g5m8eUsi9zWB=m6EFMu{6s!~*RwU{w@EFdI3;M~OaT`r3W7H9zB{1i7T(op z5w<}gUg#Q@DkMcf(s>SE{`;?0MILW%Oi!j%yZPT6H~a9<8s`K!%_SK z=gDd{$@v#R4N{z%Uf~ioN&J|e!V0A?ZApchoc=;$JiYJmnDl0$nU6&-KA4q~>Tf6SCEZa)+?cV{6|W*T&rZ|Xaf4>3Ltx~0S>x0)FVorRClsj6TJK5_!4p;Z-1I2X4-nGp_xve9*5rr<9ph!H-zfyV+v<^bMk!}B8p_>ZE zIXCB>KJ7OUaVvbeY;jdN&86Y}!xF56m+WZNkHz*+>UTqQ_}+N3EUTC7L?)Af%GS@t zeCn}XD9{WBeDDq|B+RQtmT8oe^b`uZLU{RoS=~|PrX+16M!OB!edWquDN0*1`cEReUe}5TNl^%gf?{&&MZ|zFs@erDp}iXFr8}^0G^NdXI}9NG zoT4226v@O-4RC&g-Jr~q(7iC$z@#^-<5hewQvn_nYjcBLA#0N~V|!=kG7=}E{j2P& z;r*2s9I((yOMf+=&*yR|P|go3IK!O!GBDIL;5ZEtnft+57%>!#72(*oqQka59EDiO z`D3Ywq$!cqn4e1(K~a|Fq>5gynlC18NwSm0d^LxT_i=`yxojUsJB`TkfHrx$M83$o zbw}6MhF;Rt8>)7DeMHvCEeO^5ZL`>>y4NlPt)Zd!Cd`*`&M4jqH8(^8$sH^KJUNl@U8~;pfIGXouVprSGM~7pdiD!vc20q}ou}1OG55PKA1bu{PJqD$P zz!{Vd>g52qa4c2W-?1-&*o zP{QGrH8@a1?*%IQz8T3X3NQe{6k^bXaufb`1sDQiLUohFMLG@R5D2f4KApKcG%+*| zu#<&^Wh(fXRw|A)9>=oAQ-h{NA$h)uZumCiF zEWkJE+u`5FdLL3$}tU=cIeHMzfg^@OK1c!#_cMy3poxG2OpLfjgOjGB=2%D-o|B){2oIy;h zO|?Hw6BVcBxYf>-6oi^J)mKWHwiTCmuYkHe62=|~-HIRbsMBeiRD3n85AewG0UpWA ztRP-ehGff8SVxF9efqdGLwa9I<)ptYWyr+qsk(fiB%5+UzTu`5AoBE(IDD~`B{Q+7 zXlkV-Qj&C~fj-BfWnPOc+r5>MlMq@}o zq052va+=mSjFiT)Uj3XD`wrxR4q2GQ7<3Pc5E&~{tVjcR>Bh`k!cRJ+Hh%9=K6{ z^<88`I?bME=g(xgE z_Cemq`E=;@zn!VNFHsUHTT|mvMcEg3tC?sf63Il3i0VW^>XB&FvZ9;;b(6Ud7>XI! zA5NvS6U~Y2^;8V;0AGng<|0xIdK2r#L2r~pqpS@w{w$UTE3JVk`;8=07rLuPh`W&uadbD59fhYfQr~YVviip&3wDS+NXMB5 z>mw^x1aTp(^zRT-S4eMBu0_?1#Nj+{%#4rlOtRd+<1ul+Cl2kzNCIE7c1XbiziHTC zp!*i$#UwM}73?)4O08nWYo#07Zl>t8t~ll#B8h(NYSe#gCzGs>C!Z1SKMmN_eh=c~ z52L;xjh%KMD-<4cPa__I@BqD1$h~jjy{V95u&y9sN_6#e)xhI!Fk&Y&5s6g6{Dz!P zS0j-LWTI&NoMk*8D9WW}Ih{LF8uh)*PJd!}hjQg_B}12HxuR7D>$1C2yDfi#7Kp01Xcx6Gb{|9wcMDlThZ|h?oA~USq+PZzW(?~dT4ZN#EF~U{;WGH zc+C^;NSpGcE_4Of3i6iXTMqUxAyZX{X-rGyr9gi|VBI$aVH*v?lHqY+LeG@n*5raT zD;4D7wyMo)KXXRW#>Wc>QGS)qsa?=>m^&js2?-)-r3!2y*zK?+xIPd>VAK|^c(@T^m(Y;75PbT( zwv~A#rrNK(Vym%7GL{{RE6QGyjQX4%BZsIdkRg-IL$!hG8;jlx>vWA9` z+$I@!I!3)>!*ow9MzoIw#OHhLZWtp;LuX+a$Q}7%D2nXY=*Zk@-IVt|q1t?0vb39; z^rlxm`jn!{2WDghay3JmrI2Tzk0@UKEbZB8mC9tbRHn#o*|olq0YZ37pCT7+SAP0w zT}!2>=*>Pw%}G!<$w{THB%Q-;FchW<4RPQ&G{->zTN5sPKX-gdRjtaDowsd!v`};+Fg)Z<11VxR zX(jZJnI>gWKU;I*D!LDi9Xf=5dHWNEBC@G*)BKnoPbRd8VQk7ckL<>w@4zndXm4Lj zD^?=XDAqR=ZYM(FQxU-`!7jg^C?}GIq+!PQJ-aV%8p*<8JW2#Aa_23Jr;5o0oE47rkr#sjB^xAh}uz*a%#xx~l21qidq;RLCd}>e4K(JzZg@zVNKFL_>0I& zDi?T3qV08Vy z-qMdFehe#0E9nhfyr-*=Ob<0vrY3PYXHuy67_xz8G>_b%Wu_b}_m8LS#AvyZDtVd+ z@NQ|*n1gI!6r8|i`L9)7$(eS_v=m*+M@{4=j!D>WVCL{k0L@IbhNj*?CbpPrlt&ZK zkp6bvbDE+!(U>jE+;OdFU$%cQq?rS>yAt`#GC8n0WHFImJkBvWUy}tj-&d1+wB(&z z8VPp8kfqEQGm?z-dO_A+^$ujllD=XnesU~xz@yhYj-|F08EsQjC}gFrS|HX+Ha|5) zs&r^7pRIToL{K}-iS_;8gV>{a0=R#M_7=8Elkg}9{t7UG@n@QINER}gPr{kt&JAVxDudEd-8-I;xI zGJ{i1`tP3Oj#A3Obv#8kWZx~7ORg^)db911e_oQJqygfxtQ^SYDiFDl#MmAo|DqQu zC1Iq&#!D3=9(ne@P&7gksS~Z){j2t#%BzKURPUQ?Ok-cfU{tegk5zJ~QvdJN>h)d{E)P|DTMEeY4 z%?-qJOc%b}AU^_Hvf(xLGqZvpXUgy|X+`_oDb&GR=ZVp%I10;7#0HUL?1#f|3f(~4 zGp=1Gni917J{7rXlaE$woot z%2?janAGE6wW%8wx8ZLge}6O~bNQIT&4gm;xL?W??VRE7ml22=)03(%TQcToB|s$4 zw5bmjggd*RAG?EJMR-^n@=TiW{NIP&;4iZk%oFBH9Z^Ii@lh?olf`MdQZLWY%B5ht zU`|zzeSW*17>GUGhPZ3SR)phCi~H{I4=I(s;h@FRgpc5g8J$t0CMy2K=O2@##~{1@ z13*Fjb3&9t&+wkMMJ6*+|wxS z?$GRqXLNW$jneI?t#M5`kBv+kk{x?bkekt!9eOp2w%;DV;l!mZ*;-jC?(FP6DYWPM z{dC1{)7F#$uYngFc$nCs|LzPMLK4`Z8IBsUF<90l*yy~8U6(mYhip5Fk+-lv3;XxT z35J78h9Z`k449eno-AA`Rf=+3mJD5k#cD!xTPh;8*_>iaw!*n#N~-U8qf>^H(M*G@ zlI)@uXp? zl4H4}5sJizaxU~kZP=R>DHXYM61@j0GQJy!5*sLCYeF1V=cao^{j&*$bYoj-r((MNCNH88HcHfK8*__)XO*piOW_l4@2 zs)rO1+1H`rdlw@~fff(aFHaiYzQ(?EN^4XoUIHDOLUbLbC|Q=+nkylGk*1C2S{ds| zHZjK0B3Xq3zwBdoc(ag~rlpj}Z+*rz6s(^YvEx`zXdVfB3>6L~-x<1vjB0#;z98*v z2dDBLpV+_uKrF`H4IkSOOfBMZ9`h|j&&mewz(z%hpY)EFWAVu7eguHUTHOWieAcF4 zV~~95Z@Zv87zWqCqLpAW!yMCSqfDiwN2C%$3ozhIXh1~^y?5yZ1UyBxNVpP#HtT6I zG0M?m&eO%1ZW;2dKPwxSGX76~85?j_?Eh6IY|PMQ#g%!A%dR5p92FHZLE&;~YX$o& zZ3~oY8#b;;nxR(PRaLem`M(unvYk|=*Bg!3B{gZw#tV-OyRdvDMaOhuRlyE-K(jc} z@myVhY85;o%R15{k}B~|v)SRuV$c%yaRI;Efaaq82}C;}7C|H-r8Mex`&#?j<(-}O z&TRGSEKX*T3T#(rv1j|<4?qVpa7nukCLxiY!tZAmAhkak;uUKTJs$?JXlpjCV=9Ou zAfLhHpaXgbF*e)*V4Swq%}k?$FE-LP=#FV%7`_5@Dq+5!PC0<>Kk4;I+RE>_M18Lq2W}*h%3JC59yhQtcXto+?L-Eh?~&Rx`7_MmWpe76i*xM#S8I0fnRmK#MarT2bdjMw{ zyzOBBEOICodauXrXhb20-ox3klOK>xZpu%~Zrs*P%gpAD!}{kn$sXZv-Fo#8*#uiLE5zrNJnSnY1s7CW0u^S#c-Vr_Y$x3>A= z?z!!i&c=IReDBsX-HpxV-dbU5^3Z#Cc(S|J-RNv}7Yp;R7d9`Ro8H=&8@==0g{{e@t*!MV2M?a@w@)tgR@oAM1+u|bQEnpAvB)|&F5x$FJ=8XE zUSrFUIX$+9_79`iIkpW6MAv?jJAabCXTlL};=T0N0-_U>$X5L%Pk0hfSPP%hVOuyZ z;wkg&b(EXzB4#j+)-84x=VvjG9%f%al!4wxy;tzpL(6)2?L1l*&_0O~&|T}Wo)6;h z>;wHLLoBU^bQ+Rt-)|B1y=50U0+}O!!ZogQSoPTMZF7ga6p7_A9_I<3gu;U1z|%a# zvwVmT!=j??4tZYS`*@L;_!!^M%e=x5@Q3&~b_h)H8f;Yv9X`dUd7aN-LqU_b_+kDq zKLV@o5s38T@Kf6SQT`ZzA3w<-=TGn_`BVJ;{1iXUpXSf-5AYB2XZeTthxv2-c|Oa} z@E7=t{3HCM{3ZS}{}_LTf1Je35tgS!Q+?ww5n;Ycq$e&hkcWzO&Nnt?8YW z`R&!(w9~xAb`sa;?!Y=X)!QwZ-0RYobPvv%eKy`_2q7@-mq|GtG3bGURy-9 zyFl|e|*u50l%l z7dEtXXO2HM@g5}M~$I-8pihSMrdrf$)H zTUlS~t#vomrLEPKh5uDjk@ z$Iup+fuz-ry1u+tt843^$L^N1u?_Up@S26?6>}4JZk}E4E*hH)%bT0MjZI|}3meDqh?rd~x z7=X38y}sT95ll7Rt$7oHoz5c^m?nc&Gi+mK3=;(mvhFI<(f}yHhtZw_kp9!kxcoo=KmGsTWYjgq0RSk34=V5>4e}^zFBNqb z_75icKc>a4DPe48XX5z50zUK#0Kh?Du3s>$zI$2%0MH+dR38A~Y-YI6C9$?JF$VxX zuYSa`eTW;GZ7BkdayI`_?VZH^TQ|m5IK|=;FrCLoy7;!_=uAQ0Dv73Y&vg8haWBzT1^hSmVU#y8FgY;L1f$oIybQUx0^b8a3m-oXUpt+kHYk8|5gRW2 zn_`U`ftbFNbOdV}5HNZ2iS8rzY!23b=PN*JIFtSLf{C@Npth@?w5Q%CG&D3!H$GqM zJ2)91R9upbXNlavK06z_7p5DUuVn+)Bmm8a>Bi)zaLs{G8u%ru*1y`a&Jm(CWaTfI zgSm)6Okuhe`3sid1|kqim~LtQf(6)>2qYAyTa&+F1->N$L5D%|^102yC`2I2l1?dJ z5IBYav=asi$>+8KD-nQZ!ywW5+_vCx0?>6BBq+bp8q7oh8V!R)<~M@CRRo}uFi2Q_ zqYc=O0JIVYiOp}c1)mXsp2Hx4`EJ%=5(3a*802TZ8wi|D06GYRgyy^1fDH&hi(!zM zd^cP08Ug4&3=*7wXAKr208NHLqVn%R;C2GgMHnPJ|IP;NO91keI9nNdhvoK0>-;#R z9$8i1-qFOvo<@s>6;Erkvo)TlV>c70$}FX+3g;6OV^<#fvC4BtWAnpqr+adIM{P5E zKD25xM~v}5RX+XsL(C^kb0zZmov+U{fEQPm91RK?NUw}f&YeIUL?tZ?gRz-~iH{IF zLZ;TEZY?p4D*_;kaLe+E7gg*GRe#U02Ro^q!!KKC0|b&pex+-wKL#`;m z3j_M=O4po*QIrO8n?N4I@ERMKxB3z->(YAKtIR^fHr|bA-(@0{ovkf;o(L7e8JeX{ z7|vBfhx@egnJ!FpAWxSJ2GV zgXY)1Bj@rGJ#4<6qwgDjZO#EL(9C@-9V*MY5H#O~xTboXvu52+5st#{Ah3CdpPhEz zaINCJuKekzJF@~UuOcl@18iwv&Y6V3{K`X|Pkvm8ABup*b$#~X38(!4=X5{GtW$Yx z9qFJP=Aeq4zS8Ez@NzPUwLFi$Mkyz>0Jn|L|1%Rlf$=xa`Y+zodcRI0YR?UNsD zHxzipd;$t;R42O`U1=!jEohPLec>akE;#nVzo&8RaD}&lO2i5>+N8)CsM%;sH)!)v zaOT2VY+miB(ILJNqxR|7czF&$*N*w^ru9s(9j9W;0;&PkbbotZdPmX5T22*5G~d=p zYS~(lWKzyhbdwc<@0h^)+{8xdK1B61V4g;AsV(;cosap)Ydso;XnP5oZ7OY<3=PG% zNi!$mgCR16ziJ%jf0Bmk)wo>5eTf59e%ddzl}GFS=WF1c(1TUwWI*i{Oik z!daWQ8*~e)8~jFeJA{dQ@Jlwa7W7hyd?PL4e&6gM5S=!&c$=#5^kR^B#IKMUlTkFs zmMu?Lgl*E#<{QtQNxze{pta2!0Uqm7PQ-9taL8y-UHjgFtCbhkrn@$mZcwJ%_zwFC zs1X@iIvaDY)?Xcx$^Uumy10^eAz}xwxa6n%7Cd`Q7pT6zqcPvETQ^UCg%ph^FilW##W<$? zL-}<`GLsq26LC3ANl4D@AkC+!%r8JzS*hBa=klm9ip^pBCA`4MX=}xPc6ExtTmBM8l9*;TN?tDJvh-#%`kv!3lY3d32|fd@l>%q552JPzRS^$e;APmp zdP$~@;C8_)ezT;g&C}WI&u|%M%hIiyP=A%eU4k0To;LN8KbpO zS_Vmf*$BT{6#GjY&Q19XsTn{!WZj$$H0fdt*o^k#%LAl^2K60Lq-ao5u7Nbfk(52! zjJU%`(8c5InG~K>eS{aZ!MZlJHqK5&|Bfp^s7LYfhD{Bw4*3u>4a_lK=qjsLP z;L%*z-&m;#wk}FGi;9;D`j+V-QKF3Wcsou|3fqg}5J>@{#1J|aY+0rGQtt~fq;P8o z&YjEY(^VyGetG8g)$kgG4iT%H&fM;cTgBJvvY8_fhDXihcHY^PZ-J(z;Pb>#!IzF> zBj`({v2n+G33=(bgyB2Xt`W?@yP1CAsR6iw@MPsACgosWh-iqhkt)~Ovt!nYd*CEy z;K^f0P@_NJmQ4G>1j$95-g|3u3izO_cM^oWK=b1jUnD^cfIg}G7lPbtd28M3uJn4| zT7C%I%-M5Ums9?#C8z{I!5=8_lQ`M zme}OfzNKdrz;oZhXLWG`d=Digf5E}$M5s5~J;v1UBu$I(wI;5KR(l2!$NC62?NEe(&uX%Sf%lTCq1)1i6{_ED6#`)VBGB8;fHj=#f!4Zf6k-%w#FdvXkhO= zk{DKyCJppVV$i za_IghG7U6{nTa^I2WGm{hG-wLz7L zOBcVX=#F7m&hLwFx4nGcZY%e;4co(Uhf`;R(?1) zqprLsEHMH8HT`RJhH{d11~S>$4LO83{fe<~A@>E%X+?1z_v*vOoL;-_3c=kTK7Cd@ z*0$srDuROQcg%TNS{pLkJqTErlXp+-{xJ^eu z67UnN{;ypjNEC7T8;(oFy?p-yBg?(2TFj0p*Ol+BWNk$jq7;4GpMTDDET6t^>C@U) z{MhZ?*Qc{e3%8E-L}L<=t@95$;}(KY`g zQPc5n1k4k?s`cCdJo%e2u;hGjq19&G(3pd|sn{~O{;*p^!fhB z+V0fk>#K)54?)Z}7jPEP4a>gJ5^S=YFu2iIz{$Or6FQ-^6IA`BUJ;K$77;ZYT1e=cijTXW?SFzuk{0 zmQ&;l`}pF+-J1wuY3*{uV$(umxJ&T9CQmpFhd2iMn3`ARGYa=O;A~8GP1GWzotLr2 zub6&z!Uyh~lQ}2r+K=|<*ulV9+cfO(vua9+pV>O1Po*7YL{GOI;Vap&xj z3*;9ozwF^a;p%8H8pT5p|!6j*t#R&JI%8DUe0|py zvrPAo=PbTIYV0mGVrBEA-0;&J5sADkm-UC9II2rDR|j41C`zww2K+Xo{)&&ptWnzizJ5QD3qNrm9aQ|X;(1KLsUeO`;K&GM#JA@ zK63$-mn|GGi<*Z-zNm6D)*b9E`t=q0g&$GH{+u{JEQJ%*)S#?2wW4KbXyNZA7e+F(Wo4v zePo(ANU8pY+5TnK8DR|HCBGI(Kvcak`kZ2Wo<2bVCsmKD%@c5E-r~{Qf`n?ZE*=+5 zXyn1vFGkqCo!q+gXV!;OWp-6g5x&ywAf+z)q#((wcCVg+e!;%7I9I`mI=PfnltidE zLqx50I#hF(h8<1{zm$(*p^hqUcKYsYMwY)U&hKLPF#M|X=Q~^0JM7eB=9)v(o87%q z@x_5K+)c{@fT=xh@)nwc)E%`}B27?TSB6YTa#>XFuupCHb!Jv5M@}b?*VlwnODr~b zj&xD@=`u3EM|>%9lI9=sSeeg-op6qE5g`7_^pDBieG->fc+|s!i^$nu)q8Co=jVpr zQ@pbf-oP&m$A;9YFyFR{RGrFd$EGfoW_iSC33a4#dOOFsd!Nt}a_6_SIoOS;~;Y4k>p{p+-vCr!}H{PfX$CQ_lBz>i#$6^~)10>Zyq z51v!@uuw|u3tydrGXn*2if?bPyk505w&W7oy^{{*_fVZyJ ze6`8sAVzwlbk#zq^;GI3m**qOyIbJMTWKw5d1hW{*S_Q=)}`GGiLtnNtGqk?jck-| zX_!5-(PBGhg=tOxeJn4jaJ@%6iaGk&jKrgsTbrVxR>XUI_}^o5n_`86CU5KmyLy+A z?couyFBGc!9!}UR(VkRgCSF@I(v8}E>{UUZCYi|3`8f|4H~2Dr=4B8ybNgP@=S4t7 z?q#I<**rz)=$wXNfyFWR-;q?LY3qn)XMhZd6pzvUtKNMZFm1!wM%QEAYrJ>j+fS`1 zth55R5p9TH+oJq7r2D(EyztBLUw?7Bd{zCk7e6}rZ@Q0UlzTqH78f<}@8 zoYKIn{%&05T){4yE5-3V2&NHax2dOA;HzyEGv1{G`OY;{ELQOMX#)p0jA1fGn7g7a zvl)k;$^UDxRUxQ>*?2n7j$K=xsA`;=mUU;ob%nu`iFrJpen8GZeHfhXKRS&Wt$_md z1lBf(x%tMv_8DDpJ4NFlpUzvoHu`)znhWan?59zCSHJNu3lD~i-d(biKBudt0yr{^XRiyh5p%{FBPFAifFQZZ4`@ z56o%YG6MP-gr?dz zo~uzg!qm|qlfA0peUE1tRqoyRGS5-yO3Gq{BAXU+l{DxPMs&3d{`;vrU-0_x@jtq( z@Z}=koKG7l`>VYo1B&R#I9~3B_l5s0bP_F_^ zt>F?^l_mJ;jQ`GPs1-P(bUn+CP|?E?&BD=qkL!2%Jk_FoB0ed}b5EyjS?nlK5u(!Z zb*_uKQ}gUwFC*ue@uO7=^ejT%pd~4aEVC}|&sGzhXdHv^B0@Jx+Ox7&dln{N296eE z02#AQx_HfqE%4>GmJ%c8+H>ql%!dfQ=MeXwVA!S~p;_c*)J6YDQ3ppaIuG_Wi*>4T zABH=L>oaXYGwT~C0kk_*?&sFuuV>?q8%CNx(#d~0_292VPh6;Xy%zL? z683=Kv!d%%G(1+ZHC}EUSXo1>IX$vYH2lt82dum~)eOElK z>b2q$d%fp~cH84eFLW3bjZJ>jwe1g2h6GuYzj$zpljBx}up8P>@SPTcKb$eelJC ze-So(YVGtAkVF-G`Th$V*X%GJepTCnp3Kd5ZBy0{4X+KZv0J|V&1Ld(=PuQ^kand) z<{yvnVM}k2fsbEt$MaB~#hcJG%iG3xs8v_hTUJjKTzdK@UE_bHE5LAP!LJy5p;%U1 z8kzprGO6huXpx)j+F8%1mMw$3EC!bNrlI0=9M9D0%%_B+qMbFTV$nzTDX&c9j`%=O zWKjqb2BLC3!$`#W9ZbUj#lHnIl03<!&m@V&Cmvf*s=bt3f^ zX-Bwyygwgb-Evo03s~W>Hx%eQ7twkfRP6uaj1QI(`zpsNnfyAHd8TwMl6QtRUgTMz zG>kT&A9N!Z@VL8}!mZ0GXKiaXoQ@cq6FrSE?&oJ6SJA>*uMUxkmE2TKhCY=_RA74c zKr+tmaRbr;FtELPFqG*#j@9WP%&armIPwU{$gN zhee#w9`US0ek3r$P7u8JZgOS@DXpLEL%2&q>MN2d!-?&lMSDQ8CsKuci3v)UH>|4YAL5C zx;yz{Jtobe$xfA}E3%AItxYatOdUrZzP+F|^+^7qrM({$#;mgPp9K4#%YT%v#`NMn zJF}LOKm;Q8!s~cd3HA;V{rA;Q$L_ET%Qd7cd}OHDGKFKbsh50^xc@yHuFEb72U9E@rwGMPH@4&ppO*l=2m@Eb9E`NUXaRJx9LK2@?Z+%w7Pd#)yP zDUNKcIBc{_B&1P&`ib?Y)Bkq6ABpT~O7D_j)s~eS(oM}CAxAqLKsQvpEslX!-sH29Uzgp-Cjk=sk3zY&z`ar=SV*Q~atWCeF!; zHlP!3KTSt--(f;XyufmI3RuA6M6$J_n5V#Dv_-Ki=R4(BdcR(`uCNa_n4LAxtml z$K6A{5ahK`G{hmxnM+eK5TKkLjUSEM!o$x7w{H)SuAVAwl`PG2UayJ3@f)+Iay9tx zCf(KFRo($*&uYp&lONDfso4jsmIGqh#3BKYZNUrExPE4p?9CiU@})#Q)G&IkJX%IHkb1iAUL)Dx4GG zl&@TNxa(}rPiC*MBe10=43gH2hCH)Q`qq%i37razF)Uat>;|gZjYQPl2A!z!XGby@ zc3AnqV)b5z>NMS&3T^rYR7o~<2j7Y}5v8EI&V)CO-*1;a8ZNrkAJnth80Aj7=qht5 zcH@_x!JL(2mNA%&49LbsQMg2Ak<+SR_2-x4%kr+7(3xL78m=o*!cr=`7aie zt{tCy<~~I27tP%O2*h7zuyiti;WE~>Ny`y*pZK`YO~4Z%nyh2B)Rc$TBXrEel3NV8 z8LzXYnw8j#V+{l(U4Qyo-?&0Cvfj1yA7oZEY|DdbL`yyOV_t(EifP^stcpM%{0Y8n9BtoNy&S1;T~1kGYV zWaP!>AOn+|_l@^=R(1|{s1{;m@&qUV)huG#fB&QZQwIT{fJ1+LzklzH9{b7+ECK>_ z&0);{TjyYGY#g%l{!XC!u(W$w_F0A`?G>#j+$2p-FG}Rti0L?- z$3?%dj~J0;4=Y0wT11?)jP<0|fPwaf-iPw70W&x*)GcmY4C#`#6B;1T*ShA+;ni1A=$i8aq1L_XFvSaPPSxf3KyJ9MPpfsnX@dF zXG1DUh5n)=PokS1aY!}hB+$f-Q>GQFT|P4+_^n_D#9~HdzMvH~Oyw#Zp&5vbNeKH5 zn(UMKIROP-g5{Z6c$%hMrzI!~`rrO(M&_b9kJ7@_TtgQ!RLM72Z8lBrNAwi$9%c+> zeU#Xj?yLn0i){A7B~9by)v8&((t@&#Iw2)Rvde}itx#B+tfNk!sW!tbsIjd`e2**x z^>5xg+~_x1)T#wkE2-;=3J$UwjLWHR^r`FKEDGoamjp2AfTW4XTOD0D(w=Z8^2Tw- zyXv#EjxVq8DqDni(_(l+=7(kh#1hf015l_=At%j9?mMKbQO}Mdq+P)t2xvPPf{}xl zyg6Mcf6FWF%XyDQR+BMJ6-2Y?D$o7g;8gocAe9#{@rxa$J~ z9(Wg9-0Oqz59nlDWf$`U!7f>^8To`2Qjb-ncz%nj38P>Ycs-yaun08Eu2?!8~B;P8dN>%+H!Zy9y@KV zrdvxXZB?!i#_y5XS0doN2>dv!s;RMD|=j4IMnSp5vVnSDu= znMqkVIT_%vZ?XB;?|#iyh%yP$f2d(qVGSbtj{=KyVKHasb1+7!AL&e$23)8@ITLJC zq7Binmy35AFt4R1lrg)x8qL**-AL6@i%@6i*!bF+V{F|5@MVgdTX|jUMlBY#oMjM?ASG7U@NA)r3uB*M~ zenYx7^+iSL8HsZH>8VL`ONj>y^5f+5bGML4&p4fWh8XeQO9W=h1_H_0=r2_xeo6e& zc&4=Mzh&aG!|492$`zQ;ephFLxJHXNx%ej$;ZpRUqPuXoF^`ZkXKJK!NSo zUlHV97uff0C8lM7ysnHlqStPa^J!cv)&FSWZXl80A1#BoSdrO#sooJY|p1Jqz z5mQU+(!;yr9mQ0O1t_QX2Akim;(jzltg}ArYc-yb>-n^{mdLwqLmn%C<6LA-GE<~A SNnay)d%pv%BAh=e_Wlokkczqh literal 0 HcmV?d00001 diff --git a/public/assets/fonts/nucleo-icons.woff2 b/public/assets/fonts/nucleo-icons.woff2 new file mode 100755 index 0000000000000000000000000000000000000000..e294e0801c9ef9e50268f58c3a82a9e378c8b983 GIT binary patch literal 8580 zcmV-~A$#6;Pew8T0RR9103n0`3jhEB07rBH03kI10RR9100000000000000000000 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 KgDInf{Z|pm-=OIL literal 0 HcmV?d00001 diff --git a/public/assets/fonts/nucleo.eot b/public/assets/fonts/nucleo.eot new file mode 100755 index 0000000000000000000000000000000000000000..8609095550154362574be44b0f2cc5834d525c9e GIT binary patch literal 26524 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 Sx4;|gl1b4=E1Mgnwf;YFur9Lz literal 0 HcmV?d00001 diff --git a/public/assets/fonts/nucleo.woff b/public/assets/fonts/nucleo.woff new file mode 100755 index 0000000000000000000000000000000000000000..20fecf0d558c8cb40bd5ffa718c0b3cf2e6f2632 GIT binary patch literal 15168 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