From ca4989f12b6bca6385795cb28c000b812cf6dc3d Mon Sep 17 00:00:00 2001 From: Vincent Jong Date: Tue, 26 Mar 2024 14:19:07 +0100 Subject: [PATCH 01/35] Initial upgrade to Symfony 5.4 --- app/AppKernel.php | 12 +- app/config/config.yml | 75 +- app/config/config_dev.yml | 20 +- app/config/config_test.yml | 10 +- app/config/parameters.yml.dist | 2 +- app/console | 2 +- composer.json | 53 +- composer.lock | 7007 ++++++++++++----- library/EngineBlock/Corto/Model/Consent.php | 2 +- .../Database/ConnectionFactory.php | 11 +- library/EngineBlock/Saml2/NameIdResolver.php | 12 +- library/EngineBlock/User.php | 2 +- .../Metadata/Entity/IdentityProvider.php | 2 +- .../ValueObject/EngineBlockConfiguration.php | 2 +- .../Service/RequestAccessMailer.php | 21 +- .../Repository/DbalConsentRepository.php | 2 +- .../ErrorFeedbackConfiguration.php | 2 +- .../Controller/FeedbackController.php | 2 +- .../DependencyInjection/Configuration.php | 10 +- .../ApiHttpExceptionListener.php | 5 +- .../AuthenticationStateInitializer.php | 10 +- .../ExecutionTimePaddingListener.php | 5 +- .../EventListener/LocaleListener.php | 6 +- .../MethodNotAllowedHttpExceptionListener.php | 5 +- .../NotFoundHttpExceptionListener.php | 5 +- ...edirectToFeedbackPageExceptionListener.php | 5 +- .../DoctrineConnectionHealthCheck.php | 2 +- .../Resources/config/bridge.yml | 3 + .../Resources/config/compat.yml | 3 + .../Resources/config/controllers/api.yml | 3 + .../config/controllers/authentication.yml | 1 + .../Resources/config/services.yml | 10 + .../Security/Voter/MetadataPushVoter.php | 50 + .../Extensions/Extension/GlobalSiteNotice.php | 2 +- .../Twig/Extensions/Extension/I18n.php | 2 +- .../Twig/Extensions/Extension/Metadata.php | 2 +- .../Twig/Extensions/Extension/Wayf.php | 2 +- .../Mock/MockTranslator.php | 2 +- 38 files changed, 5212 insertions(+), 2160 deletions(-) create mode 100644 src/OpenConext/EngineBlockBundle/Security/Voter/MetadataPushVoter.php diff --git a/app/AppKernel.php b/app/AppKernel.php index a499fa4103..4d326d72b4 100644 --- a/app/AppKernel.php +++ b/app/AppKernel.php @@ -13,11 +13,11 @@ public function registerBundles() new Symfony\Bundle\SecurityBundle\SecurityBundle(), new Symfony\Bundle\TwigBundle\TwigBundle(), new Symfony\Bundle\MonologBundle\MonologBundle(), - new Symfony\Bundle\SwiftmailerBundle\SwiftmailerBundle(), +// new Symfony\Bundle\SwiftmailerBundle\SwiftmailerBundle(), // Sensio helpers - new Sensio\Bundle\FrameworkExtraBundle\SensioFrameworkExtraBundle(), - new Sensio\Bundle\GeneratorBundle\SensioGeneratorBundle(), +// new Sensio\Bundle\FrameworkExtraBundle\SensioFrameworkExtraBundle(), +// new Sensio\Bundle\GeneratorBundle\SensioGeneratorBundle(), // Doctrine integration new Doctrine\Bundle\DoctrineBundle\DoctrineBundle(), @@ -43,7 +43,7 @@ public function registerBundles() public function registerContainerConfiguration(LoaderInterface $loader) { - $configurationDirectory = $this->getRootDir() . '/config/'; + $configurationDirectory = $this->getProjectDir() . '/app/config/'; $loader->load($configurationDirectory . 'config_' . $this->getEnvironment() . '.yml'); $localConfiguration = $configurationDirectory . 'config_local.yml'; @@ -66,11 +66,11 @@ public function getCacheDir() return sprintf('/tmp/engineblock/cache/%s', $this->getEnvironment()); } - return $this->rootDir . '/cache/' . $this->environment; + return $this->getProjectDir() . '/app/cache/' . $this->environment; } public function getLogDir() { - return $this->rootDir . '/logs/' . $this->environment; + return $this->getProjectDir() . '/app/logs/' . $this->environment; } } diff --git a/app/config/config.yml b/app/config/config.yml index 5079db3c20..9138a73ece 100644 --- a/app/config/config.yml +++ b/app/config/config.yml @@ -30,31 +30,22 @@ open_conext_engine_block: eb.stepup.sfo.override_engine_entityid: "%feature_stepup_sfo_override_engine_entityid%" -swiftmailer: - transport: "%mailer_transport%" - host: "%mailer_host%" - port: "%mailer_port%" - username: "%mailer_user%" - password: "%mailer_password%" - framework: esi: false translator: fallbacks: ["%locale%"] paths: - - '%kernel.root_dir%/../languages' - - '%kernel.root_dir%/../theme/base/translations' - - '%kernel.root_dir%/../theme/%theme.name%/translations' + - '%kernel.project_dir%/languages' + - '%kernel.project_dir%/theme/base/translations' + - '%kernel.project_dir%/theme/%theme.name%/translations' secret: "%secret%" router: - resource: "%kernel.root_dir%/config/routing.yml" + resource: "%kernel.project_dir%/app/config/routing.yml" strict_requirements: ~ form: ~ csrf_protection: ~ validation: { enable_annotations: true } #serializer: { enable_annotations: true } - templating: - engines: ['php'] default_locale: "%locale%" trusted_hosts: ~ session: @@ -62,18 +53,27 @@ framework: handler_id: ~ fragments: false http_method_override: true + mailer: + transports: + smtp: "smtp://%mailer_user%:%mailer_password%@%mailer_host%:%mailer_port%" + cache: + pools: + doctrine.result_cache_pool: + adapter: cache.adapter.apcu + doctrine.system_cache_pool: + adapter: cache.adapter.apcu # Twig Configuration twig: debug: '%kernel.debug%' strict_variables: '%kernel.debug%' paths: - "%kernel.root_dir%/../theme/%theme.name%/templates/modules": theme - "%kernel.root_dir%/../theme/%theme.name%/templates/layouts": themeLayouts - "%kernel.root_dir%/../theme/%theme.name%/images": images - "%kernel.root_dir%/../theme/base/templates/modules": theme - "%kernel.root_dir%/../theme/base/templates/layouts": themeLayouts - "%kernel.root_dir%/../theme/base/images": images + "%kernel.project_dir%/theme/%theme.name%/templates/modules": theme + "%kernel.project_dir%/theme/%theme.name%/templates/layouts": themeLayouts + "%kernel.project_dir%/theme/%theme.name%/images": images + "%kernel.project_dir%/theme/base/templates/modules": theme + "%kernel.project_dir%/theme/base/templates/layouts": themeLayouts + "%kernel.project_dir%/theme/base/images": images globals: assetsVersion: "%asset_version%" defaultTitle: "%view_default_title%" @@ -113,24 +113,27 @@ doctrine: engineblock: naming_strategy: doctrine.orm.naming_strategy.underscore query_cache_driver: - type: apc + type: service + id: doctrine.system_cache_provider metadata_cache_driver: - type: apc + type: service + id: doctrine.system_cache_provider result_cache_driver: - type: apc + type: service + id: doctrine.result_cache_provider connection: ~ mappings: # An array of mappings, which may be a bundle name or something else Authentication: mapping: true type: annotation - dir: "%kernel.root_dir%/../src/OpenConext/EngineBlockBundle/Authentication" + dir: "%kernel.project_dir%/src/OpenConext/EngineBlockBundle/Authentication" prefix: OpenConext\EngineBlockBundle\Authentication is_bundle: false Metadata: mapping: true type: annotation - dir: "%kernel.root_dir%/../src/OpenConext/EngineBlock/Metadata" + dir: "%kernel.project_dir%/src/OpenConext/EngineBlock/Metadata" prefix: OpenConext\EngineBlock\Metadata is_bundle: false dql: @@ -138,7 +141,23 @@ doctrine: md5: OpenConext\EngineBlockBundle\Doctrine\DqlFunction\Md5 doctrine_migrations: - dir_name: "%kernel.root_dir%/../database/DoctrineMigrations" - namespace: OpenConext\EngineBlock\Doctrine\Migrations - table_name: migration_versions - name: OpenConext EngineBlock Migrations + migrations_paths: + 'OpenConext\EngineBlock\Doctrine\Migrations': '%kernel.project_dir%/database/DoctrineMigrations' + # dir_name: "%kernel.project_dir%/database/DoctrineMigrations" + # namespace: OpenConext\EngineBlock\Doctrine\Migrations + storage: + table_storage: + table_name: migration_versions +# name: OpenConext EngineBlock Migrations + +services: + doctrine.result_cache_provider: + class: Symfony\Component\Cache\DoctrineProvider + public: false + arguments: + - '@doctrine.result_cache_pool' + doctrine.system_cache_provider: + class: Symfony\Component\Cache\DoctrineProvider + public: false + arguments: + - '@doctrine.system_cache_pool' diff --git a/app/config/config_dev.yml b/app/config/config_dev.yml index fb042529e6..34ed5d3273 100644 --- a/app/config/config_dev.yml +++ b/app/config/config_dev.yml @@ -12,11 +12,11 @@ framework: enabled: true fallbacks: [ "%locale%" ] paths: - - '%kernel.root_dir%/../languages' - - '%kernel.root_dir%/../theme/base/translations' - - '%kernel.root_dir%/../theme/%theme.name%/translations' + - '%kernel.project_dir%/languages' + - '%kernel.project_dir%/theme/base/translations' + - '%kernel.project_dir%/theme/%theme.name%/translations' router: - resource: "%kernel.root_dir%/config/routing_dev.yml" + resource: "%kernel.project_dir%/config/routing_dev.yml" strict_requirements: true profiler: { only_exceptions: false } @@ -30,9 +30,9 @@ twig: debug: true strict_variables: false paths: - "%kernel.root_dir%/../theme/%theme.name%/templates/modules": theme - "%kernel.root_dir%/../theme/%theme.name%/templates/layouts": themeLayouts - "%kernel.root_dir%/../theme/%theme.name%/images": images - "%kernel.root_dir%/../theme/base/templates/modules": theme - "%kernel.root_dir%/../theme/base/templates/layouts": themeLayouts - "%kernel.root_dir%/../theme/base/images": images + "%kernel.project_dir%/theme/%theme.name%/templates/modules": theme + "%kernel.project_dir%/theme/%theme.name%/templates/layouts": themeLayouts + "%kernel.project_dir%/theme/%theme.name%/images": images + "%kernel.project_dir%/theme/base/templates/modules": theme + "%kernel.project_dir%/theme/base/templates/layouts": themeLayouts + "%kernel.project_dir%/theme/base/images": images diff --git a/app/config/config_test.yml b/app/config/config_test.yml index 8fff176bbf..949079a242 100644 --- a/app/config/config_test.yml +++ b/app/config/config_test.yml @@ -22,15 +22,15 @@ framework: translator: fallbacks: ["%locale%"] paths: - - '%kernel.root_dir%/../languages' - - '%kernel.root_dir%/../theme/base/translations' - - '%kernel.root_dir%/../theme/%theme.name%/translations' - - '%kernel.root_dir%/../src/OpenConext/EngineBlockFunctionalTestingBundle/Resources/languages' + - '%kernel.project_dir%/languages' + - '%kernel.project_dir%/theme/base/translations' + - '%kernel.project_dir%/theme/%theme.name%/translations' + - '%kernel.project_dir%/src/OpenConext/EngineBlockFunctionalTestingBundle/Resources/languages' session: storage_id: session.storage.mock_file name: MOCKSESSION router: - resource: "%kernel.root_dir%/config/routing_test.yml" + resource: "%kernel.project_dir%/config/routing_test.yml" strict_requirements: true profiler: collect: false diff --git a/app/config/parameters.yml.dist b/app/config/parameters.yml.dist index b69d9cad68..0457bfeb9d 100644 --- a/app/config/parameters.yml.dist +++ b/app/config/parameters.yml.dist @@ -36,7 +36,7 @@ parameters: ## * How attributes are displayed in Profile and Consent ## * How attributes are Normalized and Denormalized ## * How attributes are validated - attribute_definition_file_path: %kernel.project_dir%/application/configs/attributes.json + attribute_definition_file_path: '%kernel.project_dir%/application/configs/attributes.json' ## The Signing / Encryption keys used for the SAML2 authentication and metadata ## When EngineBlock signs responses (when it acts as an Idp) diff --git a/app/console b/app/console index a908aaa939..6773550dc4 100755 --- a/app/console +++ b/app/console @@ -3,7 +3,7 @@ use Symfony\Bundle\FrameworkBundle\Console\Application; use Symfony\Component\Console\Input\ArgvInput; -use Symfony\Component\Debug\Debug; +use Symfony\Component\ErrorHandler\Debug; // if you don't want to setup permissions the proper way, just uncomment the following PHP line // read http://symfony.com/doc/current/setup.html#checking-symfony-application-configuration-and-setup diff --git a/composer.json b/composer.json index 76bd593adb..1400bf0c92 100644 --- a/composer.json +++ b/composer.json @@ -11,43 +11,43 @@ "source": "https://github.com/OpenConext/OpenConext-engineblock" }, "require": { - "php": "7.2", + "php": "7.4", "ext-dom": "*", "ext-json": "*", "ext-mbstring": "*", "ext-openssl": "*", "beberlei/assert": "^2.6", "composer/package-versions-deprecated": "^1.11", - "doctrine/doctrine-bundle": "^1.11", - "doctrine/doctrine-migrations-bundle": "^1.3", - "doctrine/orm": "~2.6", + "doctrine/doctrine-migrations-bundle": "^3.2.1", + "doctrine/annotations": "1.14.3", + "doctrine/orm": "2.14.1", + "doctrine/dbal": "3.6.0", "guzzlehttp/guzzle": "^6.3", "incenteev/composer-parameter-handler": "~2.0", "monolog/monolog": "~1.13", - "openconext/monitor-bundle": "^2.1", + "openconext/monitor-bundle": "^3.1.0", "openconext/saml-value-object": "^1.3", "pimple/pimple": "~2.1", "ramsey/uuid": "^3.3.0", - "sensio/framework-extra-bundle": "^3.0", - "sensio/generator-bundle": "^3.0", "simplesamlphp/saml2": "^4.1", "swiftmailer/swiftmailer": "^5.4", - "symfony/monolog-bundle": "^3.1.0", - "symfony/swiftmailer-bundle": "^2.6", - "symfony/symfony": "3.4.*", + "symfony/twig-bundle": "v5.4.19", + "symfony/monolog-bundle": "v3.8.0", + "symfony/security-bundle": "v5.4.20", + "symfony/debug-bundle": "v5.4.19", + "symfony/web-profiler-bundle": "v5.4.19", + "symfony/translation": "v5.4.19", + "symfony/mailer": "v5.4.19", + "symfony/form": "v5.4.19", + "symfony/validator": "v5.4.19", + "symfony/cache": "v5.4.19", + "symfony/expression-language": "v5.4.19", "twig/extensions": "^1.5", "twig/twig": "^2.0" }, "require-dev": { - "behat/behat": "~3.0", - "behat/mink": "~1.7", - "behat/mink-extension": "~2.0", - "behat/mink-goutte-driver": "~1.0", - "behat/mink-selenium2-driver": "^1.3", - "behat/symfony2-extension": "~2.0", - "ingenerator/behat-tableassert": "^1.1", "league/flysystem": "^2.5", - "liip/functional-test-bundle": "^4.3", + "liip/functional-test-bundle": "^4.7.0", "malukenho/docheader": "^0.1.8", "mockery/mockery": "^1.3", "phake/phake": "^4.4", @@ -55,7 +55,7 @@ "phpmd/phpmd": "^2.13", "phpunit/phpunit": "^8.5", "squizlabs/php_codesniffer": "^3.7", - "symfony/phpunit-bridge": "^3.0" + "symfony/phpunit-bridge": "^5.0" }, "replace": { "symfony/polyfill-mbstring": "1.99", @@ -91,19 +91,22 @@ "autoload-dev": { "psr-4": { "OpenConext\\": ["tests/unit/OpenConext/", "tests/integration/OpenConext/", "tests/functional/OpenConext/"] - }, - "files": [ - "vendor/symfony/symfony/src/Symfony/Component/VarDumper/Resources/functions/dump.php" - ] + } }, "config": { "optimize-autoloader": true, "platform": { - "php": "7.2" + "php": "7.4" }, - "sort-packages": true + "sort-packages": true, + "allow-plugins": { + "symfony/flex": false + } }, "extra": { + "symfony": { + "require": "5.4.*" + }, "symfony-app-dir": "app", "symfony-var-dir": "app", "symfony-bin-dir": "app", diff --git a/composer.lock b/composer.lock index da6573f160..2e58e98901 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "4ea3bffda5cedfbc93ac5352054e5316", + "content-hash": "bc37ad45f627cc8798512363336ea912", "packages": [ { "name": "beberlei/assert", @@ -59,20 +59,24 @@ "assertion", "validation" ], + "support": { + "issues": "https://github.com/beberlei/assert/issues", + "source": "https://github.com/beberlei/assert/tree/v2.9.9" + }, "time": "2019-05-28T15:27:37+00:00" }, { "name": "composer/package-versions-deprecated", - "version": "1.11.99", + "version": "1.11.99.5", "source": { "type": "git", "url": "https://github.com/composer/package-versions-deprecated.git", - "reference": "c8c9aa8a14cc3d3bec86d0a8c3fa52ea79936855" + "reference": "b4f54f74ef3453349c24a845d22392cd31e65f1d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/package-versions-deprecated/zipball/c8c9aa8a14cc3d3bec86d0a8c3fa52ea79936855", - "reference": "c8c9aa8a14cc3d3bec86d0a8c3fa52ea79936855", + "url": "https://api.github.com/repos/composer/package-versions-deprecated/zipball/b4f54f74ef3453349c24a845d22392cd31e65f1d", + "reference": "b4f54f74ef3453349c24a845d22392cd31e65f1d", "shasum": "" }, "require": { @@ -114,6 +118,10 @@ } ], "description": "Composer plugin that provides efficient querying for installed package versions (no runtime IO)", + "support": { + "issues": "https://github.com/composer/package-versions-deprecated/issues", + "source": "https://github.com/composer/package-versions-deprecated/tree/1.11.99.5" + }, "funding": [ { "url": "https://packagist.com", @@ -128,34 +136,38 @@ "type": "tidelift" } ], - "time": "2020-08-25T05:50:16+00:00" + "time": "2022-01-17T14:14:24+00:00" }, { "name": "doctrine/annotations", - "version": "1.13.1", + "version": "1.14.3", "source": { "type": "git", "url": "https://github.com/doctrine/annotations.git", - "reference": "e6e7b7d5b45a2f2abc5460cc6396480b2b1d321f" + "reference": "fb0d71a7393298a7b232cbf4c8b1f73f3ec3d5af" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/annotations/zipball/e6e7b7d5b45a2f2abc5460cc6396480b2b1d321f", - "reference": "e6e7b7d5b45a2f2abc5460cc6396480b2b1d321f", + "url": "https://api.github.com/repos/doctrine/annotations/zipball/fb0d71a7393298a7b232cbf4c8b1f73f3ec3d5af", + "reference": "fb0d71a7393298a7b232cbf4c8b1f73f3ec3d5af", "shasum": "" }, "require": { - "doctrine/lexer": "1.*", + "doctrine/lexer": "^1 || ^2", "ext-tokenizer": "*", "php": "^7.1 || ^8.0", "psr/cache": "^1 || ^2 || ^3" }, "require-dev": { "doctrine/cache": "^1.11 || ^2.0", - "doctrine/coding-standard": "^6.0 || ^8.1", - "phpstan/phpstan": "^0.12.20", - "phpunit/phpunit": "^7.5 || ^8.0 || ^9.1.5", - "symfony/cache": "^4.4 || ^5.2" + "doctrine/coding-standard": "^9 || ^10", + "phpstan/phpstan": "~1.4.10 || ^1.8.0", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", + "symfony/cache": "^4.4 || ^5.4 || ^6", + "vimeo/psalm": "^4.10" + }, + "suggest": { + "php": "PHP 8.0 or higher comes with attributes, a native replacement for annotations" }, "type": "library", "autoload": { @@ -196,41 +208,39 @@ "docblock", "parser" ], - "time": "2021-05-16T18:07:53+00:00" + "support": { + "issues": "https://github.com/doctrine/annotations/issues", + "source": "https://github.com/doctrine/annotations/tree/1.14.3" + }, + "time": "2023-02-01T09:20:38+00:00" }, { "name": "doctrine/cache", - "version": "1.11.1", + "version": "2.2.0", "source": { "type": "git", "url": "https://github.com/doctrine/cache.git", - "reference": "163074496dc7c3c7b8ccbf3d4376c0187424ed81" + "reference": "1ca8f21980e770095a31456042471a57bc4c68fb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/cache/zipball/163074496dc7c3c7b8ccbf3d4376c0187424ed81", - "reference": "163074496dc7c3c7b8ccbf3d4376c0187424ed81", + "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", - "psr/cache": ">=3" + "doctrine/common": ">2.2,<2.4" }, "require-dev": { - "alcaeus/mongo-php-adapter": "^1.1", "cache/integration-tests": "dev-master", - "doctrine/coding-standard": "^8.0", - "mongodb/mongodb": "^1.1", - "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0", - "predis/predis": "~1.0", - "psr/cache": "^1.0 || ^2.0", - "symfony/cache": "^4.4 || ^5.2" - }, - "suggest": { - "alcaeus/mongo-php-adapter": "Required to use legacy MongoDB driver" + "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": { @@ -277,6 +287,10 @@ "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", @@ -291,30 +305,31 @@ "type": "tidelift" } ], - "time": "2021-05-18T16:45:32+00:00" + "time": "2022-05-20T20:07:39+00:00" }, { "name": "doctrine/collections", - "version": "1.6.7", + "version": "1.8.0", "source": { "type": "git", "url": "https://github.com/doctrine/collections.git", - "reference": "55f8b799269a1a472457bd1a41b4f379d4cfba4a" + "reference": "2b44dd4cbca8b5744327de78bafef5945c7e7b5e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/collections/zipball/55f8b799269a1a472457bd1a41b4f379d4cfba4a", - "reference": "55f8b799269a1a472457bd1a41b4f379d4cfba4a", + "url": "https://api.github.com/repos/doctrine/collections/zipball/2b44dd4cbca8b5744327de78bafef5945c7e7b5e", + "reference": "2b44dd4cbca8b5744327de78bafef5945c7e7b5e", "shasum": "" }, "require": { + "doctrine/deprecations": "^0.5.3 || ^1", "php": "^7.1.3 || ^8.0" }, "require-dev": { - "doctrine/coding-standard": "^6.0", - "phpstan/phpstan-shim": "^0.9.2", - "phpunit/phpunit": "^7.0", - "vimeo/psalm": "^3.8.1" + "doctrine/coding-standard": "^9.0 || ^10.0", + "phpstan/phpstan": "^1.4.8", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.1.5", + "vimeo/psalm": "^4.22" }, "type": "library", "autoload": { @@ -356,50 +371,44 @@ "iterators", "php" ], - "time": "2020-07-27T17:53:49+00:00" + "support": { + "issues": "https://github.com/doctrine/collections/issues", + "source": "https://github.com/doctrine/collections/tree/1.8.0" + }, + "time": "2022-09-01T20:12:10+00:00" }, { "name": "doctrine/common", - "version": "2.13.3", + "version": "3.4.3", "source": { "type": "git", "url": "https://github.com/doctrine/common.git", - "reference": "f3812c026e557892c34ef37f6ab808a6b567da7f" + "reference": "8b5e5650391f851ed58910b3e3d48a71062eeced" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/common/zipball/f3812c026e557892c34ef37f6ab808a6b567da7f", - "reference": "f3812c026e557892c34ef37f6ab808a6b567da7f", + "url": "https://api.github.com/repos/doctrine/common/zipball/8b5e5650391f851ed58910b3e3d48a71062eeced", + "reference": "8b5e5650391f851ed58910b3e3d48a71062eeced", "shasum": "" }, "require": { - "doctrine/annotations": "^1.0", - "doctrine/cache": "^1.0", - "doctrine/collections": "^1.0", - "doctrine/event-manager": "^1.0", - "doctrine/inflector": "^1.0", - "doctrine/lexer": "^1.0", - "doctrine/persistence": "^1.3.3", - "doctrine/reflection": "^1.0", + "doctrine/persistence": "^2.0 || ^3.0", "php": "^7.1 || ^8.0" }, "require-dev": { - "doctrine/coding-standard": "^1.0", - "phpstan/phpstan": "^0.11", - "phpstan/phpstan-phpunit": "^0.11", - "phpunit/phpunit": "^7.0", + "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": "^4.0.5" + "symfony/phpunit-bridge": "^6.1", + "vimeo/psalm": "^4.4" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.11.x-dev" - } - }, "autoload": { "psr-4": { - "Doctrine\\Common\\": "lib/Doctrine/Common" + "Doctrine\\Common\\": "src" } }, "notification-url": "https://packagist.org/downloads/", @@ -432,13 +441,17 @@ "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, persistence interfaces, proxies, event system and much more.", + "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", @@ -453,34 +466,43 @@ "type": "tidelift" } ], - "time": "2020-06-05T16:46:05+00:00" + "time": "2022-10-09T11:47:59+00:00" }, { "name": "doctrine/dbal", - "version": "v2.10.1", + "version": "3.6.0", "source": { "type": "git", "url": "https://github.com/doctrine/dbal.git", - "reference": "c2b8e6e82732a64ecde1cddf9e1e06cb8556e3d8" + "reference": "85b98cb23c8af471a67abfe14485da696bcabc2e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/dbal/zipball/c2b8e6e82732a64ecde1cddf9e1e06cb8556e3d8", - "reference": "c2b8e6e82732a64ecde1cddf9e1e06cb8556e3d8", + "url": "https://api.github.com/repos/doctrine/dbal/zipball/85b98cb23c8af471a67abfe14485da696bcabc2e", + "reference": "85b98cb23c8af471a67abfe14485da696bcabc2e", "shasum": "" }, "require": { - "doctrine/cache": "^1.0", - "doctrine/event-manager": "^1.0", - "ext-pdo": "*", - "php": "^7.2" + "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": "^6.0", - "jetbrains/phpstorm-stubs": "^2019.1", - "phpstan/phpstan": "^0.11.3", - "phpunit/phpunit": "^8.4.1", - "symfony/console": "^2.0.5|^3.0|^4.0|^5.0" + "doctrine/coding-standard": "11.1.0", + "fig/log-test": "^1", + "jetbrains/phpstorm-stubs": "2022.3", + "phpstan/phpstan": "1.9.14", + "phpstan/phpstan-strict-rules": "^1.4", + "phpunit/phpunit": "9.6.3", + "psalm/plugin-phpunit": "0.18.4", + "squizlabs/php_codesniffer": "3.7.1", + "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." @@ -489,15 +511,9 @@ "bin/doctrine-dbal" ], "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.10.x-dev", - "dev-develop": "3.0.x-dev" - } - }, "autoload": { "psr-4": { - "Doctrine\\DBAL\\": "lib/Doctrine/DBAL" + "Doctrine\\DBAL\\": "src" } }, "notification-url": "https://packagist.org/downloads/", @@ -540,159 +556,144 @@ "queryobject", "sasql", "sql", - "sqlanywhere", "sqlite", "sqlserver", "sqlsrv" ], - "time": "2020-01-04T12:56:21+00:00" + "support": { + "issues": "https://github.com/doctrine/dbal/issues", + "source": "https://github.com/doctrine/dbal/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%2Fdbal", + "type": "tidelift" + } + ], + "time": "2023-02-07T22:52:03+00:00" }, { - "name": "doctrine/doctrine-bundle", - "version": "1.12.7", + "name": "doctrine/deprecations", + "version": "1.1.3", "source": { "type": "git", - "url": "https://github.com/doctrine/DoctrineBundle.git", - "reference": "18fb7d271676dcb8e882adb0157ac1445c8fe89c" + "url": "https://github.com/doctrine/deprecations.git", + "reference": "dfbaa3c2d2e9a9df1118213f3b8b0c597bb99fab" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/DoctrineBundle/zipball/18fb7d271676dcb8e882adb0157ac1445c8fe89c", - "reference": "18fb7d271676dcb8e882adb0157ac1445c8fe89c", + "url": "https://api.github.com/repos/doctrine/deprecations/zipball/dfbaa3c2d2e9a9df1118213f3b8b0c597bb99fab", + "reference": "dfbaa3c2d2e9a9df1118213f3b8b0c597bb99fab", "shasum": "" }, "require": { - "doctrine/dbal": "^2.5.12", - "doctrine/doctrine-cache-bundle": "~1.2", - "doctrine/persistence": "^1.3.3", - "jdorn/sql-formatter": "^1.2.16", - "php": "^7.1", - "symfony/cache": "^3.4.30|^4.3.3", - "symfony/config": "^3.4.30|^4.3.3", - "symfony/console": "^3.4.30|^4.3.3", - "symfony/dependency-injection": "^3.4.30|^4.3.3", - "symfony/doctrine-bridge": "^3.4.30|^4.3.3", - "symfony/framework-bundle": "^3.4.30|^4.3.3", - "symfony/service-contracts": "^1.1.1|^2.0" - }, - "conflict": { - "doctrine/orm": "<2.6", - "twig/twig": "<1.34|>=2.0,<2.4" + "php": "^7.1 || ^8.0" }, "require-dev": { - "doctrine/coding-standard": "^6.0", - "doctrine/orm": "^2.6", - "ocramius/proxy-manager": "^2.1", - "php-coveralls/php-coveralls": "^2.1", - "phpunit/phpunit": "^7.5", - "symfony/phpunit-bridge": "^4.2", - "symfony/property-info": "^3.4.30|^4.3.3", - "symfony/proxy-manager-bridge": "^3.4|^4|^5", - "symfony/twig-bridge": "^3.4|^4.1", - "symfony/validator": "^3.4.30|^4.3.3", - "symfony/web-profiler-bundle": "^3.4.30|^4.3.3", - "symfony/yaml": "^3.4.30|^4.3.3", - "twig/twig": "^1.34|^2.12" + "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": { - "doctrine/orm": "The Doctrine ORM integration is optional in the bundle.", - "symfony/web-profiler-bundle": "To use the data collector." - }, - "type": "symfony-bundle", - "extra": { - "branch-alias": { - "dev-master": "1.12.x-dev" - } + "psr/log": "Allows logging deprecations via PSR-3 logger implementation" }, + "type": "library", "autoload": { "psr-4": { - "Doctrine\\Bundle\\DoctrineBundle\\": "" + "Doctrine\\Deprecations\\": "lib/Doctrine/Deprecations" } }, "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": "http://symfony.com/contributors" - }, - { - "name": "Doctrine Project", - "homepage": "http://www.doctrine-project.org/" - } - ], - "description": "Symfony DoctrineBundle", - "homepage": "http://www.doctrine-project.org", - "keywords": [ - "database", - "dbal", - "orm", - "persistence" - ], - "time": "2020-01-10T12:25:22+00:00" + "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.3" + }, + "time": "2024-01-30T19:34:25+00:00" }, { - "name": "doctrine/doctrine-cache-bundle", - "version": "1.4.0", + "name": "doctrine/doctrine-bundle", + "version": "2.10.3", "source": { "type": "git", - "url": "https://github.com/doctrine/DoctrineCacheBundle.git", - "reference": "6bee2f9b339847e8a984427353670bad4e7bdccb" + "url": "https://github.com/doctrine/DoctrineBundle.git", + "reference": "1d2a578c199e272050a3878546c71e72ff02448e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/DoctrineCacheBundle/zipball/6bee2f9b339847e8a984427353670bad4e7bdccb", - "reference": "6bee2f9b339847e8a984427353670bad4e7bdccb", + "url": "https://api.github.com/repos/doctrine/DoctrineBundle/zipball/1d2a578c199e272050a3878546c71e72ff02448e", + "reference": "1d2a578c199e272050a3878546c71e72ff02448e", "shasum": "" }, "require": { - "doctrine/cache": "^1.4.2", - "doctrine/inflector": "^1.0", - "php": "^7.1", - "symfony/doctrine-bridge": "^3.4|^4.0" + "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": { - "instaclick/coding-standard": "~1.1", - "instaclick/object-calisthenics-sniffs": "dev-master", - "instaclick/symfony2-coding-standard": "dev-remaster", - "phpunit/phpunit": "^7.0", - "predis/predis": "~0.8", - "satooshi/php-coveralls": "^1.0", - "squizlabs/php_codesniffer": "~1.5", - "symfony/console": "^3.4|^4.0", - "symfony/finder": "^3.4|^4.0", - "symfony/framework-bundle": "^3.4|^4.0", - "symfony/phpunit-bridge": "^3.4|^4.0", - "symfony/security-acl": "^2.8", - "symfony/validator": "^3.4|^4.0", - "symfony/yaml": "^3.4|^4.0" + "doctrine/annotations": "^1 || ^2", + "doctrine/coding-standard": "^9.0", + "doctrine/deprecations": "^1.0", + "doctrine/orm": "^2.14 || ^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/string": "^5.4 || ^6.0", + "symfony/twig-bridge": "^5.4 || ^6.0", + "symfony/validator": "^5.4 || ^6.0", + "symfony/var-exporter": "^5.4 || ^6.2 || ^7.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": { - "symfony/security-acl": "For using this bundle to cache ACLs" + "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", - "extra": { - "branch-alias": { - "dev-master": "1.4.x-dev" - } - }, "autoload": { "psr-4": { - "Doctrine\\Bundle\\DoctrineCacheBundle\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] + "Doctrine\\Bundle\\DoctrineBundle\\": "" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -707,65 +708,88 @@ "name": "Benjamin Eberlei", "email": "kontakt@beberlei.de" }, - { - "name": "Fabio B. Silva", - "email": "fabio.bat.silva@gmail.com" - }, - { - "name": "Guilherme Blanco", - "email": "guilhermeblanco@hotmail.com" - }, { "name": "Symfony Community", - "homepage": "http://symfony.com/contributors" + "homepage": "https://symfony.com/contributors" }, { "name": "Doctrine Project", - "homepage": "http://www.doctrine-project.org/" + "homepage": "https://www.doctrine-project.org/" } ], - "description": "Symfony Bundle for Doctrine Cache", + "description": "Symfony DoctrineBundle", "homepage": "https://www.doctrine-project.org", "keywords": [ - "cache", - "caching" + "database", + "dbal", + "orm", + "persistence" ], - "abandoned": true, - "time": "2019-11-29T11:22:01+00:00" + "support": { + "issues": "https://github.com/doctrine/DoctrineBundle/issues", + "source": "https://github.com/doctrine/DoctrineBundle/tree/2.10.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%2Fdoctrine-bundle", + "type": "tidelift" + } + ], + "time": "2023-11-11T09:46:29+00:00" }, { "name": "doctrine/doctrine-migrations-bundle", - "version": "v1.3.2", + "version": "3.3.0", "source": { "type": "git", "url": "https://github.com/doctrine/DoctrineMigrationsBundle.git", - "reference": "49fa399181db4bf4f9f725126bd1cb65c4398dce" + "reference": "1dd42906a5fb9c5960723e2ebb45c68006493835" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/DoctrineMigrationsBundle/zipball/49fa399181db4bf4f9f725126bd1cb65c4398dce", - "reference": "49fa399181db4bf4f9f725126bd1cb65c4398dce", + "url": "https://api.github.com/repos/doctrine/DoctrineMigrationsBundle/zipball/1dd42906a5fb9c5960723e2ebb45c68006493835", + "reference": "1dd42906a5fb9c5960723e2ebb45c68006493835", "shasum": "" }, "require": { - "doctrine/doctrine-bundle": "~1.0", - "doctrine/migrations": "^1.1", - "php": ">=5.4.0", - "symfony/framework-bundle": "~2.7|~3.3|~4.0" + "doctrine/doctrine-bundle": "^2.4", + "doctrine/migrations": "^3.2", + "php": "^7.2|^8.0", + "symfony/deprecation-contracts": "^2.1 || ^3", + "symfony/framework-bundle": "^5.4 || ^6.0 || ^7.0" }, "require-dev": { - "phpunit/phpunit": "^4.8.36 || ^5.7.27 || ^7.4" + "doctrine/coding-standard": "^12", + "doctrine/orm": "^2.6 || ^3", + "doctrine/persistence": "^2.0 || ^3 ", + "phpstan/phpstan": "^1.4", + "phpstan/phpstan-deprecation-rules": "^1", + "phpstan/phpstan-phpunit": "^1", + "phpstan/phpstan-strict-rules": "^1.1", + "phpstan/phpstan-symfony": "^1.3", + "phpunit/phpunit": "^8.5|^9.5", + "psalm/plugin-phpunit": "^0.18.4", + "psalm/plugin-symfony": "^3 || ^5", + "symfony/phpunit-bridge": "^6.3 || ^7", + "symfony/var-exporter": "^5.4 || ^6 || ^7", + "vimeo/psalm": "^4.30 || ^5.15" }, "type": "symfony-bundle", - "extra": { - "branch-alias": { - "dev-master": "1.3-dev" - } - }, "autoload": { "psr-4": { "Doctrine\\Bundle\\MigrationsBundle\\": "" - } + }, + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -773,60 +797,76 @@ ], "authors": [ { - "name": "Symfony Community", - "homepage": "http://symfony.com/contributors" + "name": "Fabien Potencier", + "email": "fabien@symfony.com" }, { "name": "Doctrine Project", - "homepage": "http://www.doctrine-project.org" + "homepage": "https://www.doctrine-project.org" }, { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], "description": "Symfony DoctrineMigrationsBundle", - "homepage": "http://www.doctrine-project.org", + "homepage": "https://www.doctrine-project.org", "keywords": [ "dbal", "migrations", "schema" ], - "time": "2018-12-03T11:55:33+00:00" + "support": { + "issues": "https://github.com/doctrine/DoctrineMigrationsBundle/issues", + "source": "https://github.com/doctrine/DoctrineMigrationsBundle/tree/3.3.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%2Fdoctrine-migrations-bundle", + "type": "tidelift" + } + ], + "time": "2023-11-13T19:44:41+00:00" }, { "name": "doctrine/event-manager", - "version": "1.1.1", + "version": "1.2.0", "source": { "type": "git", "url": "https://github.com/doctrine/event-manager.git", - "reference": "41370af6a30faa9dc0368c4a6814d596e81aba7f" + "reference": "95aa4cb529f1e96576f3fda9f5705ada4056a520" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/event-manager/zipball/41370af6a30faa9dc0368c4a6814d596e81aba7f", - "reference": "41370af6a30faa9dc0368c4a6814d596e81aba7f", + "url": "https://api.github.com/repos/doctrine/event-manager/zipball/95aa4cb529f1e96576f3fda9f5705ada4056a520", + "reference": "95aa4cb529f1e96576f3fda9f5705ada4056a520", "shasum": "" }, "require": { + "doctrine/deprecations": "^0.5.3 || ^1", "php": "^7.1 || ^8.0" }, "conflict": { - "doctrine/common": "<2.9@dev" + "doctrine/common": "<2.9" }, "require-dev": { - "doctrine/coding-standard": "^6.0", - "phpunit/phpunit": "^7.0" + "doctrine/coding-standard": "^9 || ^10", + "phpstan/phpstan": "~1.4.10 || ^1.8.8", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", + "vimeo/psalm": "^4.24" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, "autoload": { "psr-4": { - "Doctrine\\Common\\": "lib/Doctrine/Common" + "Doctrine\\Common\\": "src" } }, "notification-url": "https://packagist.org/downloads/", @@ -868,6 +908,10 @@ "event system", "events" ], + "support": { + "issues": "https://github.com/doctrine/event-manager/issues", + "source": "https://github.com/doctrine/event-manager/tree/1.2.0" + }, "funding": [ { "url": "https://www.doctrine-project.org/sponsorship.html", @@ -882,42 +926,37 @@ "type": "tidelift" } ], - "time": "2020-05-29T18:28:51+00:00" + "time": "2022-10-12T20:51:15+00:00" }, { "name": "doctrine/inflector", - "version": "1.4.4", + "version": "2.0.10", "source": { "type": "git", "url": "https://github.com/doctrine/inflector.git", - "reference": "4bd5c1cdfcd00e9e2d8c484f79150f67e5d355d9" + "reference": "5817d0659c5b50c9b950feb9af7b9668e2c436bc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/inflector/zipball/4bd5c1cdfcd00e9e2d8c484f79150f67e5d355d9", - "reference": "4bd5c1cdfcd00e9e2d8c484f79150f67e5d355d9", + "url": "https://api.github.com/repos/doctrine/inflector/zipball/5817d0659c5b50c9b950feb9af7b9668e2c436bc", + "reference": "5817d0659c5b50c9b950feb9af7b9668e2c436bc", "shasum": "" }, "require": { - "php": "^7.1 || ^8.0" + "php": "^7.2 || ^8.0" }, "require-dev": { - "doctrine/coding-standard": "^8.0", - "phpstan/phpstan": "^0.12", - "phpstan/phpstan-phpunit": "^0.12", - "phpstan/phpstan-strict-rules": "^0.12", - "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0" + "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", - "extra": { - "branch-alias": { - "dev-master": "2.0.x-dev" - } - }, "autoload": { "psr-4": { - "Doctrine\\Inflector\\": "lib/Doctrine/Inflector", - "Doctrine\\Common\\Inflector\\": "lib/Doctrine/Common/Inflector" + "Doctrine\\Inflector\\": "lib/Doctrine/Inflector" } }, "notification-url": "https://packagist.org/downloads/", @@ -960,6 +999,10 @@ "uppercase", "words" ], + "support": { + "issues": "https://github.com/doctrine/inflector/issues", + "source": "https://github.com/doctrine/inflector/tree/2.0.10" + }, "funding": [ { "url": "https://www.doctrine-project.org/sponsorship.html", @@ -974,7 +1017,7 @@ "type": "tidelift" } ], - "time": "2021-04-16T17:34:40+00:00" + "time": "2024-02-18T20:23:39+00:00" }, { "name": "doctrine/instantiator", @@ -1048,35 +1091,33 @@ }, { "name": "doctrine/lexer", - "version": "1.2.1", + "version": "2.1.1", "source": { "type": "git", "url": "https://github.com/doctrine/lexer.git", - "reference": "e864bbf5904cb8f5bb334f99209b48018522f042" + "reference": "861c870e8b75f7c8f69c146c7f89cc1c0f1b49b6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/lexer/zipball/e864bbf5904cb8f5bb334f99209b48018522f042", - "reference": "e864bbf5904cb8f5bb334f99209b48018522f042", + "url": "https://api.github.com/repos/doctrine/lexer/zipball/861c870e8b75f7c8f69c146c7f89cc1c0f1b49b6", + "reference": "861c870e8b75f7c8f69c146c7f89cc1c0f1b49b6", "shasum": "" }, "require": { - "php": "^7.2 || ^8.0" + "doctrine/deprecations": "^1.0", + "php": "^7.1 || ^8.0" }, "require-dev": { - "doctrine/coding-standard": "^6.0", - "phpstan/phpstan": "^0.11.8", - "phpunit/phpunit": "^8.2" + "doctrine/coding-standard": "^9 || ^12", + "phpstan/phpstan": "^1.3", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.6", + "psalm/plugin-phpunit": "^0.18.3", + "vimeo/psalm": "^4.11 || ^5.21" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.2.x-dev" - } - }, "autoload": { "psr-4": { - "Doctrine\\Common\\Lexer\\": "lib/Doctrine/Common/Lexer" + "Doctrine\\Common\\Lexer\\": "src" } }, "notification-url": "https://packagist.org/downloads/", @@ -1106,6 +1147,10 @@ "parser", "php" ], + "support": { + "issues": "https://github.com/doctrine/lexer/issues", + "source": "https://github.com/doctrine/lexer/tree/2.1.1" + }, "funding": [ { "url": "https://www.doctrine-project.org/sponsorship.html", @@ -1120,54 +1165,63 @@ "type": "tidelift" } ], - "time": "2020-05-25T17:44:05+00:00" + "time": "2024-02-05T11:35:39+00:00" }, { "name": "doctrine/migrations", - "version": "v1.8.1", + "version": "3.5.5", "source": { "type": "git", "url": "https://github.com/doctrine/migrations.git", - "reference": "215438c0eef3e5f9b7da7d09c6b90756071b43e6" + "reference": "4b1e2b6ba71d21d0c5be22ed03b6fc954d20b204" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/migrations/zipball/215438c0eef3e5f9b7da7d09c6b90756071b43e6", - "reference": "215438c0eef3e5f9b7da7d09c6b90756071b43e6", + "url": "https://api.github.com/repos/doctrine/migrations/zipball/4b1e2b6ba71d21d0c5be22ed03b6fc954d20b204", + "reference": "4b1e2b6ba71d21d0c5be22ed03b6fc954d20b204", "shasum": "" }, "require": { - "doctrine/dbal": "~2.6", - "ocramius/proxy-manager": "^1.0|^2.0", - "php": "^7.1", - "symfony/console": "~3.3|^4.0" + "composer-runtime-api": "^2", + "doctrine/dbal": "^3.5.1", + "doctrine/deprecations": "^0.5.3 || ^1", + "doctrine/event-manager": "^1.2 || ^2.0", + "friendsofphp/proxy-manager-lts": "^1.0", + "php": "^7.4 || ^8.0", + "psr/log": "^1.1.3 || ^2 || ^3", + "symfony/console": "^4.4.16 || ^5.4 || ^6.0", + "symfony/stopwatch": "^4.4 || ^5.4 || ^6.0" + }, + "conflict": { + "doctrine/orm": "<2.12" }, "require-dev": { - "doctrine/coding-standard": "^1.0", - "doctrine/orm": "~2.5", - "jdorn/sql-formatter": "~1.1", - "mikey179/vfsstream": "^1.6", - "phpunit/phpunit": "~7.0", - "squizlabs/php_codesniffer": "^3.0", - "symfony/yaml": "~3.3|^4.0" + "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", + "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": { - "jdorn/sql-formatter": "Allows to generate formatted SQL with the diff command.", + "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", - "extra": { - "branch-alias": { - "dev-master": "v1.8.x-dev" - } - }, "autoload": { "psr-4": { - "Doctrine\\Migrations\\": "lib/Doctrine/Migrations", - "Doctrine\\DBAL\\Migrations\\": "lib/Doctrine/DBAL/Migrations" + "Doctrine\\Migrations\\": "lib/Doctrine/Migrations" } }, "notification-url": "https://packagist.org/downloads/", @@ -1188,59 +1242,91 @@ "email": "contact@mikesimonson.com" } ], - "description": "Database Schema migrations using Doctrine DBAL", + "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" ], - "time": "2018-06-06T21:00:30+00:00" + "support": { + "issues": "https://github.com/doctrine/migrations/issues", + "source": "https://github.com/doctrine/migrations/tree/3.5.5" + }, + "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-01-18T12:44:30+00:00" }, { "name": "doctrine/orm", - "version": "v2.7.1", + "version": "2.14.1", "source": { "type": "git", "url": "https://github.com/doctrine/orm.git", - "reference": "445796af0e873d9bd04f2502d322a7d5009b6846" + "reference": "de7eee5ed7b1b35c99b118f26f210a8281e6db8e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/orm/zipball/445796af0e873d9bd04f2502d322a7d5009b6846", - "reference": "445796af0e873d9bd04f2502d322a7d5009b6846", + "url": "https://api.github.com/repos/doctrine/orm/zipball/de7eee5ed7b1b35c99b118f26f210a8281e6db8e", + "reference": "de7eee5ed7b1b35c99b118f26f210a8281e6db8e", "shasum": "" }, "require": { - "doctrine/annotations": "^1.8", - "doctrine/cache": "^1.9.1", - "doctrine/collections": "^1.5", - "doctrine/common": "^2.11", - "doctrine/dbal": "^2.9.3", - "doctrine/event-manager": "^1.1", + "composer-runtime-api": "^2", + "doctrine/cache": "^1.12.1 || ^2.1.1", + "doctrine/collections": "^1.5 || ^2.0", + "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", - "doctrine/persistence": "^1.2", - "ext-pdo": "*", - "ocramius/package-versions": "^1.2", - "php": "^7.1", - "symfony/console": "^3.0|^4.0|^5.0" + "doctrine/lexer": "^1.2.3 || ^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/coding-standard": "^5.0", - "phpunit/phpunit": "^7.5", - "symfony/yaml": "^3.4|^4.0|^5.0" + "doctrine/annotations": "^1.13 || ^2", + "doctrine/coding-standard": "^9.0.2 || ^11.0", + "phpbench/phpbench": "^0.16.10 || ^1.0", + "phpstan/phpstan": "~1.4.10 || 1.9.8", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", + "psr/log": "^1 || ^2 || ^3", + "squizlabs/php_codesniffer": "3.7.1", + "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.4.0" }, "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", - "extra": { - "branch-alias": { - "dev-master": "2.7.x-dev" - } - }, "autoload": { "psr-4": { "Doctrine\\ORM\\": "lib/Doctrine/ORM" @@ -1278,49 +1364,49 @@ "database", "orm" ], - "time": "2020-02-15T14:35:56+00:00" + "support": { + "issues": "https://github.com/doctrine/orm/issues", + "source": "https://github.com/doctrine/orm/tree/2.14.1" + }, + "time": "2023-01-16T18:36:59+00:00" }, { "name": "doctrine/persistence", - "version": "1.3.8", + "version": "3.3.0", "source": { "type": "git", "url": "https://github.com/doctrine/persistence.git", - "reference": "7a6eac9fb6f61bba91328f15aa7547f4806ca288" + "reference": "f75d11b1bcd0a9b75a9e1cabd80ffe3bc0164bcc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/persistence/zipball/7a6eac9fb6f61bba91328f15aa7547f4806ca288", - "reference": "7a6eac9fb6f61bba91328f15aa7547f4806ca288", + "url": "https://api.github.com/repos/doctrine/persistence/zipball/f75d11b1bcd0a9b75a9e1cabd80ffe3bc0164bcc", + "reference": "f75d11b1bcd0a9b75a9e1cabd80ffe3bc0164bcc", "shasum": "" }, "require": { - "doctrine/annotations": "^1.0", - "doctrine/cache": "^1.0", - "doctrine/collections": "^1.0", - "doctrine/event-manager": "^1.0", - "doctrine/reflection": "^1.2", - "php": "^7.1 || ^8.0" + "doctrine/event-manager": "^1 || ^2", + "php": "^7.2 || ^8.0", + "psr/cache": "^1.0 || ^2.0 || ^3.0" }, "conflict": { - "doctrine/common": "<2.10@dev" + "doctrine/common": "<2.10" }, "require-dev": { - "doctrine/coding-standard": "^6.0", - "phpstan/phpstan": "^0.11", - "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0", - "vimeo/psalm": "^3.11" + "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", - "extra": { - "branch-alias": { - "dev-master": "1.3.x-dev" - } - }, "autoload": { "psr-4": { - "Doctrine\\Common\\": "lib/Doctrine/Common", - "Doctrine\\Persistence\\": "lib/Doctrine/Persistence" + "Doctrine\\Persistence\\": "src/Persistence" } }, "notification-url": "https://packagist.org/downloads/", @@ -1354,7 +1440,7 @@ } ], "description": "The Doctrine Persistence project is a set of shared interfaces and functionality that the different Doctrine object mappers share.", - "homepage": "https://doctrine-project.org/projects/persistence.html", + "homepage": "https://www.doctrine-project.org/projects/persistence.html", "keywords": [ "mapper", "object", @@ -1362,6 +1448,10 @@ "orm", "persistence" ], + "support": { + "issues": "https://github.com/doctrine/persistence/issues", + "source": "https://github.com/doctrine/persistence/tree/3.3.0" + }, "funding": [ { "url": "https://www.doctrine-project.org/sponsorship.html", @@ -1376,46 +1466,95 @@ "type": "tidelift" } ], - "time": "2020-06-20T12:56:16+00:00" + "time": "2024-03-01T10:11:31+00:00" }, { - "name": "doctrine/reflection", - "version": "1.2.2", + "name": "doctrine/sql-formatter", + "version": "1.2.0", "source": { "type": "git", - "url": "https://github.com/doctrine/reflection.git", - "reference": "fa587178be682efe90d005e3a322590d6ebb59a5" + "url": "https://github.com/doctrine/sql-formatter.git", + "reference": "a321d114e0a18e6497f8a2cd6f890e000cc17ecc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/reflection/zipball/fa587178be682efe90d005e3a322590d6ebb59a5", - "reference": "fa587178be682efe90d005e3a322590d6ebb59a5", + "url": "https://api.github.com/repos/doctrine/sql-formatter/zipball/a321d114e0a18e6497f8a2cd6f890e000cc17ecc", + "reference": "a321d114e0a18e6497f8a2cd6f890e000cc17ecc", "shasum": "" }, "require": { - "doctrine/annotations": "^1.0", - "ext-tokenizer": "*", "php": "^7.1 || ^8.0" }, - "conflict": { - "doctrine/common": "<2.9" + "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.2.0" + }, + "time": "2023-08-16T21:49:04+00:00" + }, + { + "name": "egulias/email-validator", + "version": "3.2.6", + "source": { + "type": "git", + "url": "https://github.com/egulias/EmailValidator.git", + "reference": "e5997fa97e8790cdae03a9cbd5e78e45e3c7bda7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/egulias/EmailValidator/zipball/e5997fa97e8790cdae03a9cbd5e78e45e3c7bda7", + "reference": "e5997fa97e8790cdae03a9cbd5e78e45e3c7bda7", + "shasum": "" + }, + "require": { + "doctrine/lexer": "^1.2|^2", + "php": ">=7.2", + "symfony/polyfill-intl-idn": "^1.15" }, "require-dev": { - "doctrine/coding-standard": "^6.0 || ^8.2.0", - "doctrine/common": "^2.10", - "phpstan/phpstan": "^0.11.0 || ^0.12.20", - "phpstan/phpstan-phpunit": "^0.11.0 || ^0.12.16", - "phpunit/phpunit": "^7.5 || ^9.1.5" + "phpunit/phpunit": "^8.5.8|^9.3.3", + "vimeo/psalm": "^4" + }, + "suggest": { + "ext-intl": "PHP Internationalization Libraries are required to use the SpoofChecking validation" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.2.x-dev" + "dev-master": "3.0.x-dev" } }, "autoload": { "psr-4": { - "Doctrine\\Common\\": "lib/Doctrine/Common" + "Egulias\\EmailValidator\\": "src" } }, "notification-url": "https://packagist.org/downloads/", @@ -1424,73 +1563,70 @@ ], "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" + "name": "Eduardo Gulias Davis" } ], - "description": "The Doctrine Reflection project is a simple library used by the various Doctrine projects which adds some additional functionality on top of the reflection functionality that comes with PHP. It allows you to get the reflection information about classes, methods and properties statically.", - "homepage": "https://www.doctrine-project.org/projects/reflection.html", + "description": "A library for validating emails against several RFCs", + "homepage": "https://github.com/egulias/EmailValidator", "keywords": [ - "reflection", - "static" + "email", + "emailvalidation", + "emailvalidator", + "validation", + "validator" + ], + "support": { + "issues": "https://github.com/egulias/EmailValidator/issues", + "source": "https://github.com/egulias/EmailValidator/tree/3.2.6" + }, + "funding": [ + { + "url": "https://github.com/egulias", + "type": "github" + } ], - "abandoned": "roave/better-reflection", - "time": "2020-10-27T21:46:55+00:00" + "time": "2023-06-01T07:04:22+00:00" }, { - "name": "fig/link-util", - "version": "1.1.2", + "name": "friendsofphp/proxy-manager-lts", + "version": "v1.0.16", "source": { "type": "git", - "url": "https://github.com/php-fig/link-util.git", - "reference": "5d7b8d04ed3393b4b59968ca1e906fb7186d81e8" + "url": "https://github.com/FriendsOfPHP/proxy-manager-lts.git", + "reference": "ecadbdc9052e4ad08c60c8a02268712e50427f7c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/link-util/zipball/5d7b8d04ed3393b4b59968ca1e906fb7186d81e8", - "reference": "5d7b8d04ed3393b4b59968ca1e906fb7186d81e8", + "url": "https://api.github.com/repos/FriendsOfPHP/proxy-manager-lts/zipball/ecadbdc9052e4ad08c60c8a02268712e50427f7c", + "reference": "ecadbdc9052e4ad08c60c8a02268712e50427f7c", "shasum": "" }, "require": { - "php": ">=5.5.0", - "psr/link": "~1.0@dev" + "laminas/laminas-code": "~3.4.1|^4.0", + "php": ">=7.1", + "symfony/filesystem": "^4.4.17|^5.0|^6.0|^7.0" }, - "provide": { - "psr/link-implementation": "1.0" + "conflict": { + "laminas/laminas-stdlib": "<3.2.1", + "zendframework/zend-stdlib": "<3.2.1" + }, + "replace": { + "ocramius/proxy-manager": "^2.1" }, "require-dev": { - "phpunit/phpunit": "^5.1", - "squizlabs/php_codesniffer": "^2.3.1" + "ext-phar": "*", + "symfony/phpunit-bridge": "^5.4|^6.0|^7.0" }, "type": "library", "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" + "thanks": { + "name": "ocramius/proxy-manager", + "url": "https://github.com/Ocramius/ProxyManager" } }, "autoload": { "psr-4": { - "Fig\\Link\\": "src/" + "ProxyManager\\": "src/ProxyManager" } }, "notification-url": "https://packagist.org/downloads/", @@ -1499,20 +1635,39 @@ ], "authors": [ { - "name": "PHP-FIG", - "homepage": "https://www.php-fig.org/" + "name": "Marco Pivetta", + "email": "ocramius@gmail.com", + "homepage": "https://ocramius.github.io/" + }, + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" } ], - "description": "Common utility implementations for HTTP links", + "description": "Adding support for a wider range of PHP versions to ocramius/proxy-manager", + "homepage": "https://github.com/FriendsOfPHP/proxy-manager-lts", "keywords": [ - "http", - "http-link", - "link", - "psr", - "psr-13", - "rest" + "aop", + "lazy loading", + "proxy", + "proxy pattern", + "service proxies" ], - "time": "2021-02-03T23:36:04+00:00" + "support": { + "issues": "https://github.com/FriendsOfPHP/proxy-manager-lts/issues", + "source": "https://github.com/FriendsOfPHP/proxy-manager-lts/tree/v1.0.16" + }, + "funding": [ + { + "url": "https://github.com/Ocramius", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/ocramius/proxy-manager", + "type": "tidelift" + } + ], + "time": "2023-05-24T07:17:17+00:00" }, { "name": "guzzlehttp/guzzle", @@ -1609,6 +1764,10 @@ "rest", "web service" ], + "support": { + "issues": "https://github.com/guzzle/guzzle/issues", + "source": "https://github.com/guzzle/guzzle/tree/6.5.8" + }, "funding": [ { "url": "https://github.com/GrahamCampbell", @@ -1627,16 +1786,16 @@ }, { "name": "guzzlehttp/promises", - "version": "1.5.1", + "version": "1.5.3", "source": { "type": "git", "url": "https://github.com/guzzle/promises.git", - "reference": "fe752aedc9fd8fcca3fe7ad05d419d32998a06da" + "reference": "67ab6e18aaa14d753cc148911d273f6e6cb6721e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/promises/zipball/fe752aedc9fd8fcca3fe7ad05d419d32998a06da", - "reference": "fe752aedc9fd8fcca3fe7ad05d419d32998a06da", + "url": "https://api.github.com/repos/guzzle/promises/zipball/67ab6e18aaa14d753cc148911d273f6e6cb6721e", + "reference": "67ab6e18aaa14d753cc148911d273f6e6cb6721e", "shasum": "" }, "require": { @@ -1646,11 +1805,6 @@ "symfony/phpunit-bridge": "^4.4 || ^5.1" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.5-dev" - } - }, "autoload": { "files": [ "src/functions_include.php" @@ -1689,6 +1843,10 @@ "keywords": [ "promise" ], + "support": { + "issues": "https://github.com/guzzle/promises/issues", + "source": "https://github.com/guzzle/promises/tree/1.5.3" + }, "funding": [ { "url": "https://github.com/GrahamCampbell", @@ -1703,7 +1861,7 @@ "type": "tidelift" } ], - "time": "2021-10-22T20:56:57+00:00" + "time": "2023-05-21T12:31:43+00:00" }, { "name": "guzzlehttp/psr7", @@ -1812,31 +1970,33 @@ }, { "name": "incenteev/composer-parameter-handler", - "version": "v2.1.3", + "version": "v2.2.0", "source": { "type": "git", "url": "https://github.com/Incenteev/ParameterHandler.git", - "reference": "933c45a34814f27f2345c11c37d46b3ca7303550" + "reference": "90bffce926e96b365579a2ef024aab457f4b80c5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Incenteev/ParameterHandler/zipball/933c45a34814f27f2345c11c37d46b3ca7303550", - "reference": "933c45a34814f27f2345c11c37d46b3ca7303550", + "url": "https://api.github.com/repos/Incenteev/ParameterHandler/zipball/90bffce926e96b365579a2ef024aab457f4b80c5", + "reference": "90bffce926e96b365579a2ef024aab457f4b80c5", "shasum": "" }, "require": { - "php": ">=5.3.3", - "symfony/yaml": "^2.3 || ^3.0 || ^4.0" + "php": ">=7.4", + "symfony/yaml": "^5.4 || ^6.0 || ^7.0" }, "require-dev": { - "composer/composer": "^1.0@dev", - "symfony/filesystem": "^2.3 || ^3 || ^4", - "symfony/phpunit-bridge": "^4.0" + "composer/composer": "^2.0@dev", + "phpspec/prophecy-phpunit": "^2.1", + "phpunit/phpunit": "^9.6", + "symfony/filesystem": "^5.4 || ^6.0 || ^7.0", + "symfony/phpunit-bridge": "^6.4.1 || ^7.0.1" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.1.x-dev" + "dev-master": "2.x-dev" } }, "autoload": { @@ -1859,70 +2019,90 @@ "keywords": [ "parameters management" ], - "time": "2018-02-13T18:05:56+00:00" + "support": { + "issues": "https://github.com/Incenteev/ParameterHandler/issues", + "source": "https://github.com/Incenteev/ParameterHandler/tree/v2.2.0" + }, + "time": "2023-12-09T10:31:14+00:00" }, { - "name": "jdorn/sql-formatter", - "version": "v1.2.17", + "name": "laminas/laminas-code", + "version": "4.7.1", "source": { "type": "git", - "url": "https://github.com/jdorn/sql-formatter.git", - "reference": "64990d96e0959dff8e059dfcdc1af130728d92bc" + "url": "https://github.com/laminas/laminas-code.git", + "reference": "91aabc066d5620428120800c0eafc0411e441a62" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/jdorn/sql-formatter/zipball/64990d96e0959dff8e059dfcdc1af130728d92bc", - "reference": "64990d96e0959dff8e059dfcdc1af130728d92bc", + "url": "https://api.github.com/repos/laminas/laminas-code/zipball/91aabc066d5620428120800c0eafc0411e441a62", + "reference": "91aabc066d5620428120800c0eafc0411e441a62", "shasum": "" }, "require": { - "php": ">=5.2.4" + "php": ">=7.4, <8.2" }, "require-dev": { - "phpunit/phpunit": "3.7.*" + "doctrine/annotations": "^1.13.2", + "ext-phar": "*", + "laminas/laminas-coding-standard": "^2.3.0", + "laminas/laminas-stdlib": "^3.6.1", + "phpunit/phpunit": "^9.5.10", + "psalm/plugin-phpunit": "^0.17.0", + "vimeo/psalm": "^4.13.1" }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.3.x-dev" - } + "suggest": { + "doctrine/annotations": "Doctrine\\Common\\Annotations >=1.0 for annotation features", + "laminas/laminas-stdlib": "Laminas\\Stdlib component" }, + "type": "library", "autoload": { - "classmap": [ - "lib" - ] + "files": [ + "polyfill/ReflectionEnumPolyfill.php" + ], + "psr-4": { + "Laminas\\Code\\": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], - "authors": [ + "description": "Extensions to the PHP Reflection API, static code scanning, and code generation", + "homepage": "https://laminas.dev", + "keywords": [ + "code", + "laminas", + "laminasframework" + ], + "support": { + "chat": "https://laminas.dev/chat", + "docs": "https://docs.laminas.dev/laminas-code/", + "forum": "https://discourse.laminas.dev", + "issues": "https://github.com/laminas/laminas-code/issues", + "rss": "https://github.com/laminas/laminas-code/releases.atom", + "source": "https://github.com/laminas/laminas-code" + }, + "funding": [ { - "name": "Jeremy Dorn", - "email": "jeremy@jeremydorn.com", - "homepage": "http://jeremydorn.com/" + "url": "https://funding.communitybridge.org/projects/laminas-project", + "type": "community_bridge" } ], - "description": "a PHP SQL highlighting library", - "homepage": "https://github.com/jdorn/sql-formatter/", - "keywords": [ - "highlight", - "sql" - ], - "time": "2014-01-12T16:20:24+00:00" + "time": "2022-11-21T01:32:31+00:00" }, { "name": "monolog/monolog", - "version": "1.26.0", + "version": "1.27.1", "source": { "type": "git", "url": "https://github.com/Seldaek/monolog.git", - "reference": "2209ddd84e7ef1256b7af205d0717fb62cfc9c33" + "reference": "904713c5929655dc9b97288b69cfeedad610c9a1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Seldaek/monolog/zipball/2209ddd84e7ef1256b7af205d0717fb62cfc9c33", - "reference": "2209ddd84e7ef1256b7af205d0717fb62cfc9c33", + "url": "https://api.github.com/repos/Seldaek/monolog/zipball/904713c5929655dc9b97288b69cfeedad610c9a1", + "reference": "904713c5929655dc9b97288b69cfeedad610c9a1", "shasum": "" }, "require": { @@ -1981,6 +2161,10 @@ "logging", "psr-3" ], + "support": { + "issues": "https://github.com/Seldaek/monolog/issues", + "source": "https://github.com/Seldaek/monolog/tree/1.27.1" + }, "funding": [ { "url": "https://github.com/Seldaek", @@ -1991,109 +2175,40 @@ "type": "tidelift" } ], - "time": "2020-12-14T12:56:38+00:00" - }, - { - "name": "ocramius/proxy-manager", - "version": "2.2.3", - "source": { - "type": "git", - "url": "https://github.com/Ocramius/ProxyManager.git", - "reference": "4d154742e31c35137d5374c998e8f86b54db2e2f" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/Ocramius/ProxyManager/zipball/4d154742e31c35137d5374c998e8f86b54db2e2f", - "reference": "4d154742e31c35137d5374c998e8f86b54db2e2f", - "shasum": "" - }, - "require": { - "ocramius/package-versions": "^1.1.3", - "php": "^7.2.0", - "zendframework/zend-code": "^3.3.0" - }, - "require-dev": { - "couscous/couscous": "^1.6.1", - "ext-phar": "*", - "humbug/humbug": "1.0.0-RC.0@RC", - "nikic/php-parser": "^3.1.1", - "padraic/phpunit-accelerator": "dev-master@DEV", - "phpbench/phpbench": "^0.12.2", - "phpstan/phpstan": "dev-master#856eb10a81c1d27c701a83f167dc870fd8f4236a as 0.9.999", - "phpstan/phpstan-phpunit": "dev-master#5629c0a1f4a9c417cb1077cf6693ad9753895761", - "phpunit/phpunit": "^6.4.3", - "squizlabs/php_codesniffer": "^2.9.1" - }, - "suggest": { - "ocramius/generated-hydrator": "To have very fast object to array to object conversion for ghost objects", - "zendframework/zend-json": "To have the JsonRpc adapter (Remote Object feature)", - "zendframework/zend-soap": "To have the Soap adapter (Remote Object feature)", - "zendframework/zend-xmlrpc": "To have the XmlRpc adapter (Remote Object feature)" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.0.x-dev" - } - }, - "autoload": { - "psr-0": { - "ProxyManager\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Marco Pivetta", - "email": "ocramius@gmail.com", - "homepage": "http://ocramius.github.io/" - } - ], - "description": "A library providing utilities to generate, instantiate and generally operate with Object Proxies", - "homepage": "https://github.com/Ocramius/ProxyManager", - "keywords": [ - "aop", - "lazy loading", - "proxy", - "proxy pattern", - "service proxies" - ], - "time": "2019-08-10T08:37:15+00:00" + "time": "2022-06-09T08:53:42+00:00" }, { "name": "openconext/monitor-bundle", - "version": "2.1.0", + "version": "3.1.0", "source": { "type": "git", "url": "https://github.com/OpenConext/Monitor-bundle.git", - "reference": "f06e967b702bc5d78d85c39ba4a90219af152a67" + "reference": "719c34a5a00b0a2089ddc52abfe0876fc6ed9049" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/OpenConext/Monitor-bundle/zipball/f06e967b702bc5d78d85c39ba4a90219af152a67", - "reference": "f06e967b702bc5d78d85c39ba4a90219af152a67", + "url": "https://api.github.com/repos/OpenConext/Monitor-bundle/zipball/719c34a5a00b0a2089ddc52abfe0876fc6ed9049", + "reference": "719c34a5a00b0a2089ddc52abfe0876fc6ed9049", "shasum": "" }, "require": { - "php": ">=5.4,<8.0-dev", - "symfony/dependency-injection": ">=3.4,<5", - "symfony/framework-bundle": ">=3.4,<5", - "webmozart/assert": "^1.2" + "doctrine/orm": "^2.9", + "php": ">=7.2, <9.0-dev", + "symfony/dependency-injection": "^4.4|^5.0|^6.0", + "symfony/framework-bundle": "^4.4|^5.0|^6.0", + "webmozart/assert": "^1.10" }, "require-dev": { - "jakub-onderka/php-parallel-lint": "^0.9.2", - "malukenho/docheader": "^0.1.6", - "matthiasnoback/symfony-config-test": "^2.1", - "mockery/mockery": "~0.9", - "phpdocumentor/reflection-docblock": "3.3.*", + "malukenho/docheader": "^0.1.8", + "matthiasnoback/symfony-config-test": "^4.3", + "mockery/mockery": "^1.3.5|^1.4.4", + "php-parallel-lint/php-parallel-lint": "^1.3", + "phpdocumentor/reflection-docblock": "^5.2", "phpmd/phpmd": "^2.6", - "phpunit/php-token-stream": "1.4.*", - "phpunit/phpunit": "^5.7", - "sebastian/phpcpd": "^3.0", - "squizlabs/php_codesniffer": "^3.1" + "phpunit/php-token-stream": "^3.1.3|^4.0.4", + "phpunit/phpunit": "^8.5|^9.0", + "sebastian/phpcpd": "^4.1|^5.0|^6.0", + "squizlabs/php_codesniffer": "^3.6" }, "type": "symfony-bundle", "autoload": { @@ -2105,7 +2220,7 @@ "license": [ "Apache-2.0" ], - "description": "A Symfony 4 bundle that facilitates health and info endpoints to a Symfony application. The bundle is backwards compatible with Symfony 2 projects.", + "description": "A Symfony 4/5/6 bundle that facilitates health and info endpoints to a Symfony application. The bundle is backwards compatible with Symfony 2 projects.", "keywords": [ "OpenConext", "health", @@ -2113,7 +2228,11 @@ "stepup", "surfnet" ], - "time": "2021-09-28T11:09:57+00:00" + "support": { + "issues": "https://github.com/OpenConext/Monitor-bundle/issues", + "source": "https://github.com/OpenConext/Monitor-bundle/tree/3.1.0" + }, + "time": "2022-04-19T12:42:45+00:00" }, { "name": "openconext/saml-value-object", @@ -2154,24 +2273,28 @@ } ], "description": "Set of value objects for usage with SAML2", + "support": { + "issues": "https://github.com/OpenConext/SamlValueObject/issues", + "source": "https://github.com/OpenConext/SamlValueObject/tree/1.3.2" + }, "time": "2018-01-22T15:22:14+00:00" }, { "name": "paragonie/random_compat", - "version": "v9.99.99", + "version": "v9.99.100", "source": { "type": "git", "url": "https://github.com/paragonie/random_compat.git", - "reference": "84b4dfb120c6f9b4ff7b3685f9b8f1aa365a0c95" + "reference": "996434e5492cb4c3edcb9168db6fbb1359ef965a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/paragonie/random_compat/zipball/84b4dfb120c6f9b4ff7b3685f9b8f1aa365a0c95", - "reference": "84b4dfb120c6f9b4ff7b3685f9b8f1aa365a0c95", + "url": "https://api.github.com/repos/paragonie/random_compat/zipball/996434e5492cb4c3edcb9168db6fbb1359ef965a", + "reference": "996434e5492cb4c3edcb9168db6fbb1359ef965a", "shasum": "" }, "require": { - "php": "^7" + "php": ">= 7" }, "require-dev": { "phpunit/phpunit": "4.*|5.*", @@ -2199,7 +2322,12 @@ "pseudorandom", "random" ], - "time": "2018-07-02T15:55:56+00:00" + "support": { + "email": "info@paragonie.com", + "issues": "https://github.com/paragonie/random_compat/issues", + "source": "https://github.com/paragonie/random_compat" + }, + "time": "2020-10-15T08:29:30+00:00" }, { "name": "pimple/pimple", @@ -2245,6 +2373,10 @@ "container", "dependency injection" ], + "support": { + "issues": "https://github.com/silexphp/Pimple/issues", + "source": "https://github.com/silexphp/Pimple/tree/v2.1.1" + }, "time": "2014-07-24T07:10:08+00:00" }, { @@ -2291,24 +2423,27 @@ "psr", "psr-6" ], + "support": { + "source": "https://github.com/php-fig/cache/tree/master" + }, "time": "2016-08-06T20:24:11+00:00" }, { "name": "psr/container", - "version": "1.1.1", + "version": "1.1.2", "source": { "type": "git", "url": "https://github.com/php-fig/container.git", - "reference": "8622567409010282b7aeebe4bb841fe98b58dcaf" + "reference": "513e0666f7216c7459170d56df27dfcefe1689ea" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/container/zipball/8622567409010282b7aeebe4bb841fe98b58dcaf", - "reference": "8622567409010282b7aeebe4bb841fe98b58dcaf", + "url": "https://api.github.com/repos/php-fig/container/zipball/513e0666f7216c7459170d56df27dfcefe1689ea", + "reference": "513e0666f7216c7459170d56df27dfcefe1689ea", "shasum": "" }, "require": { - "php": ">=7.2.0" + "php": ">=7.4.0" }, "type": "library", "autoload": { @@ -2335,34 +2470,38 @@ "container-interop", "psr" ], - "time": "2021-03-05T17:36:06+00:00" + "support": { + "issues": "https://github.com/php-fig/container/issues", + "source": "https://github.com/php-fig/container/tree/1.1.2" + }, + "time": "2021-11-05T16:50:12+00:00" }, { - "name": "psr/http-message", - "version": "1.1", + "name": "psr/event-dispatcher", + "version": "1.0.0", "source": { "type": "git", - "url": "https://github.com/php-fig/http-message.git", - "reference": "cb6ce4845ce34a8ad9e68117c10ee90a29919eba" + "url": "https://github.com/php-fig/event-dispatcher.git", + "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/http-message/zipball/cb6ce4845ce34a8ad9e68117c10ee90a29919eba", - "reference": "cb6ce4845ce34a8ad9e68117c10ee90a29919eba", + "url": "https://api.github.com/repos/php-fig/event-dispatcher/zipball/dbefd12671e8a14ec7f180cab83036ed26714bb0", + "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0", "shasum": "" }, "require": { - "php": "^7.2 || ^8.0" + "php": ">=7.2.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.1.x-dev" + "dev-master": "1.0.x-dev" } }, "autoload": { "psr-4": { - "Psr\\Http\\Message\\": "src/" + "Psr\\EventDispatcher\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -2375,47 +2514,44 @@ "homepage": "http://www.php-fig.org/" } ], - "description": "Common interface for HTTP messages", - "homepage": "https://github.com/php-fig/http-message", + "description": "Standard interfaces for event handling.", "keywords": [ - "http", - "http-message", + "events", "psr", - "psr-7", - "request", - "response" + "psr-14" ], "support": { - "source": "https://github.com/php-fig/http-message/tree/1.1" + "issues": "https://github.com/php-fig/event-dispatcher/issues", + "source": "https://github.com/php-fig/event-dispatcher/tree/1.0.0" }, - "time": "2023-04-04T09:50:52+00:00" + "time": "2019-01-08T18:20:26+00:00" }, { - "name": "psr/link", - "version": "1.0.0", + "name": "psr/http-message", + "version": "1.1", "source": { "type": "git", - "url": "https://github.com/php-fig/link.git", - "reference": "eea8e8662d5cd3ae4517c9b864493f59fca95562" + "url": "https://github.com/php-fig/http-message.git", + "reference": "cb6ce4845ce34a8ad9e68117c10ee90a29919eba" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/link/zipball/eea8e8662d5cd3ae4517c9b864493f59fca95562", - "reference": "eea8e8662d5cd3ae4517c9b864493f59fca95562", + "url": "https://api.github.com/repos/php-fig/http-message/zipball/cb6ce4845ce34a8ad9e68117c10ee90a29919eba", + "reference": "cb6ce4845ce34a8ad9e68117c10ee90a29919eba", "shasum": "" }, "require": { - "php": ">=5.3.0" + "php": "^7.2 || ^8.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-master": "1.1.x-dev" } }, "autoload": { "psr-4": { - "Psr\\Link\\": "src/" + "Psr\\Http\\Message\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -2428,16 +2564,20 @@ "homepage": "http://www.php-fig.org/" } ], - "description": "Common interfaces for HTTP links", + "description": "Common interface for HTTP messages", + "homepage": "https://github.com/php-fig/http-message", "keywords": [ "http", - "http-link", - "link", + "http-message", "psr", - "psr-13", - "rest" + "psr-7", + "request", + "response" ], - "time": "2016-10-28T16:06:13+00:00" + "support": { + "source": "https://github.com/php-fig/http-message/tree/1.1" + }, + "time": "2023-04-04T09:50:52+00:00" }, { "name": "psr/log", @@ -2484,56 +2624,11 @@ "psr", "psr-3" ], + "support": { + "source": "https://github.com/php-fig/log/tree/1.1.4" + }, "time": "2021-05-03T11:20:27+00:00" }, - { - "name": "psr/simple-cache", - "version": "1.0.1", - "source": { - "type": "git", - "url": "https://github.com/php-fig/simple-cache.git", - "reference": "408d5eafb83c57f6365a3ca330ff23aa4a5fa39b" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/simple-cache/zipball/408d5eafb83c57f6365a3ca330ff23aa4a5fa39b", - "reference": "408d5eafb83c57f6365a3ca330ff23aa4a5fa39b", - "shasum": "" - }, - "require": { - "php": ">=5.3.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "autoload": { - "psr-4": { - "Psr\\SimpleCache\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" - } - ], - "description": "Common interfaces for simple caching", - "keywords": [ - "cache", - "caching", - "psr", - "psr-16", - "simple-cache" - ], - "time": "2017-10-23T01:57:42+00:00" - }, { "name": "ralouphie/getallheaders", "version": "3.0.3", @@ -2580,54 +2675,56 @@ }, { "name": "ramsey/uuid", - "version": "3.8.0", + "version": "3.9.7", "source": { "type": "git", "url": "https://github.com/ramsey/uuid.git", - "reference": "d09ea80159c1929d75b3f9c60504d613aeb4a1e3" + "reference": "dc75aa439eb4c1b77f5379fd958b3dc0e6014178" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ramsey/uuid/zipball/d09ea80159c1929d75b3f9c60504d613aeb4a1e3", - "reference": "d09ea80159c1929d75b3f9c60504d613aeb4a1e3", + "url": "https://api.github.com/repos/ramsey/uuid/zipball/dc75aa439eb4c1b77f5379fd958b3dc0e6014178", + "reference": "dc75aa439eb4c1b77f5379fd958b3dc0e6014178", "shasum": "" }, "require": { - "paragonie/random_compat": "^1.0|^2.0|9.99.99", - "php": "^5.4 || ^7.0", + "ext-json": "*", + "paragonie/random_compat": "^1 | ^2 | ^9.99.99", + "php": "^5.4 | ^7.0 | ^8.0", "symfony/polyfill-ctype": "^1.8" }, "replace": { "rhumsaa/uuid": "self.version" }, "require-dev": { - "codeception/aspect-mock": "^1.0 | ~2.0.0", - "doctrine/annotations": "~1.2.0", - "goaop/framework": "1.0.0-alpha.2 | ^1.0 | ~2.1.0", - "ircmaxell/random-lib": "^1.1", - "jakub-onderka/php-parallel-lint": "^0.9.0", - "mockery/mockery": "^0.9.9", + "codeception/aspect-mock": "^1 | ^2", + "doctrine/annotations": "^1.2", + "goaop/framework": "1.0.0-alpha.2 | ^1 | >=2.1.0 <=2.3.2", + "mockery/mockery": "^0.9.11 | ^1", "moontoast/math": "^1.1", - "php-mock/php-mock-phpunit": "^0.3|^1.1", - "phpunit/phpunit": "^4.7|^5.0|^6.5", - "squizlabs/php_codesniffer": "^2.3" + "nikic/php-parser": "<=4.5.0", + "paragonie/random-lib": "^2", + "php-mock/php-mock-phpunit": "^0.3 | ^1.1 | ^2.6", + "php-parallel-lint/php-parallel-lint": "^1.3", + "phpunit/phpunit": ">=4.8.36 <9.0.0 | >=9.3.0", + "squizlabs/php_codesniffer": "^3.5", + "yoast/phpunit-polyfills": "^1.0" }, "suggest": { "ext-ctype": "Provides support for PHP Ctype functions", "ext-libsodium": "Provides the PECL libsodium extension for use with the SodiumRandomGenerator", + "ext-openssl": "Provides the OpenSSL extension for use with the OpenSslGenerator", "ext-uuid": "Provides the PECL UUID extension for use with the PeclUuidTimeGenerator and PeclUuidRandomGenerator", - "ircmaxell/random-lib": "Provides RandomLib for use with the RandomLibAdapter", "moontoast/math": "Provides support for converting UUID to 128-bit integer (in string form).", + "paragonie/random-lib": "Provides RandomLib for use with the RandomLibAdapter", "ramsey/uuid-console": "A console application for generating UUIDs with ramsey/uuid", "ramsey/uuid-doctrine": "Allows the use of Ramsey\\Uuid\\Uuid as Doctrine field type." }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.x-dev" - } - }, "autoload": { + "files": [ + "src/functions.php" + ], "psr-4": { "Ramsey\\Uuid\\": "src/" } @@ -2658,6 +2755,12 @@ "identifier", "uuid" ], + "support": { + "issues": "https://github.com/ramsey/uuid/issues", + "rss": "https://github.com/ramsey/uuid/releases.atom", + "source": "https://github.com/ramsey/uuid", + "wiki": "https://github.com/ramsey/uuid/wiki" + }, "funding": [ { "url": "https://github.com/ramsey", @@ -2668,20 +2771,20 @@ "type": "tidelift" } ], - "time": "2018-07-19T23:38:55+00:00" + "time": "2022-12-19T21:55:10+00:00" }, { "name": "robrichards/xmlseclibs", - "version": "3.1.0", + "version": "3.1.1", "source": { "type": "git", "url": "https://github.com/robrichards/xmlseclibs.git", - "reference": "8d8e56ca7914440a8c60caff1a865e7dff1d9a5a" + "reference": "f8f19e58f26cdb42c54b214ff8a820760292f8df" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/robrichards/xmlseclibs/zipball/8d8e56ca7914440a8c60caff1a865e7dff1d9a5a", - "reference": "8d8e56ca7914440a8c60caff1a865e7dff1d9a5a", + "url": "https://api.github.com/repos/robrichards/xmlseclibs/zipball/f8f19e58f26cdb42c54b214ff8a820760292f8df", + "reference": "f8f19e58f26cdb42c54b214ff8a820760292f8df", "shasum": "" }, "require": { @@ -2706,168 +2809,46 @@ "xml", "xmldsig" ], - "time": "2020-04-22T17:19:51+00:00" - }, - { - "name": "sensio/framework-extra-bundle", - "version": "v3.0.29", - "source": { - "type": "git", - "url": "https://github.com/sensiolabs/SensioFrameworkExtraBundle.git", - "reference": "bb907234df776b68922eb4b25bfa061683597b6a" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sensiolabs/SensioFrameworkExtraBundle/zipball/bb907234df776b68922eb4b25bfa061683597b6a", - "reference": "bb907234df776b68922eb4b25bfa061683597b6a", - "shasum": "" - }, - "require": { - "doctrine/common": "~2.2", - "symfony/dependency-injection": "~2.3|~3.0", - "symfony/framework-bundle": "~2.3|~3.0|~4.0" - }, - "require-dev": { - "doctrine/doctrine-bundle": "~1.5", - "doctrine/orm": "~2.4,>=2.4.5", - "symfony/asset": "~2.7|~3.0|~4.0", - "symfony/browser-kit": "~2.3|~3.0|~4.0", - "symfony/dom-crawler": "~2.3|~3.0|~4.0", - "symfony/expression-language": "~2.4|~3.0|~4.0", - "symfony/finder": "~2.3|~3.0|~4.0", - "symfony/phpunit-bridge": "~3.2|~4.0", - "symfony/psr-http-message-bridge": "^0.3|^1.0", - "symfony/security-bundle": "~2.4|~3.0|~4.0", - "symfony/templating": "~2.3|~3.0|~4.0", - "symfony/translation": "~2.3|~3.0|~4.0", - "symfony/twig-bundle": "~2.3|~3.0|~4.0", - "symfony/yaml": "~2.3|~3.0|~4.0", - "twig/twig": "~1.12|~2.0", - "zendframework/zend-diactoros": "^1.3" - }, - "suggest": { - "symfony/expression-language": "", - "symfony/psr-http-message-bridge": "To use the PSR-7 converters", - "symfony/security-bundle": "" - }, - "type": "symfony-bundle", - "extra": { - "branch-alias": { - "dev-master": "3.0.x-dev" - } - }, - "autoload": { - "psr-4": { - "Sensio\\Bundle\\FrameworkExtraBundle\\": "" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - } - ], - "description": "This bundle provides a way to configure your controllers with annotations", - "keywords": [ - "annotations", - "controllers" - ], - "time": "2017-12-14T19:03:23+00:00" - }, - { - "name": "sensio/generator-bundle", - "version": "v3.1.7", - "source": { - "type": "git", - "url": "https://github.com/sensiolabs/SensioGeneratorBundle.git", - "reference": "28cbaa244bd0816fd8908b93f90380bcd7b67a65" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sensiolabs/SensioGeneratorBundle/zipball/28cbaa244bd0816fd8908b93f90380bcd7b67a65", - "reference": "28cbaa244bd0816fd8908b93f90380bcd7b67a65", - "shasum": "" - }, - "require": { - "symfony/console": "~2.7|~3.0", - "symfony/framework-bundle": "~2.7|~3.0", - "symfony/process": "~2.7|~3.0", - "symfony/yaml": "~2.7|~3.0", - "twig/twig": "^1.28.2|^2.0" - }, - "require-dev": { - "doctrine/orm": "~2.4", - "symfony/doctrine-bridge": "~2.7|~3.0", - "symfony/filesystem": "~2.7|~3.0", - "symfony/phpunit-bridge": "^3.3" - }, - "type": "symfony-bundle", - "extra": { - "branch-alias": { - "dev-master": "3.1.x-dev" - } - }, - "autoload": { - "psr-4": { - "Sensio\\Bundle\\GeneratorBundle\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] + "support": { + "issues": "https://github.com/robrichards/xmlseclibs/issues", + "source": "https://github.com/robrichards/xmlseclibs/tree/3.1.1" }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - } - ], - "description": "This bundle generates code for you", - "abandoned": "symfony/maker-bundle", - "time": "2017-12-07T15:36:41+00:00" + "time": "2020-09-05T13:00:25+00:00" }, { "name": "simplesamlphp/saml2", - "version": "v4.1.9", + "version": "v4.6.11", "source": { "type": "git", "url": "https://github.com/simplesamlphp/saml2.git", - "reference": "ff19d04d3af0689a13c1f75859e13f4a511343cb" + "reference": "1b5d48753c78d02e88667068e633531c233141fb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/simplesamlphp/saml2/zipball/ff19d04d3af0689a13c1f75859e13f4a511343cb", - "reference": "ff19d04d3af0689a13c1f75859e13f4a511343cb", + "url": "https://api.github.com/repos/simplesamlphp/saml2/zipball/1b5d48753c78d02e88667068e633531c233141fb", + "reference": "1b5d48753c78d02e88667068e633531c233141fb", "shasum": "" }, "require": { "ext-dom": "*", "ext-openssl": "*", "ext-zlib": "*", - "php": ">=7.1", - "psr/log": "~1.1", - "robrichards/xmlseclibs": "^3.1.0", - "webmozart/assert": "^1.5" + "php": ">=7.1 || ^8.0", + "psr/log": "~1.1 || ^2.0 || ^3.0", + "robrichards/xmlseclibs": "^3.1.1", + "webmozart/assert": "^1.9" }, "require-dev": { - "mockery/mockery": "~1.2", - "phpunit/phpunit": "^7.5", - "sebastian/phpcpd": "~4.1", - "sensiolabs/security-checker": "~6.0", + "mockery/mockery": "^1.3", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", + "sebastian/phpcpd": "~4.1 || ^5.0 || ^6.0", "simplesamlphp/simplesamlphp-test-framework": "~0.1.0", "squizlabs/php_codesniffer": "~3.5" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "v4.0.x-dev" + "dev-master": "v4.2.x-dev" } }, "autoload": { @@ -2886,7 +2867,11 @@ } ], "description": "SAML2 PHP library from SimpleSAMLphp", - "time": "2020-08-19T06:10:17+00:00" + "support": { + "issues": "https://github.com/simplesamlphp/saml2/issues", + "source": "https://github.com/simplesamlphp/saml2/tree/v4.6.11" + }, + "time": "2024-01-25T19:39:46+00:00" }, { "name": "swiftmailer/swiftmailer", @@ -2940,45 +2925,66 @@ "mail", "mailer" ], + "support": { + "issues": "https://github.com/swiftmailer/swiftmailer/issues", + "source": "https://github.com/swiftmailer/swiftmailer/tree/v5.4.12" + }, "abandoned": "symfony/mailer", "time": "2018-07-31T09:26:32+00:00" }, { - "name": "symfony/monolog-bundle", - "version": "v3.4.0", + "name": "symfony/cache", + "version": "v5.4.19", "source": { "type": "git", - "url": "https://github.com/symfony/monolog-bundle.git", - "reference": "7fbecb371c1c614642c93c6b2cbcdf723ae8809d" + "url": "https://github.com/symfony/cache.git", + "reference": "e9147c89fdfdc5d5ef798bb7193f23726ad609f5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/monolog-bundle/zipball/7fbecb371c1c614642c93c6b2cbcdf723ae8809d", - "reference": "7fbecb371c1c614642c93c6b2cbcdf723ae8809d", + "url": "https://api.github.com/repos/symfony/cache/zipball/e9147c89fdfdc5d5ef798bb7193f23726ad609f5", + "reference": "e9147c89fdfdc5d5ef798bb7193f23726ad609f5", "shasum": "" }, "require": { - "monolog/monolog": "~1.22", - "php": ">=5.6", - "symfony/config": "~3.4|~4.0", - "symfony/dependency-injection": "~3.4.10|^4.0.10", - "symfony/http-kernel": "~3.4|~4.0", - "symfony/monolog-bridge": "~3.4|~4.0" + "php": ">=7.2.5", + "psr/cache": "^1.0|^2.0", + "psr/log": "^1.1|^2|^3", + "symfony/cache-contracts": "^1.1.7|^2", + "symfony/deprecation-contracts": "^2.1|^3", + "symfony/polyfill-php73": "^1.9", + "symfony/polyfill-php80": "^1.16", + "symfony/service-contracts": "^1.1|^2|^3", + "symfony/var-exporter": "^4.4|^5.0|^6.0" }, - "require-dev": { - "symfony/console": "~3.4|~4.0", - "symfony/phpunit-bridge": "^3.4.19|^4.0", - "symfony/yaml": "~3.4|~4.0" + "conflict": { + "doctrine/dbal": "<2.13.1", + "symfony/dependency-injection": "<4.4", + "symfony/http-kernel": "<4.4", + "symfony/var-dumper": "<4.4" }, - "type": "symfony-bundle", - "extra": { - "branch-alias": { - "dev-master": "3.x-dev" - } + "provide": { + "psr/cache-implementation": "1.0|2.0", + "psr/simple-cache-implementation": "1.0|2.0", + "symfony/cache-implementation": "1.0|2.0" + }, + "require-dev": { + "cache/integration-tests": "dev-master", + "doctrine/cache": "^1.6|^2.0", + "doctrine/dbal": "^2.13.1|^3.0", + "predis/predis": "^1.1", + "psr/simple-cache": "^1.0|^2.0", + "symfony/config": "^4.4|^5.0|^6.0", + "symfony/dependency-injection": "^4.4|^5.0|^6.0", + "symfony/filesystem": "^4.4|^5.0|^6.0", + "symfony/http-kernel": "^4.4|^5.0|^6.0", + "symfony/messenger": "^4.4|^5.0|^6.0", + "symfony/var-dumper": "^4.4|^5.0|^6.0" }, + "type": "library", "autoload": { "psr-4": { - "Symfony\\Bundle\\MonologBundle\\": "" + "Symfony\\Component\\Cache\\": "" }, "exclude-from-classmap": [ "/Tests/" @@ -2990,55 +2996,73 @@ ], "authors": [ { - "name": "Symfony Community", - "homepage": "http://symfony.com/contributors" + "name": "Nicolas Grekas", + "email": "p@tchwork.com" }, { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony MonologBundle", - "homepage": "http://symfony.com", + "description": "Provides extended PSR-6, PSR-16 (and tags) implementations", + "homepage": "https://symfony.com", "keywords": [ - "log", - "logging" + "caching", + "psr6" + ], + "support": { + "source": "https://github.com/symfony/cache/tree/v5.4.19" + }, + "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": "2019-06-20T12:18:19+00:00" + "time": "2023-01-19T09:49:58+00:00" }, { - "name": "symfony/polyfill-apcu", - "version": "v1.22.1", + "name": "symfony/cache-contracts", + "version": "v2.5.2", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-apcu.git", - "reference": "bc9974e74f8c05f4ceb500b1e0603e36be7d8223" + "url": "https://github.com/symfony/cache-contracts.git", + "reference": "64be4a7acb83b6f2bf6de9a02cee6dad41277ebc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-apcu/zipball/bc9974e74f8c05f4ceb500b1e0603e36be7d8223", - "reference": "bc9974e74f8c05f4ceb500b1e0603e36be7d8223", + "url": "https://api.github.com/repos/symfony/cache-contracts/zipball/64be4a7acb83b6f2bf6de9a02cee6dad41277ebc", + "reference": "64be4a7acb83b6f2bf6de9a02cee6dad41277ebc", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=7.2.5", + "psr/cache": "^1.0|^2.0|^3.0" + }, + "suggest": { + "symfony/cache-implementation": "" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "1.22-dev" + "dev-main": "2.5-dev" }, "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" } }, "autoload": { - "files": [ - "bootstrap.php" - ], "psr-4": { - "Symfony\\Polyfill\\Apcu\\": "" + "Symfony\\Contracts\\Cache\\": "" } }, "notification-url": "https://packagist.org/downloads/", @@ -3055,15 +3079,19 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony polyfill backporting apcu_* functions to lower PHP versions", + "description": "Generic abstractions related to caching", "homepage": "https://symfony.com", "keywords": [ - "apcu", - "compatibility", - "polyfill", - "portable", - "shim" + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" ], + "support": { + "source": "https://github.com/symfony/cache-contracts/tree/v2.5.2" + }, "funding": [ { "url": "https://symfony.com/sponsor", @@ -3078,48 +3106,51 @@ "type": "tidelift" } ], - "time": "2021-01-22T09:19:47+00:00" + "time": "2022-01-02T09:53:40+00:00" }, { - "name": "symfony/polyfill-ctype", - "version": "v1.27.0", + "name": "symfony/config", + "version": "v5.4.36", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-ctype.git", - "reference": "5bbc823adecdae860bb64756d639ecfec17b050a" + "url": "https://github.com/symfony/config.git", + "reference": "0a4f363dc2f13d2f871f917cc563796d9ddc78d1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/5bbc823adecdae860bb64756d639ecfec17b050a", - "reference": "5bbc823adecdae860bb64756d639ecfec17b050a", + "url": "https://api.github.com/repos/symfony/config/zipball/0a4f363dc2f13d2f871f917cc563796d9ddc78d1", + "reference": "0a4f363dc2f13d2f871f917cc563796d9ddc78d1", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1|^3", + "symfony/filesystem": "^4.4|^5.0|^6.0", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-php80": "^1.16", + "symfony/polyfill-php81": "^1.22" }, - "provide": { - "ext-ctype": "*" + "conflict": { + "symfony/finder": "<4.4" + }, + "require-dev": { + "symfony/event-dispatcher": "^4.4|^5.0|^6.0", + "symfony/finder": "^4.4|^5.0|^6.0", + "symfony/messenger": "^4.4|^5.0|^6.0", + "symfony/service-contracts": "^1.1|^2|^3", + "symfony/yaml": "^4.4|^5.0|^6.0" }, "suggest": { - "ext-ctype": "For best performance" + "symfony/yaml": "To use the yaml reference dumper" }, "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.27-dev" - }, - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } - }, "autoload": { - "files": [ - "bootstrap.php" - ], "psr-4": { - "Symfony\\Polyfill\\Ctype\\": "" - } + "Symfony\\Component\\Config\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -3127,24 +3158,18 @@ ], "authors": [ { - "name": "Gert de Pagter", - "email": "BackEndTea@gmail.com" + "name": "Fabien Potencier", + "email": "fabien@symfony.com" }, { "name": "Symfony Community", "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony polyfill for ctype functions", + "description": "Helps you find, load, combine, autofill and validate configuration values of any kind", "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "ctype", - "polyfill", - "portable" - ], "support": { - "source": "https://github.com/symfony/polyfill-ctype/tree/v1.27.0" + "source": "https://github.com/symfony/config/tree/v5.4.36" }, "funding": [ { @@ -3160,48 +3185,62 @@ "type": "tidelift" } ], - "time": "2022-11-03T14:55:06+00:00" + "time": "2024-02-23T16:13:23+00:00" }, { - "name": "symfony/polyfill-intl-icu", - "version": "v1.22.1", + "name": "symfony/console", + "version": "v5.4.36", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-intl-icu.git", - "reference": "af1842919c7e7364aaaa2798b29839e3ba168588" + "url": "https://github.com/symfony/console.git", + "reference": "39f75d9d73d0c11952fdcecf4877b4d0f62a8f6e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-icu/zipball/af1842919c7e7364aaaa2798b29839e3ba168588", - "reference": "af1842919c7e7364aaaa2798b29839e3ba168588", + "url": "https://api.github.com/repos/symfony/console/zipball/39f75d9d73d0c11952fdcecf4877b4d0f62a8f6e", + "reference": "39f75d9d73d0c11952fdcecf4877b4d0f62a8f6e", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1|^3", + "symfony/polyfill-mbstring": "~1.0", + "symfony/polyfill-php73": "^1.9", + "symfony/polyfill-php80": "^1.16", + "symfony/service-contracts": "^1.1|^2|^3", + "symfony/string": "^5.1|^6.0" + }, + "conflict": { + "psr/log": ">=3", + "symfony/dependency-injection": "<4.4", + "symfony/dotenv": "<5.1", + "symfony/event-dispatcher": "<4.4", + "symfony/lock": "<4.4", + "symfony/process": "<4.4" + }, + "provide": { + "psr/log-implementation": "1.0|2.0" + }, + "require-dev": { + "psr/log": "^1|^2", + "symfony/config": "^4.4|^5.0|^6.0", + "symfony/dependency-injection": "^4.4|^5.0|^6.0", + "symfony/event-dispatcher": "^4.4|^5.0|^6.0", + "symfony/lock": "^4.4|^5.0|^6.0", + "symfony/process": "^4.4|^5.0|^6.0", + "symfony/var-dumper": "^4.4|^5.0|^6.0" }, "suggest": { - "ext-intl": "For best performance and support of other locales than \"en\"" + "psr/log": "For using the console logger", + "symfony/event-dispatcher": "", + "symfony/lock": "", + "symfony/process": "" }, "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.22-dev" - }, - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } - }, "autoload": { - "files": [ - "bootstrap.php" - ], "psr-4": { - "Symfony\\Polyfill\\Intl\\Icu\\": "" + "Symfony\\Component\\Console\\": "" }, - "classmap": [ - "Resources/stubs" - ], "exclude-from-classmap": [ "/Tests/" ] @@ -3212,24 +3251,25 @@ ], "authors": [ { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" + "name": "Fabien Potencier", + "email": "fabien@symfony.com" }, { "name": "Symfony Community", "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony polyfill for intl's ICU-related data and classes", + "description": "Eases the creation of beautiful and testable command line interfaces", "homepage": "https://symfony.com", "keywords": [ - "compatibility", - "icu", - "intl", - "polyfill", - "portable", - "shim" + "cli", + "command-line", + "console", + "terminal" ], + "support": { + "source": "https://github.com/symfony/console/tree/v5.4.36" + }, "funding": [ { "url": "https://symfony.com/sponsor", @@ -3244,47 +3284,51 @@ "type": "tidelift" } ], - "time": "2021-01-22T09:19:47+00:00" + "time": "2024-02-20T16:33:57+00:00" }, { - "name": "symfony/polyfill-intl-idn", - "version": "v1.26.0", + "name": "symfony/debug-bundle", + "version": "v5.4.19", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-intl-idn.git", - "reference": "59a8d271f00dd0e4c2e518104cc7963f655a1aa8" + "url": "https://github.com/symfony/debug-bundle.git", + "reference": "40e9ffe230aed8518c80816da27c80433ec220c7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/59a8d271f00dd0e4c2e518104cc7963f655a1aa8", - "reference": "59a8d271f00dd0e4c2e518104cc7963f655a1aa8", + "url": "https://api.github.com/repos/symfony/debug-bundle/zipball/40e9ffe230aed8518c80816da27c80433ec220c7", + "reference": "40e9ffe230aed8518c80816da27c80433ec220c7", "shasum": "" }, "require": { - "php": ">=7.1", - "symfony/polyfill-intl-normalizer": "^1.10", - "symfony/polyfill-php72": "^1.10" + "ext-xml": "*", + "php": ">=7.2.5", + "symfony/http-kernel": "^4.4|^5.0|^6.0", + "symfony/polyfill-php80": "^1.16", + "symfony/twig-bridge": "^4.4|^5.0|^6.0", + "symfony/var-dumper": "^4.4|^5.0|^6.0" }, - "suggest": { - "ext-intl": "For best performance" + "conflict": { + "symfony/config": "<4.4", + "symfony/dependency-injection": "<5.2" }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.26-dev" - }, - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } + "require-dev": { + "symfony/config": "^4.4|^5.0|^6.0", + "symfony/dependency-injection": "^4.4|^5.0|^6.0", + "symfony/web-profiler-bundle": "^4.4|^5.0|^6.0" + }, + "suggest": { + "symfony/config": "For service container configuration", + "symfony/dependency-injection": "For using as a service from the container" }, + "type": "symfony-bundle", "autoload": { - "files": [ - "bootstrap.php" - ], "psr-4": { - "Symfony\\Polyfill\\Intl\\Idn\\": "" - } + "Symfony\\Bundle\\DebugBundle\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -3292,28 +3336,19 @@ ], "authors": [ { - "name": "Laurent Bassin", - "email": "laurent@bassin.info" - }, - { - "name": "Trevor Rowbotham", - "email": "trevor.rowbotham@pm.me" + "name": "Fabien Potencier", + "email": "fabien@symfony.com" }, { "name": "Symfony Community", "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony polyfill for intl's idn_to_ascii and idn_to_utf8 functions", + "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", - "keywords": [ - "compatibility", - "idn", - "intl", - "polyfill", - "portable", - "shim" - ], + "support": { + "source": "https://github.com/symfony/debug-bundle/tree/v5.4.19" + }, "funding": [ { "url": "https://symfony.com/sponsor", @@ -3328,47 +3363,60 @@ "type": "tidelift" } ], - "time": "2022-05-24T11:49:31+00:00" + "time": "2023-01-01T08:32:19+00:00" }, { - "name": "symfony/polyfill-intl-normalizer", - "version": "v1.26.0", + "name": "symfony/dependency-injection", + "version": "v5.4.36", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-intl-normalizer.git", - "reference": "219aa369ceff116e673852dce47c3a41794c14bd" + "url": "https://github.com/symfony/dependency-injection.git", + "reference": "cc1fb237cd0e6da33005062b13b8485deb6e4440" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/219aa369ceff116e673852dce47c3a41794c14bd", - "reference": "219aa369ceff116e673852dce47c3a41794c14bd", + "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/cc1fb237cd0e6da33005062b13b8485deb6e4440", + "reference": "cc1fb237cd0e6da33005062b13b8485deb6e4440", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=7.2.5", + "psr/container": "^1.1.1", + "symfony/deprecation-contracts": "^2.1|^3", + "symfony/polyfill-php80": "^1.16", + "symfony/polyfill-php81": "^1.22", + "symfony/service-contracts": "^1.1.6|^2" + }, + "conflict": { + "ext-psr": "<1.1|>=2", + "symfony/config": "<5.3", + "symfony/finder": "<4.4", + "symfony/proxy-manager-bridge": "<4.4", + "symfony/yaml": "<4.4.26" + }, + "provide": { + "psr/container-implementation": "1.0", + "symfony/service-implementation": "1.0|2.0" + }, + "require-dev": { + "symfony/config": "^5.3|^6.0", + "symfony/expression-language": "^4.4|^5.0|^6.0", + "symfony/yaml": "^4.4.26|^5.0|^6.0" }, "suggest": { - "ext-intl": "For best performance" + "symfony/config": "", + "symfony/expression-language": "For using expressions in service container configuration", + "symfony/finder": "For using double-star glob patterns or when GLOB_BRACE portability is required", + "symfony/proxy-manager-bridge": "Generate service proxies to lazy load them", + "symfony/yaml": "" }, "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.26-dev" - }, - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } - }, "autoload": { - "files": [ - "bootstrap.php" - ], "psr-4": { - "Symfony\\Polyfill\\Intl\\Normalizer\\": "" + "Symfony\\Component\\DependencyInjection\\": "" }, - "classmap": [ - "Resources/stubs" + "exclude-from-classmap": [ + "/Tests/" ] }, "notification-url": "https://packagist.org/downloads/", @@ -3377,24 +3425,19 @@ ], "authors": [ { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" + "name": "Fabien Potencier", + "email": "fabien@symfony.com" }, { "name": "Symfony Community", "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony polyfill for intl's Normalizer class and related functions", + "description": "Allows you to standardize and centralize the way objects are constructed in your application", "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "intl", - "normalizer", - "polyfill", - "portable", - "shim" - ], + "support": { + "source": "https://github.com/symfony/dependency-injection/tree/v5.4.36" + }, "funding": [ { "url": "https://symfony.com/sponsor", @@ -3409,35 +3452,40 @@ "type": "tidelift" } ], - "time": "2022-05-24T11:49:31+00:00" + "time": "2024-02-22T18:43:31+00:00" }, { - "name": "symfony/polyfill-php70", - "version": "v1.20.0", + "name": "symfony/deprecation-contracts", + "version": "v2.5.2", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-php70.git", - "reference": "5f03a781d984aae42cebd18e7912fa80f02ee644" + "url": "https://github.com/symfony/deprecation-contracts.git", + "reference": "e8b495ea28c1d97b5e0c121748d6f9b53d075c66" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php70/zipball/5f03a781d984aae42cebd18e7912fa80f02ee644", - "reference": "5f03a781d984aae42cebd18e7912fa80f02ee644", + "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/e8b495ea28c1d97b5e0c121748d6f9b53d075c66", + "reference": "e8b495ea28c1d97b5e0c121748d6f9b53d075c66", "shasum": "" }, "require": { "php": ">=7.1" }, - "type": "metapackage", + "type": "library", "extra": { "branch-alias": { - "dev-main": "1.20-dev" + "dev-main": "2.5-dev" }, "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" } }, + "autoload": { + "files": [ + "function.php" + ] + }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" @@ -3452,14 +3500,11 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony polyfill backporting some PHP 7.0+ features to lower PHP versions", + "description": "A generic function and convention to trigger deprecation notices", "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "polyfill", - "portable", - "shim" - ], + "support": { + "source": "https://github.com/symfony/deprecation-contracts/tree/v2.5.2" + }, "funding": [ { "url": "https://symfony.com/sponsor", @@ -3474,42 +3519,89 @@ "type": "tidelift" } ], - "time": "2020-10-23T14:02:19+00:00" + "time": "2022-01-02T09:53:40+00:00" }, { - "name": "symfony/polyfill-php72", - "version": "v1.26.0", + "name": "symfony/doctrine-bridge", + "version": "v5.4.19", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-php72.git", - "reference": "bf44a9fd41feaac72b074de600314a93e2ae78e2" + "url": "https://github.com/symfony/doctrine-bridge.git", + "reference": "359ba96a1e494f1fc08b36d51a74d2fe01d68e68" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/bf44a9fd41feaac72b074de600314a93e2ae78e2", - "reference": "bf44a9fd41feaac72b074de600314a93e2ae78e2", + "url": "https://api.github.com/repos/symfony/doctrine-bridge/zipball/359ba96a1e494f1fc08b36d51a74d2fe01d68e68", + "reference": "359ba96a1e494f1fc08b36d51a74d2fe01d68e68", "shasum": "" }, "require": { - "php": ">=7.1" + "doctrine/event-manager": "~1.0", + "doctrine/persistence": "^2|^3", + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1|^3", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-mbstring": "~1.0", + "symfony/polyfill-php80": "^1.16", + "symfony/service-contracts": "^1.1|^2|^3" }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.26-dev" - }, - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } + "conflict": { + "doctrine/dbal": "<2.13.1", + "doctrine/lexer": "<1.1", + "doctrine/orm": "<2.7.4", + "phpunit/phpunit": "<5.4.3", + "symfony/cache": "<5.4", + "symfony/dependency-injection": "<4.4", + "symfony/form": "<5.1", + "symfony/http-kernel": "<5", + "symfony/messenger": "<4.4", + "symfony/property-info": "<5", + "symfony/proxy-manager-bridge": "<4.4.19", + "symfony/security-bundle": "<5", + "symfony/security-core": "<5.3", + "symfony/validator": "<5.2" + }, + "require-dev": { + "doctrine/annotations": "^1.10.4|^2", + "doctrine/collections": "^1.0|^2.0", + "doctrine/data-fixtures": "^1.1", + "doctrine/dbal": "^2.13.1|^3.0", + "doctrine/orm": "^2.7.4", + "psr/log": "^1|^2|^3", + "symfony/cache": "^5.4|^6.0", + "symfony/config": "^4.4|^5.0|^6.0", + "symfony/dependency-injection": "^4.4|^5.0|^6.0", + "symfony/doctrine-messenger": "^5.1|^6.0", + "symfony/expression-language": "^4.4|^5.0|^6.0", + "symfony/form": "^5.4.9|^6.0.9", + "symfony/http-kernel": "^5.0|^6.0", + "symfony/messenger": "^4.4|^5.0|^6.0", + "symfony/property-access": "^4.4|^5.0|^6.0", + "symfony/property-info": "^5.0|^6.0", + "symfony/proxy-manager-bridge": "^4.4|^5.0|^6.0", + "symfony/security-core": "^5.3|^6.0", + "symfony/stopwatch": "^4.4|^5.0|^6.0", + "symfony/translation": "^4.4|^5.0|^6.0", + "symfony/uid": "^5.1|^6.0", + "symfony/validator": "^5.2|^6.0", + "symfony/var-dumper": "^4.4|^5.0|^6.0" + }, + "suggest": { + "doctrine/data-fixtures": "", + "doctrine/dbal": "", + "doctrine/orm": "", + "symfony/form": "", + "symfony/property-info": "", + "symfony/validator": "" }, + "type": "symfony-bridge", "autoload": { - "files": [ - "bootstrap.php" - ], "psr-4": { - "Symfony\\Polyfill\\Php72\\": "" - } + "Symfony\\Bridge\\Doctrine\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -3517,22 +3609,19 @@ ], "authors": [ { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" + "name": "Fabien Potencier", + "email": "fabien@symfony.com" }, { "name": "Symfony Community", "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony polyfill backporting some PHP 7.2+ features to lower PHP versions", + "description": "Provides integration for Doctrine with various Symfony components", "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "polyfill", - "portable", - "shim" - ], + "support": { + "source": "https://github.com/symfony/doctrine-bridge/tree/v5.4.19" + }, "funding": [ { "url": "https://symfony.com/sponsor", @@ -3547,43 +3636,43 @@ "type": "tidelift" } ], - "time": "2022-05-24T11:49:31+00:00" + "time": "2023-01-06T12:33:31+00:00" }, { - "name": "symfony/service-contracts", - "version": "v1.1.9", + "name": "symfony/error-handler", + "version": "v5.4.36", "source": { "type": "git", - "url": "https://github.com/symfony/service-contracts.git", - "reference": "b776d18b303a39f56c63747bcb977ad4b27aca26" + "url": "https://github.com/symfony/error-handler.git", + "reference": "90b1d7799bfc1b3ed5f902e8b334eeb7dba537a1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/service-contracts/zipball/b776d18b303a39f56c63747bcb977ad4b27aca26", - "reference": "b776d18b303a39f56c63747bcb977ad4b27aca26", + "url": "https://api.github.com/repos/symfony/error-handler/zipball/90b1d7799bfc1b3ed5f902e8b334eeb7dba537a1", + "reference": "90b1d7799bfc1b3ed5f902e8b334eeb7dba537a1", "shasum": "" }, "require": { - "php": ">=7.1.3", - "psr/container": "^1.0" + "php": ">=7.2.5", + "psr/log": "^1|^2|^3", + "symfony/var-dumper": "^4.4|^5.0|^6.0" }, - "suggest": { - "symfony/service-implementation": "" + "require-dev": { + "symfony/deprecation-contracts": "^2.1|^3", + "symfony/http-kernel": "^4.4|^5.0|^6.0", + "symfony/serializer": "^4.4|^5.0|^6.0" }, + "bin": [ + "Resources/bin/patch-type-declarations" + ], "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.1-dev" - }, - "thanks": { - "name": "symfony/contracts", - "url": "https://github.com/symfony/contracts" - } - }, "autoload": { "psr-4": { - "Symfony\\Contracts\\Service\\": "" - } + "Symfony\\Component\\ErrorHandler\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -3591,24 +3680,19 @@ ], "authors": [ { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" + "name": "Fabien Potencier", + "email": "fabien@symfony.com" }, { "name": "Symfony Community", "homepage": "https://symfony.com/contributors" } ], - "description": "Generic abstractions related to writing services", + "description": "Provides tools to manage errors and ease debugging PHP code", "homepage": "https://symfony.com", - "keywords": [ - "abstractions", - "contracts", - "decoupling", - "interfaces", - "interoperability", - "standards" - ], + "support": { + "source": "https://github.com/symfony/error-handler/tree/v5.4.36" + }, "funding": [ { "url": "https://symfony.com/sponsor", @@ -3623,200 +3707,128 @@ "type": "tidelift" } ], - "time": "2020-07-06T13:19:58+00:00" + "time": "2024-02-22T11:40:53+00:00" }, { - "name": "symfony/swiftmailer-bundle", - "version": "v2.6.7", + "name": "symfony/event-dispatcher", + "version": "v5.4.35", "source": { "type": "git", - "url": "https://github.com/symfony/swiftmailer-bundle.git", - "reference": "c4808f5169efc05567be983909d00f00521c53ec" + "url": "https://github.com/symfony/event-dispatcher.git", + "reference": "7a69a85c7ea5bdd1e875806a99c51a87d3a74b38" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/swiftmailer-bundle/zipball/c4808f5169efc05567be983909d00f00521c53ec", - "reference": "c4808f5169efc05567be983909d00f00521c53ec", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/7a69a85c7ea5bdd1e875806a99c51a87d3a74b38", + "reference": "7a69a85c7ea5bdd1e875806a99c51a87d3a74b38", "shasum": "" }, "require": { - "php": ">=5.3.2", - "swiftmailer/swiftmailer": "~4.2|~5.0", - "symfony/config": "~2.7|~3.0", - "symfony/dependency-injection": "~2.7|~3.0", - "symfony/http-kernel": "~2.7|~3.0" + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1|^3", + "symfony/event-dispatcher-contracts": "^2|^3", + "symfony/polyfill-php80": "^1.16" + }, + "conflict": { + "symfony/dependency-injection": "<4.4" + }, + "provide": { + "psr/event-dispatcher-implementation": "1.0", + "symfony/event-dispatcher-implementation": "2.0" }, "require-dev": { - "symfony/console": "~2.7|~3.0", - "symfony/framework-bundle": "~2.7|~3.0", - "symfony/phpunit-bridge": "~3.3@dev", - "symfony/yaml": "~2.7|~3.0" + "psr/log": "^1|^2|^3", + "symfony/config": "^4.4|^5.0|^6.0", + "symfony/dependency-injection": "^4.4|^5.0|^6.0", + "symfony/error-handler": "^4.4|^5.0|^6.0", + "symfony/expression-language": "^4.4|^5.0|^6.0", + "symfony/http-foundation": "^4.4|^5.0|^6.0", + "symfony/service-contracts": "^1.1|^2|^3", + "symfony/stopwatch": "^4.4|^5.0|^6.0" }, "suggest": { - "psr/log": "Allows logging" - }, - "type": "symfony-bundle", - "extra": { - "branch-alias": { - "dev-master": "2.6-dev" - } + "symfony/dependency-injection": "", + "symfony/http-kernel": "" }, + "type": "library", "autoload": { "psr-4": { - "Symfony\\Bundle\\SwiftmailerBundle\\": "" - } + "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": "http://symfony.com/contributors" + "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/v5.4.35" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" }, { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" } ], - "description": "Symfony SwiftmailerBundle", - "homepage": "http://symfony.com", - "abandoned": "symfony/mailer", - "time": "2017-10-19T01:06:41+00:00" + "time": "2024-01-23T13:51:25+00:00" }, { - "name": "symfony/symfony", - "version": "v3.4.49", + "name": "symfony/event-dispatcher-contracts", + "version": "v2.5.2", "source": { "type": "git", - "url": "https://github.com/symfony/symfony.git", - "reference": "ba0e346e3ad11de4a307fe4fa2452a3656dcc17b" + "url": "https://github.com/symfony/event-dispatcher-contracts.git", + "reference": "f98b54df6ad059855739db6fcbc2d36995283fe1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/symfony/zipball/ba0e346e3ad11de4a307fe4fa2452a3656dcc17b", - "reference": "ba0e346e3ad11de4a307fe4fa2452a3656dcc17b", + "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/f98b54df6ad059855739db6fcbc2d36995283fe1", + "reference": "f98b54df6ad059855739db6fcbc2d36995283fe1", "shasum": "" }, "require": { - "doctrine/common": "~2.4", - "ext-xml": "*", - "fig/link-util": "^1.0", - "php": "^5.5.9|>=7.0.8", - "psr/cache": "~1.0", - "psr/container": "^1.0", - "psr/link": "^1.0", - "psr/log": "~1.0", - "psr/simple-cache": "^1.0", - "symfony/polyfill-apcu": "~1.1", - "symfony/polyfill-ctype": "~1.8", - "symfony/polyfill-intl-icu": "~1.0", - "symfony/polyfill-mbstring": "~1.0", - "symfony/polyfill-php56": "~1.0", - "symfony/polyfill-php70": "~1.6", - "twig/twig": "^1.41|^2.10" - }, - "conflict": { - "monolog/monolog": ">=2", - "phpdocumentor/reflection-docblock": "<3.0||>=3.2.0,<3.2.2", - "phpdocumentor/type-resolver": "<0.3.0", - "phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0" - }, - "provide": { - "psr/cache-implementation": "1.0", - "psr/container-implementation": "1.0", - "psr/log-implementation": "1.0", - "psr/simple-cache-implementation": "1.0" + "php": ">=7.2.5", + "psr/event-dispatcher": "^1" }, - "replace": { - "symfony/asset": "self.version", - "symfony/browser-kit": "self.version", - "symfony/cache": "self.version", - "symfony/class-loader": "self.version", - "symfony/config": "self.version", - "symfony/console": "self.version", - "symfony/css-selector": "self.version", - "symfony/debug": "self.version", - "symfony/debug-bundle": "self.version", - "symfony/dependency-injection": "self.version", - "symfony/doctrine-bridge": "self.version", - "symfony/dom-crawler": "self.version", - "symfony/dotenv": "self.version", - "symfony/event-dispatcher": "self.version", - "symfony/expression-language": "self.version", - "symfony/filesystem": "self.version", - "symfony/finder": "self.version", - "symfony/form": "self.version", - "symfony/framework-bundle": "self.version", - "symfony/http-foundation": "self.version", - "symfony/http-kernel": "self.version", - "symfony/inflector": "self.version", - "symfony/intl": "self.version", - "symfony/ldap": "self.version", - "symfony/lock": "self.version", - "symfony/monolog-bridge": "self.version", - "symfony/options-resolver": "self.version", - "symfony/process": "self.version", - "symfony/property-access": "self.version", - "symfony/property-info": "self.version", - "symfony/proxy-manager-bridge": "self.version", - "symfony/routing": "self.version", - "symfony/security": "self.version", - "symfony/security-bundle": "self.version", - "symfony/security-core": "self.version", - "symfony/security-csrf": "self.version", - "symfony/security-guard": "self.version", - "symfony/security-http": "self.version", - "symfony/serializer": "self.version", - "symfony/stopwatch": "self.version", - "symfony/templating": "self.version", - "symfony/translation": "self.version", - "symfony/twig-bridge": "self.version", - "symfony/twig-bundle": "self.version", - "symfony/validator": "self.version", - "symfony/var-dumper": "self.version", - "symfony/web-link": "self.version", - "symfony/web-profiler-bundle": "self.version", - "symfony/web-server-bundle": "self.version", - "symfony/workflow": "self.version", - "symfony/yaml": "self.version" - }, - "require-dev": { - "cache/integration-tests": "dev-master", - "doctrine/annotations": "~1.0", - "doctrine/cache": "~1.6", - "doctrine/data-fixtures": "^1.1", - "doctrine/dbal": "~2.4", - "doctrine/doctrine-bundle": "~1.4", - "doctrine/orm": "~2.4,>=2.4.5", - "egulias/email-validator": "~1.2,>=1.2.8|~2.0", - "monolog/monolog": "~1.11", - "ocramius/proxy-manager": "~0.4|~1.0|~2.0", - "phpdocumentor/reflection-docblock": "^3.0|^4.0", - "predis/predis": "~1.0", - "symfony/phpunit-bridge": "^5.2", - "symfony/security-acl": "~2.8|~3.0" + "suggest": { + "symfony/event-dispatcher-implementation": "" }, "type": "library", "extra": { - "branch-version": "3.4" + "branch-alias": { + "dev-main": "2.5-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } }, "autoload": { "psr-4": { - "Symfony\\Bundle\\": "src/Symfony/Bundle/", - "Symfony\\Component\\": "src/Symfony/Component/", - "Symfony\\Bridge\\Twig\\": "src/Symfony/Bridge/Twig/", - "Symfony\\Bridge\\Monolog\\": "src/Symfony/Bridge/Monolog/", - "Symfony\\Bridge\\Doctrine\\": "src/Symfony/Bridge/Doctrine/", - "Symfony\\Bridge\\ProxyManager\\": "src/Symfony/Bridge/ProxyManager/" - }, - "classmap": [ - "src/Symfony/Component/Intl/Resources/stubs" - ], - "exclude-from-classmap": [ - "**/Tests/" - ] + "Symfony\\Contracts\\EventDispatcher\\": "" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -3824,19 +3836,27 @@ ], "authors": [ { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" + "name": "Nicolas Grekas", + "email": "p@tchwork.com" }, { "name": "Symfony Community", "homepage": "https://symfony.com/contributors" } ], - "description": "The Symfony PHP framework", + "description": "Generic abstractions related to dispatching event", "homepage": "https://symfony.com", "keywords": [ - "framework" + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" ], + "support": { + "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v2.5.2" + }, "funding": [ { "url": "https://symfony.com/sponsor", @@ -3851,45 +3871,35 @@ "type": "tidelift" } ], - "time": "2021-05-19T12:07:19+00:00" + "time": "2022-01-02T09:53:40+00:00" }, { - "name": "twig/extensions", - "version": "v1.5.4", + "name": "symfony/expression-language", + "version": "v5.4.19", "source": { "type": "git", - "url": "https://github.com/twigphp/Twig-extensions.git", - "reference": "57873c8b0c1be51caa47df2cdb824490beb16202" + "url": "https://github.com/symfony/expression-language.git", + "reference": "5db17a4a1c41e2d43d9b84c2eb98a5f63b11c646" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/twigphp/Twig-extensions/zipball/57873c8b0c1be51caa47df2cdb824490beb16202", - "reference": "57873c8b0c1be51caa47df2cdb824490beb16202", + "url": "https://api.github.com/repos/symfony/expression-language/zipball/5db17a4a1c41e2d43d9b84c2eb98a5f63b11c646", + "reference": "5db17a4a1c41e2d43d9b84c2eb98a5f63b11c646", "shasum": "" }, "require": { - "twig/twig": "^1.27|^2.0" - }, - "require-dev": { - "symfony/phpunit-bridge": "^3.4", - "symfony/translation": "^2.7|^3.4" - }, - "suggest": { - "symfony/translation": "Allow the time_diff output to be translated" + "php": ">=7.2.5", + "symfony/cache": "^4.4|^5.0|^6.0", + "symfony/service-contracts": "^1.1|^2|^3" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.5-dev" - } - }, "autoload": { - "psr-0": { - "Twig_Extensions_": "lib/" - }, "psr-4": { - "Twig\\Extensions\\": "src/" - } + "Symfony\\Component\\ExpressionLanguage\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -3899,127 +3909,124 @@ { "name": "Fabien Potencier", "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "Common additional features for Twig that do not directly belong in core", - "keywords": [ - "i18n", - "text" + "description": "Provides an engine that can compile and evaluate expressions", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/expression-language/tree/v5.4.19" + }, + "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" + } ], - "abandoned": true, - "time": "2018-12-05T18:34:18+00:00" + "time": "2023-01-14T19:14:44+00:00" }, { - "name": "twig/twig", - "version": "v2.15.3", + "name": "symfony/filesystem", + "version": "v5.4.35", "source": { "type": "git", - "url": "https://github.com/twigphp/Twig.git", - "reference": "ab402673db8746cb3a4c46f3869d6253699f614a" + "url": "https://github.com/symfony/filesystem.git", + "reference": "5a553607d4ffbfa9c0ab62facadea296c9db7086" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/twigphp/Twig/zipball/ab402673db8746cb3a4c46f3869d6253699f614a", - "reference": "ab402673db8746cb3a4c46f3869d6253699f614a", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/5a553607d4ffbfa9c0ab62facadea296c9db7086", + "reference": "5a553607d4ffbfa9c0ab62facadea296c9db7086", "shasum": "" }, "require": { - "php": ">=7.1.3", - "symfony/polyfill-ctype": "^1.8", - "symfony/polyfill-mbstring": "^1.3", - "symfony/polyfill-php72": "^1.8" - }, - "require-dev": { - "psr/container": "^1.0", - "symfony/phpunit-bridge": "^4.4.9|^5.0.9|^6.0" + "php": ">=7.2.5", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-mbstring": "~1.8", + "symfony/polyfill-php80": "^1.16" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.15-dev" - } - }, "autoload": { - "psr-0": { - "Twig_": "lib/" - }, "psr-4": { - "Twig\\": "src/" - } + "Symfony\\Component\\Filesystem\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { "name": "Fabien Potencier", - "email": "fabien@symfony.com", - "homepage": "http://fabien.potencier.org", - "role": "Lead Developer" - }, - { - "name": "Twig Team", - "role": "Contributors" + "email": "fabien@symfony.com" }, { - "name": "Armin Ronacher", - "email": "armin.ronacher@active-4.com", - "role": "Project Founder" + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "Twig, the flexible, fast, and secure template language for PHP", - "homepage": "https://twig.symfony.com", - "keywords": [ - "templating" - ], + "description": "Provides basic utilities for the filesystem", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/filesystem/tree/v5.4.35" + }, "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, { "url": "https://github.com/fabpot", "type": "github" }, { - "url": "https://tidelift.com/funding/github/packagist/twig/twig", + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2022-09-28T08:40:08+00:00" + "time": "2024-01-23T13:51:25+00:00" }, { - "name": "webmozart/assert", - "version": "1.11.0", + "name": "symfony/finder", + "version": "v5.4.35", "source": { "type": "git", - "url": "https://github.com/webmozarts/assert.git", - "reference": "11cb2199493b2f8a3b53e7f19068fc6aac760991" + "url": "https://github.com/symfony/finder.git", + "reference": "abe6d6f77d9465fed3cd2d029b29d03b56b56435" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/webmozarts/assert/zipball/11cb2199493b2f8a3b53e7f19068fc6aac760991", - "reference": "11cb2199493b2f8a3b53e7f19068fc6aac760991", + "url": "https://api.github.com/repos/symfony/finder/zipball/abe6d6f77d9465fed3cd2d029b29d03b56b56435", + "reference": "abe6d6f77d9465fed3cd2d029b29d03b56b56435", "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" + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1|^3", + "symfony/polyfill-php80": "^1.16" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.10-dev" - } - }, "autoload": { "psr-4": { - "Webmozart\\Assert\\": "src/" - } + "Symfony\\Component\\Finder\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -4027,181 +4034,328 @@ ], "authors": [ { - "name": "Bernhard Schussek", - "email": "bschussek@gmail.com" + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "Assertions to validate method input/output with nice error messages.", - "keywords": [ - "assert", - "check", - "validate" - ], + "description": "Finds files and directories via an intuitive fluent interface", + "homepage": "https://symfony.com", "support": { - "issues": "https://github.com/webmozarts/assert/issues", - "source": "https://github.com/webmozarts/assert/tree/1.11.0" + "source": "https://github.com/symfony/finder/tree/v5.4.35" }, - "time": "2022-06-03T18:03:27+00:00" + "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": "2024-01-23T13:51:25+00:00" }, { - "name": "zendframework/zend-code", - "version": "3.3.2", + "name": "symfony/form", + "version": "v5.4.19", "source": { "type": "git", - "url": "https://github.com/zendframework/zend-code.git", - "reference": "936fa7ad4d53897ea3e3eb41b5b760828246a20b" + "url": "https://github.com/symfony/form.git", + "reference": "c29e6cccee469ca93db2dbc02a39c29312c5e362" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/zendframework/zend-code/zipball/936fa7ad4d53897ea3e3eb41b5b760828246a20b", - "reference": "936fa7ad4d53897ea3e3eb41b5b760828246a20b", + "url": "https://api.github.com/repos/symfony/form/zipball/c29e6cccee469ca93db2dbc02a39c29312c5e362", + "reference": "c29e6cccee469ca93db2dbc02a39c29312c5e362", "shasum": "" }, "require": { - "php": "^7.1", - "zendframework/zend-eventmanager": "^2.6 || ^3.0" + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1|^3", + "symfony/event-dispatcher": "^4.4|^5.0|^6.0", + "symfony/options-resolver": "^5.1|^6.0", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-intl-icu": "^1.21", + "symfony/polyfill-mbstring": "~1.0", + "symfony/polyfill-php80": "^1.16", + "symfony/polyfill-php81": "^1.23", + "symfony/property-access": "^5.0.8|^6.0", + "symfony/service-contracts": "^1.1|^2|^3" + }, + "conflict": { + "phpunit/phpunit": "<5.4.3", + "symfony/console": "<4.4", + "symfony/dependency-injection": "<4.4", + "symfony/doctrine-bridge": "<4.4", + "symfony/error-handler": "<4.4.5", + "symfony/framework-bundle": "<4.4", + "symfony/http-kernel": "<4.4", + "symfony/translation": "<4.4", + "symfony/translation-contracts": "<1.1.7", + "symfony/twig-bridge": "<4.4" }, "require-dev": { - "doctrine/annotations": "^1.0", - "ext-phar": "*", - "phpunit/phpunit": "^7.5.15", - "zendframework/zend-coding-standard": "^1.0", - "zendframework/zend-stdlib": "^2.7 || ^3.0" + "doctrine/collections": "^1.0|^2.0", + "symfony/config": "^4.4|^5.0|^6.0", + "symfony/console": "^5.4|^6.0", + "symfony/dependency-injection": "^4.4|^5.0|^6.0", + "symfony/expression-language": "^4.4|^5.0|^6.0", + "symfony/http-foundation": "^4.4|^5.0|^6.0", + "symfony/http-kernel": "^4.4|^5.0|^6.0", + "symfony/intl": "^4.4|^5.0|^6.0", + "symfony/security-csrf": "^4.4|^5.0|^6.0", + "symfony/translation": "^4.4|^5.0|^6.0", + "symfony/uid": "^5.1|^6.0", + "symfony/validator": "^4.4.17|^5.1.9|^6.0", + "symfony/var-dumper": "^4.4|^5.0|^6.0" }, "suggest": { - "doctrine/annotations": "Doctrine\\Common\\Annotations >=1.0 for annotation features", - "zendframework/zend-stdlib": "Zend\\Stdlib component" + "symfony/security-csrf": "For protecting forms against CSRF attacks.", + "symfony/twig-bridge": "For templating with Twig.", + "symfony/validator": "For form validation." }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.3.x-dev", - "dev-develop": "3.4.x-dev" - } - }, "autoload": { "psr-4": { - "Zend\\Code\\": "src/" - } + "Symfony\\Component\\Form\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], - "description": "Extensions to the PHP Reflection API, static code scanning, and code generation", - "keywords": [ - "ZendFramework", - "code", - "zf" + "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/v5.4.19" + }, + "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" + } ], - "abandoned": "laminas/laminas-code", - "time": "2019-08-31T14:14:34+00:00" + "time": "2023-01-01T08:32:19+00:00" }, { - "name": "zendframework/zend-eventmanager", - "version": "3.2.1", + "name": "symfony/framework-bundle", + "version": "v5.4.36", "source": { "type": "git", - "url": "https://github.com/zendframework/zend-eventmanager.git", - "reference": "a5e2583a211f73604691586b8406ff7296a946dd" + "url": "https://github.com/symfony/framework-bundle.git", + "reference": "224f69093099a507cf84d8c48ceb29e8653a5896" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/zendframework/zend-eventmanager/zipball/a5e2583a211f73604691586b8406ff7296a946dd", - "reference": "a5e2583a211f73604691586b8406ff7296a946dd", + "url": "https://api.github.com/repos/symfony/framework-bundle/zipball/224f69093099a507cf84d8c48ceb29e8653a5896", + "reference": "224f69093099a507cf84d8c48ceb29e8653a5896", "shasum": "" }, "require": { - "php": "^5.6 || ^7.0" + "ext-xml": "*", + "php": ">=7.2.5", + "symfony/cache": "^5.2|^6.0", + "symfony/config": "^5.3|^6.0", + "symfony/dependency-injection": "^5.4.5|^6.0.5", + "symfony/deprecation-contracts": "^2.1|^3", + "symfony/error-handler": "^4.4.1|^5.0.1|^6.0", + "symfony/event-dispatcher": "^5.1|^6.0", + "symfony/filesystem": "^4.4|^5.0|^6.0", + "symfony/finder": "^4.4|^5.0|^6.0", + "symfony/http-foundation": "^5.4.24|^6.2.11", + "symfony/http-kernel": "^5.4|^6.0", + "symfony/polyfill-mbstring": "~1.0", + "symfony/polyfill-php80": "^1.16", + "symfony/polyfill-php81": "^1.22", + "symfony/routing": "^5.3|^6.0" + }, + "conflict": { + "doctrine/annotations": "<1.13.1", + "doctrine/cache": "<1.11", + "doctrine/persistence": "<1.3", + "phpdocumentor/reflection-docblock": "<3.2.2", + "phpdocumentor/type-resolver": "<1.4.0", + "symfony/asset": "<5.3", + "symfony/console": "<5.2.5|>=7.0", + "symfony/dom-crawler": "<4.4", + "symfony/dotenv": "<5.1", + "symfony/form": "<5.2", + "symfony/http-client": "<4.4", + "symfony/lock": "<4.4", + "symfony/mailer": "<5.2", + "symfony/messenger": "<5.4", + "symfony/mime": "<4.4", + "symfony/property-access": "<5.3", + "symfony/property-info": "<4.4", + "symfony/security-csrf": "<5.3", + "symfony/serializer": "<5.2", + "symfony/service-contracts": ">=3.0", + "symfony/stopwatch": "<4.4", + "symfony/translation": "<5.3", + "symfony/twig-bridge": "<4.4", + "symfony/twig-bundle": "<4.4", + "symfony/validator": "<5.3.11", + "symfony/web-profiler-bundle": "<4.4", + "symfony/workflow": "<5.2" }, "require-dev": { - "athletic/athletic": "^0.1", - "container-interop/container-interop": "^1.1.0", - "phpunit/phpunit": "^5.7.27 || ^6.5.8 || ^7.1.2", - "zendframework/zend-coding-standard": "~1.0.0", - "zendframework/zend-stdlib": "^2.7.3 || ^3.0" + "doctrine/annotations": "^1.13.1|^2", + "doctrine/cache": "^1.11|^2.0", + "doctrine/persistence": "^1.3|^2|^3", + "phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0", + "symfony/asset": "^5.3|^6.0", + "symfony/browser-kit": "^5.4|^6.0", + "symfony/console": "^5.4.9|^6.0.9", + "symfony/css-selector": "^4.4|^5.0|^6.0", + "symfony/dom-crawler": "^4.4.30|^5.3.7|^6.0", + "symfony/dotenv": "^5.1|^6.0", + "symfony/expression-language": "^4.4|^5.0|^6.0", + "symfony/form": "^5.2|^6.0", + "symfony/http-client": "^4.4|^5.0|^6.0", + "symfony/lock": "^4.4|^5.0|^6.0", + "symfony/mailer": "^5.2|^6.0", + "symfony/messenger": "^5.4|^6.0", + "symfony/mime": "^4.4|^5.0|^6.0", + "symfony/notifier": "^5.4|^6.0", + "symfony/polyfill-intl-icu": "~1.0", + "symfony/process": "^4.4|^5.0|^6.0", + "symfony/property-info": "^4.4|^5.0|^6.0", + "symfony/rate-limiter": "^5.2|^6.0", + "symfony/security-bundle": "^5.4|^6.0", + "symfony/serializer": "^5.4|^6.0", + "symfony/stopwatch": "^4.4|^5.0|^6.0", + "symfony/string": "^5.0|^6.0", + "symfony/translation": "^5.3|^6.0", + "symfony/twig-bundle": "^4.4|^5.0|^6.0", + "symfony/validator": "^5.3.11|^6.0", + "symfony/web-link": "^4.4|^5.0|^6.0", + "symfony/workflow": "^5.2|^6.0", + "symfony/yaml": "^4.4|^5.0|^6.0", + "twig/twig": "^2.10|^3.0.4" }, "suggest": { - "container-interop/container-interop": "^1.1.0, to use the lazy listeners feature", - "zendframework/zend-stdlib": "^2.7.3 || ^3.0, to use the FilterChain feature" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.2-dev", - "dev-develop": "3.3-dev" - } + "ext-apcu": "For best performance of the system caches", + "symfony/console": "For using the console commands", + "symfony/form": "For using forms", + "symfony/property-info": "For using the property_info service", + "symfony/serializer": "For using the serializer service", + "symfony/validator": "For using validation", + "symfony/web-link": "For using web links, features such as preloading, prefetching or prerendering", + "symfony/yaml": "For using the debug:config and lint:yaml commands" }, + "type": "symfony-bundle", "autoload": { "psr-4": { - "Zend\\EventManager\\": "src/" - } + "Symfony\\Bundle\\FrameworkBundle\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], - "description": "Trigger and listen to events within a PHP application", - "homepage": "https://github.com/zendframework/zend-eventmanager", - "keywords": [ - "event", - "eventmanager", - "events", - "zf2" + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } ], - "abandoned": "laminas/laminas-eventmanager", - "time": "2018-04-25T15:33:34+00:00" - } - ], - "packages-dev": [ + "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/v5.4.36" + }, + "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": "2024-02-20T14:48:43+00:00" + }, { - "name": "behat/behat", - "version": "v3.5.0", + "name": "symfony/http-foundation", + "version": "v5.4.35", "source": { "type": "git", - "url": "https://github.com/Behat/Behat.git", - "reference": "e4bce688be0c2029dc1700e46058d86428c63cab" + "url": "https://github.com/symfony/http-foundation.git", + "reference": "f2ab692a22aef1cd54beb893aa0068bdfb093928" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Behat/Behat/zipball/e4bce688be0c2029dc1700e46058d86428c63cab", - "reference": "e4bce688be0c2029dc1700e46058d86428c63cab", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/f2ab692a22aef1cd54beb893aa0068bdfb093928", + "reference": "f2ab692a22aef1cd54beb893aa0068bdfb093928", "shasum": "" }, "require": { - "behat/gherkin": "^4.5.1", - "behat/transliterator": "^1.2", - "container-interop/container-interop": "^1.2", - "ext-mbstring": "*", - "php": ">=5.3.3", - "psr/container": "^1.0", - "symfony/class-loader": "~2.1||~3.0", - "symfony/config": "~2.3||~3.0||~4.0", - "symfony/console": "~2.7.40||^2.8.33||~3.3.15||^3.4.3||^4.0.3", - "symfony/dependency-injection": "~2.1||~3.0||~4.0", - "symfony/event-dispatcher": "~2.1||~3.0||~4.0", - "symfony/translation": "~2.3||~3.0||~4.0", - "symfony/yaml": "~2.1||~3.0||~4.0" + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1|^3", + "symfony/polyfill-mbstring": "~1.1", + "symfony/polyfill-php80": "^1.16" }, "require-dev": { - "herrera-io/box": "~1.6.1", - "phpunit/phpunit": "^4.8.36|^6.3", - "symfony/process": "~2.5|~3.0|~4.0" + "predis/predis": "~1.0", + "symfony/cache": "^4.4|^5.0|^6.0", + "symfony/dependency-injection": "^5.4|^6.0", + "symfony/expression-language": "^4.4|^5.0|^6.0", + "symfony/http-kernel": "^5.4.12|^6.0.12|^6.1.4", + "symfony/mime": "^4.4|^5.0|^6.0", + "symfony/rate-limiter": "^5.2|^6.0" }, - "bin": [ - "bin/behat" - ], - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.5.x-dev" - } + "suggest": { + "symfony/mime": "To use the file extension guesser" }, + "type": "library", "autoload": { - "psr-0": { - "Behat\\Behat": "src/", - "Behat\\Testwork": "src/" - } + "psr-4": { + "Symfony\\Component\\HttpFoundation\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -4209,64 +4363,111 @@ ], "authors": [ { - "name": "Konstantin Kudryashov", - "email": "ever.zet@gmail.com", - "homepage": "http://everzet.com" + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "Scenario-oriented BDD framework for PHP 5.3", - "homepage": "http://behat.org/", - "keywords": [ - "Agile", - "BDD", - "ScenarioBDD", - "Scrum", - "StoryBDD", - "User story", - "business", - "development", - "documentation", - "examples", - "symfony", - "testing" + "description": "Defines an object-oriented layer for the HTTP specification", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/http-foundation/tree/v5.4.35" + }, + "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": "2018-08-10T18:56:51+00:00" + "time": "2024-01-23T13:51:25+00:00" }, { - "name": "behat/gherkin", - "version": "v4.6.0", + "name": "symfony/http-kernel", + "version": "v5.4.36", "source": { "type": "git", - "url": "https://github.com/Behat/Gherkin.git", - "reference": "ab0a02ea14893860bca00f225f5621d351a3ad07" + "url": "https://github.com/symfony/http-kernel.git", + "reference": "63a872e01fd70802b77023e2f5924170c99b2825" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Behat/Gherkin/zipball/ab0a02ea14893860bca00f225f5621d351a3ad07", - "reference": "ab0a02ea14893860bca00f225f5621d351a3ad07", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/63a872e01fd70802b77023e2f5924170c99b2825", + "reference": "63a872e01fd70802b77023e2f5924170c99b2825", "shasum": "" }, "require": { - "php": ">=5.3.1" + "php": ">=7.2.5", + "psr/log": "^1|^2", + "symfony/deprecation-contracts": "^2.1|^3", + "symfony/error-handler": "^4.4|^5.0|^6.0", + "symfony/event-dispatcher": "^5.0|^6.0", + "symfony/http-foundation": "^5.4.21|^6.2.7", + "symfony/polyfill-ctype": "^1.8", + "symfony/polyfill-php73": "^1.9", + "symfony/polyfill-php80": "^1.16" + }, + "conflict": { + "symfony/browser-kit": "<5.4", + "symfony/cache": "<5.0", + "symfony/config": "<5.0", + "symfony/console": "<4.4", + "symfony/dependency-injection": "<5.3", + "symfony/doctrine-bridge": "<5.0", + "symfony/form": "<5.0", + "symfony/http-client": "<5.0", + "symfony/mailer": "<5.0", + "symfony/messenger": "<5.0", + "symfony/translation": "<5.0", + "symfony/twig-bridge": "<5.0", + "symfony/validator": "<5.0", + "twig/twig": "<2.13" + }, + "provide": { + "psr/log-implementation": "1.0|2.0" }, "require-dev": { - "phpunit/phpunit": "~4.5|~5", - "symfony/phpunit-bridge": "~2.7|~3|~4", - "symfony/yaml": "~2.3|~3|~4" + "psr/cache": "^1.0|^2.0|^3.0", + "symfony/browser-kit": "^5.4|^6.0", + "symfony/config": "^5.0|^6.0", + "symfony/console": "^4.4|^5.0|^6.0", + "symfony/css-selector": "^4.4|^5.0|^6.0", + "symfony/dependency-injection": "^5.3|^6.0", + "symfony/dom-crawler": "^4.4|^5.0|^6.0", + "symfony/expression-language": "^4.4|^5.0|^6.0", + "symfony/finder": "^4.4|^5.0|^6.0", + "symfony/http-client-contracts": "^1.1|^2|^3", + "symfony/process": "^4.4|^5.0|^6.0", + "symfony/routing": "^4.4|^5.0|^6.0", + "symfony/stopwatch": "^4.4|^5.0|^6.0", + "symfony/translation": "^4.4|^5.0|^6.0", + "symfony/translation-contracts": "^1.1|^2|^3", + "twig/twig": "^2.13|^3.0.4" }, "suggest": { - "symfony/yaml": "If you want to parse features, represented in YAML files" + "symfony/browser-kit": "", + "symfony/config": "", + "symfony/console": "", + "symfony/dependency-injection": "" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.4-dev" - } - }, "autoload": { - "psr-0": { - "Behat\\Gherkin": "src/" - } + "psr-4": { + "Symfony\\Component\\HttpKernel\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -4274,60 +4475,75 @@ ], "authors": [ { - "name": "Konstantin Kudryashov", - "email": "ever.zet@gmail.com", - "homepage": "http://everzet.com" + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "Gherkin DSL parser for PHP 5.3", - "homepage": "http://behat.org/", - "keywords": [ - "BDD", - "Behat", - "Cucumber", - "DSL", - "gherkin", - "parser" + "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/v5.4.36" + }, + "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": "2019-01-16T14:22:17+00:00" + "time": "2024-02-27T06:22:59+00:00" }, { - "name": "behat/mink", - "version": "v1.7.1", + "name": "symfony/mailer", + "version": "v5.4.19", "source": { "type": "git", - "url": "https://github.com/minkphp/Mink.git", - "reference": "e6930b9c74693dff7f4e58577e1b1743399f3ff9" + "url": "https://github.com/symfony/mailer.git", + "reference": "66081dc01cfc04fdea08bbd253f44627ec5591dd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/minkphp/Mink/zipball/e6930b9c74693dff7f4e58577e1b1743399f3ff9", - "reference": "e6930b9c74693dff7f4e58577e1b1743399f3ff9", + "url": "https://api.github.com/repos/symfony/mailer/zipball/66081dc01cfc04fdea08bbd253f44627ec5591dd", + "reference": "66081dc01cfc04fdea08bbd253f44627ec5591dd", "shasum": "" }, "require": { - "php": ">=5.3.1", - "symfony/css-selector": "~2.1|~3.0" + "egulias/email-validator": "^2.1.10|^3|^4", + "php": ">=7.2.5", + "psr/event-dispatcher": "^1", + "psr/log": "^1|^2|^3", + "symfony/deprecation-contracts": "^2.1|^3", + "symfony/event-dispatcher": "^4.4|^5.0|^6.0", + "symfony/mime": "^5.2.6|^6.0", + "symfony/polyfill-php80": "^1.16", + "symfony/service-contracts": "^1.1|^2|^3" }, - "require-dev": { - "symfony/phpunit-bridge": "~2.7|~3.0" + "conflict": { + "symfony/http-kernel": "<4.4" }, - "suggest": { - "behat/mink-browserkit-driver": "extremely fast headless driver for Symfony\\Kernel-based apps (Sf2, Silex)", - "behat/mink-goutte-driver": "fast headless driver for any app without JS emulation", - "behat/mink-selenium2-driver": "slow, but JS-enabled driver for any app (requires Selenium2)", - "behat/mink-zombie-driver": "fast and JS-enabled headless driver for any app (requires node.js)" + "require-dev": { + "symfony/http-client-contracts": "^1.1|^2|^3", + "symfony/messenger": "^4.4|^5.0|^6.0" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.7.x-dev" - } - }, "autoload": { "psr-4": { - "Behat\\Mink\\": "src/" - } + "Symfony\\Component\\Mailer\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -4335,54 +4551,79 @@ ], "authors": [ { - "name": "Konstantin Kudryashov", - "email": "ever.zet@gmail.com", - "homepage": "http://everzet.com" + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "Browser controller/emulator abstraction for PHP", - "homepage": "http://mink.behat.org/", - "keywords": [ - "browser", - "testing", - "web" + "description": "Helps sending emails", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/mailer/tree/v5.4.19" + }, + "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": "2016-03-05T08:26:18+00:00" + "time": "2023-01-09T05:43:46+00:00" }, { - "name": "behat/mink-browserkit-driver", - "version": "1.3.3", + "name": "symfony/mime", + "version": "v5.4.35", "source": { "type": "git", - "url": "https://github.com/minkphp/MinkBrowserKitDriver.git", - "reference": "1b9a7ce903cfdaaec5fb32bfdbb26118343662eb" + "url": "https://github.com/symfony/mime.git", + "reference": "ee94d9b538f93abbbc1ee4ccff374593117b04a9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/minkphp/MinkBrowserKitDriver/zipball/1b9a7ce903cfdaaec5fb32bfdbb26118343662eb", - "reference": "1b9a7ce903cfdaaec5fb32bfdbb26118343662eb", + "url": "https://api.github.com/repos/symfony/mime/zipball/ee94d9b538f93abbbc1ee4ccff374593117b04a9", + "reference": "ee94d9b538f93abbbc1ee4ccff374593117b04a9", "shasum": "" }, "require": { - "behat/mink": "^1.7.1@dev", - "php": ">=5.3.6", - "symfony/browser-kit": "~2.3|~3.0|~4.0", - "symfony/dom-crawler": "~2.3|~3.0|~4.0" + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1|^3", + "symfony/polyfill-intl-idn": "^1.10", + "symfony/polyfill-mbstring": "^1.0", + "symfony/polyfill-php80": "^1.16" }, - "require-dev": { - "mink/driver-testsuite": "dev-master", - "symfony/http-kernel": "~2.3|~3.0|~4.0" + "conflict": { + "egulias/email-validator": "~3.0.0", + "phpdocumentor/reflection-docblock": "<3.2.2", + "phpdocumentor/type-resolver": "<1.4.0", + "symfony/mailer": "<4.4", + "symfony/serializer": "<5.4.35|>=6,<6.3.12|>=6.4,<6.4.3" }, - "type": "mink-driver", - "extra": { - "branch-alias": { - "dev-master": "1.3.x-dev" - } + "require-dev": { + "egulias/email-validator": "^2.1.10|^3.1|^4", + "phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0", + "symfony/dependency-injection": "^4.4|^5.0|^6.0", + "symfony/property-access": "^4.4|^5.1|^6.0", + "symfony/property-info": "^4.4|^5.1|^6.0", + "symfony/serializer": "^5.4.35|~6.3.12|^6.4.3" }, + "type": "library", "autoload": { "psr-4": { - "Behat\\Mink\\Driver\\": "src/" - } + "Symfony\\Component\\Mime\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -4390,55 +4631,87 @@ ], "authors": [ { - "name": "Konstantin Kudryashov", - "email": "ever.zet@gmail.com", - "homepage": "http://everzet.com" + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony2 BrowserKit driver for Mink framework", - "homepage": "http://mink.behat.org/", + "description": "Allows manipulating MIME messages", + "homepage": "https://symfony.com", "keywords": [ - "Mink", - "Symfony2", - "browser", - "testing" + "mime", + "mime-type" + ], + "support": { + "source": "https://github.com/symfony/mime/tree/v5.4.35" + }, + "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": "2018-05-02T09:25:31+00:00" + "time": "2024-01-30T08:00:51+00:00" }, { - "name": "behat/mink-extension", - "version": "2.3.1", + "name": "symfony/monolog-bridge", + "version": "v5.4.35", "source": { "type": "git", - "url": "https://github.com/Behat/MinkExtension.git", - "reference": "80f7849ba53867181b7e412df9210e12fba50177" + "url": "https://github.com/symfony/monolog-bridge.git", + "reference": "83e7438fd2ead9af4fd2fac7bb9b6fc0e8823387" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Behat/MinkExtension/zipball/80f7849ba53867181b7e412df9210e12fba50177", - "reference": "80f7849ba53867181b7e412df9210e12fba50177", + "url": "https://api.github.com/repos/symfony/monolog-bridge/zipball/83e7438fd2ead9af4fd2fac7bb9b6fc0e8823387", + "reference": "83e7438fd2ead9af4fd2fac7bb9b6fc0e8823387", "shasum": "" }, "require": { - "behat/behat": "^3.0.5", - "behat/mink": "^1.5", - "php": ">=5.3.2", - "symfony/config": "^2.7|^3.0|^4.0" + "monolog/monolog": "^1.25.1|^2", + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1|^3", + "symfony/http-kernel": "^5.3|^6.0", + "symfony/polyfill-php80": "^1.16", + "symfony/service-contracts": "^1.1|^2|^3" + }, + "conflict": { + "symfony/console": "<4.4", + "symfony/http-foundation": "<5.3" }, "require-dev": { - "behat/mink-goutte-driver": "^1.1", - "phpspec/phpspec": "^2.0" + "symfony/console": "^4.4|^5.0|^6.0", + "symfony/http-client": "^4.4|^5.0|^6.0", + "symfony/mailer": "^4.4|^5.0|^6.0", + "symfony/messenger": "^4.4|^5.0|^6.0", + "symfony/mime": "^4.4|^5.0|^6.0", + "symfony/security-core": "^4.4|^5.0|^6.0", + "symfony/var-dumper": "^4.4|^5.0|^6.0" }, - "type": "behat-extension", - "extra": { - "branch-alias": { - "dev-master": "2.1.x-dev" - } + "suggest": { + "symfony/console": "For the possibility to show log messages in console commands depending on verbosity settings.", + "symfony/http-kernel": "For using the debugging handlers together with the response life cycle of the HTTP kernel.", + "symfony/var-dumper": "For using the debugging handlers like the console handler or the log server handler." }, + "type": "symfony-bridge", "autoload": { - "psr-0": { - "Behat\\MinkExtension": "src/" - } + "psr-4": { + "Symfony\\Bridge\\Monolog\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -4446,57 +4719,75 @@ ], "authors": [ { - "name": "Christophe Coevoet", - "email": "stof@notk.org" + "name": "Fabien Potencier", + "email": "fabien@symfony.com" }, { - "name": "Konstantin Kudryashov", - "email": "ever.zet@gmail.com" + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "Mink extension for Behat", - "homepage": "http://extensions.behat.org/mink", - "keywords": [ - "browser", - "gui", - "test", - "web" + "description": "Provides integration for Monolog with various Symfony components", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/monolog-bridge/tree/v5.4.35" + }, + "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": "2018-02-06T15:36:30+00:00" + "time": "2024-01-23T13:51:25+00:00" }, { - "name": "behat/mink-goutte-driver", - "version": "v1.2.1", + "name": "symfony/monolog-bundle", + "version": "v3.8.0", "source": { "type": "git", - "url": "https://github.com/minkphp/MinkGoutteDriver.git", - "reference": "8b9ad6d2d95bc70b840d15323365f52fcdaea6ca" + "url": "https://github.com/symfony/monolog-bundle.git", + "reference": "a41bbcdc1105603b6d73a7d9a43a3788f8e0fb7d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/minkphp/MinkGoutteDriver/zipball/8b9ad6d2d95bc70b840d15323365f52fcdaea6ca", - "reference": "8b9ad6d2d95bc70b840d15323365f52fcdaea6ca", + "url": "https://api.github.com/repos/symfony/monolog-bundle/zipball/a41bbcdc1105603b6d73a7d9a43a3788f8e0fb7d", + "reference": "a41bbcdc1105603b6d73a7d9a43a3788f8e0fb7d", "shasum": "" }, "require": { - "behat/mink": "~1.6@dev", - "behat/mink-browserkit-driver": "~1.2@dev", - "fabpot/goutte": "~1.0.4|~2.0|~3.1", - "php": ">=5.3.1" + "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/phpunit-bridge": "~2.7|~3.0" + "symfony/console": "~4.4 || ^5.0 || ^6.0", + "symfony/phpunit-bridge": "^5.2 || ^6.0", + "symfony/yaml": "~4.4 || ^5.0 || ^6.0" }, - "type": "mink-driver", + "type": "symfony-bundle", "extra": { "branch-alias": { - "dev-master": "1.2.x-dev" + "dev-master": "3.x-dev" } }, "autoload": { "psr-4": { - "Behat\\Mink\\Driver\\": "src/" - } + "Symfony\\Bundle\\MonologBundle\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -4504,53 +4795,68 @@ ], "authors": [ { - "name": "Konstantin Kudryashov", - "email": "ever.zet@gmail.com", - "homepage": "http://everzet.com" + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "Goutte driver for Mink framework", - "homepage": "http://mink.behat.org/", + "description": "Symfony MonologBundle", + "homepage": "https://symfony.com", "keywords": [ - "browser", - "goutte", - "headless", - "testing" + "log", + "logging" ], - "time": "2016-03-05T09:04:22+00:00" - }, - { - "name": "behat/mink-selenium2-driver", - "version": "v1.3.1", + "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/options-resolver", + "version": "v5.4.21", "source": { "type": "git", - "url": "https://github.com/minkphp/MinkSelenium2Driver.git", - "reference": "473a9f3ebe0c134ee1e623ce8a9c852832020288" + "url": "https://github.com/symfony/options-resolver.git", + "reference": "4fe5cf6ede71096839f0e4b4444d65dd3a7c1eb9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/minkphp/MinkSelenium2Driver/zipball/473a9f3ebe0c134ee1e623ce8a9c852832020288", - "reference": "473a9f3ebe0c134ee1e623ce8a9c852832020288", + "url": "https://api.github.com/repos/symfony/options-resolver/zipball/4fe5cf6ede71096839f0e4b4444d65dd3a7c1eb9", + "reference": "4fe5cf6ede71096839f0e4b4444d65dd3a7c1eb9", "shasum": "" }, "require": { - "behat/mink": "~1.7@dev", - "instaclick/php-webdriver": "~1.1", - "php": ">=5.3.1" - }, - "require-dev": { - "symfony/phpunit-bridge": "~2.7" - }, - "type": "mink-driver", - "extra": { - "branch-alias": { - "dev-master": "1.3.x-dev" - } + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1|^3", + "symfony/polyfill-php73": "~1.0", + "symfony/polyfill-php80": "^1.16" }, + "type": "library", "autoload": { "psr-4": { - "Behat\\Mink\\Driver\\": "src/" - } + "Symfony\\Component\\OptionsResolver\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -4558,65 +4864,74 @@ ], "authors": [ { - "name": "Konstantin Kudryashov", - "email": "ever.zet@gmail.com", - "homepage": "http://everzet.com" + "name": "Fabien Potencier", + "email": "fabien@symfony.com" }, { - "name": "Pete Otaqui", - "email": "pete@otaqui.com", - "homepage": "https://github.com/pete-otaqui" + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "Selenium2 (WebDriver) driver for Mink framework", - "homepage": "http://mink.behat.org/", + "description": "Provides an improved replacement for the array_replace PHP function", + "homepage": "https://symfony.com", "keywords": [ - "ajax", - "browser", - "javascript", - "selenium", - "testing", - "webdriver" + "config", + "configuration", + "options" + ], + "support": { + "source": "https://github.com/symfony/options-resolver/tree/v5.4.21" + }, + "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": "2016-03-05T09:10:18+00:00" + "time": "2023-02-14T08:03:56+00:00" }, { - "name": "behat/symfony2-extension", - "version": "2.1.5", + "name": "symfony/password-hasher", + "version": "v5.4.36", "source": { "type": "git", - "url": "https://github.com/Behat/Symfony2Extension.git", - "reference": "d7c834487426a784665f9c1e61132274dbf2ea26" + "url": "https://github.com/symfony/password-hasher.git", + "reference": "a0c08f9045230ef73d25617b2c0e0b56d8feb0a2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Behat/Symfony2Extension/zipball/d7c834487426a784665f9c1e61132274dbf2ea26", - "reference": "d7c834487426a784665f9c1e61132274dbf2ea26", + "url": "https://api.github.com/repos/symfony/password-hasher/zipball/a0c08f9045230ef73d25617b2c0e0b56d8feb0a2", + "reference": "a0c08f9045230ef73d25617b2c0e0b56d8feb0a2", "shasum": "" }, "require": { - "behat/behat": "^3.4.3", - "php": ">=5.3.3", - "symfony/framework-bundle": "~2.0|~3.0|~4.0" + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1|^3", + "symfony/polyfill-php80": "^1.15" + }, + "conflict": { + "symfony/security-core": "<5.3" }, "require-dev": { - "behat/mink": "~1.7@dev", - "behat/mink-browserkit-driver": "~1.3@dev", - "behat/mink-extension": "~2.0", - "phpspec/phpspec": "~2.0|~3.0|~4.0", - "phpunit/phpunit": "~4.0|~5.0", - "symfony/symfony": "~2.1|~3.0|~4.0" - }, - "type": "behat-extension", - "extra": { - "branch-alias": { - "dev-master": "2.1.x-dev" - } + "symfony/console": "^5.3|^6.0", + "symfony/security-core": "^5.3|^6.0" }, + "type": "library", "autoload": { - "psr-0": { - "Behat\\Symfony2Extension": "src/" - } + "psr-4": { + "Symfony\\Component\\PasswordHasher\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -4624,99 +4939,151 @@ ], "authors": [ { - "name": "Christophe Coevoet", - "email": "stof@notk.org" + "name": "Robin Chalas", + "email": "robin.chalas@gmail.com" }, { - "name": "Konstantin Kudryashov", - "email": "ever.zet@gmail.com" + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony2 framework extension for Behat", - "homepage": "http://behat.org", + "description": "Provides password hashing utilities", + "homepage": "https://symfony.com", "keywords": [ - "BDD", - "framework", - "symfony" + "hashing", + "password" + ], + "support": { + "source": "https://github.com/symfony/password-hasher/tree/v5.4.36" + }, + "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" + } ], - "abandoned": "friends-of-behat/symfony-extension", - "time": "2018-04-20T15:48:23+00:00" + "time": "2024-02-10T16:59:05+00:00" }, { - "name": "behat/transliterator", - "version": "v1.2.0", + "name": "symfony/polyfill-ctype", + "version": "v1.29.0", "source": { "type": "git", - "url": "https://github.com/Behat/Transliterator.git", - "reference": "826ce7e9c2a6664c0d1f381cbb38b1fb80a7ee2c" + "url": "https://github.com/symfony/polyfill-ctype.git", + "reference": "ef4d7e442ca910c4764bce785146269b30cb5fc4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Behat/Transliterator/zipball/826ce7e9c2a6664c0d1f381cbb38b1fb80a7ee2c", - "reference": "826ce7e9c2a6664c0d1f381cbb38b1fb80a7ee2c", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/ef4d7e442ca910c4764bce785146269b30cb5fc4", + "reference": "ef4d7e442ca910c4764bce785146269b30cb5fc4", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": ">=7.1" }, - "require-dev": { - "chuyskywalker/rolling-curl": "^3.1", - "php-yaoi/php-yaoi": "^1.0" + "provide": { + "ext-ctype": "*" + }, + "suggest": { + "ext-ctype": "For best performance" }, "type": "library", "extra": { - "branch-alias": { - "dev-master": "1.2-dev" + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" } }, "autoload": { - "psr-0": { - "Behat\\Transliterator": "src/" + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Ctype\\": "" } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "Artistic-1.0" + "MIT" + ], + "authors": [ + { + "name": "Gert de Pagter", + "email": "BackEndTea@gmail.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } ], - "description": "String transliterator", + "description": "Symfony polyfill for ctype functions", + "homepage": "https://symfony.com", "keywords": [ - "i18n", - "slug", - "transliterator" + "compatibility", + "ctype", + "polyfill", + "portable" + ], + "support": { + "source": "https://github.com/symfony/polyfill-ctype/tree/v1.29.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": "2017-04-04T11:38:05+00:00" + "time": "2024-01-29T20:11:03+00:00" }, { - "name": "composer/pcre", - "version": "1.0.1", + "name": "symfony/polyfill-intl-grapheme", + "version": "v1.29.0", "source": { "type": "git", - "url": "https://github.com/composer/pcre.git", - "reference": "67a32d7d6f9f560b726ab25a061b38ff3a80c560" + "url": "https://github.com/symfony/polyfill-intl-grapheme.git", + "reference": "32a9da87d7b3245e09ac426c83d334ae9f06f80f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/pcre/zipball/67a32d7d6f9f560b726ab25a061b38ff3a80c560", - "reference": "67a32d7d6f9f560b726ab25a061b38ff3a80c560", + "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/32a9da87d7b3245e09ac426c83d334ae9f06f80f", + "reference": "32a9da87d7b3245e09ac426c83d334ae9f06f80f", "shasum": "" }, "require": { - "php": "^5.3.2 || ^7.0 || ^8.0" + "php": ">=7.1" }, - "require-dev": { - "phpstan/phpstan": "^1.3", - "phpstan/phpstan-strict-rules": "^1.1", - "symfony/phpunit-bridge": "^4.2 || ^5" + "suggest": { + "ext-intl": "For best performance" }, "type": "library", "extra": { - "branch-alias": { - "dev-main": "1.x-dev" + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" } }, "autoload": { + "files": [ + "bootstrap.php" + ], "psr-4": { - "Composer\\Pcre\\": "src" + "Symfony\\Polyfill\\Intl\\Grapheme\\": "" } }, "notification-url": "https://packagist.org/downloads/", @@ -4725,67 +5092,83 @@ ], "authors": [ { - "name": "Jordi Boggiano", - "email": "j.boggiano@seld.be", - "homepage": "http://seld.be" + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "PCRE wrapping library that offers type-safe preg_* replacements.", + "description": "Symfony polyfill for intl's grapheme_* functions", + "homepage": "https://symfony.com", "keywords": [ - "PCRE", - "preg", - "regex", - "regular expression" + "compatibility", + "grapheme", + "intl", + "polyfill", + "portable", + "shim" ], "support": { - "issues": "https://github.com/composer/pcre/issues", - "source": "https://github.com/composer/pcre/tree/1.0.1" + "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.29.0" }, "funding": [ { - "url": "https://packagist.com", + "url": "https://symfony.com/sponsor", "type": "custom" }, { - "url": "https://github.com/composer", + "url": "https://github.com/fabpot", "type": "github" }, { - "url": "https://tidelift.com/funding/github/packagist/composer/composer", + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2022-01-21T20:24:37+00:00" + "time": "2024-01-29T20:11:03+00:00" }, { - "name": "composer/xdebug-handler", - "version": "2.0.5", + "name": "symfony/polyfill-intl-icu", + "version": "v1.29.0", "source": { "type": "git", - "url": "https://github.com/composer/xdebug-handler.git", - "reference": "9e36aeed4616366d2b690bdce11f71e9178c579a" + "url": "https://github.com/symfony/polyfill-intl-icu.git", + "reference": "07094a28851a49107f3ab4f9120ca2975a64b6e1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/9e36aeed4616366d2b690bdce11f71e9178c579a", - "reference": "9e36aeed4616366d2b690bdce11f71e9178c579a", + "url": "https://api.github.com/repos/symfony/polyfill-intl-icu/zipball/07094a28851a49107f3ab4f9120ca2975a64b6e1", + "reference": "07094a28851a49107f3ab4f9120ca2975a64b6e1", "shasum": "" }, "require": { - "composer/pcre": "^1", - "php": "^5.3.2 || ^7.0 || ^8.0", - "psr/log": "^1 || ^2 || ^3" + "php": ">=7.1" }, - "require-dev": { - "phpstan/phpstan": "^1.0", - "phpstan/phpstan-strict-rules": "^1.1", - "symfony/phpunit-bridge": "^4.2 || ^5.0 || ^6.0" + "suggest": { + "ext-intl": "For best performance and support of other locales than \"en\"" }, "type": "library", + "extra": { + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, "autoload": { + "files": [ + "bootstrap.php" + ], "psr-4": { - "Composer\\XdebugHandler\\": "src" - } + "Symfony\\Polyfill\\Intl\\Icu\\": "" + }, + "classmap": [ + "Resources/stubs" + ], + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -4793,105 +5176,2280 @@ ], "authors": [ { - "name": "John Stevenson", - "email": "john-stevenson@blueyonder.co.uk" + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "Restarts a process without Xdebug.", + "description": "Symfony polyfill for intl's ICU-related data and classes", + "homepage": "https://symfony.com", "keywords": [ - "Xdebug", - "performance" + "compatibility", + "icu", + "intl", + "polyfill", + "portable", + "shim" ], "support": { - "irc": "irc://irc.freenode.org/composer", - "issues": "https://github.com/composer/xdebug-handler/issues", - "source": "https://github.com/composer/xdebug-handler/tree/2.0.5" + "source": "https://github.com/symfony/polyfill-intl-icu/tree/v1.29.0" }, "funding": [ { - "url": "https://packagist.com", + "url": "https://symfony.com/sponsor", "type": "custom" }, { - "url": "https://github.com/composer", + "url": "https://github.com/fabpot", "type": "github" }, { - "url": "https://tidelift.com/funding/github/packagist/composer/composer", + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2022-02-24T20:20:32+00:00" + "time": "2024-01-29T20:12:16+00:00" }, { - "name": "container-interop/container-interop", - "version": "1.2.0", + "name": "symfony/polyfill-intl-idn", + "version": "v1.29.0", "source": { "type": "git", - "url": "https://github.com/container-interop/container-interop.git", - "reference": "79cbf1341c22ec75643d841642dd5d6acd83bdb8" + "url": "https://github.com/symfony/polyfill-intl-idn.git", + "reference": "a287ed7475f85bf6f61890146edbc932c0fff919" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/container-interop/container-interop/zipball/79cbf1341c22ec75643d841642dd5d6acd83bdb8", - "reference": "79cbf1341c22ec75643d841642dd5d6acd83bdb8", + "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/a287ed7475f85bf6f61890146edbc932c0fff919", + "reference": "a287ed7475f85bf6f61890146edbc932c0fff919", "shasum": "" }, "require": { - "psr/container": "^1.0" + "php": ">=7.1", + "symfony/polyfill-intl-normalizer": "^1.10", + "symfony/polyfill-php72": "^1.10" + }, + "suggest": { + "ext-intl": "For best performance" }, "type": "library", - "autoload": { - "psr-4": { - "Interop\\Container\\": "src/Interop/Container/" + "extra": { + "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.29.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": "2024-01-29T20:11:03+00:00" + }, + { + "name": "symfony/polyfill-intl-normalizer", + "version": "v1.29.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-intl-normalizer.git", + "reference": "bc45c394692b948b4d383a08d7753968bed9a83d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/bc45c394692b948b4d383a08d7753968bed9a83d", + "reference": "bc45c394692b948b4d383a08d7753968bed9a83d", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "suggest": { + "ext-intl": "For best performance" + }, + "type": "library", + "extra": { + "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.29.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": "2024-01-29T20:11:03+00:00" + }, + { + "name": "symfony/polyfill-php72", + "version": "v1.29.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php72.git", + "reference": "861391a8da9a04cbad2d232ddd9e4893220d6e25" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/861391a8da9a04cbad2d232ddd9e4893220d6e25", + "reference": "861391a8da9a04cbad2d232ddd9e4893220d6e25", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "type": "library", + "extra": { + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Php72\\": "" + } + }, + "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 7.2+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php72/tree/v1.29.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": "2024-01-29T20:11:03+00:00" + }, + { + "name": "symfony/polyfill-php73", + "version": "v1.29.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php73.git", + "reference": "21bd091060673a1177ae842c0ef8fe30893114d2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/21bd091060673a1177ae842c0ef8fe30893114d2", + "reference": "21bd091060673a1177ae842c0ef8fe30893114d2", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "type": "library", + "extra": { + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Php73\\": "" + }, + "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 7.3+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php73/tree/v1.29.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": "2024-01-29T20:11:03+00:00" + }, + { + "name": "symfony/polyfill-php80", + "version": "v1.29.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php80.git", + "reference": "87b68208d5c1188808dd7839ee1e6c8ec3b02f1b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/87b68208d5c1188808dd7839ee1e6c8ec3b02f1b", + "reference": "87b68208d5c1188808dd7839ee1e6c8ec3b02f1b", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "type": "library", + "extra": { + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Php80\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Ion Bazan", + "email": "ion.bazan@gmail.com" + }, + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php80/tree/v1.29.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": "2024-01-29T20:11:03+00:00" + }, + { + "name": "symfony/polyfill-php81", + "version": "v1.29.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php81.git", + "reference": "c565ad1e63f30e7477fc40738343c62b40bc672d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/c565ad1e63f30e7477fc40738343c62b40bc672d", + "reference": "c565ad1e63f30e7477fc40738343c62b40bc672d", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "type": "library", + "extra": { + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Php81\\": "" + }, + "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.1+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php81/tree/v1.29.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": "2024-01-29T20:11:03+00:00" + }, + { + "name": "symfony/property-access", + "version": "v5.4.35", + "source": { + "type": "git", + "url": "https://github.com/symfony/property-access.git", + "reference": "f1341758d8046cfff0ac748a0cad238f917191d4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/property-access/zipball/f1341758d8046cfff0ac748a0cad238f917191d4", + "reference": "f1341758d8046cfff0ac748a0cad238f917191d4", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1|^3", + "symfony/polyfill-php80": "^1.16", + "symfony/property-info": "^5.2|^6.0" + }, + "require-dev": { + "symfony/cache": "^4.4|^5.0|^6.0" + }, + "suggest": { + "psr/cache-implementation": "To cache access methods." + }, + "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/v5.4.35" + }, + "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": "2024-01-23T13:51:25+00:00" + }, + { + "name": "symfony/property-info", + "version": "v5.4.35", + "source": { + "type": "git", + "url": "https://github.com/symfony/property-info.git", + "reference": "d30d48f366ad2bfbf521256be85eb1c182c29198" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/property-info/zipball/d30d48f366ad2bfbf521256be85eb1c182c29198", + "reference": "d30d48f366ad2bfbf521256be85eb1c182c29198", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1|^3", + "symfony/polyfill-php80": "^1.16", + "symfony/string": "^5.1|^6.0" + }, + "conflict": { + "phpdocumentor/reflection-docblock": "<3.2.2", + "phpdocumentor/type-resolver": "<1.4.0", + "symfony/dependency-injection": "<4.4" + }, + "require-dev": { + "doctrine/annotations": "^1.10.4|^2", + "phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0", + "phpstan/phpdoc-parser": "^1.0", + "symfony/cache": "^4.4|^5.0|^6.0", + "symfony/dependency-injection": "^4.4|^5.0|^6.0", + "symfony/serializer": "^4.4|^5.0|^6.0" + }, + "suggest": { + "phpdocumentor/reflection-docblock": "To use the PHPDoc", + "psr/cache-implementation": "To cache results", + "symfony/doctrine-bridge": "To use Doctrine metadata", + "symfony/serializer": "To use Serializer metadata" + }, + "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/v5.4.35" + }, + "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": "2024-01-23T15:43:50+00:00" + }, + { + "name": "symfony/routing", + "version": "v5.4.35", + "source": { + "type": "git", + "url": "https://github.com/symfony/routing.git", + "reference": "86c5a06a61ddaf17efa1403542e3d7146af96203" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/routing/zipball/86c5a06a61ddaf17efa1403542e3d7146af96203", + "reference": "86c5a06a61ddaf17efa1403542e3d7146af96203", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1|^3", + "symfony/polyfill-php80": "^1.16" + }, + "conflict": { + "doctrine/annotations": "<1.12", + "symfony/config": "<5.3", + "symfony/dependency-injection": "<4.4", + "symfony/yaml": "<4.4" + }, + "require-dev": { + "doctrine/annotations": "^1.12|^2", + "psr/log": "^1|^2|^3", + "symfony/config": "^5.3|^6.0", + "symfony/dependency-injection": "^4.4|^5.0|^6.0", + "symfony/expression-language": "^4.4|^5.0|^6.0", + "symfony/http-foundation": "^4.4|^5.0|^6.0", + "symfony/yaml": "^4.4|^5.0|^6.0" + }, + "suggest": { + "symfony/config": "For using the all-in-one router or any loader", + "symfony/expression-language": "For using expression matching", + "symfony/http-foundation": "For using a Symfony Request object", + "symfony/yaml": "For using the YAML loader" + }, + "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/v5.4.35" + }, + "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": "2024-01-30T13:10:15+00:00" + }, + { + "name": "symfony/security-bundle", + "version": "v5.4.20", + "source": { + "type": "git", + "url": "https://github.com/symfony/security-bundle.git", + "reference": "1a049b77e70e890c5d5d2105d96ce8b35890197e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/security-bundle/zipball/1a049b77e70e890c5d5d2105d96ce8b35890197e", + "reference": "1a049b77e70e890c5d5d2105d96ce8b35890197e", + "shasum": "" + }, + "require": { + "ext-xml": "*", + "php": ">=7.2.5", + "symfony/config": "^4.4|^5.0|^6.0", + "symfony/dependency-injection": "^5.3|^6.0", + "symfony/deprecation-contracts": "^2.1|^3", + "symfony/event-dispatcher": "^5.1|^6.0", + "symfony/http-foundation": "^5.3|^6.0", + "symfony/http-kernel": "^5.3|^6.0", + "symfony/password-hasher": "^5.3|^6.0", + "symfony/polyfill-php80": "^1.16", + "symfony/security-core": "^5.4|^6.0", + "symfony/security-csrf": "^4.4|^5.0|^6.0", + "symfony/security-guard": "^5.3", + "symfony/security-http": "^5.4.20|~6.0.20|~6.1.12|^6.2.6" + }, + "conflict": { + "symfony/browser-kit": "<4.4", + "symfony/console": "<4.4", + "symfony/framework-bundle": "<4.4", + "symfony/ldap": "<5.1", + "symfony/twig-bundle": "<4.4" + }, + "require-dev": { + "doctrine/annotations": "^1.10.4|^2", + "symfony/asset": "^4.4|^5.0|^6.0", + "symfony/browser-kit": "^4.4|^5.0|^6.0", + "symfony/console": "^4.4|^5.0|^6.0", + "symfony/css-selector": "^4.4|^5.0|^6.0", + "symfony/dom-crawler": "^4.4|^5.0|^6.0", + "symfony/expression-language": "^4.4|^5.0|^6.0", + "symfony/form": "^4.4|^5.0|^6.0", + "symfony/framework-bundle": "^5.3|^6.0", + "symfony/ldap": "^5.3|^6.0", + "symfony/process": "^4.4|^5.0|^6.0", + "symfony/rate-limiter": "^5.2|^6.0", + "symfony/serializer": "^4.4|^5.0|^6.0", + "symfony/translation": "^4.4|^5.0|^6.0", + "symfony/twig-bridge": "^4.4|^5.0|^6.0", + "symfony/twig-bundle": "^4.4|^5.0|^6.0", + "symfony/validator": "^4.4|^5.0|^6.0", + "symfony/yaml": "^4.4|^5.0|^6.0", + "twig/twig": "^2.13|^3.0.4" + }, + "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/v5.4.20" + }, + "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-30T09:35:58+00:00" + }, + { + "name": "symfony/security-core", + "version": "v5.4.30", + "source": { + "type": "git", + "url": "https://github.com/symfony/security-core.git", + "reference": "3908c54da30dd68c2fe31915d82a1c81809d1928" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/security-core/zipball/3908c54da30dd68c2fe31915d82a1c81809d1928", + "reference": "3908c54da30dd68c2fe31915d82a1c81809d1928", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1|^3", + "symfony/event-dispatcher-contracts": "^1.1|^2|^3", + "symfony/password-hasher": "^5.3|^6.0", + "symfony/polyfill-php80": "^1.16", + "symfony/service-contracts": "^1.1.6|^2|^3" + }, + "conflict": { + "symfony/event-dispatcher": "<4.4", + "symfony/http-foundation": "<5.3", + "symfony/ldap": "<4.4", + "symfony/security-guard": "<4.4", + "symfony/validator": "<5.2" + }, + "require-dev": { + "psr/cache": "^1.0|^2.0|^3.0", + "psr/container": "^1.0|^2.0", + "psr/log": "^1|^2|^3", + "symfony/cache": "^4.4|^5.0|^6.0", + "symfony/event-dispatcher": "^4.4|^5.0|^6.0", + "symfony/expression-language": "^4.4|^5.0|^6.0", + "symfony/http-foundation": "^5.3|^6.0", + "symfony/ldap": "^4.4|^5.0|^6.0", + "symfony/translation": "^4.4|^5.0|^6.0", + "symfony/validator": "^5.2|^6.0" + }, + "suggest": { + "psr/container-implementation": "To instantiate the Security class", + "symfony/event-dispatcher": "", + "symfony/expression-language": "For using the expression voter", + "symfony/http-foundation": "", + "symfony/ldap": "For using LDAP integration", + "symfony/validator": "For using the user password constraint" + }, + "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/v5.4.30" + }, + "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-27T07:38:28+00:00" + }, + { + "name": "symfony/security-csrf", + "version": "v5.4.35", + "source": { + "type": "git", + "url": "https://github.com/symfony/security-csrf.git", + "reference": "6728ed79d7f9aae3b86fca7ea554f1c46bae1e0b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/security-csrf/zipball/6728ed79d7f9aae3b86fca7ea554f1c46bae1e0b", + "reference": "6728ed79d7f9aae3b86fca7ea554f1c46bae1e0b", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1|^3", + "symfony/polyfill-php80": "^1.16", + "symfony/security-core": "^4.4|^5.0|^6.0" + }, + "conflict": { + "symfony/http-foundation": "<5.3" + }, + "require-dev": { + "symfony/http-foundation": "^5.3|^6.0" + }, + "suggest": { + "symfony/http-foundation": "For using the class SessionTokenStorage." + }, + "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/v5.4.35" + }, + "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": "2024-01-23T13:51:25+00:00" + }, + { + "name": "symfony/security-guard", + "version": "v5.4.35", + "source": { + "type": "git", + "url": "https://github.com/symfony/security-guard.git", + "reference": "b6fb8c88f7cd544db761de2d1c3618cbc5c1b9e7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/security-guard/zipball/b6fb8c88f7cd544db761de2d1c3618cbc5c1b9e7", + "reference": "b6fb8c88f7cd544db761de2d1c3618cbc5c1b9e7", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1|^3", + "symfony/polyfill-php80": "^1.15", + "symfony/security-core": "^5.0", + "symfony/security-http": "^5.3" + }, + "require-dev": { + "psr/log": "^1|^2|^3" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Security\\Guard\\": "" + }, + "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 - Guard", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/security-guard/tree/v5.4.35" + }, + "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": "2024-01-23T13:51:25+00:00" + }, + { + "name": "symfony/security-http", + "version": "v5.4.36", + "source": { + "type": "git", + "url": "https://github.com/symfony/security-http.git", + "reference": "87ee1ea2b86740fc6a0104f165bebbe0b08b66ba" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/security-http/zipball/87ee1ea2b86740fc6a0104f165bebbe0b08b66ba", + "reference": "87ee1ea2b86740fc6a0104f165bebbe0b08b66ba", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1|^3", + "symfony/http-foundation": "^5.3|^6.0", + "symfony/http-kernel": "^5.3|^6.0", + "symfony/polyfill-mbstring": "~1.0", + "symfony/polyfill-php80": "^1.16", + "symfony/property-access": "^4.4|^5.0|^6.0", + "symfony/security-core": "^5.4.19|~6.0.19|~6.1.11|^6.2.5", + "symfony/service-contracts": "^1.10|^2|^3" + }, + "conflict": { + "symfony/event-dispatcher": "<4.3", + "symfony/security-bundle": "<5.3", + "symfony/security-csrf": "<4.4" + }, + "require-dev": { + "psr/log": "^1|^2|^3", + "symfony/cache": "^4.4|^5.0|^6.0", + "symfony/rate-limiter": "^5.2|^6.0", + "symfony/routing": "^4.4|^5.0|^6.0", + "symfony/security-csrf": "^4.4|^5.0|^6.0", + "symfony/translation": "^4.4|^5.0|^6.0" + }, + "suggest": { + "symfony/routing": "For using the HttpUtils class to create sub-requests, redirect the user, and match URLs", + "symfony/security-csrf": "For using tokens to protect authentication/logout attempts" + }, + "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/v5.4.36" + }, + "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": "2024-02-23T16:13:23+00:00" + }, + { + "name": "symfony/service-contracts", + "version": "v2.5.2", + "source": { + "type": "git", + "url": "https://github.com/symfony/service-contracts.git", + "reference": "4b426aac47d6427cc1a1d0f7e2ac724627f5966c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/4b426aac47d6427cc1a1d0f7e2ac724627f5966c", + "reference": "4b426aac47d6427cc1a1d0f7e2ac724627f5966c", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "psr/container": "^1.1", + "symfony/deprecation-contracts": "^2.1|^3" + }, + "conflict": { + "ext-psr": "<1.1|>=2" + }, + "suggest": { + "symfony/service-implementation": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "2.5-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\Service\\": "" + } + }, + "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/v2.5.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": "2022-05-30T19:17:29+00:00" + }, + { + "name": "symfony/stopwatch", + "version": "v5.4.35", + "source": { + "type": "git", + "url": "https://github.com/symfony/stopwatch.git", + "reference": "887762aa99ff16f65dc8b48aafead415f942d407" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/stopwatch/zipball/887762aa99ff16f65dc8b48aafead415f942d407", + "reference": "887762aa99ff16f65dc8b48aafead415f942d407", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/service-contracts": "^1|^2|^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/v5.4.35" + }, + "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": "2024-01-23T13:51:25+00:00" + }, + { + "name": "symfony/string", + "version": "v5.4.36", + "source": { + "type": "git", + "url": "https://github.com/symfony/string.git", + "reference": "4e232c83622bd8cd32b794216aa29d0d266d353b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/string/zipball/4e232c83622bd8cd32b794216aa29d0d266d353b", + "reference": "4e232c83622bd8cd32b794216aa29d0d266d353b", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-intl-grapheme": "~1.0", + "symfony/polyfill-intl-normalizer": "~1.0", + "symfony/polyfill-mbstring": "~1.0", + "symfony/polyfill-php80": "~1.15" + }, + "conflict": { + "symfony/translation-contracts": ">=3.0" + }, + "require-dev": { + "symfony/error-handler": "^4.4|^5.0|^6.0", + "symfony/http-client": "^4.4|^5.0|^6.0", + "symfony/translation-contracts": "^1.1|^2", + "symfony/var-exporter": "^4.4|^5.0|^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/v5.4.36" + }, + "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": "2024-02-01T08:49:30+00:00" + }, + { + "name": "symfony/translation", + "version": "v5.4.19", + "source": { + "type": "git", + "url": "https://github.com/symfony/translation.git", + "reference": "83d487b13b7fb4c0a6ad079f4e4c9b4525e1b695" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/translation/zipball/83d487b13b7fb4c0a6ad079f4e4c9b4525e1b695", + "reference": "83d487b13b7fb4c0a6ad079f4e4c9b4525e1b695", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1|^3", + "symfony/polyfill-mbstring": "~1.0", + "symfony/polyfill-php80": "^1.16", + "symfony/translation-contracts": "^2.3" + }, + "conflict": { + "symfony/config": "<4.4", + "symfony/console": "<5.3", + "symfony/dependency-injection": "<5.0", + "symfony/http-kernel": "<5.0", + "symfony/twig-bundle": "<5.0", + "symfony/yaml": "<4.4" + }, + "provide": { + "symfony/translation-implementation": "2.3" + }, + "require-dev": { + "psr/log": "^1|^2|^3", + "symfony/config": "^4.4|^5.0|^6.0", + "symfony/console": "^5.4|^6.0", + "symfony/dependency-injection": "^5.0|^6.0", + "symfony/finder": "^4.4|^5.0|^6.0", + "symfony/http-client-contracts": "^1.1|^2.0|^3.0", + "symfony/http-kernel": "^5.0|^6.0", + "symfony/intl": "^4.4|^5.0|^6.0", + "symfony/polyfill-intl-icu": "^1.21", + "symfony/service-contracts": "^1.1.2|^2|^3", + "symfony/yaml": "^4.4|^5.0|^6.0" + }, + "suggest": { + "psr/log-implementation": "To use logging capability in translator", + "symfony/config": "", + "symfony/yaml": "" + }, + "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/v5.4.19" + }, + "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-01T08:32:19+00:00" + }, + { + "name": "symfony/translation-contracts", + "version": "v2.5.2", + "source": { + "type": "git", + "url": "https://github.com/symfony/translation-contracts.git", + "reference": "136b19dd05cdf0709db6537d058bcab6dd6e2dbe" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/136b19dd05cdf0709db6537d058bcab6dd6e2dbe", + "reference": "136b19dd05cdf0709db6537d058bcab6dd6e2dbe", + "shasum": "" + }, + "require": { + "php": ">=7.2.5" + }, + "suggest": { + "symfony/translation-implementation": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "2.5-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\Translation\\": "" + } + }, + "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/v2.5.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": "2022-06-27T16:58:25+00:00" + }, + { + "name": "symfony/twig-bridge", + "version": "v5.4.19", + "source": { + "type": "git", + "url": "https://github.com/symfony/twig-bridge.git", + "reference": "0526188cb886be64351454826fecc6d35356eaf1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/twig-bridge/zipball/0526188cb886be64351454826fecc6d35356eaf1", + "reference": "0526188cb886be64351454826fecc6d35356eaf1", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/polyfill-php80": "^1.16", + "symfony/translation-contracts": "^1.1|^2|^3", + "twig/twig": "^2.13|^3.0.4" + }, + "conflict": { + "phpdocumentor/reflection-docblock": "<3.2.2", + "phpdocumentor/type-resolver": "<1.4.0", + "symfony/console": "<5.3", + "symfony/form": "<5.3", + "symfony/http-foundation": "<5.3", + "symfony/http-kernel": "<4.4", + "symfony/translation": "<5.2", + "symfony/workflow": "<5.2" + }, + "require-dev": { + "doctrine/annotations": "^1.12|^2", + "egulias/email-validator": "^2.1.10|^3|^4", + "phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0", + "symfony/asset": "^4.4|^5.0|^6.0", + "symfony/console": "^5.3|^6.0", + "symfony/dependency-injection": "^4.4|^5.0|^6.0", + "symfony/expression-language": "^4.4|^5.0|^6.0", + "symfony/finder": "^4.4|^5.0|^6.0", + "symfony/form": "^5.3|^6.0", + "symfony/http-foundation": "^5.3|^6.0", + "symfony/http-kernel": "^4.4|^5.0|^6.0", + "symfony/intl": "^4.4|^5.0|^6.0", + "symfony/mime": "^5.2|^6.0", + "symfony/polyfill-intl-icu": "~1.0", + "symfony/property-info": "^4.4|^5.1|^6.0", + "symfony/routing": "^4.4|^5.0|^6.0", + "symfony/security-acl": "^2.8|^3.0", + "symfony/security-core": "^4.4|^5.0|^6.0", + "symfony/security-csrf": "^4.4|^5.0|^6.0", + "symfony/security-http": "^4.4|^5.0|^6.0", + "symfony/serializer": "^5.2|^6.0", + "symfony/stopwatch": "^4.4|^5.0|^6.0", + "symfony/translation": "^5.2|^6.0", + "symfony/web-link": "^4.4|^5.0|^6.0", + "symfony/workflow": "^5.2|^6.0", + "symfony/yaml": "^4.4|^5.0|^6.0", + "twig/cssinliner-extra": "^2.12|^3", + "twig/inky-extra": "^2.12|^3", + "twig/markdown-extra": "^2.12|^3" + }, + "suggest": { + "symfony/asset": "For using the AssetExtension", + "symfony/expression-language": "For using the ExpressionExtension", + "symfony/finder": "", + "symfony/form": "For using the FormExtension", + "symfony/http-kernel": "For using the HttpKernelExtension", + "symfony/routing": "For using the RoutingExtension", + "symfony/security-core": "For using the SecurityExtension", + "symfony/security-csrf": "For using the CsrfExtension", + "symfony/security-http": "For using the LogoutUrlExtension", + "symfony/stopwatch": "For using the StopwatchExtension", + "symfony/translation": "For using the TranslationExtension", + "symfony/var-dumper": "For using the DumpExtension", + "symfony/web-link": "For using the WebLinkExtension", + "symfony/yaml": "For using the YamlExtension" + }, + "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/v5.4.19" + }, + "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-09T05:43:46+00:00" + }, + { + "name": "symfony/twig-bundle", + "version": "v5.4.19", + "source": { + "type": "git", + "url": "https://github.com/symfony/twig-bundle.git", + "reference": "286bd9e38b9bcb142f1eda0a75b0bbeb49ff34bd" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/twig-bundle/zipball/286bd9e38b9bcb142f1eda0a75b0bbeb49ff34bd", + "reference": "286bd9e38b9bcb142f1eda0a75b0bbeb49ff34bd", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/config": "^4.4|^5.0|^6.0", + "symfony/http-foundation": "^4.4|^5.0|^6.0", + "symfony/http-kernel": "^5.0|^6.0", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-php80": "^1.16", + "symfony/twig-bridge": "^5.3|^6.0", + "twig/twig": "^2.13|^3.0.4" + }, + "conflict": { + "symfony/dependency-injection": "<5.3", + "symfony/framework-bundle": "<5.0", + "symfony/service-contracts": ">=3.0", + "symfony/translation": "<5.0" + }, + "require-dev": { + "doctrine/annotations": "^1.10.4|^2", + "doctrine/cache": "^1.0|^2.0", + "symfony/asset": "^4.4|^5.0|^6.0", + "symfony/dependency-injection": "^5.3|^6.0", + "symfony/expression-language": "^4.4|^5.0|^6.0", + "symfony/finder": "^4.4|^5.0|^6.0", + "symfony/form": "^4.4|^5.0|^6.0", + "symfony/framework-bundle": "^5.0|^6.0", + "symfony/routing": "^4.4|^5.0|^6.0", + "symfony/stopwatch": "^4.4|^5.0|^6.0", + "symfony/translation": "^5.0|^6.0", + "symfony/web-link": "^4.4|^5.0|^6.0", + "symfony/yaml": "^4.4|^5.0|^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/v5.4.19" + }, + "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-01T08:32:19+00:00" + }, + { + "name": "symfony/validator", + "version": "v5.4.19", + "source": { + "type": "git", + "url": "https://github.com/symfony/validator.git", + "reference": "98582557a107e2db3a4e95e6dea0df8016dc246c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/validator/zipball/98582557a107e2db3a4e95e6dea0df8016dc246c", + "reference": "98582557a107e2db3a4e95e6dea0df8016dc246c", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1|^3", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-mbstring": "~1.0", + "symfony/polyfill-php73": "~1.0", + "symfony/polyfill-php80": "^1.16", + "symfony/polyfill-php81": "^1.22", + "symfony/translation-contracts": "^1.1|^2|^3" + }, + "conflict": { + "doctrine/annotations": "<1.13", + "doctrine/cache": "<1.11", + "doctrine/lexer": "<1.1", + "phpunit/phpunit": "<5.4.3", + "symfony/dependency-injection": "<4.4", + "symfony/expression-language": "<5.1", + "symfony/http-kernel": "<4.4", + "symfony/intl": "<4.4", + "symfony/property-info": "<5.3", + "symfony/translation": "<4.4", + "symfony/yaml": "<4.4" + }, + "require-dev": { + "doctrine/annotations": "^1.13|^2", + "doctrine/cache": "^1.11|^2.0", + "egulias/email-validator": "^2.1.10|^3|^4", + "symfony/cache": "^4.4|^5.0|^6.0", + "symfony/config": "^4.4|^5.0|^6.0", + "symfony/console": "^4.4|^5.0|^6.0", + "symfony/dependency-injection": "^4.4|^5.0|^6.0", + "symfony/expression-language": "^5.1|^6.0", + "symfony/finder": "^4.4|^5.0|^6.0", + "symfony/http-client": "^4.4|^5.0|^6.0", + "symfony/http-foundation": "^4.4|^5.0|^6.0", + "symfony/http-kernel": "^4.4|^5.0|^6.0", + "symfony/intl": "^4.4|^5.0|^6.0", + "symfony/mime": "^4.4|^5.0|^6.0", + "symfony/property-access": "^4.4|^5.0|^6.0", + "symfony/property-info": "^5.3|^6.0", + "symfony/translation": "^4.4|^5.0|^6.0", + "symfony/yaml": "^4.4|^5.0|^6.0" + }, + "suggest": { + "egulias/email-validator": "Strict (RFC compliant) email validation", + "psr/cache-implementation": "For using the mapping cache.", + "symfony/config": "", + "symfony/expression-language": "For using the Expression validator and the ExpressionLanguageSyntax constraints", + "symfony/http-foundation": "", + "symfony/intl": "", + "symfony/property-access": "For accessing properties within comparison constraints", + "symfony/property-info": "To automatically add NotNull and Type constraints", + "symfony/translation": "For translating validation errors.", + "symfony/yaml": "" + }, + "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/v5.4.19" + }, + "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-15T15:23:36+00:00" + }, + { + "name": "symfony/var-dumper", + "version": "v5.4.36", + "source": { + "type": "git", + "url": "https://github.com/symfony/var-dumper.git", + "reference": "2e9c2b11267119d9c90d6b3fdce5e4e9f15e2e90" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/2e9c2b11267119d9c90d6b3fdce5e4e9f15e2e90", + "reference": "2e9c2b11267119d9c90d6b3fdce5e4e9f15e2e90", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/polyfill-mbstring": "~1.0", + "symfony/polyfill-php80": "^1.16" + }, + "conflict": { + "symfony/console": "<4.4" + }, + "require-dev": { + "ext-iconv": "*", + "symfony/console": "^4.4|^5.0|^6.0", + "symfony/http-kernel": "^4.4|^5.0|^6.0", + "symfony/process": "^4.4|^5.0|^6.0", + "symfony/uid": "^5.1|^6.0", + "twig/twig": "^2.13|^3.0.4" + }, + "suggest": { + "ext-iconv": "To convert non-UTF-8 strings to UTF-8 (or symfony/polyfill-iconv in case ext-iconv cannot be used).", + "ext-intl": "To show region name in time zone dump", + "symfony/console": "To use the ServerDumpCommand and/or the bin/var-dump-server script" + }, + "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/v5.4.36" + }, + "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": "2024-02-15T11:19:14+00:00" + }, + { + "name": "symfony/var-exporter", + "version": "v5.4.35", + "source": { + "type": "git", + "url": "https://github.com/symfony/var-exporter.git", + "reference": "abb0a151b62d6b07e816487e20040464af96cae7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/var-exporter/zipball/abb0a151b62d6b07e816487e20040464af96cae7", + "reference": "abb0a151b62d6b07e816487e20040464af96cae7", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/polyfill-php80": "^1.16" + }, + "require-dev": { + "symfony/var-dumper": "^4.4.9|^5.0.9|^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", + "serialize" + ], + "support": { + "source": "https://github.com/symfony/var-exporter/tree/v5.4.35" + }, + "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": "2024-01-23T13:51:25+00:00" + }, + { + "name": "symfony/web-profiler-bundle", + "version": "v5.4.19", + "source": { + "type": "git", + "url": "https://github.com/symfony/web-profiler-bundle.git", + "reference": "cd83822071f2bc05583af1e53c1bc46be625a56d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/web-profiler-bundle/zipball/cd83822071f2bc05583af1e53c1bc46be625a56d", + "reference": "cd83822071f2bc05583af1e53c1bc46be625a56d", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/config": "^4.4|^5.0|^6.0", + "symfony/framework-bundle": "^5.3|^6.0", + "symfony/http-kernel": "^5.3|^6.0", + "symfony/polyfill-php80": "^1.16", + "symfony/routing": "^4.4|^5.0|^6.0", + "symfony/twig-bundle": "^4.4|^5.0|^6.0", + "twig/twig": "^2.13|^3.0.4" + }, + "conflict": { + "symfony/dependency-injection": "<5.2", + "symfony/form": "<4.4", + "symfony/mailer": "<5.4", + "symfony/messenger": "<4.4" + }, + "require-dev": { + "symfony/browser-kit": "^4.4|^5.0|^6.0", + "symfony/console": "^4.4|^5.0|^6.0", + "symfony/css-selector": "^4.4|^5.0|^6.0", + "symfony/stopwatch": "^4.4|^5.0|^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", + "support": { + "source": "https://github.com/symfony/web-profiler-bundle/tree/v5.4.19" + }, + "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-01T08:32:19+00:00" + }, + { + "name": "symfony/yaml", + "version": "v5.4.35", + "source": { + "type": "git", + "url": "https://github.com/symfony/yaml.git", + "reference": "e78db7f5c70a21f0417a31f414c4a95fe76c07e4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/yaml/zipball/e78db7f5c70a21f0417a31f414c4a95fe76c07e4", + "reference": "e78db7f5c70a21f0417a31f414c4a95fe76c07e4", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1|^3", + "symfony/polyfill-ctype": "^1.8" + }, + "conflict": { + "symfony/console": "<5.3" + }, + "require-dev": { + "symfony/console": "^5.3|^6.0" + }, + "suggest": { + "symfony/console": "For validating YAML files using the lint command" + }, + "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" ], - "description": "Promoting the interoperability of container objects (DIC, SL, etc.)", - "homepage": "https://github.com/container-interop/container-interop", - "abandoned": "psr/container", - "time": "2017-02-14T19:40:03+00:00" + "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/v5.4.35" + }, + "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": "2024-01-23T13:51:25+00:00" }, { - "name": "fabpot/goutte", - "version": "v3.2.3", + "name": "twig/extensions", + "version": "v1.5.4", "source": { "type": "git", - "url": "https://github.com/FriendsOfPHP/Goutte.git", - "reference": "3f0eaf0a40181359470651f1565b3e07e3dd31b8" + "url": "https://github.com/twigphp/Twig-extensions.git", + "reference": "57873c8b0c1be51caa47df2cdb824490beb16202" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/FriendsOfPHP/Goutte/zipball/3f0eaf0a40181359470651f1565b3e07e3dd31b8", - "reference": "3f0eaf0a40181359470651f1565b3e07e3dd31b8", + "url": "https://api.github.com/repos/twigphp/Twig-extensions/zipball/57873c8b0c1be51caa47df2cdb824490beb16202", + "reference": "57873c8b0c1be51caa47df2cdb824490beb16202", "shasum": "" }, "require": { - "guzzlehttp/guzzle": "^6.0", - "php": ">=5.5.0", - "symfony/browser-kit": "~2.1|~3.0|~4.0", - "symfony/css-selector": "~2.1|~3.0|~4.0", - "symfony/dom-crawler": "~2.1|~3.0|~4.0" + "twig/twig": "^1.27|^2.0" }, "require-dev": { - "symfony/phpunit-bridge": "^3.3 || ^4" + "symfony/phpunit-bridge": "^3.4", + "symfony/translation": "^2.7|^3.4" + }, + "suggest": { + "symfony/translation": "Allow the time_diff output to be translated" }, - "type": "application", + "type": "library", "extra": { "branch-alias": { - "dev-master": "3.2-dev" + "dev-master": "1.5-dev" } }, "autoload": { - "psr-4": { - "Goutte\\": "Goutte" + "psr-0": { + "Twig_Extensions_": "lib/" }, - "exclude-from-classmap": [ - "Goutte/Tests" - ] + "psr-4": { + "Twig\\Extensions\\": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -4903,167 +7461,345 @@ "email": "fabien@symfony.com" } ], - "description": "A simple PHP Web Scraper", - "homepage": "https://github.com/FriendsOfPHP/Goutte", + "description": "Common additional features for Twig that do not directly belong in core", "keywords": [ - "scraper" + "i18n", + "text" ], - "time": "2018-06-29T15:13:57+00:00" + "support": { + "issues": "https://github.com/twigphp/Twig-extensions/issues", + "source": "https://github.com/twigphp/Twig-extensions/tree/master" + }, + "abandoned": true, + "time": "2018-12-05T18:34:18+00:00" }, { - "name": "hamcrest/hamcrest-php", - "version": "v2.0.0", + "name": "twig/twig", + "version": "v2.16.0", "source": { "type": "git", - "url": "https://github.com/hamcrest/hamcrest-php.git", - "reference": "776503d3a8e85d4f9a1148614f95b7a608b046ad" + "url": "https://github.com/twigphp/Twig.git", + "reference": "0c9cc7ef2e0ec6d20c5af1200522a89ba101f623" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/hamcrest/hamcrest-php/zipball/776503d3a8e85d4f9a1148614f95b7a608b046ad", - "reference": "776503d3a8e85d4f9a1148614f95b7a608b046ad", + "url": "https://api.github.com/repos/twigphp/Twig/zipball/0c9cc7ef2e0ec6d20c5af1200522a89ba101f623", + "reference": "0c9cc7ef2e0ec6d20c5af1200522a89ba101f623", "shasum": "" }, "require": { - "php": "^5.3|^7.0" + "php": ">=7.1.3", + "symfony/polyfill-ctype": "^1.8", + "symfony/polyfill-mbstring": "^1.3", + "symfony/polyfill-php72": "^1.8" }, - "replace": { - "cordoval/hamcrest-php": "*", - "davedevelopment/hamcrest-php": "*", - "kodova/hamcrest-php": "*" + "require-dev": { + "psr/container": "^1.0", + "symfony/phpunit-bridge": "^5.4.9|^6.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.16-dev" + } + }, + "autoload": { + "psr-0": { + "Twig_": "lib/" + }, + "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/v2.16.0" + }, + "funding": [ + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/twig/twig", + "type": "tidelift" + } + ], + "time": "2023-12-22T07:22:15+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/php-file-iterator": "1.3.3", - "phpunit/phpunit": "~4.0", - "satooshi/php-coveralls": "^1.0" + "phpunit/phpunit": "^8.5.13" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0-dev" + "dev-master": "1.10-dev" } }, "autoload": { - "classmap": [ - "hamcrest" - ] + "psr-4": { + "Webmozart\\Assert\\": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD" + "MIT" ], - "description": "This is the PHP port of Hamcrest Matchers", + "authors": [ + { + "name": "Bernhard Schussek", + "email": "bschussek@gmail.com" + } + ], + "description": "Assertions to validate method input/output with nice error messages.", "keywords": [ - "test" + "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": "composer/pcre", + "version": "3.1.1", + "source": { + "type": "git", + "url": "https://github.com/composer/pcre.git", + "reference": "00104306927c7a0919b4ced2aaa6782c1e61a3c9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/composer/pcre/zipball/00104306927c7a0919b4ced2aaa6782c1e61a3c9", + "reference": "00104306927c7a0919b4ced2aaa6782c1e61a3c9", + "shasum": "" + }, + "require": { + "php": "^7.4 || ^8.0" + }, + "require-dev": { + "phpstan/phpstan": "^1.3", + "phpstan/phpstan-strict-rules": "^1.1", + "symfony/phpunit-bridge": "^5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.x-dev" + } + }, + "autoload": { + "psr-4": { + "Composer\\Pcre\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "http://seld.be" + } + ], + "description": "PCRE wrapping library that offers type-safe preg_* replacements.", + "keywords": [ + "PCRE", + "preg", + "regex", + "regular expression" + ], + "support": { + "issues": "https://github.com/composer/pcre/issues", + "source": "https://github.com/composer/pcre/tree/3.1.1" + }, + "funding": [ + { + "url": "https://packagist.com", + "type": "custom" + }, + { + "url": "https://github.com/composer", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/composer/composer", + "type": "tidelift" + } ], - "time": "2016-01-20T08:20:44+00:00" + "time": "2023-10-11T07:11:09+00:00" }, { - "name": "ingenerator/behat-tableassert", - "version": "v1.2.0", + "name": "composer/xdebug-handler", + "version": "3.0.3", "source": { "type": "git", - "url": "https://github.com/ingenerator/behat-tableassert.git", - "reference": "9c0b254fc798f75151200c58662c31f6d6a05184" + "url": "https://github.com/composer/xdebug-handler.git", + "reference": "ced299686f41dce890debac69273b47ffe98a40c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ingenerator/behat-tableassert/zipball/9c0b254fc798f75151200c58662c31f6d6a05184", - "reference": "9c0b254fc798f75151200c58662c31f6d6a05184", + "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/ced299686f41dce890debac69273b47ffe98a40c", + "reference": "ced299686f41dce890debac69273b47ffe98a40c", "shasum": "" }, "require": { - "behat/gherkin": ">=2.0.0 <5.0.0", - "ext-dom": "*", - "ext-libxml": "*", - "ext-simplexml": "*", - "php": "^7.2" + "composer/pcre": "^1 || ^2 || ^3", + "php": "^7.2.5 || ^8.0", + "psr/log": "^1 || ^2 || ^3" }, "require-dev": { - "behat/mink": "^1.7", - "phpunit/phpunit": "^7.0" - }, - "suggest": { - "behat/mink": "For parsing tables from a browser response" + "phpstan/phpstan": "^1.0", + "phpstan/phpstan-strict-rules": "^1.1", + "symfony/phpunit-bridge": "^6.0" }, "type": "library", "autoload": { "psr-4": { - "Ingenerator\\BehatTableAssert\\": "src/" + "Composer\\XdebugHandler\\": "src" } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Andrew Coulton", - "email": "andrew@ingenerator.com" + "name": "John Stevenson", + "email": "john-stevenson@blueyonder.co.uk" + } + ], + "description": "Restarts a process without Xdebug.", + "keywords": [ + "Xdebug", + "performance" + ], + "support": { + "irc": "irc://irc.freenode.org/composer", + "issues": "https://github.com/composer/xdebug-handler/issues", + "source": "https://github.com/composer/xdebug-handler/tree/3.0.3" + }, + "funding": [ + { + "url": "https://packagist.com", + "type": "custom" + }, + { + "url": "https://github.com/composer", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/composer/composer", + "type": "tidelift" } ], - "description": "Assertions for all sorts of tabular data in behat", - "homepage": "https://github.com/ingenerator/behat-tableassert", - "time": "2019-04-03T14:26:15+00:00" + "time": "2022-02-25T21:32:43+00:00" }, { - "name": "instaclick/php-webdriver", - "version": "1.4.6", + "name": "hamcrest/hamcrest-php", + "version": "v2.0.1", "source": { "type": "git", - "url": "https://github.com/instaclick/php-webdriver.git", - "reference": "bd9405077ca04129a73059a06873bedb5e138402" + "url": "https://github.com/hamcrest/hamcrest-php.git", + "reference": "8c3d0a3f6af734494ad8f6fbbee0ba92422859f3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/instaclick/php-webdriver/zipball/bd9405077ca04129a73059a06873bedb5e138402", - "reference": "bd9405077ca04129a73059a06873bedb5e138402", + "url": "https://api.github.com/repos/hamcrest/hamcrest-php/zipball/8c3d0a3f6af734494ad8f6fbbee0ba92422859f3", + "reference": "8c3d0a3f6af734494ad8f6fbbee0ba92422859f3", "shasum": "" }, "require": { - "ext-curl": "*", - "php": ">=5.3.2" + "php": "^5.3|^7.0|^8.0" + }, + "replace": { + "cordoval/hamcrest-php": "*", + "davedevelopment/hamcrest-php": "*", + "kodova/hamcrest-php": "*" }, "require-dev": { - "phpunit/phpunit": "^4.8", - "satooshi/php-coveralls": "^1.0||^2.0" + "phpunit/php-file-iterator": "^1.4 || ^2.0", + "phpunit/phpunit": "^4.8.36 || ^5.7 || ^6.5 || ^7.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.4.x-dev" + "dev-master": "2.1-dev" } }, "autoload": { - "psr-0": { - "WebDriver": "lib/" - } + "classmap": [ + "hamcrest" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "Apache-2.0" - ], - "authors": [ - { - "name": "Justin Bishop", - "email": "jubishop@gmail.com", - "role": "Developer" - }, - { - "name": "Anthon Pang", - "email": "apang@softwaredevelopment.ca", - "role": "Fork Maintainer" - } + "BSD-3-Clause" ], - "description": "PHP WebDriver for Selenium 2", - "homepage": "http://instaclick.com/", + "description": "This is the PHP port of Hamcrest Matchers", "keywords": [ - "browser", - "selenium", - "webdriver", - "webtest" + "test" ], - "time": "2019-09-23T15:50:44+00:00" + "support": { + "issues": "https://github.com/hamcrest/hamcrest-php/issues", + "source": "https://github.com/hamcrest/hamcrest-php/tree/v2.0.1" + }, + "time": "2020-07-09T08:09:16+00:00" }, { "name": "league/flysystem", @@ -5153,26 +7889,26 @@ }, { "name": "league/mime-type-detection", - "version": "1.7.0", + "version": "1.15.0", "source": { "type": "git", "url": "https://github.com/thephpleague/mime-type-detection.git", - "reference": "3b9dff8aaf7323590c1d2e443db701eb1f9aa0d3" + "reference": "ce0f4d1e8a6f4eb0ddff33f57c69c50fd09f4301" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/mime-type-detection/zipball/3b9dff8aaf7323590c1d2e443db701eb1f9aa0d3", - "reference": "3b9dff8aaf7323590c1d2e443db701eb1f9aa0d3", + "url": "https://api.github.com/repos/thephpleague/mime-type-detection/zipball/ce0f4d1e8a6f4eb0ddff33f57c69c50fd09f4301", + "reference": "ce0f4d1e8a6f4eb0ddff33f57c69c50fd09f4301", "shasum": "" }, "require": { "ext-fileinfo": "*", - "php": "^7.2 || ^8.0" + "php": "^7.4 || ^8.0" }, "require-dev": { - "friendsofphp/php-cs-fixer": "^2.18", + "friendsofphp/php-cs-fixer": "^3.2", "phpstan/phpstan": "^0.12.68", - "phpunit/phpunit": "^8.5.8 || ^9.3" + "phpunit/phpunit": "^8.5.8 || ^9.3 || ^10.0" }, "type": "library", "autoload": { @@ -5191,6 +7927,10 @@ } ], "description": "Mime-type detection for Flysystem", + "support": { + "issues": "https://github.com/thephpleague/mime-type-detection/issues", + "source": "https://github.com/thephpleague/mime-type-detection/tree/1.15.0" + }, "funding": [ { "url": "https://github.com/frankdejonge", @@ -5201,48 +7941,50 @@ "type": "tidelift" } ], - "time": "2021-01-18T20:58:21+00:00" + "time": "2024-01-28T23:22:08+00:00" }, { "name": "liip/functional-test-bundle", - "version": "4.3.0", + "version": "4.9.0", "source": { "type": "git", "url": "https://github.com/liip/LiipFunctionalTestBundle.git", - "reference": "9797828746b67b7aeb03a136a951d28781f09253" + "reference": "782586afa58080c27b5557fbff7239f87a747b1d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/liip/LiipFunctionalTestBundle/zipball/9797828746b67b7aeb03a136a951d28781f09253", - "reference": "9797828746b67b7aeb03a136a951d28781f09253", + "url": "https://api.github.com/repos/liip/LiipFunctionalTestBundle/zipball/782586afa58080c27b5557fbff7239f87a747b1d", + "reference": "782586afa58080c27b5557fbff7239f87a747b1d", "shasum": "" }, "require": { - "doctrine/annotations": "^1.3", "php": "^7.2 || ^8.0", - "phpunit/phpunit": "^7.5.0 || ^8.0 || ^9.0", - "symfony/browser-kit": "^3.4 || ^4.4 || ^5.1", - "symfony/framework-bundle": "^3.4 || ^4.4 || ^5.1" + "phpunit/phpunit": "^7.5.0 || ^8.0 || ^9.0 || ^10.0", + "symfony/browser-kit": "^4.4 || ^5.1 || ^6.0", + "symfony/framework-bundle": "^4.4 || ^5.1 || ^6.0" }, "conflict": { "symfony/framework-bundle": "4.3.0" }, "require-dev": { - "doctrine/doctrine-bundle": "^1.8 || ^2.0", - "doctrine/orm": "^2.6.3", + "doctrine/annotations": "^1.3 || ^2.0", + "doctrine/doctrine-bundle": "^2.1", + "doctrine/orm": "^2.7", + "ext-json": "*", "monolog/monolog": "~1.11", - "symfony/css-selector": "^3.4.33 || ^4.4 || ^5.1", - "symfony/form": "^3.4.33 || ^4.4 || ^5.1", - "symfony/http-kernel": "^3.4.33 || ^4.4 || ^5.1", + "symfony/css-selector": "^4.4 || ^5.1 || ^6.0", + "symfony/doctrine-bridge": "^4.4 || ^5.1 || ^6.0", + "symfony/form": "^4.4 || ^5.1 || ^6.0", + "symfony/http-kernel": "^4.4 || ^5.1 || ^6.0", "symfony/monolog-bundle": "^3.4", - "symfony/phpunit-bridge": "^3.4.33 || ^4.4 || ^5.1", - "symfony/security-bundle": "^3.4.33 || ^4.4 || ^5.1", - "symfony/twig-bundle": "^3.4.33 || ^4.4 || ^5.1", - "symfony/validator": "^3.4.33 || ^4.4 || ^5.1", - "symfony/yaml": "^3.4.33 || ^4.4 || ^5.1", + "symfony/security-bundle": "^4.4 || ^5.1 || ^6.0", + "symfony/twig-bundle": "^4.4 || ^5.1 || ^6.0", + "symfony/validator": "^4.4 || ^5.1 || ^6.0", + "symfony/yaml": "^4.4 || ^5.1 || ^6.0", "twig/twig": "^2.0 || ^3.0" }, "suggest": { + "doctrine/annotations": "Required to use the @QueryCount(…) annotation", "liip/test-fixtures-bundle": "Efficient loading of Doctrine fixtures in functional test-cases for Symfony applications" }, "type": "symfony-bundle", @@ -5277,9 +8019,9 @@ ], "support": { "issues": "https://github.com/liip/LiipFunctionalTestBundle/issues", - "source": "https://github.com/liip/LiipFunctionalTestBundle/tree/4.3.0" + "source": "https://github.com/liip/LiipFunctionalTestBundle/tree/4.9.0" }, - "time": "2021-02-24T21:17:26+00:00" + "time": "2023-04-11T18:57:22+00:00" }, { "name": "malukenho/docheader", @@ -5339,35 +8081,38 @@ }, { "name": "mockery/mockery", - "version": "1.3.1", + "version": "1.6.7", "source": { "type": "git", "url": "https://github.com/mockery/mockery.git", - "reference": "f69bbde7d7a75d6b2862d9ca8fab1cd28014b4be" + "reference": "0cc058854b3195ba21dc6b1f7b1f60f4ef3a9c06" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/mockery/mockery/zipball/f69bbde7d7a75d6b2862d9ca8fab1cd28014b4be", - "reference": "f69bbde7d7a75d6b2862d9ca8fab1cd28014b4be", + "url": "https://api.github.com/repos/mockery/mockery/zipball/0cc058854b3195ba21dc6b1f7b1f60f4ef3a9c06", + "reference": "0cc058854b3195ba21dc6b1f7b1f60f4ef3a9c06", "shasum": "" }, "require": { - "hamcrest/hamcrest-php": "~2.0", + "hamcrest/hamcrest-php": "^2.0.1", "lib-pcre": ">=7.0", - "php": ">=5.6.0" + "php": ">=7.3" + }, + "conflict": { + "phpunit/phpunit": "<8.0" }, "require-dev": { - "phpunit/phpunit": "~5.7.10|~6.5|~7.0|~8.0" + "phpunit/phpunit": "^8.5 || ^9.6.10", + "symplify/easy-coding-standard": "^12.0.8" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.3.x-dev" - } - }, "autoload": { - "psr-0": { - "Mockery": "library/" + "files": [ + "library/helpers.php", + "library/Mockery.php" + ], + "psr-4": { + "Mockery\\": "library/Mockery" } }, "notification-url": "https://packagist.org/downloads/", @@ -5378,12 +8123,20 @@ { "name": "Pádraic Brady", "email": "padraic.brady@gmail.com", - "homepage": "http://blog.astrumfutura.com" + "homepage": "https://github.com/padraic", + "role": "Author" }, { "name": "Dave Marshall", "email": "dave.marshall@atstsolutions.co.uk", - "homepage": "http://davedevelopment.co.uk" + "homepage": "https://davedevelopment.co.uk", + "role": "Developer" + }, + { + "name": "Nathanael Esayeas", + "email": "nathanael.esayeas@protonmail.com", + "homepage": "https://github.com/ghostwriter", + "role": "Lead Developer" } ], "description": "Mockery is a simple yet flexible PHP mock object framework", @@ -5401,32 +8154,39 @@ "testing" ], "support": { + "docs": "https://docs.mockery.io/", "issues": "https://github.com/mockery/mockery/issues", - "source": "https://github.com/mockery/mockery/tree/master" + "rss": "https://github.com/mockery/mockery/releases.atom", + "security": "https://github.com/mockery/mockery/security/advisories", + "source": "https://github.com/mockery/mockery" }, - "time": "2019-12-26T09:49:15+00:00" + "time": "2023-12-10T02:24:34+00:00" }, { "name": "myclabs/deep-copy", - "version": "1.10.2", + "version": "1.11.1", "source": { "type": "git", "url": "https://github.com/myclabs/DeepCopy.git", - "reference": "776f831124e9c62e1a2c601ecc52e776d8bb7220" + "reference": "7284c22080590fb39f2ffa3e9057f10a4ddd0e0c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/776f831124e9c62e1a2c601ecc52e776d8bb7220", - "reference": "776f831124e9c62e1a2c601ecc52e776d8bb7220", + "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.0", - "doctrine/common": "^2.6", - "phpunit/phpunit": "^7.1" + "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": { @@ -5451,7 +8211,7 @@ ], "support": { "issues": "https://github.com/myclabs/DeepCopy/issues", - "source": "https://github.com/myclabs/DeepCopy/tree/1.10.2" + "source": "https://github.com/myclabs/DeepCopy/tree/1.11.1" }, "funding": [ { @@ -5459,32 +8219,32 @@ "type": "tidelift" } ], - "time": "2020-11-13T09:40:50+00:00" + "time": "2023-03-08T13:26:56+00:00" }, { "name": "pdepend/pdepend", - "version": "2.13.0", + "version": "2.16.2", "source": { "type": "git", "url": "https://github.com/pdepend/pdepend.git", - "reference": "31be7cd4f305f3f7b52af99c1cb13fc938d1cfad" + "reference": "f942b208dc2a0868454d01b29f0c75bbcfc6ed58" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/pdepend/pdepend/zipball/31be7cd4f305f3f7b52af99c1cb13fc938d1cfad", - "reference": "31be7cd4f305f3f7b52af99c1cb13fc938d1cfad", + "url": "https://api.github.com/repos/pdepend/pdepend/zipball/f942b208dc2a0868454d01b29f0c75bbcfc6ed58", + "reference": "f942b208dc2a0868454d01b29f0c75bbcfc6ed58", "shasum": "" }, "require": { "php": ">=5.3.7", - "symfony/config": "^2.3.0|^3|^4|^5|^6.0", - "symfony/dependency-injection": "^2.3.0|^3|^4|^5|^6.0", - "symfony/filesystem": "^2.3.0|^3|^4|^5|^6.0" + "symfony/config": "^2.3.0|^3|^4|^5|^6.0|^7.0", + "symfony/dependency-injection": "^2.3.0|^3|^4|^5|^6.0|^7.0", + "symfony/filesystem": "^2.3.0|^3|^4|^5|^6.0|^7.0", + "symfony/polyfill-mbstring": "^1.19" }, "require-dev": { "easy-doc/easy-doc": "0.0.0|^1.2.3", "gregwar/rst": "^1.0", - "phpunit/phpunit": "^4.8.36|^5.7.27", "squizlabs/php_codesniffer": "^2.0.0" }, "bin": [ @@ -5506,9 +8266,15 @@ "BSD-3-Clause" ], "description": "Official version of pdepend to be handled with Composer", + "keywords": [ + "PHP Depend", + "PHP_Depend", + "dev", + "pdepend" + ], "support": { "issues": "https://github.com/pdepend/pdepend/issues", - "source": "https://github.com/pdepend/pdepend/tree/2.13.0" + "source": "https://github.com/pdepend/pdepend/tree/2.16.2" }, "funding": [ { @@ -5516,7 +8282,7 @@ "type": "tidelift" } ], - "time": "2023-02-28T20:56:15+00:00" + "time": "2023-12-17T18:09:59+00:00" }, { "name": "phake/phake", @@ -5763,22 +8529,22 @@ }, { "name": "phpmd/phpmd", - "version": "2.13.0", + "version": "2.15.0", "source": { "type": "git", "url": "https://github.com/phpmd/phpmd.git", - "reference": "dad0228156856b3ad959992f9748514fa943f3e3" + "reference": "74a1f56e33afad4128b886e334093e98e1b5e7c0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpmd/phpmd/zipball/dad0228156856b3ad959992f9748514fa943f3e3", - "reference": "dad0228156856b3ad959992f9748514fa943f3e3", + "url": "https://api.github.com/repos/phpmd/phpmd/zipball/74a1f56e33afad4128b886e334093e98e1b5e7c0", + "reference": "74a1f56e33afad4128b886e334093e98e1b5e7c0", "shasum": "" }, "require": { "composer/xdebug-handler": "^1.0 || ^2.0 || ^3.0", "ext-xml": "*", - "pdepend/pdepend": "^2.12.1", + "pdepend/pdepend": "^2.16.1", "php": ">=5.3.9" }, "require-dev": { @@ -5787,8 +8553,7 @@ "ext-simplexml": "*", "gregwar/rst": "^1.0", "mikey179/vfsstream": "^1.6.8", - "phpunit/phpunit": "^4.8.36 || ^5.7.27", - "squizlabs/php_codesniffer": "^2.0" + "squizlabs/php_codesniffer": "^2.9.2 || ^3.7.2" }, "bin": [ "src/bin/phpmd" @@ -5825,6 +8590,7 @@ "description": "PHPMD is a spin-off project of PHP Depend and aims to be a PHP equivalent of the well known Java tool PMD.", "homepage": "https://phpmd.org/", "keywords": [ + "dev", "mess detection", "mess detector", "pdepend", @@ -5834,7 +8600,7 @@ "support": { "irc": "irc://irc.freenode.org/phpmd", "issues": "https://github.com/phpmd/phpmd/issues", - "source": "https://github.com/phpmd/phpmd/tree/2.13.0" + "source": "https://github.com/phpmd/phpmd/tree/2.15.0" }, "funding": [ { @@ -5842,7 +8608,7 @@ "type": "tidelift" } ], - "time": "2022-09-10T08:44:15+00:00" + "time": "2023-12-11T08:22:20+00:00" }, { "name": "phpunit/php-code-coverage", @@ -6083,29 +8849,29 @@ }, { "name": "phpunit/php-token-stream", - "version": "3.1.3", + "version": "4.0.4", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-token-stream.git", - "reference": "9c1da83261628cb24b6a6df371b6e312b3954768" + "reference": "a853a0e183b9db7eed023d7933a858fa1c8d25a3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/9c1da83261628cb24b6a6df371b6e312b3954768", - "reference": "9c1da83261628cb24b6a6df371b6e312b3954768", + "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/a853a0e183b9db7eed023d7933a858fa1c8d25a3", + "reference": "a853a0e183b9db7eed023d7933a858fa1c8d25a3", "shasum": "" }, "require": { "ext-tokenizer": "*", - "php": ">=7.1" + "php": "^7.3 || ^8.0" }, "require-dev": { - "phpunit/phpunit": "^7.0" + "phpunit/phpunit": "^9.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.1-dev" + "dev-master": "4.0-dev" } }, "autoload": { @@ -6130,7 +8896,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/php-token-stream/issues", - "source": "https://github.com/sebastianbergmann/php-token-stream/tree/3.1.3" + "source": "https://github.com/sebastianbergmann/php-token-stream/tree/master" }, "funding": [ { @@ -6139,20 +8905,20 @@ } ], "abandoned": true, - "time": "2021-07-26T12:15:06+00:00" + "time": "2020-08-04T08:28:15+00:00" }, { "name": "phpunit/phpunit", - "version": "8.5.33", + "version": "8.5.36", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "7d1ff0e8c6b35db78ff13e3e05517d7cbf7aa32e" + "reference": "9652df58e06a681429d8cfdaec3c43d6de581d5a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/7d1ff0e8c6b35db78ff13e3e05517d7cbf7aa32e", - "reference": "7d1ff0e8c6b35db78ff13e3e05517d7cbf7aa32e", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/9652df58e06a681429d8cfdaec3c43d6de581d5a", + "reference": "9652df58e06a681429d8cfdaec3c43d6de581d5a", "shasum": "" }, "require": { @@ -6182,9 +8948,9 @@ "sebastian/version": "^2.0.1" }, "suggest": { - "ext-soap": "*", - "ext-xdebug": "*", - "phpunit/php-invoker": "^2.0.0" + "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", + "phpunit/php-invoker": "To allow enforcing time limits" }, "bin": [ "phpunit" @@ -6220,7 +8986,8 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/phpunit/issues", - "source": "https://github.com/sebastianbergmann/phpunit/tree/8.5.33" + "security": "https://github.com/sebastianbergmann/phpunit/security/policy", + "source": "https://github.com/sebastianbergmann/phpunit/tree/8.5.36" }, "funding": [ { @@ -6236,7 +9003,7 @@ "type": "tidelift" } ], - "time": "2023-02-27T13:04:50+00:00" + "time": "2023-12-01T16:52:15+00:00" }, { "name": "sebastian/code-unit-reverse-lookup", @@ -6575,16 +9342,16 @@ }, { "name": "sebastian/global-state", - "version": "3.0.2", + "version": "3.0.3", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/global-state.git", - "reference": "de036ec91d55d2a9e0db2ba975b512cdb1c23921" + "reference": "66783ce213de415b451b904bfef9dda0cf9aeae0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/de036ec91d55d2a9e0db2ba975b512cdb1c23921", - "reference": "de036ec91d55d2a9e0db2ba975b512cdb1c23921", + "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/66783ce213de415b451b904bfef9dda0cf9aeae0", + "reference": "66783ce213de415b451b904bfef9dda0cf9aeae0", "shasum": "" }, "require": { @@ -6627,7 +9394,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/global-state/issues", - "source": "https://github.com/sebastianbergmann/global-state/tree/3.0.2" + "source": "https://github.com/sebastianbergmann/global-state/tree/3.0.3" }, "funding": [ { @@ -6635,7 +9402,7 @@ "type": "github" } ], - "time": "2022-02-10T06:55:38+00:00" + "time": "2023-08-02T09:23:32+00:00" }, { "name": "sebastian/object-enumerator", @@ -6969,16 +9736,16 @@ }, { "name": "squizlabs/php_codesniffer", - "version": "3.7.2", + "version": "3.9.0", "source": { "type": "git", - "url": "https://github.com/squizlabs/PHP_CodeSniffer.git", - "reference": "ed8e00df0a83aa96acf703f8c2979ff33341f879" + "url": "https://github.com/PHPCSStandards/PHP_CodeSniffer.git", + "reference": "d63cee4890a8afaf86a22e51ad4d97c91dd4579b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/ed8e00df0a83aa96acf703f8c2979ff33341f879", - "reference": "ed8e00df0a83aa96acf703f8c2979ff33341f879", + "url": "https://api.github.com/repos/PHPCSStandards/PHP_CodeSniffer/zipball/d63cee4890a8afaf86a22e51ad4d97c91dd4579b", + "reference": "d63cee4890a8afaf86a22e51ad4d97c91dd4579b", "shasum": "" }, "require": { @@ -6988,11 +9755,11 @@ "php": ">=5.4.0" }, "require-dev": { - "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0" + "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0 || ^8.0 || ^9.3.4" }, "bin": [ - "bin/phpcs", - "bin/phpcbf" + "bin/phpcbf", + "bin/phpcs" ], "type": "library", "extra": { @@ -7007,54 +9774,225 @@ "authors": [ { "name": "Greg Sherwood", - "role": "lead" + "role": "Former lead" + }, + { + "name": "Juliette Reinders Folmer", + "role": "Current lead" + }, + { + "name": "Contributors", + "homepage": "https://github.com/PHPCSStandards/PHP_CodeSniffer/graphs/contributors" } ], "description": "PHP_CodeSniffer tokenizes PHP, JavaScript and CSS files and detects violations of a defined set of coding standards.", - "homepage": "https://github.com/squizlabs/PHP_CodeSniffer", + "homepage": "https://github.com/PHPCSStandards/PHP_CodeSniffer", "keywords": [ "phpcs", "standards", "static analysis" ], "support": { - "issues": "https://github.com/squizlabs/PHP_CodeSniffer/issues", - "source": "https://github.com/squizlabs/PHP_CodeSniffer", - "wiki": "https://github.com/squizlabs/PHP_CodeSniffer/wiki" + "issues": "https://github.com/PHPCSStandards/PHP_CodeSniffer/issues", + "security": "https://github.com/PHPCSStandards/PHP_CodeSniffer/security/policy", + "source": "https://github.com/PHPCSStandards/PHP_CodeSniffer", + "wiki": "https://github.com/PHPCSStandards/PHP_CodeSniffer/wiki" + }, + "funding": [ + { + "url": "https://github.com/PHPCSStandards", + "type": "github" + }, + { + "url": "https://github.com/jrfnl", + "type": "github" + }, + { + "url": "https://opencollective.com/php_codesniffer", + "type": "open_collective" + } + ], + "time": "2024-02-16T15:06:51+00:00" + }, + { + "name": "symfony/browser-kit", + "version": "v5.4.35", + "source": { + "type": "git", + "url": "https://github.com/symfony/browser-kit.git", + "reference": "2f6f979b579ed1c051465c3c2fb81daf5bb4a002" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/browser-kit/zipball/2f6f979b579ed1c051465c3c2fb81daf5bb4a002", + "reference": "2f6f979b579ed1c051465c3c2fb81daf5bb4a002", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/dom-crawler": "^4.4|^5.0|^6.0", + "symfony/polyfill-php80": "^1.16" + }, + "require-dev": { + "symfony/css-selector": "^4.4|^5.0|^6.0", + "symfony/http-client": "^4.4|^5.0|^6.0", + "symfony/mime": "^4.4|^5.0|^6.0", + "symfony/process": "^4.4|^5.0|^6.0" + }, + "suggest": { + "symfony/process": "" + }, + "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/v5.4.35" + }, + "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": "2024-01-23T13:51:25+00:00" + }, + { + "name": "symfony/dom-crawler", + "version": "v5.4.35", + "source": { + "type": "git", + "url": "https://github.com/symfony/dom-crawler.git", + "reference": "e3b4806f88abf106a411847a78619a542e71de29" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/e3b4806f88abf106a411847a78619a542e71de29", + "reference": "e3b4806f88abf106a411847a78619a542e71de29", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1|^3", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-mbstring": "~1.0", + "symfony/polyfill-php80": "^1.16" + }, + "conflict": { + "masterminds/html5": "<2.6" + }, + "require-dev": { + "masterminds/html5": "^2.6", + "symfony/css-selector": "^4.4|^5.0|^6.0" + }, + "suggest": { + "symfony/css-selector": "" + }, + "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/v5.4.35" }, - "time": "2023-02-22T23:07:41+00:00" + "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": "2024-01-23T13:51:25+00:00" }, { "name": "symfony/phpunit-bridge", - "version": "v3.4.31", + "version": "v5.4.36", "source": { "type": "git", "url": "https://github.com/symfony/phpunit-bridge.git", - "reference": "028617b04ae19d99d89089626ac969d161244ebc" + "reference": "c4d978502e03cc6a45d8454e06e59ff22d4907d5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/phpunit-bridge/zipball/028617b04ae19d99d89089626ac969d161244ebc", - "reference": "028617b04ae19d99d89089626ac969d161244ebc", + "url": "https://api.github.com/repos/symfony/phpunit-bridge/zipball/c4d978502e03cc6a45d8454e06e59ff22d4907d5", + "reference": "c4d978502e03cc6a45d8454e06e59ff22d4907d5", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": ">=7.1.3", + "symfony/deprecation-contracts": "^2.1|^3" }, "conflict": { - "phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0" + "phpunit/phpunit": "<7.5|9.1.2" + }, + "require-dev": { + "symfony/error-handler": "^4.4|^5.0|^6.0" }, "suggest": { - "symfony/debug": "For tracking deprecated interfaces usages at runtime with DebugClassLoader" + "symfony/error-handler": "For tracking deprecated interfaces usages at runtime with DebugClassLoader" }, "bin": [ "bin/simple-phpunit" ], "type": "symfony-bridge", "extra": { - "branch-alias": { - "dev-master": "3.4-dev" - }, "thanks": { "name": "phpunit/phpunit", "url": "https://github.com/sebastianbergmann/phpunit" @@ -7085,22 +10023,39 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony PHPUnit Bridge", + "description": "Provides utilities for PHPUnit, especially user deprecation notices management", "homepage": "https://symfony.com", - "time": "2019-08-20T13:31:17+00:00" + "support": { + "source": "https://github.com/symfony/phpunit-bridge/tree/v5.4.36" + }, + "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": "2024-02-08T14:03:57+00:00" }, { "name": "theseer/tokenizer", - "version": "1.2.1", + "version": "1.2.2", "source": { "type": "git", "url": "https://github.com/theseer/tokenizer.git", - "reference": "34a41e998c2183e22995f158c581e7b5e755ab9e" + "reference": "b2ad5003ca10d4ee50a12da31de12a5774ba6b96" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/theseer/tokenizer/zipball/34a41e998c2183e22995f158c581e7b5e755ab9e", - "reference": "34a41e998c2183e22995f158c581e7b5e755ab9e", + "url": "https://api.github.com/repos/theseer/tokenizer/zipball/b2ad5003ca10d4ee50a12da31de12a5774ba6b96", + "reference": "b2ad5003ca10d4ee50a12da31de12a5774ba6b96", "shasum": "" }, "require": { @@ -7129,7 +10084,7 @@ "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" + "source": "https://github.com/theseer/tokenizer/tree/1.2.2" }, "funding": [ { @@ -7137,7 +10092,7 @@ "type": "github" } ], - "time": "2021-07-28T10:34:58+00:00" + "time": "2023-11-20T00:12:19+00:00" } ], "aliases": [], @@ -7146,7 +10101,7 @@ "prefer-stable": false, "prefer-lowest": false, "platform": { - "php": "7.2", + "php": "7.4", "ext-dom": "*", "ext-json": "*", "ext-mbstring": "*", @@ -7154,7 +10109,7 @@ }, "platform-dev": [], "platform-overrides": { - "php": "7.2" + "php": "7.4" }, - "plugin-api-version": "2.3.0" + "plugin-api-version": "2.6.0" } diff --git a/library/EngineBlock/Corto/Model/Consent.php b/library/EngineBlock/Corto/Model/Consent.php index 96c013357d..9b8aee3af5 100644 --- a/library/EngineBlock/Corto/Model/Consent.php +++ b/library/EngineBlock/Corto/Model/Consent.php @@ -116,7 +116,7 @@ public function giveImplicitConsentFor(ServiceProvider $serviceProvider) */ protected function _getConsentDatabaseConnection() { - return $this->_databaseConnectionFactory->create(); + return $this->_databaseConnectionFactory->getConnection(); } protected function _getConsentUid() diff --git a/library/EngineBlock/Database/ConnectionFactory.php b/library/EngineBlock/Database/ConnectionFactory.php index 82612d990e..87a08e775c 100644 --- a/library/EngineBlock/Database/ConnectionFactory.php +++ b/library/EngineBlock/Database/ConnectionFactory.php @@ -32,16 +32,11 @@ public function __construct(EntityManager $em) } /** - * Create a new Database connection, for a given mode self::MODE_READ and self::MODE_WRITE, - * defaults to write mode. - * - * @return \Doctrine\DBAL\Driver\PDOConnection - * - * @deprecated This functionality will be removed + * Get database connection */ - public function create() + public function getConnection() { - return $this->connection->getWrappedConnection(); + return $this->connection; } } diff --git a/library/EngineBlock/Saml2/NameIdResolver.php b/library/EngineBlock/Saml2/NameIdResolver.php index 9df8b31937..09d1f59219 100644 --- a/library/EngineBlock/Saml2/NameIdResolver.php +++ b/library/EngineBlock/Saml2/NameIdResolver.php @@ -264,8 +264,7 @@ protected function _fetchServiceProviderUuid($spEntityId) $statement = $this->_getDb()->prepare( 'SELECT uuid FROM service_provider_uuid WHERE service_provider_entity_id=?' ); - $statement->execute(array($spEntityId)); - $result = $statement->fetchAll(); + $result = $statement->executeQuery(array($spEntityId))->fetchAllAssociative(); if (count($result) > 1) { throw new EngineBlock_Exception(sprintf('Multiple SP UUIDs found? For SP: "%s"', $spEntityId)); @@ -278,7 +277,7 @@ protected function _storeServiceProviderUuid($spEntityId, $uuid) { $this->_getDb()->prepare( 'INSERT INTO service_provider_uuid (uuid, service_provider_entity_id) VALUES (?,?)' - )->execute( + )->executeStatement( array($uuid, $spEntityId) ); } @@ -288,8 +287,7 @@ protected function _fetchPersistentId($serviceProviderUuid, $userUuid) $statement = $this->_getDb()->prepare( "SELECT persistent_id FROM saml_persistent_id WHERE service_provider_uuid = ? AND user_uuid = ?" ); - $statement->execute(array($serviceProviderUuid, $userUuid)); - $result = $statement->fetchAll(); + $result = $statement->executeQuery(array($serviceProviderUuid, $userUuid))->fetchAllAssociative(); if (count($result) > 1) { throw new EngineBlock_Exception( sprintf( @@ -311,7 +309,7 @@ protected function _storePersistentId($persistentId, $serviceProviderUuid, $user { $this->_getDb()->prepare( "INSERT INTO saml_persistent_id (persistent_id, service_provider_uuid, user_uuid) VALUES (?,?,?)" - )->execute( + )->executeStatement( array($persistentId, $serviceProviderUuid, $userUuid) ); } @@ -324,7 +322,7 @@ protected function _getDb() } $factory = EngineBlock_ApplicationSingleton::getInstance()->getDiContainer()->getDatabaseConnectionFactory(); - $s_db = $factory->create(); + $s_db = $factory->getConnection(); return $s_db; } diff --git a/library/EngineBlock/User.php b/library/EngineBlock/User.php index 266c879ab4..b0fe3a8868 100644 --- a/library/EngineBlock/User.php +++ b/library/EngineBlock/User.php @@ -126,7 +126,7 @@ protected function _deleteUserConsent() protected function _getDatabaseConnection() { $pdo = EngineBlock_ApplicationSingleton::getInstance()->getDiContainer()->getDatabaseConnectionFactory(); - return $pdo->create(); + return $pdo->getConnection(); } /** diff --git a/src/OpenConext/EngineBlock/Metadata/Entity/IdentityProvider.php b/src/OpenConext/EngineBlock/Metadata/Entity/IdentityProvider.php index b33b439bad..4f1182645d 100644 --- a/src/OpenConext/EngineBlock/Metadata/Entity/IdentityProvider.php +++ b/src/OpenConext/EngineBlock/Metadata/Entity/IdentityProvider.php @@ -76,7 +76,7 @@ class IdentityProvider extends AbstractRole /** * @var ConsentSettings * - * @ORM\Column(name="consent_settings", type="json_array", length=16777215) + * @ORM\Column(name="consent_settings", type="json", length=16777215) */ private $consentSettings; diff --git a/src/OpenConext/EngineBlock/Metadata/Factory/ValueObject/EngineBlockConfiguration.php b/src/OpenConext/EngineBlock/Metadata/Factory/ValueObject/EngineBlockConfiguration.php index b6c43a0bb8..d0b17fa323 100644 --- a/src/OpenConext/EngineBlock/Metadata/Factory/ValueObject/EngineBlockConfiguration.php +++ b/src/OpenConext/EngineBlock/Metadata/Factory/ValueObject/EngineBlockConfiguration.php @@ -21,7 +21,7 @@ use OpenConext\EngineBlock\Metadata\ContactPerson; use OpenConext\EngineBlock\Metadata\Logo; use OpenConext\EngineBlock\Metadata\Organization; -use Symfony\Component\Translation\TranslatorInterface; +use Symfony\Contracts\Translation\TranslatorInterface; /** * Contains the EngineBlock information that is required to generate SP and IdP XML metadata diff --git a/src/OpenConext/EngineBlock/Service/RequestAccessMailer.php b/src/OpenConext/EngineBlock/Service/RequestAccessMailer.php index 9eefed4a4a..16caefbecf 100644 --- a/src/OpenConext/EngineBlock/Service/RequestAccessMailer.php +++ b/src/OpenConext/EngineBlock/Service/RequestAccessMailer.php @@ -20,6 +20,8 @@ use Swift_Mailer; use Swift_Message; +use Symfony\Component\Mailer\Mailer; +use Symfony\Component\Mime\RawMessage; class RequestAccessMailer { @@ -47,7 +49,7 @@ class RequestAccessMailer TPL; /** - * @var Swift_Mailer + * @var Mailer */ private $mailer; @@ -57,10 +59,10 @@ class RequestAccessMailer private $requestAccessEmailAddress; /** - * @param Swift_Mailer $mailer + * @param Mailer $mailer * @param string $requestAccessEmailAddress */ - public function __construct(Swift_Mailer $mailer, $requestAccessEmailAddress) + public function __construct(Mailer $mailer, $requestAccessEmailAddress) { $this->mailer = $mailer; $this->requestAccessEmailAddress = $requestAccessEmailAddress; @@ -93,12 +95,13 @@ public function sendRequestAccessEmailForIdp($spName, $spEntityId, $institution, // We use the destination email address also as a From since we do // not have a better generic sender address available currently. - $message = new Swift_Message(); - $message - ->setSubject($subject) - ->setFrom($this->requestAccessEmailAddress) - ->setTo($this->requestAccessEmailAddress) - ->setBody($body, 'text/plain'); + $message = new RawMessage($body); + // @TODO: ENT-4567 fix from SwiftMailer to Mailer +// $message +// ->setSubject($subject) +// ->setFrom($email, $name) +// ->setTo($this->requestAccessEmailAddress) +// ->setBody($body, 'text/plain'); $this->mailer->send($message); } diff --git a/src/OpenConext/EngineBlockBundle/Authentication/Repository/DbalConsentRepository.php b/src/OpenConext/EngineBlockBundle/Authentication/Repository/DbalConsentRepository.php index 881a7dacfe..33ee4fa736 100644 --- a/src/OpenConext/EngineBlockBundle/Authentication/Repository/DbalConsentRepository.php +++ b/src/OpenConext/EngineBlockBundle/Authentication/Repository/DbalConsentRepository.php @@ -72,7 +72,7 @@ public function findAllFor($userId) try { $statement = $this->connection->executeQuery($sql, ['hashed_user_id' => sha1($userId)]); - $rows = $statement->fetchAll(PDO::FETCH_ASSOC); + $rows = $statement->fetchAllAssociative(); } catch (DBALException $exception) { throw new RuntimeException('Could not fetch user consents from the database', 0, $exception); } diff --git a/src/OpenConext/EngineBlockBundle/Configuration/ErrorFeedbackConfiguration.php b/src/OpenConext/EngineBlockBundle/Configuration/ErrorFeedbackConfiguration.php index 0e445a8ace..38c7ca1fae 100644 --- a/src/OpenConext/EngineBlockBundle/Configuration/ErrorFeedbackConfiguration.php +++ b/src/OpenConext/EngineBlockBundle/Configuration/ErrorFeedbackConfiguration.php @@ -18,7 +18,7 @@ namespace OpenConext\EngineBlockBundle\Configuration; -use Symfony\Component\Translation\TranslatorInterface; +use Symfony\Contracts\Translation\TranslatorInterface; class ErrorFeedbackConfiguration implements ErrorFeedbackConfigurationInterface { diff --git a/src/OpenConext/EngineBlockBundle/Controller/FeedbackController.php b/src/OpenConext/EngineBlockBundle/Controller/FeedbackController.php index a41437ff95..da26cec3d6 100644 --- a/src/OpenConext/EngineBlockBundle/Controller/FeedbackController.php +++ b/src/OpenConext/EngineBlockBundle/Controller/FeedbackController.php @@ -24,7 +24,7 @@ use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\HttpFoundation\Session\SessionInterface; -use Symfony\Component\Translation\TranslatorInterface; +use Symfony\Contracts\Translation\TranslatorInterface; use Twig_Environment; /** diff --git a/src/OpenConext/EngineBlockBundle/DependencyInjection/Configuration.php b/src/OpenConext/EngineBlockBundle/DependencyInjection/Configuration.php index 02f5676cb9..95affcc0ad 100644 --- a/src/OpenConext/EngineBlockBundle/DependencyInjection/Configuration.php +++ b/src/OpenConext/EngineBlockBundle/DependencyInjection/Configuration.php @@ -26,8 +26,8 @@ class Configuration implements ConfigurationInterface { public function getConfigTreeBuilder() { - $treeBuilder = new TreeBuilder(); - $root = $treeBuilder->root('open_conext_engine_block'); + $treeBuilder = new TreeBuilder('open_conext_engine_block'); + $root = $treeBuilder->getRootNode(); $this->appendFeatureConfiguration($root); $this->appendErrorFeedbackConfiguration($root); @@ -60,16 +60,16 @@ private function appendErrorFeedbackConfiguration(ArrayNodeDefinition $rootNode) ->isRequired() ->info('Provide a fallback wiki link that is used when a language/page combination cannot be found.') ->scalarPrototype() - ->info('Provide a URI to the default/fallback wiki page for this specific error page language combination. + ->info('Provide a URI to the default/fallback wiki page for this specific error page language combination. Please review the example in parameter.yml.dist') ->end() ->end() ->arrayNode('specified') ->arrayPrototype() - ->info('Please specify an array of i18n language abbreviation keys, mapped to wiki links matching + ->info('Please specify an array of i18n language abbreviation keys, mapped to wiki links matching that language. Example: [en => https://wiki.example.com/page1, pt => https://wiki.example.pt/page1].') ->scalarPrototype() - ->info('Provide a URI to the wiki page for this specific error page language combination. + ->info('Provide a URI to the wiki page for this specific error page language combination. Please review the example in parameter.yml.dist') ->end() ->end() diff --git a/src/OpenConext/EngineBlockBundle/EventListener/ApiHttpExceptionListener.php b/src/OpenConext/EngineBlockBundle/EventListener/ApiHttpExceptionListener.php index 4691e7ae8f..a744e66e2c 100644 --- a/src/OpenConext/EngineBlockBundle/EventListener/ApiHttpExceptionListener.php +++ b/src/OpenConext/EngineBlockBundle/EventListener/ApiHttpExceptionListener.php @@ -22,6 +22,7 @@ use OpenConext\EngineBlockBridge\ErrorReporter; use Psr\Log\LoggerInterface; use Symfony\Component\HttpFoundation\JsonResponse; +use Symfony\Component\HttpKernel\Event\ExceptionEvent; use Symfony\Component\HttpKernel\Event\GetResponseForExceptionEvent; class ApiHttpExceptionListener @@ -46,9 +47,9 @@ public function __construct(LoggerInterface $logger, ErrorReporter $errorReporte $this->errorReporter = $errorReporter; } - public function onKernelException(GetResponseForExceptionEvent $event) + public function onKernelException(ExceptionEvent $event) { - $exception = $event->getException(); + $exception = $event->getThrowable(); if (!$exception instanceof ApiHttpException) { return; diff --git a/src/OpenConext/EngineBlockBundle/EventListener/AuthenticationStateInitializer.php b/src/OpenConext/EngineBlockBundle/EventListener/AuthenticationStateInitializer.php index 82deceeb02..06785d7eb5 100644 --- a/src/OpenConext/EngineBlockBundle/EventListener/AuthenticationStateInitializer.php +++ b/src/OpenConext/EngineBlockBundle/EventListener/AuthenticationStateInitializer.php @@ -22,6 +22,7 @@ use OpenConext\EngineBlockBundle\Authentication\AuthenticationState; use OpenConext\EngineBlockBundle\Controller\AuthenticationLoopThrottlingController; use Symfony\Component\HttpFoundation\Session\Session; +use Symfony\Component\HttpKernel\Event\ControllerEvent; use Symfony\Component\HttpKernel\Event\FilterControllerEvent; final class AuthenticationStateInitializer @@ -36,11 +37,12 @@ public function __construct(Session $session) $this->session = $session; } - public function onKernelController(FilterControllerEvent $event) + public function onKernelController(ControllerEvent $event) { - if (!$event->getController()[0] instanceof AuthenticationLoopThrottlingController) { - return; - } + // @TODO: ENT-4567: should investigate purpose and fix +// if (!$event->getController() instanceof AuthenticationLoopThrottlingController) { +// return; +// } $authenticationState = $this->session->get('authentication_state'); if ($authenticationState === null) { diff --git a/src/OpenConext/EngineBlockBundle/EventListener/ExecutionTimePaddingListener.php b/src/OpenConext/EngineBlockBundle/EventListener/ExecutionTimePaddingListener.php index 702b8aaf27..ecb0ce6ae4 100644 --- a/src/OpenConext/EngineBlockBundle/EventListener/ExecutionTimePaddingListener.php +++ b/src/OpenConext/EngineBlockBundle/EventListener/ExecutionTimePaddingListener.php @@ -23,6 +23,7 @@ use OpenConext\EngineBlockBundle\Value\ExecutionTime; use Psr\Log\LoggerInterface; use Symfony\Component\HttpFoundation\RedirectResponse; +use Symfony\Component\HttpKernel\Event\ExceptionEvent; use Symfony\Component\HttpKernel\Event\GetResponseForExceptionEvent; use Symfony\Component\Routing\Generator\UrlGeneratorInterface; @@ -67,9 +68,9 @@ public function __construct( $this->minimumExecutionTime = $minimumExecutionTime; } - public function onKernelException(GetResponseForExceptionEvent $event) + public function onKernelException(ExceptionEvent $event) { - $exception = $event->getException(); + $exception = $event->getThrowable(); if (!$exception instanceof AddExecutionTimePadding) { return; diff --git a/src/OpenConext/EngineBlockBundle/EventListener/LocaleListener.php b/src/OpenConext/EngineBlockBundle/EventListener/LocaleListener.php index 2bef7315b1..1def77b8fe 100644 --- a/src/OpenConext/EngineBlockBundle/EventListener/LocaleListener.php +++ b/src/OpenConext/EngineBlockBundle/EventListener/LocaleListener.php @@ -22,6 +22,8 @@ use OpenConext\EngineBlockBundle\Localization\LocaleProvider; use Symfony\Component\HttpKernel\Event\FilterResponseEvent; use Symfony\Component\HttpKernel\Event\GetResponseEvent; +use Symfony\Component\HttpKernel\Event\RequestEvent; +use Symfony\Component\HttpKernel\Event\ResponseEvent; final class LocaleListener { @@ -45,7 +47,7 @@ public function __construct(LocaleProvider $localeProvider, CookieFactory $cooki $this->cookieFactory = $cookieFactory; } - public function onKernelRequest(GetResponseEvent $event) + public function onKernelRequest(RequestEvent $event) { $request = $event->getRequest(); @@ -54,7 +56,7 @@ public function onKernelRequest(GetResponseEvent $event) $request->setLocale($this->localeProvider->getLocale()); } - public function onKernelResponse(FilterResponseEvent $event) + public function onKernelResponse(ResponseEvent $event) { $cookie = $this->cookieFactory->createCookie($this->localeProvider->getLocale()); $event->getResponse()->headers->setCookie($cookie); diff --git a/src/OpenConext/EngineBlockBundle/EventListener/MethodNotAllowedHttpExceptionListener.php b/src/OpenConext/EngineBlockBundle/EventListener/MethodNotAllowedHttpExceptionListener.php index e92c4ad460..a239ba6fae 100644 --- a/src/OpenConext/EngineBlockBundle/EventListener/MethodNotAllowedHttpExceptionListener.php +++ b/src/OpenConext/EngineBlockBundle/EventListener/MethodNotAllowedHttpExceptionListener.php @@ -21,6 +21,7 @@ use EngineBlock_ApplicationSingleton; use Psr\Log\LoggerInterface; use Symfony\Component\HttpFoundation\Response; +use Symfony\Component\HttpKernel\Event\ExceptionEvent; use Symfony\Component\HttpKernel\Event\GetResponseForExceptionEvent; use Symfony\Component\HttpKernel\Exception\MethodNotAllowedHttpException; use Twig_Environment; @@ -49,9 +50,9 @@ public function __construct( $this->logger = $logger; } - public function onKernelException(GetResponseForExceptionEvent $event) + public function onKernelException(ExceptionEvent $event) { - $exception = $event->getException(); + $exception = $event->getThrowable(); if (!$exception instanceof MethodNotAllowedHttpException) { return; } diff --git a/src/OpenConext/EngineBlockBundle/EventListener/NotFoundHttpExceptionListener.php b/src/OpenConext/EngineBlockBundle/EventListener/NotFoundHttpExceptionListener.php index 4760477e6f..e7ef785260 100644 --- a/src/OpenConext/EngineBlockBundle/EventListener/NotFoundHttpExceptionListener.php +++ b/src/OpenConext/EngineBlockBundle/EventListener/NotFoundHttpExceptionListener.php @@ -22,6 +22,7 @@ use OpenConext\EngineBlockBundle\Http\Exception\ApiHttpException; use Psr\Log\LoggerInterface; use Symfony\Component\HttpFoundation\Response; +use Symfony\Component\HttpKernel\Event\ExceptionEvent; use Symfony\Component\HttpKernel\Event\GetResponseForExceptionEvent; use Symfony\Component\HttpKernel\Exception\NotFoundHttpException; use Twig_Environment; @@ -61,9 +62,9 @@ public function __construct( $this->logger = $logger; } - public function onKernelException(GetResponseForExceptionEvent $event) + public function onKernelException(ExceptionEvent $event) { - $exception = $event->getException(); + $exception = $event->getThrowable(); if (!$exception instanceof NotFoundHttpException) { return; } diff --git a/src/OpenConext/EngineBlockBundle/EventListener/RedirectToFeedbackPageExceptionListener.php b/src/OpenConext/EngineBlockBundle/EventListener/RedirectToFeedbackPageExceptionListener.php index aa17af6f18..8ec4b92f66 100644 --- a/src/OpenConext/EngineBlockBundle/EventListener/RedirectToFeedbackPageExceptionListener.php +++ b/src/OpenConext/EngineBlockBundle/EventListener/RedirectToFeedbackPageExceptionListener.php @@ -52,6 +52,7 @@ use OpenConext\EngineBlockBundle\Exception\UnknownKeyIdException; use Psr\Log\LoggerInterface; use Symfony\Component\HttpFoundation\RedirectResponse; +use Symfony\Component\HttpKernel\Event\ExceptionEvent; use Symfony\Component\HttpKernel\Event\GetResponseForExceptionEvent; use Symfony\Component\Routing\Generator\UrlGeneratorInterface; @@ -100,9 +101,9 @@ public function __construct( * * @SuppressWarnings(PHPMD.ExcessiveMethodLength) - See comment in class doc block */ - public function onKernelException(GetResponseForExceptionEvent $event) + public function onKernelException(ExceptionEvent $event) { - $exception = $event->getException(); + $exception = $event->getThrowable(); $redirectParams = []; if ($exception instanceof EngineBlock_Corto_Module_Bindings_UnableToReceiveMessageException) { diff --git a/src/OpenConext/EngineBlockBundle/HealthCheck/DoctrineConnectionHealthCheck.php b/src/OpenConext/EngineBlockBundle/HealthCheck/DoctrineConnectionHealthCheck.php index 41256f3618..9a0e216392 100644 --- a/src/OpenConext/EngineBlockBundle/HealthCheck/DoctrineConnectionHealthCheck.php +++ b/src/OpenConext/EngineBlockBundle/HealthCheck/DoctrineConnectionHealthCheck.php @@ -52,7 +52,7 @@ public function __construct($query) * @param HealthReportInterface $report * @return HealthReportInterface */ - public function check(HealthReportInterface $report) + public function check(HealthReportInterface $report): HealthReportInterface { // Was the entityManager injected? When it is not the project does not use Doctrine ORM if (!is_null($this->entityManager)) { diff --git a/src/OpenConext/EngineBlockBundle/Resources/config/bridge.yml b/src/OpenConext/EngineBlockBundle/Resources/config/bridge.yml index 4847baeb16..c8684a24c8 100644 --- a/src/OpenConext/EngineBlockBundle/Resources/config/bridge.yml +++ b/src/OpenConext/EngineBlockBundle/Resources/config/bridge.yml @@ -1,4 +1,7 @@ services: + _defaults: + public: true + engineblock.bridge.error_reporter: class: OpenConext\EngineBlockBridge\ErrorReporter arguments: diff --git a/src/OpenConext/EngineBlockBundle/Resources/config/compat.yml b/src/OpenConext/EngineBlockBundle/Resources/config/compat.yml index a9e13f431b..f9a0a25ef2 100644 --- a/src/OpenConext/EngineBlockBundle/Resources/config/compat.yml +++ b/src/OpenConext/EngineBlockBundle/Resources/config/compat.yml @@ -1,4 +1,7 @@ services: + _defaults: + public: true + engineblock.compat.application: class: EngineBlock_ApplicationSingleton factory: [EngineBlock_ApplicationSingleton, getInstance] diff --git a/src/OpenConext/EngineBlockBundle/Resources/config/controllers/api.yml b/src/OpenConext/EngineBlockBundle/Resources/config/controllers/api.yml index 03527e6941..074a45253b 100644 --- a/src/OpenConext/EngineBlockBundle/Resources/config/controllers/api.yml +++ b/src/OpenConext/EngineBlockBundle/Resources/config/controllers/api.yml @@ -1,4 +1,7 @@ services: + _defaults: + public: true + engineblock.controller.api.connections: class: OpenConext\EngineBlockBundle\Controller\Api\ConnectionsController arguments: diff --git a/src/OpenConext/EngineBlockBundle/Resources/config/controllers/authentication.yml b/src/OpenConext/EngineBlockBundle/Resources/config/controllers/authentication.yml index 7daedb2c4a..490a399948 100644 --- a/src/OpenConext/EngineBlockBundle/Resources/config/controllers/authentication.yml +++ b/src/OpenConext/EngineBlockBundle/Resources/config/controllers/authentication.yml @@ -1,6 +1,7 @@ services: _defaults: autowire: true + public: true engineblock.controller.authentication.service_provider: class: OpenConext\EngineBlockBundle\Controller\ServiceProviderController diff --git a/src/OpenConext/EngineBlockBundle/Resources/config/services.yml b/src/OpenConext/EngineBlockBundle/Resources/config/services.yml index c7bf6582d6..cbeabf10ba 100644 --- a/src/OpenConext/EngineBlockBundle/Resources/config/services.yml +++ b/src/OpenConext/EngineBlockBundle/Resources/config/services.yml @@ -1,4 +1,7 @@ services: + _defaults: + public: true + OpenConext\EngineBlock\Xml\: resource: '../../../EngineBlock/Xml' exclude: '../../../EngineBlock/Xml/ValueObjects' @@ -370,3 +373,10 @@ services: - "@translator" tags: - { name: 'twig.extension' } + + engineblock.push.voter: + class: OpenConext\EngineBlockBundle\Security\Voter\MetadataPushVoter + arguments: + - "@security.helper" + tags: + - { name: 'security.voter' } diff --git a/src/OpenConext/EngineBlockBundle/Security/Voter/MetadataPushVoter.php b/src/OpenConext/EngineBlockBundle/Security/Voter/MetadataPushVoter.php new file mode 100644 index 0000000000..cf9e4e4ed8 --- /dev/null +++ b/src/OpenConext/EngineBlockBundle/Security/Voter/MetadataPushVoter.php @@ -0,0 +1,50 @@ +security = $security; + } + + protected function supports(string $attribute, $subject): bool + { + return $attribute == self::PUSH_ROLE; + } + + protected function voteOnAttribute(string $attribute, $subject, TokenInterface $token): bool + { + return null != $token->getUser() && in_array(self::PUSH_ROLE, $token->getUser()->getRoles()) && + $this->security->isGranted(self::PUSH_ROLE); + } + + public function vote(TokenInterface $token, $subject, array $attributes): int + { + $vote = self::ACCESS_ABSTAIN; + + foreach ($attributes as $attribute) { + $attribute = $attribute[0]; + if (!$this->supports($attribute, $subject)) { + continue; + } + + $vote = self::ACCESS_DENIED; + + if ($this->voteOnAttribute($attribute, $subject, $token)) { + return self::ACCESS_GRANTED; + } + } + + return $vote; + } +} diff --git a/src/OpenConext/EngineBlockBundle/Twig/Extensions/Extension/GlobalSiteNotice.php b/src/OpenConext/EngineBlockBundle/Twig/Extensions/Extension/GlobalSiteNotice.php index ea783e3366..9836d089a2 100644 --- a/src/OpenConext/EngineBlockBundle/Twig/Extensions/Extension/GlobalSiteNotice.php +++ b/src/OpenConext/EngineBlockBundle/Twig/Extensions/Extension/GlobalSiteNotice.php @@ -18,7 +18,7 @@ namespace OpenConext\EngineBlockBundle\Twig\Extensions\Extension; -use Symfony\Component\Translation\TranslatorInterface; +use Symfony\Contracts\Translation\TranslatorInterface; use Twig\TwigFunction; use Twig_Extension; diff --git a/src/OpenConext/EngineBlockBundle/Twig/Extensions/Extension/I18n.php b/src/OpenConext/EngineBlockBundle/Twig/Extensions/Extension/I18n.php index 5eb5444b52..5a7a10eda0 100644 --- a/src/OpenConext/EngineBlockBundle/Twig/Extensions/Extension/I18n.php +++ b/src/OpenConext/EngineBlockBundle/Twig/Extensions/Extension/I18n.php @@ -18,8 +18,8 @@ namespace OpenConext\EngineBlockBundle\Twig\Extensions\Extension; +use Symfony\Contracts\Translation\TranslatorInterface; use Twig_Extensions_Extension_I18n; -use Symfony\Component\Translation\TranslatorInterface; use Twig_SimpleFilter; class I18n extends Twig_Extensions_Extension_I18n diff --git a/src/OpenConext/EngineBlockBundle/Twig/Extensions/Extension/Metadata.php b/src/OpenConext/EngineBlockBundle/Twig/Extensions/Extension/Metadata.php index 5ff5b490fa..f47889b048 100644 --- a/src/OpenConext/EngineBlockBundle/Twig/Extensions/Extension/Metadata.php +++ b/src/OpenConext/EngineBlockBundle/Twig/Extensions/Extension/Metadata.php @@ -21,7 +21,7 @@ use EngineBlock_Attributes_Metadata; use OpenConext\Value\Saml\NameIdFormat; use SAML2\XML\saml\NameID; -use Symfony\Component\Translation\TranslatorInterface; +use Symfony\Contracts\Translation\TranslatorInterface; use Twig\TwigFunction; use Twig_Extension; diff --git a/src/OpenConext/EngineBlockBundle/Twig/Extensions/Extension/Wayf.php b/src/OpenConext/EngineBlockBundle/Twig/Extensions/Extension/Wayf.php index 5525544f03..7f2d4555c5 100644 --- a/src/OpenConext/EngineBlockBundle/Twig/Extensions/Extension/Wayf.php +++ b/src/OpenConext/EngineBlockBundle/Twig/Extensions/Extension/Wayf.php @@ -20,7 +20,7 @@ use OpenConext\EngineBlock\Metadata\Entity\ServiceProvider; use Symfony\Component\HttpFoundation\RequestStack; -use Symfony\Component\Translation\TranslatorInterface; +use Symfony\Contracts\Translation\TranslatorInterface; use Twig\TwigFunction; use Twig_Extension; diff --git a/src/OpenConext/EngineBlockFunctionalTestingBundle/Mock/MockTranslator.php b/src/OpenConext/EngineBlockFunctionalTestingBundle/Mock/MockTranslator.php index b670cf36da..d0aa8e986d 100644 --- a/src/OpenConext/EngineBlockFunctionalTestingBundle/Mock/MockTranslator.php +++ b/src/OpenConext/EngineBlockFunctionalTestingBundle/Mock/MockTranslator.php @@ -20,7 +20,7 @@ use OpenConext\EngineBlockFunctionalTestingBundle\Fixtures\DataStore\AbstractDataStore; use Symfony\Component\Translation\DataCollectorTranslator; -use Symfony\Component\Translation\TranslatorInterface; +use Symfony\Contracts\Translation\TranslatorInterface; final class MockTranslator implements TranslatorInterface { From 6c07408234d30a971169afcae60bfb6a51efbd59 Mon Sep 17 00:00:00 2001 From: Vincent Jong Date: Tue, 30 Apr 2024 14:19:59 +0200 Subject: [PATCH 02/35] Remove obsolete bundles and switch to Symfony Mailer --- app/AppKernel.php | 5 - app/config/parameters.yml.dist | 2 +- composer.json | 1 - composer.lock | 847 +++++++++--------- .../EngineBlock/Application/DiContainer.php | 2 +- .../Corto/Module/Service/SingleSignOn.php | 11 +- .../Service/RequestAccessMailer.php | 35 +- 7 files changed, 454 insertions(+), 449 deletions(-) diff --git a/app/AppKernel.php b/app/AppKernel.php index 4d326d72b4..ac7b84b07a 100644 --- a/app/AppKernel.php +++ b/app/AppKernel.php @@ -13,11 +13,6 @@ public function registerBundles() new Symfony\Bundle\SecurityBundle\SecurityBundle(), new Symfony\Bundle\TwigBundle\TwigBundle(), new Symfony\Bundle\MonologBundle\MonologBundle(), -// new Symfony\Bundle\SwiftmailerBundle\SwiftmailerBundle(), - - // Sensio helpers -// new Sensio\Bundle\FrameworkExtraBundle\SensioFrameworkExtraBundle(), -// new Sensio\Bundle\GeneratorBundle\SensioGeneratorBundle(), // Doctrine integration new Doctrine\Bundle\DoctrineBundle\DoctrineBundle(), diff --git a/app/config/parameters.yml.dist b/app/config/parameters.yml.dist index 0457bfeb9d..b763b499a4 100644 --- a/app/config/parameters.yml.dist +++ b/app/config/parameters.yml.dist @@ -203,7 +203,7 @@ parameters: name: 'OpenConext Admin' subject: 'IdP debug info from %%1$s' - ## Swiftmailer configuration + ## Symfony Mailer configuration mailer_transport: 'smtp' mailer_host: 'localhost' mailer_port: '25' diff --git a/composer.json b/composer.json index 1400bf0c92..5e29c054cd 100644 --- a/composer.json +++ b/composer.json @@ -30,7 +30,6 @@ "pimple/pimple": "~2.1", "ramsey/uuid": "^3.3.0", "simplesamlphp/saml2": "^4.1", - "swiftmailer/swiftmailer": "^5.4", "symfony/twig-bundle": "v5.4.19", "symfony/monolog-bundle": "v3.8.0", "symfony/security-bundle": "v5.4.20", diff --git a/composer.lock b/composer.lock index 2e58e98901..083749ef01 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "bc37ad45f627cc8798512363336ea912", + "content-hash": "acfff7e5fe794b9179c8dd83c59f0de2", "packages": [ { "name": "beberlei/assert", @@ -379,16 +379,16 @@ }, { "name": "doctrine/common", - "version": "3.4.3", + "version": "3.4.4", "source": { "type": "git", "url": "https://github.com/doctrine/common.git", - "reference": "8b5e5650391f851ed58910b3e3d48a71062eeced" + "reference": "0aad4b7ab7ce8c6602dfbb1e1a24581275fb9d1a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/common/zipball/8b5e5650391f851ed58910b3e3d48a71062eeced", - "reference": "8b5e5650391f851ed58910b3e3d48a71062eeced", + "url": "https://api.github.com/repos/doctrine/common/zipball/0aad4b7ab7ce8c6602dfbb1e1a24581275fb9d1a", + "reference": "0aad4b7ab7ce8c6602dfbb1e1a24581275fb9d1a", "shasum": "" }, "require": { @@ -450,7 +450,7 @@ ], "support": { "issues": "https://github.com/doctrine/common/issues", - "source": "https://github.com/doctrine/common/tree/3.4.3" + "source": "https://github.com/doctrine/common/tree/3.4.4" }, "funding": [ { @@ -466,7 +466,7 @@ "type": "tidelift" } ], - "time": "2022-10-09T11:47:59+00:00" + "time": "2024-04-16T13:35:33+00:00" }, { "name": "doctrine/dbal", @@ -1372,16 +1372,16 @@ }, { "name": "doctrine/persistence", - "version": "3.3.0", + "version": "3.3.2", "source": { "type": "git", "url": "https://github.com/doctrine/persistence.git", - "reference": "f75d11b1bcd0a9b75a9e1cabd80ffe3bc0164bcc" + "reference": "477da35bd0255e032826f440b94b3e37f2d56f42" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/persistence/zipball/f75d11b1bcd0a9b75a9e1cabd80ffe3bc0164bcc", - "reference": "f75d11b1bcd0a9b75a9e1cabd80ffe3bc0164bcc", + "url": "https://api.github.com/repos/doctrine/persistence/zipball/477da35bd0255e032826f440b94b3e37f2d56f42", + "reference": "477da35bd0255e032826f440b94b3e37f2d56f42", "shasum": "" }, "require": { @@ -1450,7 +1450,7 @@ ], "support": { "issues": "https://github.com/doctrine/persistence/issues", - "source": "https://github.com/doctrine/persistence/tree/3.3.0" + "source": "https://github.com/doctrine/persistence/tree/3.3.2" }, "funding": [ { @@ -1466,7 +1466,7 @@ "type": "tidelift" } ], - "time": "2024-03-01T10:11:31+00:00" + "time": "2024-03-12T14:54:36+00:00" }, { "name": "doctrine/sql-formatter", @@ -1589,16 +1589,16 @@ }, { "name": "friendsofphp/proxy-manager-lts", - "version": "v1.0.16", + "version": "v1.0.18", "source": { "type": "git", "url": "https://github.com/FriendsOfPHP/proxy-manager-lts.git", - "reference": "ecadbdc9052e4ad08c60c8a02268712e50427f7c" + "reference": "2c8a6cffc3220e99352ad958fe7cf06bf6f7690f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/FriendsOfPHP/proxy-manager-lts/zipball/ecadbdc9052e4ad08c60c8a02268712e50427f7c", - "reference": "ecadbdc9052e4ad08c60c8a02268712e50427f7c", + "url": "https://api.github.com/repos/FriendsOfPHP/proxy-manager-lts/zipball/2c8a6cffc3220e99352ad958fe7cf06bf6f7690f", + "reference": "2c8a6cffc3220e99352ad958fe7cf06bf6f7690f", "shasum": "" }, "require": { @@ -1655,7 +1655,7 @@ ], "support": { "issues": "https://github.com/FriendsOfPHP/proxy-manager-lts/issues", - "source": "https://github.com/FriendsOfPHP/proxy-manager-lts/tree/v1.0.16" + "source": "https://github.com/FriendsOfPHP/proxy-manager-lts/tree/v1.0.18" }, "funding": [ { @@ -1667,7 +1667,7 @@ "type": "tidelift" } ], - "time": "2023-05-24T07:17:17+00:00" + "time": "2024-03-20T12:50:41+00:00" }, { "name": "guzzlehttp/guzzle", @@ -2817,16 +2817,16 @@ }, { "name": "simplesamlphp/saml2", - "version": "v4.6.11", + "version": "v4.6.12", "source": { "type": "git", "url": "https://github.com/simplesamlphp/saml2.git", - "reference": "1b5d48753c78d02e88667068e633531c233141fb" + "reference": "9545abd0d9d48388f2fa00469c5c1e0294f0303e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/simplesamlphp/saml2/zipball/1b5d48753c78d02e88667068e633531c233141fb", - "reference": "1b5d48753c78d02e88667068e633531c233141fb", + "url": "https://api.github.com/repos/simplesamlphp/saml2/zipball/9545abd0d9d48388f2fa00469c5c1e0294f0303e", + "reference": "9545abd0d9d48388f2fa00469c5c1e0294f0303e", "shasum": "" }, "require": { @@ -2869,68 +2869,9 @@ "description": "SAML2 PHP library from SimpleSAMLphp", "support": { "issues": "https://github.com/simplesamlphp/saml2/issues", - "source": "https://github.com/simplesamlphp/saml2/tree/v4.6.11" + "source": "https://github.com/simplesamlphp/saml2/tree/v4.6.12" }, - "time": "2024-01-25T19:39:46+00:00" - }, - { - "name": "swiftmailer/swiftmailer", - "version": "v5.4.12", - "source": { - "type": "git", - "url": "https://github.com/swiftmailer/swiftmailer.git", - "reference": "181b89f18a90f8925ef805f950d47a7190e9b950" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/swiftmailer/swiftmailer/zipball/181b89f18a90f8925ef805f950d47a7190e9b950", - "reference": "181b89f18a90f8925ef805f950d47a7190e9b950", - "shasum": "" - }, - "require": { - "php": ">=5.3.3" - }, - "require-dev": { - "mockery/mockery": "~0.9.1", - "symfony/phpunit-bridge": "~3.2" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.4-dev" - } - }, - "autoload": { - "files": [ - "lib/swift_required.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Chris Corbyn" - }, - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - } - ], - "description": "Swiftmailer, free feature-rich PHP mailer", - "homepage": "https://swiftmailer.symfony.com", - "keywords": [ - "email", - "mail", - "mailer" - ], - "support": { - "issues": "https://github.com/swiftmailer/swiftmailer/issues", - "source": "https://github.com/swiftmailer/swiftmailer/tree/v5.4.12" - }, - "abandoned": "symfony/mailer", - "time": "2018-07-31T09:26:32+00:00" + "time": "2024-04-25T14:10:08+00:00" }, { "name": "symfony/cache", @@ -3031,16 +2972,16 @@ }, { "name": "symfony/cache-contracts", - "version": "v2.5.2", + "version": "v2.5.3", "source": { "type": "git", "url": "https://github.com/symfony/cache-contracts.git", - "reference": "64be4a7acb83b6f2bf6de9a02cee6dad41277ebc" + "reference": "fee6db04d913094e2fb55ff8e7db5685a8134463" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/cache-contracts/zipball/64be4a7acb83b6f2bf6de9a02cee6dad41277ebc", - "reference": "64be4a7acb83b6f2bf6de9a02cee6dad41277ebc", + "url": "https://api.github.com/repos/symfony/cache-contracts/zipball/fee6db04d913094e2fb55ff8e7db5685a8134463", + "reference": "fee6db04d913094e2fb55ff8e7db5685a8134463", "shasum": "" }, "require": { @@ -3090,7 +3031,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/cache-contracts/tree/v2.5.2" + "source": "https://github.com/symfony/cache-contracts/tree/v2.5.3" }, "funding": [ { @@ -3106,20 +3047,20 @@ "type": "tidelift" } ], - "time": "2022-01-02T09:53:40+00:00" + "time": "2024-01-23T13:51:25+00:00" }, { "name": "symfony/config", - "version": "v5.4.36", + "version": "v5.4.39", "source": { "type": "git", "url": "https://github.com/symfony/config.git", - "reference": "0a4f363dc2f13d2f871f917cc563796d9ddc78d1" + "reference": "62cec4a067931552624a9962002c210c502d42fd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/config/zipball/0a4f363dc2f13d2f871f917cc563796d9ddc78d1", - "reference": "0a4f363dc2f13d2f871f917cc563796d9ddc78d1", + "url": "https://api.github.com/repos/symfony/config/zipball/62cec4a067931552624a9962002c210c502d42fd", + "reference": "62cec4a067931552624a9962002c210c502d42fd", "shasum": "" }, "require": { @@ -3169,7 +3110,7 @@ "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/v5.4.36" + "source": "https://github.com/symfony/config/tree/v5.4.39" }, "funding": [ { @@ -3185,20 +3126,20 @@ "type": "tidelift" } ], - "time": "2024-02-23T16:13:23+00:00" + "time": "2024-04-18T08:26:06+00:00" }, { "name": "symfony/console", - "version": "v5.4.36", + "version": "v5.4.39", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "39f75d9d73d0c11952fdcecf4877b4d0f62a8f6e" + "reference": "f3e591c48688a0cfa1a3296205926c05e84b22b1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/39f75d9d73d0c11952fdcecf4877b4d0f62a8f6e", - "reference": "39f75d9d73d0c11952fdcecf4877b4d0f62a8f6e", + "url": "https://api.github.com/repos/symfony/console/zipball/f3e591c48688a0cfa1a3296205926c05e84b22b1", + "reference": "f3e591c48688a0cfa1a3296205926c05e84b22b1", "shasum": "" }, "require": { @@ -3268,7 +3209,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v5.4.36" + "source": "https://github.com/symfony/console/tree/v5.4.39" }, "funding": [ { @@ -3284,7 +3225,7 @@ "type": "tidelift" } ], - "time": "2024-02-20T16:33:57+00:00" + "time": "2024-04-18T08:26:06+00:00" }, { "name": "symfony/debug-bundle", @@ -3367,16 +3308,16 @@ }, { "name": "symfony/dependency-injection", - "version": "v5.4.36", + "version": "v5.4.39", "source": { "type": "git", "url": "https://github.com/symfony/dependency-injection.git", - "reference": "cc1fb237cd0e6da33005062b13b8485deb6e4440" + "reference": "5b4505f2afbe1d11d43a3917d0c1c178a38f6f19" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/cc1fb237cd0e6da33005062b13b8485deb6e4440", - "reference": "cc1fb237cd0e6da33005062b13b8485deb6e4440", + "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/5b4505f2afbe1d11d43a3917d0c1c178a38f6f19", + "reference": "5b4505f2afbe1d11d43a3917d0c1c178a38f6f19", "shasum": "" }, "require": { @@ -3436,7 +3377,7 @@ "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/v5.4.36" + "source": "https://github.com/symfony/dependency-injection/tree/v5.4.39" }, "funding": [ { @@ -3452,20 +3393,20 @@ "type": "tidelift" } ], - "time": "2024-02-22T18:43:31+00:00" + "time": "2024-04-18T08:26:06+00:00" }, { "name": "symfony/deprecation-contracts", - "version": "v2.5.2", + "version": "v2.5.3", "source": { "type": "git", "url": "https://github.com/symfony/deprecation-contracts.git", - "reference": "e8b495ea28c1d97b5e0c121748d6f9b53d075c66" + "reference": "80d075412b557d41002320b96a096ca65aa2c98d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/e8b495ea28c1d97b5e0c121748d6f9b53d075c66", - "reference": "e8b495ea28c1d97b5e0c121748d6f9b53d075c66", + "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/80d075412b557d41002320b96a096ca65aa2c98d", + "reference": "80d075412b557d41002320b96a096ca65aa2c98d", "shasum": "" }, "require": { @@ -3503,7 +3444,7 @@ "description": "A generic function and convention to trigger deprecation notices", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/deprecation-contracts/tree/v2.5.2" + "source": "https://github.com/symfony/deprecation-contracts/tree/v2.5.3" }, "funding": [ { @@ -3519,7 +3460,7 @@ "type": "tidelift" } ], - "time": "2022-01-02T09:53:40+00:00" + "time": "2023-01-24T14:02:46+00:00" }, { "name": "symfony/doctrine-bridge", @@ -3640,16 +3581,16 @@ }, { "name": "symfony/error-handler", - "version": "v5.4.36", + "version": "v5.4.39", "source": { "type": "git", "url": "https://github.com/symfony/error-handler.git", - "reference": "90b1d7799bfc1b3ed5f902e8b334eeb7dba537a1" + "reference": "9e02a6e831d6c2dbc5f96c8ff5314d453ecd53cd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/error-handler/zipball/90b1d7799bfc1b3ed5f902e8b334eeb7dba537a1", - "reference": "90b1d7799bfc1b3ed5f902e8b334eeb7dba537a1", + "url": "https://api.github.com/repos/symfony/error-handler/zipball/9e02a6e831d6c2dbc5f96c8ff5314d453ecd53cd", + "reference": "9e02a6e831d6c2dbc5f96c8ff5314d453ecd53cd", "shasum": "" }, "require": { @@ -3691,7 +3632,7 @@ "description": "Provides tools to manage errors and ease debugging PHP code", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/error-handler/tree/v5.4.36" + "source": "https://github.com/symfony/error-handler/tree/v5.4.39" }, "funding": [ { @@ -3707,20 +3648,20 @@ "type": "tidelift" } ], - "time": "2024-02-22T11:40:53+00:00" + "time": "2024-04-18T08:26:06+00:00" }, { "name": "symfony/event-dispatcher", - "version": "v5.4.35", + "version": "v5.4.39", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "7a69a85c7ea5bdd1e875806a99c51a87d3a74b38" + "reference": "d40fae9fd85c762b6ba378152fdd1157a85d7e4f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/7a69a85c7ea5bdd1e875806a99c51a87d3a74b38", - "reference": "7a69a85c7ea5bdd1e875806a99c51a87d3a74b38", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/d40fae9fd85c762b6ba378152fdd1157a85d7e4f", + "reference": "d40fae9fd85c762b6ba378152fdd1157a85d7e4f", "shasum": "" }, "require": { @@ -3776,7 +3717,7 @@ "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/v5.4.35" + "source": "https://github.com/symfony/event-dispatcher/tree/v5.4.39" }, "funding": [ { @@ -3792,20 +3733,20 @@ "type": "tidelift" } ], - "time": "2024-01-23T13:51:25+00:00" + "time": "2024-04-18T08:26:06+00:00" }, { "name": "symfony/event-dispatcher-contracts", - "version": "v2.5.2", + "version": "v2.5.3", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher-contracts.git", - "reference": "f98b54df6ad059855739db6fcbc2d36995283fe1" + "reference": "540f4c73e87fd0c71ca44a6aa305d024ac68cb73" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/f98b54df6ad059855739db6fcbc2d36995283fe1", - "reference": "f98b54df6ad059855739db6fcbc2d36995283fe1", + "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/540f4c73e87fd0c71ca44a6aa305d024ac68cb73", + "reference": "540f4c73e87fd0c71ca44a6aa305d024ac68cb73", "shasum": "" }, "require": { @@ -3855,7 +3796,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v2.5.2" + "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v2.5.3" }, "funding": [ { @@ -3871,7 +3812,7 @@ "type": "tidelift" } ], - "time": "2022-01-02T09:53:40+00:00" + "time": "2024-01-23T13:51:25+00:00" }, { "name": "symfony/expression-language", @@ -3938,23 +3879,24 @@ }, { "name": "symfony/filesystem", - "version": "v5.4.35", + "version": "v5.4.39", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", - "reference": "5a553607d4ffbfa9c0ab62facadea296c9db7086" + "reference": "e6edd875d5d39b03de51f3c3951148cfa79a4d12" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/5a553607d4ffbfa9c0ab62facadea296c9db7086", - "reference": "5a553607d4ffbfa9c0ab62facadea296c9db7086", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/e6edd875d5d39b03de51f3c3951148cfa79a4d12", + "reference": "e6edd875d5d39b03de51f3c3951148cfa79a4d12", "shasum": "" }, "require": { "php": ">=7.2.5", "symfony/polyfill-ctype": "~1.8", "symfony/polyfill-mbstring": "~1.8", - "symfony/polyfill-php80": "^1.16" + "symfony/polyfill-php80": "^1.16", + "symfony/process": "^5.4|^6.4" }, "type": "library", "autoload": { @@ -3982,7 +3924,7 @@ "description": "Provides basic utilities for the filesystem", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/filesystem/tree/v5.4.35" + "source": "https://github.com/symfony/filesystem/tree/v5.4.39" }, "funding": [ { @@ -3998,20 +3940,20 @@ "type": "tidelift" } ], - "time": "2024-01-23T13:51:25+00:00" + "time": "2024-04-18T08:26:06+00:00" }, { "name": "symfony/finder", - "version": "v5.4.35", + "version": "v5.4.39", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "abe6d6f77d9465fed3cd2d029b29d03b56b56435" + "reference": "f6a96e4fcd468a25fede16ee665f50ced856bd0a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/abe6d6f77d9465fed3cd2d029b29d03b56b56435", - "reference": "abe6d6f77d9465fed3cd2d029b29d03b56b56435", + "url": "https://api.github.com/repos/symfony/finder/zipball/f6a96e4fcd468a25fede16ee665f50ced856bd0a", + "reference": "f6a96e4fcd468a25fede16ee665f50ced856bd0a", "shasum": "" }, "require": { @@ -4045,7 +3987,7 @@ "description": "Finds files and directories via an intuitive fluent interface", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/finder/tree/v5.4.35" + "source": "https://github.com/symfony/finder/tree/v5.4.39" }, "funding": [ { @@ -4061,7 +4003,7 @@ "type": "tidelift" } ], - "time": "2024-01-23T13:51:25+00:00" + "time": "2024-04-18T08:26:06+00:00" }, { "name": "symfony/form", @@ -4168,16 +4110,16 @@ }, { "name": "symfony/framework-bundle", - "version": "v5.4.36", + "version": "v5.4.39", "source": { "type": "git", "url": "https://github.com/symfony/framework-bundle.git", - "reference": "224f69093099a507cf84d8c48ceb29e8653a5896" + "reference": "65640a7c74ab356bf6518bee38bc6dc9d036ffd7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/framework-bundle/zipball/224f69093099a507cf84d8c48ceb29e8653a5896", - "reference": "224f69093099a507cf84d8c48ceb29e8653a5896", + "url": "https://api.github.com/repos/symfony/framework-bundle/zipball/65640a7c74ab356bf6518bee38bc6dc9d036ffd7", + "reference": "65640a7c74ab356bf6518bee38bc6dc9d036ffd7", "shasum": "" }, "require": { @@ -4298,7 +4240,7 @@ "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/v5.4.36" + "source": "https://github.com/symfony/framework-bundle/tree/v5.4.39" }, "funding": [ { @@ -4314,20 +4256,20 @@ "type": "tidelift" } ], - "time": "2024-02-20T14:48:43+00:00" + "time": "2024-04-28T08:53:28+00:00" }, { "name": "symfony/http-foundation", - "version": "v5.4.35", + "version": "v5.4.39", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "f2ab692a22aef1cd54beb893aa0068bdfb093928" + "reference": "3356c93efc30b0c85a37606bdfef16b813faec0e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/f2ab692a22aef1cd54beb893aa0068bdfb093928", - "reference": "f2ab692a22aef1cd54beb893aa0068bdfb093928", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/3356c93efc30b0c85a37606bdfef16b813faec0e", + "reference": "3356c93efc30b0c85a37606bdfef16b813faec0e", "shasum": "" }, "require": { @@ -4374,7 +4316,7 @@ "description": "Defines an object-oriented layer for the HTTP specification", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-foundation/tree/v5.4.35" + "source": "https://github.com/symfony/http-foundation/tree/v5.4.39" }, "funding": [ { @@ -4390,20 +4332,20 @@ "type": "tidelift" } ], - "time": "2024-01-23T13:51:25+00:00" + "time": "2024-04-18T08:26:06+00:00" }, { "name": "symfony/http-kernel", - "version": "v5.4.36", + "version": "v5.4.39", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "63a872e01fd70802b77023e2f5924170c99b2825" + "reference": "1d812dc3a2863cc4246aaa636b0d71e0bf68e6b0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/63a872e01fd70802b77023e2f5924170c99b2825", - "reference": "63a872e01fd70802b77023e2f5924170c99b2825", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/1d812dc3a2863cc4246aaa636b0d71e0bf68e6b0", + "reference": "1d812dc3a2863cc4246aaa636b0d71e0bf68e6b0", "shasum": "" }, "require": { @@ -4452,6 +4394,7 @@ "symfony/stopwatch": "^4.4|^5.0|^6.0", "symfony/translation": "^4.4|^5.0|^6.0", "symfony/translation-contracts": "^1.1|^2|^3", + "symfony/var-dumper": "^4.4.31|^5.4", "twig/twig": "^2.13|^3.0.4" }, "suggest": { @@ -4486,7 +4429,7 @@ "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/v5.4.36" + "source": "https://github.com/symfony/http-kernel/tree/v5.4.39" }, "funding": [ { @@ -4502,7 +4445,7 @@ "type": "tidelift" } ], - "time": "2024-02-27T06:22:59+00:00" + "time": "2024-04-29T11:17:46+00:00" }, { "name": "symfony/mailer", @@ -4582,16 +4525,16 @@ }, { "name": "symfony/mime", - "version": "v5.4.35", + "version": "v5.4.39", "source": { "type": "git", "url": "https://github.com/symfony/mime.git", - "reference": "ee94d9b538f93abbbc1ee4ccff374593117b04a9" + "reference": "a5364f016fd9e090f7b4f250a97ea6925a5ca985" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mime/zipball/ee94d9b538f93abbbc1ee4ccff374593117b04a9", - "reference": "ee94d9b538f93abbbc1ee4ccff374593117b04a9", + "url": "https://api.github.com/repos/symfony/mime/zipball/a5364f016fd9e090f7b4f250a97ea6925a5ca985", + "reference": "a5364f016fd9e090f7b4f250a97ea6925a5ca985", "shasum": "" }, "require": { @@ -4612,6 +4555,7 @@ "egulias/email-validator": "^2.1.10|^3.1|^4", "phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0", "symfony/dependency-injection": "^4.4|^5.0|^6.0", + "symfony/process": "^5.4|^6.4", "symfony/property-access": "^4.4|^5.1|^6.0", "symfony/property-info": "^4.4|^5.1|^6.0", "symfony/serializer": "^5.4.35|~6.3.12|^6.4.3" @@ -4646,7 +4590,7 @@ "mime-type" ], "support": { - "source": "https://github.com/symfony/mime/tree/v5.4.35" + "source": "https://github.com/symfony/mime/tree/v5.4.39" }, "funding": [ { @@ -4662,20 +4606,20 @@ "type": "tidelift" } ], - "time": "2024-01-30T08:00:51+00:00" + "time": "2024-04-18T08:26:06+00:00" }, { "name": "symfony/monolog-bridge", - "version": "v5.4.35", + "version": "v5.4.39", "source": { "type": "git", "url": "https://github.com/symfony/monolog-bridge.git", - "reference": "83e7438fd2ead9af4fd2fac7bb9b6fc0e8823387" + "reference": "c61589f4ba11236cb68433123c99dd2d77ab9b43" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/monolog-bridge/zipball/83e7438fd2ead9af4fd2fac7bb9b6fc0e8823387", - "reference": "83e7438fd2ead9af4fd2fac7bb9b6fc0e8823387", + "url": "https://api.github.com/repos/symfony/monolog-bridge/zipball/c61589f4ba11236cb68433123c99dd2d77ab9b43", + "reference": "c61589f4ba11236cb68433123c99dd2d77ab9b43", "shasum": "" }, "require": { @@ -4730,7 +4674,7 @@ "description": "Provides integration for Monolog with various Symfony components", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/monolog-bridge/tree/v5.4.35" + "source": "https://github.com/symfony/monolog-bridge/tree/v5.4.39" }, "funding": [ { @@ -4746,7 +4690,7 @@ "type": "tidelift" } ], - "time": "2024-01-23T13:51:25+00:00" + "time": "2024-04-18T08:26:06+00:00" }, { "name": "symfony/monolog-bundle", @@ -4831,16 +4775,16 @@ }, { "name": "symfony/options-resolver", - "version": "v5.4.21", + "version": "v5.4.39", "source": { "type": "git", "url": "https://github.com/symfony/options-resolver.git", - "reference": "4fe5cf6ede71096839f0e4b4444d65dd3a7c1eb9" + "reference": "1303bb73d6c3882f07c618129295503085dfddb9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/options-resolver/zipball/4fe5cf6ede71096839f0e4b4444d65dd3a7c1eb9", - "reference": "4fe5cf6ede71096839f0e4b4444d65dd3a7c1eb9", + "url": "https://api.github.com/repos/symfony/options-resolver/zipball/1303bb73d6c3882f07c618129295503085dfddb9", + "reference": "1303bb73d6c3882f07c618129295503085dfddb9", "shasum": "" }, "require": { @@ -4880,7 +4824,7 @@ "options" ], "support": { - "source": "https://github.com/symfony/options-resolver/tree/v5.4.21" + "source": "https://github.com/symfony/options-resolver/tree/v5.4.39" }, "funding": [ { @@ -4896,20 +4840,20 @@ "type": "tidelift" } ], - "time": "2023-02-14T08:03:56+00:00" + "time": "2024-04-18T08:26:06+00:00" }, { "name": "symfony/password-hasher", - "version": "v5.4.36", + "version": "v5.4.39", "source": { "type": "git", "url": "https://github.com/symfony/password-hasher.git", - "reference": "a0c08f9045230ef73d25617b2c0e0b56d8feb0a2" + "reference": "b4516ba6a9190a469eeb2c2f3447bfc0e5b17aee" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/password-hasher/zipball/a0c08f9045230ef73d25617b2c0e0b56d8feb0a2", - "reference": "a0c08f9045230ef73d25617b2c0e0b56d8feb0a2", + "url": "https://api.github.com/repos/symfony/password-hasher/zipball/b4516ba6a9190a469eeb2c2f3447bfc0e5b17aee", + "reference": "b4516ba6a9190a469eeb2c2f3447bfc0e5b17aee", "shasum": "" }, "require": { @@ -4954,7 +4898,7 @@ "password" ], "support": { - "source": "https://github.com/symfony/password-hasher/tree/v5.4.36" + "source": "https://github.com/symfony/password-hasher/tree/v5.4.39" }, "funding": [ { @@ -4970,7 +4914,7 @@ "type": "tidelift" } ], - "time": "2024-02-10T16:59:05+00:00" + "time": "2024-04-18T08:26:06+00:00" }, { "name": "symfony/polyfill-ctype", @@ -5683,18 +5627,80 @@ ], "time": "2024-01-29T20:11:03+00:00" }, + { + "name": "symfony/process", + "version": "v5.4.39", + "source": { + "type": "git", + "url": "https://github.com/symfony/process.git", + "reference": "85a554acd7c28522241faf2e97b9541247a0d3d5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/process/zipball/85a554acd7c28522241faf2e97b9541247a0d3d5", + "reference": "85a554acd7c28522241faf2e97b9541247a0d3d5", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/polyfill-php80": "^1.16" + }, + "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/v5.4.39" + }, + "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": "2024-04-18T08:26:06+00:00" + }, { "name": "symfony/property-access", - "version": "v5.4.35", + "version": "v5.4.39", "source": { "type": "git", "url": "https://github.com/symfony/property-access.git", - "reference": "f1341758d8046cfff0ac748a0cad238f917191d4" + "reference": "1b93ca45890ce5555895efe27bd848c41396530c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/property-access/zipball/f1341758d8046cfff0ac748a0cad238f917191d4", - "reference": "f1341758d8046cfff0ac748a0cad238f917191d4", + "url": "https://api.github.com/repos/symfony/property-access/zipball/1b93ca45890ce5555895efe27bd848c41396530c", + "reference": "1b93ca45890ce5555895efe27bd848c41396530c", "shasum": "" }, "require": { @@ -5746,7 +5752,7 @@ "reflection" ], "support": { - "source": "https://github.com/symfony/property-access/tree/v5.4.35" + "source": "https://github.com/symfony/property-access/tree/v5.4.39" }, "funding": [ { @@ -5762,20 +5768,20 @@ "type": "tidelift" } ], - "time": "2024-01-23T13:51:25+00:00" + "time": "2024-04-18T08:26:06+00:00" }, { "name": "symfony/property-info", - "version": "v5.4.35", + "version": "v5.4.39", "source": { "type": "git", "url": "https://github.com/symfony/property-info.git", - "reference": "d30d48f366ad2bfbf521256be85eb1c182c29198" + "reference": "bf257e78b0471e67757af038344919f498af804d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/property-info/zipball/d30d48f366ad2bfbf521256be85eb1c182c29198", - "reference": "d30d48f366ad2bfbf521256be85eb1c182c29198", + "url": "https://api.github.com/repos/symfony/property-info/zipball/bf257e78b0471e67757af038344919f498af804d", + "reference": "bf257e78b0471e67757af038344919f498af804d", "shasum": "" }, "require": { @@ -5837,7 +5843,7 @@ "validator" ], "support": { - "source": "https://github.com/symfony/property-info/tree/v5.4.35" + "source": "https://github.com/symfony/property-info/tree/v5.4.39" }, "funding": [ { @@ -5853,20 +5859,20 @@ "type": "tidelift" } ], - "time": "2024-01-23T15:43:50+00:00" + "time": "2024-04-19T15:51:11+00:00" }, { "name": "symfony/routing", - "version": "v5.4.35", + "version": "v5.4.39", "source": { "type": "git", "url": "https://github.com/symfony/routing.git", - "reference": "86c5a06a61ddaf17efa1403542e3d7146af96203" + "reference": "5485974ef20de1150dd195a81e9da4915d45263f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/86c5a06a61ddaf17efa1403542e3d7146af96203", - "reference": "86c5a06a61ddaf17efa1403542e3d7146af96203", + "url": "https://api.github.com/repos/symfony/routing/zipball/5485974ef20de1150dd195a81e9da4915d45263f", + "reference": "5485974ef20de1150dd195a81e9da4915d45263f", "shasum": "" }, "require": { @@ -5927,7 +5933,7 @@ "url" ], "support": { - "source": "https://github.com/symfony/routing/tree/v5.4.35" + "source": "https://github.com/symfony/routing/tree/v5.4.39" }, "funding": [ { @@ -5943,7 +5949,7 @@ "type": "tidelift" } ], - "time": "2024-01-30T13:10:15+00:00" + "time": "2024-04-18T08:26:06+00:00" }, { "name": "symfony/security-bundle", @@ -6142,16 +6148,16 @@ }, { "name": "symfony/security-csrf", - "version": "v5.4.35", + "version": "v5.4.39", "source": { "type": "git", "url": "https://github.com/symfony/security-csrf.git", - "reference": "6728ed79d7f9aae3b86fca7ea554f1c46bae1e0b" + "reference": "52773ed2b696c19e06480b8dccc234851ccaabca" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/security-csrf/zipball/6728ed79d7f9aae3b86fca7ea554f1c46bae1e0b", - "reference": "6728ed79d7f9aae3b86fca7ea554f1c46bae1e0b", + "url": "https://api.github.com/repos/symfony/security-csrf/zipball/52773ed2b696c19e06480b8dccc234851ccaabca", + "reference": "52773ed2b696c19e06480b8dccc234851ccaabca", "shasum": "" }, "require": { @@ -6195,7 +6201,7 @@ "description": "Symfony Security Component - CSRF Library", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/security-csrf/tree/v5.4.35" + "source": "https://github.com/symfony/security-csrf/tree/v5.4.39" }, "funding": [ { @@ -6211,20 +6217,20 @@ "type": "tidelift" } ], - "time": "2024-01-23T13:51:25+00:00" + "time": "2024-04-18T08:26:06+00:00" }, { "name": "symfony/security-guard", - "version": "v5.4.35", + "version": "v5.4.39", "source": { "type": "git", "url": "https://github.com/symfony/security-guard.git", - "reference": "b6fb8c88f7cd544db761de2d1c3618cbc5c1b9e7" + "reference": "df059bf319673f4b5a52ba670dbf1e7e30621588" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/security-guard/zipball/b6fb8c88f7cd544db761de2d1c3618cbc5c1b9e7", - "reference": "b6fb8c88f7cd544db761de2d1c3618cbc5c1b9e7", + "url": "https://api.github.com/repos/symfony/security-guard/zipball/df059bf319673f4b5a52ba670dbf1e7e30621588", + "reference": "df059bf319673f4b5a52ba670dbf1e7e30621588", "shasum": "" }, "require": { @@ -6263,7 +6269,7 @@ "description": "Symfony Security Component - Guard", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/security-guard/tree/v5.4.35" + "source": "https://github.com/symfony/security-guard/tree/v5.4.39" }, "funding": [ { @@ -6279,20 +6285,20 @@ "type": "tidelift" } ], - "time": "2024-01-23T13:51:25+00:00" + "time": "2024-04-18T08:26:06+00:00" }, { "name": "symfony/security-http", - "version": "v5.4.36", + "version": "v5.4.39", "source": { "type": "git", "url": "https://github.com/symfony/security-http.git", - "reference": "87ee1ea2b86740fc6a0104f165bebbe0b08b66ba" + "reference": "42a12aa0db45b0f20997f3b67eea29717bf82a5d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/security-http/zipball/87ee1ea2b86740fc6a0104f165bebbe0b08b66ba", - "reference": "87ee1ea2b86740fc6a0104f165bebbe0b08b66ba", + "url": "https://api.github.com/repos/symfony/security-http/zipball/42a12aa0db45b0f20997f3b67eea29717bf82a5d", + "reference": "42a12aa0db45b0f20997f3b67eea29717bf82a5d", "shasum": "" }, "require": { @@ -6349,7 +6355,7 @@ "description": "Symfony Security Component - HTTP Integration", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/security-http/tree/v5.4.36" + "source": "https://github.com/symfony/security-http/tree/v5.4.39" }, "funding": [ { @@ -6365,20 +6371,20 @@ "type": "tidelift" } ], - "time": "2024-02-23T16:13:23+00:00" + "time": "2024-04-18T08:26:06+00:00" }, { "name": "symfony/service-contracts", - "version": "v2.5.2", + "version": "v2.5.3", "source": { "type": "git", "url": "https://github.com/symfony/service-contracts.git", - "reference": "4b426aac47d6427cc1a1d0f7e2ac724627f5966c" + "reference": "a2329596ddc8fd568900e3fc76cba42489ecc7f3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/service-contracts/zipball/4b426aac47d6427cc1a1d0f7e2ac724627f5966c", - "reference": "4b426aac47d6427cc1a1d0f7e2ac724627f5966c", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/a2329596ddc8fd568900e3fc76cba42489ecc7f3", + "reference": "a2329596ddc8fd568900e3fc76cba42489ecc7f3", "shasum": "" }, "require": { @@ -6432,7 +6438,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/service-contracts/tree/v2.5.2" + "source": "https://github.com/symfony/service-contracts/tree/v2.5.3" }, "funding": [ { @@ -6448,20 +6454,20 @@ "type": "tidelift" } ], - "time": "2022-05-30T19:17:29+00:00" + "time": "2023-04-21T15:04:16+00:00" }, { "name": "symfony/stopwatch", - "version": "v5.4.35", + "version": "v5.4.39", "source": { "type": "git", "url": "https://github.com/symfony/stopwatch.git", - "reference": "887762aa99ff16f65dc8b48aafead415f942d407" + "reference": "fb97497490bcec8a3c32c809cacfdd4c15dc8390" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/stopwatch/zipball/887762aa99ff16f65dc8b48aafead415f942d407", - "reference": "887762aa99ff16f65dc8b48aafead415f942d407", + "url": "https://api.github.com/repos/symfony/stopwatch/zipball/fb97497490bcec8a3c32c809cacfdd4c15dc8390", + "reference": "fb97497490bcec8a3c32c809cacfdd4c15dc8390", "shasum": "" }, "require": { @@ -6494,7 +6500,7 @@ "description": "Provides a way to profile code", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/stopwatch/tree/v5.4.35" + "source": "https://github.com/symfony/stopwatch/tree/v5.4.39" }, "funding": [ { @@ -6510,20 +6516,20 @@ "type": "tidelift" } ], - "time": "2024-01-23T13:51:25+00:00" + "time": "2024-04-18T08:26:06+00:00" }, { "name": "symfony/string", - "version": "v5.4.36", + "version": "v5.4.39", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "4e232c83622bd8cd32b794216aa29d0d266d353b" + "reference": "495e71bae5862308051b9e63cc3e34078eed83ef" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/4e232c83622bd8cd32b794216aa29d0d266d353b", - "reference": "4e232c83622bd8cd32b794216aa29d0d266d353b", + "url": "https://api.github.com/repos/symfony/string/zipball/495e71bae5862308051b9e63cc3e34078eed83ef", + "reference": "495e71bae5862308051b9e63cc3e34078eed83ef", "shasum": "" }, "require": { @@ -6580,7 +6586,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v5.4.36" + "source": "https://github.com/symfony/string/tree/v5.4.39" }, "funding": [ { @@ -6596,7 +6602,7 @@ "type": "tidelift" } ], - "time": "2024-02-01T08:49:30+00:00" + "time": "2024-04-18T08:26:06+00:00" }, { "name": "symfony/translation", @@ -6697,16 +6703,16 @@ }, { "name": "symfony/translation-contracts", - "version": "v2.5.2", + "version": "v2.5.3", "source": { "type": "git", "url": "https://github.com/symfony/translation-contracts.git", - "reference": "136b19dd05cdf0709db6537d058bcab6dd6e2dbe" + "reference": "b0073a77ac0b7ea55131020e87b1e3af540f4664" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/136b19dd05cdf0709db6537d058bcab6dd6e2dbe", - "reference": "136b19dd05cdf0709db6537d058bcab6dd6e2dbe", + "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/b0073a77ac0b7ea55131020e87b1e3af540f4664", + "reference": "b0073a77ac0b7ea55131020e87b1e3af540f4664", "shasum": "" }, "require": { @@ -6755,7 +6761,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/translation-contracts/tree/v2.5.2" + "source": "https://github.com/symfony/translation-contracts/tree/v2.5.3" }, "funding": [ { @@ -6771,7 +6777,7 @@ "type": "tidelift" } ], - "time": "2022-06-27T16:58:25+00:00" + "time": "2024-01-23T13:51:25+00:00" }, { "name": "symfony/twig-bridge", @@ -7098,16 +7104,16 @@ }, { "name": "symfony/var-dumper", - "version": "v5.4.36", + "version": "v5.4.39", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "2e9c2b11267119d9c90d6b3fdce5e4e9f15e2e90" + "reference": "1987f86ad7f339fe3d3e8e6cf3b7ce4d4b8e547e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/2e9c2b11267119d9c90d6b3fdce5e4e9f15e2e90", - "reference": "2e9c2b11267119d9c90d6b3fdce5e4e9f15e2e90", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/1987f86ad7f339fe3d3e8e6cf3b7ce4d4b8e547e", + "reference": "1987f86ad7f339fe3d3e8e6cf3b7ce4d4b8e547e", "shasum": "" }, "require": { @@ -7167,7 +7173,7 @@ "dump" ], "support": { - "source": "https://github.com/symfony/var-dumper/tree/v5.4.36" + "source": "https://github.com/symfony/var-dumper/tree/v5.4.39" }, "funding": [ { @@ -7183,20 +7189,20 @@ "type": "tidelift" } ], - "time": "2024-02-15T11:19:14+00:00" + "time": "2024-04-18T08:26:06+00:00" }, { "name": "symfony/var-exporter", - "version": "v5.4.35", + "version": "v5.4.39", "source": { "type": "git", "url": "https://github.com/symfony/var-exporter.git", - "reference": "abb0a151b62d6b07e816487e20040464af96cae7" + "reference": "e85a27cfdbb48e5e9a2d4a5f04efa359857771fd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-exporter/zipball/abb0a151b62d6b07e816487e20040464af96cae7", - "reference": "abb0a151b62d6b07e816487e20040464af96cae7", + "url": "https://api.github.com/repos/symfony/var-exporter/zipball/e85a27cfdbb48e5e9a2d4a5f04efa359857771fd", + "reference": "e85a27cfdbb48e5e9a2d4a5f04efa359857771fd", "shasum": "" }, "require": { @@ -7240,7 +7246,7 @@ "serialize" ], "support": { - "source": "https://github.com/symfony/var-exporter/tree/v5.4.35" + "source": "https://github.com/symfony/var-exporter/tree/v5.4.39" }, "funding": [ { @@ -7256,7 +7262,7 @@ "type": "tidelift" } ], - "time": "2024-01-23T13:51:25+00:00" + "time": "2024-04-18T08:26:06+00:00" }, { "name": "symfony/web-profiler-bundle", @@ -7340,16 +7346,16 @@ }, { "name": "symfony/yaml", - "version": "v5.4.35", + "version": "v5.4.39", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "e78db7f5c70a21f0417a31f414c4a95fe76c07e4" + "reference": "bc780e16879000f77a1022163c052f5323b5e640" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/e78db7f5c70a21f0417a31f414c4a95fe76c07e4", - "reference": "e78db7f5c70a21f0417a31f414c4a95fe76c07e4", + "url": "https://api.github.com/repos/symfony/yaml/zipball/bc780e16879000f77a1022163c052f5323b5e640", + "reference": "bc780e16879000f77a1022163c052f5323b5e640", "shasum": "" }, "require": { @@ -7395,7 +7401,7 @@ "description": "Loads and dumps YAML files", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/yaml/tree/v5.4.35" + "source": "https://github.com/symfony/yaml/tree/v5.4.39" }, "funding": [ { @@ -7411,7 +7417,7 @@ "type": "tidelift" } ], - "time": "2024-01-23T13:51:25+00:00" + "time": "2024-04-23T11:57:27+00:00" }, { "name": "twig/extensions", @@ -7615,16 +7621,16 @@ "packages-dev": [ { "name": "composer/pcre", - "version": "3.1.1", + "version": "3.1.3", "source": { "type": "git", "url": "https://github.com/composer/pcre.git", - "reference": "00104306927c7a0919b4ced2aaa6782c1e61a3c9" + "reference": "5b16e25a5355f1f3afdfc2f954a0a80aec4826a8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/pcre/zipball/00104306927c7a0919b4ced2aaa6782c1e61a3c9", - "reference": "00104306927c7a0919b4ced2aaa6782c1e61a3c9", + "url": "https://api.github.com/repos/composer/pcre/zipball/5b16e25a5355f1f3afdfc2f954a0a80aec4826a8", + "reference": "5b16e25a5355f1f3afdfc2f954a0a80aec4826a8", "shasum": "" }, "require": { @@ -7666,7 +7672,7 @@ ], "support": { "issues": "https://github.com/composer/pcre/issues", - "source": "https://github.com/composer/pcre/tree/3.1.1" + "source": "https://github.com/composer/pcre/tree/3.1.3" }, "funding": [ { @@ -7682,20 +7688,20 @@ "type": "tidelift" } ], - "time": "2023-10-11T07:11:09+00:00" + "time": "2024-03-19T10:26:25+00:00" }, { "name": "composer/xdebug-handler", - "version": "3.0.3", + "version": "3.0.4", "source": { "type": "git", "url": "https://github.com/composer/xdebug-handler.git", - "reference": "ced299686f41dce890debac69273b47ffe98a40c" + "reference": "4f988f8fdf580d53bdb2d1278fe93d1ed5462255" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/ced299686f41dce890debac69273b47ffe98a40c", - "reference": "ced299686f41dce890debac69273b47ffe98a40c", + "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/4f988f8fdf580d53bdb2d1278fe93d1ed5462255", + "reference": "4f988f8fdf580d53bdb2d1278fe93d1ed5462255", "shasum": "" }, "require": { @@ -7706,7 +7712,7 @@ "require-dev": { "phpstan/phpstan": "^1.0", "phpstan/phpstan-strict-rules": "^1.1", - "symfony/phpunit-bridge": "^6.0" + "phpunit/phpunit": "^8.5 || ^9.6 || ^10.5" }, "type": "library", "autoload": { @@ -7730,9 +7736,9 @@ "performance" ], "support": { - "irc": "irc://irc.freenode.org/composer", + "irc": "ircs://irc.libera.chat:6697/composer", "issues": "https://github.com/composer/xdebug-handler/issues", - "source": "https://github.com/composer/xdebug-handler/tree/3.0.3" + "source": "https://github.com/composer/xdebug-handler/tree/3.0.4" }, "funding": [ { @@ -7748,7 +7754,7 @@ "type": "tidelift" } ], - "time": "2022-02-25T21:32:43+00:00" + "time": "2024-03-26T18:29:49+00:00" }, { "name": "hamcrest/hamcrest-php", @@ -8081,16 +8087,16 @@ }, { "name": "mockery/mockery", - "version": "1.6.7", + "version": "1.6.11", "source": { "type": "git", "url": "https://github.com/mockery/mockery.git", - "reference": "0cc058854b3195ba21dc6b1f7b1f60f4ef3a9c06" + "reference": "81a161d0b135df89951abd52296adf97deb0723d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/mockery/mockery/zipball/0cc058854b3195ba21dc6b1f7b1f60f4ef3a9c06", - "reference": "0cc058854b3195ba21dc6b1f7b1f60f4ef3a9c06", + "url": "https://api.github.com/repos/mockery/mockery/zipball/81a161d0b135df89951abd52296adf97deb0723d", + "reference": "81a161d0b135df89951abd52296adf97deb0723d", "shasum": "" }, "require": { @@ -8102,8 +8108,8 @@ "phpunit/phpunit": "<8.0" }, "require-dev": { - "phpunit/phpunit": "^8.5 || ^9.6.10", - "symplify/easy-coding-standard": "^12.0.8" + "phpunit/phpunit": "^8.5 || ^9.6.17", + "symplify/easy-coding-standard": "^12.1.14" }, "type": "library", "autoload": { @@ -8160,7 +8166,7 @@ "security": "https://github.com/mockery/mockery/security/advisories", "source": "https://github.com/mockery/mockery" }, - "time": "2023-12-10T02:24:34+00:00" + "time": "2024-03-21T18:34:15+00:00" }, { "name": "myclabs/deep-copy", @@ -8286,27 +8292,27 @@ }, { "name": "phake/phake", - "version": "v4.4.0", + "version": "v4.5.0", "source": { "type": "git", "url": "https://github.com/phake/phake.git", - "reference": "5c8954791645d9b7fc027bf76822a221a5a4de8a" + "reference": "0ec89bb1f780018fd34059409d79b7b49d60cc11" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phake/phake/zipball/5c8954791645d9b7fc027bf76822a221a5a4de8a", - "reference": "5c8954791645d9b7fc027bf76822a221a5a4de8a", + "url": "https://api.github.com/repos/phake/phake/zipball/0ec89bb1f780018fd34059409d79b7b49d60cc11", + "reference": "0ec89bb1f780018fd34059409d79b7b49d60cc11", "shasum": "" }, "require": { "doctrine/instantiator": "^1.4", "php": "^7.1|^8.0", - "sebastian/comparator": "^1.1|^2.0|^3.0|^4.0|^5.0" + "sebastian/comparator": "^1.1|^2.0|^3.0|^4.0|^5.0|^6.0" }, "require-dev": { "doctrine/annotations": "^1.13", - "hamcrest/hamcrest-php": "1.1.*", - "phpunit/phpunit": "^6.5|^7.0|^8.0|^9.0|^10.0", + "hamcrest/hamcrest-php": "^1.1|^2.0", + "phpunit/phpunit": "^6.5|^7.0|^8.0|^9.0|^10.0|^11.0", "psalm/phar": "^4.18" }, "suggest": { @@ -8316,7 +8322,8 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "4.4-dev" + "dev-master": "5.0.x-dev", + "dev-4.4": "4.4.x-dev" } }, "autoload": { @@ -8350,26 +8357,27 @@ "support": { "docs": "https://phake.github.io/doc/", "issues": "https://github.com/phake/phake/issues", - "source": "https://github.com/phake/phake/tree/v4.4.0" + "source": "https://github.com/phake/phake/tree/v4.5.0" }, - "time": "2023-02-10T20:32:41+00:00" + "time": "2024-03-05T17:41:33+00:00" }, { "name": "phar-io/manifest", - "version": "2.0.3", + "version": "2.0.4", "source": { "type": "git", "url": "https://github.com/phar-io/manifest.git", - "reference": "97803eca37d319dfa7826cc2437fc020857acb53" + "reference": "54750ef60c58e43759730615a392c31c80e23176" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phar-io/manifest/zipball/97803eca37d319dfa7826cc2437fc020857acb53", - "reference": "97803eca37d319dfa7826cc2437fc020857acb53", + "url": "https://api.github.com/repos/phar-io/manifest/zipball/54750ef60c58e43759730615a392c31c80e23176", + "reference": "54750ef60c58e43759730615a392c31c80e23176", "shasum": "" }, "require": { "ext-dom": "*", + "ext-libxml": "*", "ext-phar": "*", "ext-xmlwriter": "*", "phar-io/version": "^3.0.1", @@ -8410,9 +8418,15 @@ "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" + "source": "https://github.com/phar-io/manifest/tree/2.0.4" }, - "time": "2021-07-20T11:28:43+00:00" + "funding": [ + { + "url": "https://github.com/theseer", + "type": "github" + } + ], + "time": "2024-03-03T12:33:53+00:00" }, { "name": "phar-io/version", @@ -8612,16 +8626,16 @@ }, { "name": "phpunit/php-code-coverage", - "version": "7.0.15", + "version": "7.0.17", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "819f92bba8b001d4363065928088de22f25a3a48" + "reference": "40a4ed114a4aea5afd6df8d0f0c9cd3033097f66" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/819f92bba8b001d4363065928088de22f25a3a48", - "reference": "819f92bba8b001d4363065928088de22f25a3a48", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/40a4ed114a4aea5afd6df8d0f0c9cd3033097f66", + "reference": "40a4ed114a4aea5afd6df8d0f0c9cd3033097f66", "shasum": "" }, "require": { @@ -8673,7 +8687,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", - "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/7.0.15" + "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/7.0.17" }, "funding": [ { @@ -8681,20 +8695,20 @@ "type": "github" } ], - "time": "2021-07-26T12:20:09+00:00" + "time": "2024-03-02T06:09:37+00:00" }, { "name": "phpunit/php-file-iterator", - "version": "2.0.5", + "version": "2.0.6", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-file-iterator.git", - "reference": "42c5ba5220e6904cbfe8b1a1bda7c0cfdc8c12f5" + "reference": "69deeb8664f611f156a924154985fbd4911eb36b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/42c5ba5220e6904cbfe8b1a1bda7c0cfdc8c12f5", - "reference": "42c5ba5220e6904cbfe8b1a1bda7c0cfdc8c12f5", + "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/69deeb8664f611f156a924154985fbd4911eb36b", + "reference": "69deeb8664f611f156a924154985fbd4911eb36b", "shasum": "" }, "require": { @@ -8733,7 +8747,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/php-file-iterator/issues", - "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/2.0.5" + "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/2.0.6" }, "funding": [ { @@ -8741,7 +8755,7 @@ "type": "github" } ], - "time": "2021-12-02T12:42:26+00:00" + "time": "2024-03-01T13:39:50+00:00" }, { "name": "phpunit/php-text-template", @@ -8790,16 +8804,16 @@ }, { "name": "phpunit/php-timer", - "version": "2.1.3", + "version": "2.1.4", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-timer.git", - "reference": "2454ae1765516d20c4ffe103d85a58a9a3bd5662" + "reference": "a691211e94ff39a34811abd521c31bd5b305b0bb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/2454ae1765516d20c4ffe103d85a58a9a3bd5662", - "reference": "2454ae1765516d20c4ffe103d85a58a9a3bd5662", + "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/a691211e94ff39a34811abd521c31bd5b305b0bb", + "reference": "a691211e94ff39a34811abd521c31bd5b305b0bb", "shasum": "" }, "require": { @@ -8837,7 +8851,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/php-timer/issues", - "source": "https://github.com/sebastianbergmann/php-timer/tree/2.1.3" + "source": "https://github.com/sebastianbergmann/php-timer/tree/2.1.4" }, "funding": [ { @@ -8845,7 +8859,7 @@ "type": "github" } ], - "time": "2020-11-30T08:20:02+00:00" + "time": "2024-03-01T13:42:41+00:00" }, { "name": "phpunit/php-token-stream", @@ -8909,16 +8923,16 @@ }, { "name": "phpunit/phpunit", - "version": "8.5.36", + "version": "8.5.38", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "9652df58e06a681429d8cfdaec3c43d6de581d5a" + "reference": "1ecad678646c817a29e55a32c930f3601c3f5a8c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/9652df58e06a681429d8cfdaec3c43d6de581d5a", - "reference": "9652df58e06a681429d8cfdaec3c43d6de581d5a", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/1ecad678646c817a29e55a32c930f3601c3f5a8c", + "reference": "1ecad678646c817a29e55a32c930f3601c3f5a8c", "shasum": "" }, "require": { @@ -8987,7 +9001,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/phpunit/issues", "security": "https://github.com/sebastianbergmann/phpunit/security/policy", - "source": "https://github.com/sebastianbergmann/phpunit/tree/8.5.36" + "source": "https://github.com/sebastianbergmann/phpunit/tree/8.5.38" }, "funding": [ { @@ -9003,20 +9017,20 @@ "type": "tidelift" } ], - "time": "2023-12-01T16:52:15+00:00" + "time": "2024-04-05T04:31:23+00:00" }, { "name": "sebastian/code-unit-reverse-lookup", - "version": "1.0.2", + "version": "1.0.3", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git", - "reference": "1de8cd5c010cb153fcd68b8d0f64606f523f7619" + "reference": "92a1a52e86d34cde6caa54f1b5ffa9fda18e5d54" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/1de8cd5c010cb153fcd68b8d0f64606f523f7619", - "reference": "1de8cd5c010cb153fcd68b8d0f64606f523f7619", + "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/92a1a52e86d34cde6caa54f1b5ffa9fda18e5d54", + "reference": "92a1a52e86d34cde6caa54f1b5ffa9fda18e5d54", "shasum": "" }, "require": { @@ -9050,7 +9064,7 @@ "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/1.0.2" + "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/1.0.3" }, "funding": [ { @@ -9058,7 +9072,7 @@ "type": "github" } ], - "time": "2020-11-30T08:15:22+00:00" + "time": "2024-03-01T13:45:45+00:00" }, { "name": "sebastian/comparator", @@ -9136,16 +9150,16 @@ }, { "name": "sebastian/diff", - "version": "3.0.4", + "version": "3.0.6", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/diff.git", - "reference": "6296a0c086dd0117c1b78b059374d7fcbe7545ae" + "reference": "98ff311ca519c3aa73ccd3de053bdb377171d7b6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/6296a0c086dd0117c1b78b059374d7fcbe7545ae", - "reference": "6296a0c086dd0117c1b78b059374d7fcbe7545ae", + "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/98ff311ca519c3aa73ccd3de053bdb377171d7b6", + "reference": "98ff311ca519c3aa73ccd3de053bdb377171d7b6", "shasum": "" }, "require": { @@ -9190,7 +9204,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/diff/issues", - "source": "https://github.com/sebastianbergmann/diff/tree/3.0.4" + "source": "https://github.com/sebastianbergmann/diff/tree/3.0.6" }, "funding": [ { @@ -9198,20 +9212,20 @@ "type": "github" } ], - "time": "2023-05-07T05:30:20+00:00" + "time": "2024-03-02T06:16:36+00:00" }, { "name": "sebastian/environment", - "version": "4.2.4", + "version": "4.2.5", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/environment.git", - "reference": "d47bbbad83711771f167c72d4e3f25f7fcc1f8b0" + "reference": "56932f6049a0482853056ffd617c91ffcc754205" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/d47bbbad83711771f167c72d4e3f25f7fcc1f8b0", - "reference": "d47bbbad83711771f167c72d4e3f25f7fcc1f8b0", + "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/56932f6049a0482853056ffd617c91ffcc754205", + "reference": "56932f6049a0482853056ffd617c91ffcc754205", "shasum": "" }, "require": { @@ -9253,7 +9267,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/environment/issues", - "source": "https://github.com/sebastianbergmann/environment/tree/4.2.4" + "source": "https://github.com/sebastianbergmann/environment/tree/4.2.5" }, "funding": [ { @@ -9261,24 +9275,24 @@ "type": "github" } ], - "time": "2020-11-30T07:53:42+00:00" + "time": "2024-03-01T13:49:59+00:00" }, { "name": "sebastian/exporter", - "version": "3.1.5", + "version": "3.1.6", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/exporter.git", - "reference": "73a9676f2833b9a7c36968f9d882589cd75511e6" + "reference": "1939bc8fd1d39adcfa88c5b35335910869214c56" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/73a9676f2833b9a7c36968f9d882589cd75511e6", - "reference": "73a9676f2833b9a7c36968f9d882589cd75511e6", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/1939bc8fd1d39adcfa88c5b35335910869214c56", + "reference": "1939bc8fd1d39adcfa88c5b35335910869214c56", "shasum": "" }, "require": { - "php": ">=7.0", + "php": ">=7.2", "sebastian/recursion-context": "^3.0" }, "require-dev": { @@ -9330,7 +9344,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/exporter/issues", - "source": "https://github.com/sebastianbergmann/exporter/tree/3.1.5" + "source": "https://github.com/sebastianbergmann/exporter/tree/3.1.6" }, "funding": [ { @@ -9338,20 +9352,20 @@ "type": "github" } ], - "time": "2022-09-14T06:00:17+00:00" + "time": "2024-03-02T06:21:38+00:00" }, { "name": "sebastian/global-state", - "version": "3.0.3", + "version": "3.0.5", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/global-state.git", - "reference": "66783ce213de415b451b904bfef9dda0cf9aeae0" + "reference": "91c7c47047a971f02de57ed6f040087ef110c5d9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/66783ce213de415b451b904bfef9dda0cf9aeae0", - "reference": "66783ce213de415b451b904bfef9dda0cf9aeae0", + "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/91c7c47047a971f02de57ed6f040087ef110c5d9", + "reference": "91c7c47047a971f02de57ed6f040087ef110c5d9", "shasum": "" }, "require": { @@ -9394,7 +9408,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/global-state/issues", - "source": "https://github.com/sebastianbergmann/global-state/tree/3.0.3" + "source": "https://github.com/sebastianbergmann/global-state/tree/3.0.5" }, "funding": [ { @@ -9402,20 +9416,20 @@ "type": "github" } ], - "time": "2023-08-02T09:23:32+00:00" + "time": "2024-03-02T06:13:16+00:00" }, { "name": "sebastian/object-enumerator", - "version": "3.0.4", + "version": "3.0.5", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/object-enumerator.git", - "reference": "e67f6d32ebd0c749cf9d1dbd9f226c727043cdf2" + "reference": "ac5b293dba925751b808e02923399fb44ff0d541" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/e67f6d32ebd0c749cf9d1dbd9f226c727043cdf2", - "reference": "e67f6d32ebd0c749cf9d1dbd9f226c727043cdf2", + "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/ac5b293dba925751b808e02923399fb44ff0d541", + "reference": "ac5b293dba925751b808e02923399fb44ff0d541", "shasum": "" }, "require": { @@ -9451,7 +9465,7 @@ "homepage": "https://github.com/sebastianbergmann/object-enumerator/", "support": { "issues": "https://github.com/sebastianbergmann/object-enumerator/issues", - "source": "https://github.com/sebastianbergmann/object-enumerator/tree/3.0.4" + "source": "https://github.com/sebastianbergmann/object-enumerator/tree/3.0.5" }, "funding": [ { @@ -9459,20 +9473,20 @@ "type": "github" } ], - "time": "2020-11-30T07:40:27+00:00" + "time": "2024-03-01T13:54:02+00:00" }, { "name": "sebastian/object-reflector", - "version": "1.1.2", + "version": "1.1.3", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/object-reflector.git", - "reference": "9b8772b9cbd456ab45d4a598d2dd1a1bced6363d" + "reference": "1d439c229e61f244ff1f211e5c99737f90c67def" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/9b8772b9cbd456ab45d4a598d2dd1a1bced6363d", - "reference": "9b8772b9cbd456ab45d4a598d2dd1a1bced6363d", + "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/1d439c229e61f244ff1f211e5c99737f90c67def", + "reference": "1d439c229e61f244ff1f211e5c99737f90c67def", "shasum": "" }, "require": { @@ -9506,7 +9520,7 @@ "homepage": "https://github.com/sebastianbergmann/object-reflector/", "support": { "issues": "https://github.com/sebastianbergmann/object-reflector/issues", - "source": "https://github.com/sebastianbergmann/object-reflector/tree/1.1.2" + "source": "https://github.com/sebastianbergmann/object-reflector/tree/1.1.3" }, "funding": [ { @@ -9514,20 +9528,20 @@ "type": "github" } ], - "time": "2020-11-30T07:37:18+00:00" + "time": "2024-03-01T13:56:04+00:00" }, { "name": "sebastian/recursion-context", - "version": "3.0.1", + "version": "3.0.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/recursion-context.git", - "reference": "367dcba38d6e1977be014dc4b22f47a484dac7fb" + "reference": "9bfd3c6f1f08c026f542032dfb42813544f7d64c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/367dcba38d6e1977be014dc4b22f47a484dac7fb", - "reference": "367dcba38d6e1977be014dc4b22f47a484dac7fb", + "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/9bfd3c6f1f08c026f542032dfb42813544f7d64c", + "reference": "9bfd3c6f1f08c026f542032dfb42813544f7d64c", "shasum": "" }, "require": { @@ -9569,7 +9583,7 @@ "homepage": "http://www.github.com/sebastianbergmann/recursion-context", "support": { "issues": "https://github.com/sebastianbergmann/recursion-context/issues", - "source": "https://github.com/sebastianbergmann/recursion-context/tree/3.0.1" + "source": "https://github.com/sebastianbergmann/recursion-context/tree/3.0.2" }, "funding": [ { @@ -9577,20 +9591,20 @@ "type": "github" } ], - "time": "2020-11-30T07:34:24+00:00" + "time": "2024-03-01T14:07:30+00:00" }, { "name": "sebastian/resource-operations", - "version": "2.0.2", + "version": "2.0.3", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/resource-operations.git", - "reference": "31d35ca87926450c44eae7e2611d45a7a65ea8b3" + "reference": "72a7f7674d053d548003b16ff5a106e7e0e06eee" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/31d35ca87926450c44eae7e2611d45a7a65ea8b3", - "reference": "31d35ca87926450c44eae7e2611d45a7a65ea8b3", + "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/72a7f7674d053d548003b16ff5a106e7e0e06eee", + "reference": "72a7f7674d053d548003b16ff5a106e7e0e06eee", "shasum": "" }, "require": { @@ -9620,8 +9634,7 @@ "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/2.0.2" + "source": "https://github.com/sebastianbergmann/resource-operations/tree/2.0.3" }, "funding": [ { @@ -9629,20 +9642,20 @@ "type": "github" } ], - "time": "2020-11-30T07:30:19+00:00" + "time": "2024-03-01T13:59:09+00:00" }, { "name": "sebastian/type", - "version": "1.1.4", + "version": "1.1.5", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/type.git", - "reference": "0150cfbc4495ed2df3872fb31b26781e4e077eb4" + "reference": "18f071c3a29892b037d35e6b20ddf3ea39b42874" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/0150cfbc4495ed2df3872fb31b26781e4e077eb4", - "reference": "0150cfbc4495ed2df3872fb31b26781e4e077eb4", + "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/18f071c3a29892b037d35e6b20ddf3ea39b42874", + "reference": "18f071c3a29892b037d35e6b20ddf3ea39b42874", "shasum": "" }, "require": { @@ -9677,7 +9690,7 @@ "homepage": "https://github.com/sebastianbergmann/type", "support": { "issues": "https://github.com/sebastianbergmann/type/issues", - "source": "https://github.com/sebastianbergmann/type/tree/1.1.4" + "source": "https://github.com/sebastianbergmann/type/tree/1.1.5" }, "funding": [ { @@ -9685,7 +9698,7 @@ "type": "github" } ], - "time": "2020-11-30T07:25:11+00:00" + "time": "2024-03-01T14:04:07+00:00" }, { "name": "sebastian/version", @@ -9736,16 +9749,16 @@ }, { "name": "squizlabs/php_codesniffer", - "version": "3.9.0", + "version": "3.9.2", "source": { "type": "git", "url": "https://github.com/PHPCSStandards/PHP_CodeSniffer.git", - "reference": "d63cee4890a8afaf86a22e51ad4d97c91dd4579b" + "reference": "aac1f6f347a5c5ac6bc98ad395007df00990f480" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/PHPCSStandards/PHP_CodeSniffer/zipball/d63cee4890a8afaf86a22e51ad4d97c91dd4579b", - "reference": "d63cee4890a8afaf86a22e51ad4d97c91dd4579b", + "url": "https://api.github.com/repos/PHPCSStandards/PHP_CodeSniffer/zipball/aac1f6f347a5c5ac6bc98ad395007df00990f480", + "reference": "aac1f6f347a5c5ac6bc98ad395007df00990f480", "shasum": "" }, "require": { @@ -9812,20 +9825,20 @@ "type": "open_collective" } ], - "time": "2024-02-16T15:06:51+00:00" + "time": "2024-04-23T20:25:34+00:00" }, { "name": "symfony/browser-kit", - "version": "v5.4.35", + "version": "v5.4.39", "source": { "type": "git", "url": "https://github.com/symfony/browser-kit.git", - "reference": "2f6f979b579ed1c051465c3c2fb81daf5bb4a002" + "reference": "4c5d1a88ceee2b1c5c0b400b0137989ec34f70fa" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/browser-kit/zipball/2f6f979b579ed1c051465c3c2fb81daf5bb4a002", - "reference": "2f6f979b579ed1c051465c3c2fb81daf5bb4a002", + "url": "https://api.github.com/repos/symfony/browser-kit/zipball/4c5d1a88ceee2b1c5c0b400b0137989ec34f70fa", + "reference": "4c5d1a88ceee2b1c5c0b400b0137989ec34f70fa", "shasum": "" }, "require": { @@ -9868,7 +9881,7 @@ "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/v5.4.35" + "source": "https://github.com/symfony/browser-kit/tree/v5.4.39" }, "funding": [ { @@ -9884,20 +9897,20 @@ "type": "tidelift" } ], - "time": "2024-01-23T13:51:25+00:00" + "time": "2024-04-18T08:26:06+00:00" }, { "name": "symfony/dom-crawler", - "version": "v5.4.35", + "version": "v5.4.39", "source": { "type": "git", "url": "https://github.com/symfony/dom-crawler.git", - "reference": "e3b4806f88abf106a411847a78619a542e71de29" + "reference": "1dffb111b038412b028caba029240e379fda85b2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/e3b4806f88abf106a411847a78619a542e71de29", - "reference": "e3b4806f88abf106a411847a78619a542e71de29", + "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/1dffb111b038412b028caba029240e379fda85b2", + "reference": "1dffb111b038412b028caba029240e379fda85b2", "shasum": "" }, "require": { @@ -9943,7 +9956,7 @@ "description": "Eases DOM navigation for HTML and XML documents", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/dom-crawler/tree/v5.4.35" + "source": "https://github.com/symfony/dom-crawler/tree/v5.4.39" }, "funding": [ { @@ -9959,20 +9972,20 @@ "type": "tidelift" } ], - "time": "2024-01-23T13:51:25+00:00" + "time": "2024-04-18T08:26:06+00:00" }, { "name": "symfony/phpunit-bridge", - "version": "v5.4.36", + "version": "v5.4.39", "source": { "type": "git", "url": "https://github.com/symfony/phpunit-bridge.git", - "reference": "c4d978502e03cc6a45d8454e06e59ff22d4907d5" + "reference": "969b505a61f20c3f56fb3620d51f40bdc4517fb7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/phpunit-bridge/zipball/c4d978502e03cc6a45d8454e06e59ff22d4907d5", - "reference": "c4d978502e03cc6a45d8454e06e59ff22d4907d5", + "url": "https://api.github.com/repos/symfony/phpunit-bridge/zipball/969b505a61f20c3f56fb3620d51f40bdc4517fb7", + "reference": "969b505a61f20c3f56fb3620d51f40bdc4517fb7", "shasum": "" }, "require": { @@ -10026,7 +10039,7 @@ "description": "Provides utilities for PHPUnit, especially user deprecation notices management", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/phpunit-bridge/tree/v5.4.36" + "source": "https://github.com/symfony/phpunit-bridge/tree/v5.4.39" }, "funding": [ { @@ -10042,20 +10055,20 @@ "type": "tidelift" } ], - "time": "2024-02-08T14:03:57+00:00" + "time": "2024-04-18T08:26:06+00:00" }, { "name": "theseer/tokenizer", - "version": "1.2.2", + "version": "1.2.3", "source": { "type": "git", "url": "https://github.com/theseer/tokenizer.git", - "reference": "b2ad5003ca10d4ee50a12da31de12a5774ba6b96" + "reference": "737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/theseer/tokenizer/zipball/b2ad5003ca10d4ee50a12da31de12a5774ba6b96", - "reference": "b2ad5003ca10d4ee50a12da31de12a5774ba6b96", + "url": "https://api.github.com/repos/theseer/tokenizer/zipball/737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2", + "reference": "737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2", "shasum": "" }, "require": { @@ -10084,7 +10097,7 @@ "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.2" + "source": "https://github.com/theseer/tokenizer/tree/1.2.3" }, "funding": [ { @@ -10092,7 +10105,7 @@ "type": "github" } ], - "time": "2023-11-20T00:12:19+00:00" + "time": "2024-03-03T12:36:25+00:00" } ], "aliases": [], diff --git a/library/EngineBlock/Application/DiContainer.php b/library/EngineBlock/Application/DiContainer.php index c9efe77b4d..e303d4b321 100644 --- a/library/EngineBlock/Application/DiContainer.php +++ b/library/EngineBlock/Application/DiContainer.php @@ -282,7 +282,7 @@ public function getSession() } /** - * @return Swift_Mailer + * @return \Symfony\Component\Mailer\MailerInterface */ public function getMailer() { diff --git a/library/EngineBlock/Corto/Module/Service/SingleSignOn.php b/library/EngineBlock/Corto/Module/Service/SingleSignOn.php index 06ee58ce83..f8d3121377 100644 --- a/library/EngineBlock/Corto/Module/Service/SingleSignOn.php +++ b/library/EngineBlock/Corto/Module/Service/SingleSignOn.php @@ -26,6 +26,7 @@ use SAML2\Response; use SAML2\XML\saml\Issuer; use Symfony\Component\HttpFoundation\Request; +use Symfony\Component\Mime\Email; class EngineBlock_Corto_Module_Service_SingleSignOn implements EngineBlock_Corto_Module_Service_ServiceInterface { @@ -557,12 +558,12 @@ protected function _sendDebugMail(EngineBlock_Saml2_ResponseAnnotationDecorator $diContainer = EngineBlock_ApplicationSingleton::getInstance()->getDiContainer(); $emailConfiguration = $diContainer->getEmailIdpDebuggingConfiguration(); - $message = new Swift_Message(); + $message = new Email(); $message - ->setSubject(sprintf($emailConfiguration['subject'], $identityProvider->nameEn)) - ->setFrom($emailConfiguration['from']['address'], $emailConfiguration['from']['name']) - ->setTo($emailConfiguration['to']['address'], $emailConfiguration['to']['name']) - ->setBody($output, 'text/plain'); + ->subject(sprintf($emailConfiguration['subject'], $identityProvider->nameEn)) + ->from($emailConfiguration['from']['address'], $emailConfiguration['from']['name']) + ->to($emailConfiguration['to']['address'], $emailConfiguration['to']['name']) + ->text($output, 'text/plain'); $diContainer->getMailer()->send($message); } diff --git a/src/OpenConext/EngineBlock/Service/RequestAccessMailer.php b/src/OpenConext/EngineBlock/Service/RequestAccessMailer.php index 16caefbecf..cd7a21e4b0 100644 --- a/src/OpenConext/EngineBlock/Service/RequestAccessMailer.php +++ b/src/OpenConext/EngineBlock/Service/RequestAccessMailer.php @@ -18,10 +18,8 @@ namespace OpenConext\EngineBlock\Service; -use Swift_Mailer; -use Swift_Message; -use Symfony\Component\Mailer\Mailer; -use Symfony\Component\Mime\RawMessage; +use Symfony\Component\Mailer\MailerInterface; +use Symfony\Component\Mime\Email; class RequestAccessMailer { @@ -49,7 +47,7 @@ class RequestAccessMailer TPL; /** - * @var Mailer + * @var MailerInterface */ private $mailer; @@ -59,10 +57,10 @@ class RequestAccessMailer private $requestAccessEmailAddress; /** - * @param Mailer $mailer + * @param MailerInterface $mailer * @param string $requestAccessEmailAddress */ - public function __construct(Mailer $mailer, $requestAccessEmailAddress) + public function __construct(MailerInterface $mailer, $requestAccessEmailAddress) { $this->mailer = $mailer; $this->requestAccessEmailAddress = $requestAccessEmailAddress; @@ -95,13 +93,12 @@ public function sendRequestAccessEmailForIdp($spName, $spEntityId, $institution, // We use the destination email address also as a From since we do // not have a better generic sender address available currently. - $message = new RawMessage($body); - // @TODO: ENT-4567 fix from SwiftMailer to Mailer -// $message -// ->setSubject($subject) -// ->setFrom($email, $name) -// ->setTo($this->requestAccessEmailAddress) -// ->setBody($body, 'text/plain'); + $message = new Email(); + $message + ->subject($subject) + ->from($this->requestAccessEmailAddress) + ->to($this->requestAccessEmailAddress) + ->text($body, 'text/plain'); $this->mailer->send($message); } @@ -129,12 +126,12 @@ public function sendRequestAccessEmailForInstitution($spName, $spEntityId, $inst $comment ); - $message = new Swift_Message(); + $message = new Email(); $message - ->setSubject($subject) - ->setFrom($this->requestAccessEmailAddress) - ->setTo($this->requestAccessEmailAddress) - ->setBody($body, 'text/plain'); + ->subject($subject) + ->from($this->requestAccessEmailAddress) + ->to($this->requestAccessEmailAddress) + ->text($body, 'text/plain'); $this->mailer->send($message); From 250d313a6ddd4d6bd2ae53d92dad5e6633fdeeae Mon Sep 17 00:00:00 2001 From: Vincent Jong Date: Wed, 1 May 2024 17:03:10 +0200 Subject: [PATCH 03/35] Temporarily enable actions --- .github/workflows/test-integration.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/test-integration.yml b/.github/workflows/test-integration.yml index bb23e50c75..9bd1e61477 100644 --- a/.github/workflows/test-integration.yml +++ b/.github/workflows/test-integration.yml @@ -3,6 +3,7 @@ on: push: branches: - master + - symfony_upgrade_5_4 pull_request: # run at 6 hour UTC schedule: From 5a4f904bb1f55b4bff6522c93a34378ffac91517 Mon Sep 17 00:00:00 2001 From: Vincent Jong Date: Thu, 2 May 2024 10:15:53 +0200 Subject: [PATCH 04/35] Fix provided mail service --- app/config/config.yml | 3 +++ library/EngineBlock/Application/DiContainer.php | 2 +- library/EngineBlock/Corto/Module/Service/SingleSignOn.php | 4 ++-- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/app/config/config.yml b/app/config/config.yml index 9138a73ece..ace8c07295 100644 --- a/app/config/config.yml +++ b/app/config/config.yml @@ -161,3 +161,6 @@ services: public: false arguments: - '@doctrine.system_cache_pool' + app.mailer: + alias: Symfony\Component\Mailer\MailerInterface + public: true diff --git a/library/EngineBlock/Application/DiContainer.php b/library/EngineBlock/Application/DiContainer.php index e303d4b321..dc070f1e22 100644 --- a/library/EngineBlock/Application/DiContainer.php +++ b/library/EngineBlock/Application/DiContainer.php @@ -286,7 +286,7 @@ public function getSession() */ public function getMailer() { - return $this->container->get('mailer'); + return $this->container->get('app.mailer'); } /** diff --git a/library/EngineBlock/Corto/Module/Service/SingleSignOn.php b/library/EngineBlock/Corto/Module/Service/SingleSignOn.php index f8d3121377..2e85ce465f 100644 --- a/library/EngineBlock/Corto/Module/Service/SingleSignOn.php +++ b/library/EngineBlock/Corto/Module/Service/SingleSignOn.php @@ -561,8 +561,8 @@ protected function _sendDebugMail(EngineBlock_Saml2_ResponseAnnotationDecorator $message = new Email(); $message ->subject(sprintf($emailConfiguration['subject'], $identityProvider->nameEn)) - ->from($emailConfiguration['from']['address'], $emailConfiguration['from']['name']) - ->to($emailConfiguration['to']['address'], $emailConfiguration['to']['name']) + ->from($emailConfiguration['from']['address']) + ->to($emailConfiguration['to']['address']) ->text($output, 'text/plain'); $diContainer->getMailer()->send($message); From 8f51363cff219f626c6daf5bfcb840a9727ae5ab Mon Sep 17 00:00:00 2001 From: Vincent Jong Date: Thu, 2 May 2024 13:46:17 +0200 Subject: [PATCH 05/35] Restore unit tests --- composer.json | 23 +- composer.lock | 736 +++++++++++++++++- .../Command/DumpServiceRegistryCommand.php | 23 +- .../Controllers/FeedbackController.php | 6 +- .../IdentityProviderController.php | 4 +- .../Controllers/ServiceProviderController.php | 4 +- .../Controllers/StepupMockController.php | 4 +- .../Controllers/WayfController.php | 4 +- tests/behat-ci.yml | 5 - tests/behat.yml | 5 - tests/bootstrap.php | 1 - ...neblockIdentityProviderInformationTest.php | 2 +- ...ineblockServiceProviderInformationTest.php | 2 +- .../Decorator/ProxiedIdentityProviderTest.php | 2 +- .../Factory/IdentityProviderFactoryTest.php | 2 +- .../Factory/ServiceProviderFactoryTest.php | 2 +- .../EngineBlockConfigurationTest.php | 2 +- .../Service/SsoNotificationServiceTest.php | 6 +- .../Service/SsoSessionServiceTest.php | 4 +- .../EngineBlock/Xml/MetadataRendererTest.php | 2 +- .../ErrorFeedbackConfigurationTest.php | 2 +- .../Extensions/Extension/MetadataTest.php | 2 +- 22 files changed, 791 insertions(+), 52 deletions(-) diff --git a/composer.json b/composer.json index 5e29c054cd..7a9335c013 100644 --- a/composer.json +++ b/composer.json @@ -18,10 +18,10 @@ "ext-openssl": "*", "beberlei/assert": "^2.6", "composer/package-versions-deprecated": "^1.11", - "doctrine/doctrine-migrations-bundle": "^3.2.1", "doctrine/annotations": "1.14.3", - "doctrine/orm": "2.14.1", "doctrine/dbal": "3.6.0", + "doctrine/doctrine-migrations-bundle": "^3.2.1", + "doctrine/orm": "2.14.1", "guzzlehttp/guzzle": "^6.3", "incenteev/composer-parameter-handler": "~2.0", "monolog/monolog": "~1.13", @@ -30,21 +30,26 @@ "pimple/pimple": "~2.1", "ramsey/uuid": "^3.3.0", "simplesamlphp/saml2": "^4.1", - "symfony/twig-bundle": "v5.4.19", + "symfony/cache": "v5.4.19", + "symfony/debug-bundle": "v5.4.19", + "symfony/expression-language": "v5.4.19", + "symfony/form": "v5.4.19", + "symfony/mailer": "v5.4.19", "symfony/monolog-bundle": "v3.8.0", "symfony/security-bundle": "v5.4.20", - "symfony/debug-bundle": "v5.4.19", - "symfony/web-profiler-bundle": "v5.4.19", "symfony/translation": "v5.4.19", - "symfony/mailer": "v5.4.19", - "symfony/form": "v5.4.19", + "symfony/twig-bundle": "v5.4.19", "symfony/validator": "v5.4.19", - "symfony/cache": "v5.4.19", - "symfony/expression-language": "v5.4.19", + "symfony/web-profiler-bundle": "v5.4.19", "twig/extensions": "^1.5", "twig/twig": "^2.0" }, "require-dev": { + "behat/mink": "^1.11", + "behat/mink-browserkit-driver": "^2.2", + "behat/mink-selenium2-driver": "^1.7", + "friends-of-behat/mink-extension": "^2.7", + "friends-of-behat/symfony-extension": "^2.4", "league/flysystem": "^2.5", "liip/functional-test-bundle": "^4.7.0", "malukenho/docheader": "^0.1.8", diff --git a/composer.lock b/composer.lock index 083749ef01..15c8f37afc 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "acfff7e5fe794b9179c8dd83c59f0de2", + "content-hash": "6cafdab9b6ba2de0061a84e117f9d94e", "packages": [ { "name": "beberlei/assert", @@ -7619,6 +7619,409 @@ } ], "packages-dev": [ + { + "name": "behat/behat", + "version": "v3.14.0", + "source": { + "type": "git", + "url": "https://github.com/Behat/Behat.git", + "reference": "2a3832d9cb853a794af3a576f9e524ae460f3340" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Behat/Behat/zipball/2a3832d9cb853a794af3a576f9e524ae460f3340", + "reference": "2a3832d9cb853a794af3a576f9e524ae460f3340", + "shasum": "" + }, + "require": { + "behat/gherkin": "^4.9.0", + "behat/transliterator": "^1.2", + "ext-mbstring": "*", + "php": "^7.2 || ^8.0", + "psr/container": "^1.0 || ^2.0", + "symfony/config": "^4.4 || ^5.0 || ^6.0 || ^7.0", + "symfony/console": "^4.4 || ^5.0 || ^6.0 || ^7.0", + "symfony/dependency-injection": "^4.4 || ^5.0 || ^6.0 || ^7.0", + "symfony/event-dispatcher": "^4.4 || ^5.0 || ^6.0 || ^7.0", + "symfony/translation": "^4.4 || ^5.0 || ^6.0 || ^7.0", + "symfony/yaml": "^4.4 || ^5.0 || ^6.0 || ^7.0" + }, + "require-dev": { + "herrera-io/box": "~1.6.1", + "phpspec/prophecy": "^1.15", + "phpunit/phpunit": "^8.5 || ^9.0", + "symfony/process": "^4.4 || ^5.0 || ^6.0 || ^7.0", + "vimeo/psalm": "^4.8" + }, + "suggest": { + "ext-dom": "Needed to output test results in JUnit format." + }, + "bin": [ + "bin/behat" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.x-dev" + } + }, + "autoload": { + "psr-4": { + "Behat\\Hook\\": "src/Behat/Hook/", + "Behat\\Step\\": "src/Behat/Step/", + "Behat\\Behat\\": "src/Behat/Behat/", + "Behat\\Testwork\\": "src/Behat/Testwork/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Konstantin Kudryashov", + "email": "ever.zet@gmail.com", + "homepage": "http://everzet.com" + } + ], + "description": "Scenario-oriented BDD framework for PHP", + "homepage": "http://behat.org/", + "keywords": [ + "Agile", + "BDD", + "ScenarioBDD", + "Scrum", + "StoryBDD", + "User story", + "business", + "development", + "documentation", + "examples", + "symfony", + "testing" + ], + "support": { + "issues": "https://github.com/Behat/Behat/issues", + "source": "https://github.com/Behat/Behat/tree/v3.14.0" + }, + "time": "2023-12-09T13:55:02+00:00" + }, + { + "name": "behat/gherkin", + "version": "v4.9.0", + "source": { + "type": "git", + "url": "https://github.com/Behat/Gherkin.git", + "reference": "0bc8d1e30e96183e4f36db9dc79caead300beff4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Behat/Gherkin/zipball/0bc8d1e30e96183e4f36db9dc79caead300beff4", + "reference": "0bc8d1e30e96183e4f36db9dc79caead300beff4", + "shasum": "" + }, + "require": { + "php": "~7.2|~8.0" + }, + "require-dev": { + "cucumber/cucumber": "dev-gherkin-22.0.0", + "phpunit/phpunit": "~8|~9", + "symfony/yaml": "~3|~4|~5" + }, + "suggest": { + "symfony/yaml": "If you want to parse features, represented in YAML files" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.x-dev" + } + }, + "autoload": { + "psr-0": { + "Behat\\Gherkin": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Konstantin Kudryashov", + "email": "ever.zet@gmail.com", + "homepage": "http://everzet.com" + } + ], + "description": "Gherkin DSL parser for PHP", + "homepage": "http://behat.org/", + "keywords": [ + "BDD", + "Behat", + "Cucumber", + "DSL", + "gherkin", + "parser" + ], + "support": { + "issues": "https://github.com/Behat/Gherkin/issues", + "source": "https://github.com/Behat/Gherkin/tree/v4.9.0" + }, + "time": "2021-10-12T13:05:09+00:00" + }, + { + "name": "behat/mink", + "version": "v1.11.0", + "source": { + "type": "git", + "url": "https://github.com/minkphp/Mink.git", + "reference": "d8527fdf8785aad38455fb426af457ab9937aece" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/minkphp/Mink/zipball/d8527fdf8785aad38455fb426af457ab9937aece", + "reference": "d8527fdf8785aad38455fb426af457ab9937aece", + "shasum": "" + }, + "require": { + "php": ">=7.2", + "symfony/css-selector": "^4.4 || ^5.0 || ^6.0 || ^7.0" + }, + "require-dev": { + "phpstan/phpstan": "^1.10", + "phpstan/phpstan-phpunit": "^1.3", + "phpunit/phpunit": "^8.5.22 || ^9.5.11", + "symfony/error-handler": "^4.4 || ^5.0 || ^6.0 || ^7.0", + "symfony/phpunit-bridge": "^5.4 || ^6.0 || ^7.0" + }, + "suggest": { + "behat/mink-browserkit-driver": "fast headless driver for any app without JS emulation", + "behat/mink-selenium2-driver": "slow, but JS-enabled driver for any app (requires Selenium2)", + "behat/mink-zombie-driver": "fast and JS-enabled headless driver for any app (requires node.js)", + "dmore/chrome-mink-driver": "fast and JS-enabled driver for any app (requires chromium or google chrome)" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Behat\\Mink\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Konstantin Kudryashov", + "email": "ever.zet@gmail.com", + "homepage": "http://everzet.com" + } + ], + "description": "Browser controller/emulator abstraction for PHP", + "homepage": "https://mink.behat.org/", + "keywords": [ + "browser", + "testing", + "web" + ], + "support": { + "issues": "https://github.com/minkphp/Mink/issues", + "source": "https://github.com/minkphp/Mink/tree/v1.11.0" + }, + "time": "2023-12-09T11:23:23+00:00" + }, + { + "name": "behat/mink-browserkit-driver", + "version": "v2.2.0", + "source": { + "type": "git", + "url": "https://github.com/minkphp/MinkBrowserKitDriver.git", + "reference": "16d53476e42827ed3aafbfa4fde17a1743eafd50" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/minkphp/MinkBrowserKitDriver/zipball/16d53476e42827ed3aafbfa4fde17a1743eafd50", + "reference": "16d53476e42827ed3aafbfa4fde17a1743eafd50", + "shasum": "" + }, + "require": { + "behat/mink": "^1.11.0@dev", + "ext-dom": "*", + "php": ">=7.2", + "symfony/browser-kit": "^4.4 || ^5.0 || ^6.0 || ^7.0", + "symfony/dom-crawler": "^4.4 || ^5.0 || ^6.0 || ^7.0" + }, + "require-dev": { + "mink/driver-testsuite": "dev-master", + "phpstan/phpstan": "^1.10", + "phpstan/phpstan-phpunit": "^1.3", + "phpunit/phpunit": "^8.5 || ^9.5", + "symfony/error-handler": "^4.4 || ^5.0 || ^6.0 || ^7.0", + "symfony/http-client": "^4.4 || ^5.0 || ^6.0 || ^7.0", + "symfony/http-kernel": "^4.4 || ^5.0 || ^6.0 || ^7.0", + "symfony/mime": "^4.4 || ^5.0 || ^6.0 || ^7.0", + "yoast/phpunit-polyfills": "^1.0" + }, + "type": "mink-driver", + "extra": { + "branch-alias": { + "dev-master": "2.x-dev" + } + }, + "autoload": { + "psr-4": { + "Behat\\Mink\\Driver\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Konstantin Kudryashov", + "email": "ever.zet@gmail.com", + "homepage": "http://everzet.com" + } + ], + "description": "Symfony2 BrowserKit driver for Mink framework", + "homepage": "https://mink.behat.org/", + "keywords": [ + "Mink", + "Symfony2", + "browser", + "testing" + ], + "support": { + "issues": "https://github.com/minkphp/MinkBrowserKitDriver/issues", + "source": "https://github.com/minkphp/MinkBrowserKitDriver/tree/v2.2.0" + }, + "time": "2023-12-09T11:30:50+00:00" + }, + { + "name": "behat/mink-selenium2-driver", + "version": "v1.7.0", + "source": { + "type": "git", + "url": "https://github.com/minkphp/MinkSelenium2Driver.git", + "reference": "4ca4083f305de7dff4434ac402dc4e3f39c0866a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/minkphp/MinkSelenium2Driver/zipball/4ca4083f305de7dff4434ac402dc4e3f39c0866a", + "reference": "4ca4083f305de7dff4434ac402dc4e3f39c0866a", + "shasum": "" + }, + "require": { + "behat/mink": "^1.11@dev", + "ext-json": "*", + "instaclick/php-webdriver": "^1.4.14", + "php": ">=7.2" + }, + "require-dev": { + "mink/driver-testsuite": "dev-master", + "phpstan/phpstan": "^1.10", + "phpstan/phpstan-phpunit": "^1.3", + "phpunit/phpunit": "^8.5.22 || ^9.5.11", + "symfony/error-handler": "^4.4 || ^5.0 || ^6.0 || ^7.0" + }, + "type": "mink-driver", + "extra": { + "branch-alias": { + "dev-master": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Behat\\Mink\\Driver\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Pete Otaqui", + "email": "pete@otaqui.com", + "homepage": "https://github.com/pete-otaqui" + }, + { + "name": "Konstantin Kudryashov", + "email": "ever.zet@gmail.com", + "homepage": "http://everzet.com" + } + ], + "description": "Selenium2 (WebDriver) driver for Mink framework", + "homepage": "https://mink.behat.org/", + "keywords": [ + "ajax", + "browser", + "javascript", + "selenium", + "testing", + "webdriver" + ], + "support": { + "issues": "https://github.com/minkphp/MinkSelenium2Driver/issues", + "source": "https://github.com/minkphp/MinkSelenium2Driver/tree/v1.7.0" + }, + "time": "2023-12-09T11:58:45+00:00" + }, + { + "name": "behat/transliterator", + "version": "v1.5.0", + "source": { + "type": "git", + "url": "https://github.com/Behat/Transliterator.git", + "reference": "baac5873bac3749887d28ab68e2f74db3a4408af" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Behat/Transliterator/zipball/baac5873bac3749887d28ab68e2f74db3a4408af", + "reference": "baac5873bac3749887d28ab68e2f74db3a4408af", + "shasum": "" + }, + "require": { + "php": ">=7.2" + }, + "require-dev": { + "chuyskywalker/rolling-curl": "^3.1", + "php-yaoi/php-yaoi": "^1.0", + "phpunit/phpunit": "^8.5.25 || ^9.5.19" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Behat\\Transliterator\\": "src/Behat/Transliterator" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Artistic-1.0" + ], + "description": "String transliterator", + "keywords": [ + "i18n", + "slug", + "transliterator" + ], + "support": { + "issues": "https://github.com/Behat/Transliterator/issues", + "source": "https://github.com/Behat/Transliterator/tree/v1.5.0" + }, + "time": "2022-03-30T09:27:43+00:00" + }, { "name": "composer/pcre", "version": "3.1.3", @@ -7756,6 +8159,141 @@ ], "time": "2024-03-26T18:29:49+00:00" }, + { + "name": "friends-of-behat/mink-extension", + "version": "v2.7.5", + "source": { + "type": "git", + "url": "https://github.com/FriendsOfBehat/MinkExtension.git", + "reference": "854336030e11983f580f49faad1b49a1238f9846" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/FriendsOfBehat/MinkExtension/zipball/854336030e11983f580f49faad1b49a1238f9846", + "reference": "854336030e11983f580f49faad1b49a1238f9846", + "shasum": "" + }, + "require": { + "behat/behat": "^3.0.5", + "behat/mink": "^1.5", + "php": ">=7.4", + "symfony/config": "^4.4 || ^5.0 || ^6.0 || ^7.0" + }, + "replace": { + "behat/mink-extension": "self.version" + }, + "require-dev": { + "behat/mink-goutte-driver": "^1.1 || ^2.0", + "phpspec/phpspec": "^6.0 || ^7.0 || 7.1.x-dev" + }, + "type": "behat-extension", + "extra": { + "branch-alias": { + "dev-master": "2.1.x-dev" + } + }, + "autoload": { + "psr-0": { + "Behat\\MinkExtension": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Konstantin Kudryashov", + "email": "ever.zet@gmail.com" + }, + { + "name": "Christophe Coevoet", + "email": "stof@notk.org" + } + ], + "description": "Mink extension for Behat", + "homepage": "http://extensions.behat.org/mink", + "keywords": [ + "browser", + "gui", + "test", + "web" + ], + "support": { + "issues": "https://github.com/FriendsOfBehat/MinkExtension/issues", + "source": "https://github.com/FriendsOfBehat/MinkExtension/tree/v2.7.5" + }, + "time": "2024-01-11T09:12:02+00:00" + }, + { + "name": "friends-of-behat/symfony-extension", + "version": "v2.4.2", + "source": { + "type": "git", + "url": "https://github.com/FriendsOfBehat/SymfonyExtension.git", + "reference": "957df89b214f1575b40203e374bcafcd6d200a1d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/FriendsOfBehat/SymfonyExtension/zipball/957df89b214f1575b40203e374bcafcd6d200a1d", + "reference": "957df89b214f1575b40203e374bcafcd6d200a1d", + "shasum": "" + }, + "require": { + "behat/behat": "^3.6.1", + "php": "^7.4 || ^8.0", + "symfony/dependency-injection": "^4.4 || ^5.3 || ^6.0", + "symfony/http-kernel": "^4.4 || ^5.3 || ^6.0", + "symfony/proxy-manager-bridge": "^4.4 || ^5.3 || ^6.0" + }, + "require-dev": { + "behat/mink": "^1.9", + "behat/mink-browserkit-driver": "^2.0", + "behat/mink-selenium2-driver": "^1.3", + "friends-of-behat/mink-extension": "^2.5", + "friends-of-behat/page-object-extension": "^0.3.2", + "friends-of-behat/service-container-extension": "^1.1", + "sylius-labs/coding-standard": ">=4.1.1, <=4.2.1", + "symfony/browser-kit": "^4.4 || ^5.3 || ^6.0", + "symfony/framework-bundle": "^4.4 || ^5.3 || ^6.0", + "symfony/process": "^4.4 || ^5.3 || ^6.0", + "symfony/yaml": "^4.4 || ^5.3 || ^6.0", + "vimeo/psalm": "4.30.0" + }, + "suggest": { + "behat/mink": "^1.9", + "behat/mink-browserkit-driver": "^2.0", + "friends-of-behat/mink-extension": "^2.5" + }, + "type": "symfony-bundle", + "extra": { + "branch-alias": { + "dev-master": "2.2-dev" + } + }, + "autoload": { + "psr-4": { + "FriendsOfBehat\\SymfonyExtension\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Kamil Kokot", + "email": "kamil@kokot.me", + "homepage": "https://kamilkokot.com" + } + ], + "description": "Integrates Behat with Symfony.", + "support": { + "issues": "https://github.com/FriendsOfBehat/SymfonyExtension/issues", + "source": "https://github.com/FriendsOfBehat/SymfonyExtension/tree/v2.4.2" + }, + "time": "2023-12-09T12:17:26+00:00" + }, { "name": "hamcrest/hamcrest-php", "version": "v2.0.1", @@ -7807,6 +8345,69 @@ }, "time": "2020-07-09T08:09:16+00:00" }, + { + "name": "instaclick/php-webdriver", + "version": "1.4.19", + "source": { + "type": "git", + "url": "https://github.com/instaclick/php-webdriver.git", + "reference": "3b2a2ddc4e0a690cc691d7e5952964cc4b9538b1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/instaclick/php-webdriver/zipball/3b2a2ddc4e0a690cc691d7e5952964cc4b9538b1", + "reference": "3b2a2ddc4e0a690cc691d7e5952964cc4b9538b1", + "shasum": "" + }, + "require": { + "ext-curl": "*", + "php": ">=5.3.2" + }, + "require-dev": { + "phpunit/phpunit": "^8.5 || ^9.5", + "satooshi/php-coveralls": "^1.0 || ^2.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.4.x-dev" + } + }, + "autoload": { + "psr-0": { + "WebDriver": "lib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "authors": [ + { + "name": "Justin Bishop", + "email": "jubishop@gmail.com", + "role": "Developer" + }, + { + "name": "Anthon Pang", + "email": "apang@softwaredevelopment.ca", + "role": "Fork Maintainer" + } + ], + "description": "PHP WebDriver for Selenium 2", + "homepage": "http://instaclick.com/", + "keywords": [ + "browser", + "selenium", + "webdriver", + "webtest" + ], + "support": { + "issues": "https://github.com/instaclick/php-webdriver/issues", + "source": "https://github.com/instaclick/php-webdriver/tree/1.4.19" + }, + "time": "2024-03-19T01:58:53+00:00" + }, { "name": "league/flysystem", "version": "2.5.0", @@ -9899,6 +10500,72 @@ ], "time": "2024-04-18T08:26:06+00:00" }, + { + "name": "symfony/css-selector", + "version": "v5.4.39", + "source": { + "type": "git", + "url": "https://github.com/symfony/css-selector.git", + "reference": "0934c9f1d433776f25c629bdc93f3e157d139e08" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/css-selector/zipball/0934c9f1d433776f25c629bdc93f3e157d139e08", + "reference": "0934c9f1d433776f25c629bdc93f3e157d139e08", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/polyfill-php80": "^1.16" + }, + "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/v5.4.39" + }, + "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": "2024-04-18T08:26:06+00:00" + }, { "name": "symfony/dom-crawler", "version": "v5.4.39", @@ -10057,6 +10724,73 @@ ], "time": "2024-04-18T08:26:06+00:00" }, + { + "name": "symfony/proxy-manager-bridge", + "version": "v5.4.39", + "source": { + "type": "git", + "url": "https://github.com/symfony/proxy-manager-bridge.git", + "reference": "2af1b394cc8bee0fecc7c8925f7fbc6934efef41" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/proxy-manager-bridge/zipball/2af1b394cc8bee0fecc7c8925f7fbc6934efef41", + "reference": "2af1b394cc8bee0fecc7c8925f7fbc6934efef41", + "shasum": "" + }, + "require": { + "friendsofphp/proxy-manager-lts": "^1.0.2", + "php": ">=7.2.5", + "symfony/dependency-injection": "^5.0|^6.0", + "symfony/polyfill-php80": "^1.16" + }, + "require-dev": { + "symfony/config": "^4.4|^5.0|^6.0" + }, + "type": "symfony-bridge", + "autoload": { + "psr-4": { + "Symfony\\Bridge\\ProxyManager\\": "" + }, + "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 ProxyManager with various Symfony components", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/proxy-manager-bridge/tree/v5.4.39" + }, + "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": "2024-04-18T08:26:06+00:00" + }, { "name": "theseer/tokenizer", "version": "1.2.3", diff --git a/src/OpenConext/EngineBlockFunctionalTestingBundle/Command/DumpServiceRegistryCommand.php b/src/OpenConext/EngineBlockFunctionalTestingBundle/Command/DumpServiceRegistryCommand.php index dc2cffe9e5..3907f35f6b 100644 --- a/src/OpenConext/EngineBlockFunctionalTestingBundle/Command/DumpServiceRegistryCommand.php +++ b/src/OpenConext/EngineBlockFunctionalTestingBundle/Command/DumpServiceRegistryCommand.php @@ -19,7 +19,7 @@ namespace OpenConext\EngineBlockFunctionalTestingBundle\Command; use OpenConext\EngineBlockFunctionalTestingBundle\Fixtures\DataStore\JsonDataStore; -use Symfony\Bundle\FrameworkBundle\Command\ContainerAwareCommand; +use Symfony\Component\Console\Command\Command; use Symfony\Component\Console\Input\InputArgument; use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Output\OutputInterface; @@ -27,12 +27,25 @@ /** * Dump the contents of the (fake) Service Registry */ -class DumpServiceRegistryCommand extends ContainerAwareCommand +class DumpServiceRegistryCommand extends Command { + const COMMAND_NAME = 'engineblock:dump:sr'; + + /** + * @var JsonDataStore + */ + private $dataStore; + + public function __construct(JsonDataStore $jsonDataStore, ?string $name = self::COMMAND_NAME) + { + parent::__construct($name); + $this->dataStore = $jsonDataStore; + } + protected function configure() { $this - ->setName('engineblock:dump:sr') + ->setName(self::COMMAND_NAME) ->setAliases(['dump:sr']) ->setDescription('Find all sessions from log output on STDIN or for a given file') ->addArgument('file', InputArgument::OPTIONAL, 'File to get sessions from.'); @@ -40,9 +53,7 @@ protected function configure() protected function execute(InputInterface $input, OutputInterface $output) { - /** @var JsonDataStore $jsonDataStore */ - $jsonDataStore = $this->getContainer()->get('engineblock.functional_testing.data_store.service_registry'); - $output->write(print_r($jsonDataStore->load(), true)); + $output->write(print_r($this->dataStore->load(), true)); return 0; } } diff --git a/src/OpenConext/EngineBlockFunctionalTestingBundle/Controllers/FeedbackController.php b/src/OpenConext/EngineBlockFunctionalTestingBundle/Controllers/FeedbackController.php index 85e6394993..f07c0d2a54 100644 --- a/src/OpenConext/EngineBlockFunctionalTestingBundle/Controllers/FeedbackController.php +++ b/src/OpenConext/EngineBlockFunctionalTestingBundle/Controllers/FeedbackController.php @@ -19,17 +19,17 @@ namespace OpenConext\EngineBlockFunctionalTestingBundle\Controllers; use Psr\Log\LoggerInterface; -use Symfony\Bundle\FrameworkBundle\Controller\Controller; +use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; -use Symfony\Component\Translation\TranslatorInterface; +use Symfony\Contracts\Translation\TranslatorInterface; use Twig_Environment; /** * @package OpenConext\EngineBlockFunctionalTestingBundle\Controllers * @SuppressWarnings("PMD") */ -class FeedbackController extends Controller +class FeedbackController extends AbstractController { /** * @var TranslatorInterface diff --git a/src/OpenConext/EngineBlockFunctionalTestingBundle/Controllers/IdentityProviderController.php b/src/OpenConext/EngineBlockFunctionalTestingBundle/Controllers/IdentityProviderController.php index 1a802fbe82..46f725754e 100644 --- a/src/OpenConext/EngineBlockFunctionalTestingBundle/Controllers/IdentityProviderController.php +++ b/src/OpenConext/EngineBlockFunctionalTestingBundle/Controllers/IdentityProviderController.php @@ -25,7 +25,7 @@ use SAML2\HTTPPost; use SAML2\HTTPRedirect; use SAML2\Utils; -use Symfony\Bundle\FrameworkBundle\Controller\Controller; +use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\RedirectResponse; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; @@ -35,7 +35,7 @@ /** * @SuppressWarnings(PHPMD.CouplingBetweenObjects) just does a lot of manual lifting :( */ -class IdentityProviderController extends Controller +class IdentityProviderController extends AbstractController { /** * @var EntityRegistry diff --git a/src/OpenConext/EngineBlockFunctionalTestingBundle/Controllers/ServiceProviderController.php b/src/OpenConext/EngineBlockFunctionalTestingBundle/Controllers/ServiceProviderController.php index 5fd401aef9..a9ed947fc8 100644 --- a/src/OpenConext/EngineBlockFunctionalTestingBundle/Controllers/ServiceProviderController.php +++ b/src/OpenConext/EngineBlockFunctionalTestingBundle/Controllers/ServiceProviderController.php @@ -28,7 +28,7 @@ use SAML2\HTTPRedirect; use SAML2\Response as SAMLResponse; use SAML2\Utils; -use Symfony\Bundle\FrameworkBundle\Controller\Controller; +use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\RedirectResponse; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; @@ -38,7 +38,7 @@ * @package OpenConext\EngineBlockFunctionalTestingBundle\Controllers * @SuppressWarnings("PMD") */ -class ServiceProviderController extends Controller +class ServiceProviderController extends AbstractController { /** * @var EntityRegistry diff --git a/src/OpenConext/EngineBlockFunctionalTestingBundle/Controllers/StepupMockController.php b/src/OpenConext/EngineBlockFunctionalTestingBundle/Controllers/StepupMockController.php index 87b8a55dd4..cf44d9bf39 100644 --- a/src/OpenConext/EngineBlockFunctionalTestingBundle/Controllers/StepupMockController.php +++ b/src/OpenConext/EngineBlockFunctionalTestingBundle/Controllers/StepupMockController.php @@ -22,13 +22,13 @@ use SAML2\Constants; use SAML2\HTTPRedirect; use SAML2\Response as SamlResponse; -use Symfony\Bundle\FrameworkBundle\Controller\Controller; +use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\HttpKernel\Exception\BadRequestHttpException; use Twig_Environment; -class StepupMockController extends Controller +class StepupMockController extends AbstractController { /** * @var MockStepupGateway diff --git a/src/OpenConext/EngineBlockFunctionalTestingBundle/Controllers/WayfController.php b/src/OpenConext/EngineBlockFunctionalTestingBundle/Controllers/WayfController.php index 96f78787af..87abcc61e9 100644 --- a/src/OpenConext/EngineBlockFunctionalTestingBundle/Controllers/WayfController.php +++ b/src/OpenConext/EngineBlockFunctionalTestingBundle/Controllers/WayfController.php @@ -19,7 +19,7 @@ namespace OpenConext\EngineBlockFunctionalTestingBundle\Controllers; use OpenConext\EngineBlockFunctionalTestingBundle\Helper\TestEntitySeeder; -use Symfony\Bundle\FrameworkBundle\Controller\Controller; +use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Security\Core\Exception\AccessDeniedException; @@ -29,7 +29,7 @@ * @package OpenConext\EngineBlockFunctionalTestingBundle\Controllers * @SuppressWarnings("PMD") */ -class WayfController extends Controller +class WayfController extends AbstractController { private $twig; diff --git a/tests/behat-ci.yml b/tests/behat-ci.yml index 41457d6997..9367d1f86b 100644 --- a/tests/behat-ci.yml +++ b/tests/behat-ci.yml @@ -68,12 +68,7 @@ default: extensions: Behat\MinkExtension: base_url: https://engine.vm.openconext.org/ - goutte: ~ sessions: - default: - goutte: - guzzle_parameters: - verify: false chrome: selenium2: browser: chrome diff --git a/tests/behat.yml b/tests/behat.yml index 0791a01f37..1aaea3c92b 100644 --- a/tests/behat.yml +++ b/tests/behat.yml @@ -68,12 +68,7 @@ default: extensions: Behat\MinkExtension: base_url: ~ - goutte: ~ sessions: - default: - goutte: - guzzle_parameters: - verify: false chrome: selenium2: browser: chrome diff --git a/tests/bootstrap.php b/tests/bootstrap.php index 2ed28ce79e..4d4365b5ca 100644 --- a/tests/bootstrap.php +++ b/tests/bootstrap.php @@ -22,5 +22,4 @@ require_once realpath(__DIR__) . '/../app/AppKernel.php'; $kernel = new AppKernel('test', true); -$kernel->loadClassCache(); $kernel->boot(); diff --git a/tests/unit/OpenConext/EngineBlock/Metadata/Factory/Decorator/EngineblockIdentityProviderInformationTest.php b/tests/unit/OpenConext/EngineBlock/Metadata/Factory/Decorator/EngineblockIdentityProviderInformationTest.php index f00a8c26ee..8984355cf0 100644 --- a/tests/unit/OpenConext/EngineBlock/Metadata/Factory/Decorator/EngineblockIdentityProviderInformationTest.php +++ b/tests/unit/OpenConext/EngineBlock/Metadata/Factory/Decorator/EngineblockIdentityProviderInformationTest.php @@ -22,7 +22,7 @@ use OpenConext\EngineBlock\Metadata\Factory\ValueObject\EngineBlockConfiguration; use OpenConext\EngineBlock\Metadata\Logo; use OpenConext\EngineBlock\Metadata\Organization; -use Symfony\Component\Translation\TranslatorInterface; +use Symfony\Contracts\Translation\TranslatorInterface; class EngineblockIdentityProviderInformationTest extends AbstractEntityTest { diff --git a/tests/unit/OpenConext/EngineBlock/Metadata/Factory/Decorator/EngineblockServiceProviderInformationTest.php b/tests/unit/OpenConext/EngineBlock/Metadata/Factory/Decorator/EngineblockServiceProviderInformationTest.php index b717e9cf76..0201eb6b5a 100644 --- a/tests/unit/OpenConext/EngineBlock/Metadata/Factory/Decorator/EngineblockServiceProviderInformationTest.php +++ b/tests/unit/OpenConext/EngineBlock/Metadata/Factory/Decorator/EngineblockServiceProviderInformationTest.php @@ -22,7 +22,7 @@ use OpenConext\EngineBlock\Metadata\Factory\ValueObject\EngineBlockConfiguration; use OpenConext\EngineBlock\Metadata\Logo; use OpenConext\EngineBlock\Metadata\Organization; -use Symfony\Component\Translation\TranslatorInterface; +use Symfony\Contracts\Translation\TranslatorInterface; class EngineblockServiceProviderInformationTest extends AbstractEntityTest { diff --git a/tests/unit/OpenConext/EngineBlock/Metadata/Factory/Decorator/ProxiedIdentityProviderTest.php b/tests/unit/OpenConext/EngineBlock/Metadata/Factory/Decorator/ProxiedIdentityProviderTest.php index 0b95e55791..09aa9341c1 100644 --- a/tests/unit/OpenConext/EngineBlock/Metadata/Factory/Decorator/ProxiedIdentityProviderTest.php +++ b/tests/unit/OpenConext/EngineBlock/Metadata/Factory/Decorator/ProxiedIdentityProviderTest.php @@ -26,7 +26,7 @@ use OpenConext\EngineBlock\Metadata\X509\X509KeyPair; use OpenConext\EngineBlockBundle\Url\UrlProvider; use SAML2\Constants; -use Symfony\Component\Translation\TranslatorInterface; +use Symfony\Contracts\Translation\TranslatorInterface; class ProxiedIdentityProviderTest extends AbstractEntityTest { diff --git a/tests/unit/OpenConext/EngineBlock/Metadata/Factory/Factory/IdentityProviderFactoryTest.php b/tests/unit/OpenConext/EngineBlock/Metadata/Factory/Factory/IdentityProviderFactoryTest.php index 809ec179ad..3631e7f12e 100644 --- a/tests/unit/OpenConext/EngineBlock/Metadata/Factory/Factory/IdentityProviderFactoryTest.php +++ b/tests/unit/OpenConext/EngineBlock/Metadata/Factory/Factory/IdentityProviderFactoryTest.php @@ -30,7 +30,7 @@ use OpenConext\EngineBlock\Metadata\X509\KeyPairFactory; use OpenConext\EngineBlockBundle\Url\UrlProvider; use SAML2\Constants; -use Symfony\Component\Translation\TranslatorInterface; +use Symfony\Contracts\Translation\TranslatorInterface; class IdentityProviderFactoryTest extends AbstractEntityTest { diff --git a/tests/unit/OpenConext/EngineBlock/Metadata/Factory/Factory/ServiceProviderFactoryTest.php b/tests/unit/OpenConext/EngineBlock/Metadata/Factory/Factory/ServiceProviderFactoryTest.php index b320f9dfc7..27ffd7631b 100644 --- a/tests/unit/OpenConext/EngineBlock/Metadata/Factory/Factory/ServiceProviderFactoryTest.php +++ b/tests/unit/OpenConext/EngineBlock/Metadata/Factory/Factory/ServiceProviderFactoryTest.php @@ -39,7 +39,7 @@ use PHPUnit\Framework\MockObject\MockObject; use RobRichards\XMLSecLibs\XMLSecurityKey; use SAML2\Constants; -use Symfony\Component\Translation\TranslatorInterface; +use Symfony\Contracts\Translation\TranslatorInterface; class ServiceProviderFactoryTest extends AbstractEntityTest { diff --git a/tests/unit/OpenConext/EngineBlock/Metadata/Factory/ValueObject/EngineBlockConfigurationTest.php b/tests/unit/OpenConext/EngineBlock/Metadata/Factory/ValueObject/EngineBlockConfigurationTest.php index a2bc6b1622..7613b4f299 100644 --- a/tests/unit/OpenConext/EngineBlock/Metadata/Factory/ValueObject/EngineBlockConfigurationTest.php +++ b/tests/unit/OpenConext/EngineBlock/Metadata/Factory/ValueObject/EngineBlockConfigurationTest.php @@ -24,7 +24,7 @@ use OpenConext\EngineBlock\Metadata\Logo; use OpenConext\EngineBlock\Metadata\Organization; use PHPUnit\Framework\TestCase; -use Symfony\Component\Translation\TranslatorInterface; +use Symfony\Contracts\Translation\TranslatorInterface; class EngineBlockConfigurationTest extends TestCase { diff --git a/tests/unit/OpenConext/EngineBlock/Service/SsoNotificationServiceTest.php b/tests/unit/OpenConext/EngineBlock/Service/SsoNotificationServiceTest.php index edc88dd0af..1a40c7237b 100644 --- a/tests/unit/OpenConext/EngineBlock/Service/SsoNotificationServiceTest.php +++ b/tests/unit/OpenConext/EngineBlock/Service/SsoNotificationServiceTest.php @@ -24,8 +24,8 @@ use OpenConext\EngineBlock\Metadata\MetadataRepository\InMemoryMetadataRepository; use Phake; use PHPUnit\Framework\TestCase; +use Psr\Log\LoggerInterface; use Symfony\Component\HttpFoundation\Request; -use Symfony\Component\HttpKernel\Tests\Logger; class SsoNotificationServiceTest extends TestCase { @@ -44,7 +44,7 @@ class SsoNotificationServiceTest extends TestCase private $request; /** - * @var Logger + * @var LoggerInterface */ private $loggerMock; @@ -65,7 +65,7 @@ class SsoNotificationServiceTest extends TestCase public function setUp(): void { - $this->loggerMock = Phake::mock(Logger::class); + $this->loggerMock = Phake::mock(LoggerInterface::class); $this->proxyServerMock = Phake::mock(EngineBlock_Corto_ProxyServer::class); $this->requestMock = Phake::mock(EngineBlock_Saml2_AuthnRequestAnnotationDecorator::class); $this->ssoNotificationService = new SsoNotificationService( diff --git a/tests/unit/OpenConext/EngineBlock/Service/SsoSessionServiceTest.php b/tests/unit/OpenConext/EngineBlock/Service/SsoSessionServiceTest.php index 9b61942ce2..35a1c9fcc4 100644 --- a/tests/unit/OpenConext/EngineBlock/Service/SsoSessionServiceTest.php +++ b/tests/unit/OpenConext/EngineBlock/Service/SsoSessionServiceTest.php @@ -20,8 +20,8 @@ use Phake; use PHPUnit\Framework\TestCase; +use Psr\Log\LoggerInterface; use Symfony\Component\HttpFoundation\ParameterBag; -use Symfony\Component\HttpKernel\Tests\Logger; class SsoSessionServiceTest extends TestCase { @@ -43,7 +43,7 @@ class SsoSessionServiceTest extends TestCase public function setUp(): void { $this->cookieServiceMock = Phake::mock(CookieService::class); - $loggerMock = Phake::mock(Logger::class); + $loggerMock = Phake::mock(LoggerInterface::class); $this->ssoQueryService = new SsoSessionService( self::SSO_SESSION_COOKIE_MAX_AGE, self::SSO_SESSION_COOKIE_DOMAIN, diff --git a/tests/unit/OpenConext/EngineBlock/Xml/MetadataRendererTest.php b/tests/unit/OpenConext/EngineBlock/Xml/MetadataRendererTest.php index 77a82bcd84..83c2d71f35 100644 --- a/tests/unit/OpenConext/EngineBlock/Xml/MetadataRendererTest.php +++ b/tests/unit/OpenConext/EngineBlock/Xml/MetadataRendererTest.php @@ -47,7 +47,7 @@ use SAML2\XML\md\EntitiesDescriptor; use SAML2\XML\md\EntityDescriptor; use Symfony\Bridge\Twig\Extension\TranslationExtension; -use Symfony\Component\Translation\TranslatorInterface; +use Symfony\Contracts\Translation\TranslatorInterface; use Twig\Environment; class MetadataRendererTest extends TestCase diff --git a/tests/unit/OpenConext/EngineBlockBundle/Configuration/ErrorFeedbackConfigurationTest.php b/tests/unit/OpenConext/EngineBlockBundle/Configuration/ErrorFeedbackConfigurationTest.php index 606756af1a..97859bcd29 100644 --- a/tests/unit/OpenConext/EngineBlockBundle/Configuration/ErrorFeedbackConfigurationTest.php +++ b/tests/unit/OpenConext/EngineBlockBundle/Configuration/ErrorFeedbackConfigurationTest.php @@ -21,7 +21,7 @@ use Mockery\Adapter\Phpunit\MockeryPHPUnitIntegration; use PHPUnit\Framework\TestCase; use Mockery as m; -use Symfony\Component\Translation\TranslatorInterface; +use Symfony\Contracts\Translation\TranslatorInterface; class ErrorFeedbackConfigurationTest extends TestCase { diff --git a/tests/unit/OpenConext/EngineBlockBundle/Twig/Extensions/Extension/MetadataTest.php b/tests/unit/OpenConext/EngineBlockBundle/Twig/Extensions/Extension/MetadataTest.php index 9561d9013d..91504b759b 100644 --- a/tests/unit/OpenConext/EngineBlockBundle/Twig/Extensions/Extension/MetadataTest.php +++ b/tests/unit/OpenConext/EngineBlockBundle/Twig/Extensions/Extension/MetadataTest.php @@ -22,7 +22,7 @@ use Mockery as m; use Mockery\Adapter\Phpunit\MockeryPHPUnitIntegration; use PHPUnit\Framework\TestCase; -use Symfony\Component\Translation\TranslatorInterface; +use Symfony\Contracts\Translation\TranslatorInterface; class MetadataTest extends TestCase { From c1d8ff29a686034240e64cc8f21ae3894467b949 Mon Sep 17 00:00:00 2001 From: Vincent Jong Date: Thu, 2 May 2024 13:52:26 +0200 Subject: [PATCH 06/35] Fix generating functional_testing.yml --- app/config/functional_testing.yml.dist | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/config/functional_testing.yml.dist b/app/config/functional_testing.yml.dist index c365ff0294..77b0102507 100644 --- a/app/config/functional_testing.yml.dist +++ b/app/config/functional_testing.yml.dist @@ -2,7 +2,7 @@ parameters: router.request_context.host: "engine.%domain%" router.request_context.scheme: "https" - # Where must we store the writable state of the Mock IdP and Mock SP? + ## Where must we store the writable state of the Mock IdP and Mock SP? idp_fixture_file: '/tmp/eb-fixtures/db/idp.states.php.serialized' sp_fixture_file: '/tmp/eb-fixtures/db/sp.states.php.serialized' stepup.sfo.override_engine_entityid: 'https://engine.vm.openconext.com/new/stepup/metadata' From 04de4cfa6236666982b62f0b098dabddfcbfdf05 Mon Sep 17 00:00:00 2001 From: Vincent Jong Date: Thu, 2 May 2024 14:22:22 +0200 Subject: [PATCH 07/35] Fix generating functional_testing.yml --- app/config/functional_testing.yml.dist | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/config/functional_testing.yml.dist b/app/config/functional_testing.yml.dist index 77b0102507..593e8901a1 100644 --- a/app/config/functional_testing.yml.dist +++ b/app/config/functional_testing.yml.dist @@ -2,7 +2,7 @@ parameters: router.request_context.host: "engine.%domain%" router.request_context.scheme: "https" - ## Where must we store the writable state of the Mock IdP and Mock SP? + ## Where must we store the writable state of the Mock IdP and Mock SP idp_fixture_file: '/tmp/eb-fixtures/db/idp.states.php.serialized' sp_fixture_file: '/tmp/eb-fixtures/db/sp.states.php.serialized' stepup.sfo.override_engine_entityid: 'https://engine.vm.openconext.com/new/stepup/metadata' From bc46b8e033a9f730204706f3324fb5e5d1f36840 Mon Sep 17 00:00:00 2001 From: Vincent Jong Date: Fri, 3 May 2024 11:18:57 +0200 Subject: [PATCH 08/35] Update to PHP 7.2 --- composer.json | 10 +- composer.lock | 528 +++++++++++------- .../Security/Voter/MetadataPushVoter.php | 7 +- 3 files changed, 329 insertions(+), 216 deletions(-) diff --git a/composer.json b/composer.json index 7a9335c013..6594db7388 100644 --- a/composer.json +++ b/composer.json @@ -11,7 +11,7 @@ "source": "https://github.com/OpenConext/OpenConext-engineblock" }, "require": { - "php": "7.4", + "php": "<=7.4", "ext-dom": "*", "ext-json": "*", "ext-mbstring": "*", @@ -19,7 +19,7 @@ "beberlei/assert": "^2.6", "composer/package-versions-deprecated": "^1.11", "doctrine/annotations": "1.14.3", - "doctrine/dbal": "3.6.0", + "doctrine/dbal": "2.13.9", "doctrine/doctrine-migrations-bundle": "^3.2.1", "doctrine/orm": "2.14.1", "guzzlehttp/guzzle": "^6.3", @@ -48,8 +48,8 @@ "behat/mink": "^1.11", "behat/mink-browserkit-driver": "^2.2", "behat/mink-selenium2-driver": "^1.7", - "friends-of-behat/mink-extension": "^2.7", - "friends-of-behat/symfony-extension": "^2.4", + "friends-of-behat/mink-extension": "^2.5", + "friends-of-behat/symfony-extension": "^2.1", "league/flysystem": "^2.5", "liip/functional-test-bundle": "^4.7.0", "malukenho/docheader": "^0.1.8", @@ -100,7 +100,7 @@ "config": { "optimize-autoloader": true, "platform": { - "php": "7.4" + "php": "7.2" }, "sort-packages": true, "allow-plugins": { diff --git a/composer.lock b/composer.lock index 15c8f37afc..f57dc6b59b 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "6cafdab9b6ba2de0061a84e117f9d94e", + "content-hash": "5d83dcc9d4878582b8274bb389f6346a", "packages": [ { "name": "beberlei/assert", @@ -470,39 +470,35 @@ }, { "name": "doctrine/dbal", - "version": "3.6.0", + "version": "2.13.9", "source": { "type": "git", "url": "https://github.com/doctrine/dbal.git", - "reference": "85b98cb23c8af471a67abfe14485da696bcabc2e" + "reference": "c480849ca3ad6706a39c970cdfe6888fa8a058b8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/dbal/zipball/85b98cb23c8af471a67abfe14485da696bcabc2e", - "reference": "85b98cb23c8af471a67abfe14485da696bcabc2e", + "url": "https://api.github.com/repos/doctrine/dbal/zipball/c480849ca3ad6706a39c970cdfe6888fa8a058b8", + "reference": "c480849ca3ad6706a39c970cdfe6888fa8a058b8", "shasum": "" }, "require": { - "composer-runtime-api": "^2", - "doctrine/cache": "^1.11|^2.0", + "doctrine/cache": "^1.0|^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" + "doctrine/event-manager": "^1.0", + "ext-pdo": "*", + "php": "^7.1 || ^8" }, "require-dev": { - "doctrine/coding-standard": "11.1.0", - "fig/log-test": "^1", - "jetbrains/phpstorm-stubs": "2022.3", - "phpstan/phpstan": "1.9.14", - "phpstan/phpstan-strict-rules": "^1.4", - "phpunit/phpunit": "9.6.3", - "psalm/plugin-phpunit": "0.18.4", - "squizlabs/php_codesniffer": "3.7.1", - "symfony/cache": "^5.4|^6.0", - "symfony/console": "^4.4|^5.4|^6.0", - "vimeo/psalm": "4.30.0" + "doctrine/coding-standard": "9.0.0", + "jetbrains/phpstorm-stubs": "2021.1", + "phpstan/phpstan": "1.4.6", + "phpunit/phpunit": "^7.5.20|^8.5|9.5.16", + "psalm/plugin-phpunit": "0.16.1", + "squizlabs/php_codesniffer": "3.6.2", + "symfony/cache": "^4.4", + "symfony/console": "^2.0.5|^3.0|^4.0|^5.0", + "vimeo/psalm": "4.22.0" }, "suggest": { "symfony/console": "For helpful console commands such as SQL execution and import of files." @@ -513,7 +509,7 @@ "type": "library", "autoload": { "psr-4": { - "Doctrine\\DBAL\\": "src" + "Doctrine\\DBAL\\": "lib/Doctrine/DBAL" } }, "notification-url": "https://packagist.org/downloads/", @@ -556,13 +552,14 @@ "queryobject", "sasql", "sql", + "sqlanywhere", "sqlite", "sqlserver", "sqlsrv" ], "support": { "issues": "https://github.com/doctrine/dbal/issues", - "source": "https://github.com/doctrine/dbal/tree/3.6.0" + "source": "https://github.com/doctrine/dbal/tree/2.13.9" }, "funding": [ { @@ -578,7 +575,7 @@ "type": "tidelift" } ], - "time": "2023-02-07T22:52:03+00:00" + "time": "2022-05-02T20:28:55+00:00" }, { "name": "doctrine/deprecations", @@ -629,60 +626,56 @@ }, { "name": "doctrine/doctrine-bundle", - "version": "2.10.3", + "version": "2.7.2", "source": { "type": "git", "url": "https://github.com/doctrine/DoctrineBundle.git", - "reference": "1d2a578c199e272050a3878546c71e72ff02448e" + "reference": "22d53b2c5ad03929628fb4a928b01135585b7179" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/DoctrineBundle/zipball/1d2a578c199e272050a3878546c71e72ff02448e", - "reference": "1d2a578c199e272050a3878546c71e72ff02448e", + "url": "https://api.github.com/repos/doctrine/DoctrineBundle/zipball/22d53b2c5ad03929628fb4a928b01135585b7179", + "reference": "22d53b2c5ad03929628fb4a928b01135585b7179", "shasum": "" }, "require": { + "doctrine/annotations": "^1", "doctrine/cache": "^1.11 || ^2.0", - "doctrine/dbal": "^3.6.0", + "doctrine/dbal": "^2.13.1 || ^3.3.2", "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", + "php": "^7.1 || ^8.0", + "symfony/cache": "^4.4 || ^5.4 || ^6.0", + "symfony/config": "^4.4.3 || ^5.4 || ^6.0", + "symfony/console": "^4.4 || ^5.4 || ^6.0", + "symfony/dependency-injection": "^4.4.18 || ^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/doctrine-bridge": "^4.4.22 || ^5.4 || ^6.0", + "symfony/framework-bundle": "^4.4 || ^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" + "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.14 || ^3.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", + "phpunit/phpunit": "^7.5 || ^8.0 || ^9.3 || ^10.0", + "psalm/plugin-phpunit": "^0.16.1", + "psalm/plugin-symfony": "^3", "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/string": "^5.4 || ^6.0", - "symfony/twig-bridge": "^5.4 || ^6.0", - "symfony/validator": "^5.4 || ^6.0", - "symfony/var-exporter": "^5.4 || ^6.2 || ^7.0", - "symfony/web-profiler-bundle": "^5.4 || ^6.0", - "symfony/yaml": "^5.4 || ^6.0", + "symfony/property-info": "^4.4 || ^5.4 || ^6.0", + "symfony/proxy-manager-bridge": "^4.4 || ^5.4 || ^6.0", + "symfony/security-bundle": "^4.4 || ^5.4 || ^6.0", + "symfony/twig-bridge": "^4.4 || ^5.4 || ^6.0", + "symfony/validator": "^4.4 || ^5.4 || ^6.0", + "symfony/web-profiler-bundle": "^4.4 || ^5.4 || ^6.0", + "symfony/yaml": "^4.4 || ^5.4 || ^6.0", "twig/twig": "^1.34 || ^2.12 || ^3.0", - "vimeo/psalm": "^4.30" + "vimeo/psalm": "^4.7" }, "suggest": { "doctrine/orm": "The Doctrine ORM integration is optional in the bundle.", @@ -727,7 +720,7 @@ ], "support": { "issues": "https://github.com/doctrine/DoctrineBundle/issues", - "source": "https://github.com/doctrine/DoctrineBundle/tree/2.10.3" + "source": "https://github.com/doctrine/DoctrineBundle/tree/2.7.2" }, "funding": [ { @@ -743,7 +736,7 @@ "type": "tidelift" } ], - "time": "2023-11-11T09:46:29+00:00" + "time": "2022-12-07T12:07:11+00:00" }, { "name": "doctrine/doctrine-migrations-bundle", @@ -1169,47 +1162,45 @@ }, { "name": "doctrine/migrations", - "version": "3.5.5", + "version": "3.4.3", "source": { "type": "git", "url": "https://github.com/doctrine/migrations.git", - "reference": "4b1e2b6ba71d21d0c5be22ed03b6fc954d20b204" + "reference": "362f07ff732a2b4498be919561536800cec29500" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/migrations/zipball/4b1e2b6ba71d21d0c5be22ed03b6fc954d20b204", - "reference": "4b1e2b6ba71d21d0c5be22ed03b6fc954d20b204", + "url": "https://api.github.com/repos/doctrine/migrations/zipball/362f07ff732a2b4498be919561536800cec29500", + "reference": "362f07ff732a2b4498be919561536800cec29500", "shasum": "" }, "require": { "composer-runtime-api": "^2", - "doctrine/dbal": "^3.5.1", + "doctrine/dbal": "^2.11 || ^3.0", "doctrine/deprecations": "^0.5.3 || ^1", - "doctrine/event-manager": "^1.2 || ^2.0", + "doctrine/event-manager": "^1.0", "friendsofphp/proxy-manager-lts": "^1.0", - "php": "^7.4 || ^8.0", + "php": "^7.2 || ^8.0", "psr/log": "^1.1.3 || ^2 || ^3", - "symfony/console": "^4.4.16 || ^5.4 || ^6.0", - "symfony/stopwatch": "^4.4 || ^5.4 || ^6.0" - }, - "conflict": { - "doctrine/orm": "<2.12" + "symfony/console": "^3.4 || ^4.4.16 || ^5.0 || ^6.0", + "symfony/stopwatch": "^3.4 || ^4.0 || ^5.0 || ^6.0" }, "require-dev": { "doctrine/coding-standard": "^9", - "doctrine/orm": "^2.13", - "doctrine/persistence": "^2 || ^3", + "doctrine/orm": "^2.6", + "doctrine/persistence": "^1.3 || ^2.0", "doctrine/sql-formatter": "^1.0", + "ergebnis/composer-normalize": "^2.9", "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", - "symfony/cache": "^4.4 || ^5.4 || ^6.0", - "symfony/process": "^4.4 || ^5.4 || ^6.0", - "symfony/yaml": "^4.4 || ^5.4 || ^6.0" + "phpunit/phpunit": "^8.5 || ^9.4", + "symfony/cache": "^3.4.26 || ^4.2.12 || ^5.0 || ^6.0", + "symfony/process": "^3.4 || ^4.0 || ^5.0 || ^6.0", + "symfony/yaml": "^3.4 || ^4.0 || ^5.0 || ^6.0" }, "suggest": { "doctrine/sql-formatter": "Allows to generate formatted SQL with the diff command.", @@ -1219,6 +1210,12 @@ "bin/doctrine-migrations" ], "type": "library", + "extra": { + "composer-normalize": { + "indent-size": 4, + "indent-style": "space" + } + }, "autoload": { "psr-4": { "Doctrine\\Migrations\\": "lib/Doctrine/Migrations" @@ -1251,7 +1248,7 @@ ], "support": { "issues": "https://github.com/doctrine/migrations/issues", - "source": "https://github.com/doctrine/migrations/tree/3.5.5" + "source": "https://github.com/doctrine/migrations/tree/3.4.3" }, "funding": [ { @@ -1267,7 +1264,7 @@ "type": "tidelift" } ], - "time": "2023-01-18T12:44:30+00:00" + "time": "2023-09-07T12:23:11+00:00" }, { "name": "doctrine/orm", @@ -1970,33 +1967,31 @@ }, { "name": "incenteev/composer-parameter-handler", - "version": "v2.2.0", + "version": "v2.1.5", "source": { "type": "git", "url": "https://github.com/Incenteev/ParameterHandler.git", - "reference": "90bffce926e96b365579a2ef024aab457f4b80c5" + "reference": "e1dd118763503f7fd766f907013e1d76d525fcc4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Incenteev/ParameterHandler/zipball/90bffce926e96b365579a2ef024aab457f4b80c5", - "reference": "90bffce926e96b365579a2ef024aab457f4b80c5", + "url": "https://api.github.com/repos/Incenteev/ParameterHandler/zipball/e1dd118763503f7fd766f907013e1d76d525fcc4", + "reference": "e1dd118763503f7fd766f907013e1d76d525fcc4", "shasum": "" }, "require": { - "php": ">=7.4", - "symfony/yaml": "^5.4 || ^6.0 || ^7.0" + "php": ">=5.3.3", + "symfony/yaml": "^2.3 || ^3.0 || ^4.0 || ^5.0 || ^6.0" }, "require-dev": { - "composer/composer": "^2.0@dev", - "phpspec/prophecy-phpunit": "^2.1", - "phpunit/phpunit": "^9.6", - "symfony/filesystem": "^5.4 || ^6.0 || ^7.0", - "symfony/phpunit-bridge": "^6.4.1 || ^7.0.1" + "composer/composer": "^1.0@dev", + "symfony/filesystem": "^2.3 || ^3 || ^4 || ^5 || ^6.0", + "symfony/phpunit-bridge": "^3.4.47 || ^4.4.41 || ^5.4.8 || ^6.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.x-dev" + "dev-master": "2.1.x-dev" } }, "autoload": { @@ -2021,45 +2016,55 @@ ], "support": { "issues": "https://github.com/Incenteev/ParameterHandler/issues", - "source": "https://github.com/Incenteev/ParameterHandler/tree/v2.2.0" + "source": "https://github.com/Incenteev/ParameterHandler/tree/v2.1.5" }, - "time": "2023-12-09T10:31:14+00:00" + "time": "2022-05-25T10:57:22+00:00" }, { "name": "laminas/laminas-code", - "version": "4.7.1", + "version": "3.4.1", "source": { "type": "git", "url": "https://github.com/laminas/laminas-code.git", - "reference": "91aabc066d5620428120800c0eafc0411e441a62" + "reference": "1cb8f203389ab1482bf89c0e70a04849bacd7766" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laminas/laminas-code/zipball/91aabc066d5620428120800c0eafc0411e441a62", - "reference": "91aabc066d5620428120800c0eafc0411e441a62", + "url": "https://api.github.com/repos/laminas/laminas-code/zipball/1cb8f203389ab1482bf89c0e70a04849bacd7766", + "reference": "1cb8f203389ab1482bf89c0e70a04849bacd7766", "shasum": "" }, "require": { - "php": ">=7.4, <8.2" + "laminas/laminas-eventmanager": "^2.6 || ^3.0", + "laminas/laminas-zendframework-bridge": "^1.0", + "php": "^7.1" + }, + "conflict": { + "phpspec/prophecy": "<1.9.0" + }, + "replace": { + "zendframework/zend-code": "self.version" }, "require-dev": { - "doctrine/annotations": "^1.13.2", + "doctrine/annotations": "^1.7", "ext-phar": "*", - "laminas/laminas-coding-standard": "^2.3.0", - "laminas/laminas-stdlib": "^3.6.1", - "phpunit/phpunit": "^9.5.10", - "psalm/plugin-phpunit": "^0.17.0", - "vimeo/psalm": "^4.13.1" + "laminas/laminas-coding-standard": "^1.0", + "laminas/laminas-stdlib": "^2.7 || ^3.0", + "phpunit/phpunit": "^7.5.16 || ^8.4" }, "suggest": { "doctrine/annotations": "Doctrine\\Common\\Annotations >=1.0 for annotation features", "laminas/laminas-stdlib": "Laminas\\Stdlib component" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.4.x-dev", + "dev-develop": "3.5.x-dev", + "dev-dev-4.0": "4.0.x-dev" + } + }, "autoload": { - "files": [ - "polyfill/ReflectionEnumPolyfill.php" - ], "psr-4": { "Laminas\\Code\\": "src/" } @@ -2072,8 +2077,7 @@ "homepage": "https://laminas.dev", "keywords": [ "code", - "laminas", - "laminasframework" + "laminas" ], "support": { "chat": "https://laminas.dev/chat", @@ -2083,13 +2087,134 @@ "rss": "https://github.com/laminas/laminas-code/releases.atom", "source": "https://github.com/laminas/laminas-code" }, + "time": "2019-12-31T16:28:24+00:00" + }, + { + "name": "laminas/laminas-eventmanager", + "version": "3.2.1", + "source": { + "type": "git", + "url": "https://github.com/laminas/laminas-eventmanager.git", + "reference": "ce4dc0bdf3b14b7f9815775af9dfee80a63b4748" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laminas/laminas-eventmanager/zipball/ce4dc0bdf3b14b7f9815775af9dfee80a63b4748", + "reference": "ce4dc0bdf3b14b7f9815775af9dfee80a63b4748", + "shasum": "" + }, + "require": { + "laminas/laminas-zendframework-bridge": "^1.0", + "php": "^5.6 || ^7.0" + }, + "replace": { + "zendframework/zend-eventmanager": "self.version" + }, + "require-dev": { + "athletic/athletic": "^0.1", + "container-interop/container-interop": "^1.1.0", + "laminas/laminas-coding-standard": "~1.0.0", + "laminas/laminas-stdlib": "^2.7.3 || ^3.0", + "phpunit/phpunit": "^5.7.27 || ^6.5.8 || ^7.1.2" + }, + "suggest": { + "container-interop/container-interop": "^1.1.0, to use the lazy listeners feature", + "laminas/laminas-stdlib": "^2.7.3 || ^3.0, to use the FilterChain feature" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.2-dev", + "dev-develop": "3.3-dev" + } + }, + "autoload": { + "psr-4": { + "Laminas\\EventManager\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "description": "Trigger and listen to events within a PHP application", + "homepage": "https://laminas.dev", + "keywords": [ + "event", + "eventmanager", + "events", + "laminas" + ], + "support": { + "chat": "https://laminas.dev/chat", + "docs": "https://docs.laminas.dev/laminas-eventmanager/", + "forum": "https://discourse.laminas.dev", + "issues": "https://github.com/laminas/laminas-eventmanager/issues", + "rss": "https://github.com/laminas/laminas-eventmanager/releases.atom", + "source": "https://github.com/laminas/laminas-eventmanager" + }, + "time": "2019-12-31T16:44:52+00:00" + }, + { + "name": "laminas/laminas-zendframework-bridge", + "version": "1.1.1", + "source": { + "type": "git", + "url": "https://github.com/laminas/laminas-zendframework-bridge.git", + "reference": "6ede70583e101030bcace4dcddd648f760ddf642" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laminas/laminas-zendframework-bridge/zipball/6ede70583e101030bcace4dcddd648f760ddf642", + "reference": "6ede70583e101030bcace4dcddd648f760ddf642", + "shasum": "" + }, + "require": { + "php": "^5.6 || ^7.0 || ^8.0" + }, + "require-dev": { + "phpunit/phpunit": "^5.7 || ^6.5 || ^7.5 || ^8.1 || ^9.3", + "squizlabs/php_codesniffer": "^3.5" + }, + "type": "library", + "extra": { + "laminas": { + "module": "Laminas\\ZendFrameworkBridge" + } + }, + "autoload": { + "files": [ + "src/autoload.php" + ], + "psr-4": { + "Laminas\\ZendFrameworkBridge\\": "src//" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "description": "Alias legacy ZF class names to Laminas Project equivalents.", + "keywords": [ + "ZendFramework", + "autoloading", + "laminas", + "zf" + ], + "support": { + "forum": "https://discourse.laminas.dev/", + "issues": "https://github.com/laminas/laminas-zendframework-bridge/issues", + "rss": "https://github.com/laminas/laminas-zendframework-bridge/releases.atom", + "source": "https://github.com/laminas/laminas-zendframework-bridge" + }, "funding": [ { "url": "https://funding.communitybridge.org/projects/laminas-project", "type": "community_bridge" } ], - "time": "2022-11-21T01:32:31+00:00" + "abandoned": true, + "time": "2020-09-14T14:23:00+00:00" }, { "name": "monolog/monolog", @@ -2430,20 +2555,20 @@ }, { "name": "psr/container", - "version": "1.1.2", + "version": "1.1.1", "source": { "type": "git", "url": "https://github.com/php-fig/container.git", - "reference": "513e0666f7216c7459170d56df27dfcefe1689ea" + "reference": "8622567409010282b7aeebe4bb841fe98b58dcaf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/container/zipball/513e0666f7216c7459170d56df27dfcefe1689ea", - "reference": "513e0666f7216c7459170d56df27dfcefe1689ea", + "url": "https://api.github.com/repos/php-fig/container/zipball/8622567409010282b7aeebe4bb841fe98b58dcaf", + "reference": "8622567409010282b7aeebe4bb841fe98b58dcaf", "shasum": "" }, "require": { - "php": ">=7.4.0" + "php": ">=7.2.0" }, "type": "library", "autoload": { @@ -2472,9 +2597,9 @@ ], "support": { "issues": "https://github.com/php-fig/container/issues", - "source": "https://github.com/php-fig/container/tree/1.1.2" + "source": "https://github.com/php-fig/container/tree/1.1.1" }, - "time": "2021-11-05T16:50:12+00:00" + "time": "2021-03-05T17:36:06+00:00" }, { "name": "psr/event-dispatcher", @@ -8024,20 +8149,20 @@ }, { "name": "composer/pcre", - "version": "3.1.3", + "version": "2.1.3", "source": { "type": "git", "url": "https://github.com/composer/pcre.git", - "reference": "5b16e25a5355f1f3afdfc2f954a0a80aec4826a8" + "reference": "540af382c97b83c628227d5f87cf56466d476191" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/pcre/zipball/5b16e25a5355f1f3afdfc2f954a0a80aec4826a8", - "reference": "5b16e25a5355f1f3afdfc2f954a0a80aec4826a8", + "url": "https://api.github.com/repos/composer/pcre/zipball/540af382c97b83c628227d5f87cf56466d476191", + "reference": "540af382c97b83c628227d5f87cf56466d476191", "shasum": "" }, "require": { - "php": "^7.4 || ^8.0" + "php": "^7.2 || ^8.0" }, "require-dev": { "phpstan/phpstan": "^1.3", @@ -8047,7 +8172,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "3.x-dev" + "dev-main": "2.x-dev" } }, "autoload": { @@ -8075,7 +8200,7 @@ ], "support": { "issues": "https://github.com/composer/pcre/issues", - "source": "https://github.com/composer/pcre/tree/3.1.3" + "source": "https://github.com/composer/pcre/tree/2.1.3" }, "funding": [ { @@ -8091,7 +8216,7 @@ "type": "tidelift" } ], - "time": "2024-03-19T10:26:25+00:00" + "time": "2024-03-19T09:03:05+00:00" }, { "name": "composer/xdebug-handler", @@ -8161,30 +8286,30 @@ }, { "name": "friends-of-behat/mink-extension", - "version": "v2.7.5", + "version": "v2.5.0", "source": { "type": "git", "url": "https://github.com/FriendsOfBehat/MinkExtension.git", - "reference": "854336030e11983f580f49faad1b49a1238f9846" + "reference": "83119aa70be1f2c63061c29dced9d41775cd9db2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/FriendsOfBehat/MinkExtension/zipball/854336030e11983f580f49faad1b49a1238f9846", - "reference": "854336030e11983f580f49faad1b49a1238f9846", + "url": "https://api.github.com/repos/FriendsOfBehat/MinkExtension/zipball/83119aa70be1f2c63061c29dced9d41775cd9db2", + "reference": "83119aa70be1f2c63061c29dced9d41775cd9db2", "shasum": "" }, "require": { "behat/behat": "^3.0.5", "behat/mink": "^1.5", - "php": ">=7.4", - "symfony/config": "^4.4 || ^5.0 || ^6.0 || ^7.0" + "php": ">=7.2", + "symfony/config": "^3.4 || ^4.4 || ^5.0" }, "replace": { "behat/mink-extension": "self.version" }, "require-dev": { - "behat/mink-goutte-driver": "^1.1 || ^2.0", - "phpspec/phpspec": "^6.0 || ^7.0 || 7.1.x-dev" + "behat/mink-goutte-driver": "^1.1", + "phpspec/phpspec": "^6.0 || ^7.0" }, "type": "behat-extension", "extra": { @@ -8220,55 +8345,54 @@ "web" ], "support": { - "issues": "https://github.com/FriendsOfBehat/MinkExtension/issues", - "source": "https://github.com/FriendsOfBehat/MinkExtension/tree/v2.7.5" + "source": "https://github.com/FriendsOfBehat/MinkExtension/tree/v2.5.0" }, - "time": "2024-01-11T09:12:02+00:00" + "time": "2021-01-21T09:27:44+00:00" }, { "name": "friends-of-behat/symfony-extension", - "version": "v2.4.2", + "version": "v2.1.0", "source": { "type": "git", "url": "https://github.com/FriendsOfBehat/SymfonyExtension.git", - "reference": "957df89b214f1575b40203e374bcafcd6d200a1d" + "reference": "0f906e1156546095f4287be7cd5ceede2d3e22cc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/FriendsOfBehat/SymfonyExtension/zipball/957df89b214f1575b40203e374bcafcd6d200a1d", - "reference": "957df89b214f1575b40203e374bcafcd6d200a1d", + "url": "https://api.github.com/repos/FriendsOfBehat/SymfonyExtension/zipball/0f906e1156546095f4287be7cd5ceede2d3e22cc", + "reference": "0f906e1156546095f4287be7cd5ceede2d3e22cc", "shasum": "" }, "require": { "behat/behat": "^3.6.1", - "php": "^7.4 || ^8.0", - "symfony/dependency-injection": "^4.4 || ^5.3 || ^6.0", - "symfony/http-kernel": "^4.4 || ^5.3 || ^6.0", - "symfony/proxy-manager-bridge": "^4.4 || ^5.3 || ^6.0" + "php": "^7.1", + "symfony/dependency-injection": "^4.4|^5.0", + "symfony/http-kernel": "^4.4|^5.0", + "symfony/proxy-manager-bridge": "^4.4|^5.0" }, "require-dev": { - "behat/mink": "^1.9", - "behat/mink-browserkit-driver": "^2.0", "behat/mink-selenium2-driver": "^1.3", - "friends-of-behat/mink-extension": "^2.5", - "friends-of-behat/page-object-extension": "^0.3.2", - "friends-of-behat/service-container-extension": "^1.1", - "sylius-labs/coding-standard": ">=4.1.1, <=4.2.1", - "symfony/browser-kit": "^4.4 || ^5.3 || ^6.0", - "symfony/framework-bundle": "^4.4 || ^5.3 || ^6.0", - "symfony/process": "^4.4 || ^5.3 || ^6.0", - "symfony/yaml": "^4.4 || ^5.3 || ^6.0", - "vimeo/psalm": "4.30.0" + "friends-of-behat/mink": "^1.7", + "friends-of-behat/mink-browserkit-driver": "^1.3", + "friends-of-behat/mink-extension": "^2.2", + "friends-of-behat/page-object-extension": "^0.3.1", + "friends-of-behat/service-container-extension": "^1.0", + "sylius-labs/coding-standard": "^3.0", + "symfony/browser-kit": "^4.4|^5.0", + "symfony/framework-bundle": "^4.4|^5.0", + "symfony/process": "^4.4|^5.0", + "symfony/yaml": "^4.4|^5.0", + "vimeo/psalm": "3.10.1" }, "suggest": { - "behat/mink": "^1.9", - "behat/mink-browserkit-driver": "^2.0", - "friends-of-behat/mink-extension": "^2.5" + "friends-of-behat/mink": "^1.7", + "friends-of-behat/mink-browserkit-driver": "^1.3", + "friends-of-behat/mink-extension": "^2.2" }, "type": "symfony-bundle", "extra": { "branch-alias": { - "dev-master": "2.2-dev" + "dev-master": "2.1-dev" } }, "autoload": { @@ -8290,9 +8414,9 @@ "description": "Integrates Behat with Symfony.", "support": { "issues": "https://github.com/FriendsOfBehat/SymfonyExtension/issues", - "source": "https://github.com/FriendsOfBehat/SymfonyExtension/tree/v2.4.2" + "source": "https://github.com/FriendsOfBehat/SymfonyExtension/tree/2.1" }, - "time": "2023-12-09T12:17:26+00:00" + "time": "2020-04-04T20:07:00+00:00" }, { "name": "hamcrest/hamcrest-php", @@ -8496,26 +8620,26 @@ }, { "name": "league/mime-type-detection", - "version": "1.15.0", + "version": "1.12.0", "source": { "type": "git", "url": "https://github.com/thephpleague/mime-type-detection.git", - "reference": "ce0f4d1e8a6f4eb0ddff33f57c69c50fd09f4301" + "reference": "c7f2872fb273bf493811473dafc88d60ae829f48" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/mime-type-detection/zipball/ce0f4d1e8a6f4eb0ddff33f57c69c50fd09f4301", - "reference": "ce0f4d1e8a6f4eb0ddff33f57c69c50fd09f4301", + "url": "https://api.github.com/repos/thephpleague/mime-type-detection/zipball/c7f2872fb273bf493811473dafc88d60ae829f48", + "reference": "c7f2872fb273bf493811473dafc88d60ae829f48", "shasum": "" }, "require": { "ext-fileinfo": "*", - "php": "^7.4 || ^8.0" + "php": "^7.2 || ^8.0" }, "require-dev": { "friendsofphp/php-cs-fixer": "^3.2", "phpstan/phpstan": "^0.12.68", - "phpunit/phpunit": "^8.5.8 || ^9.3 || ^10.0" + "phpunit/phpunit": "^8.5.8 || ^9.3" }, "type": "library", "autoload": { @@ -8536,7 +8660,7 @@ "description": "Mime-type detection for Flysystem", "support": { "issues": "https://github.com/thephpleague/mime-type-detection/issues", - "source": "https://github.com/thephpleague/mime-type-detection/tree/1.15.0" + "source": "https://github.com/thephpleague/mime-type-detection/tree/1.12.0" }, "funding": [ { @@ -8548,7 +8672,7 @@ "type": "tidelift" } ], - "time": "2024-01-28T23:22:08+00:00" + "time": "2023-08-03T07:14:11+00:00" }, { "name": "liip/functional-test-bundle", @@ -8688,38 +8812,35 @@ }, { "name": "mockery/mockery", - "version": "1.6.11", + "version": "1.3.6", "source": { "type": "git", "url": "https://github.com/mockery/mockery.git", - "reference": "81a161d0b135df89951abd52296adf97deb0723d" + "reference": "dc206df4fa314a50bbb81cf72239a305c5bbd5c0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/mockery/mockery/zipball/81a161d0b135df89951abd52296adf97deb0723d", - "reference": "81a161d0b135df89951abd52296adf97deb0723d", + "url": "https://api.github.com/repos/mockery/mockery/zipball/dc206df4fa314a50bbb81cf72239a305c5bbd5c0", + "reference": "dc206df4fa314a50bbb81cf72239a305c5bbd5c0", "shasum": "" }, "require": { "hamcrest/hamcrest-php": "^2.0.1", "lib-pcre": ">=7.0", - "php": ">=7.3" - }, - "conflict": { - "phpunit/phpunit": "<8.0" + "php": ">=5.6.0" }, "require-dev": { - "phpunit/phpunit": "^8.5 || ^9.6.17", - "symplify/easy-coding-standard": "^12.1.14" + "phpunit/phpunit": "^5.7.10|^6.5|^7.5|^8.5|^9.3" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.3.x-dev" + } + }, "autoload": { - "files": [ - "library/helpers.php", - "library/Mockery.php" - ], - "psr-4": { - "Mockery\\": "library/Mockery" + "psr-0": { + "Mockery": "library/" } }, "notification-url": "https://packagist.org/downloads/", @@ -8730,20 +8851,12 @@ { "name": "Pádraic Brady", "email": "padraic.brady@gmail.com", - "homepage": "https://github.com/padraic", - "role": "Author" + "homepage": "http://blog.astrumfutura.com" }, { "name": "Dave Marshall", "email": "dave.marshall@atstsolutions.co.uk", - "homepage": "https://davedevelopment.co.uk", - "role": "Developer" - }, - { - "name": "Nathanael Esayeas", - "email": "nathanael.esayeas@protonmail.com", - "homepage": "https://github.com/ghostwriter", - "role": "Lead Developer" + "homepage": "http://davedevelopment.co.uk" } ], "description": "Mockery is a simple yet flexible PHP mock object framework", @@ -8761,13 +8874,10 @@ "testing" ], "support": { - "docs": "https://docs.mockery.io/", "issues": "https://github.com/mockery/mockery/issues", - "rss": "https://github.com/mockery/mockery/releases.atom", - "security": "https://github.com/mockery/mockery/security/advisories", - "source": "https://github.com/mockery/mockery" + "source": "https://github.com/mockery/mockery/tree/1.3.6" }, - "time": "2024-03-21T18:34:15+00:00" + "time": "2022-09-07T15:05:49+00:00" }, { "name": "myclabs/deep-copy", @@ -9464,29 +9574,29 @@ }, { "name": "phpunit/php-token-stream", - "version": "4.0.4", + "version": "3.1.3", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-token-stream.git", - "reference": "a853a0e183b9db7eed023d7933a858fa1c8d25a3" + "reference": "9c1da83261628cb24b6a6df371b6e312b3954768" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/a853a0e183b9db7eed023d7933a858fa1c8d25a3", - "reference": "a853a0e183b9db7eed023d7933a858fa1c8d25a3", + "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/9c1da83261628cb24b6a6df371b6e312b3954768", + "reference": "9c1da83261628cb24b6a6df371b6e312b3954768", "shasum": "" }, "require": { "ext-tokenizer": "*", - "php": "^7.3 || ^8.0" + "php": ">=7.1" }, "require-dev": { - "phpunit/phpunit": "^9.0" + "phpunit/phpunit": "^7.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "4.0-dev" + "dev-master": "3.1-dev" } }, "autoload": { @@ -9511,7 +9621,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/php-token-stream/issues", - "source": "https://github.com/sebastianbergmann/php-token-stream/tree/master" + "source": "https://github.com/sebastianbergmann/php-token-stream/tree/3.1.3" }, "funding": [ { @@ -9520,7 +9630,7 @@ } ], "abandoned": true, - "time": "2020-08-04T08:28:15+00:00" + "time": "2021-07-26T12:15:06+00:00" }, { "name": "phpunit/phpunit", @@ -10848,7 +10958,7 @@ "prefer-stable": false, "prefer-lowest": false, "platform": { - "php": "7.4", + "php": "<=7.4", "ext-dom": "*", "ext-json": "*", "ext-mbstring": "*", @@ -10856,7 +10966,7 @@ }, "platform-dev": [], "platform-overrides": { - "php": "7.4" + "php": "7.2.34" }, "plugin-api-version": "2.6.0" } diff --git a/src/OpenConext/EngineBlockBundle/Security/Voter/MetadataPushVoter.php b/src/OpenConext/EngineBlockBundle/Security/Voter/MetadataPushVoter.php index cf9e4e4ed8..26eac6f617 100644 --- a/src/OpenConext/EngineBlockBundle/Security/Voter/MetadataPushVoter.php +++ b/src/OpenConext/EngineBlockBundle/Security/Voter/MetadataPushVoter.php @@ -8,9 +8,12 @@ class MetadataPushVoter implements VoterInterface { - private const PUSH_ROLE = "ROLE_API_USER_METADATA_PUSH"; + const PUSH_ROLE = "ROLE_API_USER_METADATA_PUSH"; - private Security $security; + /** + * @var Security + */ + private $security; public function __construct(Security $security) { From bf94d1a876c05d2e55530e8419c3cf72e08c7a25 Mon Sep 17 00:00:00 2001 From: Vincent Jong Date: Fri, 3 May 2024 11:28:18 +0200 Subject: [PATCH 09/35] Fix build --- app/config/config_test.yml | 2 +- .../Security/Voter/MetadataPushVoter.php | 16 ++++++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/app/config/config_test.yml b/app/config/config_test.yml index 949079a242..6e06e33fe7 100644 --- a/app/config/config_test.yml +++ b/app/config/config_test.yml @@ -30,7 +30,7 @@ framework: storage_id: session.storage.mock_file name: MOCKSESSION router: - resource: "%kernel.project_dir%/config/routing_test.yml" + resource: "%kernel.project_dir%/app/config/routing_test.yml" strict_requirements: true profiler: collect: false diff --git a/src/OpenConext/EngineBlockBundle/Security/Voter/MetadataPushVoter.php b/src/OpenConext/EngineBlockBundle/Security/Voter/MetadataPushVoter.php index 26eac6f617..19da091923 100644 --- a/src/OpenConext/EngineBlockBundle/Security/Voter/MetadataPushVoter.php +++ b/src/OpenConext/EngineBlockBundle/Security/Voter/MetadataPushVoter.php @@ -1,5 +1,21 @@ Date: Fri, 3 May 2024 16:45:10 +0200 Subject: [PATCH 10/35] Fix tests --- .../Resources/config/services.yml | 1 + .../Resources/config/services.yml | 1 + .../Test/Corto/Model/ConsentTest.php | 21 +++++++++++++++++-- .../AuthnRequestAnnotationDecoratorTest.php | 2 +- 4 files changed, 22 insertions(+), 3 deletions(-) diff --git a/src/OpenConext/EngineBlockBundle/Resources/config/services.yml b/src/OpenConext/EngineBlockBundle/Resources/config/services.yml index cbeabf10ba..4e84879d6f 100644 --- a/src/OpenConext/EngineBlockBundle/Resources/config/services.yml +++ b/src/OpenConext/EngineBlockBundle/Resources/config/services.yml @@ -25,6 +25,7 @@ services: engineblock.configuration.stepup.endpoint: class: OpenConext\EngineBlock\Stepup\StepupEndpoint + public: true arguments: - "%stepup.gateway.sfo.entity_id%" - "%stepup.gateway.sfo.sso_location%" diff --git a/src/OpenConext/EngineBlockFunctionalTestingBundle/Resources/config/services.yml b/src/OpenConext/EngineBlockFunctionalTestingBundle/Resources/config/services.yml index b4031c05fe..2e55d0b6a3 100644 --- a/src/OpenConext/EngineBlockFunctionalTestingBundle/Resources/config/services.yml +++ b/src/OpenConext/EngineBlockFunctionalTestingBundle/Resources/config/services.yml @@ -94,6 +94,7 @@ services: engineblock.configuration.stepup.endpoint: class: OpenConext\EngineBlock\Stepup\StepupEndpoint + public: true arguments: - "https://engine.vm.openconext.org/authentication/stepup/metadata" - "https://engine.vm.openconext.org/functional-testing/gateway/second-factor-only/single-sign-on" diff --git a/tests/library/EngineBlock/Test/Corto/Model/ConsentTest.php b/tests/library/EngineBlock/Test/Corto/Model/ConsentTest.php index f30a72dc94..a09cd34bce 100644 --- a/tests/library/EngineBlock/Test/Corto/Model/ConsentTest.php +++ b/tests/library/EngineBlock/Test/Corto/Model/ConsentTest.php @@ -16,6 +16,8 @@ * limitations under the License. */ +use Doctrine\DBAL\Connection; +use Doctrine\DBAL\Statement; use OpenConext\EngineBlock\Metadata\Entity\ServiceProvider; use PHPUnit\Framework\TestCase; @@ -24,10 +26,25 @@ class EngineBlock_Corto_Model_Consent_Test extends TestCase private $consentDisabled; private $consent; private $mockedDatabaseConnection; + private $mockedStatement; public function setUp(): void { $this->mockedDatabaseConnection = Phake::mock('EngineBlock_Database_ConnectionFactory'); + $dbConnection = Phake::mock(Connection::class); + $this->mockedStatement = Phake::mock(Statement::class); + Phake::when($this->mockedDatabaseConnection) + ->getConnection() + ->thenReturn($dbConnection); + Phake::when($dbConnection) + ->prepare(Phake::anyParameters()) + ->thenReturn($this->mockedStatement); + Phake::when($this->mockedStatement) + ->execute(Phake::anyParameters()) + ->thenReturn(true); + Phake::when($this->mockedStatement) + ->fetchAll() + ->thenReturn([1, 2]); $mockedResponse = Phake::mock('EngineBlock_Saml2_ResponseAnnotationDecorator'); $this->consentDisabled = new EngineBlock_Corto_Model_Consent( @@ -59,7 +76,7 @@ public function testConsentDisabledDoesNotWriteToDatabase() $this->consentDisabled->giveExplicitConsentFor($serviceProvider); $this->consentDisabled->giveImplicitConsentFor($serviceProvider); - Phake::verify($this->mockedDatabaseConnection, Phake::times(0))->create(); + Phake::verify($this->mockedStatement, Phake::times(0))->execute(Phake::anyParameters()); } public function testConsentWriteToDatabase() @@ -70,6 +87,6 @@ public function testConsentWriteToDatabase() $this->consent->giveExplicitConsentFor($serviceProvider); $this->consent->giveImplicitConsentFor($serviceProvider); - Phake::verify($this->mockedDatabaseConnection, Phake::times(4))->create(); + Phake::verify($this->mockedStatement, Phake::times(4))->execute(Phake::anyParameters()); } } diff --git a/tests/library/EngineBlock/Test/Saml2/AuthnRequestAnnotationDecoratorTest.php b/tests/library/EngineBlock/Test/Saml2/AuthnRequestAnnotationDecoratorTest.php index 8ff2bca7aa..20b15ac51e 100644 --- a/tests/library/EngineBlock/Test/Saml2/AuthnRequestAnnotationDecoratorTest.php +++ b/tests/library/EngineBlock/Test/Saml2/AuthnRequestAnnotationDecoratorTest.php @@ -35,7 +35,7 @@ public function testToString() $annotatedRequest->setDebug(); $this->assertEquals( - '{"sspMessage":"\n\n","keyId":null,"wasSigned":false,"debug":true,"unsolicited":false,"transparent":false,"deliverByBinding":null}', + '{"sspMessage":"\n\n","keyId":null,"wasSigned":false,"debug":true,"unsolicited":false,"transparent":false,"deliverByBinding":null}', $annotatedRequest->__toString() ); } From 491fa47920663f86f59381e154c4ac8703ca3347 Mon Sep 17 00:00:00 2001 From: Vincent Jong Date: Tue, 7 May 2024 08:47:39 +0200 Subject: [PATCH 11/35] Fix integration tests --- tests/behat-ci.yml | 2 +- tests/behat.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/behat-ci.yml b/tests/behat-ci.yml index 9367d1f86b..371cbdac72 100644 --- a/tests/behat-ci.yml +++ b/tests/behat-ci.yml @@ -80,7 +80,7 @@ default: - "--disable-gpu" - "--window-size=1920,1080" - "--no-sandbox" - Behat\Symfony2Extension: + FriendsOfBehat\Symfony2Extension: kernel: env: ci debug: true diff --git a/tests/behat.yml b/tests/behat.yml index 1aaea3c92b..e54429a775 100644 --- a/tests/behat.yml +++ b/tests/behat.yml @@ -81,4 +81,4 @@ default: - "--window-size=1920,1080" - "--no-sandbox" - "--disable-dev-shm-usage" - Behat\Symfony2Extension: ~ + FriendsOfBehat\Symfony2Extension: ~ From b029d6076453628351245287b6e488cb8581c5a1 Mon Sep 17 00:00:00 2001 From: Vincent Jong Date: Wed, 15 May 2024 16:15:23 +0200 Subject: [PATCH 12/35] Fix unit tests --- library/EngineBlock/Corto/Module/Services.php | 17 ------------ .../Corto/Module/Services/Exception.php | 26 +++++++++++++++++++ .../Module/Services/SessionLostException.php | 21 +++++++++++++++ .../Services/SessionNotStartedException.php | 21 +++++++++++++++ 4 files changed, 68 insertions(+), 17 deletions(-) create mode 100644 library/EngineBlock/Corto/Module/Services/Exception.php create mode 100644 library/EngineBlock/Corto/Module/Services/SessionLostException.php create mode 100644 library/EngineBlock/Corto/Module/Services/SessionNotStartedException.php diff --git a/library/EngineBlock/Corto/Module/Services.php b/library/EngineBlock/Corto/Module/Services.php index 73cb348286..6dd60b8918 100644 --- a/library/EngineBlock/Corto/Module/Services.php +++ b/library/EngineBlock/Corto/Module/Services.php @@ -16,23 +16,6 @@ * limitations under the License. */ -class EngineBlock_Corto_Module_Services_Exception extends EngineBlock_Corto_ProxyServer_Exception -{ - public function __construct($message, $severity = self::CODE_NOTICE, Exception $previous = null) - { - parent::__construct($message, $severity, $previous); - } - -} - -class EngineBlock_Corto_Module_Services_SessionLostException extends EngineBlock_Corto_Module_Services_Exception -{ -} - -class EngineBlock_Corto_Module_Services_SessionNotStartedException extends EngineBlock_Corto_Module_Services_Exception -{ -} - class EngineBlock_Corto_Module_Services extends EngineBlock_Corto_Module_Abstract { protected $_aliases = array( diff --git a/library/EngineBlock/Corto/Module/Services/Exception.php b/library/EngineBlock/Corto/Module/Services/Exception.php new file mode 100644 index 0000000000..0b8a826bd8 --- /dev/null +++ b/library/EngineBlock/Corto/Module/Services/Exception.php @@ -0,0 +1,26 @@ + Date: Wed, 15 May 2024 16:36:47 +0200 Subject: [PATCH 13/35] Fix acceptance and integration tests --- ...ttributeReleasePolicyControllerApiTest.php | 32 +++++------ .../Api/ConnectionsControllerTest.php | 30 +++++----- .../Controller/Api/ConsentControllerTest.php | 56 +++++++++---------- .../ExecutionTimeTrackerTest.php | 2 +- 4 files changed, 60 insertions(+), 60 deletions(-) diff --git a/tests/functional/OpenConext/EngineBlockBundle/Controller/Api/AttributeReleasePolicyControllerApiTest.php b/tests/functional/OpenConext/EngineBlockBundle/Controller/Api/AttributeReleasePolicyControllerApiTest.php index 66f34d5827..c9e618cb51 100644 --- a/tests/functional/OpenConext/EngineBlockBundle/Controller/Api/AttributeReleasePolicyControllerApiTest.php +++ b/tests/functional/OpenConext/EngineBlockBundle/Controller/Api/AttributeReleasePolicyControllerApiTest.php @@ -61,9 +61,9 @@ public function authentication_is_required_for_applying_arps() */ public function only_post_requests_are_allowed_when_applying_arp($invalidHttpMethod) { - $client = static::createClient([], [ - 'PHP_AUTH_USER' => $this->getContainer()->getParameter('api.users.profile.username'), - 'PHP_AUTH_PW' => $this->getContainer()->getParameter('api.users.profile.password'), + $client = $this->createClient([], [ + 'PHP_AUTH_USER' => $this->getContainerInterface()->getParameter('api.users.profile.username'), + 'PHP_AUTH_PW' => $this->getContainerInterface()->getParameter('api.users.profile.password'), ]); $client->request($invalidHttpMethod, 'https://engine-api.vm.openconext.org/arp'); @@ -105,8 +105,8 @@ public function cannot_apply_arp_if_user_does_not_have_profile_role() public function cannot_push_invalid_content_to_the_arp_api($invalidJsonPayload) { $client = static::createClient([], [ - 'PHP_AUTH_USER' => $this->getContainer()->getParameter('api.users.profile.username'), - 'PHP_AUTH_PW' => $this->getContainer()->getParameter('api.users.profile.password'), + 'PHP_AUTH_USER' => $this->getContainerInterface()->getParameter('api.users.profile.username'), + 'PHP_AUTH_PW' => $this->getContainerInterface()->getParameter('api.users.profile.password'), ]); $client->request( @@ -140,8 +140,8 @@ public function all_attributes_are_released_through_the_arp_api_if_no_arp_is_fou $this->addServiceProviderFixture($serviceProvider); $client = static::createClient([], [ - 'PHP_AUTH_USER' => $this->getContainer()->getParameter('api.users.profile.username'), - 'PHP_AUTH_PW' => $this->getContainer()->getParameter('api.users.profile.password'), + 'PHP_AUTH_USER' => $this->getContainerInterface()->getParameter('api.users.profile.username'), + 'PHP_AUTH_PW' => $this->getContainerInterface()->getParameter('api.users.profile.password'), ]); $arpRequestData = [ @@ -206,8 +206,8 @@ public function arps_are_applied_to_sps_and_attributes_by_the_arp_api() $this->addServiceProviderFixture($spReceivingSpecialAttribute); $client = static::createClient([], [ - 'PHP_AUTH_USER' => $this->getContainer()->getParameter('api.users.profile.username'), - 'PHP_AUTH_PW' => $this->getContainer()->getParameter('api.users.profile.password'), + 'PHP_AUTH_USER' => $this->getContainerInterface()->getParameter('api.users.profile.username'), + 'PHP_AUTH_PW' => $this->getContainerInterface()->getParameter('api.users.profile.password'), ]); $arpRequestData = [ @@ -280,8 +280,8 @@ public function arps_matching_on_exact_keys_are_applied_to_sps_and_attributes_by $this->addServiceProviderFixture($spReceivingSpecialAttribute); $client = static::createClient([], [ - 'PHP_AUTH_USER' => $this->getContainer()->getParameter('api.users.profile.username'), - 'PHP_AUTH_PW' => $this->getContainer()->getParameter('api.users.profile.password'), + 'PHP_AUTH_USER' => $this->getContainerInterface()->getParameter('api.users.profile.username'), + 'PHP_AUTH_PW' => $this->getContainerInterface()->getParameter('api.users.profile.password'), ]); $arpRequestData = [ @@ -354,8 +354,8 @@ public function arps_matching_on_partial_keys_are_applied_to_sps_and_attributes_ $this->addServiceProviderFixture($spReceivingSpecialAttribute); $client = static::createClient([], [ - 'PHP_AUTH_USER' => $this->getContainer()->getParameter('api.users.profile.username'), - 'PHP_AUTH_PW' => $this->getContainer()->getParameter('api.users.profile.password'), + 'PHP_AUTH_USER' => $this->getContainerInterface()->getParameter('api.users.profile.username'), + 'PHP_AUTH_PW' => $this->getContainerInterface()->getParameter('api.users.profile.password'), ]); $arpRequestData = [ @@ -458,7 +458,7 @@ private function assertStatusCode($expectedStatusCode, Client $client) $this->assertEquals($expectedStatusCode, $client->getResponse()->getStatusCode()); } - private function getContainer() : ContainerInterface + private function getContainerInterface() : ContainerInterface { self::bootKernel(); return self::$kernel->getContainer(); @@ -473,14 +473,14 @@ private function createServiceProviderWithArp($entityId, AttributeReleasePolicy private function addServiceProviderFixture(ServiceProvider $serviceProvider) { - $em = $this->getContainer()->get('doctrine')->getEntityManager(); + $em = $this->getContainerInterface()->get('doctrine')->getEntityManager(); $em->persist($serviceProvider); $em->flush(); } private function clearMetadataFixtures() { - $queryBuilder = $this->getContainer()->get('doctrine')->getConnection()->createQueryBuilder(); + $queryBuilder = $this->getContainerInterface()->get('doctrine')->getConnection()->createQueryBuilder(); $queryBuilder ->delete('sso_provider_roles_eb5') ->execute(); diff --git a/tests/functional/OpenConext/EngineBlockBundle/Controller/Api/ConnectionsControllerTest.php b/tests/functional/OpenConext/EngineBlockBundle/Controller/Api/ConnectionsControllerTest.php index 3c94e203ad..0bc8b753c1 100644 --- a/tests/functional/OpenConext/EngineBlockBundle/Controller/Api/ConnectionsControllerTest.php +++ b/tests/functional/OpenConext/EngineBlockBundle/Controller/Api/ConnectionsControllerTest.php @@ -55,8 +55,8 @@ public function authentication_is_required_for_pushing_metadata() public function only_post_requests_are_allowed_when_pushing_metadata($invalidHttpMethod) { $client = $client = static::createClient([], [ - 'PHP_AUTH_USER' => $this->getContainer()->getParameter('api.users.metadataPush.username'), - 'PHP_AUTH_PW' => $this->getContainer()->getParameter('api.users.metadataPush.password'), + 'PHP_AUTH_USER' => $this->getContainerInterface()->getParameter('api.users.metadataPush.username'), + 'PHP_AUTH_PW' => $this->getContainerInterface()->getParameter('api.users.metadataPush.password'), ]); $client->request($invalidHttpMethod, 'https://engine-api.vm.openconext.org/api/connections'); @@ -76,8 +76,8 @@ public function only_post_requests_are_allowed_when_pushing_metadata($invalidHtt public function cannot_push_metadata_if_feature_is_disabled() { $client = $client = static::createClient([], [ - 'PHP_AUTH_USER' => $this->getContainer()->getParameter('api.users.metadataPush.username'), - 'PHP_AUTH_PW' => $this->getContainer()->getParameter('api.users.metadataPush.password'), + 'PHP_AUTH_USER' => $this->getContainerInterface()->getParameter('api.users.metadataPush.username'), + 'PHP_AUTH_PW' => $this->getContainerInterface()->getParameter('api.users.metadataPush.password'), ]); $this->disableMetadataPushApiFeatureFor($client); @@ -121,8 +121,8 @@ public function cannot_push_metadata_if_user_does_not_have_manage_role() public function cannot_push_invalid_content_to_the_metadata_push_api($invalidJsonPayload) { $client = $client = static::createClient([], [ - 'PHP_AUTH_USER' => $this->getContainer()->getParameter('api.users.metadataPush.username'), - 'PHP_AUTH_PW' => $this->getContainer()->getParameter('api.users.metadataPush.password'), + 'PHP_AUTH_USER' => $this->getContainerInterface()->getParameter('api.users.metadataPush.username'), + 'PHP_AUTH_PW' => $this->getContainerInterface()->getParameter('api.users.metadataPush.password'), ]); $client->request( @@ -151,8 +151,8 @@ public function pushing_data_to_engineblock_should_succeed() $this->clearMetadataFixtures(); $client = $client = static::createClient([], [ - 'PHP_AUTH_USER' => $this->getContainer()->getParameter('api.users.metadataPush.username'), - 'PHP_AUTH_PW' => $this->getContainer()->getParameter('api.users.metadataPush.password'), + 'PHP_AUTH_USER' => $this->getContainerInterface()->getParameter('api.users.metadataPush.username'), + 'PHP_AUTH_PW' => $this->getContainerInterface()->getParameter('api.users.metadataPush.password'), ]); foreach ($this->validConnectionsData() as $step) { @@ -220,8 +220,8 @@ public function pushing_data_with_coins_to_engineblock_should_succeed() $this->clearMetadataFixtures(); $client = $client = static::createClient([], [ - 'PHP_AUTH_USER' => $this->getContainer()->getParameter('api.users.metadataPush.username'), - 'PHP_AUTH_PW' => $this->getContainer()->getParameter('api.users.metadataPush.password'), + 'PHP_AUTH_USER' => $this->getContainerInterface()->getParameter('api.users.metadataPush.username'), + 'PHP_AUTH_PW' => $this->getContainerInterface()->getParameter('api.users.metadataPush.password'), ]); foreach ($this->validConnectionsWithCoinsData() as $connection) { @@ -274,8 +274,8 @@ public function pushing_manage_sfo_data_should_succeed() $this->clearMetadataFixtures(); $client = $client = static::createClient([], [ - 'PHP_AUTH_USER' => $this->getContainer()->getParameter('api.users.metadataPush.username'), - 'PHP_AUTH_PW' => $this->getContainer()->getParameter('api.users.metadataPush.password'), + 'PHP_AUTH_USER' => $this->getContainerInterface()->getParameter('api.users.metadataPush.username'), + 'PHP_AUTH_PW' => $this->getContainerInterface()->getParameter('api.users.metadataPush.password'), ]); $payload = '{"connections" : { @@ -380,7 +380,7 @@ private function assertStatusCode($expectedStatusCode, Client $client) $this->assertEquals($expectedStatusCode, $client->getResponse()->getStatusCode()); } - private function getContainer() : ContainerInterface + private function getContainerInterface() : ContainerInterface { self::bootKernel(); return self::$kernel->getContainer(); @@ -396,7 +396,7 @@ private function disableMetadataPushApiFeatureFor(Client $client) private function clearMetadataFixtures() { - $queryBuilder = $this->getContainer()->get('doctrine')->getConnection()->createQueryBuilder(); + $queryBuilder = $this->getContainerInterface()->get('doctrine')->getConnection()->createQueryBuilder(); $queryBuilder ->delete('sso_provider_roles_eb5') ->execute(); @@ -407,7 +407,7 @@ private function clearMetadataFixtures() */ private function getStoredMetadata() { - $doctrine = $this->getContainer()->get('doctrine'); + $doctrine = $this->getContainerInterface()->get('doctrine'); $doctrine->getManager()->clear(); diff --git a/tests/functional/OpenConext/EngineBlockBundle/Controller/Api/ConsentControllerTest.php b/tests/functional/OpenConext/EngineBlockBundle/Controller/Api/ConsentControllerTest.php index 754d713a02..31e26cccda 100644 --- a/tests/functional/OpenConext/EngineBlockBundle/Controller/Api/ConsentControllerTest.php +++ b/tests/functional/OpenConext/EngineBlockBundle/Controller/Api/ConsentControllerTest.php @@ -85,8 +85,8 @@ public function only_get_requests_are_allowed_when_accessing_the_consent_api($in $userId = 'my-name-id'; $client = $client = static::createClient([], [ - 'PHP_AUTH_USER' => $this->getContainer()->getParameter('api.users.profile.username'), - 'PHP_AUTH_PW' => $this->getContainer()->getParameter('api.users.profile.password'), + 'PHP_AUTH_USER' => $this->getContainerInterface()->getParameter('api.users.profile.username'), + 'PHP_AUTH_PW' => $this->getContainerInterface()->getParameter('api.users.profile.password'), ]); $client->request($invalidHttpMethod, 'https://engine-api.vm.openconext.org/consent/' . $userId); @@ -108,8 +108,8 @@ public function cannot_access_the_consent_api_if_the_feature_has_been_disabled() $userId = 'my-name-id'; $client = $client = static::createClient([], [ - 'PHP_AUTH_USER' => $this->getContainer()->getParameter('api.users.profile.username'), - 'PHP_AUTH_PW' => $this->getContainer()->getParameter('api.users.profile.password'), + 'PHP_AUTH_USER' => $this->getContainerInterface()->getParameter('api.users.profile.username'), + 'PHP_AUTH_PW' => $this->getContainerInterface()->getParameter('api.users.profile.password'), ]); $this->disableConsentApiFeatureFor($client); @@ -155,8 +155,8 @@ public function a_consent_listing_for_a_not_found_user_is_retrieved_as_an_empty_ $userId = 'my-name-id'; $client = $client = static::createClient([], [ - 'PHP_AUTH_USER' => $this->getContainer()->getParameter('api.users.profile.username'), - 'PHP_AUTH_PW' => $this->getContainer()->getParameter('api.users.profile.password'), + 'PHP_AUTH_USER' => $this->getContainerInterface()->getParameter('api.users.profile.username'), + 'PHP_AUTH_PW' => $this->getContainerInterface()->getParameter('api.users.profile.password'), ]); $client->request('GET', 'https://engine-api.vm.openconext.org/consent/' . $userId); @@ -209,8 +209,8 @@ public function a_consent_listing_for_a_given_user_is_retrieved_from_the_consent ]; $client = static::createClient([], [ - 'PHP_AUTH_USER' => $this->getContainer()->getParameter('api.users.profile.username'), - 'PHP_AUTH_PW' => $this->getContainer()->getParameter('api.users.profile.password'), + 'PHP_AUTH_USER' => $this->getContainerInterface()->getParameter('api.users.profile.username'), + 'PHP_AUTH_PW' => $this->getContainerInterface()->getParameter('api.users.profile.password'), ]); $this->addServiceProviderFixture($serviceProvider); @@ -292,8 +292,8 @@ public function consent_is_soft_deleted_from_the_consent_api() ]; $client = static::createClient([], [ - 'PHP_AUTH_USER' => $this->getContainer()->getParameter('api.users.profile.username'), - 'PHP_AUTH_PW' => $this->getContainer()->getParameter('api.users.profile.password'), + 'PHP_AUTH_USER' => $this->getContainerInterface()->getParameter('api.users.profile.username'), + 'PHP_AUTH_PW' => $this->getContainerInterface()->getParameter('api.users.profile.password'), ]); $this->addServiceProviderFixture($serviceProvider); @@ -351,8 +351,8 @@ public function consent_is_soft_deleted_from_the_consent_api_multiple_soft_delet ]; $client = static::createClient([], [ - 'PHP_AUTH_USER' => $this->getContainer()->getParameter('api.users.profile.username'), - 'PHP_AUTH_PW' => $this->getContainer()->getParameter('api.users.profile.password'), + 'PHP_AUTH_USER' => $this->getContainerInterface()->getParameter('api.users.profile.username'), + 'PHP_AUTH_PW' => $this->getContainerInterface()->getParameter('api.users.profile.password'), ]); $this->addServiceProviderFixture($serviceProvider); @@ -390,8 +390,8 @@ public function cannot_access_the_remove_consent_api_if_the_feature_has_been_dis $collabPersonId = 'urn:collab:person:test'; $client = static::createClient([], [ - 'PHP_AUTH_USER' => $this->getContainer()->getParameter('api.users.deprovision.username'), - 'PHP_AUTH_PW' => $this->getContainer()->getParameter('api.users.deprovision.password'), + 'PHP_AUTH_USER' => $this->getContainerInterface()->getParameter('api.users.deprovision.username'), + 'PHP_AUTH_PW' => $this->getContainerInterface()->getParameter('api.users.deprovision.password'), ]); $this->disableRemoveConsentApiFeatureFor($client); @@ -444,8 +444,8 @@ public function cannot_access_the_remove_consent_api_if_user_does_not_have_profi public function no_consent_is_removed_if_request_parameters_are_missing_or_incorrect() { $client = static::createClient([], [ - 'PHP_AUTH_USER' => $this->getContainer()->getParameter('api.users.profile.username'), - 'PHP_AUTH_PW' => $this->getContainer()->getParameter('api.users.profile.password'), + 'PHP_AUTH_USER' => $this->getContainerInterface()->getParameter('api.users.profile.username'), + 'PHP_AUTH_PW' => $this->getContainerInterface()->getParameter('api.users.profile.password'), ]); $data = json_encode(['userId' => 'urn:collab:person:test', 'serviceProviderId' => 'https://example.com/metadata']); @@ -463,8 +463,8 @@ public function no_consent_is_removed_if_request_parameters_are_missing_or_incor public function no_consent_is_removed_if_collab_person_id_is_unknown() { $client = static::createClient([], [ - 'PHP_AUTH_USER' => $this->getContainer()->getParameter('api.users.profile.username'), - 'PHP_AUTH_PW' => $this->getContainer()->getParameter('api.users.profile.password'), + 'PHP_AUTH_USER' => $this->getContainerInterface()->getParameter('api.users.profile.username'), + 'PHP_AUTH_PW' => $this->getContainerInterface()->getParameter('api.users.profile.password'), ]); $data = json_encode(['collabPersonId' => 'urn:collab:person:test', 'serviceProviderEntityId' => 'https://example.com/metadata']); @@ -494,7 +494,7 @@ private function assertStatusCode($expectedStatusCode, Client $client) $this->assertEquals($expectedStatusCode, $client->getResponse()->getStatusCode()); } - private function getContainer() : ContainerInterface + private function getContainerInterface() : ContainerInterface { self::bootKernel(); return self::$kernel->getContainer(); @@ -530,8 +530,8 @@ public function cannot_access_the_consent_post_api_if_the_engineblock_consent_fe $collabPersonId = 'urn:collab:person:test'; $client = static::createClient([], [ - 'PHP_AUTH_USER' => $this->getContainer()->getParameter('api.users.deprovision.username'), - 'PHP_AUTH_PW' => $this->getContainer()->getParameter('api.users.deprovision.password'), + 'PHP_AUTH_USER' => $this->getContainerInterface()->getParameter('api.users.deprovision.username'), + 'PHP_AUTH_PW' => $this->getContainerInterface()->getParameter('api.users.deprovision.password'), ]); $this->disableEngineConsentFeatureFor($client); @@ -555,8 +555,8 @@ public function cannot_access_the_consent_get_api_if_the_engineblock_consent_fea $userId = 'my-name-id'; $client = $client = static::createClient([], [ - 'PHP_AUTH_USER' => $this->getContainer()->getParameter('api.users.profile.username'), - 'PHP_AUTH_PW' => $this->getContainer()->getParameter('api.users.profile.password'), + 'PHP_AUTH_USER' => $this->getContainerInterface()->getParameter('api.users.profile.username'), + 'PHP_AUTH_PW' => $this->getContainerInterface()->getParameter('api.users.profile.password'), ]); $this->disableEngineConsentFeatureFor($client); @@ -570,7 +570,7 @@ public function cannot_access_the_consent_get_api_if_the_engineblock_consent_fea private function addConsentFixture($userId, $serviceId, $attributeHash, $consentType, $consentDate, $deletedAt) { - $queryBuilder = $this->getContainer()->get('doctrine')->getConnection()->createQueryBuilder(); + $queryBuilder = $this->getContainerInterface()->get('doctrine')->getConnection()->createQueryBuilder(); $queryBuilder ->insert('consent') ->values([ @@ -595,7 +595,7 @@ private function addConsentFixture($userId, $serviceId, $attributeHash, $consent private function findConsentByUserIdAndSPEntityId(string $collabPersonId, string $spEntityId): array { /** @var \Doctrine\DBAL\Query\QueryBuilder $queryBuilder */ - $queryBuilder = $this->getContainer()->get('doctrine')->getConnection()->createQueryBuilder(); + $queryBuilder = $this->getContainerInterface()->get('doctrine')->getConnection()->createQueryBuilder(); $queryBuilder ->select('*') ->from('consent') @@ -613,14 +613,14 @@ private function findConsentByUserIdAndSPEntityId(string $collabPersonId, string private function addServiceProviderFixture(ServiceProvider $serviceProvider) { - $em = $this->getContainer()->get('doctrine')->getEntityManager(); + $em = $this->getContainerInterface()->get('doctrine')->getEntityManager(); $em->persist($serviceProvider); $em->flush(); } private function clearMetadataFixtures() { - $queryBuilder = $this->getContainer()->get('doctrine')->getConnection()->createQueryBuilder(); + $queryBuilder = $this->getContainerInterface()->get('doctrine')->getConnection()->createQueryBuilder(); $queryBuilder ->delete('sso_provider_roles_eb5') ->execute(); @@ -628,7 +628,7 @@ private function clearMetadataFixtures() private function clearConsentFixtures() { - $queryBuilder = $this->getContainer()->get('doctrine')->getConnection()->createQueryBuilder(); + $queryBuilder = $this->getContainerInterface()->get('doctrine')->getConnection()->createQueryBuilder(); $queryBuilder ->delete('consent') ->execute(); diff --git a/tests/integration/OpenConext/EngineBlockBundle/ExecutionTimeTrackerTest.php b/tests/integration/OpenConext/EngineBlockBundle/ExecutionTimeTrackerTest.php index ea2b467c47..d4c4806c47 100644 --- a/tests/integration/OpenConext/EngineBlockBundle/ExecutionTimeTrackerTest.php +++ b/tests/integration/OpenConext/EngineBlockBundle/ExecutionTimeTrackerTest.php @@ -25,7 +25,7 @@ use Symfony\Component\Stopwatch\Stopwatch; // in order to be in control of time during our tests with the Stopwatch, we use the Symfony's ClockMock -require_once ENGINEBLOCK_FOLDER_VENDOR . '/symfony/symfony/src/Symfony/Bridge/PhpUnit/ClockMock.php'; +require_once ENGINEBLOCK_FOLDER_VENDOR . '/symfony/phpunit-bridge/ClockMock.php'; class ExecutionTimeTrackerTest extends TestCase { From 9d633a68b260ad0757f4704ad8780d13f800741c Mon Sep 17 00:00:00 2001 From: Vincent Jong Date: Wed, 15 May 2024 17:00:44 +0200 Subject: [PATCH 14/35] Fix behat tests --- tests/behat-ci.yml | 4 ++-- tests/behat.yml | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/tests/behat-ci.yml b/tests/behat-ci.yml index 371cbdac72..6eb987a18b 100644 --- a/tests/behat-ci.yml +++ b/tests/behat-ci.yml @@ -66,7 +66,7 @@ default: contexts: *defaultContexts extensions: - Behat\MinkExtension: + FriendsOfBehat\MinkExtension: base_url: https://engine.vm.openconext.org/ sessions: chrome: @@ -80,7 +80,7 @@ default: - "--disable-gpu" - "--window-size=1920,1080" - "--no-sandbox" - FriendsOfBehat\Symfony2Extension: + FriendsOfBehat\SymfonyExtension: kernel: env: ci debug: true diff --git a/tests/behat.yml b/tests/behat.yml index e54429a775..475ccdf27f 100644 --- a/tests/behat.yml +++ b/tests/behat.yml @@ -66,7 +66,7 @@ default: contexts: *defaultContexts extensions: - Behat\MinkExtension: + FriendsOfBehat\MinkExtension: base_url: ~ sessions: chrome: @@ -81,4 +81,4 @@ default: - "--window-size=1920,1080" - "--no-sandbox" - "--disable-dev-shm-usage" - FriendsOfBehat\Symfony2Extension: ~ + FriendsOfBehat\SymfonyExtension: ~ From 92ef83138c772200543687de7408017ceb319635 Mon Sep 17 00:00:00 2001 From: Vincent Jong Date: Wed, 15 May 2024 17:06:04 +0200 Subject: [PATCH 15/35] Fix behat tests --- tests/behat-ci.yml | 2 +- tests/behat.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/behat-ci.yml b/tests/behat-ci.yml index 6eb987a18b..09e7607673 100644 --- a/tests/behat-ci.yml +++ b/tests/behat-ci.yml @@ -66,7 +66,7 @@ default: contexts: *defaultContexts extensions: - FriendsOfBehat\MinkExtension: + Behat\MinkExtension: base_url: https://engine.vm.openconext.org/ sessions: chrome: diff --git a/tests/behat.yml b/tests/behat.yml index 475ccdf27f..2a6e20b309 100644 --- a/tests/behat.yml +++ b/tests/behat.yml @@ -66,7 +66,7 @@ default: contexts: *defaultContexts extensions: - FriendsOfBehat\MinkExtension: + Behat\MinkExtension: base_url: ~ sessions: chrome: From 1237e1e5665b7c4c8cda759b6a15b48e7cd6e509 Mon Sep 17 00:00:00 2001 From: Vincent Jong Date: Wed, 15 May 2024 17:10:09 +0200 Subject: [PATCH 16/35] Fix behat tests --- tests/behat-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/behat-ci.yml b/tests/behat-ci.yml index 09e7607673..85196d4c7f 100644 --- a/tests/behat-ci.yml +++ b/tests/behat-ci.yml @@ -82,5 +82,5 @@ default: - "--no-sandbox" FriendsOfBehat\SymfonyExtension: kernel: - env: ci + environment: ci debug: true From 7ae9b8418729fc8bb52ffc05e5b84d17585b0b8f Mon Sep 17 00:00:00 2001 From: Vincent Jong Date: Wed, 15 May 2024 17:29:29 +0200 Subject: [PATCH 17/35] Fix behat tests --- app/AppKernel.php | 1 + 1 file changed, 1 insertion(+) diff --git a/app/AppKernel.php b/app/AppKernel.php index ac7b84b07a..ae28ff9219 100644 --- a/app/AppKernel.php +++ b/app/AppKernel.php @@ -31,6 +31,7 @@ public function registerBundles() // own bundles $bundles[] = new OpenConext\EngineBlockFunctionalTestingBundle\OpenConextEngineBlockFunctionalTestingBundle(); + $bundles[] = new FriendsOfBehat\SymfonyExtension\Bundle\FriendsOfBehatSymfonyExtensionBundle(); } return $bundles; From 9c0b68f3487aa3720dc7aab05ba56fafb7c1945a Mon Sep 17 00:00:00 2001 From: Vincent Jong Date: Thu, 16 May 2024 08:42:37 +0200 Subject: [PATCH 18/35] Fix unit tests --- .github/workflows/test-integration.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/test-integration.yml b/.github/workflows/test-integration.yml index 9bd1e61477..2519633e7f 100644 --- a/.github/workflows/test-integration.yml +++ b/.github/workflows/test-integration.yml @@ -59,13 +59,13 @@ jobs: ./app/console doctrine:schema:drop --force --env=ci && \ ./app/console doctrine:schema:create --env=ci && \ echo -e "\nPHPUnit legacy tests\n" && \ - ./vendor/bin/phpunit --configuration=./tests/phpunit.xml --testsuite=eb4 --coverage-text && \ + XDEBUG_MODE=coverage ./vendor/bin/phpunit --configuration=./tests/phpunit.xml --testsuite=eb4 --coverage-text && \ echo -e "\nPHPUnit unit tests\n" && \ - ./vendor/bin/phpunit --configuration=./tests/phpunit.xml --testsuite=unit --coverage-text && \ + XDEBUG_MODE=coverage ./vendor/bin/phpunit --configuration=./tests/phpunit.xml --testsuite=unit --coverage-text && \ echo -e "\nPHPUnit API acceptance tests\n" && \ APP_ENV=ci ./vendor/bin/phpunit --configuration=./tests/phpunit.xml --testsuite=functional --coverage-text && \ echo -e "\nPHPUnit integration tests\n" && \ - ./vendor/bin/phpunit --configuration=./tests/phpunit.xml --testsuite=integration --coverage-text + XDEBUG_MODE=coverage ./vendor/bin/phpunit --configuration=./tests/phpunit.xml --testsuite=integration --coverage-text ' env: SYMFONY_ENV: ci From fe9c357556d10005b856904cbecad93c3783a721 Mon Sep 17 00:00:00 2001 From: Vincent Jong Date: Thu, 16 May 2024 11:13:49 +0200 Subject: [PATCH 19/35] Fix unit tests --- ...ttributeReleasePolicyControllerApiTest.php | 45 ++++++----- .../Api/ConnectionsControllerTest.php | 44 +++++++---- .../Controller/Api/ConsentControllerTest.php | 75 +++++++++++-------- .../Api/DeprovisionControllerTest.php | 51 ++++++++----- .../Api/HeartbeatControllerTest.php | 4 +- tests/phpunit.xml | 1 + 6 files changed, 135 insertions(+), 85 deletions(-) diff --git a/tests/functional/OpenConext/EngineBlockBundle/Controller/Api/AttributeReleasePolicyControllerApiTest.php b/tests/functional/OpenConext/EngineBlockBundle/Controller/Api/AttributeReleasePolicyControllerApiTest.php index c9e618cb51..0caacfa4b9 100644 --- a/tests/functional/OpenConext/EngineBlockBundle/Controller/Api/AttributeReleasePolicyControllerApiTest.php +++ b/tests/functional/OpenConext/EngineBlockBundle/Controller/Api/AttributeReleasePolicyControllerApiTest.php @@ -20,16 +20,23 @@ use OpenConext\EngineBlock\Metadata\AttributeReleasePolicy; use OpenConext\EngineBlock\Metadata\Entity\ServiceProvider; -use Symfony\Bundle\FrameworkBundle\Client; +use Symfony\Bundle\FrameworkBundle\KernelBrowser; use Symfony\Bundle\FrameworkBundle\Test\WebTestCase; use Symfony\Component\DependencyInjection\ContainerInterface; use Symfony\Component\HttpFoundation\Response; class AttributeReleasePolicyControllerApiTest extends WebTestCase { + private $phpAuthUser; + private $phpAuthPassword; + public function setUp(): void { $this->clearMetadataFixtures(); + self::bootKernel(); + $this->phpAuthUser = static::getContainer()->getParameter('api.users.profile.username'); + $this->phpAuthPassword = static::getContainer()->getParameter('api.users.profile.password'); + self::ensureKernelShutdown(); } public function tearDown(): void @@ -47,7 +54,7 @@ public function authentication_is_required_for_applying_arps() { $unauthenticatedClient = static::createClient(); $unauthenticatedClient->request('POST', 'https://engine-api.vm.openconext.org/arp'); - $this->assertStatusCode(Response::HTTP_UNAUTHORIZED, $unauthenticatedClient); + $this->assertStatusCode(Response::HTTP_UNAUTHORIZED, $unauthenticatedClient); } /** @@ -61,9 +68,9 @@ public function authentication_is_required_for_applying_arps() */ public function only_post_requests_are_allowed_when_applying_arp($invalidHttpMethod) { - $client = $this->createClient([], [ - 'PHP_AUTH_USER' => $this->getContainerInterface()->getParameter('api.users.profile.username'), - 'PHP_AUTH_PW' => $this->getContainerInterface()->getParameter('api.users.profile.password'), + $client = self::createClient([], [ + 'PHP_AUTH_USER' => $this->phpAuthUser, + 'PHP_AUTH_PW' => $this->phpAuthPassword ]); $client->request($invalidHttpMethod, 'https://engine-api.vm.openconext.org/arp'); @@ -105,8 +112,8 @@ public function cannot_apply_arp_if_user_does_not_have_profile_role() public function cannot_push_invalid_content_to_the_arp_api($invalidJsonPayload) { $client = static::createClient([], [ - 'PHP_AUTH_USER' => $this->getContainerInterface()->getParameter('api.users.profile.username'), - 'PHP_AUTH_PW' => $this->getContainerInterface()->getParameter('api.users.profile.password'), + 'PHP_AUTH_USER' => $this->phpAuthUser, + 'PHP_AUTH_PW' => $this->phpAuthPassword ]); $client->request( @@ -138,10 +145,11 @@ public function all_attributes_are_released_through_the_arp_api_if_no_arp_is_fou $serviceProvider = new ServiceProvider($spEntityId); $this->addServiceProviderFixture($serviceProvider); + self::ensureKernelShutdown(); $client = static::createClient([], [ - 'PHP_AUTH_USER' => $this->getContainerInterface()->getParameter('api.users.profile.username'), - 'PHP_AUTH_PW' => $this->getContainerInterface()->getParameter('api.users.profile.password'), + 'PHP_AUTH_USER' => $this->phpAuthUser, + 'PHP_AUTH_PW' => $this->phpAuthPassword ]); $arpRequestData = [ @@ -204,10 +212,11 @@ public function arps_are_applied_to_sps_and_attributes_by_the_arp_api() ); $this->addServiceProviderFixture($spNotReceivingSpecialAttribute); $this->addServiceProviderFixture($spReceivingSpecialAttribute); + self::ensureKernelShutdown(); $client = static::createClient([], [ - 'PHP_AUTH_USER' => $this->getContainerInterface()->getParameter('api.users.profile.username'), - 'PHP_AUTH_PW' => $this->getContainerInterface()->getParameter('api.users.profile.password'), + 'PHP_AUTH_USER' => $this->phpAuthUser, + 'PHP_AUTH_PW' => $this->phpAuthPassword ]); $arpRequestData = [ @@ -278,10 +287,11 @@ public function arps_matching_on_exact_keys_are_applied_to_sps_and_attributes_by ); $this->addServiceProviderFixture($spNotReceivingSpecialAttribute); $this->addServiceProviderFixture($spReceivingSpecialAttribute); + self::ensureKernelShutdown(); $client = static::createClient([], [ - 'PHP_AUTH_USER' => $this->getContainerInterface()->getParameter('api.users.profile.username'), - 'PHP_AUTH_PW' => $this->getContainerInterface()->getParameter('api.users.profile.password'), + 'PHP_AUTH_USER' => $this->phpAuthUser, + 'PHP_AUTH_PW' => $this->phpAuthPassword ]); $arpRequestData = [ @@ -352,10 +362,11 @@ public function arps_matching_on_partial_keys_are_applied_to_sps_and_attributes_ ); $this->addServiceProviderFixture($spNotReceivingSpecialAttribute); $this->addServiceProviderFixture($spReceivingSpecialAttribute); + self::ensureKernelShutdown(); $client = static::createClient([], [ - 'PHP_AUTH_USER' => $this->getContainerInterface()->getParameter('api.users.profile.username'), - 'PHP_AUTH_PW' => $this->getContainerInterface()->getParameter('api.users.profile.password'), + 'PHP_AUTH_USER' => $this->phpAuthUser, + 'PHP_AUTH_PW' => $this->phpAuthPassword ]); $arpRequestData = [ @@ -453,7 +464,7 @@ public function invalidJsonPayloadProvider() ]; } - private function assertStatusCode($expectedStatusCode, Client $client) + private function assertStatusCode($expectedStatusCode, KernelBrowser $client) { $this->assertEquals($expectedStatusCode, $client->getResponse()->getStatusCode()); } @@ -473,7 +484,7 @@ private function createServiceProviderWithArp($entityId, AttributeReleasePolicy private function addServiceProviderFixture(ServiceProvider $serviceProvider) { - $em = $this->getContainerInterface()->get('doctrine')->getEntityManager(); + $em = $this->getContainerInterface()->get('doctrine')->getManager(); $em->persist($serviceProvider); $em->flush(); } diff --git a/tests/functional/OpenConext/EngineBlockBundle/Controller/Api/ConnectionsControllerTest.php b/tests/functional/OpenConext/EngineBlockBundle/Controller/Api/ConnectionsControllerTest.php index 0bc8b753c1..7ce599a18d 100644 --- a/tests/functional/OpenConext/EngineBlockBundle/Controller/Api/ConnectionsControllerTest.php +++ b/tests/functional/OpenConext/EngineBlockBundle/Controller/Api/ConnectionsControllerTest.php @@ -23,13 +23,24 @@ use OpenConext\EngineBlock\Metadata\StepupConnections; use OpenConext\EngineBlockBundle\Configuration\Feature; use OpenConext\EngineBlockBundle\Configuration\FeatureConfiguration; -use Symfony\Bundle\FrameworkBundle\Client; +use Symfony\Bundle\FrameworkBundle\KernelBrowser; use Symfony\Bundle\FrameworkBundle\Test\WebTestCase; use Symfony\Component\DependencyInjection\ContainerInterface; use Symfony\Component\HttpFoundation\Response; class ConnectionsControllerTest extends WebTestCase { + private $phpAuthUser; + private $phpAuthPassword; + + public function setUp(): void + { + self::bootKernel(); + $this->phpAuthUser = static::getContainer()->getParameter('api.users.metadataPush.username'); + $this->phpAuthPassword = static::getContainer()->getParameter('api.users.metadataPush.password'); + self::ensureKernelShutdown(); + } + /** * @test * @group Api @@ -55,8 +66,8 @@ public function authentication_is_required_for_pushing_metadata() public function only_post_requests_are_allowed_when_pushing_metadata($invalidHttpMethod) { $client = $client = static::createClient([], [ - 'PHP_AUTH_USER' => $this->getContainerInterface()->getParameter('api.users.metadataPush.username'), - 'PHP_AUTH_PW' => $this->getContainerInterface()->getParameter('api.users.metadataPush.password'), + 'PHP_AUTH_USER' => $this->phpAuthUser, + 'PHP_AUTH_PW' => $this->phpAuthPassword ]); $client->request($invalidHttpMethod, 'https://engine-api.vm.openconext.org/api/connections'); @@ -76,8 +87,8 @@ public function only_post_requests_are_allowed_when_pushing_metadata($invalidHtt public function cannot_push_metadata_if_feature_is_disabled() { $client = $client = static::createClient([], [ - 'PHP_AUTH_USER' => $this->getContainerInterface()->getParameter('api.users.metadataPush.username'), - 'PHP_AUTH_PW' => $this->getContainerInterface()->getParameter('api.users.metadataPush.password'), + 'PHP_AUTH_USER' => $this->phpAuthUser, + 'PHP_AUTH_PW' => $this->phpAuthPassword ]); $this->disableMetadataPushApiFeatureFor($client); @@ -121,8 +132,8 @@ public function cannot_push_metadata_if_user_does_not_have_manage_role() public function cannot_push_invalid_content_to_the_metadata_push_api($invalidJsonPayload) { $client = $client = static::createClient([], [ - 'PHP_AUTH_USER' => $this->getContainerInterface()->getParameter('api.users.metadataPush.username'), - 'PHP_AUTH_PW' => $this->getContainerInterface()->getParameter('api.users.metadataPush.password'), + 'PHP_AUTH_USER' => $this->phpAuthUser, + 'PHP_AUTH_PW' => $this->phpAuthPassword ]); $client->request( @@ -149,10 +160,11 @@ public function cannot_push_invalid_content_to_the_metadata_push_api($invalidJso public function pushing_data_to_engineblock_should_succeed() { $this->clearMetadataFixtures(); + self::ensureKernelShutdown(); $client = $client = static::createClient([], [ - 'PHP_AUTH_USER' => $this->getContainerInterface()->getParameter('api.users.metadataPush.username'), - 'PHP_AUTH_PW' => $this->getContainerInterface()->getParameter('api.users.metadataPush.password'), + 'PHP_AUTH_USER' => $this->phpAuthUser, + 'PHP_AUTH_PW' => $this->phpAuthPassword ]); foreach ($this->validConnectionsData() as $step) { @@ -218,10 +230,11 @@ public function pushing_data_to_engineblock_should_succeed() public function pushing_data_with_coins_to_engineblock_should_succeed() { $this->clearMetadataFixtures(); + self::ensureKernelShutdown(); $client = $client = static::createClient([], [ - 'PHP_AUTH_USER' => $this->getContainerInterface()->getParameter('api.users.metadataPush.username'), - 'PHP_AUTH_PW' => $this->getContainerInterface()->getParameter('api.users.metadataPush.password'), + 'PHP_AUTH_USER' => $this->phpAuthUser, + 'PHP_AUTH_PW' => $this->phpAuthPassword ]); foreach ($this->validConnectionsWithCoinsData() as $connection) { @@ -272,10 +285,11 @@ public function pushing_data_with_coins_to_engineblock_should_succeed() public function pushing_manage_sfo_data_should_succeed() { $this->clearMetadataFixtures(); + self::ensureKernelShutdown(); $client = $client = static::createClient([], [ - 'PHP_AUTH_USER' => $this->getContainerInterface()->getParameter('api.users.metadataPush.username'), - 'PHP_AUTH_PW' => $this->getContainerInterface()->getParameter('api.users.metadataPush.password'), + 'PHP_AUTH_USER' => $this->phpAuthUser, + 'PHP_AUTH_PW' => $this->phpAuthPassword ]); $payload = '{"connections" : { @@ -375,7 +389,7 @@ public function invalidJsonPayloadProvider() ]; } - private function assertStatusCode($expectedStatusCode, Client $client) + private function assertStatusCode($expectedStatusCode, KernelBrowser $client) { $this->assertEquals($expectedStatusCode, $client->getResponse()->getStatusCode()); } @@ -386,7 +400,7 @@ private function getContainerInterface() : ContainerInterface return self::$kernel->getContainer(); } - private function disableMetadataPushApiFeatureFor(Client $client) + private function disableMetadataPushApiFeatureFor(KernelBrowser $client) { $featureToggles = new FeatureConfiguration([ 'api.metadata_push' => new Feature('api.metadata_push', false) diff --git a/tests/functional/OpenConext/EngineBlockBundle/Controller/Api/ConsentControllerTest.php b/tests/functional/OpenConext/EngineBlockBundle/Controller/Api/ConsentControllerTest.php index 31e26cccda..8ecec7e759 100644 --- a/tests/functional/OpenConext/EngineBlockBundle/Controller/Api/ConsentControllerTest.php +++ b/tests/functional/OpenConext/EngineBlockBundle/Controller/Api/ConsentControllerTest.php @@ -27,15 +27,26 @@ use OpenConext\EngineBlockBundle\Configuration\FeatureConfiguration; use OpenConext\Value\Saml\NameIdFormat; use PDOStatement; -use Symfony\Bundle\FrameworkBundle\Client; +use Symfony\Bundle\FrameworkBundle\KernelBrowser; use Symfony\Bundle\FrameworkBundle\Test\WebTestCase; use Symfony\Component\DependencyInjection\ContainerInterface; use Symfony\Component\HttpFoundation\Response; use function json_decode; use function json_encode; -final class ConsentControllerTest extends WebTestCase +class ConsentControllerTest extends WebTestCase { + private $phpAuthUser; + private $phpAuthPassword; + + public function setUp(): void + { + self::bootKernel(); + $this->phpAuthUser = static::getContainer()->getParameter('api.users.profile.username'); + $this->phpAuthPassword = static::getContainer()->getParameter('api.users.profile.password'); + self::ensureKernelShutdown(); + } + public function __construct($name = null, array $data = [], $dataName = '') { $this->clearConsentFixtures(); @@ -64,10 +75,12 @@ public function authentication_is_required_for_accessing_the_consent_api() $unauthenticatedClient = static::createClient(); $unauthenticatedClient->request('GET', 'https://engine-api.vm.openconext.org/consent/' . $userId); $this->assertStatusCode(Response::HTTP_UNAUTHORIZED, $unauthenticatedClient); + self::ensureKernelShutdown(); $unauthenticatedClient = static::createClient(); $unauthenticatedClient->request('POST', 'https://engine-api.vm.openconext.org/remove-consent'); $this->assertStatusCode(Response::HTTP_UNAUTHORIZED, $unauthenticatedClient); + self::ensureKernelShutdown(); } @@ -85,8 +98,8 @@ public function only_get_requests_are_allowed_when_accessing_the_consent_api($in $userId = 'my-name-id'; $client = $client = static::createClient([], [ - 'PHP_AUTH_USER' => $this->getContainerInterface()->getParameter('api.users.profile.username'), - 'PHP_AUTH_PW' => $this->getContainerInterface()->getParameter('api.users.profile.password'), + 'PHP_AUTH_USER' => $this->phpAuthUser, + 'PHP_AUTH_PW' => $this->phpAuthPassword ]); $client->request($invalidHttpMethod, 'https://engine-api.vm.openconext.org/consent/' . $userId); @@ -108,8 +121,8 @@ public function cannot_access_the_consent_api_if_the_feature_has_been_disabled() $userId = 'my-name-id'; $client = $client = static::createClient([], [ - 'PHP_AUTH_USER' => $this->getContainerInterface()->getParameter('api.users.profile.username'), - 'PHP_AUTH_PW' => $this->getContainerInterface()->getParameter('api.users.profile.password'), + 'PHP_AUTH_USER' => $this->phpAuthUser, + 'PHP_AUTH_PW' => $this->phpAuthPassword ]); $this->disableConsentApiFeatureFor($client); @@ -155,8 +168,8 @@ public function a_consent_listing_for_a_not_found_user_is_retrieved_as_an_empty_ $userId = 'my-name-id'; $client = $client = static::createClient([], [ - 'PHP_AUTH_USER' => $this->getContainerInterface()->getParameter('api.users.profile.username'), - 'PHP_AUTH_PW' => $this->getContainerInterface()->getParameter('api.users.profile.password'), + 'PHP_AUTH_USER' => $this->phpAuthUser, + 'PHP_AUTH_PW' => $this->phpAuthPassword ]); $client->request('GET', 'https://engine-api.vm.openconext.org/consent/' . $userId); @@ -209,8 +222,8 @@ public function a_consent_listing_for_a_given_user_is_retrieved_from_the_consent ]; $client = static::createClient([], [ - 'PHP_AUTH_USER' => $this->getContainerInterface()->getParameter('api.users.profile.username'), - 'PHP_AUTH_PW' => $this->getContainerInterface()->getParameter('api.users.profile.password'), + 'PHP_AUTH_USER' => $this->phpAuthUser, + 'PHP_AUTH_PW' => $this->phpAuthPassword ]); $this->addServiceProviderFixture($serviceProvider); @@ -292,8 +305,8 @@ public function consent_is_soft_deleted_from_the_consent_api() ]; $client = static::createClient([], [ - 'PHP_AUTH_USER' => $this->getContainerInterface()->getParameter('api.users.profile.username'), - 'PHP_AUTH_PW' => $this->getContainerInterface()->getParameter('api.users.profile.password'), + 'PHP_AUTH_USER' => $this->phpAuthUser, + 'PHP_AUTH_PW' => $this->phpAuthPassword ]); $this->addServiceProviderFixture($serviceProvider); @@ -351,8 +364,8 @@ public function consent_is_soft_deleted_from_the_consent_api_multiple_soft_delet ]; $client = static::createClient([], [ - 'PHP_AUTH_USER' => $this->getContainerInterface()->getParameter('api.users.profile.username'), - 'PHP_AUTH_PW' => $this->getContainerInterface()->getParameter('api.users.profile.password'), + 'PHP_AUTH_USER' => $this->phpAuthUser, + 'PHP_AUTH_PW' => $this->phpAuthPassword ]); $this->addServiceProviderFixture($serviceProvider); @@ -390,8 +403,8 @@ public function cannot_access_the_remove_consent_api_if_the_feature_has_been_dis $collabPersonId = 'urn:collab:person:test'; $client = static::createClient([], [ - 'PHP_AUTH_USER' => $this->getContainerInterface()->getParameter('api.users.deprovision.username'), - 'PHP_AUTH_PW' => $this->getContainerInterface()->getParameter('api.users.deprovision.password'), + 'PHP_AUTH_USER' => $this->phpAuthUser, + 'PHP_AUTH_PW' => $this->phpAuthPassword ]); $this->disableRemoveConsentApiFeatureFor($client); @@ -404,9 +417,9 @@ public function cannot_access_the_remove_consent_api_if_the_feature_has_been_dis } /** - * @param Client $client + * @param KernelBrowser $client */ - private function disableRemoveConsentApiFeatureFor(Client $client) + private function disableRemoveConsentApiFeatureFor(KernelBrowser $client) { $featureToggles = new FeatureConfiguration([ 'api.consent_remove' => new Feature('api.consent_remove', false), @@ -444,8 +457,8 @@ public function cannot_access_the_remove_consent_api_if_user_does_not_have_profi public function no_consent_is_removed_if_request_parameters_are_missing_or_incorrect() { $client = static::createClient([], [ - 'PHP_AUTH_USER' => $this->getContainerInterface()->getParameter('api.users.profile.username'), - 'PHP_AUTH_PW' => $this->getContainerInterface()->getParameter('api.users.profile.password'), + 'PHP_AUTH_USER' => $this->phpAuthUser, + 'PHP_AUTH_PW' => $this->phpAuthPassword ]); $data = json_encode(['userId' => 'urn:collab:person:test', 'serviceProviderId' => 'https://example.com/metadata']); @@ -463,8 +476,8 @@ public function no_consent_is_removed_if_request_parameters_are_missing_or_incor public function no_consent_is_removed_if_collab_person_id_is_unknown() { $client = static::createClient([], [ - 'PHP_AUTH_USER' => $this->getContainerInterface()->getParameter('api.users.profile.username'), - 'PHP_AUTH_PW' => $this->getContainerInterface()->getParameter('api.users.profile.password'), + 'PHP_AUTH_USER' => $this->phpAuthUser, + 'PHP_AUTH_PW' => $this->phpAuthPassword ]); $data = json_encode(['collabPersonId' => 'urn:collab:person:test', 'serviceProviderEntityId' => 'https://example.com/metadata']); @@ -489,7 +502,7 @@ public function invalidHttpMethodProvider() ]; } - private function assertStatusCode($expectedStatusCode, Client $client) + private function assertStatusCode($expectedStatusCode, KernelBrowser $client) { $this->assertEquals($expectedStatusCode, $client->getResponse()->getStatusCode()); } @@ -500,7 +513,7 @@ private function getContainerInterface() : ContainerInterface return self::$kernel->getContainer(); } - private function disableConsentApiFeatureFor(Client $client) + private function disableConsentApiFeatureFor(KernelBrowser $client) { $featureToggles = new FeatureConfiguration([ 'api.consent_listing' => new Feature('api.consent_listing', false), @@ -510,7 +523,7 @@ private function disableConsentApiFeatureFor(Client $client) $container->set('engineblock.features', $featureToggles); } - private function disableEngineConsentFeatureFor(Client $client) + private function disableEngineConsentFeatureFor(KernelBrowser $client) { $featureToggles = new FeatureConfiguration([ 'eb.feature_enable_consent' => new Feature('eb.feature_enable_consent', false) @@ -530,8 +543,8 @@ public function cannot_access_the_consent_post_api_if_the_engineblock_consent_fe $collabPersonId = 'urn:collab:person:test'; $client = static::createClient([], [ - 'PHP_AUTH_USER' => $this->getContainerInterface()->getParameter('api.users.deprovision.username'), - 'PHP_AUTH_PW' => $this->getContainerInterface()->getParameter('api.users.deprovision.password'), + 'PHP_AUTH_USER' => $this->phpAuthUser, + 'PHP_AUTH_PW' => $this->phpAuthPassword ]); $this->disableEngineConsentFeatureFor($client); @@ -555,8 +568,8 @@ public function cannot_access_the_consent_get_api_if_the_engineblock_consent_fea $userId = 'my-name-id'; $client = $client = static::createClient([], [ - 'PHP_AUTH_USER' => $this->getContainerInterface()->getParameter('api.users.profile.username'), - 'PHP_AUTH_PW' => $this->getContainerInterface()->getParameter('api.users.profile.password'), + 'PHP_AUTH_USER' => $this->phpAuthUser, + 'PHP_AUTH_PW' => $this->phpAuthPassword ]); $this->disableEngineConsentFeatureFor($client); @@ -613,7 +626,7 @@ private function findConsentByUserIdAndSPEntityId(string $collabPersonId, string private function addServiceProviderFixture(ServiceProvider $serviceProvider) { - $em = $this->getContainerInterface()->get('doctrine')->getEntityManager(); + $em = $this->getContainerInterface()->get('doctrine')->getManager(); $em->persist($serviceProvider); $em->flush(); } @@ -651,7 +664,7 @@ private function countConsentRemovals(array $dbResults): array ]; } - private function assertResponseIsJson(Client $client) + private function assertResponseIsJson(KernelBrowser $client) { $isContentTypeJson = $client->getResponse()->headers->contains('Content-Type', 'application/json'); $this->assertTrue($isContentTypeJson, 'Response should have Content-Type: application/json header'); diff --git a/tests/functional/OpenConext/EngineBlockBundle/Controller/Api/DeprovisionControllerTest.php b/tests/functional/OpenConext/EngineBlockBundle/Controller/Api/DeprovisionControllerTest.php index d4557dbfde..71280ab2d5 100644 --- a/tests/functional/OpenConext/EngineBlockBundle/Controller/Api/DeprovisionControllerTest.php +++ b/tests/functional/OpenConext/EngineBlockBundle/Controller/Api/DeprovisionControllerTest.php @@ -21,18 +21,25 @@ use DateTime; use OpenConext\EngineBlockBundle\Configuration\Feature; use OpenConext\EngineBlockBundle\Configuration\FeatureConfiguration; -use Symfony\Bundle\FrameworkBundle\Client; +use Symfony\Bundle\FrameworkBundle\KernelBrowser; use Symfony\Bundle\FrameworkBundle\Test\WebTestCase; use Symfony\Component\DependencyInjection\ContainerInterface; use Symfony\Component\HttpFoundation\Response; use function json_decode; use function trim; -final class DeprovisionControllerTest extends WebTestCase +class DeprovisionControllerTest extends WebTestCase { + private $phpAuthUser; + private $phpAuthPassword; + public function setUp(): void { $this->clearFixtures(); + self::bootKernel(); + $this->phpAuthUser = static::getContainer()->getParameter('api.users.deprovision.username'); + $this->phpAuthPassword = static::getContainer()->getParameter('api.users.deprovision.password'); + self::ensureKernelShutdown(); } /** @@ -47,18 +54,22 @@ public function authentication_is_required_for_accessing_the_deprovision_api() $unauthenticatedClient = static::createClient(); $unauthenticatedClient->request('GET', 'https://engine-api.vm.openconext.org/deprovision/' . $collabPersonId); $this->assertStatusCode(Response::HTTP_UNAUTHORIZED, $unauthenticatedClient); + self::ensureKernelShutdown(); $unauthenticatedClient = static::createClient(); $unauthenticatedClient->request('DELETE', 'https://engine-api.vm.openconext.org/deprovision/' . $collabPersonId); $this->assertStatusCode(Response::HTTP_UNAUTHORIZED, $unauthenticatedClient); + self::ensureKernelShutdown(); $unauthenticatedClient = static::createClient(); $unauthenticatedClient->request('DELETE', 'https://engine-api.vm.openconext.org/deprovision/' . $collabPersonId . '/dry-run'); $this->assertStatusCode(Response::HTTP_UNAUTHORIZED, $unauthenticatedClient); + self::ensureKernelShutdown(); $unauthenticatedClient = static::createClient(); $unauthenticatedClient->request('DELETE', 'https://engine-api.vm.openconext.org/remove-consent'); $this->assertStatusCode(Response::HTTP_UNAUTHORIZED, $unauthenticatedClient); + self::ensureKernelShutdown(); } /** @@ -71,8 +82,8 @@ public function only_get_or_delete_requests_are_allowed_when_accessing_the_depro $collabPersonId = 'urn:collab:person:test'; $client = static::createClient([], [ - 'PHP_AUTH_USER' => $this->getContainer()->getParameter('api.users.deprovision.username'), - 'PHP_AUTH_PW' => $this->getContainer()->getParameter('api.users.deprovision.password'), + 'PHP_AUTH_USER' => $this->phpAuthUser, + 'PHP_AUTH_PW' => $this->phpAuthPassword ]); $client->request('PUT', 'https://engine-api.vm.openconext.org/deprovision/' . $collabPersonId); @@ -98,8 +109,8 @@ public function cannot_access_the_deprovision_api_if_the_feature_has_been_disabl $collabPersonId = 'urn:collab:person:test'; $client = static::createClient([], [ - 'PHP_AUTH_USER' => $this->getContainer()->getParameter('api.users.deprovision.username'), - 'PHP_AUTH_PW' => $this->getContainer()->getParameter('api.users.deprovision.password'), + 'PHP_AUTH_USER' => $this->phpAuthUser, + 'PHP_AUTH_PW' => $this->phpAuthPassword ]); $this->disableDeprovisionApiFeatureFor($client); @@ -140,8 +151,8 @@ public function cannot_access_the_deprovision_api_if_user_does_not_have_deprovis public function no_user_data_is_returned_if_collab_person_id_is_unknown($method, $path) { $client = static::createClient([], [ - 'PHP_AUTH_USER' => $this->getContainer()->getParameter('api.users.deprovision.username'), - 'PHP_AUTH_PW' => $this->getContainer()->getParameter('api.users.deprovision.password'), + 'PHP_AUTH_USER' => $this->phpAuthUser, + 'PHP_AUTH_PW' => $this->phpAuthPassword ]); $client->request($method, 'https://engine-api.vm.openconext.org/' . trim($path, '/')); @@ -196,8 +207,8 @@ public function all_user_data_for_collab_person_id_is_retrieved_and_deleted($met $consentDate = '2017-04-18 13:37:00'; $client = static::createClient([], [ - 'PHP_AUTH_USER' => $this->getContainer()->getParameter('api.users.deprovision.username'), - 'PHP_AUTH_PW' => $this->getContainer()->getParameter('api.users.deprovision.password'), + 'PHP_AUTH_USER' => $this->phpAuthUser, + 'PHP_AUTH_PW' => $this->phpAuthPassword ]); $this->addServiceProviderUuidFixture($spUuid1, $spEntityId1); @@ -296,21 +307,21 @@ public function provideDeprovisionEndpoints() ]; } - private function assertStatusCode($expectedStatusCode, Client $client) + private function assertStatusCode($expectedStatusCode, KernelBrowser $client) { $this->assertEquals($expectedStatusCode, $client->getResponse()->getStatusCode()); } - private function getContainer() : ContainerInterface + private function getContainerInterface() : ContainerInterface { self::bootKernel(); return self::$kernel->getContainer(); } /** - * @param Client $client + * @param KernelBrowser $client */ - private function disableDeprovisionApiFeatureFor(Client $client) + private function disableDeprovisionApiFeatureFor(KernelBrowser $client) { $featureToggles = new FeatureConfiguration([ 'api.deprovision' => new Feature('api.deprovision', false) @@ -324,7 +335,7 @@ private function disableDeprovisionApiFeatureFor(Client $client) */ private function addUserFixture($userId, $uuid) { - $queryBuilder = $this->getContainer()->get('doctrine')->getConnection()->createQueryBuilder(); + $queryBuilder = $this->getContainerInterface()->get('doctrine')->getConnection()->createQueryBuilder(); $queryBuilder ->insert('user') ->values([ @@ -344,7 +355,7 @@ private function addUserFixture($userId, $uuid) */ private function addServiceProviderUuidFixture($spUuid, $spEntityId) { - $queryBuilder = $this->getContainer()->get('doctrine')->getConnection()->createQueryBuilder(); + $queryBuilder = $this->getContainerInterface()->get('doctrine')->getConnection()->createQueryBuilder(); $queryBuilder ->insert('service_provider_uuid') ->values([ @@ -365,7 +376,7 @@ private function addServiceProviderUuidFixture($spUuid, $spEntityId) */ private function addSamlPersistentIdFixture($userUuid, $spUuid, $persistentId) { - $queryBuilder = $this->getContainer()->get('doctrine')->getConnection()->createQueryBuilder(); + $queryBuilder = $this->getContainerInterface()->get('doctrine')->getConnection()->createQueryBuilder(); $queryBuilder ->insert('saml_persistent_id') ->values([ @@ -390,7 +401,7 @@ private function addSamlPersistentIdFixture($userUuid, $spUuid, $persistentId) */ private function addConsentFixture($userId, $serviceId, $attributeHash, $consentType, $consentDate) { - $queryBuilder = $this->getContainer()->get('doctrine')->getConnection()->createQueryBuilder(); + $queryBuilder = $this->getContainerInterface()->get('doctrine')->getConnection()->createQueryBuilder(); $queryBuilder ->insert('consent') ->values([ @@ -413,7 +424,7 @@ private function addConsentFixture($userId, $serviceId, $attributeHash, $consent private function clearFixtures() { - $queryBuilder = $this->getContainer()->get('doctrine')->getConnection()->createQueryBuilder(); + $queryBuilder = $this->getContainerInterface()->get('doctrine')->getConnection()->createQueryBuilder(); $queryBuilder ->delete('service_provider_uuid') ->execute(); @@ -428,7 +439,7 @@ private function clearFixtures() ->execute(); } - private function assertResponseIsJson(Client $client) + private function assertResponseIsJson(KernelBrowser $client) { $isContentTypeJson = $client->getResponse()->headers->contains('Content-Type', 'application/json'); $this->assertTrue($isContentTypeJson, 'Response should have Content-Type: application/json header'); diff --git a/tests/functional/OpenConext/EngineBlockBundle/Controller/Api/HeartbeatControllerTest.php b/tests/functional/OpenConext/EngineBlockBundle/Controller/Api/HeartbeatControllerTest.php index 3ea41b6af7..51a687e807 100644 --- a/tests/functional/OpenConext/EngineBlockBundle/Controller/Api/HeartbeatControllerTest.php +++ b/tests/functional/OpenConext/EngineBlockBundle/Controller/Api/HeartbeatControllerTest.php @@ -18,7 +18,7 @@ namespace OpenConext\EngineBlockBundle\Tests; -use Symfony\Bundle\FrameworkBundle\Client; +use Symfony\Bundle\FrameworkBundle\KernelBrowser; use Symfony\Bundle\FrameworkBundle\Test\WebTestCase; use Symfony\Component\HttpFoundation\Response; @@ -35,7 +35,7 @@ public function engineblock_has_a_heartbeat() $this->assertStatusCode(Response::HTTP_OK, $client); } - private function assertStatusCode($expectedStatusCode, Client $client) + private function assertStatusCode($expectedStatusCode, KernelBrowser $client) { $this->assertEquals($expectedStatusCode, $client->getResponse()->getStatusCode()); } diff --git a/tests/phpunit.xml b/tests/phpunit.xml index dba0abea9f..54eea5360e 100644 --- a/tests/phpunit.xml +++ b/tests/phpunit.xml @@ -30,6 +30,7 @@ + From 7d80456cc8ca226b174a7ca8795bbfe610deec96 Mon Sep 17 00:00:00 2001 From: Vincent Jong Date: Tue, 21 May 2024 15:27:49 +0200 Subject: [PATCH 20/35] Fix behat tests --- ...tEngineBlockFunctionalTestingExtension.php | 1 + .../Resources/config/services_test.yml | 45 +++++++++++++++++++ tests/behat-ci.yml | 39 +++------------- tests/behat.yml | 38 +++------------- 4 files changed, 59 insertions(+), 64 deletions(-) create mode 100644 src/OpenConext/EngineBlockFunctionalTestingBundle/Resources/config/services_test.yml diff --git a/src/OpenConext/EngineBlockFunctionalTestingBundle/DependencyInjection/OpenConextEngineBlockFunctionalTestingExtension.php b/src/OpenConext/EngineBlockFunctionalTestingBundle/DependencyInjection/OpenConextEngineBlockFunctionalTestingExtension.php index 0d8504acd3..71502d876f 100644 --- a/src/OpenConext/EngineBlockFunctionalTestingBundle/DependencyInjection/OpenConextEngineBlockFunctionalTestingExtension.php +++ b/src/OpenConext/EngineBlockFunctionalTestingBundle/DependencyInjection/OpenConextEngineBlockFunctionalTestingExtension.php @@ -29,6 +29,7 @@ public function load(array $configs, ContainerBuilder $container) { $loader = new Loader\YamlFileLoader($container, new FileLocator(__DIR__.'/../Resources/config')); $loader->load('services.yml'); + $loader->load('services_test.yml'); $loader->load('mocks.yml'); $loader->load('controllers.yml'); } diff --git a/src/OpenConext/EngineBlockFunctionalTestingBundle/Resources/config/services_test.yml b/src/OpenConext/EngineBlockFunctionalTestingBundle/Resources/config/services_test.yml new file mode 100644 index 0000000000..1546df8314 --- /dev/null +++ b/src/OpenConext/EngineBlockFunctionalTestingBundle/Resources/config/services_test.yml @@ -0,0 +1,45 @@ +services: + OpenConext\EngineBlockFunctionalTestingBundle\Features\Context\EngineBlockContext: + public: true + arguments: + $serviceRegistry: '@engineblock.functional_testing.fixture.service_registry' + $engineBlock: '@engineblock.functional_testing.service.engine_block' + $mockSpRegistry: '@engineblock.mock_entities.sp_registry' + $mockIdpRegistry: '@engineblock.mock_entities.idp_registry' + $features: '@engineblock.functional_testing.fixture.features' + $pdpClient: '@engineblock.functional_testing.fixture.pdp_client' + $authenticationLoopGuard: '@engineblock.functional_testing.fixture.authentication_loop_guard' + $attributeAggregationClient: '@engineblock.functional_testing.fixture.attribute_aggregation_client' + OpenConext\EngineBlockFunctionalTestingBundle\Features\Context\MockIdpContext: + public: true + arguments: + $serviceRegistryFixture: '@engineblock.functional_testing.fixture.service_registry' + $engineBlock: '@engineblock.functional_testing.service.engine_block' + $idpFactory: '@engineblock.mock_entities.idp_factory' + $mockIdpRegistry: '@engineblock.mock_entities.idp_registry' + $mockSpRegistry: '@engineblock.mock_entities.sp_registry' + OpenConext\EngineBlockFunctionalTestingBundle\Features\Context\MockSpContext: + public: true + arguments: + $serviceRegistryFixture: '@engineblock.functional_testing.fixture.service_registry' + $engineBlock: '@engineblock.functional_testing.service.engine_block' + $mockSpFactory: '@engineblock.mock_entities.sp_factory' + $mockSpRegistry: '@engineblock.mock_entities.sp_registry' + $mockIdpRegistry: '@engineblock.mock_entities.idp_registry' + OpenConext\EngineBlockFunctionalTestingBundle\Features\Context\StepupContext: + public: true + arguments: + $mockSpRegistry: '@engineblock.mock_entities.sp_registry' + $mockIdpRegistry: '@engineblock.mock_entities.idp_registry' + $gatewayMockConfiguration: '@engineblock.functional_testing.fixture.stepup_gateway_mock' + $serviceRegistryFixture: '@engineblock.functional_testing.fixture.service_registry' + OpenConext\EngineBlockFunctionalTestingBundle\Features\Context\MfaEntitiesContext: + public: true + arguments: + $mockSpRegistry: '@engineblock.mock_entities.sp_registry' + $mockIdpRegistry: '@engineblock.mock_entities.idp_registry' + $serviceRegistryFixture: '@engineblock.functional_testing.fixture.service_registry' + OpenConext\EngineBlockFunctionalTestingBundle\Features\Context\TranslationContext: + public: true + arguments: + $mockTranslator: '@engineblock.functional_testing.mock.translator' \ No newline at end of file diff --git a/tests/behat-ci.yml b/tests/behat-ci.yml index 85196d4c7f..017bb2885d 100644 --- a/tests/behat-ci.yml +++ b/tests/behat-ci.yml @@ -11,38 +11,12 @@ default: filters: tags: "~@WIP&&~@SKIP&&~@selenium" contexts: &defaultContexts - - OpenConext\EngineBlockFunctionalTestingBundle\Features\Context\EngineBlockContext: - serviceRegistry: '@engineblock.functional_testing.fixture.service_registry' - engineBlock: '@engineblock.functional_testing.service.engine_block' - mockSpRegistry: '@engineblock.mock_entities.sp_registry' - mockIdpRegistry: '@engineblock.mock_entities.idp_registry' - features: '@engineblock.functional_testing.fixture.features' - pdpClient: '@engineblock.functional_testing.fixture.pdp_client' - authenticationLoopGuard: '@engineblock.functional_testing.fixture.authentication_loop_guard' - attributeAggregationClient: '@engineblock.functional_testing.fixture.attribute_aggregation_client' - - OpenConext\EngineBlockFunctionalTestingBundle\Features\Context\MockIdpContext: - serviceRegistryFixture: '@engineblock.functional_testing.fixture.service_registry' - engineBlock: '@engineblock.functional_testing.service.engine_block' - idpFactory: '@engineblock.mock_entities.idp_factory' - mockIdpRegistry: '@engineblock.mock_entities.idp_registry' - mockSpRegistry: '@engineblock.mock_entities.sp_registry' - - OpenConext\EngineBlockFunctionalTestingBundle\Features\Context\MockSpContext: - serviceRegistryFixture: '@engineblock.functional_testing.fixture.service_registry' - engineBlock: '@engineblock.functional_testing.service.engine_block' - mockSpFactory: '@engineblock.mock_entities.sp_factory' - mockSpRegistry: '@engineblock.mock_entities.sp_registry' - mockIdpRegistry: '@engineblock.mock_entities.idp_registry' - - OpenConext\EngineBlockFunctionalTestingBundle\Features\Context\StepupContext: - mockSpRegistry: '@engineblock.mock_entities.sp_registry' - mockIdpRegistry: '@engineblock.mock_entities.idp_registry' - gatewayMockConfiguration: '@engineblock.functional_testing.fixture.stepup_gateway_mock' - serviceRegistryFixture: '@engineblock.functional_testing.fixture.service_registry' - - OpenConext\EngineBlockFunctionalTestingBundle\Features\Context\MfaEntitiesContext: - mockSpRegistry: '@engineblock.mock_entities.sp_registry' - mockIdpRegistry: '@engineblock.mock_entities.idp_registry' - serviceRegistryFixture: '@engineblock.functional_testing.fixture.service_registry' - - OpenConext\EngineBlockFunctionalTestingBundle\Features\Context\TranslationContext: - mockTranslator: '@engineblock.functional_testing.mock.translator' + - OpenConext\EngineBlockFunctionalTestingBundle\Features\Context\EngineBlockContext + - OpenConext\EngineBlockFunctionalTestingBundle\Features\Context\MockIdpContext + - OpenConext\EngineBlockFunctionalTestingBundle\Features\Context\MockSpContext + - OpenConext\EngineBlockFunctionalTestingBundle\Features\Context\StepupContext + - OpenConext\EngineBlockFunctionalTestingBundle\Features\Context\MfaEntitiesContext + - OpenConext\EngineBlockFunctionalTestingBundle\Features\Context\TranslationContext - OpenConext\EngineBlockFunctionalTestingBundle\Features\Context\MinkContext selenium: mink_session: chrome @@ -84,3 +58,4 @@ default: kernel: environment: ci debug: true + bootstrap: tests/bootstrap.php diff --git a/tests/behat.yml b/tests/behat.yml index 2a6e20b309..75e07b8391 100644 --- a/tests/behat.yml +++ b/tests/behat.yml @@ -11,38 +11,12 @@ default: filters: tags: "~@WIP&&~@SKIP&&~@selenium" contexts: &defaultContexts - - OpenConext\EngineBlockFunctionalTestingBundle\Features\Context\EngineBlockContext: - serviceRegistry: '@engineblock.functional_testing.fixture.service_registry' - engineBlock: '@engineblock.functional_testing.service.engine_block' - mockSpRegistry: '@engineblock.mock_entities.sp_registry' - mockIdpRegistry: '@engineblock.mock_entities.idp_registry' - features: '@engineblock.functional_testing.fixture.features' - pdpClient: '@engineblock.functional_testing.fixture.pdp_client' - authenticationLoopGuard: '@engineblock.functional_testing.fixture.authentication_loop_guard' - attributeAggregationClient: '@engineblock.functional_testing.fixture.attribute_aggregation_client' - - OpenConext\EngineBlockFunctionalTestingBundle\Features\Context\MockIdpContext: - serviceRegistryFixture: '@engineblock.functional_testing.fixture.service_registry' - engineBlock: '@engineblock.functional_testing.service.engine_block' - idpFactory: '@engineblock.mock_entities.idp_factory' - mockIdpRegistry: '@engineblock.mock_entities.idp_registry' - mockSpRegistry: '@engineblock.mock_entities.sp_registry' - - OpenConext\EngineBlockFunctionalTestingBundle\Features\Context\MockSpContext: - serviceRegistryFixture: '@engineblock.functional_testing.fixture.service_registry' - engineBlock: '@engineblock.functional_testing.service.engine_block' - mockSpFactory: '@engineblock.mock_entities.sp_factory' - mockSpRegistry: '@engineblock.mock_entities.sp_registry' - mockIdpRegistry: '@engineblock.mock_entities.idp_registry' - - OpenConext\EngineBlockFunctionalTestingBundle\Features\Context\StepupContext: - mockSpRegistry: '@engineblock.mock_entities.sp_registry' - mockIdpRegistry: '@engineblock.mock_entities.idp_registry' - gatewayMockConfiguration: '@engineblock.functional_testing.fixture.stepup_gateway_mock' - serviceRegistryFixture: '@engineblock.functional_testing.fixture.service_registry' - - OpenConext\EngineBlockFunctionalTestingBundle\Features\Context\MfaEntitiesContext: - mockSpRegistry: '@engineblock.mock_entities.sp_registry' - mockIdpRegistry: '@engineblock.mock_entities.idp_registry' - serviceRegistryFixture: '@engineblock.functional_testing.fixture.service_registry' - - OpenConext\EngineBlockFunctionalTestingBundle\Features\Context\TranslationContext: - mockTranslator: '@engineblock.functional_testing.mock.translator' + - OpenConext\EngineBlockFunctionalTestingBundle\Features\Context\EngineBlockContext + - OpenConext\EngineBlockFunctionalTestingBundle\Features\Context\MockIdpContext + - OpenConext\EngineBlockFunctionalTestingBundle\Features\Context\MockSpContext + - OpenConext\EngineBlockFunctionalTestingBundle\Features\Context\StepupContext + - OpenConext\EngineBlockFunctionalTestingBundle\Features\Context\MfaEntitiesContext + - OpenConext\EngineBlockFunctionalTestingBundle\Features\Context\TranslationContext - OpenConext\EngineBlockFunctionalTestingBundle\Features\Context\MinkContext selenium: mink_session: chrome From 95b97eb8407edc1d8841da06298654fe8ddc6f8f Mon Sep 17 00:00:00 2001 From: Vincent Jong Date: Tue, 21 May 2024 16:18:33 +0200 Subject: [PATCH 21/35] Fix behat tests --- .../Resources/config/controllers.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/OpenConext/EngineBlockFunctionalTestingBundle/Resources/config/controllers.yml b/src/OpenConext/EngineBlockFunctionalTestingBundle/Resources/config/controllers.yml index f100e9bbf3..c8991e2cfd 100644 --- a/src/OpenConext/EngineBlockFunctionalTestingBundle/Resources/config/controllers.yml +++ b/src/OpenConext/EngineBlockFunctionalTestingBundle/Resources/config/controllers.yml @@ -1,4 +1,8 @@ services: + _defaults: + autowire: true + autoconfigure: true + engineblock.functional_test.controller.identity_provider: class: OpenConext\EngineBlockFunctionalTestingBundle\Controllers\IdentityProviderController arguments: From d4d618094a07a7cd1e00d6c5289e6926f8ca9d6a Mon Sep 17 00:00:00 2001 From: Vincent Jong Date: Tue, 21 May 2024 16:31:11 +0200 Subject: [PATCH 22/35] Fix behat tests --- .../Resources/config/services.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/src/OpenConext/EngineBlockFunctionalTestingBundle/Resources/config/services.yml b/src/OpenConext/EngineBlockFunctionalTestingBundle/Resources/config/services.yml index 2e55d0b6a3..587d87c369 100644 --- a/src/OpenConext/EngineBlockFunctionalTestingBundle/Resources/config/services.yml +++ b/src/OpenConext/EngineBlockFunctionalTestingBundle/Resources/config/services.yml @@ -38,6 +38,7 @@ services: - '@engineblock.function_testing.data_store.pdp_client' engineblock.functional_testing.fixture.authentication_loop_guard: + public: true class: OpenConext\EngineBlockFunctionalTestingBundle\Fixtures\FunctionalTestingAuthenticationLoopGuard arguments: - '@engineblock.authentication.authentication_loop_guard' From 6056760edbb2d6fc8f7f582218dae7b3a2b98c13 Mon Sep 17 00:00:00 2001 From: Vincent Jong Date: Wed, 22 May 2024 10:33:53 +0200 Subject: [PATCH 23/35] Fix behat tests --- .../Resources/config/services.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/src/OpenConext/EngineBlockFunctionalTestingBundle/Resources/config/services.yml b/src/OpenConext/EngineBlockFunctionalTestingBundle/Resources/config/services.yml index 587d87c369..ef258c48b4 100644 --- a/src/OpenConext/EngineBlockFunctionalTestingBundle/Resources/config/services.yml +++ b/src/OpenConext/EngineBlockFunctionalTestingBundle/Resources/config/services.yml @@ -27,6 +27,7 @@ services: - '@engineblock.compat.doctrine.entity_manager' engineblock.functional_testing.fixture.features: + public: true class: OpenConext\EngineBlockFunctionalTestingBundle\Fixtures\FunctionalTestingFeatureConfiguration arguments: - '@engineblock.features' From 024a63f20a7ecd685867749fea91f318c69fe0cc Mon Sep 17 00:00:00 2001 From: Vincent Jong Date: Wed, 22 May 2024 10:38:41 +0200 Subject: [PATCH 24/35] Fix behat tests --- .../Resources/config/services.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/src/OpenConext/EngineBlockFunctionalTestingBundle/Resources/config/services.yml b/src/OpenConext/EngineBlockFunctionalTestingBundle/Resources/config/services.yml index ef258c48b4..97cececa96 100644 --- a/src/OpenConext/EngineBlockFunctionalTestingBundle/Resources/config/services.yml +++ b/src/OpenConext/EngineBlockFunctionalTestingBundle/Resources/config/services.yml @@ -114,6 +114,7 @@ services: - "@engineblock.functional_testing.mock.translator" engineblock.factory.service_provider_factory: + public: true class: OpenConext\EngineBlock\Metadata\Factory\Factory\ServiceProviderFactory arguments: - '@engineblock.compat.metadata.definitions' From 5e006bc58d3e17b129c2bee3b6d1835da65cceb5 Mon Sep 17 00:00:00 2001 From: Michiel Kodde Date: Thu, 11 Jul 2024 09:17:33 +0200 Subject: [PATCH 25/35] Load the session from the RequestStack The Session should not be injected as a service anymore. Rather, the request stack should be used to get the session from the current http request. In addition some unused session services have been removed from DI --- features/bootstrap/FeatureContext.php | 22 ------------------- .../Service/AuthenticationStateHelper.php | 5 +++-- .../Service/ProcessingStateHelper.php | 5 +++-- .../EngineBlockBridge/ErrorReporter.php | 5 +++-- .../Controller/DebugController.php | 5 +++-- .../Controller/ServiceProviderController.php | 7 ------ .../Controller/StepupController.php | 7 ------ .../AuthenticationStateInitializer.php | 6 ++--- .../Resources/config/bridge.yml | 2 +- .../config/controllers/authentication.yml | 4 +--- .../Resources/config/event_listeners.yml | 2 +- .../Resources/config/services.yml | 4 ++-- 12 files changed, 20 insertions(+), 54 deletions(-) delete mode 100644 features/bootstrap/FeatureContext.php diff --git a/features/bootstrap/FeatureContext.php b/features/bootstrap/FeatureContext.php deleted file mode 100644 index fcde4c1eec..0000000000 --- a/features/bootstrap/FeatureContext.php +++ /dev/null @@ -1,22 +0,0 @@ -session = $session; + $this->session = $requestStack->getSession(); } /** diff --git a/src/OpenConext/EngineBlock/Service/ProcessingStateHelper.php b/src/OpenConext/EngineBlock/Service/ProcessingStateHelper.php index 14c7d07973..9e0d31929e 100644 --- a/src/OpenConext/EngineBlock/Service/ProcessingStateHelper.php +++ b/src/OpenConext/EngineBlock/Service/ProcessingStateHelper.php @@ -23,6 +23,7 @@ use EngineBlock_Saml2_ResponseAnnotationDecorator; use OpenConext\EngineBlock\Metadata\Entity\AbstractRole; use OpenConext\EngineBlock\Service\Dto\ProcessingStateStep; +use Symfony\Component\HttpFoundation\RequestStack; use Symfony\Component\HttpFoundation\Session\SessionInterface; class ProcessingStateHelper implements ProcessingStateHelperInterface @@ -35,9 +36,9 @@ class ProcessingStateHelper implements ProcessingStateHelperInterface */ private $session; - public function __construct(SessionInterface $session) + public function __construct(RequestStack $requestStack) { - $this->session = $session; + $this->session = $requestStack->getSession(); } /** diff --git a/src/OpenConext/EngineBlockBridge/ErrorReporter.php b/src/OpenConext/EngineBlockBridge/ErrorReporter.php index 17da6ae3d3..73f949ff9c 100644 --- a/src/OpenConext/EngineBlockBridge/ErrorReporter.php +++ b/src/OpenConext/EngineBlockBridge/ErrorReporter.php @@ -24,6 +24,7 @@ use EngineBlock_Exception; use Exception; use Psr\Log\LoggerInterface; +use Symfony\Component\HttpFoundation\RequestStack; use Symfony\Component\HttpFoundation\Session\SessionInterface; class ErrorReporter @@ -44,11 +45,11 @@ class ErrorReporter public function __construct( EngineBlock_ApplicationSingleton $engineBlockApplicationSingleton, LoggerInterface $logger, - SessionInterface $session + RequestStack $requestStack ) { $this->engineBlockApplicationSingleton = $engineBlockApplicationSingleton; $this->logger = $logger; - $this->session = $session; + $this->session = $requestStack->getSession(); } /** diff --git a/src/OpenConext/EngineBlockBundle/Controller/DebugController.php b/src/OpenConext/EngineBlockBundle/Controller/DebugController.php index b7d85fd8f9..0a88ed190a 100644 --- a/src/OpenConext/EngineBlockBundle/Controller/DebugController.php +++ b/src/OpenConext/EngineBlockBundle/Controller/DebugController.php @@ -24,6 +24,7 @@ use OpenConext\Value\Saml\Entity; use OpenConext\Value\Saml\EntityId; use OpenConext\Value\Saml\EntityType; +use Symfony\Component\HttpFoundation\RequestStack; use Symfony\Component\HttpFoundation\Session\SessionInterface; class DebugController implements AuthenticationLoopThrottlingController @@ -40,10 +41,10 @@ class DebugController implements AuthenticationLoopThrottlingController public function __construct( EngineBlock_ApplicationSingleton $engineBlockApplicationSingleton, - SessionInterface $session + RequestStack $requestStack ) { $this->engineBlockApplicationSingleton = $engineBlockApplicationSingleton; - $this->session = $session; + $this->session = $requestStack->getSession(); } /** diff --git a/src/OpenConext/EngineBlockBundle/Controller/ServiceProviderController.php b/src/OpenConext/EngineBlockBundle/Controller/ServiceProviderController.php index be0702c3f9..dadade4229 100644 --- a/src/OpenConext/EngineBlockBundle/Controller/ServiceProviderController.php +++ b/src/OpenConext/EngineBlockBundle/Controller/ServiceProviderController.php @@ -32,11 +32,6 @@ class ServiceProviderController implements AuthenticationLoopThrottlingControlle */ private $engineBlockApplicationSingleton; - /** - * @var Session - */ - private $session; - /** * @var RequestValidator */ @@ -54,13 +49,11 @@ class ServiceProviderController implements AuthenticationLoopThrottlingControlle public function __construct( EngineBlock_ApplicationSingleton $engineBlockApplicationSingleton, - Session $session, RequestValidator $requestValidator, RequestValidator $bindingValidator, RequestValidator $samlResponseValidator ) { $this->engineBlockApplicationSingleton = $engineBlockApplicationSingleton; - $this->session = $session; $this->requestValidator = $requestValidator; $this->bindingValidator = $bindingValidator; $this->responseValidator = $samlResponseValidator; diff --git a/src/OpenConext/EngineBlockBundle/Controller/StepupController.php b/src/OpenConext/EngineBlockBundle/Controller/StepupController.php index bf44f8a7a4..8e12f6c67c 100644 --- a/src/OpenConext/EngineBlockBundle/Controller/StepupController.php +++ b/src/OpenConext/EngineBlockBundle/Controller/StepupController.php @@ -32,11 +32,6 @@ class StepupController implements AuthenticationLoopThrottlingController */ private $engineBlockApplicationSingleton; - /** - * @var Session - */ - private $session; - /** * @var RequestValidator */ @@ -54,13 +49,11 @@ class StepupController implements AuthenticationLoopThrottlingController public function __construct( EngineBlock_ApplicationSingleton $engineBlockApplicationSingleton, - Session $session, RequestValidator $requestValidator, RequestValidator $bindingValidator, RequestValidator $samlResponseValidator ) { $this->engineBlockApplicationSingleton = $engineBlockApplicationSingleton; - $this->session = $session; $this->requestValidator = $requestValidator; $this->bindingValidator = $bindingValidator; $this->responseValidator = $samlResponseValidator; diff --git a/src/OpenConext/EngineBlockBundle/EventListener/AuthenticationStateInitializer.php b/src/OpenConext/EngineBlockBundle/EventListener/AuthenticationStateInitializer.php index 06785d7eb5..873398dded 100644 --- a/src/OpenConext/EngineBlockBundle/EventListener/AuthenticationStateInitializer.php +++ b/src/OpenConext/EngineBlockBundle/EventListener/AuthenticationStateInitializer.php @@ -20,7 +20,7 @@ use EngineBlock_ApplicationSingleton; use OpenConext\EngineBlockBundle\Authentication\AuthenticationState; -use OpenConext\EngineBlockBundle\Controller\AuthenticationLoopThrottlingController; +use Symfony\Component\HttpFoundation\RequestStack; use Symfony\Component\HttpFoundation\Session\Session; use Symfony\Component\HttpKernel\Event\ControllerEvent; use Symfony\Component\HttpKernel\Event\FilterControllerEvent; @@ -32,9 +32,9 @@ final class AuthenticationStateInitializer */ private $session; - public function __construct(Session $session) + public function __construct(RequestStack $requestStack) { - $this->session = $session; + $this->session = $requestStack->getSession(); } public function onKernelController(ControllerEvent $event) diff --git a/src/OpenConext/EngineBlockBundle/Resources/config/bridge.yml b/src/OpenConext/EngineBlockBundle/Resources/config/bridge.yml index c8684a24c8..46546c0c74 100644 --- a/src/OpenConext/EngineBlockBundle/Resources/config/bridge.yml +++ b/src/OpenConext/EngineBlockBundle/Resources/config/bridge.yml @@ -7,7 +7,7 @@ services: arguments: - "@engineblock.compat.application" - "@logger" - - "@session" + - "@request_stack" engineblock.bridge.authentication_logger_adapter: class: OpenConext\EngineBlockBridge\Logger\AuthenticationLoggerAdapter diff --git a/src/OpenConext/EngineBlockBundle/Resources/config/controllers/authentication.yml b/src/OpenConext/EngineBlockBundle/Resources/config/controllers/authentication.yml index 490a399948..79606555fc 100644 --- a/src/OpenConext/EngineBlockBundle/Resources/config/controllers/authentication.yml +++ b/src/OpenConext/EngineBlockBundle/Resources/config/controllers/authentication.yml @@ -7,7 +7,6 @@ services: class: OpenConext\EngineBlockBundle\Controller\ServiceProviderController arguments: - "@engineblock.compat.application" - - "@session" - "@engineblock.validator.acs_request_validator" - "@engineblock.validator.saml_binding_validator" - "@engineblock.validator.saml_response_validator" @@ -52,7 +51,7 @@ services: class: OpenConext\EngineBlockBundle\Controller\DebugController arguments: - "@engineblock.compat.application" - - "@session" + - "@request_stack" engineblock.controller.authentication.wayf: class: OpenConext\EngineBlockBundle\Controller\WayfController @@ -70,7 +69,6 @@ services: class: OpenConext\EngineBlockBundle\Controller\StepupController arguments: - "@engineblock.compat.application" - - "@session" - "@engineblock.validator.acs_request_validator" - "@engineblock.validator.saml_binding_validator" - "@engineblock.validator.saml_response_validator" diff --git a/src/OpenConext/EngineBlockBundle/Resources/config/event_listeners.yml b/src/OpenConext/EngineBlockBundle/Resources/config/event_listeners.yml index 3fa42e328e..c6ae8ff9b6 100644 --- a/src/OpenConext/EngineBlockBundle/Resources/config/event_listeners.yml +++ b/src/OpenConext/EngineBlockBundle/Resources/config/event_listeners.yml @@ -65,7 +65,7 @@ services: engineblock.listener.authentication_state_initializer: class: OpenConext\EngineBlockBundle\EventListener\AuthenticationStateInitializer arguments: - - "@session" + - "@request_stack" tags: - { name: kernel.event_listener, event: kernel.controller, method: onKernelController, priority: 10 } diff --git a/src/OpenConext/EngineBlockBundle/Resources/config/services.yml b/src/OpenConext/EngineBlockBundle/Resources/config/services.yml index 4e84879d6f..ce32e16f71 100644 --- a/src/OpenConext/EngineBlockBundle/Resources/config/services.yml +++ b/src/OpenConext/EngineBlockBundle/Resources/config/services.yml @@ -61,12 +61,12 @@ services: engineblock.service.authentication_state_helper: class: OpenConext\EngineBlock\Service\AuthenticationStateHelper arguments: - - "@session" + - "@request_stack" engineblock.service.processing_state_helper: class: OpenConext\EngineBlock\Service\ProcessingStateHelper arguments: - - "@session" + - "@request_stack" engineblock.service.stepup.gateway_callout_helper: class: OpenConext\EngineBlock\Stepup\StepupGatewayCallOutHelper From 859daf561c25b36f8f649d06f16c1c2c17cf6272 Mon Sep 17 00:00:00 2001 From: Michiel Kodde Date: Thu, 11 Jul 2024 10:17:36 +0200 Subject: [PATCH 26/35] WIP Todo: [] - Use the symfony driver (browserkit) as default driver to run the tests on. Now we seem to use Selenium2 with Chrome by default. And that causes some of the tests to fail. Wayf tetss for example are unable to click certain links because they are not on the page? [] - Sessions are not stable yet. The authentication state is lost regularly. Seems to relate to the loop guard section that is commented out in: src/OpenConext/EngineBlockBundle/EventListener/AuthenticationStateInitializer.php [] - I started running the different features, and fixed some issues here and there. But I suggest to use the failing tests to find/fix the remaining issues present in the EB upgrade --- app/config/config_ci.yml | 8 +++++++- .../Features/AcsTinkering.feature | 1 + .../Features/Context/EngineBlockContext.php | 3 --- .../Features/Context/MinkContext.php | 14 +++++++++++++- .../Resources/config/services.yml | 1 + .../Resources/config/services_test.yml | 2 +- tests/behat-ci.yml | 7 ++++++- tests/behat.yml | 4 +++- 8 files changed, 32 insertions(+), 8 deletions(-) diff --git a/app/config/config_ci.yml b/app/config/config_ci.yml index 1295836479..dd2160b664 100644 --- a/app/config/config_ci.yml +++ b/app/config/config_ci.yml @@ -1,7 +1,13 @@ imports: - { resource: functional_testing.yml } - { resource: config_test.yml } - +framework: + cache: + pools: + doctrine.result_cache_pool: + adapter: cache.adapter.filesystem + doctrine.system_cache_pool: + adapter: cache.adapter.filesystem doctrine: dbal: default_connection: engineblock_test diff --git a/src/OpenConext/EngineBlockFunctionalTestingBundle/Features/AcsTinkering.feature b/src/OpenConext/EngineBlockFunctionalTestingBundle/Features/AcsTinkering.feature index 3e12d9df4a..136e14d138 100644 --- a/src/OpenConext/EngineBlockFunctionalTestingBundle/Features/AcsTinkering.feature +++ b/src/OpenConext/EngineBlockFunctionalTestingBundle/Features/AcsTinkering.feature @@ -15,6 +15,7 @@ Feature: Scenario: The Malicious SP AuthnRequest is denied by EngineBlock Given I log in at "Malicious SP" + And printDebugDie Then I should see "Error - Unsupported URI scheme in ACS location" Scenario: The Malconfigured SP AuthnRequest is denied by EngineBlock diff --git a/src/OpenConext/EngineBlockFunctionalTestingBundle/Features/Context/EngineBlockContext.php b/src/OpenConext/EngineBlockFunctionalTestingBundle/Features/Context/EngineBlockContext.php index ada66f7efc..d85e472844 100644 --- a/src/OpenConext/EngineBlockFunctionalTestingBundle/Features/Context/EngineBlockContext.php +++ b/src/OpenConext/EngineBlockFunctionalTestingBundle/Features/Context/EngineBlockContext.php @@ -183,7 +183,6 @@ public function iFollowTheEbDebugScreenToTheIdp() public function iPassThroughEngineblock() { $mink = $this->getMinkContext(); - $mink->pressButton('Submit'); } @@ -343,14 +342,12 @@ public function iSelectOnTheWAYF($idpName) } $selector = '[data-entityid="' . $mockIdp->entityId() . '"] button.idp__submit'; - $mink = $this->getMinkContext()->getSession()->getPage(); $button = $mink->find('css', $selector); if (!$button) { throw new RuntimeException(sprintf('Unable to find button with selector "%s"', $selector)); } - $button->click(); } diff --git a/src/OpenConext/EngineBlockFunctionalTestingBundle/Features/Context/MinkContext.php b/src/OpenConext/EngineBlockFunctionalTestingBundle/Features/Context/MinkContext.php index d3908179f7..2e8ad1e5fc 100644 --- a/src/OpenConext/EngineBlockFunctionalTestingBundle/Features/Context/MinkContext.php +++ b/src/OpenConext/EngineBlockFunctionalTestingBundle/Features/Context/MinkContext.php @@ -26,7 +26,6 @@ use RuntimeException; use SAML2\XML\mdui\Common; use SAML2\XML\shibmd\Scope; -use function count; /** * Mink-enabled context. @@ -48,6 +47,19 @@ public function putDebugCookie() $driver->setCookie('XDEBUG_SESSION', 'PHPSTORM'); } + + /** + * @Then /^printDebugDie$/ + */ + public function debugout() + { + echo PHP_EOL; + echo $this->getMink()->getSession()->getCurrentUrl(); + echo PHP_EOL . PHP_EOL; + echo $this->getMink()->getSession()->getPage()->getContent(); + die; + } + /** * @Then /^the response should contain \'([^\']*)\'$/ */ diff --git a/src/OpenConext/EngineBlockFunctionalTestingBundle/Resources/config/services.yml b/src/OpenConext/EngineBlockFunctionalTestingBundle/Resources/config/services.yml index 97cececa96..dd32ce65c9 100644 --- a/src/OpenConext/EngineBlockFunctionalTestingBundle/Resources/config/services.yml +++ b/src/OpenConext/EngineBlockFunctionalTestingBundle/Resources/config/services.yml @@ -46,6 +46,7 @@ services: - '@engineblock.functional_testing.data_store.authentication_loop_guard' engineblock.functional_testing.fixture.attribute_aggregation_client: + public: true class: OpenConext\EngineBlockFunctionalTestingBundle\Fixtures\FunctionalTestingAttributeAggregationClient arguments: - '@engineblock.function_testing.data_store.attribute_aggregation_client' diff --git a/src/OpenConext/EngineBlockFunctionalTestingBundle/Resources/config/services_test.yml b/src/OpenConext/EngineBlockFunctionalTestingBundle/Resources/config/services_test.yml index 1546df8314..907fda2f5f 100644 --- a/src/OpenConext/EngineBlockFunctionalTestingBundle/Resources/config/services_test.yml +++ b/src/OpenConext/EngineBlockFunctionalTestingBundle/Resources/config/services_test.yml @@ -42,4 +42,4 @@ services: OpenConext\EngineBlockFunctionalTestingBundle\Features\Context\TranslationContext: public: true arguments: - $mockTranslator: '@engineblock.functional_testing.mock.translator' \ No newline at end of file + $mockTranslator: '@engineblock.functional_testing.mock.translator' diff --git a/tests/behat-ci.yml b/tests/behat-ci.yml index 017bb2885d..76fc24a3c2 100644 --- a/tests/behat-ci.yml +++ b/tests/behat-ci.yml @@ -1,13 +1,15 @@ default: autoload: - '%paths.base%/../src/OpenConext/EngineBlockFunctionalTestingBundle/Features/Context' - + calls: + error_reporting: 16383 # E_ALL & ~E_USER_DEPRECATED suites: default: paths: - '%paths.base%/../src/OpenConext/EngineBlockFunctionalTestingBundle/Features' formatter: name: progress + filters: tags: "~@WIP&&~@SKIP&&~@selenium" contexts: &defaultContexts @@ -43,6 +45,8 @@ default: Behat\MinkExtension: base_url: https://engine.vm.openconext.org/ sessions: + default: + symfony: ~ chrome: selenium2: browser: chrome @@ -58,4 +62,5 @@ default: kernel: environment: ci debug: true + class: 'AppKernel' bootstrap: tests/bootstrap.php diff --git a/tests/behat.yml b/tests/behat.yml index 75e07b8391..a082041bdf 100644 --- a/tests/behat.yml +++ b/tests/behat.yml @@ -41,8 +41,10 @@ default: extensions: Behat\MinkExtension: - base_url: ~ + base_url: https://engine.vm.openconext.org/ sessions: + default: + symfony: ~ chrome: selenium2: browser: chrome From 731079e657f83ab156d6739dc17f3a2abfdf5f96 Mon Sep 17 00:00:00 2001 From: Michiel Kodde Date: Thu, 5 Sep 2024 14:20:45 +0200 Subject: [PATCH 27/35] Initital PHP 8.2 support tasks - Install a new Pimple version to keep DiContainer in the air - Enabled Symfony flex to ensure we only install SF 5.4 packages - APCU was disabled as the cache adapter for doctrine - app.php was butchered, needs further optimization and fixing - SamlValueObject was upgraded to a version supporting PHP8 (dev) --- .gitignore | 20 + app/AppKernel.php | 6 +- app/config/config.yml | 4 +- composer.json | 31 +- composer.lock | 1338 ++++++++--------- .../EngineBlock/Application/DiContainer.php | 2 +- web/app.php | 4 +- 7 files changed, 678 insertions(+), 727 deletions(-) diff --git a/.gitignore b/.gitignore index 3a30032dc1..23baf66bb8 100644 --- a/.gitignore +++ b/.gitignore @@ -27,3 +27,23 @@ local-php-security-checker /theme/**/visual-regression/screenshots/* !/theme/**/visual-regression/screenshots/.gitkeep /theme/**/__image_snapshots__ + +###> symfony/framework-bundle ### +/.env.local +/.env.local.php +/.env.*.local +/config/secrets/prod/prod.decrypt.private.php +/public/bundles/ +/var/ +/vendor/ +###< 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/app/AppKernel.php b/app/AppKernel.php index ae28ff9219..1477b6700b 100644 --- a/app/AppKernel.php +++ b/app/AppKernel.php @@ -5,7 +5,7 @@ class AppKernel extends Kernel { - public function registerBundles() + public function registerBundles(): iterable { $bundles = [ // Core Symfony @@ -54,7 +54,7 @@ public function registerContainerConfiguration(LoaderInterface $loader) $loader->load(($localConfiguration)); } - public function getCacheDir() + public function getCacheDir(): string { // In the dev & test environments use a folder outside the shared filesystem. This greatly improves cache clear // and warmup time. @@ -65,7 +65,7 @@ public function getCacheDir() return $this->getProjectDir() . '/app/cache/' . $this->environment; } - public function getLogDir() + public function getLogDir(): string { return $this->getProjectDir() . '/app/logs/' . $this->environment; } diff --git a/app/config/config.yml b/app/config/config.yml index 0cdb6f5933..a37cb08739 100644 --- a/app/config/config.yml +++ b/app/config/config.yml @@ -60,9 +60,9 @@ framework: cache: pools: doctrine.result_cache_pool: - adapter: cache.adapter.apcu + adapter: cache.adapter.array doctrine.system_cache_pool: - adapter: cache.adapter.apcu + adapter: cache.adapter.array # Twig Configuration twig: diff --git a/composer.json b/composer.json index 6594db7388..97a964f50b 100644 --- a/composer.json +++ b/composer.json @@ -11,29 +11,32 @@ "source": "https://github.com/OpenConext/OpenConext-engineblock" }, "require": { - "php": "<=7.4", + "php": "^8.2", "ext-dom": "*", "ext-json": "*", "ext-mbstring": "*", "ext-openssl": "*", "beberlei/assert": "^2.6", "composer/package-versions-deprecated": "^1.11", - "doctrine/annotations": "1.14.3", - "doctrine/dbal": "2.13.9", + "doctrine/doctrine-bundle": "^2.7", + "doctrine/annotations": "^1.14", + "doctrine/dbal": "^2.13", "doctrine/doctrine-migrations-bundle": "^3.2.1", - "doctrine/orm": "2.14.1", + "doctrine/orm": "^2.14", "guzzlehttp/guzzle": "^6.3", "incenteev/composer-parameter-handler": "~2.0", "monolog/monolog": "~1.13", "openconext/monitor-bundle": "^3.1.0", - "openconext/saml-value-object": "^1.3", - "pimple/pimple": "~2.1", + "openconext/saml-value-object": "dev-feature/support-php-82", + "pimple/pimple": "^3.5", "ramsey/uuid": "^3.3.0", "simplesamlphp/saml2": "^4.1", "symfony/cache": "v5.4.19", "symfony/debug-bundle": "v5.4.19", "symfony/expression-language": "v5.4.19", + "symfony/flex": "^2.4", "symfony/form": "v5.4.19", + "symfony/http-kernel": "^5.4", "symfony/mailer": "v5.4.19", "symfony/monolog-bundle": "v3.8.0", "symfony/security-bundle": "v5.4.20", @@ -73,7 +76,11 @@ ], "post-update-cmd": [ "Incenteev\\ParameterHandler\\ScriptHandler::buildParameters" - ] + ], + "auto-scripts": { + "cache:clear": "symfony-cmd", + "assets:install %PUBLIC_DIR%": "symfony-cmd" + } }, "autoload": { "psr-0": { @@ -100,13 +107,19 @@ "config": { "optimize-autoloader": true, "platform": { - "php": "7.2" + "php": "8.2" }, "sort-packages": true, "allow-plugins": { - "symfony/flex": false + "symfony/flex": true } }, + "repositories": [ + { + "url": "https://github.com/OpenConext/SamlValueObject.git", + "type": "git" + } + ], "extra": { "symfony": { "require": "5.4.*" diff --git a/composer.lock b/composer.lock index f57dc6b59b..ac9056a11a 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "5d83dcc9d4878582b8274bb389f6346a", + "content-hash": "f06ffde4b983acf0d9219431aa4177f7", "packages": [ { "name": "beberlei/assert", @@ -309,32 +309,34 @@ }, { "name": "doctrine/collections", - "version": "1.8.0", + "version": "2.2.2", "source": { "type": "git", "url": "https://github.com/doctrine/collections.git", - "reference": "2b44dd4cbca8b5744327de78bafef5945c7e7b5e" + "reference": "d8af7f248c74f195f7347424600fd9e17b57af59" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/collections/zipball/2b44dd4cbca8b5744327de78bafef5945c7e7b5e", - "reference": "2b44dd4cbca8b5744327de78bafef5945c7e7b5e", + "url": "https://api.github.com/repos/doctrine/collections/zipball/d8af7f248c74f195f7347424600fd9e17b57af59", + "reference": "d8af7f248c74f195f7347424600fd9e17b57af59", "shasum": "" }, "require": { - "doctrine/deprecations": "^0.5.3 || ^1", - "php": "^7.1.3 || ^8.0" + "doctrine/deprecations": "^1", + "php": "^8.1" }, "require-dev": { - "doctrine/coding-standard": "^9.0 || ^10.0", - "phpstan/phpstan": "^1.4.8", - "phpunit/phpunit": "^7.5 || ^8.5 || ^9.1.5", - "vimeo/psalm": "^4.22" + "doctrine/coding-standard": "^12", + "ext-json": "*", + "phpstan/phpstan": "^1.8", + "phpstan/phpstan-phpunit": "^1.0", + "phpunit/phpunit": "^10.5", + "vimeo/psalm": "^5.11" }, "type": "library", "autoload": { "psr-4": { - "Doctrine\\Common\\Collections\\": "lib/Doctrine/Common/Collections" + "Doctrine\\Common\\Collections\\": "src" } }, "notification-url": "https://packagist.org/downloads/", @@ -373,9 +375,23 @@ ], "support": { "issues": "https://github.com/doctrine/collections/issues", - "source": "https://github.com/doctrine/collections/tree/1.8.0" + "source": "https://github.com/doctrine/collections/tree/2.2.2" }, - "time": "2022-09-01T20:12:10+00:00" + "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": "2024-04-18T06:56:21+00:00" }, { "name": "doctrine/common", @@ -740,16 +756,16 @@ }, { "name": "doctrine/doctrine-migrations-bundle", - "version": "3.3.0", + "version": "3.3.1", "source": { "type": "git", "url": "https://github.com/doctrine/DoctrineMigrationsBundle.git", - "reference": "1dd42906a5fb9c5960723e2ebb45c68006493835" + "reference": "715b62c31a5894afcb2b2cdbbc6607d7dd0580c0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/DoctrineMigrationsBundle/zipball/1dd42906a5fb9c5960723e2ebb45c68006493835", - "reference": "1dd42906a5fb9c5960723e2ebb45c68006493835", + "url": "https://api.github.com/repos/doctrine/DoctrineMigrationsBundle/zipball/715b62c31a5894afcb2b2cdbbc6607d7dd0580c0", + "reference": "715b62c31a5894afcb2b2cdbbc6607d7dd0580c0", "shasum": "" }, "require": { @@ -760,6 +776,7 @@ "symfony/framework-bundle": "^5.4 || ^6.0 || ^7.0" }, "require-dev": { + "composer/semver": "^3.0", "doctrine/coding-standard": "^12", "doctrine/orm": "^2.6 || ^3", "doctrine/persistence": "^2.0 || ^3 ", @@ -811,7 +828,7 @@ ], "support": { "issues": "https://github.com/doctrine/DoctrineMigrationsBundle/issues", - "source": "https://github.com/doctrine/DoctrineMigrationsBundle/tree/3.3.0" + "source": "https://github.com/doctrine/DoctrineMigrationsBundle/tree/3.3.1" }, "funding": [ { @@ -827,7 +844,7 @@ "type": "tidelift" } ], - "time": "2023-11-13T19:44:41+00:00" + "time": "2024-05-14T20:32:18+00:00" }, { "name": "doctrine/event-manager", @@ -1268,34 +1285,34 @@ }, { "name": "doctrine/orm", - "version": "2.14.1", + "version": "2.19.7", "source": { "type": "git", "url": "https://github.com/doctrine/orm.git", - "reference": "de7eee5ed7b1b35c99b118f26f210a8281e6db8e" + "reference": "168ac31084226f94d42e7461a40ff5607a56bd35" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/orm/zipball/de7eee5ed7b1b35c99b118f26f210a8281e6db8e", - "reference": "de7eee5ed7b1b35c99b118f26f210a8281e6db8e", + "url": "https://api.github.com/repos/doctrine/orm/zipball/168ac31084226f94d42e7461a40ff5607a56bd35", + "reference": "168ac31084226f94d42e7461a40ff5607a56bd35", "shasum": "" }, "require": { "composer-runtime-api": "^2", "doctrine/cache": "^1.12.1 || ^2.1.1", - "doctrine/collections": "^1.5 || ^2.0", + "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", - "doctrine/lexer": "^1.2.3 || ^2", + "doctrine/instantiator": "^1.3 || ^2", + "doctrine/lexer": "^2 || ^3", "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/console": "^4.2 || ^5.0 || ^6.0 || ^7.0", "symfony/polyfill-php72": "^1.23", "symfony/polyfill-php80": "^1.16" }, @@ -1304,16 +1321,16 @@ }, "require-dev": { "doctrine/annotations": "^1.13 || ^2", - "doctrine/coding-standard": "^9.0.2 || ^11.0", + "doctrine/coding-standard": "^9.0.2 || ^12.0", "phpbench/phpbench": "^0.16.10 || ^1.0", - "phpstan/phpstan": "~1.4.10 || 1.9.8", - "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", + "phpstan/phpstan": "~1.4.10 || 1.11.1", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.6", "psr/log": "^1 || ^2 || ^3", - "squizlabs/php_codesniffer": "3.7.1", - "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.4.0" + "squizlabs/php_codesniffer": "3.7.2", + "symfony/cache": "^4.4 || ^5.4 || ^6.4 || ^7.0", + "symfony/var-exporter": "^4.4 || ^5.4 || ^6.2 || ^7.0", + "symfony/yaml": "^3.4 || ^4.0 || ^5.0 || ^6.0 || ^7.0", + "vimeo/psalm": "4.30.0 || 5.24.0" }, "suggest": { "ext-dom": "Provides support for XSD validation for XML mapping files", @@ -1326,7 +1343,7 @@ "type": "library", "autoload": { "psr-4": { - "Doctrine\\ORM\\": "lib/Doctrine/ORM" + "Doctrine\\ORM\\": "src" } }, "notification-url": "https://packagist.org/downloads/", @@ -1363,22 +1380,22 @@ ], "support": { "issues": "https://github.com/doctrine/orm/issues", - "source": "https://github.com/doctrine/orm/tree/2.14.1" + "source": "https://github.com/doctrine/orm/tree/2.19.7" }, - "time": "2023-01-16T18:36:59+00:00" + "time": "2024-08-23T06:54:57+00:00" }, { "name": "doctrine/persistence", - "version": "3.3.2", + "version": "3.3.3", "source": { "type": "git", "url": "https://github.com/doctrine/persistence.git", - "reference": "477da35bd0255e032826f440b94b3e37f2d56f42" + "reference": "b337726451f5d530df338fc7f68dee8781b49779" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/persistence/zipball/477da35bd0255e032826f440b94b3e37f2d56f42", - "reference": "477da35bd0255e032826f440b94b3e37f2d56f42", + "url": "https://api.github.com/repos/doctrine/persistence/zipball/b337726451f5d530df338fc7f68dee8781b49779", + "reference": "b337726451f5d530df338fc7f68dee8781b49779", "shasum": "" }, "require": { @@ -1390,15 +1407,14 @@ "doctrine/common": "<2.10" }, "require-dev": { - "composer/package-versions-deprecated": "^1.11", - "doctrine/coding-standard": "^11", + "doctrine/coding-standard": "^12", "doctrine/common": "^3.0", - "phpstan/phpstan": "1.9.4", + "phpstan/phpstan": "1.11.1", "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" + "vimeo/psalm": "4.30.0 || 5.24.0" }, "type": "library", "autoload": { @@ -1447,7 +1463,7 @@ ], "support": { "issues": "https://github.com/doctrine/persistence/issues", - "source": "https://github.com/doctrine/persistence/tree/3.3.2" + "source": "https://github.com/doctrine/persistence/tree/3.3.3" }, "funding": [ { @@ -1463,27 +1479,30 @@ "type": "tidelift" } ], - "time": "2024-03-12T14:54:36+00:00" + "time": "2024-06-20T10:14:30+00:00" }, { "name": "doctrine/sql-formatter", - "version": "1.2.0", + "version": "1.4.1", "source": { "type": "git", "url": "https://github.com/doctrine/sql-formatter.git", - "reference": "a321d114e0a18e6497f8a2cd6f890e000cc17ecc" + "reference": "7f83911cc5eba870de7ebb11283972483f7e2891" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/sql-formatter/zipball/a321d114e0a18e6497f8a2cd6f890e000cc17ecc", - "reference": "a321d114e0a18e6497f8a2cd6f890e000cc17ecc", + "url": "https://api.github.com/repos/doctrine/sql-formatter/zipball/7f83911cc5eba870de7ebb11283972483f7e2891", + "reference": "7f83911cc5eba870de7ebb11283972483f7e2891", "shasum": "" }, "require": { - "php": "^7.1 || ^8.0" + "php": "^8.1" }, "require-dev": { - "bamarni/composer-bin-plugin": "^1.4" + "doctrine/coding-standard": "^12", + "phpstan/phpstan": "^1.10", + "phpunit/phpunit": "^10.5", + "vimeo/psalm": "^5.24" }, "bin": [ "bin/sql-formatter" @@ -1513,32 +1532,32 @@ ], "support": { "issues": "https://github.com/doctrine/sql-formatter/issues", - "source": "https://github.com/doctrine/sql-formatter/tree/1.2.0" + "source": "https://github.com/doctrine/sql-formatter/tree/1.4.1" }, - "time": "2023-08-16T21:49:04+00:00" + "time": "2024-08-05T20:32:22+00:00" }, { "name": "egulias/email-validator", - "version": "3.2.6", + "version": "4.0.2", "source": { "type": "git", "url": "https://github.com/egulias/EmailValidator.git", - "reference": "e5997fa97e8790cdae03a9cbd5e78e45e3c7bda7" + "reference": "ebaaf5be6c0286928352e054f2d5125608e5405e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/egulias/EmailValidator/zipball/e5997fa97e8790cdae03a9cbd5e78e45e3c7bda7", - "reference": "e5997fa97e8790cdae03a9cbd5e78e45e3c7bda7", + "url": "https://api.github.com/repos/egulias/EmailValidator/zipball/ebaaf5be6c0286928352e054f2d5125608e5405e", + "reference": "ebaaf5be6c0286928352e054f2d5125608e5405e", "shasum": "" }, "require": { - "doctrine/lexer": "^1.2|^2", - "php": ">=7.2", - "symfony/polyfill-intl-idn": "^1.15" + "doctrine/lexer": "^2.0 || ^3.0", + "php": ">=8.1", + "symfony/polyfill-intl-idn": "^1.26" }, "require-dev": { - "phpunit/phpunit": "^8.5.8|^9.3.3", - "vimeo/psalm": "^4" + "phpunit/phpunit": "^10.2", + "vimeo/psalm": "^5.12" }, "suggest": { "ext-intl": "PHP Internationalization Libraries are required to use the SpoofChecking validation" @@ -1546,7 +1565,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0.x-dev" + "dev-master": "4.0.x-dev" } }, "autoload": { @@ -1574,7 +1593,7 @@ ], "support": { "issues": "https://github.com/egulias/EmailValidator/issues", - "source": "https://github.com/egulias/EmailValidator/tree/3.2.6" + "source": "https://github.com/egulias/EmailValidator/tree/4.0.2" }, "funding": [ { @@ -1582,7 +1601,7 @@ "type": "github" } ], - "time": "2023-06-01T07:04:22+00:00" + "time": "2023-10-06T06:47:41+00:00" }, { "name": "friendsofphp/proxy-manager-lts", @@ -1967,31 +1986,33 @@ }, { "name": "incenteev/composer-parameter-handler", - "version": "v2.1.5", + "version": "v2.2.0", "source": { "type": "git", "url": "https://github.com/Incenteev/ParameterHandler.git", - "reference": "e1dd118763503f7fd766f907013e1d76d525fcc4" + "reference": "90bffce926e96b365579a2ef024aab457f4b80c5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Incenteev/ParameterHandler/zipball/e1dd118763503f7fd766f907013e1d76d525fcc4", - "reference": "e1dd118763503f7fd766f907013e1d76d525fcc4", + "url": "https://api.github.com/repos/Incenteev/ParameterHandler/zipball/90bffce926e96b365579a2ef024aab457f4b80c5", + "reference": "90bffce926e96b365579a2ef024aab457f4b80c5", "shasum": "" }, "require": { - "php": ">=5.3.3", - "symfony/yaml": "^2.3 || ^3.0 || ^4.0 || ^5.0 || ^6.0" + "php": ">=7.4", + "symfony/yaml": "^5.4 || ^6.0 || ^7.0" }, "require-dev": { - "composer/composer": "^1.0@dev", - "symfony/filesystem": "^2.3 || ^3 || ^4 || ^5 || ^6.0", - "symfony/phpunit-bridge": "^3.4.47 || ^4.4.41 || ^5.4.8 || ^6.0" + "composer/composer": "^2.0@dev", + "phpspec/prophecy-phpunit": "^2.1", + "phpunit/phpunit": "^9.6", + "symfony/filesystem": "^5.4 || ^6.0 || ^7.0", + "symfony/phpunit-bridge": "^6.4.1 || ^7.0.1" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.1.x-dev" + "dev-master": "2.x-dev" } }, "autoload": { @@ -2016,54 +2037,41 @@ ], "support": { "issues": "https://github.com/Incenteev/ParameterHandler/issues", - "source": "https://github.com/Incenteev/ParameterHandler/tree/v2.1.5" + "source": "https://github.com/Incenteev/ParameterHandler/tree/v2.2.0" }, - "time": "2022-05-25T10:57:22+00:00" + "time": "2023-12-09T10:31:14+00:00" }, { "name": "laminas/laminas-code", - "version": "3.4.1", + "version": "4.14.0", "source": { "type": "git", "url": "https://github.com/laminas/laminas-code.git", - "reference": "1cb8f203389ab1482bf89c0e70a04849bacd7766" + "reference": "562e02b7d85cb9142b5116cc76c4c7c162a11a1c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laminas/laminas-code/zipball/1cb8f203389ab1482bf89c0e70a04849bacd7766", - "reference": "1cb8f203389ab1482bf89c0e70a04849bacd7766", + "url": "https://api.github.com/repos/laminas/laminas-code/zipball/562e02b7d85cb9142b5116cc76c4c7c162a11a1c", + "reference": "562e02b7d85cb9142b5116cc76c4c7c162a11a1c", "shasum": "" }, "require": { - "laminas/laminas-eventmanager": "^2.6 || ^3.0", - "laminas/laminas-zendframework-bridge": "^1.0", - "php": "^7.1" - }, - "conflict": { - "phpspec/prophecy": "<1.9.0" - }, - "replace": { - "zendframework/zend-code": "self.version" + "php": "~8.1.0 || ~8.2.0 || ~8.3.0" }, "require-dev": { - "doctrine/annotations": "^1.7", + "doctrine/annotations": "^2.0.1", "ext-phar": "*", - "laminas/laminas-coding-standard": "^1.0", - "laminas/laminas-stdlib": "^2.7 || ^3.0", - "phpunit/phpunit": "^7.5.16 || ^8.4" + "laminas/laminas-coding-standard": "^2.5.0", + "laminas/laminas-stdlib": "^3.17.0", + "phpunit/phpunit": "^10.3.3", + "psalm/plugin-phpunit": "^0.19.0", + "vimeo/psalm": "^5.15.0" }, "suggest": { "doctrine/annotations": "Doctrine\\Common\\Annotations >=1.0 for annotation features", "laminas/laminas-stdlib": "Laminas\\Stdlib component" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.4.x-dev", - "dev-develop": "3.5.x-dev", - "dev-dev-4.0": "4.0.x-dev" - } - }, "autoload": { "psr-4": { "Laminas\\Code\\": "src/" @@ -2077,7 +2085,8 @@ "homepage": "https://laminas.dev", "keywords": [ "code", - "laminas" + "laminas", + "laminasframework" ], "support": { "chat": "https://laminas.dev/chat", @@ -2087,134 +2096,13 @@ "rss": "https://github.com/laminas/laminas-code/releases.atom", "source": "https://github.com/laminas/laminas-code" }, - "time": "2019-12-31T16:28:24+00:00" - }, - { - "name": "laminas/laminas-eventmanager", - "version": "3.2.1", - "source": { - "type": "git", - "url": "https://github.com/laminas/laminas-eventmanager.git", - "reference": "ce4dc0bdf3b14b7f9815775af9dfee80a63b4748" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/laminas/laminas-eventmanager/zipball/ce4dc0bdf3b14b7f9815775af9dfee80a63b4748", - "reference": "ce4dc0bdf3b14b7f9815775af9dfee80a63b4748", - "shasum": "" - }, - "require": { - "laminas/laminas-zendframework-bridge": "^1.0", - "php": "^5.6 || ^7.0" - }, - "replace": { - "zendframework/zend-eventmanager": "self.version" - }, - "require-dev": { - "athletic/athletic": "^0.1", - "container-interop/container-interop": "^1.1.0", - "laminas/laminas-coding-standard": "~1.0.0", - "laminas/laminas-stdlib": "^2.7.3 || ^3.0", - "phpunit/phpunit": "^5.7.27 || ^6.5.8 || ^7.1.2" - }, - "suggest": { - "container-interop/container-interop": "^1.1.0, to use the lazy listeners feature", - "laminas/laminas-stdlib": "^2.7.3 || ^3.0, to use the FilterChain feature" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.2-dev", - "dev-develop": "3.3-dev" - } - }, - "autoload": { - "psr-4": { - "Laminas\\EventManager\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "description": "Trigger and listen to events within a PHP application", - "homepage": "https://laminas.dev", - "keywords": [ - "event", - "eventmanager", - "events", - "laminas" - ], - "support": { - "chat": "https://laminas.dev/chat", - "docs": "https://docs.laminas.dev/laminas-eventmanager/", - "forum": "https://discourse.laminas.dev", - "issues": "https://github.com/laminas/laminas-eventmanager/issues", - "rss": "https://github.com/laminas/laminas-eventmanager/releases.atom", - "source": "https://github.com/laminas/laminas-eventmanager" - }, - "time": "2019-12-31T16:44:52+00:00" - }, - { - "name": "laminas/laminas-zendframework-bridge", - "version": "1.1.1", - "source": { - "type": "git", - "url": "https://github.com/laminas/laminas-zendframework-bridge.git", - "reference": "6ede70583e101030bcace4dcddd648f760ddf642" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/laminas/laminas-zendframework-bridge/zipball/6ede70583e101030bcace4dcddd648f760ddf642", - "reference": "6ede70583e101030bcace4dcddd648f760ddf642", - "shasum": "" - }, - "require": { - "php": "^5.6 || ^7.0 || ^8.0" - }, - "require-dev": { - "phpunit/phpunit": "^5.7 || ^6.5 || ^7.5 || ^8.1 || ^9.3", - "squizlabs/php_codesniffer": "^3.5" - }, - "type": "library", - "extra": { - "laminas": { - "module": "Laminas\\ZendFrameworkBridge" - } - }, - "autoload": { - "files": [ - "src/autoload.php" - ], - "psr-4": { - "Laminas\\ZendFrameworkBridge\\": "src//" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "description": "Alias legacy ZF class names to Laminas Project equivalents.", - "keywords": [ - "ZendFramework", - "autoloading", - "laminas", - "zf" - ], - "support": { - "forum": "https://discourse.laminas.dev/", - "issues": "https://github.com/laminas/laminas-zendframework-bridge/issues", - "rss": "https://github.com/laminas/laminas-zendframework-bridge/releases.atom", - "source": "https://github.com/laminas/laminas-zendframework-bridge" - }, "funding": [ { "url": "https://funding.communitybridge.org/projects/laminas-project", "type": "community_bridge" } ], - "abandoned": true, - "time": "2020-09-14T14:23:00+00:00" + "time": "2024-06-17T08:50:25+00:00" }, { "name": "monolog/monolog", @@ -2361,21 +2249,15 @@ }, { "name": "openconext/saml-value-object", - "version": "1.3.2", + "version": "dev-feature/support-php-82", "source": { "type": "git", "url": "https://github.com/OpenConext/SamlValueObject.git", - "reference": "d47dfa6f30f30b81454f35fe49abdf77ddea1edd" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/OpenConext/SamlValueObject/zipball/d47dfa6f30f30b81454f35fe49abdf77ddea1edd", - "reference": "d47dfa6f30f30b81454f35fe49abdf77ddea1edd", - "shasum": "" + "reference": "4407568f6ef7df18d891fdde22cf2504e8d48860" }, "require": { "beberlei/assert": "^2.6", - "php": ">=5.4,<8.0-dev" + "php": ">=7.2,<=8.2" }, "require-dev": { "ibuildings/qa-tools": "^1.1", @@ -2387,7 +2269,11 @@ "OpenConext\\Value\\": "src/OpenConext/Value" } }, - "notification-url": "https://packagist.org/downloads/", + "autoload-dev": { + "psr-4": { + "OpenConext\\Value\\": "tests/OpenConext/Value" + } + }, "license": [ "Apache-2.0" ], @@ -2398,11 +2284,7 @@ } ], "description": "Set of value objects for usage with SAML2", - "support": { - "issues": "https://github.com/OpenConext/SamlValueObject/issues", - "source": "https://github.com/OpenConext/SamlValueObject/tree/1.3.2" - }, - "time": "2018-01-22T15:22:14+00:00" + "time": "2024-09-05T10:01:06+00:00" }, { "name": "paragonie/random_compat", @@ -2456,25 +2338,29 @@ }, { "name": "pimple/pimple", - "version": "v2.1.1", + "version": "v3.5.0", "source": { "type": "git", "url": "https://github.com/silexphp/Pimple.git", - "reference": "ea22fb2880faf7b7b0e17c9809c6fe25b071fd76" + "reference": "a94b3a4db7fb774b3d78dad2315ddc07629e1bed" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/silexphp/Pimple/zipball/ea22fb2880faf7b7b0e17c9809c6fe25b071fd76", - "reference": "ea22fb2880faf7b7b0e17c9809c6fe25b071fd76", + "url": "https://api.github.com/repos/silexphp/Pimple/zipball/a94b3a4db7fb774b3d78dad2315ddc07629e1bed", + "reference": "a94b3a4db7fb774b3d78dad2315ddc07629e1bed", "shasum": "" }, "require": { - "php": ">=5.3.0" + "php": ">=7.2.5", + "psr/container": "^1.1 || ^2.0" + }, + "require-dev": { + "symfony/phpunit-bridge": "^5.4@dev" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.1.x-dev" + "dev-master": "3.4.x-dev" } }, "autoload": { @@ -2492,34 +2378,33 @@ "email": "fabien@symfony.com" } ], - "description": "Pimple is a simple Dependency Injection Container for PHP 5.3", - "homepage": "http://pimple.sensiolabs.org", + "description": "Pimple, a simple Dependency Injection Container", + "homepage": "https://pimple.symfony.com", "keywords": [ "container", "dependency injection" ], "support": { - "issues": "https://github.com/silexphp/Pimple/issues", - "source": "https://github.com/silexphp/Pimple/tree/v2.1.1" + "source": "https://github.com/silexphp/Pimple/tree/v3.5.0" }, - "time": "2014-07-24T07:10:08+00:00" + "time": "2021-10-28T11:13:42+00:00" }, { "name": "psr/cache", - "version": "1.0.1", + "version": "2.0.0", "source": { "type": "git", "url": "https://github.com/php-fig/cache.git", - "reference": "d11b50ad223250cf17b86e38383413f5a6764bf8" + "reference": "213f9dbc5b9bfbc4f8db86d2838dc968752ce13b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/cache/zipball/d11b50ad223250cf17b86e38383413f5a6764bf8", - "reference": "d11b50ad223250cf17b86e38383413f5a6764bf8", + "url": "https://api.github.com/repos/php-fig/cache/zipball/213f9dbc5b9bfbc4f8db86d2838dc968752ce13b", + "reference": "213f9dbc5b9bfbc4f8db86d2838dc968752ce13b", "shasum": "" }, "require": { - "php": ">=5.3.0" + "php": ">=8.0.0" }, "type": "library", "extra": { @@ -2539,7 +2424,7 @@ "authors": [ { "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" + "homepage": "https://www.php-fig.org/" } ], "description": "Common interface for caching libraries", @@ -2549,26 +2434,26 @@ "psr-6" ], "support": { - "source": "https://github.com/php-fig/cache/tree/master" + "source": "https://github.com/php-fig/cache/tree/2.0.0" }, - "time": "2016-08-06T20:24:11+00:00" + "time": "2021-02-03T23:23:37+00:00" }, { "name": "psr/container", - "version": "1.1.1", + "version": "1.1.2", "source": { "type": "git", "url": "https://github.com/php-fig/container.git", - "reference": "8622567409010282b7aeebe4bb841fe98b58dcaf" + "reference": "513e0666f7216c7459170d56df27dfcefe1689ea" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/container/zipball/8622567409010282b7aeebe4bb841fe98b58dcaf", - "reference": "8622567409010282b7aeebe4bb841fe98b58dcaf", + "url": "https://api.github.com/repos/php-fig/container/zipball/513e0666f7216c7459170d56df27dfcefe1689ea", + "reference": "513e0666f7216c7459170d56df27dfcefe1689ea", "shasum": "" }, "require": { - "php": ">=7.2.0" + "php": ">=7.4.0" }, "type": "library", "autoload": { @@ -2597,9 +2482,9 @@ ], "support": { "issues": "https://github.com/php-fig/container/issues", - "source": "https://github.com/php-fig/container/tree/1.1.1" + "source": "https://github.com/php-fig/container/tree/1.1.2" }, - "time": "2021-03-05T17:36:06+00:00" + "time": "2021-11-05T16:50:12+00:00" }, { "name": "psr/event-dispatcher", @@ -3176,16 +3061,16 @@ }, { "name": "symfony/config", - "version": "v5.4.39", + "version": "v5.4.40", "source": { "type": "git", "url": "https://github.com/symfony/config.git", - "reference": "62cec4a067931552624a9962002c210c502d42fd" + "reference": "d4e1db78421163b98dd9971d247fd0df4a57ee5e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/config/zipball/62cec4a067931552624a9962002c210c502d42fd", - "reference": "62cec4a067931552624a9962002c210c502d42fd", + "url": "https://api.github.com/repos/symfony/config/zipball/d4e1db78421163b98dd9971d247fd0df4a57ee5e", + "reference": "d4e1db78421163b98dd9971d247fd0df4a57ee5e", "shasum": "" }, "require": { @@ -3235,7 +3120,7 @@ "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/v5.4.39" + "source": "https://github.com/symfony/config/tree/v5.4.40" }, "funding": [ { @@ -3251,20 +3136,20 @@ "type": "tidelift" } ], - "time": "2024-04-18T08:26:06+00:00" + "time": "2024-05-31T14:33:22+00:00" }, { "name": "symfony/console", - "version": "v5.4.39", + "version": "v5.4.43", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "f3e591c48688a0cfa1a3296205926c05e84b22b1" + "reference": "e86f8554de667c16dde8aeb89a3990cfde924df9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/f3e591c48688a0cfa1a3296205926c05e84b22b1", - "reference": "f3e591c48688a0cfa1a3296205926c05e84b22b1", + "url": "https://api.github.com/repos/symfony/console/zipball/e86f8554de667c16dde8aeb89a3990cfde924df9", + "reference": "e86f8554de667c16dde8aeb89a3990cfde924df9", "shasum": "" }, "require": { @@ -3334,7 +3219,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v5.4.39" + "source": "https://github.com/symfony/console/tree/v5.4.43" }, "funding": [ { @@ -3350,7 +3235,7 @@ "type": "tidelift" } ], - "time": "2024-04-18T08:26:06+00:00" + "time": "2024-08-13T16:31:56+00:00" }, { "name": "symfony/debug-bundle", @@ -3433,16 +3318,16 @@ }, { "name": "symfony/dependency-injection", - "version": "v5.4.39", + "version": "v5.4.43", "source": { "type": "git", "url": "https://github.com/symfony/dependency-injection.git", - "reference": "5b4505f2afbe1d11d43a3917d0c1c178a38f6f19" + "reference": "8c946c5c1d1692d5378cb722060969730cebc96d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/5b4505f2afbe1d11d43a3917d0c1c178a38f6f19", - "reference": "5b4505f2afbe1d11d43a3917d0c1c178a38f6f19", + "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/8c946c5c1d1692d5378cb722060969730cebc96d", + "reference": "8c946c5c1d1692d5378cb722060969730cebc96d", "shasum": "" }, "require": { @@ -3502,7 +3387,7 @@ "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/v5.4.39" + "source": "https://github.com/symfony/dependency-injection/tree/v5.4.43" }, "funding": [ { @@ -3518,29 +3403,29 @@ "type": "tidelift" } ], - "time": "2024-04-18T08:26:06+00:00" + "time": "2024-08-27T00:56:45+00:00" }, { "name": "symfony/deprecation-contracts", - "version": "v2.5.3", + "version": "v3.5.0", "source": { "type": "git", "url": "https://github.com/symfony/deprecation-contracts.git", - "reference": "80d075412b557d41002320b96a096ca65aa2c98d" + "reference": "0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/80d075412b557d41002320b96a096ca65aa2c98d", - "reference": "80d075412b557d41002320b96a096ca65aa2c98d", + "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1", + "reference": "0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=8.1" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "2.5-dev" + "dev-main": "3.5-dev" }, "thanks": { "name": "symfony/contracts", @@ -3569,7 +3454,7 @@ "description": "A generic function and convention to trigger deprecation notices", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/deprecation-contracts/tree/v2.5.3" + "source": "https://github.com/symfony/deprecation-contracts/tree/v3.5.0" }, "funding": [ { @@ -3585,7 +3470,7 @@ "type": "tidelift" } ], - "time": "2023-01-24T14:02:46+00:00" + "time": "2024-04-18T09:32:20+00:00" }, { "name": "symfony/doctrine-bridge", @@ -3706,16 +3591,16 @@ }, { "name": "symfony/error-handler", - "version": "v5.4.39", + "version": "v5.4.42", "source": { "type": "git", "url": "https://github.com/symfony/error-handler.git", - "reference": "9e02a6e831d6c2dbc5f96c8ff5314d453ecd53cd" + "reference": "db15ba0fd50890156ed40087ccedc7851a1f5b76" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/error-handler/zipball/9e02a6e831d6c2dbc5f96c8ff5314d453ecd53cd", - "reference": "9e02a6e831d6c2dbc5f96c8ff5314d453ecd53cd", + "url": "https://api.github.com/repos/symfony/error-handler/zipball/db15ba0fd50890156ed40087ccedc7851a1f5b76", + "reference": "db15ba0fd50890156ed40087ccedc7851a1f5b76", "shasum": "" }, "require": { @@ -3757,7 +3642,7 @@ "description": "Provides tools to manage errors and ease debugging PHP code", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/error-handler/tree/v5.4.39" + "source": "https://github.com/symfony/error-handler/tree/v5.4.42" }, "funding": [ { @@ -3773,20 +3658,20 @@ "type": "tidelift" } ], - "time": "2024-04-18T08:26:06+00:00" + "time": "2024-07-23T12:34:05+00:00" }, { "name": "symfony/event-dispatcher", - "version": "v5.4.39", + "version": "v5.4.40", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "d40fae9fd85c762b6ba378152fdd1157a85d7e4f" + "reference": "a54e2a8a114065f31020d6a89ede83e34c3b27a4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/d40fae9fd85c762b6ba378152fdd1157a85d7e4f", - "reference": "d40fae9fd85c762b6ba378152fdd1157a85d7e4f", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/a54e2a8a114065f31020d6a89ede83e34c3b27a4", + "reference": "a54e2a8a114065f31020d6a89ede83e34c3b27a4", "shasum": "" }, "require": { @@ -3842,7 +3727,7 @@ "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/v5.4.39" + "source": "https://github.com/symfony/event-dispatcher/tree/v5.4.40" }, "funding": [ { @@ -3858,33 +3743,30 @@ "type": "tidelift" } ], - "time": "2024-04-18T08:26:06+00:00" + "time": "2024-05-31T14:33:22+00:00" }, { "name": "symfony/event-dispatcher-contracts", - "version": "v2.5.3", + "version": "v3.5.0", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher-contracts.git", - "reference": "540f4c73e87fd0c71ca44a6aa305d024ac68cb73" + "reference": "8f93aec25d41b72493c6ddff14e916177c9efc50" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/540f4c73e87fd0c71ca44a6aa305d024ac68cb73", - "reference": "540f4c73e87fd0c71ca44a6aa305d024ac68cb73", + "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/8f93aec25d41b72493c6ddff14e916177c9efc50", + "reference": "8f93aec25d41b72493c6ddff14e916177c9efc50", "shasum": "" }, "require": { - "php": ">=7.2.5", + "php": ">=8.1", "psr/event-dispatcher": "^1" }, - "suggest": { - "symfony/event-dispatcher-implementation": "" - }, "type": "library", "extra": { "branch-alias": { - "dev-main": "2.5-dev" + "dev-main": "3.5-dev" }, "thanks": { "name": "symfony/contracts", @@ -3921,7 +3803,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v2.5.3" + "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.5.0" }, "funding": [ { @@ -3937,7 +3819,7 @@ "type": "tidelift" } ], - "time": "2024-01-23T13:51:25+00:00" + "time": "2024-04-18T09:32:20+00:00" }, { "name": "symfony/expression-language", @@ -4004,23 +3886,25 @@ }, { "name": "symfony/filesystem", - "version": "v5.4.39", + "version": "v5.4.41", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", - "reference": "e6edd875d5d39b03de51f3c3951148cfa79a4d12" + "reference": "6d29dd9340b372fa603f04e6df4dd76bb808591e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/e6edd875d5d39b03de51f3c3951148cfa79a4d12", - "reference": "e6edd875d5d39b03de51f3c3951148cfa79a4d12", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/6d29dd9340b372fa603f04e6df4dd76bb808591e", + "reference": "6d29dd9340b372fa603f04e6df4dd76bb808591e", "shasum": "" }, "require": { "php": ">=7.2.5", "symfony/polyfill-ctype": "~1.8", "symfony/polyfill-mbstring": "~1.8", - "symfony/polyfill-php80": "^1.16", + "symfony/polyfill-php80": "^1.16" + }, + "require-dev": { "symfony/process": "^5.4|^6.4" }, "type": "library", @@ -4049,7 +3933,7 @@ "description": "Provides basic utilities for the filesystem", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/filesystem/tree/v5.4.39" + "source": "https://github.com/symfony/filesystem/tree/v5.4.41" }, "funding": [ { @@ -4065,20 +3949,20 @@ "type": "tidelift" } ], - "time": "2024-04-18T08:26:06+00:00" + "time": "2024-06-28T09:36:24+00:00" }, { "name": "symfony/finder", - "version": "v5.4.39", + "version": "v5.4.43", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "f6a96e4fcd468a25fede16ee665f50ced856bd0a" + "reference": "ae25a9145a900764158d439653d5630191155ca0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/f6a96e4fcd468a25fede16ee665f50ced856bd0a", - "reference": "f6a96e4fcd468a25fede16ee665f50ced856bd0a", + "url": "https://api.github.com/repos/symfony/finder/zipball/ae25a9145a900764158d439653d5630191155ca0", + "reference": "ae25a9145a900764158d439653d5630191155ca0", "shasum": "" }, "require": { @@ -4112,7 +3996,7 @@ "description": "Finds files and directories via an intuitive fluent interface", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/finder/tree/v5.4.39" + "source": "https://github.com/symfony/finder/tree/v5.4.43" }, "funding": [ { @@ -4128,7 +4012,72 @@ "type": "tidelift" } ], - "time": "2024-04-18T08:26:06+00:00" + "time": "2024-08-13T14:03:51+00:00" + }, + { + "name": "symfony/flex", + "version": "v2.4.6", + "source": { + "type": "git", + "url": "https://github.com/symfony/flex.git", + "reference": "4dc11919791f81d087a12db2ab4c7e044431ef6b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/flex/zipball/4dc11919791f81d087a12db2ab4c7e044431ef6b", + "reference": "4dc11919791f81d087a12db2ab4c7e044431ef6b", + "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.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": "2024-04-27T10:22:22+00:00" }, { "name": "symfony/form", @@ -4235,16 +4184,16 @@ }, { "name": "symfony/framework-bundle", - "version": "v5.4.39", + "version": "v5.4.42", "source": { "type": "git", "url": "https://github.com/symfony/framework-bundle.git", - "reference": "65640a7c74ab356bf6518bee38bc6dc9d036ffd7" + "reference": "0a9f66cd53cb2578c9dff53645304ef313ecb63b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/framework-bundle/zipball/65640a7c74ab356bf6518bee38bc6dc9d036ffd7", - "reference": "65640a7c74ab356bf6518bee38bc6dc9d036ffd7", + "url": "https://api.github.com/repos/symfony/framework-bundle/zipball/0a9f66cd53cb2578c9dff53645304ef313ecb63b", + "reference": "0a9f66cd53cb2578c9dff53645304ef313ecb63b", "shasum": "" }, "require": { @@ -4365,7 +4314,7 @@ "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/v5.4.39" + "source": "https://github.com/symfony/framework-bundle/tree/v5.4.42" }, "funding": [ { @@ -4381,20 +4330,20 @@ "type": "tidelift" } ], - "time": "2024-04-28T08:53:28+00:00" + "time": "2024-07-09T20:57:15+00:00" }, { "name": "symfony/http-foundation", - "version": "v5.4.39", + "version": "v5.4.42", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "3356c93efc30b0c85a37606bdfef16b813faec0e" + "reference": "9c375b2abef0b657aa0b7612b763df5c12a465ab" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/3356c93efc30b0c85a37606bdfef16b813faec0e", - "reference": "3356c93efc30b0c85a37606bdfef16b813faec0e", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/9c375b2abef0b657aa0b7612b763df5c12a465ab", + "reference": "9c375b2abef0b657aa0b7612b763df5c12a465ab", "shasum": "" }, "require": { @@ -4404,7 +4353,7 @@ "symfony/polyfill-php80": "^1.16" }, "require-dev": { - "predis/predis": "~1.0", + "predis/predis": "^1.0|^2.0", "symfony/cache": "^4.4|^5.0|^6.0", "symfony/dependency-injection": "^5.4|^6.0", "symfony/expression-language": "^4.4|^5.0|^6.0", @@ -4441,7 +4390,7 @@ "description": "Defines an object-oriented layer for the HTTP specification", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-foundation/tree/v5.4.39" + "source": "https://github.com/symfony/http-foundation/tree/v5.4.42" }, "funding": [ { @@ -4457,20 +4406,20 @@ "type": "tidelift" } ], - "time": "2024-04-18T08:26:06+00:00" + "time": "2024-07-26T11:59:59+00:00" }, { "name": "symfony/http-kernel", - "version": "v5.4.39", + "version": "v5.4.43", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "1d812dc3a2863cc4246aaa636b0d71e0bf68e6b0" + "reference": "83f101ea1122972ffe52d1c1f6957a824c205370" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/1d812dc3a2863cc4246aaa636b0d71e0bf68e6b0", - "reference": "1d812dc3a2863cc4246aaa636b0d71e0bf68e6b0", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/83f101ea1122972ffe52d1c1f6957a824c205370", + "reference": "83f101ea1122972ffe52d1c1f6957a824c205370", "shasum": "" }, "require": { @@ -4554,7 +4503,7 @@ "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/v5.4.39" + "source": "https://github.com/symfony/http-kernel/tree/v5.4.43" }, "funding": [ { @@ -4570,7 +4519,7 @@ "type": "tidelift" } ], - "time": "2024-04-29T11:17:46+00:00" + "time": "2024-08-30T16:52:25+00:00" }, { "name": "symfony/mailer", @@ -4650,16 +4599,16 @@ }, { "name": "symfony/mime", - "version": "v5.4.39", + "version": "v5.4.43", "source": { "type": "git", "url": "https://github.com/symfony/mime.git", - "reference": "a5364f016fd9e090f7b4f250a97ea6925a5ca985" + "reference": "a02711d6ce461edada8c0f8641aa536709b99b47" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mime/zipball/a5364f016fd9e090f7b4f250a97ea6925a5ca985", - "reference": "a5364f016fd9e090f7b4f250a97ea6925a5ca985", + "url": "https://api.github.com/repos/symfony/mime/zipball/a02711d6ce461edada8c0f8641aa536709b99b47", + "reference": "a02711d6ce461edada8c0f8641aa536709b99b47", "shasum": "" }, "require": { @@ -4715,7 +4664,7 @@ "mime-type" ], "support": { - "source": "https://github.com/symfony/mime/tree/v5.4.39" + "source": "https://github.com/symfony/mime/tree/v5.4.43" }, "funding": [ { @@ -4731,20 +4680,20 @@ "type": "tidelift" } ], - "time": "2024-04-18T08:26:06+00:00" + "time": "2024-08-13T10:38:38+00:00" }, { "name": "symfony/monolog-bridge", - "version": "v5.4.39", + "version": "v5.4.40", "source": { "type": "git", "url": "https://github.com/symfony/monolog-bridge.git", - "reference": "c61589f4ba11236cb68433123c99dd2d77ab9b43" + "reference": "ac6e0bf2a275e017c1dedd54dd0f1fbf252a9351" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/monolog-bridge/zipball/c61589f4ba11236cb68433123c99dd2d77ab9b43", - "reference": "c61589f4ba11236cb68433123c99dd2d77ab9b43", + "url": "https://api.github.com/repos/symfony/monolog-bridge/zipball/ac6e0bf2a275e017c1dedd54dd0f1fbf252a9351", + "reference": "ac6e0bf2a275e017c1dedd54dd0f1fbf252a9351", "shasum": "" }, "require": { @@ -4799,7 +4748,7 @@ "description": "Provides integration for Monolog with various Symfony components", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/monolog-bridge/tree/v5.4.39" + "source": "https://github.com/symfony/monolog-bridge/tree/v5.4.40" }, "funding": [ { @@ -4815,7 +4764,7 @@ "type": "tidelift" } ], - "time": "2024-04-18T08:26:06+00:00" + "time": "2024-05-31T14:33:22+00:00" }, { "name": "symfony/monolog-bundle", @@ -4900,16 +4849,16 @@ }, { "name": "symfony/options-resolver", - "version": "v5.4.39", + "version": "v5.4.40", "source": { "type": "git", "url": "https://github.com/symfony/options-resolver.git", - "reference": "1303bb73d6c3882f07c618129295503085dfddb9" + "reference": "bd1afbde6613a8d6b956115e0e14b196191fd0c4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/options-resolver/zipball/1303bb73d6c3882f07c618129295503085dfddb9", - "reference": "1303bb73d6c3882f07c618129295503085dfddb9", + "url": "https://api.github.com/repos/symfony/options-resolver/zipball/bd1afbde6613a8d6b956115e0e14b196191fd0c4", + "reference": "bd1afbde6613a8d6b956115e0e14b196191fd0c4", "shasum": "" }, "require": { @@ -4949,7 +4898,7 @@ "options" ], "support": { - "source": "https://github.com/symfony/options-resolver/tree/v5.4.39" + "source": "https://github.com/symfony/options-resolver/tree/v5.4.40" }, "funding": [ { @@ -4965,20 +4914,20 @@ "type": "tidelift" } ], - "time": "2024-04-18T08:26:06+00:00" + "time": "2024-05-31T14:33:22+00:00" }, { "name": "symfony/password-hasher", - "version": "v5.4.39", + "version": "v5.4.40", "source": { "type": "git", "url": "https://github.com/symfony/password-hasher.git", - "reference": "b4516ba6a9190a469eeb2c2f3447bfc0e5b17aee" + "reference": "21b98178ab2024e6c7d8ab72cca9ba16015c6093" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/password-hasher/zipball/b4516ba6a9190a469eeb2c2f3447bfc0e5b17aee", - "reference": "b4516ba6a9190a469eeb2c2f3447bfc0e5b17aee", + "url": "https://api.github.com/repos/symfony/password-hasher/zipball/21b98178ab2024e6c7d8ab72cca9ba16015c6093", + "reference": "21b98178ab2024e6c7d8ab72cca9ba16015c6093", "shasum": "" }, "require": { @@ -5023,7 +4972,7 @@ "password" ], "support": { - "source": "https://github.com/symfony/password-hasher/tree/v5.4.39" + "source": "https://github.com/symfony/password-hasher/tree/v5.4.40" }, "funding": [ { @@ -5039,20 +4988,20 @@ "type": "tidelift" } ], - "time": "2024-04-18T08:26:06+00:00" + "time": "2024-05-31T14:33:22+00:00" }, { "name": "symfony/polyfill-ctype", - "version": "v1.29.0", + "version": "v1.30.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-ctype.git", - "reference": "ef4d7e442ca910c4764bce785146269b30cb5fc4" + "reference": "0424dff1c58f028c451efff2045f5d92410bd540" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/ef4d7e442ca910c4764bce785146269b30cb5fc4", - "reference": "ef4d7e442ca910c4764bce785146269b30cb5fc4", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/0424dff1c58f028c451efff2045f5d92410bd540", + "reference": "0424dff1c58f028c451efff2045f5d92410bd540", "shasum": "" }, "require": { @@ -5102,7 +5051,7 @@ "portable" ], "support": { - "source": "https://github.com/symfony/polyfill-ctype/tree/v1.29.0" + "source": "https://github.com/symfony/polyfill-ctype/tree/v1.30.0" }, "funding": [ { @@ -5118,20 +5067,20 @@ "type": "tidelift" } ], - "time": "2024-01-29T20:11:03+00:00" + "time": "2024-05-31T15:07:36+00:00" }, { "name": "symfony/polyfill-intl-grapheme", - "version": "v1.29.0", + "version": "v1.30.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-grapheme.git", - "reference": "32a9da87d7b3245e09ac426c83d334ae9f06f80f" + "reference": "64647a7c30b2283f5d49b874d84a18fc22054b7a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/32a9da87d7b3245e09ac426c83d334ae9f06f80f", - "reference": "32a9da87d7b3245e09ac426c83d334ae9f06f80f", + "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/64647a7c30b2283f5d49b874d84a18fc22054b7a", + "reference": "64647a7c30b2283f5d49b874d84a18fc22054b7a", "shasum": "" }, "require": { @@ -5180,7 +5129,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.29.0" + "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.30.0" }, "funding": [ { @@ -5196,20 +5145,20 @@ "type": "tidelift" } ], - "time": "2024-01-29T20:11:03+00:00" + "time": "2024-05-31T15:07:36+00:00" }, { "name": "symfony/polyfill-intl-icu", - "version": "v1.29.0", + "version": "v1.30.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-icu.git", - "reference": "07094a28851a49107f3ab4f9120ca2975a64b6e1" + "reference": "e76343c631b453088e2260ac41dfebe21954de81" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-icu/zipball/07094a28851a49107f3ab4f9120ca2975a64b6e1", - "reference": "07094a28851a49107f3ab4f9120ca2975a64b6e1", + "url": "https://api.github.com/repos/symfony/polyfill-intl-icu/zipball/e76343c631b453088e2260ac41dfebe21954de81", + "reference": "e76343c631b453088e2260ac41dfebe21954de81", "shasum": "" }, "require": { @@ -5264,7 +5213,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-icu/tree/v1.29.0" + "source": "https://github.com/symfony/polyfill-intl-icu/tree/v1.30.0" }, "funding": [ { @@ -5280,20 +5229,20 @@ "type": "tidelift" } ], - "time": "2024-01-29T20:12:16+00:00" + "time": "2024-05-31T15:07:36+00:00" }, { "name": "symfony/polyfill-intl-idn", - "version": "v1.29.0", + "version": "v1.30.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-idn.git", - "reference": "a287ed7475f85bf6f61890146edbc932c0fff919" + "reference": "a6e83bdeb3c84391d1dfe16f42e40727ce524a5c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/a287ed7475f85bf6f61890146edbc932c0fff919", - "reference": "a287ed7475f85bf6f61890146edbc932c0fff919", + "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/a6e83bdeb3c84391d1dfe16f42e40727ce524a5c", + "reference": "a6e83bdeb3c84391d1dfe16f42e40727ce524a5c", "shasum": "" }, "require": { @@ -5348,7 +5297,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.29.0" + "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.30.0" }, "funding": [ { @@ -5364,20 +5313,20 @@ "type": "tidelift" } ], - "time": "2024-01-29T20:11:03+00:00" + "time": "2024-05-31T15:07:36+00:00" }, { "name": "symfony/polyfill-intl-normalizer", - "version": "v1.29.0", + "version": "v1.30.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-normalizer.git", - "reference": "bc45c394692b948b4d383a08d7753968bed9a83d" + "reference": "a95281b0be0d9ab48050ebd988b967875cdb9fdb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/bc45c394692b948b4d383a08d7753968bed9a83d", - "reference": "bc45c394692b948b4d383a08d7753968bed9a83d", + "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/a95281b0be0d9ab48050ebd988b967875cdb9fdb", + "reference": "a95281b0be0d9ab48050ebd988b967875cdb9fdb", "shasum": "" }, "require": { @@ -5429,7 +5378,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.29.0" + "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.30.0" }, "funding": [ { @@ -5445,20 +5394,20 @@ "type": "tidelift" } ], - "time": "2024-01-29T20:11:03+00:00" + "time": "2024-05-31T15:07:36+00:00" }, { "name": "symfony/polyfill-php72", - "version": "v1.29.0", + "version": "v1.30.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php72.git", - "reference": "861391a8da9a04cbad2d232ddd9e4893220d6e25" + "reference": "10112722600777e02d2745716b70c5db4ca70442" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/861391a8da9a04cbad2d232ddd9e4893220d6e25", - "reference": "861391a8da9a04cbad2d232ddd9e4893220d6e25", + "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/10112722600777e02d2745716b70c5db4ca70442", + "reference": "10112722600777e02d2745716b70c5db4ca70442", "shasum": "" }, "require": { @@ -5502,7 +5451,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php72/tree/v1.29.0" + "source": "https://github.com/symfony/polyfill-php72/tree/v1.30.0" }, "funding": [ { @@ -5518,20 +5467,20 @@ "type": "tidelift" } ], - "time": "2024-01-29T20:11:03+00:00" + "time": "2024-06-19T12:30:46+00:00" }, { "name": "symfony/polyfill-php73", - "version": "v1.29.0", + "version": "v1.30.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php73.git", - "reference": "21bd091060673a1177ae842c0ef8fe30893114d2" + "reference": "ec444d3f3f6505bb28d11afa41e75faadebc10a1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/21bd091060673a1177ae842c0ef8fe30893114d2", - "reference": "21bd091060673a1177ae842c0ef8fe30893114d2", + "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/ec444d3f3f6505bb28d11afa41e75faadebc10a1", + "reference": "ec444d3f3f6505bb28d11afa41e75faadebc10a1", "shasum": "" }, "require": { @@ -5578,7 +5527,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php73/tree/v1.29.0" + "source": "https://github.com/symfony/polyfill-php73/tree/v1.30.0" }, "funding": [ { @@ -5594,20 +5543,20 @@ "type": "tidelift" } ], - "time": "2024-01-29T20:11:03+00:00" + "time": "2024-05-31T15:07:36+00:00" }, { "name": "symfony/polyfill-php80", - "version": "v1.29.0", + "version": "v1.30.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php80.git", - "reference": "87b68208d5c1188808dd7839ee1e6c8ec3b02f1b" + "reference": "77fa7995ac1b21ab60769b7323d600a991a90433" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/87b68208d5c1188808dd7839ee1e6c8ec3b02f1b", - "reference": "87b68208d5c1188808dd7839ee1e6c8ec3b02f1b", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/77fa7995ac1b21ab60769b7323d600a991a90433", + "reference": "77fa7995ac1b21ab60769b7323d600a991a90433", "shasum": "" }, "require": { @@ -5658,7 +5607,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php80/tree/v1.29.0" + "source": "https://github.com/symfony/polyfill-php80/tree/v1.30.0" }, "funding": [ { @@ -5674,20 +5623,20 @@ "type": "tidelift" } ], - "time": "2024-01-29T20:11:03+00:00" + "time": "2024-05-31T15:07:36+00:00" }, { "name": "symfony/polyfill-php81", - "version": "v1.29.0", + "version": "v1.30.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php81.git", - "reference": "c565ad1e63f30e7477fc40738343c62b40bc672d" + "reference": "3fb075789fb91f9ad9af537c4012d523085bd5af" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/c565ad1e63f30e7477fc40738343c62b40bc672d", - "reference": "c565ad1e63f30e7477fc40738343c62b40bc672d", + "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/3fb075789fb91f9ad9af537c4012d523085bd5af", + "reference": "3fb075789fb91f9ad9af537c4012d523085bd5af", "shasum": "" }, "require": { @@ -5734,7 +5683,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php81/tree/v1.29.0" + "source": "https://github.com/symfony/polyfill-php81/tree/v1.30.0" }, "funding": [ { @@ -5750,82 +5699,20 @@ "type": "tidelift" } ], - "time": "2024-01-29T20:11:03+00:00" - }, - { - "name": "symfony/process", - "version": "v5.4.39", - "source": { - "type": "git", - "url": "https://github.com/symfony/process.git", - "reference": "85a554acd7c28522241faf2e97b9541247a0d3d5" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/85a554acd7c28522241faf2e97b9541247a0d3d5", - "reference": "85a554acd7c28522241faf2e97b9541247a0d3d5", - "shasum": "" - }, - "require": { - "php": ">=7.2.5", - "symfony/polyfill-php80": "^1.16" - }, - "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/v5.4.39" - }, - "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": "2024-04-18T08:26:06+00:00" + "time": "2024-06-19T12:30:46+00:00" }, { "name": "symfony/property-access", - "version": "v5.4.39", + "version": "v5.4.43", "source": { "type": "git", "url": "https://github.com/symfony/property-access.git", - "reference": "1b93ca45890ce5555895efe27bd848c41396530c" + "reference": "2d751866b976a02e22743359733edc55cd20e9fd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/property-access/zipball/1b93ca45890ce5555895efe27bd848c41396530c", - "reference": "1b93ca45890ce5555895efe27bd848c41396530c", + "url": "https://api.github.com/repos/symfony/property-access/zipball/2d751866b976a02e22743359733edc55cd20e9fd", + "reference": "2d751866b976a02e22743359733edc55cd20e9fd", "shasum": "" }, "require": { @@ -5877,7 +5764,7 @@ "reflection" ], "support": { - "source": "https://github.com/symfony/property-access/tree/v5.4.39" + "source": "https://github.com/symfony/property-access/tree/v5.4.43" }, "funding": [ { @@ -5893,20 +5780,20 @@ "type": "tidelift" } ], - "time": "2024-04-18T08:26:06+00:00" + "time": "2024-08-29T08:50:14+00:00" }, { "name": "symfony/property-info", - "version": "v5.4.39", + "version": "v5.4.42", "source": { "type": "git", "url": "https://github.com/symfony/property-info.git", - "reference": "bf257e78b0471e67757af038344919f498af804d" + "reference": "825aa937f6e8cd63dcc118d0af84d7d4979cddf4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/property-info/zipball/bf257e78b0471e67757af038344919f498af804d", - "reference": "bf257e78b0471e67757af038344919f498af804d", + "url": "https://api.github.com/repos/symfony/property-info/zipball/825aa937f6e8cd63dcc118d0af84d7d4979cddf4", + "reference": "825aa937f6e8cd63dcc118d0af84d7d4979cddf4", "shasum": "" }, "require": { @@ -5968,7 +5855,7 @@ "validator" ], "support": { - "source": "https://github.com/symfony/property-info/tree/v5.4.39" + "source": "https://github.com/symfony/property-info/tree/v5.4.42" }, "funding": [ { @@ -5984,20 +5871,20 @@ "type": "tidelift" } ], - "time": "2024-04-19T15:51:11+00:00" + "time": "2024-07-22T18:03:36+00:00" }, { "name": "symfony/routing", - "version": "v5.4.39", + "version": "v5.4.43", "source": { "type": "git", "url": "https://github.com/symfony/routing.git", - "reference": "5485974ef20de1150dd195a81e9da4915d45263f" + "reference": "b6f71780bbdd5e93e1c5638671cf0ba42aa8c6d8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/5485974ef20de1150dd195a81e9da4915d45263f", - "reference": "5485974ef20de1150dd195a81e9da4915d45263f", + "url": "https://api.github.com/repos/symfony/routing/zipball/b6f71780bbdd5e93e1c5638671cf0ba42aa8c6d8", + "reference": "b6f71780bbdd5e93e1c5638671cf0ba42aa8c6d8", "shasum": "" }, "require": { @@ -6058,7 +5945,7 @@ "url" ], "support": { - "source": "https://github.com/symfony/routing/tree/v5.4.39" + "source": "https://github.com/symfony/routing/tree/v5.4.43" }, "funding": [ { @@ -6074,7 +5961,7 @@ "type": "tidelift" } ], - "time": "2024-04-18T08:26:06+00:00" + "time": "2024-08-27T06:36:52+00:00" }, { "name": "symfony/security-bundle", @@ -6273,16 +6160,16 @@ }, { "name": "symfony/security-csrf", - "version": "v5.4.39", + "version": "v5.4.40", "source": { "type": "git", "url": "https://github.com/symfony/security-csrf.git", - "reference": "52773ed2b696c19e06480b8dccc234851ccaabca" + "reference": "9058d522c1c33d7ba13f4b3c79555cc2c4c16028" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/security-csrf/zipball/52773ed2b696c19e06480b8dccc234851ccaabca", - "reference": "52773ed2b696c19e06480b8dccc234851ccaabca", + "url": "https://api.github.com/repos/symfony/security-csrf/zipball/9058d522c1c33d7ba13f4b3c79555cc2c4c16028", + "reference": "9058d522c1c33d7ba13f4b3c79555cc2c4c16028", "shasum": "" }, "require": { @@ -6326,7 +6213,7 @@ "description": "Symfony Security Component - CSRF Library", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/security-csrf/tree/v5.4.39" + "source": "https://github.com/symfony/security-csrf/tree/v5.4.40" }, "funding": [ { @@ -6342,20 +6229,20 @@ "type": "tidelift" } ], - "time": "2024-04-18T08:26:06+00:00" + "time": "2024-05-31T14:33:22+00:00" }, { "name": "symfony/security-guard", - "version": "v5.4.39", + "version": "v5.4.40", "source": { "type": "git", "url": "https://github.com/symfony/security-guard.git", - "reference": "df059bf319673f4b5a52ba670dbf1e7e30621588" + "reference": "d930fd327c290f451c9d8dd7889169195d4484e9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/security-guard/zipball/df059bf319673f4b5a52ba670dbf1e7e30621588", - "reference": "df059bf319673f4b5a52ba670dbf1e7e30621588", + "url": "https://api.github.com/repos/symfony/security-guard/zipball/d930fd327c290f451c9d8dd7889169195d4484e9", + "reference": "d930fd327c290f451c9d8dd7889169195d4484e9", "shasum": "" }, "require": { @@ -6394,7 +6281,7 @@ "description": "Symfony Security Component - Guard", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/security-guard/tree/v5.4.39" + "source": "https://github.com/symfony/security-guard/tree/v5.4.40" }, "funding": [ { @@ -6410,20 +6297,20 @@ "type": "tidelift" } ], - "time": "2024-04-18T08:26:06+00:00" + "time": "2024-05-31T14:33:22+00:00" }, { "name": "symfony/security-http", - "version": "v5.4.39", + "version": "v5.4.43", "source": { "type": "git", "url": "https://github.com/symfony/security-http.git", - "reference": "42a12aa0db45b0f20997f3b67eea29717bf82a5d" + "reference": "dc6de50b41b636c4405d748015301e12e58e6b13" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/security-http/zipball/42a12aa0db45b0f20997f3b67eea29717bf82a5d", - "reference": "42a12aa0db45b0f20997f3b67eea29717bf82a5d", + "url": "https://api.github.com/repos/symfony/security-http/zipball/dc6de50b41b636c4405d748015301e12e58e6b13", + "reference": "dc6de50b41b636c4405d748015301e12e58e6b13", "shasum": "" }, "require": { @@ -6480,7 +6367,7 @@ "description": "Symfony Security Component - HTTP Integration", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/security-http/tree/v5.4.39" + "source": "https://github.com/symfony/security-http/tree/v5.4.43" }, "funding": [ { @@ -6496,7 +6383,7 @@ "type": "tidelift" } ], - "time": "2024-04-18T08:26:06+00:00" + "time": "2024-08-13T17:15:06+00:00" }, { "name": "symfony/service-contracts", @@ -6583,16 +6470,16 @@ }, { "name": "symfony/stopwatch", - "version": "v5.4.39", + "version": "v5.4.40", "source": { "type": "git", "url": "https://github.com/symfony/stopwatch.git", - "reference": "fb97497490bcec8a3c32c809cacfdd4c15dc8390" + "reference": "0e9daf3b7c805c747638b2cc48f1649e594f9625" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/stopwatch/zipball/fb97497490bcec8a3c32c809cacfdd4c15dc8390", - "reference": "fb97497490bcec8a3c32c809cacfdd4c15dc8390", + "url": "https://api.github.com/repos/symfony/stopwatch/zipball/0e9daf3b7c805c747638b2cc48f1649e594f9625", + "reference": "0e9daf3b7c805c747638b2cc48f1649e594f9625", "shasum": "" }, "require": { @@ -6625,7 +6512,7 @@ "description": "Provides a way to profile code", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/stopwatch/tree/v5.4.39" + "source": "https://github.com/symfony/stopwatch/tree/v5.4.40" }, "funding": [ { @@ -6641,20 +6528,20 @@ "type": "tidelift" } ], - "time": "2024-04-18T08:26:06+00:00" + "time": "2024-05-31T14:33:22+00:00" }, { "name": "symfony/string", - "version": "v5.4.39", + "version": "v5.4.43", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "495e71bae5862308051b9e63cc3e34078eed83ef" + "reference": "8be1d484951ff5ca995eaf8edcbcb8b9a5888450" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/495e71bae5862308051b9e63cc3e34078eed83ef", - "reference": "495e71bae5862308051b9e63cc3e34078eed83ef", + "url": "https://api.github.com/repos/symfony/string/zipball/8be1d484951ff5ca995eaf8edcbcb8b9a5888450", + "reference": "8be1d484951ff5ca995eaf8edcbcb8b9a5888450", "shasum": "" }, "require": { @@ -6711,7 +6598,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v5.4.39" + "source": "https://github.com/symfony/string/tree/v5.4.43" }, "funding": [ { @@ -6727,7 +6614,7 @@ "type": "tidelift" } ], - "time": "2024-04-18T08:26:06+00:00" + "time": "2024-08-01T10:24:28+00:00" }, { "name": "symfony/translation", @@ -7229,16 +7116,16 @@ }, { "name": "symfony/var-dumper", - "version": "v5.4.39", + "version": "v5.4.43", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "1987f86ad7f339fe3d3e8e6cf3b7ce4d4b8e547e" + "reference": "6be6a6a8af4818564e3726fc65cf936f34743cef" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/1987f86ad7f339fe3d3e8e6cf3b7ce4d4b8e547e", - "reference": "1987f86ad7f339fe3d3e8e6cf3b7ce4d4b8e547e", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/6be6a6a8af4818564e3726fc65cf936f34743cef", + "reference": "6be6a6a8af4818564e3726fc65cf936f34743cef", "shasum": "" }, "require": { @@ -7298,7 +7185,7 @@ "dump" ], "support": { - "source": "https://github.com/symfony/var-dumper/tree/v5.4.39" + "source": "https://github.com/symfony/var-dumper/tree/v5.4.43" }, "funding": [ { @@ -7314,28 +7201,30 @@ "type": "tidelift" } ], - "time": "2024-04-18T08:26:06+00:00" + "time": "2024-08-30T16:01:46+00:00" }, { "name": "symfony/var-exporter", - "version": "v5.4.39", + "version": "v6.4.9", "source": { "type": "git", "url": "https://github.com/symfony/var-exporter.git", - "reference": "e85a27cfdbb48e5e9a2d4a5f04efa359857771fd" + "reference": "f9a060622e0d93777b7f8687ec4860191e16802e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-exporter/zipball/e85a27cfdbb48e5e9a2d4a5f04efa359857771fd", - "reference": "e85a27cfdbb48e5e9a2d4a5f04efa359857771fd", + "url": "https://api.github.com/repos/symfony/var-exporter/zipball/f9a060622e0d93777b7f8687ec4860191e16802e", + "reference": "f9a060622e0d93777b7f8687ec4860191e16802e", "shasum": "" }, "require": { - "php": ">=7.2.5", - "symfony/polyfill-php80": "^1.16" + "php": ">=8.1", + "symfony/deprecation-contracts": "^2.5|^3" }, "require-dev": { - "symfony/var-dumper": "^4.4.9|^5.0.9|^6.0" + "symfony/property-access": "^6.4|^7.0", + "symfony/serializer": "^6.4|^7.0", + "symfony/var-dumper": "^5.4|^6.0|^7.0" }, "type": "library", "autoload": { @@ -7368,10 +7257,12 @@ "export", "hydrate", "instantiate", + "lazy-loading", + "proxy", "serialize" ], "support": { - "source": "https://github.com/symfony/var-exporter/tree/v5.4.39" + "source": "https://github.com/symfony/var-exporter/tree/v6.4.9" }, "funding": [ { @@ -7387,7 +7278,7 @@ "type": "tidelift" } ], - "time": "2024-04-18T08:26:06+00:00" + "time": "2024-06-24T15:53:56+00:00" }, { "name": "symfony/web-profiler-bundle", @@ -7471,16 +7362,16 @@ }, { "name": "symfony/yaml", - "version": "v5.4.39", + "version": "v5.4.43", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "bc780e16879000f77a1022163c052f5323b5e640" + "reference": "62f96e1cfd4cf518882a36bfedcf1fe4093c1299" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/bc780e16879000f77a1022163c052f5323b5e640", - "reference": "bc780e16879000f77a1022163c052f5323b5e640", + "url": "https://api.github.com/repos/symfony/yaml/zipball/62f96e1cfd4cf518882a36bfedcf1fe4093c1299", + "reference": "62f96e1cfd4cf518882a36bfedcf1fe4093c1299", "shasum": "" }, "require": { @@ -7526,7 +7417,7 @@ "description": "Loads and dumps YAML files", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/yaml/tree/v5.4.39" + "source": "https://github.com/symfony/yaml/tree/v5.4.43" }, "funding": [ { @@ -7542,7 +7433,7 @@ "type": "tidelift" } ], - "time": "2024-04-23T11:57:27+00:00" + "time": "2024-08-11T17:40:32+00:00" }, { "name": "twig/extensions", @@ -8149,30 +8040,38 @@ }, { "name": "composer/pcre", - "version": "2.1.3", + "version": "3.3.1", "source": { "type": "git", "url": "https://github.com/composer/pcre.git", - "reference": "540af382c97b83c628227d5f87cf56466d476191" + "reference": "63aaeac21d7e775ff9bc9d45021e1745c97521c4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/pcre/zipball/540af382c97b83c628227d5f87cf56466d476191", - "reference": "540af382c97b83c628227d5f87cf56466d476191", + "url": "https://api.github.com/repos/composer/pcre/zipball/63aaeac21d7e775ff9bc9d45021e1745c97521c4", + "reference": "63aaeac21d7e775ff9bc9d45021e1745c97521c4", "shasum": "" }, "require": { - "php": "^7.2 || ^8.0" + "php": "^7.4 || ^8.0" + }, + "conflict": { + "phpstan/phpstan": "<1.11.10" }, "require-dev": { - "phpstan/phpstan": "^1.3", + "phpstan/phpstan": "^1.11.10", "phpstan/phpstan-strict-rules": "^1.1", - "symfony/phpunit-bridge": "^5" + "phpunit/phpunit": "^8 || ^9" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "2.x-dev" + "dev-main": "3.x-dev" + }, + "phpstan": { + "includes": [ + "extension.neon" + ] } }, "autoload": { @@ -8200,7 +8099,7 @@ ], "support": { "issues": "https://github.com/composer/pcre/issues", - "source": "https://github.com/composer/pcre/tree/2.1.3" + "source": "https://github.com/composer/pcre/tree/3.3.1" }, "funding": [ { @@ -8216,20 +8115,20 @@ "type": "tidelift" } ], - "time": "2024-03-19T09:03:05+00:00" + "time": "2024-08-27T18:44:43+00:00" }, { "name": "composer/xdebug-handler", - "version": "3.0.4", + "version": "3.0.5", "source": { "type": "git", "url": "https://github.com/composer/xdebug-handler.git", - "reference": "4f988f8fdf580d53bdb2d1278fe93d1ed5462255" + "reference": "6c1925561632e83d60a44492e0b344cf48ab85ef" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/4f988f8fdf580d53bdb2d1278fe93d1ed5462255", - "reference": "4f988f8fdf580d53bdb2d1278fe93d1ed5462255", + "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/6c1925561632e83d60a44492e0b344cf48ab85ef", + "reference": "6c1925561632e83d60a44492e0b344cf48ab85ef", "shasum": "" }, "require": { @@ -8266,7 +8165,7 @@ "support": { "irc": "ircs://irc.libera.chat:6697/composer", "issues": "https://github.com/composer/xdebug-handler/issues", - "source": "https://github.com/composer/xdebug-handler/tree/3.0.4" + "source": "https://github.com/composer/xdebug-handler/tree/3.0.5" }, "funding": [ { @@ -8282,34 +8181,34 @@ "type": "tidelift" } ], - "time": "2024-03-26T18:29:49+00:00" + "time": "2024-05-06T16:37:16+00:00" }, { "name": "friends-of-behat/mink-extension", - "version": "v2.5.0", + "version": "v2.7.5", "source": { "type": "git", "url": "https://github.com/FriendsOfBehat/MinkExtension.git", - "reference": "83119aa70be1f2c63061c29dced9d41775cd9db2" + "reference": "854336030e11983f580f49faad1b49a1238f9846" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/FriendsOfBehat/MinkExtension/zipball/83119aa70be1f2c63061c29dced9d41775cd9db2", - "reference": "83119aa70be1f2c63061c29dced9d41775cd9db2", + "url": "https://api.github.com/repos/FriendsOfBehat/MinkExtension/zipball/854336030e11983f580f49faad1b49a1238f9846", + "reference": "854336030e11983f580f49faad1b49a1238f9846", "shasum": "" }, "require": { "behat/behat": "^3.0.5", "behat/mink": "^1.5", - "php": ">=7.2", - "symfony/config": "^3.4 || ^4.4 || ^5.0" + "php": ">=7.4", + "symfony/config": "^4.4 || ^5.0 || ^6.0 || ^7.0" }, "replace": { "behat/mink-extension": "self.version" }, "require-dev": { - "behat/mink-goutte-driver": "^1.1", - "phpspec/phpspec": "^6.0 || ^7.0" + "behat/mink-goutte-driver": "^1.1 || ^2.0", + "phpspec/phpspec": "^6.0 || ^7.0 || 7.1.x-dev" }, "type": "behat-extension", "extra": { @@ -8345,54 +8244,55 @@ "web" ], "support": { - "source": "https://github.com/FriendsOfBehat/MinkExtension/tree/v2.5.0" + "issues": "https://github.com/FriendsOfBehat/MinkExtension/issues", + "source": "https://github.com/FriendsOfBehat/MinkExtension/tree/v2.7.5" }, - "time": "2021-01-21T09:27:44+00:00" + "time": "2024-01-11T09:12:02+00:00" }, { "name": "friends-of-behat/symfony-extension", - "version": "v2.1.0", + "version": "v2.4.2", "source": { "type": "git", "url": "https://github.com/FriendsOfBehat/SymfonyExtension.git", - "reference": "0f906e1156546095f4287be7cd5ceede2d3e22cc" + "reference": "957df89b214f1575b40203e374bcafcd6d200a1d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/FriendsOfBehat/SymfonyExtension/zipball/0f906e1156546095f4287be7cd5ceede2d3e22cc", - "reference": "0f906e1156546095f4287be7cd5ceede2d3e22cc", + "url": "https://api.github.com/repos/FriendsOfBehat/SymfonyExtension/zipball/957df89b214f1575b40203e374bcafcd6d200a1d", + "reference": "957df89b214f1575b40203e374bcafcd6d200a1d", "shasum": "" }, "require": { "behat/behat": "^3.6.1", - "php": "^7.1", - "symfony/dependency-injection": "^4.4|^5.0", - "symfony/http-kernel": "^4.4|^5.0", - "symfony/proxy-manager-bridge": "^4.4|^5.0" + "php": "^7.4 || ^8.0", + "symfony/dependency-injection": "^4.4 || ^5.3 || ^6.0", + "symfony/http-kernel": "^4.4 || ^5.3 || ^6.0", + "symfony/proxy-manager-bridge": "^4.4 || ^5.3 || ^6.0" }, "require-dev": { + "behat/mink": "^1.9", + "behat/mink-browserkit-driver": "^2.0", "behat/mink-selenium2-driver": "^1.3", - "friends-of-behat/mink": "^1.7", - "friends-of-behat/mink-browserkit-driver": "^1.3", - "friends-of-behat/mink-extension": "^2.2", - "friends-of-behat/page-object-extension": "^0.3.1", - "friends-of-behat/service-container-extension": "^1.0", - "sylius-labs/coding-standard": "^3.0", - "symfony/browser-kit": "^4.4|^5.0", - "symfony/framework-bundle": "^4.4|^5.0", - "symfony/process": "^4.4|^5.0", - "symfony/yaml": "^4.4|^5.0", - "vimeo/psalm": "3.10.1" + "friends-of-behat/mink-extension": "^2.5", + "friends-of-behat/page-object-extension": "^0.3.2", + "friends-of-behat/service-container-extension": "^1.1", + "sylius-labs/coding-standard": ">=4.1.1, <=4.2.1", + "symfony/browser-kit": "^4.4 || ^5.3 || ^6.0", + "symfony/framework-bundle": "^4.4 || ^5.3 || ^6.0", + "symfony/process": "^4.4 || ^5.3 || ^6.0", + "symfony/yaml": "^4.4 || ^5.3 || ^6.0", + "vimeo/psalm": "4.30.0" }, "suggest": { - "friends-of-behat/mink": "^1.7", - "friends-of-behat/mink-browserkit-driver": "^1.3", - "friends-of-behat/mink-extension": "^2.2" + "behat/mink": "^1.9", + "behat/mink-browserkit-driver": "^2.0", + "friends-of-behat/mink-extension": "^2.5" }, "type": "symfony-bundle", "extra": { "branch-alias": { - "dev-master": "2.1-dev" + "dev-master": "2.2-dev" } }, "autoload": { @@ -8414,9 +8314,9 @@ "description": "Integrates Behat with Symfony.", "support": { "issues": "https://github.com/FriendsOfBehat/SymfonyExtension/issues", - "source": "https://github.com/FriendsOfBehat/SymfonyExtension/tree/2.1" + "source": "https://github.com/FriendsOfBehat/SymfonyExtension/tree/v2.4.2" }, - "time": "2020-04-04T20:07:00+00:00" + "time": "2023-12-09T12:17:26+00:00" }, { "name": "hamcrest/hamcrest-php", @@ -8620,26 +8520,26 @@ }, { "name": "league/mime-type-detection", - "version": "1.12.0", + "version": "1.15.0", "source": { "type": "git", "url": "https://github.com/thephpleague/mime-type-detection.git", - "reference": "c7f2872fb273bf493811473dafc88d60ae829f48" + "reference": "ce0f4d1e8a6f4eb0ddff33f57c69c50fd09f4301" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/mime-type-detection/zipball/c7f2872fb273bf493811473dafc88d60ae829f48", - "reference": "c7f2872fb273bf493811473dafc88d60ae829f48", + "url": "https://api.github.com/repos/thephpleague/mime-type-detection/zipball/ce0f4d1e8a6f4eb0ddff33f57c69c50fd09f4301", + "reference": "ce0f4d1e8a6f4eb0ddff33f57c69c50fd09f4301", "shasum": "" }, "require": { "ext-fileinfo": "*", - "php": "^7.2 || ^8.0" + "php": "^7.4 || ^8.0" }, "require-dev": { "friendsofphp/php-cs-fixer": "^3.2", "phpstan/phpstan": "^0.12.68", - "phpunit/phpunit": "^8.5.8 || ^9.3" + "phpunit/phpunit": "^8.5.8 || ^9.3 || ^10.0" }, "type": "library", "autoload": { @@ -8660,7 +8560,7 @@ "description": "Mime-type detection for Flysystem", "support": { "issues": "https://github.com/thephpleague/mime-type-detection/issues", - "source": "https://github.com/thephpleague/mime-type-detection/tree/1.12.0" + "source": "https://github.com/thephpleague/mime-type-detection/tree/1.15.0" }, "funding": [ { @@ -8672,7 +8572,7 @@ "type": "tidelift" } ], - "time": "2023-08-03T07:14:11+00:00" + "time": "2024-01-28T23:22:08+00:00" }, { "name": "liip/functional-test-bundle", @@ -8812,35 +8712,38 @@ }, { "name": "mockery/mockery", - "version": "1.3.6", + "version": "1.6.12", "source": { "type": "git", "url": "https://github.com/mockery/mockery.git", - "reference": "dc206df4fa314a50bbb81cf72239a305c5bbd5c0" + "reference": "1f4efdd7d3beafe9807b08156dfcb176d18f1699" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/mockery/mockery/zipball/dc206df4fa314a50bbb81cf72239a305c5bbd5c0", - "reference": "dc206df4fa314a50bbb81cf72239a305c5bbd5c0", + "url": "https://api.github.com/repos/mockery/mockery/zipball/1f4efdd7d3beafe9807b08156dfcb176d18f1699", + "reference": "1f4efdd7d3beafe9807b08156dfcb176d18f1699", "shasum": "" }, "require": { "hamcrest/hamcrest-php": "^2.0.1", "lib-pcre": ">=7.0", - "php": ">=5.6.0" + "php": ">=7.3" + }, + "conflict": { + "phpunit/phpunit": "<8.0" }, "require-dev": { - "phpunit/phpunit": "^5.7.10|^6.5|^7.5|^8.5|^9.3" + "phpunit/phpunit": "^8.5 || ^9.6.17", + "symplify/easy-coding-standard": "^12.1.14" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.3.x-dev" - } - }, "autoload": { - "psr-0": { - "Mockery": "library/" + "files": [ + "library/helpers.php", + "library/Mockery.php" + ], + "psr-4": { + "Mockery\\": "library/Mockery" } }, "notification-url": "https://packagist.org/downloads/", @@ -8851,12 +8754,20 @@ { "name": "Pádraic Brady", "email": "padraic.brady@gmail.com", - "homepage": "http://blog.astrumfutura.com" + "homepage": "https://github.com/padraic", + "role": "Author" }, { "name": "Dave Marshall", "email": "dave.marshall@atstsolutions.co.uk", - "homepage": "http://davedevelopment.co.uk" + "homepage": "https://davedevelopment.co.uk", + "role": "Developer" + }, + { + "name": "Nathanael Esayeas", + "email": "nathanael.esayeas@protonmail.com", + "homepage": "https://github.com/ghostwriter", + "role": "Lead Developer" } ], "description": "Mockery is a simple yet flexible PHP mock object framework", @@ -8874,23 +8785,26 @@ "testing" ], "support": { + "docs": "https://docs.mockery.io/", "issues": "https://github.com/mockery/mockery/issues", - "source": "https://github.com/mockery/mockery/tree/1.3.6" + "rss": "https://github.com/mockery/mockery/releases.atom", + "security": "https://github.com/mockery/mockery/security/advisories", + "source": "https://github.com/mockery/mockery" }, - "time": "2022-09-07T15:05:49+00:00" + "time": "2024-05-16T03:13:13+00:00" }, { "name": "myclabs/deep-copy", - "version": "1.11.1", + "version": "1.12.0", "source": { "type": "git", "url": "https://github.com/myclabs/DeepCopy.git", - "reference": "7284c22080590fb39f2ffa3e9057f10a4ddd0e0c" + "reference": "3a6b9a42cd8f8771bd4295d13e1423fa7f3d942c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/7284c22080590fb39f2ffa3e9057f10a4ddd0e0c", - "reference": "7284c22080590fb39f2ffa3e9057f10a4ddd0e0c", + "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/3a6b9a42cd8f8771bd4295d13e1423fa7f3d942c", + "reference": "3a6b9a42cd8f8771bd4295d13e1423fa7f3d942c", "shasum": "" }, "require": { @@ -8898,11 +8812,12 @@ }, "conflict": { "doctrine/collections": "<1.6.8", - "doctrine/common": "<2.13.3 || >=3,<3.2.2" + "doctrine/common": "<2.13.3 || >=3 <3.2.2" }, "require-dev": { "doctrine/collections": "^1.6.8", "doctrine/common": "^2.13.3 || ^3.2.2", + "phpspec/prophecy": "^1.10", "phpunit/phpunit": "^7.5.20 || ^8.5.23 || ^9.5.13" }, "type": "library", @@ -8928,7 +8843,7 @@ ], "support": { "issues": "https://github.com/myclabs/DeepCopy/issues", - "source": "https://github.com/myclabs/DeepCopy/tree/1.11.1" + "source": "https://github.com/myclabs/DeepCopy/tree/1.12.0" }, "funding": [ { @@ -8936,7 +8851,7 @@ "type": "tidelift" } ], - "time": "2023-03-08T13:26:56+00:00" + "time": "2024-06-12T14:39:25+00:00" }, { "name": "pdepend/pdepend", @@ -9574,29 +9489,29 @@ }, { "name": "phpunit/php-token-stream", - "version": "3.1.3", + "version": "4.0.4", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-token-stream.git", - "reference": "9c1da83261628cb24b6a6df371b6e312b3954768" + "reference": "a853a0e183b9db7eed023d7933a858fa1c8d25a3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/9c1da83261628cb24b6a6df371b6e312b3954768", - "reference": "9c1da83261628cb24b6a6df371b6e312b3954768", + "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/a853a0e183b9db7eed023d7933a858fa1c8d25a3", + "reference": "a853a0e183b9db7eed023d7933a858fa1c8d25a3", "shasum": "" }, "require": { "ext-tokenizer": "*", - "php": ">=7.1" + "php": "^7.3 || ^8.0" }, "require-dev": { - "phpunit/phpunit": "^7.0" + "phpunit/phpunit": "^9.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.1-dev" + "dev-master": "4.0-dev" } }, "autoload": { @@ -9621,7 +9536,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/php-token-stream/issues", - "source": "https://github.com/sebastianbergmann/php-token-stream/tree/3.1.3" + "source": "https://github.com/sebastianbergmann/php-token-stream/tree/master" }, "funding": [ { @@ -9630,46 +9545,46 @@ } ], "abandoned": true, - "time": "2021-07-26T12:15:06+00:00" + "time": "2020-08-04T08:28:15+00:00" }, { "name": "phpunit/phpunit", - "version": "8.5.38", + "version": "8.5.39", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "1ecad678646c817a29e55a32c930f3601c3f5a8c" + "reference": "172ba97bcf97ae6ef86ca256adf77aece8a143fe" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/1ecad678646c817a29e55a32c930f3601c3f5a8c", - "reference": "1ecad678646c817a29e55a32c930f3601c3f5a8c", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/172ba97bcf97ae6ef86ca256adf77aece8a143fe", + "reference": "172ba97bcf97ae6ef86ca256adf77aece8a143fe", "shasum": "" }, "require": { - "doctrine/instantiator": "^1.3.1", + "doctrine/instantiator": "^1.5.0", "ext-dom": "*", "ext-json": "*", "ext-libxml": "*", "ext-mbstring": "*", "ext-xml": "*", "ext-xmlwriter": "*", - "myclabs/deep-copy": "^1.10.0", - "phar-io/manifest": "^2.0.3", - "phar-io/version": "^3.0.2", + "myclabs/deep-copy": "^1.12.0", + "phar-io/manifest": "^2.0.4", + "phar-io/version": "^3.2.1", "php": ">=7.2", - "phpunit/php-code-coverage": "^7.0.12", - "phpunit/php-file-iterator": "^2.0.4", + "phpunit/php-code-coverage": "^7.0.17", + "phpunit/php-file-iterator": "^2.0.6", "phpunit/php-text-template": "^1.2.1", - "phpunit/php-timer": "^2.1.2", + "phpunit/php-timer": "^2.1.4", "sebastian/comparator": "^3.0.5", - "sebastian/diff": "^3.0.2", - "sebastian/environment": "^4.2.3", - "sebastian/exporter": "^3.1.5", - "sebastian/global-state": "^3.0.0", - "sebastian/object-enumerator": "^3.0.3", - "sebastian/resource-operations": "^2.0.1", - "sebastian/type": "^1.1.3", + "sebastian/diff": "^3.0.6", + "sebastian/environment": "^4.2.5", + "sebastian/exporter": "^3.1.6", + "sebastian/global-state": "^3.0.5", + "sebastian/object-enumerator": "^3.0.5", + "sebastian/resource-operations": "^2.0.3", + "sebastian/type": "^1.1.5", "sebastian/version": "^2.0.1" }, "suggest": { @@ -9712,7 +9627,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/phpunit/issues", "security": "https://github.com/sebastianbergmann/phpunit/security/policy", - "source": "https://github.com/sebastianbergmann/phpunit/tree/8.5.38" + "source": "https://github.com/sebastianbergmann/phpunit/tree/8.5.39" }, "funding": [ { @@ -9728,7 +9643,7 @@ "type": "tidelift" } ], - "time": "2024-04-05T04:31:23+00:00" + "time": "2024-07-10T11:43:00+00:00" }, { "name": "sebastian/code-unit-reverse-lookup", @@ -10460,16 +10375,16 @@ }, { "name": "squizlabs/php_codesniffer", - "version": "3.9.2", + "version": "3.10.2", "source": { "type": "git", "url": "https://github.com/PHPCSStandards/PHP_CodeSniffer.git", - "reference": "aac1f6f347a5c5ac6bc98ad395007df00990f480" + "reference": "86e5f5dd9a840c46810ebe5ff1885581c42a3017" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/PHPCSStandards/PHP_CodeSniffer/zipball/aac1f6f347a5c5ac6bc98ad395007df00990f480", - "reference": "aac1f6f347a5c5ac6bc98ad395007df00990f480", + "url": "https://api.github.com/repos/PHPCSStandards/PHP_CodeSniffer/zipball/86e5f5dd9a840c46810ebe5ff1885581c42a3017", + "reference": "86e5f5dd9a840c46810ebe5ff1885581c42a3017", "shasum": "" }, "require": { @@ -10536,20 +10451,20 @@ "type": "open_collective" } ], - "time": "2024-04-23T20:25:34+00:00" + "time": "2024-07-21T23:26:44+00:00" }, { "name": "symfony/browser-kit", - "version": "v5.4.39", + "version": "v5.4.40", "source": { "type": "git", "url": "https://github.com/symfony/browser-kit.git", - "reference": "4c5d1a88ceee2b1c5c0b400b0137989ec34f70fa" + "reference": "92c8ba1e5ee12d07120744c90898516132b4e58b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/browser-kit/zipball/4c5d1a88ceee2b1c5c0b400b0137989ec34f70fa", - "reference": "4c5d1a88ceee2b1c5c0b400b0137989ec34f70fa", + "url": "https://api.github.com/repos/symfony/browser-kit/zipball/92c8ba1e5ee12d07120744c90898516132b4e58b", + "reference": "92c8ba1e5ee12d07120744c90898516132b4e58b", "shasum": "" }, "require": { @@ -10592,7 +10507,7 @@ "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/v5.4.39" + "source": "https://github.com/symfony/browser-kit/tree/v5.4.40" }, "funding": [ { @@ -10608,20 +10523,20 @@ "type": "tidelift" } ], - "time": "2024-04-18T08:26:06+00:00" + "time": "2024-05-31T14:33:22+00:00" }, { "name": "symfony/css-selector", - "version": "v5.4.39", + "version": "v5.4.40", "source": { "type": "git", "url": "https://github.com/symfony/css-selector.git", - "reference": "0934c9f1d433776f25c629bdc93f3e157d139e08" + "reference": "ea43887e9afd2029509662d4f95e8b5ef6fc9bbb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/css-selector/zipball/0934c9f1d433776f25c629bdc93f3e157d139e08", - "reference": "0934c9f1d433776f25c629bdc93f3e157d139e08", + "url": "https://api.github.com/repos/symfony/css-selector/zipball/ea43887e9afd2029509662d4f95e8b5ef6fc9bbb", + "reference": "ea43887e9afd2029509662d4f95e8b5ef6fc9bbb", "shasum": "" }, "require": { @@ -10658,7 +10573,7 @@ "description": "Converts CSS selectors to XPath expressions", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/css-selector/tree/v5.4.39" + "source": "https://github.com/symfony/css-selector/tree/v5.4.40" }, "funding": [ { @@ -10674,20 +10589,20 @@ "type": "tidelift" } ], - "time": "2024-04-18T08:26:06+00:00" + "time": "2024-05-31T14:33:22+00:00" }, { "name": "symfony/dom-crawler", - "version": "v5.4.39", + "version": "v5.4.40", "source": { "type": "git", "url": "https://github.com/symfony/dom-crawler.git", - "reference": "1dffb111b038412b028caba029240e379fda85b2" + "reference": "2ad469c3e07fdba677b278d0e266071a51aa0dac" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/1dffb111b038412b028caba029240e379fda85b2", - "reference": "1dffb111b038412b028caba029240e379fda85b2", + "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/2ad469c3e07fdba677b278d0e266071a51aa0dac", + "reference": "2ad469c3e07fdba677b278d0e266071a51aa0dac", "shasum": "" }, "require": { @@ -10733,7 +10648,7 @@ "description": "Eases DOM navigation for HTML and XML documents", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/dom-crawler/tree/v5.4.39" + "source": "https://github.com/symfony/dom-crawler/tree/v5.4.40" }, "funding": [ { @@ -10749,20 +10664,20 @@ "type": "tidelift" } ], - "time": "2024-04-18T08:26:06+00:00" + "time": "2024-05-31T14:33:22+00:00" }, { "name": "symfony/phpunit-bridge", - "version": "v5.4.39", + "version": "v5.4.43", "source": { "type": "git", "url": "https://github.com/symfony/phpunit-bridge.git", - "reference": "969b505a61f20c3f56fb3620d51f40bdc4517fb7" + "reference": "047a8afc81d0cfee9799734ed5e2d32ea6079ddb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/phpunit-bridge/zipball/969b505a61f20c3f56fb3620d51f40bdc4517fb7", - "reference": "969b505a61f20c3f56fb3620d51f40bdc4517fb7", + "url": "https://api.github.com/repos/symfony/phpunit-bridge/zipball/047a8afc81d0cfee9799734ed5e2d32ea6079ddb", + "reference": "047a8afc81d0cfee9799734ed5e2d32ea6079ddb", "shasum": "" }, "require": { @@ -10796,7 +10711,8 @@ "Symfony\\Bridge\\PhpUnit\\": "" }, "exclude-from-classmap": [ - "/Tests/" + "/Tests/", + "/bin/" ] }, "notification-url": "https://packagist.org/downloads/", @@ -10816,7 +10732,7 @@ "description": "Provides utilities for PHPUnit, especially user deprecation notices management", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/phpunit-bridge/tree/v5.4.39" + "source": "https://github.com/symfony/phpunit-bridge/tree/v5.4.43" }, "funding": [ { @@ -10832,20 +10748,20 @@ "type": "tidelift" } ], - "time": "2024-04-18T08:26:06+00:00" + "time": "2024-08-13T13:55:12+00:00" }, { "name": "symfony/proxy-manager-bridge", - "version": "v5.4.39", + "version": "v5.4.40", "source": { "type": "git", "url": "https://github.com/symfony/proxy-manager-bridge.git", - "reference": "2af1b394cc8bee0fecc7c8925f7fbc6934efef41" + "reference": "2ebc25e0174a6a244f7edada5a498f9728dc0d29" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/proxy-manager-bridge/zipball/2af1b394cc8bee0fecc7c8925f7fbc6934efef41", - "reference": "2af1b394cc8bee0fecc7c8925f7fbc6934efef41", + "url": "https://api.github.com/repos/symfony/proxy-manager-bridge/zipball/2ebc25e0174a6a244f7edada5a498f9728dc0d29", + "reference": "2ebc25e0174a6a244f7edada5a498f9728dc0d29", "shasum": "" }, "require": { @@ -10883,7 +10799,7 @@ "description": "Provides integration for ProxyManager with various Symfony components", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/proxy-manager-bridge/tree/v5.4.39" + "source": "https://github.com/symfony/proxy-manager-bridge/tree/v5.4.40" }, "funding": [ { @@ -10899,7 +10815,7 @@ "type": "tidelift" } ], - "time": "2024-04-18T08:26:06+00:00" + "time": "2024-05-31T14:33:22+00:00" }, { "name": "theseer/tokenizer", @@ -10954,11 +10870,13 @@ ], "aliases": [], "minimum-stability": "stable", - "stability-flags": [], + "stability-flags": { + "openconext/saml-value-object": 20 + }, "prefer-stable": false, "prefer-lowest": false, "platform": { - "php": "<=7.4", + "php": "^8.2", "ext-dom": "*", "ext-json": "*", "ext-mbstring": "*", @@ -10966,7 +10884,7 @@ }, "platform-dev": [], "platform-overrides": { - "php": "7.2.34" + "php": "8.2" }, "plugin-api-version": "2.6.0" } diff --git a/library/EngineBlock/Application/DiContainer.php b/library/EngineBlock/Application/DiContainer.php index c0c60528c9..2e128d23dc 100644 --- a/library/EngineBlock/Application/DiContainer.php +++ b/library/EngineBlock/Application/DiContainer.php @@ -28,7 +28,7 @@ use OpenConext\EngineBlock\Validator\AllowedSchemeValidator; use Symfony\Component\DependencyInjection\ContainerInterface as SymfonyContainerInterface; -class EngineBlock_Application_DiContainer extends Pimple +class EngineBlock_Application_DiContainer extends Pimple\Container { const ATTRIBUTE_METADATA = 'attributeMetadata'; const ATTRIBUTE_DEFINITIONS_DENORMALIZED = 'attributeDefinitionsDenormalized'; diff --git a/web/app.php b/web/app.php index 2ec40001f4..5c41ab2978 100644 --- a/web/app.php +++ b/web/app.php @@ -5,14 +5,14 @@ $loader = require __DIR__.'/../app/autoload.php'; require_once __DIR__.'/../app/AppKernel.php'; -$symfonyEnvironment = getenv('SYMFONY_ENV') ?: 'prod'; +$symfonyEnvironment = getenv('SYMFONY_ENV') ?: 'dev'; $request = Request::createFromGlobals(); $kernel = new AppKernel($symfonyEnvironment, false); $kernel->boot(); $trustedProxies = $kernel->getContainer()->getParameter('trusted_proxies'); -Request::setTrustedProxies($trustedProxies, Request::HEADER_X_FORWARDED_ALL); +//Request::setTrustedProxies($trustedProxies, Request::HEADER_X_FORWARDED_ALL); $response = $kernel->handle($request); $response->send(); From 140123d30cdb402f2e94c4e585cd499f4388f604 Mon Sep 17 00:00:00 2001 From: Michiel Kodde Date: Thu, 19 Sep 2024 10:46:13 +0200 Subject: [PATCH 28/35] Repair the routing configuration --- app/config/config_dev.yml | 2 +- app/config/routing_dev.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/config/config_dev.yml b/app/config/config_dev.yml index 34ed5d3273..386c2895f3 100644 --- a/app/config/config_dev.yml +++ b/app/config/config_dev.yml @@ -16,7 +16,7 @@ framework: - '%kernel.project_dir%/theme/base/translations' - '%kernel.project_dir%/theme/%theme.name%/translations' router: - resource: "%kernel.project_dir%/config/routing_dev.yml" + resource: '%kernel.project_dir%/app/config/routing_dev.yml' strict_requirements: true profiler: { only_exceptions: false } diff --git a/app/config/routing_dev.yml b/app/config/routing_dev.yml index 6b90a6b838..9cf5aa2392 100644 --- a/app/config/routing_dev.yml +++ b/app/config/routing_dev.yml @@ -7,7 +7,7 @@ _profiler: prefix: /_profiler _errors: - resource: "@TwigBundle/Resources/config/routing/errors.xml" + resource: '@FrameworkBundle/Resources/config/routing/errors.xml' prefix: /_error _main: From 345a68f4ce72e12adcce119b3c19967c2e27f290 Mon Sep 17 00:00:00 2001 From: Bart Geesink Date: Thu, 19 Sep 2024 15:28:32 +0200 Subject: [PATCH 29/35] Use php82 for the integration tests. First try --- .github/workflows/behat.yml | 31 +++++++++++++ docker/{php-fpm => config}/apache2.conf | 5 ++- docker/docker-compose-php72.yml | 6 --- docker/docker-compose-php82.yml | 6 --- docker/docker-compose.yml | 43 ++++-------------- docker/nginx/nginx.conf | 58 ------------------------- docker/php-fpm/Dockerfile-php72 | 15 ------- docker/php-fpm/Dockerfile-php82 | 15 ------- docker/php-fpm/app.ini | 2 - 9 files changed, 43 insertions(+), 138 deletions(-) create mode 100644 .github/workflows/behat.yml rename docker/{php-fpm => config}/apache2.conf (91%) delete mode 100644 docker/docker-compose-php72.yml delete mode 100644 docker/docker-compose-php82.yml delete mode 100644 docker/nginx/nginx.conf delete mode 100644 docker/php-fpm/Dockerfile-php72 delete mode 100644 docker/php-fpm/Dockerfile-php82 delete mode 100644 docker/php-fpm/app.ini diff --git a/.github/workflows/behat.yml b/.github/workflows/behat.yml new file mode 100644 index 0000000000..7d55905639 --- /dev/null +++ b/.github/workflows/behat.yml @@ -0,0 +1,31 @@ +name: Run QA tests (static analysis, lint and unit tests) +on: [pull_request] + +jobs: + run-qa-tests: + runs-on: ubuntu-latest + + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: chown some dirs + run: | + mkdir tmp vendor && sudo chown -R 33 app/ theme/ web/ tmp/ vendor/ + + - name: Start the containers + run: cd docker && docker compose up -d + + - name: Run composer and yarn install + run: | + cd docker && + docker compose exec -T --user www-data web.vm.openconext.org bash -c ' + SYMFONY_ENV=ci composer install --prefer-dist -n -o --ignore-platform-reqs && \ + ./app/console cache:clear --env=ci && \ + cd theme && CYPRESS_INSTALL_BINARY=0 yarn install --frozen-lockfile && EB_THEME=skeune yarn build + ' + + - name: Run test curl + run: | + cd docker && + docker compose exec web.vm.openconext.org bash -c 'curl https://engine.vm.openconext.org/info' diff --git a/docker/php-fpm/apache2.conf b/docker/config/apache2.conf similarity index 91% rename from docker/php-fpm/apache2.conf rename to docker/config/apache2.conf index 51c48107b1..9cd1fa5c50 100644 --- a/docker/php-fpm/apache2.conf +++ b/docker/config/apache2.conf @@ -1,6 +1,7 @@ +LoadModule ssl_module /usr/lib/apache2/modules/mod_ssl.so - DocumentRoot /opt/openconext/OpenConext-engineblock/web - + DocumentRoot /var/www/html/web/ + Require all granted Options -MultiViews RewriteEngine On diff --git a/docker/docker-compose-php72.yml b/docker/docker-compose-php72.yml deleted file mode 100644 index f0da915366..0000000000 --- a/docker/docker-compose-php72.yml +++ /dev/null @@ -1,6 +0,0 @@ -version: '2.4' - -services: - php-fpm.vm.openconext.org: - build: - dockerfile: docker/php-fpm/Dockerfile-php72 diff --git a/docker/docker-compose-php82.yml b/docker/docker-compose-php82.yml deleted file mode 100644 index f939712621..0000000000 --- a/docker/docker-compose-php82.yml +++ /dev/null @@ -1,6 +0,0 @@ -version: '2.4' - -services: - php-fpm.vm.openconext.org: - build: - dockerfile: docker/php-fpm/Dockerfile-php82 diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml index 8d33d39f15..7ae23a600a 100644 --- a/docker/docker-compose.yml +++ b/docker/docker-compose.yml @@ -1,9 +1,7 @@ -version: '2.4' - services: db.vm.openconext.org: - image: mariadb:10.2 + image: mariadb:10.6 restart: always container_name: eb-db environment: @@ -20,7 +18,7 @@ services: retries: 20 db-test.vm.openconext.org: - image: mariadb:10.2 + image: mariadb:10.6 restart: always container_name: eb-db-test environment: @@ -37,14 +35,11 @@ services: retries: 20 interval: 2s - php-fpm.vm.openconext.org: - build: - context: ../ - # override this in a dedicated dockerfile per php version - # dockerfile: docker/php-fpm/Dockerfile - container_name: eb-phpfpm + web.vm.openconext.org: + image: ghcr.io/openconext/openconext-basecontainers/php82-apache2-node20-composer2:latest volumes: - - ../:/opt/openconext/OpenConext-engineblock + - ../:/var/www/html/ + - ./config/apache2.conf:/etc/apache2/sites-enabled/appconf.conf - ../ci/qa-config/files/engine.vm.openconext.org.crt:/etc/apache2/ssl/engine.vm.openconext.org.crt - ../ci/qa-config/files/engine.vm.openconext.org.key:/etc/apache2/ssl/engine.vm.openconext.org.key depends_on: @@ -62,30 +57,10 @@ services: aliases: - engine.vm.openconext.org - selenium.vm.openconext.org: - image: selenium/standalone-chrome:2.53.1 - container_name: eb-selenium - user: "${UID}:${GID}" - environment: - START_XVFB: "false" - volumes: - - /dev/shm:/dev/shm - healthcheck: - test: ["CMD", "/opt/bin/check-grid.sh:", "--host", "0.0.0.0", "--port", "4444"] - timeout: 30s - retries: 5 - interval: 15s - - cypress: - image: "cypress/included:13.1.0" - environment: - - CYPRESS_baseUrl=https://engine.vm.openconext.org - working_dir: /e2e - entrypoint: cypress open --project . - volumes: - - ../tests:/e2e - - ../theme:/theme volumes: eb-mysql-data: eb-mysql-test-data: + + + diff --git a/docker/nginx/nginx.conf b/docker/nginx/nginx.conf deleted file mode 100644 index d4f5a4e61d..0000000000 --- a/docker/nginx/nginx.conf +++ /dev/null @@ -1,58 +0,0 @@ -server { - listen 443 ssl; - server_name engine.vm.openconext.org; - root /var/www/web; - - ssl_certificate /etc/nginx/certs/engine.vm.openconext.org.crt; - ssl_certificate_key /etc/nginx/certs/engine.vm.openconext.org.key; - - - location / { - # try to serve file directly, fallback to app.php - try_files $uri /app.php$is_args$args; - } - - # optionally disable falling back to PHP script for the asset directories; - # nginx will return a 404 error when files are not found instead of passing the - # request to Symfony (improves performance but Symfony's 404 page is not displayed) - # location /bundles { - # try_files $uri =404; - # } - - location ~ ^/app\.php(/|$) { - fastcgi_pass php-fpm.vm.openconext.org:9000; - - fastcgi_split_path_info ^(.+\.php)(/.*)$; - include fastcgi_params; - - # optionally set the value of the environment variables used in the application - # fastcgi_param APP_ENV prod; - # fastcgi_param APP_SECRET ; - # fastcgi_param DATABASE_URL "mysql://db_user:db_pass@host:3306/db_name"; - fastcgi_param ENGINEBLOCK_ENV ci; - fastcgi_param SYMFONY_ENV ci; - - # When you are using symlinks to link the document root to the - # current version of your application, you should pass the real - # application path instead of the path to the symlink to PHP - # FPM. - # Otherwise, PHP's OPcache may not properly detect changes to - # your PHP files (see https://github.com/zendtech/ZendOptimizerPlus/issues/126 - # for more information). - fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name; - fastcgi_param DOCUMENT_ROOT $realpath_root; - # Prevents URIs that include the front controller. This will 404: - # http://domain.tld/index.php/some-path - # Remove the internal directive to allow URIs like this - internal; - } - - # return 404 for all other php files not matching the front controller - # this prevents access to other php files you don't want to be accessible. - location ~ \.php$ { - return 404; - } - - error_log /proc/self/fd/2; - access_log /proc/self/fd/2; -} diff --git a/docker/php-fpm/Dockerfile-php72 b/docker/php-fpm/Dockerfile-php72 deleted file mode 100644 index 57bc5dbd7e..0000000000 --- a/docker/php-fpm/Dockerfile-php72 +++ /dev/null @@ -1,15 +0,0 @@ -FROM ghcr.io/openconext/openconext-basecontainers/php72-apache2-node16-composer2:latest - -RUN a2enmod ssl -# Copy phpfpm config -COPY docker/php-fpm/app.ini /usr/local/etc/php/conf.d/ -RUN rm -rf /etc/apache2/sites-enabled/* -COPY docker/php-fpm/apache2.conf /etc/apache2/sites-enabled/ -RUN chown -R www-data: /var/www/ -WORKDIR /opt/openconext/OpenConext-engineblock - -# Copy keys and config -COPY ci/qa-config/files/ /etc/openconext -EXPOSE 443 -CMD ["apache2-foreground"] - diff --git a/docker/php-fpm/Dockerfile-php82 b/docker/php-fpm/Dockerfile-php82 deleted file mode 100644 index 439cf46d24..0000000000 --- a/docker/php-fpm/Dockerfile-php82 +++ /dev/null @@ -1,15 +0,0 @@ -FROM ghcr.io/openconext/openconext-basecontainers/php82-apache2-node16-composer2:latest - -RUN a2enmod ssl - - -COPY docker/php-fpm/app.ini /usr/local/etc/php/conf.d/ -COPY docker/php-fpm/apache2.conf /etc/apache2/sites-enabled/ -RUN chown -R www-data: /var/www/ -WORKDIR /opt/openconext/OpenConext-engineblock - -# Copy keys and config -COPY ci/qa-config/files/ /etc/openconext -EXPOSE 443 -CMD ["apache2-foreground"] - diff --git a/docker/php-fpm/app.ini b/docker/php-fpm/app.ini deleted file mode 100644 index 5793e44562..0000000000 --- a/docker/php-fpm/app.ini +++ /dev/null @@ -1,2 +0,0 @@ -date.timezone = Europe/Amsterdam -memory_limit = -1 From a65e779f911359d87d13277b888dc42e935d837a Mon Sep 17 00:00:00 2001 From: Bart Geesink Date: Thu, 19 Sep 2024 15:34:54 +0200 Subject: [PATCH 30/35] Behat test workflow: chown the cache dir --- .github/workflows/behat.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/behat.yml b/.github/workflows/behat.yml index 7d55905639..67efe82cf9 100644 --- a/.github/workflows/behat.yml +++ b/.github/workflows/behat.yml @@ -19,9 +19,10 @@ jobs: - name: Run composer and yarn install run: | cd docker && - docker compose exec -T --user www-data web.vm.openconext.org bash -c ' + docker compose exec -T web.vm.openconext.org bash -c ' SYMFONY_ENV=ci composer install --prefer-dist -n -o --ignore-platform-reqs && \ ./app/console cache:clear --env=ci && \ + chown -R www-data /var/www/html/app/cache && \ cd theme && CYPRESS_INSTALL_BINARY=0 yarn install --frozen-lockfile && EB_THEME=skeune yarn build ' From 79fa09eab5241073c8d7ddef16527ec82a74e4e2 Mon Sep 17 00:00:00 2001 From: Bart Geesink Date: Thu, 19 Sep 2024 15:39:39 +0200 Subject: [PATCH 31/35] Behat tests: The apache config needs a listen directive --- docker/config/apache2.conf | 1 + 1 file changed, 1 insertion(+) diff --git a/docker/config/apache2.conf b/docker/config/apache2.conf index 9cd1fa5c50..195170b136 100644 --- a/docker/config/apache2.conf +++ b/docker/config/apache2.conf @@ -1,3 +1,4 @@ +Listen 443 LoadModule ssl_module /usr/lib/apache2/modules/mod_ssl.so DocumentRoot /var/www/html/web/ From 4bbfb4cca4fce6203d0bf91161527a3dde523ace Mon Sep 17 00:00:00 2001 From: Bart Geesink Date: Thu, 19 Sep 2024 15:39:56 +0200 Subject: [PATCH 32/35] Behat workflow: Let curl work --- .github/workflows/behat.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/behat.yml b/.github/workflows/behat.yml index 67efe82cf9..ec8e0def2e 100644 --- a/.github/workflows/behat.yml +++ b/.github/workflows/behat.yml @@ -29,4 +29,4 @@ jobs: - name: Run test curl run: | cd docker && - docker compose exec web.vm.openconext.org bash -c 'curl https://engine.vm.openconext.org/info' + docker compose exec web.vm.openconext.org bash -c 'curl -k https://engine.vm.openconext.org/info' From 5eefda3167e4bb28f5e6c85101e2da64d5385954 Mon Sep 17 00:00:00 2001 From: Bart Geesink Date: Thu, 19 Sep 2024 15:48:44 +0200 Subject: [PATCH 33/35] Behat workflow: Chown the logs dir --- .github/workflows/behat.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/behat.yml b/.github/workflows/behat.yml index ec8e0def2e..15657de784 100644 --- a/.github/workflows/behat.yml +++ b/.github/workflows/behat.yml @@ -23,6 +23,7 @@ jobs: SYMFONY_ENV=ci composer install --prefer-dist -n -o --ignore-platform-reqs && \ ./app/console cache:clear --env=ci && \ chown -R www-data /var/www/html/app/cache && \ + chown -R www-data /var/www/html/app/logs && \ cd theme && CYPRESS_INSTALL_BINARY=0 yarn install --frozen-lockfile && EB_THEME=skeune yarn build ' From 52075814584c0f41f30c152a0ab9f3bf1de0fe12 Mon Sep 17 00:00:00 2001 From: Stephan Kok Date: Fri, 13 Dec 2024 12:00:02 +0100 Subject: [PATCH 34/35] Implement custom serializable to exclude DOMDocuments --- app/logs/.gitkeep | 0 .../Module/Service/AssertionConsumer.php | 2 +- .../Corto/Module/Service/SingleSignOn.php | 2 +- .../Saml2/AuthnRequestAnnotationDecorator.php | 46 ++++++++++++- .../Saml2/AuthnRequestSessionRepository.php | 5 +- .../Saml2/ResponseAnnotationDecorator.php | 68 +++++++++++++++++-- .../Controller/ServiceProviderController.php | 1 - 7 files changed, 112 insertions(+), 12 deletions(-) mode change 100644 => 100755 app/logs/.gitkeep diff --git a/app/logs/.gitkeep b/app/logs/.gitkeep old mode 100644 new mode 100755 diff --git a/library/EngineBlock/Corto/Module/Service/AssertionConsumer.php b/library/EngineBlock/Corto/Module/Service/AssertionConsumer.php index cc7db2f110..ab25b22cb6 100644 --- a/library/EngineBlock/Corto/Module/Service/AssertionConsumer.php +++ b/library/EngineBlock/Corto/Module/Service/AssertionConsumer.php @@ -143,7 +143,7 @@ public function serve($serviceName, Request $httpRequest) } if ($receivedRequest->isDebugRequest()) { - $_SESSION['debugIdpResponse'] = $receivedResponse; + $_SESSION['debugIdpResponse'] = serialize($receivedResponse); $requestId = $receivedResponse->getInResponseTo(); // Authentication state needs to be registered here as the debug flow differs from the regular flow, diff --git a/library/EngineBlock/Corto/Module/Service/SingleSignOn.php b/library/EngineBlock/Corto/Module/Service/SingleSignOn.php index 66ba87231b..bee604d68f 100644 --- a/library/EngineBlock/Corto/Module/Service/SingleSignOn.php +++ b/library/EngineBlock/Corto/Module/Service/SingleSignOn.php @@ -683,7 +683,7 @@ private function _displayDebugResponse($serviceName) } /** @var Response|EngineBlock_Saml2_ResponseAnnotationDecorator $response */ - $response = $_SESSION['debugIdpResponse']; + $response = unserialize($_SESSION['debugIdpResponse']); $log = $this->_server->getLogger(); $log->info( diff --git a/library/EngineBlock/Saml2/AuthnRequestAnnotationDecorator.php b/library/EngineBlock/Saml2/AuthnRequestAnnotationDecorator.php index 2f10449b46..c9355f9896 100644 --- a/library/EngineBlock/Saml2/AuthnRequestAnnotationDecorator.php +++ b/library/EngineBlock/Saml2/AuthnRequestAnnotationDecorator.php @@ -18,6 +18,7 @@ use OpenConext\EngineBlock\Metadata\Loa; use SAML2\AuthnRequest; +use SAML2\DOMDocumentFactory; /** * @method getProxyCount() @@ -25,7 +26,7 @@ * @method getForceAuthn() * @method toUnsignedXML() */ -class EngineBlock_Saml2_AuthnRequestAnnotationDecorator extends EngineBlock_Saml2_MessageAnnotationDecorator +class EngineBlock_Saml2_AuthnRequestAnnotationDecorator extends EngineBlock_Saml2_MessageAnnotationDecorator implements Serializable { /** * @var AuthnRequest @@ -60,9 +61,9 @@ class EngineBlock_Saml2_AuthnRequestAnnotationDecorator extends EngineBlock_Saml /** * @param AuthnRequest $request */ - public function __construct(AuthnRequest $request) + public function __construct(AuthnRequest $sspMessage) { - $this->sspMessage = $request; + $this->sspMessage = $sspMessage; } /** @@ -184,4 +185,43 @@ public function setForceAuthn(bool $isForceAuthn) { $this->sspMessage->setForceAuthn($isForceAuthn); } + + /** + * Since php 8 serialisation of the DOMDocument is no longer supported. This means that the sspMessage (AuthnRequest) + * is no longer serializable. However since the AuthnRequest is a xml request converted to a php object we can save + * the object by converted it back to its XML message, save it in cache and rebuild the object. + * + * Do note that any newly added fields to the decorator class (this class) will have to be added to the data array + * to be saved in session storage. + */ + public function serialize() + { + $requestXML = $this->sspMessage->toUnsignedXML(); + $requestStringXML = $requestXML->ownerDocument->saveXML(); + $data = array( + "sspMessage" => $requestStringXML, + "keyId" => $this->keyId, + "wasSigned" => $this->wasSigned, + "debug" => $this->debug, + "unsolicited" => $this->unsolicited, + "transparent" => $this->transparent, + + "deliverByBinding" => $this->deliverByBinding, // from extended wrapper + ); + return serialize($data); + } + + public function unserialize(string $data) + { + $data = unserialize($data); + $dom = DOMDocumentFactory::fromString($data['sspMessage']); + $this->sspMessage = new AuthnRequest($dom->firstChild); + $this->keyId = $data['keyId']; + $this->wasSigned = $data['wasSigned']; + $this->debug = $data['debug']; + $this->unsolicited = $data['unsolicited']; + $this->transparent = $data['transparent']; + + $this->deliverByBinding = $data['deliverByBinding']; + } } diff --git a/library/EngineBlock/Saml2/AuthnRequestSessionRepository.php b/library/EngineBlock/Saml2/AuthnRequestSessionRepository.php index be612b395c..667ec9791b 100644 --- a/library/EngineBlock/Saml2/AuthnRequestSessionRepository.php +++ b/library/EngineBlock/Saml2/AuthnRequestSessionRepository.php @@ -64,7 +64,8 @@ public function findRequestById($requestId) return null; } - return $this->requestStorage[$requestId]; + $serializedRequest = $this->requestStorage[$requestId]; + return unserialize($serializedRequest); } /** @@ -90,7 +91,7 @@ public function store( EngineBlock_Saml2_AuthnRequestAnnotationDecorator $spRequest ) { // Store the original Request - $this->requestStorage[$spRequest->getId()] = $spRequest; + $this->requestStorage[$spRequest->getId()] = serialize($spRequest); return $this; } diff --git a/library/EngineBlock/Saml2/ResponseAnnotationDecorator.php b/library/EngineBlock/Saml2/ResponseAnnotationDecorator.php index 366781a56e..5ca14feb06 100644 --- a/library/EngineBlock/Saml2/ResponseAnnotationDecorator.php +++ b/library/EngineBlock/Saml2/ResponseAnnotationDecorator.php @@ -17,6 +17,7 @@ */ use SAML2\Assertion; +use SAML2\DOMDocumentFactory; use SAML2\EncryptedAssertion; use SAML2\Response; use SAML2\XML\saml\NameID; @@ -28,7 +29,7 @@ * @method void setAssertions(array) * @method void setIssuer(string) */ -class EngineBlock_Saml2_ResponseAnnotationDecorator extends EngineBlock_Saml2_MessageAnnotationDecorator +class EngineBlock_Saml2_ResponseAnnotationDecorator extends EngineBlock_Saml2_MessageAnnotationDecorator implements Serializable { /** * @var Response @@ -83,11 +84,11 @@ class EngineBlock_Saml2_ResponseAnnotationDecorator extends EngineBlock_Saml2_Me protected $isTransparentErrorResponse = false; /** - * @param Response $response + * @param Response $sspMessage */ - function __construct(Response $response) + function __construct(Response $sspMessage) { - $this->sspMessage = $response; + $this->sspMessage = $sspMessage; } /** @@ -308,4 +309,63 @@ public function setIsTransparentErrorResponse(bool $isTransparentErrorResponse): { $this->isTransparentErrorResponse = $isTransparentErrorResponse; } + + public function getSspMessage(): Response + { + return $this->sspMessage; + } + + public function setSspMessage(Response $sspMessage): void + { + $this->sspMessage = $sspMessage; + } + + /** + * Since php 8 serialisation of the DOMDocument is no longer supported. This means that the sspMessage (AuthnRequest) + * is no longer serializable. However since the AuthnRequest is a xml request converted to a php object we can save + * the object by converted it back to its XML message, save it in cache and rebuild the object. + * + * Do note that any newly added fields to the decorator class (this class) will have to be added to the data array + * to be saved in session storage. + */ + public function serialize() + { + $requestXML = $this->sspMessage->toUnsignedXML(); + $requestStringXML = $requestXML->ownerDocument->saveXML(); + $data = array( + "sspMessage" => $requestStringXML, + "return" => $this->return, + "originalIssuer" => $this->originalIssuer, + "originalNameId" => $this->originalNameId, + "originalBinding" => $this->originalBinding, + "originalResponse" => $this->originalResponse, + "collabPersonId" => $this->collabPersonId, + "customNameId" => $this->customNameId, + "intendedNameId" => $this->intendedNameId, + "pdpRequestedLoas" => $this->pdpRequestedLoas, + "isTransparentErrorResponse" => $this->isTransparentErrorResponse, + + "deliverByBinding" => $this->deliverByBinding, // from extended wrapper + ); + return serialize($data); + } + + public function unserialize(string $data) + { + $data = unserialize($data); + $dom = DOMDocumentFactory::fromString($data['sspMessage']); + $this->sspMessage = new Response($dom->firstChild); + $this->return = $data['return']; + $this->originalIssuer = $data['originalIssuer']; + $this->originalNameId = $data['originalNameId']; + $this->originalBinding = $data['originalBinding']; + $this->originalResponse = $data['originalResponse']; + $this->collabPersonId = $data['collabPersonId']; + $this->customNameId = $data['customNameId']; + $this->intendedNameId = $data['intendedNameId']; + $this->pdpRequestedLoas = $data['pdpRequestedLoas']; + $this->isTransparentErrorResponse = $data['isTransparentErrorResponse']; + + $this->deliverByBinding = $data['deliverByBinding']; + } } diff --git a/src/OpenConext/EngineBlockBundle/Controller/ServiceProviderController.php b/src/OpenConext/EngineBlockBundle/Controller/ServiceProviderController.php index dadade4229..50e37779ae 100644 --- a/src/OpenConext/EngineBlockBundle/Controller/ServiceProviderController.php +++ b/src/OpenConext/EngineBlockBundle/Controller/ServiceProviderController.php @@ -23,7 +23,6 @@ use OpenConext\EngineBlock\Validator\RequestValidator; use OpenConext\EngineBlockBridge\ResponseFactory; use Symfony\Component\HttpFoundation\Request; -use Symfony\Component\HttpFoundation\Session\Session; class ServiceProviderController implements AuthenticationLoopThrottlingController { From 6873c468e09a5668384e4db4230a480145ad5177 Mon Sep 17 00:00:00 2001 From: Stephan Kok Date: Fri, 13 Dec 2024 13:22:17 +0100 Subject: [PATCH 35/35] Fix unintentional permission change on file --- app/logs/.gitkeep | 0 1 file changed, 0 insertions(+), 0 deletions(-) mode change 100755 => 100644 app/logs/.gitkeep diff --git a/app/logs/.gitkeep b/app/logs/.gitkeep old mode 100755 new mode 100644