From 61e0c5f420f6ad6ec1cd1b1a0d72373d5489f75a Mon Sep 17 00:00:00 2001 From: Michiel Kodde Date: Mon, 20 Nov 2023 12:03:15 +0100 Subject: [PATCH] Support overriding StepUp EntityId --- .github/workflows/test-integration.yml | 1 - CHANGELOG.md | 3 + UPGRADING.md | 19 + app/config/config.yml | 2 + app/config/config_test.yml | 1 + app/config/functional_testing.yml.dist | 1 + app/config/parameters.yml.dist | 2 + composer.lock | 1306 +++++++++++------ .../Factory/ServiceProviderFactory.php | 23 +- .../TestFeatureConfiguration.php | 1 + .../Resources/config/services.yml | 2 + .../Features/Context/EngineBlockContext.php | 7 - .../Features/StepupKeyRollover.feature | 35 + .../Resources/config/services.yml | 26 +- tests/behat.yml | 5 +- 15 files changed, 947 insertions(+), 487 deletions(-) create mode 100644 src/OpenConext/EngineBlockFunctionalTestingBundle/Features/StepupKeyRollover.feature diff --git a/.github/workflows/test-integration.yml b/.github/workflows/test-integration.yml index e1af0be942..bb23e50c75 100644 --- a/.github/workflows/test-integration.yml +++ b/.github/workflows/test-integration.yml @@ -35,7 +35,6 @@ jobs: ./app/console cache:clear --env=ci && \ cd theme && CYPRESS_INSTALL_BINARY=0 yarn install --frozen-lockfile && EB_THEME=skeune yarn build ' - - name: Run code quality tests if: always() run: | diff --git a/CHANGELOG.md b/CHANGELOG.md index 4bdc6f8be9..b4d3c51310 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,9 @@ We will continue to post relevant release notes on the GitHub release page. More More information about our release strategy can be found in the [Development Guidelines](https://github.com/OpenConext/OpenConext-engineblock/wiki/Development-Guidelines#release-notes) on the EngineBlock wiki. +## 6.14.0 +* A new feature was added to allow overwriting the internal StepUp auth EntityId + ## 6.13.0 * Move most HTML from translatable strings into Twig templates, where it diff --git a/UPGRADING.md b/UPGRADING.md index add15b5fd9..cc61cebbbe 100644 --- a/UPGRADING.md +++ b/UPGRADING.md @@ -1,5 +1,24 @@ # UPGRADE NOTES +## 6.13 -> 6.14 +Previously the SAML EntityID of the EngineBlock SP that was used to do Stepup (SFO) authentications to the Stepup-Gateway +always was https:///authentication/stepup/metadata. For these authentication the default +EngineBlock key is always used for signing. + +If you'd like to key-rollover the StepUp entity (baked into EngineBlock). +The key used to sign the SAML AuthnRequests from this SP is the engineblock default key. + +To facilitate a rolling configuration update I want the SP entityID that is used for Stepup to be configurable so that at the same time that the engineblock default key is updated, this entityID can be changed. This then allows two entities, with two different keys, to be configured in the Stepup-Gateway. + +There are two new parameters that configure this behavior. + +1. `feature_stepup_sfo_override_engine_entityid` [bool] enables/disables the feature. Default: disabled +2. `stepup.sfo.override_engine_entityid` [string] should be set with the Entity ID you'd like to use for the stepup EntityId. Default: '' + +The feature flag was added mainly to aid our test suite to easily test this feature. + +By default this feature is disabled and the default Entity Id is used for the StepUp entity. + ## 6.12 -> 6.13 Some translatable strings have been changed and "raw" use of HTML in diff --git a/app/config/config.yml b/app/config/config.yml index 00dc0aefb4..5079db3c20 100644 --- a/app/config/config.yml +++ b/app/config/config.yml @@ -27,6 +27,8 @@ open_conext_engine_block: eb.enable_sso_notification: "%feature_enable_sso_notification%" eb.feature_enable_consent: "%feature_enable_consent%" eb.enable_sso_session_cookie: "%feature_enable_sso_session_cookie%" + eb.stepup.sfo.override_engine_entityid: "%feature_stepup_sfo_override_engine_entityid%" + swiftmailer: transport: "%mailer_transport%" diff --git a/app/config/config_test.yml b/app/config/config_test.yml index 74e1989631..8fff176bbf 100644 --- a/app/config/config_test.yml +++ b/app/config/config_test.yml @@ -48,6 +48,7 @@ monolog: activation_strategy: engineblock.logger.manual_or_error_activation_strategy passthru_level: "%logger.fingers_crossed.passthru_level%" handler: file + channels: ['!event'] file: type: stream path: "%kernel.logs_dir%/%kernel.environment%.log" diff --git a/app/config/functional_testing.yml.dist b/app/config/functional_testing.yml.dist index 5a303c6cab..546e5b4281 100644 --- a/app/config/functional_testing.yml.dist +++ b/app/config/functional_testing.yml.dist @@ -5,3 +5,4 @@ parameters: # Where must we store the writable state of the Mock IdP and Mock SP? idp_fixture_file: "%kernel.root_dir%/../tmp/fixtures/db/idp.states.php.serialized" sp_fixture_file: "%kernel.root_dir%/../tmp/fixtures/db/sp.states.php.serialized" + stepup.sfo.override_engine_entityid: 'https://engine.vm.openconext.com/new/stepup/metadata' diff --git a/app/config/parameters.yml.dist b/app/config/parameters.yml.dist index 42b9c0bfb4..ad4fe2b23a 100644 --- a/app/config/parameters.yml.dist +++ b/app/config/parameters.yml.dist @@ -223,6 +223,7 @@ parameters: feature_run_all_manipulations_prior_to_consent: false feature_block_user_on_violation: false feature_enable_consent: true + feature_stepup_sfo_override_engine_entityid: false ########################################################################################## ## PROFILE SETTINGS @@ -261,6 +262,7 @@ parameters: stepup.gateway.sfo.sso_location: 'https://gateway.stepup.vm.openconext.org/second-factor-only/single-sign-on' ## The public key from the Stepup Gateway IdP stepup.gateway.sfo.key_file: /etc/openconext/engineblock.crt + stepup.sfo.override_engine_entityid: 'https://engine.vm.openconext.com/new/stepup/metadata' ########################################################################################## ## THEME SETTINGS diff --git a/composer.lock b/composer.lock index da6573f160..2d7a47ba09 100644 --- a/composer.lock +++ b/composer.lock @@ -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,38 +208,42 @@ "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": "1.13.0", "source": { "type": "git", "url": "https://github.com/doctrine/cache.git", - "reference": "163074496dc7c3c7b8ccbf3d4376c0187424ed81" + "reference": "56cd022adb5514472cb144c087393c1821911d09" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/cache/zipball/163074496dc7c3c7b8ccbf3d4376c0187424ed81", - "reference": "163074496dc7c3c7b8ccbf3d4376c0187424ed81", + "url": "https://api.github.com/repos/doctrine/cache/zipball/56cd022adb5514472cb144c087393c1821911d09", + "reference": "56cd022adb5514472cb144c087393c1821911d09", "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", + "doctrine/coding-standard": "^9", "mongodb/mongodb": "^1.1", - "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", "predis/predis": "~1.0", - "psr/cache": "^1.0 || ^2.0", - "symfony/cache": "^4.4 || ^5.2" + "psr/cache": "^1.0 || ^2.0 || ^3.0", + "symfony/cache": "^4.4 || ^5.4 || ^6", + "symfony/var-exporter": "^4.4 || ^5.4 || ^6" }, "suggest": { "alcaeus/mongo-php-adapter": "Required to use legacy MongoDB driver" @@ -277,6 +293,10 @@ "redis", "xcache" ], + "support": { + "issues": "https://github.com/doctrine/cache/issues", + "source": "https://github.com/doctrine/cache/tree/1.13.0" + }, "funding": [ { "url": "https://www.doctrine-project.org/sponsorship.html", @@ -291,30 +311,31 @@ "type": "tidelift" } ], - "time": "2021-05-18T16:45:32+00:00" + "time": "2022-05-20T20:06:54+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,7 +377,11 @@ "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", @@ -439,6 +464,10 @@ "doctrine", "php" ], + "support": { + "issues": "https://github.com/doctrine/common/issues", + "source": "https://github.com/doctrine/common/tree/2.13.x" + }, "funding": [ { "url": "https://www.doctrine-project.org/sponsorship.html", @@ -457,30 +486,35 @@ }, { "name": "doctrine/dbal", - "version": "v2.10.1", + "version": "2.13.9", "source": { "type": "git", "url": "https://github.com/doctrine/dbal.git", - "reference": "c2b8e6e82732a64ecde1cddf9e1e06cb8556e3d8" + "reference": "c480849ca3ad6706a39c970cdfe6888fa8a058b8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/dbal/zipball/c2b8e6e82732a64ecde1cddf9e1e06cb8556e3d8", - "reference": "c2b8e6e82732a64ecde1cddf9e1e06cb8556e3d8", + "url": "https://api.github.com/repos/doctrine/dbal/zipball/c480849ca3ad6706a39c970cdfe6888fa8a058b8", + "reference": "c480849ca3ad6706a39c970cdfe6888fa8a058b8", "shasum": "" }, "require": { - "doctrine/cache": "^1.0", + "doctrine/cache": "^1.0|^2.0", + "doctrine/deprecations": "^0.5.3|^1", "doctrine/event-manager": "^1.0", "ext-pdo": "*", - "php": "^7.2" + "php": "^7.1 || ^8" }, "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": "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." @@ -489,12 +523,6 @@ "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" @@ -545,28 +573,93 @@ "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/2.13.9" + }, + "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": "2022-05-02T20:28:55+00:00" + }, + { + "name": "doctrine/deprecations", + "version": "1.1.2", + "source": { + "type": "git", + "url": "https://github.com/doctrine/deprecations.git", + "reference": "4f2d4f2836e7ec4e7a8625e75c6aa916004db931" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/deprecations/zipball/4f2d4f2836e7ec4e7a8625e75c6aa916004db931", + "reference": "4f2d4f2836e7ec4e7a8625e75c6aa916004db931", + "shasum": "" + }, + "require": { + "php": "^7.1 || ^8.0" + }, + "require-dev": { + "doctrine/coding-standard": "^9", + "phpstan/phpstan": "1.4.10 || 1.10.15", + "phpstan/phpstan-phpunit": "^1.0", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", + "psalm/plugin-phpunit": "0.18.4", + "psr/log": "^1 || ^2 || ^3", + "vimeo/psalm": "4.30.0 || 5.12.0" + }, + "suggest": { + "psr/log": "Allows logging deprecations via PSR-3 logger implementation" + }, + "type": "library", + "autoload": { + "psr-4": { + "Doctrine\\Deprecations\\": "lib/Doctrine/Deprecations" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "A small layer on top of trigger_error(E_USER_DEPRECATED) or PSR-3 logging with options to disable all deprecations or selectively for packages.", + "homepage": "https://www.doctrine-project.org/", + "support": { + "issues": "https://github.com/doctrine/deprecations/issues", + "source": "https://github.com/doctrine/deprecations/tree/1.1.2" + }, + "time": "2023-09-27T20:04:15+00:00" }, { "name": "doctrine/doctrine-bundle", - "version": "1.12.7", + "version": "1.12.13", "source": { "type": "git", "url": "https://github.com/doctrine/DoctrineBundle.git", - "reference": "18fb7d271676dcb8e882adb0157ac1445c8fe89c" + "reference": "85460b85edd8f61a16ad311e7ffc5d255d3c937c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/DoctrineBundle/zipball/18fb7d271676dcb8e882adb0157ac1445c8fe89c", - "reference": "18fb7d271676dcb8e882adb0157ac1445c8fe89c", + "url": "https://api.github.com/repos/doctrine/DoctrineBundle/zipball/85460b85edd8f61a16ad311e7ffc5d255d3c937c", + "reference": "85460b85edd8f61a16ad311e7ffc5d255d3c937c", "shasum": "" }, "require": { - "doctrine/dbal": "^2.5.12", + "doctrine/dbal": "^2.5.12|^3.0", "doctrine/doctrine-cache-bundle": "~1.2", "doctrine/persistence": "^1.3.3", "jdorn/sql-formatter": "^1.2.16", - "php": "^7.1", + "php": "^7.1 || ^8.0", "symfony/cache": "^3.4.30|^4.3.3", "symfony/config": "^3.4.30|^4.3.3", "symfony/console": "^3.4.30|^4.3.3", @@ -601,7 +694,7 @@ "type": "symfony-bundle", "extra": { "branch-alias": { - "dev-master": "1.12.x-dev" + "dev-master": "2.3.x-dev" } }, "autoload": { @@ -639,7 +732,25 @@ "orm", "persistence" ], - "time": "2020-01-10T12:25:22+00:00" + "support": { + "issues": "https://github.com/doctrine/DoctrineBundle/issues", + "source": "https://github.com/doctrine/DoctrineBundle/tree/1.12.13" + }, + "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": "2020-11-14T13:38:44+00:00" }, { "name": "doctrine/doctrine-cache-bundle", @@ -730,6 +841,10 @@ "cache", "caching" ], + "support": { + "issues": "https://github.com/doctrine/DoctrineCacheBundle/issues", + "source": "https://github.com/doctrine/DoctrineCacheBundle/tree/1.4.0" + }, "abandoned": true, "time": "2019-11-29T11:22:01+00:00" }, @@ -792,41 +907,43 @@ "migrations", "schema" ], + "support": { + "issues": "https://github.com/doctrine/DoctrineMigrationsBundle/issues", + "source": "https://github.com/doctrine/DoctrineMigrationsBundle/tree/1.3" + }, "time": "2018-12-03T11:55:33+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 +985,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,7 +1003,7 @@ "type": "tidelift" } ], - "time": "2020-05-29T18:28:51+00:00" + "time": "2022-10-12T20:51:15+00:00" }, { "name": "doctrine/inflector", @@ -960,6 +1081,10 @@ "uppercase", "words" ], + "support": { + "issues": "https://github.com/doctrine/inflector/issues", + "source": "https://github.com/doctrine/inflector/tree/1.4.4" + }, "funding": [ { "url": "https://www.doctrine-project.org/sponsorship.html", @@ -1048,32 +1173,28 @@ }, { "name": "doctrine/lexer", - "version": "1.2.1", + "version": "1.2.3", "source": { "type": "git", "url": "https://github.com/doctrine/lexer.git", - "reference": "e864bbf5904cb8f5bb334f99209b48018522f042" + "reference": "c268e882d4dbdd85e36e4ad69e02dc284f89d229" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/lexer/zipball/e864bbf5904cb8f5bb334f99209b48018522f042", - "reference": "e864bbf5904cb8f5bb334f99209b48018522f042", + "url": "https://api.github.com/repos/doctrine/lexer/zipball/c268e882d4dbdd85e36e4ad69e02dc284f89d229", + "reference": "c268e882d4dbdd85e36e4ad69e02dc284f89d229", "shasum": "" }, "require": { - "php": "^7.2 || ^8.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.0", + "phpstan/phpstan": "^1.3", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", + "vimeo/psalm": "^4.11" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.2.x-dev" - } - }, "autoload": { "psr-4": { "Doctrine\\Common\\Lexer\\": "lib/Doctrine/Common/Lexer" @@ -1106,6 +1227,10 @@ "parser", "php" ], + "support": { + "issues": "https://github.com/doctrine/lexer/issues", + "source": "https://github.com/doctrine/lexer/tree/1.2.3" + }, "funding": [ { "url": "https://www.doctrine-project.org/sponsorship.html", @@ -1120,7 +1245,7 @@ "type": "tidelift" } ], - "time": "2020-05-25T17:44:05+00:00" + "time": "2022-02-28T11:07:21+00:00" }, { "name": "doctrine/migrations", @@ -1194,40 +1319,48 @@ "database", "migrations" ], + "support": { + "issues": "https://github.com/doctrine/migrations/issues", + "source": "https://github.com/doctrine/migrations/tree/1.8" + }, "time": "2018-06-06T21:00:30+00:00" }, { "name": "doctrine/orm", - "version": "v2.7.1", + "version": "2.7.5", "source": { "type": "git", "url": "https://github.com/doctrine/orm.git", - "reference": "445796af0e873d9bd04f2502d322a7d5009b6846" + "reference": "01187c9260cd085529ddd1273665217cae659640" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/orm/zipball/445796af0e873d9bd04f2502d322a7d5009b6846", - "reference": "445796af0e873d9bd04f2502d322a7d5009b6846", + "url": "https://api.github.com/repos/doctrine/orm/zipball/01187c9260cd085529ddd1273665217cae659640", + "reference": "01187c9260cd085529ddd1273665217cae659640", "shasum": "" }, "require": { - "doctrine/annotations": "^1.8", + "composer/package-versions-deprecated": "^1.8", + "doctrine/annotations": "^1.11.1", "doctrine/cache": "^1.9.1", "doctrine/collections": "^1.5", - "doctrine/common": "^2.11", + "doctrine/common": "^2.11 || ^3.0", "doctrine/dbal": "^2.9.3", "doctrine/event-manager": "^1.1", + "doctrine/inflector": "^1.0", "doctrine/instantiator": "^1.3", - "doctrine/persistence": "^1.2", + "doctrine/lexer": "^1.0", + "doctrine/persistence": "^1.3.3 || ^2.0", "ext-pdo": "*", - "ocramius/package-versions": "^1.2", "php": "^7.1", "symfony/console": "^3.0|^4.0|^5.0" }, "require-dev": { - "doctrine/coding-standard": "^5.0", - "phpunit/phpunit": "^7.5", - "symfony/yaml": "^3.4|^4.0|^5.0" + "doctrine/coding-standard": "^6.0", + "phpstan/phpstan": "^0.12.18", + "phpunit/phpunit": "^8.0", + "symfony/yaml": "^3.4|^4.0|^5.0", + "vimeo/psalm": "^3.11" }, "suggest": { "symfony/yaml": "If you want to use YAML Metadata Mapping Driver" @@ -1278,7 +1411,11 @@ "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.7.5" + }, + "time": "2020-12-03T08:52:14+00:00" }, { "name": "doctrine/persistence", @@ -1362,6 +1499,10 @@ "orm", "persistence" ], + "support": { + "issues": "https://github.com/doctrine/persistence/issues", + "source": "https://github.com/doctrine/persistence/tree/1.3.x" + }, "funding": [ { "url": "https://www.doctrine-project.org/sponsorship.html", @@ -1380,20 +1521,20 @@ }, { "name": "doctrine/reflection", - "version": "1.2.2", + "version": "1.2.4", "source": { "type": "git", "url": "https://github.com/doctrine/reflection.git", - "reference": "fa587178be682efe90d005e3a322590d6ebb59a5" + "reference": "6bcea3e81ab8b3d0abe5fde5300bbc8a968960c7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/reflection/zipball/fa587178be682efe90d005e3a322590d6ebb59a5", - "reference": "fa587178be682efe90d005e3a322590d6ebb59a5", + "url": "https://api.github.com/repos/doctrine/reflection/zipball/6bcea3e81ab8b3d0abe5fde5300bbc8a968960c7", + "reference": "6bcea3e81ab8b3d0abe5fde5300bbc8a968960c7", "shasum": "" }, "require": { - "doctrine/annotations": "^1.0", + "doctrine/annotations": "^1.0 || ^2.0", "ext-tokenizer": "*", "php": "^7.1 || ^8.0" }, @@ -1401,18 +1542,13 @@ "doctrine/common": "<2.9" }, "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" + "doctrine/coding-standard": "^9", + "doctrine/common": "^3.3", + "phpstan/phpstan": "^1.4.10", + "phpstan/phpstan-phpunit": "^1", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.2.x-dev" - } - }, "autoload": { "psr-4": { "Doctrine\\Common\\": "lib/Doctrine/Common" @@ -1454,8 +1590,12 @@ "reflection", "static" ], + "support": { + "issues": "https://github.com/doctrine/reflection/issues", + "source": "https://github.com/doctrine/reflection/tree/1.2.4" + }, "abandoned": "roave/better-reflection", - "time": "2020-10-27T21:46:55+00:00" + "time": "2023-07-27T18:11:59+00:00" }, { "name": "fig/link-util", @@ -1512,6 +1652,10 @@ "psr-13", "rest" ], + "support": { + "issues": "https://github.com/php-fig/link-util/issues", + "source": "https://github.com/php-fig/link-util/tree/1.1.2" + }, "time": "2021-02-03T23:36:04+00:00" }, { @@ -1609,6 +1753,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 +1775,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 +1794,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 +1832,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 +1850,7 @@ "type": "tidelift" } ], - "time": "2021-10-22T20:56:57+00:00" + "time": "2023-05-21T12:31:43+00:00" }, { "name": "guzzlehttp/psr7", @@ -1812,26 +1959,26 @@ }, { "name": "incenteev/composer-parameter-handler", - "version": "v2.1.3", + "version": "v2.1.5", "source": { "type": "git", "url": "https://github.com/Incenteev/ParameterHandler.git", - "reference": "933c45a34814f27f2345c11c37d46b3ca7303550" + "reference": "e1dd118763503f7fd766f907013e1d76d525fcc4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Incenteev/ParameterHandler/zipball/933c45a34814f27f2345c11c37d46b3ca7303550", - "reference": "933c45a34814f27f2345c11c37d46b3ca7303550", + "url": "https://api.github.com/repos/Incenteev/ParameterHandler/zipball/e1dd118763503f7fd766f907013e1d76d525fcc4", + "reference": "e1dd118763503f7fd766f907013e1d76d525fcc4", "shasum": "" }, "require": { "php": ">=5.3.3", - "symfony/yaml": "^2.3 || ^3.0 || ^4.0" + "symfony/yaml": "^2.3 || ^3.0 || ^4.0 || ^5.0 || ^6.0" }, "require-dev": { "composer/composer": "^1.0@dev", - "symfony/filesystem": "^2.3 || ^3 || ^4", - "symfony/phpunit-bridge": "^4.0" + "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": { @@ -1859,7 +2006,11 @@ "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.1.5" + }, + "time": "2022-05-25T10:57:22+00:00" }, { "name": "jdorn/sql-formatter", @@ -1909,20 +2060,24 @@ "highlight", "sql" ], + "support": { + "issues": "https://github.com/jdorn/sql-formatter/issues", + "source": "https://github.com/jdorn/sql-formatter/tree/v1.2.17" + }, "time": "2014-01-12T16:20:24+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 +2136,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,20 +2150,20 @@ "type": "tidelift" } ], - "time": "2020-12-14T12:56:38+00:00" + "time": "2022-06-09T08:53:42+00:00" }, { "name": "ocramius/proxy-manager", - "version": "2.2.3", + "version": "2.2.4", "source": { "type": "git", "url": "https://github.com/Ocramius/ProxyManager.git", - "reference": "4d154742e31c35137d5374c998e8f86b54db2e2f" + "reference": "2d7cd2a79cd3ade90c46211baae1b88d47683917" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Ocramius/ProxyManager/zipball/4d154742e31c35137d5374c998e8f86b54db2e2f", - "reference": "4d154742e31c35137d5374c998e8f86b54db2e2f", + "url": "https://api.github.com/repos/Ocramius/ProxyManager/zipball/2d7cd2a79cd3ade90c46211baae1b88d47683917", + "reference": "2d7cd2a79cd3ade90c46211baae1b88d47683917", "shasum": "" }, "require": { @@ -2061,7 +2220,21 @@ "proxy pattern", "service proxies" ], - "time": "2019-08-10T08:37:15+00:00" + "support": { + "issues": "https://github.com/Ocramius/ProxyManager/issues", + "source": "https://github.com/Ocramius/ProxyManager/tree/2.2.4" + }, + "funding": [ + { + "url": "https://github.com/Ocramius", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/ocramius/proxy-manager", + "type": "tidelift" + } + ], + "time": "2022-03-05T18:15:28+00:00" }, { "name": "openconext/monitor-bundle", @@ -2113,6 +2286,10 @@ "stepup", "surfnet" ], + "support": { + "issues": "https://github.com/OpenConext/Monitor-bundle/issues", + "source": "https://github.com/OpenConext/Monitor-bundle/tree/2.1.0" + }, "time": "2021-09-28T11:09:57+00:00" }, { @@ -2154,24 +2331,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 +2380,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 +2431,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,6 +2481,9 @@ "psr", "psr-6" ], + "support": { + "source": "https://github.com/php-fig/cache/tree/master" + }, "time": "2016-08-06T20:24:11+00:00" }, { @@ -2335,6 +2528,10 @@ "container-interop", "psr" ], + "support": { + "issues": "https://github.com/php-fig/container/issues", + "source": "https://github.com/php-fig/container/tree/1.1.1" + }, "time": "2021-03-05T17:36:06+00:00" }, { @@ -2437,6 +2634,9 @@ "psr-13", "rest" ], + "support": { + "source": "https://github.com/php-fig/link/tree/master" + }, "time": "2016-10-28T16:06:13+00:00" }, { @@ -2484,6 +2684,9 @@ "psr", "psr-3" ], + "support": { + "source": "https://github.com/php-fig/log/tree/1.1.4" + }, "time": "2021-05-03T11:20:27+00:00" }, { @@ -2532,6 +2735,9 @@ "psr-16", "simple-cache" ], + "support": { + "source": "https://github.com/php-fig/simple-cache/tree/master" + }, "time": "2017-10-23T01:57:42+00:00" }, { @@ -2580,54 +2786,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 +2866,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 +2882,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,7 +2920,11 @@ "xml", "xmldsig" ], - "time": "2020-04-22T17:19:51+00:00" + "support": { + "issues": "https://github.com/robrichards/xmlseclibs/issues", + "source": "https://github.com/robrichards/xmlseclibs/tree/3.1.1" + }, + "time": "2020-09-05T13:00:25+00:00" }, { "name": "sensio/framework-extra-bundle", @@ -2776,6 +2994,11 @@ "annotations", "controllers" ], + "support": { + "issues": "https://github.com/sensiolabs/SensioFrameworkExtraBundle/issues", + "source": "https://github.com/sensiolabs/SensioFrameworkExtraBundle/tree/3.0" + }, + "abandoned": "Symfony", "time": "2017-12-14T19:03:23+00:00" }, { @@ -2830,44 +3053,47 @@ } ], "description": "This bundle generates code for you", + "support": { + "issues": "https://github.com/sensiolabs/SensioGeneratorBundle/issues", + "source": "https://github.com/sensiolabs/SensioGeneratorBundle/tree/master" + }, "abandoned": "symfony/maker-bundle", "time": "2017-12-07T15:36:41+00:00" }, { "name": "simplesamlphp/saml2", - "version": "v4.1.9", + "version": "v4.6.10", "source": { "type": "git", "url": "https://github.com/simplesamlphp/saml2.git", - "reference": "ff19d04d3af0689a13c1f75859e13f4a511343cb" + "reference": "a6c46e8134df2686da9ad44bc9b8f85443c03440" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/simplesamlphp/saml2/zipball/ff19d04d3af0689a13c1f75859e13f4a511343cb", - "reference": "ff19d04d3af0689a13c1f75859e13f4a511343cb", + "url": "https://api.github.com/repos/simplesamlphp/saml2/zipball/a6c46e8134df2686da9ad44bc9b8f85443c03440", + "reference": "a6c46e8134df2686da9ad44bc9b8f85443c03440", "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 +3112,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.10" + }, + "time": "2023-05-31T16:03:51+00:00" }, { "name": "swiftmailer/swiftmailer", @@ -2940,35 +3170,39 @@ "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", + "version": "v3.6.0", "source": { "type": "git", "url": "https://github.com/symfony/monolog-bundle.git", - "reference": "7fbecb371c1c614642c93c6b2cbcdf723ae8809d" + "reference": "e495f5c7e4e672ffef4357d4a4d85f010802f940" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/monolog-bundle/zipball/7fbecb371c1c614642c93c6b2cbcdf723ae8809d", - "reference": "7fbecb371c1c614642c93c6b2cbcdf723ae8809d", + "url": "https://api.github.com/repos/symfony/monolog-bundle/zipball/e495f5c7e4e672ffef4357d4a4d85f010802f940", + "reference": "e495f5c7e4e672ffef4357d4a4d85f010802f940", "shasum": "" }, "require": { - "monolog/monolog": "~1.22", + "monolog/monolog": "~1.22 || ~2.0", "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" + "symfony/config": "~3.4 || ~4.0 || ^5.0", + "symfony/dependency-injection": "~3.4.10 || ^4.0.10 || ^5.0", + "symfony/http-kernel": "~3.4 || ~4.0 || ^5.0", + "symfony/monolog-bridge": "~3.4 || ~4.0 || ^5.0" }, "require-dev": { - "symfony/console": "~3.4|~4.0", - "symfony/phpunit-bridge": "^3.4.19|^4.0", - "symfony/yaml": "~3.4|~4.0" + "symfony/console": "~3.4 || ~4.0 || ^5.0", + "symfony/phpunit-bridge": "^4.4 || ^5.0", + "symfony/yaml": "~3.4 || ~4.0 || ^5.0" }, "type": "symfony-bundle", "extra": { @@ -2989,13 +3223,13 @@ "MIT" ], "authors": [ - { - "name": "Symfony Community", - "homepage": "http://symfony.com/contributors" - }, { "name": "Fabien Potencier", "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "http://symfony.com/contributors" } ], "description": "Symfony MonologBundle", @@ -3004,20 +3238,38 @@ "log", "logging" ], - "time": "2019-06-20T12:18:19+00:00" + "support": { + "issues": "https://github.com/symfony/monolog-bundle/issues", + "source": "https://github.com/symfony/monolog-bundle/tree/v3.6.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": "2020-10-06T15:12:11+00:00" }, { "name": "symfony/polyfill-apcu", - "version": "v1.22.1", + "version": "v1.28.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-apcu.git", - "reference": "bc9974e74f8c05f4ceb500b1e0603e36be7d8223" + "reference": "c6c2c0f5f4cb0b100c5dfea807ef5cd27bbe9899" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-apcu/zipball/bc9974e74f8c05f4ceb500b1e0603e36be7d8223", - "reference": "bc9974e74f8c05f4ceb500b1e0603e36be7d8223", + "url": "https://api.github.com/repos/symfony/polyfill-apcu/zipball/c6c2c0f5f4cb0b100c5dfea807ef5cd27bbe9899", + "reference": "c6c2c0f5f4cb0b100c5dfea807ef5cd27bbe9899", "shasum": "" }, "require": { @@ -3026,7 +3278,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.22-dev" + "dev-main": "1.28-dev" }, "thanks": { "name": "symfony/polyfill", @@ -3064,6 +3316,9 @@ "portable", "shim" ], + "support": { + "source": "https://github.com/symfony/polyfill-apcu/tree/v1.28.0" + }, "funding": [ { "url": "https://symfony.com/sponsor", @@ -3078,20 +3333,20 @@ "type": "tidelift" } ], - "time": "2021-01-22T09:19:47+00:00" + "time": "2023-01-26T09:26:14+00:00" }, { "name": "symfony/polyfill-ctype", - "version": "v1.27.0", + "version": "v1.28.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-ctype.git", - "reference": "5bbc823adecdae860bb64756d639ecfec17b050a" + "reference": "ea208ce43cbb04af6867b4fdddb1bdbf84cc28cb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/5bbc823adecdae860bb64756d639ecfec17b050a", - "reference": "5bbc823adecdae860bb64756d639ecfec17b050a", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/ea208ce43cbb04af6867b4fdddb1bdbf84cc28cb", + "reference": "ea208ce43cbb04af6867b4fdddb1bdbf84cc28cb", "shasum": "" }, "require": { @@ -3106,7 +3361,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.27-dev" + "dev-main": "1.28-dev" }, "thanks": { "name": "symfony/polyfill", @@ -3144,7 +3399,7 @@ "portable" ], "support": { - "source": "https://github.com/symfony/polyfill-ctype/tree/v1.27.0" + "source": "https://github.com/symfony/polyfill-ctype/tree/v1.28.0" }, "funding": [ { @@ -3160,20 +3415,20 @@ "type": "tidelift" } ], - "time": "2022-11-03T14:55:06+00:00" + "time": "2023-01-26T09:26:14+00:00" }, { "name": "symfony/polyfill-intl-icu", - "version": "v1.22.1", + "version": "v1.28.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-icu.git", - "reference": "af1842919c7e7364aaaa2798b29839e3ba168588" + "reference": "e46b4da57951a16053cd751f63f4a24292788157" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-icu/zipball/af1842919c7e7364aaaa2798b29839e3ba168588", - "reference": "af1842919c7e7364aaaa2798b29839e3ba168588", + "url": "https://api.github.com/repos/symfony/polyfill-intl-icu/zipball/e46b4da57951a16053cd751f63f4a24292788157", + "reference": "e46b4da57951a16053cd751f63f4a24292788157", "shasum": "" }, "require": { @@ -3185,7 +3440,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.22-dev" + "dev-main": "1.28-dev" }, "thanks": { "name": "symfony/polyfill", @@ -3230,6 +3485,9 @@ "portable", "shim" ], + "support": { + "source": "https://github.com/symfony/polyfill-intl-icu/tree/v1.28.0" + }, "funding": [ { "url": "https://symfony.com/sponsor", @@ -3244,20 +3502,20 @@ "type": "tidelift" } ], - "time": "2021-01-22T09:19:47+00:00" + "time": "2023-03-21T17:27:24+00:00" }, { "name": "symfony/polyfill-intl-idn", - "version": "v1.26.0", + "version": "v1.28.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-idn.git", - "reference": "59a8d271f00dd0e4c2e518104cc7963f655a1aa8" + "reference": "ecaafce9f77234a6a449d29e49267ba10499116d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/59a8d271f00dd0e4c2e518104cc7963f655a1aa8", - "reference": "59a8d271f00dd0e4c2e518104cc7963f655a1aa8", + "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/ecaafce9f77234a6a449d29e49267ba10499116d", + "reference": "ecaafce9f77234a6a449d29e49267ba10499116d", "shasum": "" }, "require": { @@ -3271,7 +3529,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.26-dev" + "dev-main": "1.28-dev" }, "thanks": { "name": "symfony/polyfill", @@ -3314,6 +3572,9 @@ "portable", "shim" ], + "support": { + "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.28.0" + }, "funding": [ { "url": "https://symfony.com/sponsor", @@ -3328,20 +3589,20 @@ "type": "tidelift" } ], - "time": "2022-05-24T11:49:31+00:00" + "time": "2023-01-26T09:30:37+00:00" }, { "name": "symfony/polyfill-intl-normalizer", - "version": "v1.26.0", + "version": "v1.28.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-normalizer.git", - "reference": "219aa369ceff116e673852dce47c3a41794c14bd" + "reference": "8c4ad05dd0120b6a53c1ca374dca2ad0a1c4ed92" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/219aa369ceff116e673852dce47c3a41794c14bd", - "reference": "219aa369ceff116e673852dce47c3a41794c14bd", + "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/8c4ad05dd0120b6a53c1ca374dca2ad0a1c4ed92", + "reference": "8c4ad05dd0120b6a53c1ca374dca2ad0a1c4ed92", "shasum": "" }, "require": { @@ -3353,7 +3614,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.26-dev" + "dev-main": "1.28-dev" }, "thanks": { "name": "symfony/polyfill", @@ -3395,6 +3656,9 @@ "portable", "shim" ], + "support": { + "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.28.0" + }, "funding": [ { "url": "https://symfony.com/sponsor", @@ -3409,7 +3673,7 @@ "type": "tidelift" } ], - "time": "2022-05-24T11:49:31+00:00" + "time": "2023-01-26T09:26:14+00:00" }, { "name": "symfony/polyfill-php70", @@ -3460,6 +3724,9 @@ "portable", "shim" ], + "support": { + "source": "https://github.com/symfony/polyfill-php70/tree/v1.20.0" + }, "funding": [ { "url": "https://symfony.com/sponsor", @@ -3478,16 +3745,16 @@ }, { "name": "symfony/polyfill-php72", - "version": "v1.26.0", + "version": "v1.28.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php72.git", - "reference": "bf44a9fd41feaac72b074de600314a93e2ae78e2" + "reference": "70f4aebd92afca2f865444d30a4d2151c13c3179" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/bf44a9fd41feaac72b074de600314a93e2ae78e2", - "reference": "bf44a9fd41feaac72b074de600314a93e2ae78e2", + "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/70f4aebd92afca2f865444d30a4d2151c13c3179", + "reference": "70f4aebd92afca2f865444d30a4d2151c13c3179", "shasum": "" }, "require": { @@ -3496,7 +3763,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.26-dev" + "dev-main": "1.28-dev" }, "thanks": { "name": "symfony/polyfill", @@ -3533,6 +3800,9 @@ "portable", "shim" ], + "support": { + "source": "https://github.com/symfony/polyfill-php72/tree/v1.28.0" + }, "funding": [ { "url": "https://symfony.com/sponsor", @@ -3547,20 +3817,20 @@ "type": "tidelift" } ], - "time": "2022-05-24T11:49:31+00:00" + "time": "2023-01-26T09:26:14+00:00" }, { "name": "symfony/service-contracts", - "version": "v1.1.9", + "version": "v1.10.0", "source": { "type": "git", "url": "https://github.com/symfony/service-contracts.git", - "reference": "b776d18b303a39f56c63747bcb977ad4b27aca26" + "reference": "afa00c500c2d6aea6e3b2f4862355f507bc5ebb4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/service-contracts/zipball/b776d18b303a39f56c63747bcb977ad4b27aca26", - "reference": "b776d18b303a39f56c63747bcb977ad4b27aca26", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/afa00c500c2d6aea6e3b2f4862355f507bc5ebb4", + "reference": "afa00c500c2d6aea6e3b2f4862355f507bc5ebb4", "shasum": "" }, "require": { @@ -3573,7 +3843,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.1-dev" + "dev-main": "1.1-dev" }, "thanks": { "name": "symfony/contracts", @@ -3609,6 +3879,9 @@ "interoperability", "standards" ], + "support": { + "source": "https://github.com/symfony/service-contracts/tree/v1.10.0" + }, "funding": [ { "url": "https://symfony.com/sponsor", @@ -3623,7 +3896,7 @@ "type": "tidelift" } ], - "time": "2020-07-06T13:19:58+00:00" + "time": "2022-05-27T14:01:05+00:00" }, { "name": "symfony/swiftmailer-bundle", @@ -3682,6 +3955,10 @@ ], "description": "Symfony SwiftmailerBundle", "homepage": "http://symfony.com", + "support": { + "issues": "https://github.com/symfony/swiftmailer-bundle/issues", + "source": "https://github.com/symfony/swiftmailer-bundle/tree/2.6" + }, "abandoned": "symfony/mailer", "time": "2017-10-19T01:06:41+00:00" }, @@ -3837,6 +4114,10 @@ "keywords": [ "framework" ], + "support": { + "issues": "https://github.com/symfony/symfony/issues", + "source": "https://github.com/symfony/symfony/tree/v3.4.49" + }, "funding": [ { "url": "https://symfony.com/sponsor", @@ -3906,21 +4187,25 @@ "i18n", "text" ], + "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": "twig/twig", - "version": "v2.15.3", + "version": "v2.15.5", "source": { "type": "git", "url": "https://github.com/twigphp/Twig.git", - "reference": "ab402673db8746cb3a4c46f3869d6253699f614a" + "reference": "fc02a6af3eeb97c4bf5650debc76c2eda85ac22e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/twigphp/Twig/zipball/ab402673db8746cb3a4c46f3869d6253699f614a", - "reference": "ab402673db8746cb3a4c46f3869d6253699f614a", + "url": "https://api.github.com/repos/twigphp/Twig/zipball/fc02a6af3eeb97c4bf5650debc76c2eda85ac22e", + "reference": "fc02a6af3eeb97c4bf5650debc76c2eda85ac22e", "shasum": "" }, "require": { @@ -3973,6 +4258,10 @@ "keywords": [ "templating" ], + "support": { + "issues": "https://github.com/twigphp/Twig/issues", + "source": "https://github.com/twigphp/Twig/tree/v2.15.5" + }, "funding": [ { "url": "https://github.com/fabpot", @@ -3983,7 +4272,7 @@ "type": "tidelift" } ], - "time": "2022-09-28T08:40:08+00:00" + "time": "2023-05-03T17:49:41+00:00" }, { "name": "webmozart/assert", @@ -4045,26 +4334,29 @@ }, { "name": "zendframework/zend-code", - "version": "3.3.2", + "version": "3.4.1", "source": { "type": "git", "url": "https://github.com/zendframework/zend-code.git", - "reference": "936fa7ad4d53897ea3e3eb41b5b760828246a20b" + "reference": "268040548f92c2bfcba164421c1add2ba43abaaa" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/zendframework/zend-code/zipball/936fa7ad4d53897ea3e3eb41b5b760828246a20b", - "reference": "936fa7ad4d53897ea3e3eb41b5b760828246a20b", + "url": "https://api.github.com/repos/zendframework/zend-code/zipball/268040548f92c2bfcba164421c1add2ba43abaaa", + "reference": "268040548f92c2bfcba164421c1add2ba43abaaa", "shasum": "" }, "require": { "php": "^7.1", "zendframework/zend-eventmanager": "^2.6 || ^3.0" }, + "conflict": { + "phpspec/prophecy": "<1.9.0" + }, "require-dev": { - "doctrine/annotations": "^1.0", + "doctrine/annotations": "^1.7", "ext-phar": "*", - "phpunit/phpunit": "^7.5.15", + "phpunit/phpunit": "^7.5.16 || ^8.4", "zendframework/zend-coding-standard": "^1.0", "zendframework/zend-stdlib": "^2.7 || ^3.0" }, @@ -4075,8 +4367,9 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "3.3.x-dev", - "dev-develop": "3.4.x-dev" + "dev-master": "3.4.x-dev", + "dev-develop": "3.5.x-dev", + "dev-dev-4.0": "4.0.x-dev" } }, "autoload": { @@ -4094,8 +4387,16 @@ "code", "zf" ], + "support": { + "chat": "https://zendframework-slack.herokuapp.com", + "docs": "https://docs.zendframework.com/zend-code/", + "forum": "https://discourse.zendframework.com/c/questions/components", + "issues": "https://github.com/zendframework/zend-code/issues", + "rss": "https://github.com/zendframework/zend-code/releases.atom", + "source": "https://github.com/zendframework/zend-code" + }, "abandoned": "laminas/laminas-code", - "time": "2019-08-31T14:14:34+00:00" + "time": "2019-12-10T19:21:15+00:00" }, { "name": "zendframework/zend-eventmanager", @@ -4149,6 +4450,10 @@ "events", "zf2" ], + "support": { + "issues": "https://github.com/zendframework/zend-eventmanager/issues", + "source": "https://github.com/zendframework/zend-eventmanager/tree/master" + }, "abandoned": "laminas/laminas-eventmanager", "time": "2018-04-25T15:33:34+00:00" } @@ -4156,37 +4461,39 @@ "packages-dev": [ { "name": "behat/behat", - "version": "v3.5.0", + "version": "v3.7.0", "source": { "type": "git", "url": "https://github.com/Behat/Behat.git", - "reference": "e4bce688be0c2029dc1700e46058d86428c63cab" + "reference": "08052f739619a9e9f62f457a67302f0715e6dd13" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Behat/Behat/zipball/e4bce688be0c2029dc1700e46058d86428c63cab", - "reference": "e4bce688be0c2029dc1700e46058d86428c63cab", + "url": "https://api.github.com/repos/Behat/Behat/zipball/08052f739619a9e9f62f457a67302f0715e6dd13", + "reference": "08052f739619a9e9f62f457a67302f0715e6dd13", "shasum": "" }, "require": { - "behat/gherkin": "^4.5.1", + "behat/gherkin": "^4.6.0", "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" + "symfony/config": "^2.7.51 || ^3.0 || ^4.0 || ^5.0", + "symfony/console": "^2.7.51 || ^2.8.33 || ^3.3.15 || ^3.4.3 || ^4.0.3 || ^5.0", + "symfony/dependency-injection": "^2.7.51 || ^3.0 || ^4.0 || ^5.0", + "symfony/event-dispatcher": "^2.7.51 || ^3.0 || ^4.0 || ^5.0", + "symfony/translation": "^2.7.51 || ^3.0 || ^4.0 || ^5.0", + "symfony/yaml": "^2.7.51 || ^3.0 || ^4.0 || ^5.0" }, "require-dev": { + "container-interop/container-interop": "^1.2", "herrera-io/box": "~1.6.1", - "phpunit/phpunit": "^4.8.36|^6.3", - "symfony/process": "~2.5|~3.0|~4.0" + "phpunit/phpunit": "^4.8.36 || ^6.5.14 || ^7.5.20", + "symfony/process": "~2.5 || ^3.0 || ^4.0 || ^5.0" + }, + "suggest": { + "ext-dom": "Needed to output test results in JUnit format." }, "bin": [ "bin/behat" @@ -4194,13 +4501,13 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "3.5.x-dev" + "dev-master": "3.6.x-dev" } }, "autoload": { - "psr-0": { - "Behat\\Behat": "src/", - "Behat\\Testwork": "src/" + "psr-4": { + "Behat\\Behat\\": "src/Behat/Behat/", + "Behat\\Testwork\\": "src/Behat/Testwork/" } }, "notification-url": "https://packagist.org/downloads/", @@ -4230,29 +4537,33 @@ "symfony", "testing" ], - "time": "2018-08-10T18:56:51+00:00" + "support": { + "issues": "https://github.com/Behat/Behat/issues", + "source": "https://github.com/Behat/Behat/tree/v3.7.0" + }, + "time": "2020-06-03T13:08:44+00:00" }, { "name": "behat/gherkin", - "version": "v4.6.0", + "version": "v4.9.0", "source": { "type": "git", "url": "https://github.com/Behat/Gherkin.git", - "reference": "ab0a02ea14893860bca00f225f5621d351a3ad07" + "reference": "0bc8d1e30e96183e4f36db9dc79caead300beff4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Behat/Gherkin/zipball/ab0a02ea14893860bca00f225f5621d351a3ad07", - "reference": "ab0a02ea14893860bca00f225f5621d351a3ad07", + "url": "https://api.github.com/repos/Behat/Gherkin/zipball/0bc8d1e30e96183e4f36db9dc79caead300beff4", + "reference": "0bc8d1e30e96183e4f36db9dc79caead300beff4", "shasum": "" }, "require": { - "php": ">=5.3.1" + "php": "~7.2|~8.0" }, "require-dev": { - "phpunit/phpunit": "~4.5|~5", - "symfony/phpunit-bridge": "~2.7|~3|~4", - "symfony/yaml": "~2.3|~3|~4" + "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" @@ -4260,7 +4571,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "4.4-dev" + "dev-master": "4.x-dev" } }, "autoload": { @@ -4279,7 +4590,7 @@ "homepage": "http://everzet.com" } ], - "description": "Gherkin DSL parser for PHP 5.3", + "description": "Gherkin DSL parser for PHP", "homepage": "http://behat.org/", "keywords": [ "BDD", @@ -4289,39 +4600,47 @@ "gherkin", "parser" ], - "time": "2019-01-16T14:22:17+00:00" + "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.7.1", + "version": "v1.9.0", "source": { "type": "git", "url": "https://github.com/minkphp/Mink.git", - "reference": "e6930b9c74693dff7f4e58577e1b1743399f3ff9" + "reference": "e35f4695de8800fc776af34ebf665ad58ebdd996" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/minkphp/Mink/zipball/e6930b9c74693dff7f4e58577e1b1743399f3ff9", - "reference": "e6930b9c74693dff7f4e58577e1b1743399f3ff9", + "url": "https://api.github.com/repos/minkphp/Mink/zipball/e35f4695de8800fc776af34ebf665ad58ebdd996", + "reference": "e35f4695de8800fc776af34ebf665ad58ebdd996", "shasum": "" }, "require": { - "php": ">=5.3.1", - "symfony/css-selector": "~2.1|~3.0" + "php": ">=5.4", + "symfony/css-selector": "^2.7|^3.0|^4.0|^5.0" }, "require-dev": { - "symfony/phpunit-bridge": "~2.7|~3.0" + "phpunit/phpunit": "^4.8.36 || ^5.7.27 || ^6.5.14 || ^7.5.20 || ^8.5 || ^9.5", + "symfony/debug": "^2.7|^3.0|^4.0|^5.0", + "symfony/phpunit-bridge": "^3.4.38 || ^4.4 || ^5.0.5", + "yoast/phpunit-polyfills": "^1.0" }, "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)" + "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.7.x-dev" + "dev-master": "1.x-dev" } }, "autoload": { @@ -4341,42 +4660,49 @@ } ], "description": "Browser controller/emulator abstraction for PHP", - "homepage": "http://mink.behat.org/", + "homepage": "https://mink.behat.org/", "keywords": [ "browser", "testing", "web" ], - "time": "2016-03-05T08:26:18+00:00" + "support": { + "issues": "https://github.com/minkphp/Mink/issues", + "source": "https://github.com/minkphp/Mink/tree/v1.9.0" + }, + "time": "2021-10-11T11:58:47+00:00" }, { "name": "behat/mink-browserkit-driver", - "version": "1.3.3", + "version": "v1.4.1", "source": { "type": "git", "url": "https://github.com/minkphp/MinkBrowserKitDriver.git", - "reference": "1b9a7ce903cfdaaec5fb32bfdbb26118343662eb" + "reference": "057926c9da452bac5bfcffb92eb4f3e1ce74dae9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/minkphp/MinkBrowserKitDriver/zipball/1b9a7ce903cfdaaec5fb32bfdbb26118343662eb", - "reference": "1b9a7ce903cfdaaec5fb32bfdbb26118343662eb", + "url": "https://api.github.com/repos/minkphp/MinkBrowserKitDriver/zipball/057926c9da452bac5bfcffb92eb4f3e1ce74dae9", + "reference": "057926c9da452bac5bfcffb92eb4f3e1ce74dae9", "shasum": "" }, "require": { "behat/mink": "^1.7.1@dev", - "php": ">=5.3.6", + "php": ">=5.4", "symfony/browser-kit": "~2.3|~3.0|~4.0", "symfony/dom-crawler": "~2.3|~3.0|~4.0" }, "require-dev": { "mink/driver-testsuite": "dev-master", - "symfony/http-kernel": "~2.3|~3.0|~4.0" + "phpunit/phpunit": "^4.8.36 || ^5.7.27 || ^6.5.14 || ^7.5.18 || ^8.5 || ^9.5", + "symfony/debug": "^2.7|^3.0|^4.0", + "symfony/http-kernel": "~2.3|~3.0|~4.0", + "yoast/phpunit-polyfills": "^1.0" }, "type": "mink-driver", "extra": { "branch-alias": { - "dev-master": "1.3.x-dev" + "dev-master": "1.x-dev" } }, "autoload": { @@ -4396,14 +4722,18 @@ } ], "description": "Symfony2 BrowserKit driver for Mink framework", - "homepage": "http://mink.behat.org/", + "homepage": "https://mink.behat.org/", "keywords": [ "Mink", "Symfony2", "browser", "testing" ], - "time": "2018-05-02T09:25:31+00:00" + "support": { + "issues": "https://github.com/minkphp/MinkBrowserKitDriver/issues", + "source": "https://github.com/minkphp/MinkBrowserKitDriver/tree/v1.4.1" + }, + "time": "2021-12-10T14:17:06+00:00" }, { "name": "behat/mink-extension", @@ -4462,35 +4792,38 @@ "test", "web" ], + "support": { + "issues": "https://github.com/Behat/MinkExtension/issues", + "source": "https://github.com/Behat/MinkExtension/tree/master" + }, "time": "2018-02-06T15:36:30+00:00" }, { "name": "behat/mink-goutte-driver", - "version": "v1.2.1", + "version": "v1.3.0", "source": { "type": "git", "url": "https://github.com/minkphp/MinkGoutteDriver.git", - "reference": "8b9ad6d2d95bc70b840d15323365f52fcdaea6ca" + "reference": "8139f520f417c81bf9d2f9a171fff400f6adc9ea" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/minkphp/MinkGoutteDriver/zipball/8b9ad6d2d95bc70b840d15323365f52fcdaea6ca", - "reference": "8b9ad6d2d95bc70b840d15323365f52fcdaea6ca", + "url": "https://api.github.com/repos/minkphp/MinkGoutteDriver/zipball/8139f520f417c81bf9d2f9a171fff400f6adc9ea", + "reference": "8139f520f417c81bf9d2f9a171fff400f6adc9ea", "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" + "php": ">=5.4" }, "require-dev": { - "symfony/phpunit-bridge": "~2.7|~3.0" + "mink/driver-testsuite": "dev-master" }, "type": "mink-driver", "extra": { "branch-alias": { - "dev-master": "1.2.x-dev" + "dev-master": "1.x-dev" } }, "autoload": { @@ -4510,41 +4843,49 @@ } ], "description": "Goutte driver for Mink framework", - "homepage": "http://mink.behat.org/", + "homepage": "https://mink.behat.org/", "keywords": [ "browser", "goutte", "headless", "testing" ], - "time": "2016-03-05T09:04:22+00:00" + "support": { + "issues": "https://github.com/minkphp/MinkGoutteDriver/issues", + "source": "https://github.com/minkphp/MinkGoutteDriver/tree/v1.3.0" + }, + "abandoned": "behat/mink-browserkit-driver", + "time": "2021-10-12T11:35:46+00:00" }, { "name": "behat/mink-selenium2-driver", - "version": "v1.3.1", + "version": "v1.6.0", "source": { "type": "git", "url": "https://github.com/minkphp/MinkSelenium2Driver.git", - "reference": "473a9f3ebe0c134ee1e623ce8a9c852832020288" + "reference": "e5f8421654930da725499fb92983e6948c6f973e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/minkphp/MinkSelenium2Driver/zipball/473a9f3ebe0c134ee1e623ce8a9c852832020288", - "reference": "473a9f3ebe0c134ee1e623ce8a9c852832020288", + "url": "https://api.github.com/repos/minkphp/MinkSelenium2Driver/zipball/e5f8421654930da725499fb92983e6948c6f973e", + "reference": "e5f8421654930da725499fb92983e6948c6f973e", "shasum": "" }, "require": { - "behat/mink": "~1.7@dev", - "instaclick/php-webdriver": "~1.1", - "php": ">=5.3.1" + "behat/mink": "^1.9@dev", + "ext-json": "*", + "instaclick/php-webdriver": "^1.4", + "php": ">=7.2" }, "require-dev": { - "symfony/phpunit-bridge": "~2.7" + "mink/driver-testsuite": "dev-master", + "phpunit/phpunit": "^8.5.22 || ^9.5.11", + "symfony/error-handler": "^4.4 || ^5.0" }, "type": "mink-driver", "extra": { "branch-alias": { - "dev-master": "1.3.x-dev" + "dev-master": "1.x-dev" } }, "autoload": { @@ -4557,19 +4898,19 @@ "MIT" ], "authors": [ - { - "name": "Konstantin Kudryashov", - "email": "ever.zet@gmail.com", - "homepage": "http://everzet.com" - }, { "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": "http://mink.behat.org/", + "homepage": "https://mink.behat.org/", "keywords": [ "ajax", "browser", @@ -4578,7 +4919,11 @@ "testing", "webdriver" ], - "time": "2016-03-05T09:10:18+00:00" + "support": { + "issues": "https://github.com/minkphp/MinkSelenium2Driver/issues", + "source": "https://github.com/minkphp/MinkSelenium2Driver/tree/v1.6.0" + }, + "time": "2022-03-28T14:55:17+00:00" }, { "name": "behat/symfony2-extension", @@ -4639,39 +4984,44 @@ "framework", "symfony" ], + "support": { + "issues": "https://github.com/Behat/Symfony2Extension/issues", + "source": "https://github.com/Behat/Symfony2Extension/tree/master" + }, "abandoned": "friends-of-behat/symfony-extension", "time": "2018-04-20T15:48:23+00:00" }, { "name": "behat/transliterator", - "version": "v1.2.0", + "version": "v1.5.0", "source": { "type": "git", "url": "https://github.com/Behat/Transliterator.git", - "reference": "826ce7e9c2a6664c0d1f381cbb38b1fb80a7ee2c" + "reference": "baac5873bac3749887d28ab68e2f74db3a4408af" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Behat/Transliterator/zipball/826ce7e9c2a6664c0d1f381cbb38b1fb80a7ee2c", - "reference": "826ce7e9c2a6664c0d1f381cbb38b1fb80a7ee2c", + "url": "https://api.github.com/repos/Behat/Transliterator/zipball/baac5873bac3749887d28ab68e2f74db3a4408af", + "reference": "baac5873bac3749887d28ab68e2f74db3a4408af", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": ">=7.2" }, "require-dev": { "chuyskywalker/rolling-curl": "^3.1", - "php-yaoi/php-yaoi": "^1.0" + "php-yaoi/php-yaoi": "^1.0", + "phpunit/phpunit": "^8.5.25 || ^9.5.19" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.2-dev" + "dev-master": "1.x-dev" } }, "autoload": { - "psr-0": { - "Behat\\Transliterator": "src/" + "psr-4": { + "Behat\\Transliterator\\": "src/Behat/Transliterator" } }, "notification-url": "https://packagist.org/downloads/", @@ -4684,7 +5034,11 @@ "slug", "transliterator" ], - "time": "2017-04-04T11:38:05+00:00" + "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", @@ -4823,38 +5177,6 @@ ], "time": "2022-02-24T20:20:32+00:00" }, - { - "name": "container-interop/container-interop", - "version": "1.2.0", - "source": { - "type": "git", - "url": "https://github.com/container-interop/container-interop.git", - "reference": "79cbf1341c22ec75643d841642dd5d6acd83bdb8" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/container-interop/container-interop/zipball/79cbf1341c22ec75643d841642dd5d6acd83bdb8", - "reference": "79cbf1341c22ec75643d841642dd5d6acd83bdb8", - "shasum": "" - }, - "require": { - "psr/container": "^1.0" - }, - "type": "library", - "autoload": { - "psr-4": { - "Interop\\Container\\": "src/Interop/Container/" - } - }, - "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" - }, { "name": "fabpot/goutte", "version": "v3.2.3", @@ -4908,24 +5230,29 @@ "keywords": [ "scraper" ], + "support": { + "issues": "https://github.com/FriendsOfPHP/Goutte/issues", + "source": "https://github.com/FriendsOfPHP/Goutte/tree/master" + }, + "abandoned": "symfony/browser-kit", "time": "2018-06-29T15:13:57+00:00" }, { "name": "hamcrest/hamcrest-php", - "version": "v2.0.0", + "version": "v2.0.1", "source": { "type": "git", "url": "https://github.com/hamcrest/hamcrest-php.git", - "reference": "776503d3a8e85d4f9a1148614f95b7a608b046ad" + "reference": "8c3d0a3f6af734494ad8f6fbbee0ba92422859f3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/hamcrest/hamcrest-php/zipball/776503d3a8e85d4f9a1148614f95b7a608b046ad", - "reference": "776503d3a8e85d4f9a1148614f95b7a608b046ad", + "url": "https://api.github.com/repos/hamcrest/hamcrest-php/zipball/8c3d0a3f6af734494ad8f6fbbee0ba92422859f3", + "reference": "8c3d0a3f6af734494ad8f6fbbee0ba92422859f3", "shasum": "" }, "require": { - "php": "^5.3|^7.0" + "php": "^5.3|^7.0|^8.0" }, "replace": { "cordoval/hamcrest-php": "*", @@ -4933,14 +5260,13 @@ "kodova/hamcrest-php": "*" }, "require-dev": { - "phpunit/php-file-iterator": "1.3.3", - "phpunit/phpunit": "~4.0", - "satooshi/php-coveralls": "^1.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": "2.0-dev" + "dev-master": "2.1-dev" } }, "autoload": { @@ -4950,26 +5276,30 @@ }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD" + "BSD-3-Clause" ], "description": "This is the PHP port of Hamcrest Matchers", "keywords": [ "test" ], - "time": "2016-01-20T08:20: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": "ingenerator/behat-tableassert", - "version": "v1.2.0", + "version": "v1.2.1", "source": { "type": "git", "url": "https://github.com/ingenerator/behat-tableassert.git", - "reference": "9c0b254fc798f75151200c58662c31f6d6a05184" + "reference": "d1609a660cc48051fe04fa53f4f7ff37a9c3788e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ingenerator/behat-tableassert/zipball/9c0b254fc798f75151200c58662c31f6d6a05184", - "reference": "9c0b254fc798f75151200c58662c31f6d6a05184", + "url": "https://api.github.com/repos/ingenerator/behat-tableassert/zipball/d1609a660cc48051fe04fa53f4f7ff37a9c3788e", + "reference": "d1609a660cc48051fe04fa53f4f7ff37a9c3788e", "shasum": "" }, "require": { @@ -5004,20 +5334,24 @@ ], "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" + "support": { + "issues": "https://github.com/ingenerator/behat-tableassert/issues", + "source": "https://github.com/ingenerator/behat-tableassert/" + }, + "time": "2020-06-07T08:26:31+00:00" }, { "name": "instaclick/php-webdriver", - "version": "1.4.6", + "version": "1.4.16", "source": { "type": "git", "url": "https://github.com/instaclick/php-webdriver.git", - "reference": "bd9405077ca04129a73059a06873bedb5e138402" + "reference": "a39a1f6dc0f4ddd8b2438fa5eb1f67755730d606" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/instaclick/php-webdriver/zipball/bd9405077ca04129a73059a06873bedb5e138402", - "reference": "bd9405077ca04129a73059a06873bedb5e138402", + "url": "https://api.github.com/repos/instaclick/php-webdriver/zipball/a39a1f6dc0f4ddd8b2438fa5eb1f67755730d606", + "reference": "a39a1f6dc0f4ddd8b2438fa5eb1f67755730d606", "shasum": "" }, "require": { @@ -5025,8 +5359,8 @@ "php": ">=5.3.2" }, "require-dev": { - "phpunit/phpunit": "^4.8", - "satooshi/php-coveralls": "^1.0||^2.0" + "phpunit/phpunit": "^8.5 || ^9.5", + "satooshi/php-coveralls": "^1.0 || ^2.0" }, "type": "library", "extra": { @@ -5063,7 +5397,11 @@ "webdriver", "webtest" ], - "time": "2019-09-23T15:50:44+00:00" + "support": { + "issues": "https://github.com/instaclick/php-webdriver/issues", + "source": "https://github.com/instaclick/php-webdriver/tree/1.4.16" + }, + "time": "2022-10-28T13:30:35+00:00" }, { "name": "league/flysystem", @@ -5153,16 +5491,16 @@ }, { "name": "league/mime-type-detection", - "version": "1.7.0", + "version": "1.12.0", "source": { "type": "git", "url": "https://github.com/thephpleague/mime-type-detection.git", - "reference": "3b9dff8aaf7323590c1d2e443db701eb1f9aa0d3" + "reference": "c7f2872fb273bf493811473dafc88d60ae829f48" }, "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/c7f2872fb273bf493811473dafc88d60ae829f48", + "reference": "c7f2872fb273bf493811473dafc88d60ae829f48", "shasum": "" }, "require": { @@ -5170,7 +5508,7 @@ "php": "^7.2 || ^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" }, @@ -5191,6 +5529,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.12.0" + }, "funding": [ { "url": "https://github.com/frankdejonge", @@ -5201,7 +5543,7 @@ "type": "tidelift" } ], - "time": "2021-01-18T20:58:21+00:00" + "time": "2023-08-03T07:14:11+00:00" }, { "name": "liip/functional-test-bundle", @@ -5339,25 +5681,25 @@ }, { "name": "mockery/mockery", - "version": "1.3.1", + "version": "1.3.6", "source": { "type": "git", "url": "https://github.com/mockery/mockery.git", - "reference": "f69bbde7d7a75d6b2862d9ca8fab1cd28014b4be" + "reference": "dc206df4fa314a50bbb81cf72239a305c5bbd5c0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/mockery/mockery/zipball/f69bbde7d7a75d6b2862d9ca8fab1cd28014b4be", - "reference": "f69bbde7d7a75d6b2862d9ca8fab1cd28014b4be", + "url": "https://api.github.com/repos/mockery/mockery/zipball/dc206df4fa314a50bbb81cf72239a305c5bbd5c0", + "reference": "dc206df4fa314a50bbb81cf72239a305c5bbd5c0", "shasum": "" }, "require": { - "hamcrest/hamcrest-php": "~2.0", + "hamcrest/hamcrest-php": "^2.0.1", "lib-pcre": ">=7.0", "php": ">=5.6.0" }, "require-dev": { - "phpunit/phpunit": "~5.7.10|~6.5|~7.0|~8.0" + "phpunit/phpunit": "^5.7.10|^6.5|^7.5|^8.5|^9.3" }, "type": "library", "extra": { @@ -5402,31 +5744,35 @@ ], "support": { "issues": "https://github.com/mockery/mockery/issues", - "source": "https://github.com/mockery/mockery/tree/master" + "source": "https://github.com/mockery/mockery/tree/1.3.6" }, - "time": "2019-12-26T09:49:15+00:00" + "time": "2022-09-07T15:05:49+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 +5797,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,20 +5805,20 @@ "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.15.1", "source": { "type": "git", "url": "https://github.com/pdepend/pdepend.git", - "reference": "31be7cd4f305f3f7b52af99c1cb13fc938d1cfad" + "reference": "d12f25bcdfb7754bea458a4a5cb159d55e9950d0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/pdepend/pdepend/zipball/31be7cd4f305f3f7b52af99c1cb13fc938d1cfad", - "reference": "31be7cd4f305f3f7b52af99c1cb13fc938d1cfad", + "url": "https://api.github.com/repos/pdepend/pdepend/zipball/d12f25bcdfb7754bea458a4a5cb159d55e9950d0", + "reference": "d12f25bcdfb7754bea458a4a5cb159d55e9950d0", "shasum": "" }, "require": { @@ -5506,9 +5852,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.15.1" }, "funding": [ { @@ -5516,7 +5868,7 @@ "type": "tidelift" } ], - "time": "2023-02-28T20:56:15+00:00" + "time": "2023-09-28T12:00:56+00:00" }, { "name": "phake/phake", @@ -5763,22 +6115,22 @@ }, { "name": "phpmd/phpmd", - "version": "2.13.0", + "version": "2.14.1", "source": { "type": "git", "url": "https://github.com/phpmd/phpmd.git", - "reference": "dad0228156856b3ad959992f9748514fa943f3e3" + "reference": "442fc2c34edcd5198b442d8647c7f0aec3afabe8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpmd/phpmd/zipball/dad0228156856b3ad959992f9748514fa943f3e3", - "reference": "dad0228156856b3ad959992f9748514fa943f3e3", + "url": "https://api.github.com/repos/phpmd/phpmd/zipball/442fc2c34edcd5198b442d8647c7f0aec3afabe8", + "reference": "442fc2c34edcd5198b442d8647c7f0aec3afabe8", "shasum": "" }, "require": { "composer/xdebug-handler": "^1.0 || ^2.0 || ^3.0", "ext-xml": "*", - "pdepend/pdepend": "^2.12.1", + "pdepend/pdepend": "^2.15.1", "php": ">=5.3.9" }, "require-dev": { @@ -5788,7 +6140,7 @@ "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 +6177,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 +6187,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.14.1" }, "funding": [ { @@ -5842,7 +6195,7 @@ "type": "tidelift" } ], - "time": "2022-09-10T08:44:15+00:00" + "time": "2023-09-28T13:07:44+00:00" }, { "name": "phpunit/php-code-coverage", @@ -6143,16 +6496,16 @@ }, { "name": "phpunit/phpunit", - "version": "8.5.33", + "version": "8.5.34", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "7d1ff0e8c6b35db78ff13e3e05517d7cbf7aa32e" + "reference": "622d0186707f39a4ae71df3bcf42d759bb868854" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/7d1ff0e8c6b35db78ff13e3e05517d7cbf7aa32e", - "reference": "7d1ff0e8c6b35db78ff13e3e05517d7cbf7aa32e", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/622d0186707f39a4ae71df3bcf42d759bb868854", + "reference": "622d0186707f39a4ae71df3bcf42d759bb868854", "shasum": "" }, "require": { @@ -6182,9 +6535,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 +6573,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.34" }, "funding": [ { @@ -6236,7 +6590,7 @@ "type": "tidelift" } ], - "time": "2023-02-27T13:04:50+00:00" + "time": "2023-09-19T05:20:51+00:00" }, { "name": "sebastian/code-unit-reverse-lookup", @@ -6575,16 +6929,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 +6981,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 +6989,7 @@ "type": "github" } ], - "time": "2022-02-10T06:55:38+00:00" + "time": "2023-08-02T09:23:32+00:00" }, { "name": "sebastian/object-enumerator", @@ -7026,23 +7380,23 @@ }, { "name": "symfony/phpunit-bridge", - "version": "v3.4.31", + "version": "v3.4.47", "source": { "type": "git", "url": "https://github.com/symfony/phpunit-bridge.git", - "reference": "028617b04ae19d99d89089626ac969d161244ebc" + "reference": "120273ad5d03a8deee08ca9260e2598f288f2bac" }, "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/120273ad5d03a8deee08ca9260e2598f288f2bac", + "reference": "120273ad5d03a8deee08ca9260e2598f288f2bac", "shasum": "" }, "require": { "php": ">=5.3.3" }, "conflict": { - "phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0" + "phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0|<6.4,>=6.0|9.1.2" }, "suggest": { "symfony/debug": "For tracking deprecated interfaces usages at runtime with DebugClassLoader" @@ -7052,9 +7406,6 @@ ], "type": "symfony-bridge", "extra": { - "branch-alias": { - "dev-master": "3.4-dev" - }, "thanks": { "name": "phpunit/phpunit", "url": "https://github.com/sebastianbergmann/phpunit" @@ -7087,7 +7438,24 @@ ], "description": "Symfony PHPUnit Bridge", "homepage": "https://symfony.com", - "time": "2019-08-20T13:31:17+00:00" + "support": { + "source": "https://github.com/symfony/phpunit-bridge/tree/v3.4.47" + }, + "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": "2020-11-13T16:28:59+00:00" }, { "name": "theseer/tokenizer", diff --git a/src/OpenConext/EngineBlock/Metadata/Factory/Factory/ServiceProviderFactory.php b/src/OpenConext/EngineBlock/Metadata/Factory/Factory/ServiceProviderFactory.php index 4402efbd0e..f99e18d70a 100644 --- a/src/OpenConext/EngineBlock/Metadata/Factory/Factory/ServiceProviderFactory.php +++ b/src/OpenConext/EngineBlock/Metadata/Factory/Factory/ServiceProviderFactory.php @@ -28,6 +28,7 @@ use OpenConext\EngineBlock\Metadata\Factory\ValueObject\EngineBlockConfiguration; use OpenConext\EngineBlock\Metadata\Mdui; use OpenConext\EngineBlock\Metadata\X509\KeyPairFactory; +use OpenConext\EngineBlockBundle\Configuration\FeatureConfigurationInterface; use OpenConext\EngineBlockBundle\Url\UrlProvider; /** @@ -55,16 +56,30 @@ class ServiceProviderFactory */ private $urlProvider; + /** + * @var string + */ + private $entityIdOverrideValue; + + /** + * @var FeatureConfigurationInterface + */ + private $featureConfiguration; + public function __construct( AttributesMetadata $attributes, KeyPairFactory $keyPairFactory, EngineBlockConfiguration $engineBlockConfiguration, - UrlProvider $urlProvider + UrlProvider $urlProvider, + FeatureConfigurationInterface $featureConfiguration, + string $entityIdOverrideValue ) { $this->attributes = $attributes; $this->keyPairFactory = $keyPairFactory; $this->engineBlockConfiguration = $engineBlockConfiguration; $this->urlProvider = $urlProvider; + $this->featureConfiguration = $featureConfiguration; + $this->entityIdOverrideValue = $entityIdOverrideValue; } public function createEngineBlockEntityFrom(string $keyId): ServiceProviderEntityInterface @@ -86,8 +101,14 @@ public function createEngineBlockEntityFrom(string $keyId): ServiceProviderEntit public function createStepupEntityFrom(string $keyId): ServiceProviderEntityInterface { + $isConfigured = $this->featureConfiguration->hasFeature('eb.stepup.sfo.override_engine_entityid'); + $isEnabled = $this->featureConfiguration->isEnabled('eb.stepup.sfo.override_engine_entityid'); $entityId = $this->urlProvider->getUrl('metadata_stepup', false, null, null); + if ($isEnabled && $isConfigured) { + $entityId = $this->entityIdOverrideValue; + } + $entity = $this->buildServiceProviderOrmEntity($entityId); return new ServiceProviderStepup( // Add stepup data diff --git a/src/OpenConext/EngineBlockBundle/Configuration/TestFeatureConfiguration.php b/src/OpenConext/EngineBlockBundle/Configuration/TestFeatureConfiguration.php index 4c1dace502..7d4167991c 100644 --- a/src/OpenConext/EngineBlockBundle/Configuration/TestFeatureConfiguration.php +++ b/src/OpenConext/EngineBlockBundle/Configuration/TestFeatureConfiguration.php @@ -45,6 +45,7 @@ public function __construct() $this->setFeature(new Feature('eb.enable_sso_notification', false)); $this->setFeature(new Feature('eb.feature_enable_consent', true)); $this->setFeature(new Feature('eb.enable_sso_session_cookie', true)); + $this->setFeature(new Feature('eb.stepup.sfo.override_engine_entityid', false)); } public function setFeature(Feature $feature): void diff --git a/src/OpenConext/EngineBlockBundle/Resources/config/services.yml b/src/OpenConext/EngineBlockBundle/Resources/config/services.yml index 9c75b6704e..c7bf6582d6 100644 --- a/src/OpenConext/EngineBlockBundle/Resources/config/services.yml +++ b/src/OpenConext/EngineBlockBundle/Resources/config/services.yml @@ -129,6 +129,8 @@ services: - '@OpenConext\EngineBlock\Metadata\X509\KeyPairFactory' - '@OpenConext\EngineBlock\Metadata\Factory\ValueObject\EngineBlockConfiguration' - '@engineblock.url_provider' + - '@engineblock.features' + - '%stepup.sfo.override_engine_entityid%' OpenConext\EngineBlock\Metadata\Factory\ValueObject\EngineBlockConfiguration: public: false diff --git a/src/OpenConext/EngineBlockFunctionalTestingBundle/Features/Context/EngineBlockContext.php b/src/OpenConext/EngineBlockFunctionalTestingBundle/Features/Context/EngineBlockContext.php index 7e388c5edf..ada66f7efc 100644 --- a/src/OpenConext/EngineBlockFunctionalTestingBundle/Features/Context/EngineBlockContext.php +++ b/src/OpenConext/EngineBlockFunctionalTestingBundle/Features/Context/EngineBlockContext.php @@ -18,14 +18,11 @@ namespace OpenConext\EngineBlockFunctionalTestingBundle\Features\Context; -use Behat\Behat\Tester\Exception\PendingException; use Behat\Gherkin\Node\TableNode; use Behat\Mink\Exception\ExpectationException; use DOMDocument; use DOMElement; use DOMXPath; -use Ingenerator\BehatTableAssert\AssertTable; -use Ingenerator\BehatTableAssert\TableParser\HTMLTable; use OpenConext\EngineBlockFunctionalTestingBundle\Fixtures\FunctionalTestingAttributeAggregationClient; use OpenConext\EngineBlockFunctionalTestingBundle\Fixtures\FunctionalTestingAuthenticationLoopGuard; use OpenConext\EngineBlockFunctionalTestingBundle\Fixtures\FunctionalTestingFeatureConfiguration; @@ -39,10 +36,6 @@ use RuntimeException; use SAML2\Constants; use SAML2\DOMDocumentFactory; -use function assertStringNotMatchesFormat; -use function assertStringStartsWith; -use function preg_match; -use function sprintf; /** * @SuppressWarnings(PHPMD.TooManyPublicMethods) Both set up and tasks can be a lot... diff --git a/src/OpenConext/EngineBlockFunctionalTestingBundle/Features/StepupKeyRollover.feature b/src/OpenConext/EngineBlockFunctionalTestingBundle/Features/StepupKeyRollover.feature new file mode 100644 index 0000000000..895735f341 --- /dev/null +++ b/src/OpenConext/EngineBlockFunctionalTestingBundle/Features/StepupKeyRollover.feature @@ -0,0 +1,35 @@ +Feature: + In order to facilitate a rolling configuration update + As EngineBlock + I want the SP entityID that is used for Stepup auth to be configurable so that at the same time + that the EngineBlock default key is updated, this entityID can be changed. + This then allows two entities, with two different keys, to be configured in the Stepup-Gateway + + Background: + Given an EngineBlock instance on "vm.openconext.org" + And no registered SPs + And no registered Idps + And an Identity Provider named "SSO-IdP" + And a Service Provider named "SSO-SP" + And an Identity Provider named "Dummy-IdP" + And a Service Provider named "Dummy-SP" + And a Service Provider named "Proxy-SP" + + Scenario: When stepup.sfo.override_engine_entityid is not configured, stepup/metadata should show default EntityId + Given feature "eb.stepup.sfo.override_engine_entityid" is disabled + When I go to Engineblock URL "/authentication/stepup/metadata" + Then the response should match xpath '//md:EntityDescriptor[@entityID="https://engine.vm.openconext.org/authentication/stepup/metadata"]' + + Scenario: When stepup.sfo.override_engine_entityid is configured with a valid EntityId, stepup/metadata should show that EntityId + Given feature "eb.stepup.sfo.override_engine_entityid" is enabled + When I go to Engineblock URL "/authentication/stepup/metadata" + Then the response should match xpath '//md:EntityDescriptor[@entityID="https://engine.vm.openconext.com/new/stepup/metadata"]' + + Scenario: When stepup.sfo.override_engine_entityid is configured, the the Issuer is updated + Given the SP "SSO-SP" requires Stepup LoA "http://vm.openconext.org/assurance/loa2" + And feature "eb.stepup.sfo.override_engine_entityid" is enabled + When I log in at "SSO-SP" + And I select "SSO-IdP" on the WAYF + Then the response should match xpath '//md:EntityDescriptor[@entityID="https://engine.vm.openconext.com/new/stepup/metadata"]' + + diff --git a/src/OpenConext/EngineBlockFunctionalTestingBundle/Resources/config/services.yml b/src/OpenConext/EngineBlockFunctionalTestingBundle/Resources/config/services.yml index d8fadd3cce..b4031c05fe 100644 --- a/src/OpenConext/EngineBlockFunctionalTestingBundle/Resources/config/services.yml +++ b/src/OpenConext/EngineBlockFunctionalTestingBundle/Resources/config/services.yml @@ -1,12 +1,12 @@ parameters: - engineblock.functional_testing.service_registry_data_store.dir: "%kernel.root_dir%/../tmp/eb-fixtures/metadata-push/" - engineblock.functional_testing.service_registry_data_store.file: "%kernel.root_dir%/../tmp/eb-fixtures/metadata-push/entities" - engineblock.functional_testing.features_data_store.file: "%kernel.root_dir%/../tmp/eb-fixtures/features.json" - engineblock.functional_testing.authentication_loop_guard_data_store.file: "%kernel.root_dir%/../tmp/eb-fixtures/authentication-loop-guard.json" - engineblock.functional_testing.pdp_data_store.file: "%kernel.root_dir%/../tmp/eb-fixtures/policy_decision.json" - engineblock.functional_testing.attribute_aggregation_data_store.file: "%kernel.root_dir%/../tmp/eb-fixtures/attribute_aggregation.json" - engineblock.functional_testing.stepup_gateway_mock_data_store.file: "%kernel.root_dir%/../tmp/eb-fixtures/stepup_gateway_mock.json" - engineblock.functional_testing.translator_mock_data_store.file: "%kernel.root_dir%/../tmp/eb-fixtures/translator_mock.json" + engineblock.functional_testing.service_registry_data_store.dir: "/tmp/eb-fixtures/metadata-push/" + engineblock.functional_testing.service_registry_data_store.file: "/tmp/eb-fixtures/metadata-push/entities" + engineblock.functional_testing.features_data_store.file: "/tmp/eb-fixtures/features.json" + engineblock.functional_testing.authentication_loop_guard_data_store.file: "/tmp/eb-fixtures/authentication-loop-guard.json" + engineblock.functional_testing.pdp_data_store.file: "/tmp/eb-fixtures/policy_decision.json" + engineblock.functional_testing.attribute_aggregation_data_store.file: "/tmp/eb-fixtures/attribute_aggregation.json" + engineblock.functional_testing.stepup_gateway_mock_data_store.file: "/tmp/eb-fixtures/stepup_gateway_mock.json" + engineblock.functional_testing.translator_mock_data_store.file: "/tmp/eb-fixtures/translator_mock.json" services: engineblock.functional_testing.service.engine_block: @@ -109,3 +109,13 @@ services: class: OpenConext\EngineBlockBundle\Configuration\ErrorFeedbackConfiguration arguments: - "@engineblock.functional_testing.mock.translator" + + engineblock.factory.service_provider_factory: + class: OpenConext\EngineBlock\Metadata\Factory\Factory\ServiceProviderFactory + arguments: + - '@engineblock.compat.metadata.definitions' + - '@OpenConext\EngineBlock\Metadata\X509\KeyPairFactory' + - '@OpenConext\EngineBlock\Metadata\Factory\ValueObject\EngineBlockConfiguration' + - '@engineblock.url_provider' + - '@engineblock.functional_testing.fixture.features' + - '%stepup.sfo.override_engine_entityid%' diff --git a/tests/behat.yml b/tests/behat.yml index 273730cb68..3db2b76689 100644 --- a/tests/behat.yml +++ b/tests/behat.yml @@ -86,5 +86,8 @@ default: - "--window-size=1920,1080" - "--no-sandbox" - "--disable-dev-shm-usage" - Behat\Symfony2Extension: ~ + Behat\Symfony2Extension: + kernel: + env: 'test' + debug: true