diff --git a/.gitignore b/.gitignore index 3808141..fa6e372 100644 --- a/.gitignore +++ b/.gitignore @@ -17,6 +17,9 @@ /package-lock.json /node_modules/ +# PHPUnit +/.phpunit.result.cache + # WordPress /wordpress/ /wp-content/ diff --git a/composer.json b/composer.json index 455a624..58fb792 100644 --- a/composer.json +++ b/composer.json @@ -39,12 +39,13 @@ } }, "require": { - "php": ">=7.4", + "php": ">=8.0", "ext-simplexml": "*", "pronamic/wp-http": "^1.2", - "wp-pay/core": "^4.6" + "wp-pay/core": "^4.13" }, "require-dev": { + "automattic/wordbless": "^0.4.0", "bamarni/composer-bin-plugin": "^1.8", "overtrue/phplint": "^9.0", "php-coveralls/php-coveralls": "^2.6", @@ -53,7 +54,7 @@ "pronamic/wp-coding-standards": "^2.0", "roots/wordpress": "^6.0", "wp-phpunit/wp-phpunit": "^6.1", - "yoast/phpunit-polyfills": "^2.0" + "yoast/phpunit-polyfills": "^1.0" }, "scripts": { "coveralls": "vendor/bin/php-coveralls -v", @@ -62,9 +63,12 @@ "phplint": "vendor/bin/phplint", "phpmd": "vendor/bin/phpmd src,tests text phpmd.ruleset.xml --suffixes php", "phpstan": "vendor/bin/phpstan analyse --memory-limit=-1", - "phpunit": "vendor/bin/phpunit", - "post-install-cmd": "echo 'Optionally run: composer bin all install'", - "post-update-cmd": "echo 'Optionally run: composer bin all update'", + "phpunit": "vendor/bin/phpunit --colors=always", + "post-install-cmd": "WorDBless\\Composer\\InstallDropin::copy", + "post-update-cmd": [ + "echo 'Optionally run: composer bin all update'", + "WorDBless\\Composer\\InstallDropin::copy" + ], "psalm": "vendor/bin/psalm" } } diff --git a/phpunit.xml.dist b/phpunit.xml.dist index debbbfe..fac6c4e 100644 --- a/phpunit.xml.dist +++ b/phpunit.xml.dist @@ -1,26 +1,26 @@ - - - tests/src - - + + + src + + - - - src - - + + + tests/src + + - - - + + + diff --git a/src/DirectLink.php b/src/DirectLink.php deleted file mode 100644 index 9f73c8c..0000000 --- a/src/DirectLink.php +++ /dev/null @@ -1,49 +0,0 @@ -api_url = DirectLink::API_PRODUCTION_URL; - } - - /** - * Order direct - * - * @param array $data Data. - * - * @return bool|OrderResponse - * @throws \Exception Throws exception if DirectLink request fails. - */ - public function order_direct( array $data = [] ) { - $response = Http::request( - $this->api_url, - [ - 'method' => 'POST', - 'sslverify' => false, - 'body' => $data, - ] - ); - - $xml = $response->simplexml(); - - $order_response = OrderResponseParser::parse( $xml ); - - if ( ! empty( $order_response->nc_error ) ) { - $ogone_error = new Error( - (string) $order_response->nc_error, - (string) $order_response->nc_error_plus - ); - - throw new \Exception( - \esc_html( (string) $ogone_error ) - ); - } - - return $order_response; - } -} diff --git a/src/DirectLink/Config.php b/src/DirectLink/Config.php deleted file mode 100644 index 2ed4d8f..0000000 --- a/src/DirectLink/Config.php +++ /dev/null @@ -1,32 +0,0 @@ -api_url = DirectLink::API_PRODUCTION_URL; - } -} diff --git a/src/DirectLink/DataHelper.php b/src/DirectLink/DataHelper.php deleted file mode 100644 index 3b6b58d..0000000 --- a/src/DirectLink/DataHelper.php +++ /dev/null @@ -1,59 +0,0 @@ -data = $data; - } - - /** - * Set user id - * - * @param string $user_id User ID. - * - * @return DataHelper - */ - public function set_user_id( $user_id ) { - $this->data->set_field( 'USERID', $user_id ); - - return $this; - } - - /** - * Set password - * - * @param string $password Password. - * - * @return DataHelper - */ - public function set_password( $password ) { - $this->data->set_field( 'PSWD', $password ); - - return $this; - } -} diff --git a/src/DirectLink/Gateway.php b/src/DirectLink/Gateway.php deleted file mode 100644 index ea39d7d..0000000 --- a/src/DirectLink/Gateway.php +++ /dev/null @@ -1,248 +0,0 @@ -config = $config; - - $this->set_method( self::METHOD_HTTP_REDIRECT ); - - $this->client = new Client(); - $this->client->psp_id = $config->psp_id; - $this->client->sha_in = $config->sha_in_pass_phrase; - $this->client->user_id = $config->user_id; - $this->client->password = $config->password; - $this->client->api_url = $config->api_url; - } - - /** - * Start - * - * @param Payment $payment Payment. - * - * @see Core_Gateway::start() - * - * @throws \Exception Throws exception if DirectLink request fails. - */ - public function start( Payment $payment ) { - $ogone_data = new Data(); - - // General. - $ogone_data_general = new DataGeneralHelper( $ogone_data ); - - $order_id = $payment->format_string( $this->config->order_id ); - - if ( '' === $order_id ) { - $order_id = $payment->get_id(); - } - - $ogone_data_general - ->set_psp_id( $this->client->psp_id ) - ->set_order_id( $order_id ) - ->set_order_description( $payment->get_description() ) - ->set_param_plus( 'payment_id=' . $payment->get_id() ) - ->set_currency( $payment->get_total_amount()->get_currency()->get_alphabetic_code() ) - ->set_amount( $payment->get_total_amount()->get_minor_units()->format( 0, '', '' ) ); - - // Alias. - if ( $this->config->alias_enabled ) { - $alias = uniqid(); - - $payment->set_meta( 'ogone_alias', $alias ); - - $ogone_data_general->set_alias( $alias ); - } - - $customer = $payment->get_customer(); - - // Language. - $locale = \get_locale(); - - if ( null !== $customer ) { - $customer_locale = $customer->get_locale(); - - // Locale not always contains `_`, e.g. "Nederlands" in Firefox. - if ( null !== $customer_locale && false !== \strpos( $customer_locale, '_' ) ) { - $locale = $customer_locale; - } - } - - $ogone_data_general->set_language( $locale ); - - // Customer. - $ogone_data_customer = new DataCustomerHelper( $ogone_data ); - - if ( null !== $customer ) { - $name = $customer->get_name(); - - if ( null !== $name ) { - $ogone_data_customer->set_name( strval( $name ) ); - } - - $ogone_data_customer->set_email( $customer->get_email() ); - } - - $billing_address = $payment->get_billing_address(); - - if ( null !== $billing_address ) { - $ogone_data_customer - ->set_address( $billing_address->get_line_1() ) - ->set_zip( $billing_address->get_postal_code() ) - ->set_town( $billing_address->get_city() ) - ->set_country( $billing_address->get_country_code() ) - ->set_telephone_number( $billing_address->get_phone() ); - } - - // DirectLink. - $ogone_data_directlink = new DataHelper( $ogone_data ); - - $ogone_data_directlink - ->set_user_id( $this->client->user_id ) - ->set_password( $this->client->password ); - - // Credit card. - $ogone_data_credit_card = new DataCreditCardHelper( $ogone_data ); - - $credit_card = $payment->get_credit_card(); - - if ( $credit_card ) { - $ogone_data_credit_card - ->set_number( $credit_card->get_number() ) - ->set_expiration_date( $credit_card->get_expiration_date() ) - ->set_security_code( $credit_card->get_security_code() ); - } - - $ogone_data->set_field( 'OPERATION', 'SAL' ); - - // 3-D Secure - if ( $this->config->enabled_3d_secure ) { - $secure_data_helper = new SecureDataHelper( $ogone_data ); - - $secure_data_helper - ->set_3d_secure_flag( true ) - ->set_window( 'MAINW' ); - - if ( \array_key_exists( 'HTTP_ACCEPT', $_SERVER ) ) { - $secure_data_helper->set_http_accept( \sanitize_text_field( $_SERVER['HTTP_ACCEPT'] ) ); - } - - if ( \array_key_exists( 'HTTP_USER_AGENT', $_SERVER ) ) { - // phpcs:ignore WordPressVIPMinimum.Variables.RestrictedVariables.cache_constraints___SERVER__HTTP_USER_AGENT__ - $secure_data_helper->set_http_accept( \sanitize_text_field( $_SERVER['HTTP_USER_AGENT'] ) ); - } - - $ogone_data->set_field( 'ACCEPTURL', $payment->get_return_url() ); - $ogone_data->set_field( 'DECLINEURL', $payment->get_return_url() ); - $ogone_data->set_field( 'EXCEPTIONURL', $payment->get_return_url() ); - $ogone_data->set_field( 'COMPLUS', '' ); - } - - // Signature. - $calculation_fields = Security::get_calculations_parameters_in(); - - $fields = Security::get_calculation_fields( $calculation_fields, $ogone_data->get_fields() ); - - $signature = Security::get_signature( $fields, $this->config->sha_in_pass_phrase, $this->config->hash_algorithm ); - - $ogone_data->set_field( 'SHASIGN', $signature ); - - // Order. - $result = $this->client->order_direct( $ogone_data->get_fields() ); - - $payment->set_transaction_id( $result->pay_id ); - $payment->set_action_url( $payment->get_return_url() ); - $payment->set_status( Statuses::transform( $result->status ) ); - - if ( ! empty( $result->html_answer ) ) { - $payment->set_meta( 'ogone_directlink_html_answer', $result->html_answer ); - $payment->set_action_url( $payment->get_pay_redirect_url() ); - } - } - - /** - * Payment redirect. - * - * @param Payment $payment Payment. - * - * @return void - */ - public function payment_redirect( Payment $payment ) { - $html_answer = $payment->get_meta( 'ogone_directlink_html_answer' ); - - if ( ! empty( $html_answer ) ) { - // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped - echo $html_answer; - - exit; - } - } - - /** - * Update status of the specified payment - * - * @param Payment $payment Payment. - */ - public function update_status( Payment $payment ) { - $data = Security::get_request_data(); - - $data = array_change_key_case( $data, CASE_UPPER ); - - $calculation_fields = Security::get_calculations_parameters_out(); - - $fields = Security::get_calculation_fields( $calculation_fields, $data ); - - $signature = $data['SHASIGN']; - $signature_out = Security::get_signature( $fields, $this->config->sha_out_pass_phrase, $this->config->hash_algorithm ); - - if ( 0 === strcasecmp( $signature, $signature_out ) ) { - $status = Statuses::transform( $data[ Parameters::STATUS ] ); - - $payment->set_status( $status ); - } - } -} diff --git a/src/DirectLink/Integration.php b/src/DirectLink/Integration.php deleted file mode 100644 index d77f17c..0000000 --- a/src/DirectLink/Integration.php +++ /dev/null @@ -1,68 +0,0 @@ - 'ogone-directlink', - 'name' => 'Ingenico/Ogone - DirectLink', - 'api_url' => DirectLink::API_PRODUCTION_URL, - ] - ); - - parent::__construct( $args ); - - $this->api_url = $args['api_url']; - } - - public function get_settings_fields() { - return Settings::get_settings_fields( 'directlink' ); - } - - public function get_config( $post_id ) { - $config = new Config(); - - $config->api_url = $this->api_url; - - $config->psp_id = get_post_meta( $post_id, '_pronamic_gateway_ogone_psp_id', true ); - $config->hash_algorithm = get_post_meta( $post_id, '_pronamic_gateway_ogone_hash_algorithm', true ); - $config->sha_out_pass_phrase = get_post_meta( $post_id, '_pronamic_gateway_ogone_sha_out_pass_phrase', true ); - $config->user_id = get_post_meta( $post_id, '_pronamic_gateway_ogone_user_id', true ); - $config->password = get_post_meta( $post_id, '_pronamic_gateway_ogone_password', true ); - $config->sha_in_pass_phrase = get_post_meta( $post_id, '_pronamic_gateway_ogone_directlink_sha_in_pass_phrase', true ); - $config->enabled_3d_secure = get_post_meta( $post_id, '_pronamic_gateway_ogone_3d_secure_enabled', true ); - $config->order_id = get_post_meta( $post_id, '_pronamic_gateway_ogone_order_id', true ); - $config->alias_enabled = get_post_meta( $post_id, '_pronamic_gateway_ogone_alias_enabled', true ); - $config->alias_usage = get_post_meta( $post_id, '_pronamic_gateway_ogone_alias_usage', true ); - - return $config; - } - - /** - * Get gateway. - * - * @param int $post_id Post ID. - * @return Gateway - */ - public function get_gateway( $post_id ) { - $gateway = new Gateway( $this->get_config( $post_id ) ); - - $gateway->set_mode( $this->get_mode() ); - - return $gateway; - } -} diff --git a/src/DirectLink/OrderResponse.php b/src/DirectLink/OrderResponse.php deleted file mode 100644 index f1577f0..0000000 --- a/src/DirectLink/OrderResponse.php +++ /dev/null @@ -1,45 +0,0 @@ -simplexml(); - $order_response = OrderResponseParser::parse( $xml ); + $nc_error = (string) $xml[ Parameters::NC_ERROR ]; - if ( ! empty( $order_response->nc_error ) ) { + if ( '0' !== $nc_error ) { $ogone_error = new Error( - (string) $order_response->nc_error, - (string) $order_response->nc_error_plus + $nc_error, + (string) $xml[ Parameters::NC_ERROR_PLUS ] ); throw new \Exception( @@ -320,7 +319,7 @@ public function get_order_status( $order_id ) { ); } - $status = (string) $order_response->status; + $status = (string) $xml[ Parameters::STATUS ]; $return = Statuses::transform( $status ); diff --git a/src/XML/OrderResponseParser.php b/src/XML/OrderResponseParser.php deleted file mode 100644 index b7ebf5b..0000000 --- a/src/XML/OrderResponseParser.php +++ /dev/null @@ -1,52 +0,0 @@ -order_id = (string) $xml['orderID']; - $order_response->pay_id = (string) $xml['PAYID']; - $order_response->nc_status = (string) $xml[ Parameters::NC_STATUS ]; - $order_response->nc_error = (string) $xml[ Parameters::NC_ERROR ]; - $order_response->nc_error_plus = (string) $xml[ Parameters::NC_ERROR_PLUS ]; - $order_response->acceptance = (string) $xml['ACCEPTANCE']; - $order_response->status = (string) $xml[ Parameters::STATUS ]; - $order_response->eci = (string) $xml['ECI']; - $order_response->amount = (string) $xml[ Parameters::AMOUNT ]; - $order_response->currency = (string) $xml[ Parameters::CURRENCY ]; - $order_response->pm = (string) $xml['PM']; - $order_response->brand = (string) $xml['BRAND']; - - if ( $xml->HTML_ANSWER ) { - // phpcs:ignore WordPress.PHP.DiscouragedPHPFunctions.obfuscation_base64_decode - $order_response->html_answer = base64_decode( (string) $xml->HTML_ANSWER ); - } - - return $order_response; - } -} diff --git a/tests/bootstrap.php b/tests/bootstrap.php index 30f603d..7fe284e 100644 --- a/tests/bootstrap.php +++ b/tests/bootstrap.php @@ -8,22 +8,31 @@ * @package Pronamic\WordPress\Pay\Gateways\Ingenico */ -putenv( 'WP_PHPUNIT__TESTS_CONFIG=tests/wp-config.php' ); - +/** + * Composer. + */ require_once __DIR__ . '/../vendor/autoload.php'; -require_once getenv( 'WP_PHPUNIT__DIR' ) . '/includes/functions.php'; - /** - * Manually load plugin. + * WorDBless. */ -function _manually_load_plugin() { - global $pronamic_ideal; +\WorDBless\Load::load(); - $pronamic_ideal = pronamic_pay_plugin(); +/** + * Psalm. + */ +if ( defined( 'PSALM_VERSION' ) ) { + return; } -tests_add_filter( 'muplugins_loaded', '_manually_load_plugin' ); +/** + * Plugin. + */ +$pronamic_pay_plugin = \Pronamic\WordPress\Pay\Plugin::instance( + array( + 'file' => __DIR__ . '/../pronamic-pay-ingenico.php', + 'action_scheduler' => __DIR__ . '/../vendor/woocommerce/action-scheduler/action-scheduler.php', + ) +); -// Bootstrap. -require getenv( 'WP_PHPUNIT__DIR' ) . '/includes/bootstrap.php'; +$pronamic_pay_plugin->plugins_loaded(); diff --git a/tests/src/DataCreditCardHelperTest.php b/tests/src/DataCreditCardHelperTest.php index afc9b44..4980c41 100644 --- a/tests/src/DataCreditCardHelperTest.php +++ b/tests/src/DataCreditCardHelperTest.php @@ -3,6 +3,7 @@ namespace Pronamic\WordPress\Pay\Gateways\Ingenico; use DateTime; +use Yoast\PHPUnitPolyfills\TestCases\TestCase; /** * Title: Ogone data default helper class test @@ -14,7 +15,7 @@ * @version 2.0.0 * @since 1.1.0 */ -class DataCreditCardHelperTest extends \WP_UnitTestCase { +class DataCreditCardHelperTest extends TestCase { /** * Test helper. */ diff --git a/tests/src/DataGeneralHelperTest.php b/tests/src/DataGeneralHelperTest.php index 947f96f..a5eba6b 100644 --- a/tests/src/DataGeneralHelperTest.php +++ b/tests/src/DataGeneralHelperTest.php @@ -2,6 +2,8 @@ namespace Pronamic\WordPress\Pay\Gateways\Ingenico; +use Yoast\PHPUnitPolyfills\TestCases\TestCase; + /** * Title: Ogone data default helper class test * Description: @@ -12,7 +14,7 @@ * @version 2.0.0 * @since 1.1.0 */ -class DataGeneralHelperTest extends \WP_UnitTestCase { +class DataGeneralHelperTest extends TestCase { /** * Test helper */ diff --git a/tests/src/DataUrlHelperTest.php b/tests/src/DataUrlHelperTest.php index 153147a..50c87b9 100644 --- a/tests/src/DataUrlHelperTest.php +++ b/tests/src/DataUrlHelperTest.php @@ -2,6 +2,8 @@ namespace Pronamic\WordPress\Pay\Gateways\Ingenico; +use Yoast\PHPUnitPolyfills\TestCases\TestCase; + /** * Title: Ogone data URL helper class test * Description: @@ -12,7 +14,7 @@ * @version 2.0.0 * @since 1.1.0 */ -class DataUrlHelperTest extends \WP_UnitTestCase { +class DataUrlHelperTest extends TestCase { /** * Test URL helper. */ diff --git a/tests/src/ErrorTest.php b/tests/src/ErrorTest.php index 34ef269..022e123 100644 --- a/tests/src/ErrorTest.php +++ b/tests/src/ErrorTest.php @@ -2,7 +2,9 @@ namespace Pronamic\WordPress\Pay\Gateways\Ingenico; -class ErrorTest extends \WP_UnitTestCase { +use Yoast\PHPUnitPolyfills\TestCases\TestCase; + +class ErrorTest extends TestCase { /** * Test error. */ diff --git a/tests/src/OrderStandard/ClientTest.php b/tests/src/OrderStandard/ClientTest.php index fb5885d..8b94147 100644 --- a/tests/src/OrderStandard/ClientTest.php +++ b/tests/src/OrderStandard/ClientTest.php @@ -3,6 +3,7 @@ namespace Pronamic\WordPress\Pay\Gateways\Ingenico\OrderStandard; use Pronamic\WordPress\Pay\Gateways\Ingenico\DataGeneralHelper; +use Yoast\PHPUnitPolyfills\TestCases\TestCase; /** * Title: Ogone client class test @@ -14,7 +15,7 @@ * @version 2.0.0 * @since 1.1.0 */ -class ClientTest extends \WP_UnitTestCase { +class ClientTest extends TestCase { /** * Test signature in empty. */ diff --git a/tests/src/PaymentMethodsListTest.php b/tests/src/PaymentMethodsListTest.php index 22b7944..14d096b 100644 --- a/tests/src/PaymentMethodsListTest.php +++ b/tests/src/PaymentMethodsListTest.php @@ -2,6 +2,8 @@ namespace Pronamic\WordPress\Pay\Gateways\Ingenico; +use Yoast\PHPUnitPolyfills\TestCases\TestCase; + /** * Title: Ogone payment methods list (PMLIST parameter) test * Description: @@ -12,7 +14,7 @@ * @version 2.0.0 * @since 1.1.0 */ -class PaymentMethodsListTest extends \WP_UnitTestCase { +class PaymentMethodsListTest extends TestCase { /** * Test constructor. */ diff --git a/tests/src/SecurityTest.php b/tests/src/SecurityTest.php index 9fbeca5..6d7609c 100644 --- a/tests/src/SecurityTest.php +++ b/tests/src/SecurityTest.php @@ -2,7 +2,9 @@ namespace Pronamic\WordPress\Pay\Gateways\Ingenico; -class SecurityTest extends \WP_UnitTestCase { +use Yoast\PHPUnitPolyfills\TestCases\TestCase; + +class SecurityTest extends TestCase { /** * Test get calculations parameters in. */ diff --git a/tests/src/StatusesTest.php b/tests/src/StatusesTest.php index 576b29d..39d4432 100644 --- a/tests/src/StatusesTest.php +++ b/tests/src/StatusesTest.php @@ -3,6 +3,7 @@ namespace Pronamic\WordPress\Pay\Gateways\Ingenico; use Pronamic\WordPress\Pay\Payments\PaymentStatus as Core_Statuses; +use Yoast\PHPUnitPolyfills\TestCases\TestCase; /** * Title: Ogone statuses constants tests @@ -13,7 +14,7 @@ * @author Remco Tolsma * @version 2.0.4 */ -class StatusesTest extends \PHPUnit_Framework_TestCase { +class StatusesTest extends TestCase { /** * Test transform. * diff --git a/tests/src/XML/OrderResponseParser0Test.php b/tests/src/XML/OrderResponseParser0Test.php deleted file mode 100644 index 6be2d8f..0000000 --- a/tests/src/XML/OrderResponseParser0Test.php +++ /dev/null @@ -1,57 +0,0 @@ -assertInstanceOf( 'SimpleXMLElement', $simplexml ); - - return $simplexml; - } - - /** - * Test parser. - * - * @depends test_init - * - * @param SimpleXMLElement $simplexml - * - * @return OrderResponse - */ - public function test_parser( $simplexml ) { - $order_response = OrderResponseParser::parse( $simplexml ); - - $this->assertInstanceOf( 'Pronamic\WordPress\Pay\Gateways\Ingenico\DirectLink\OrderResponse', $order_response ); - - return $order_response; - } - - /** - * Test values. - * - * @depends test_parser - * - * @param OrderResponse $order_response - */ - public function test_values( $order_response ) { - $expected = new OrderResponse(); - $expected->order_id = '52'; - $expected->pay_id = '0'; - $expected->nc_error = '50001123'; - $expected->status = '0'; - $expected->nc_error_plus = 'Card type not active for the merchant'; - - $this->assertEquals( $expected, $order_response ); - } -} diff --git a/tests/src/XML/OrderResponseParser46Test.php b/tests/src/XML/OrderResponseParser46Test.php deleted file mode 100644 index 17a730b..0000000 --- a/tests/src/XML/OrderResponseParser46Test.php +++ /dev/null @@ -1,60 +0,0 @@ -assertInstanceOf( 'SimpleXMLElement', $simplexml ); - - return $simplexml; - } - - /** - * Test parser. - * - * @depends test_init - * - * @param SimpleXMLElement $simplexml XML element. - * - * @return OrderResponse - */ - public function test_parser( $simplexml ) { - $order_response = OrderResponseParser::parse( $simplexml ); - - $this->assertInstanceOf( 'Pronamic\WordPress\Pay\Gateways\Ingenico\DirectLink\OrderResponse', $order_response ); - - return $order_response; - } - - /** - * Test values. - * - * @depends test_parser - * - * @param OrderResponse $order_response Order response. - */ - public function test_values( $order_response ) { - $filename = dirname( dirname( __DIR__ ) ) . '/Mock/response-status-46-html-answer.html'; - - $expected = new OrderResponse(); - $expected->order_id = '1387195001'; - $expected->pay_id = '26187584'; - $expected->nc_error = '0'; - $expected->status = '46'; - $expected->nc_error_plus = 'Identification requested'; - $expected->html_answer = file_get_contents( $filename, true ); - - $this->assertEquals( $expected, $order_response ); - } -} diff --git a/tests/src/XML/OrderResponseParser9Test.php b/tests/src/XML/OrderResponseParser9Test.php deleted file mode 100644 index 8a8840a..0000000 --- a/tests/src/XML/OrderResponseParser9Test.php +++ /dev/null @@ -1,57 +0,0 @@ -assertInstanceOf( 'SimpleXMLElement', $simplexml ); - - return $simplexml; - } - - /** - * Test parser. - * - * @depends test_init - * - * @param SimpleXMLElement $simplexml - * - * @return OrderResponse - */ - public function test_parser( $simplexml ) { - $order_response = OrderResponseParser::parse( $simplexml ); - - $this->assertInstanceOf( 'Pronamic\WordPress\Pay\Gateways\Ingenico\DirectLink\OrderResponse', $order_response ); - - return $order_response; - } - - /** - * Test values. - * - * @depends test_parser - * - * @param OrderResponse $order_response - */ - public function test_values( $order_response ) { - $expected = new OrderResponse(); - $expected->order_id = '54'; - $expected->pay_id = '23286404'; - $expected->nc_error = '0'; - $expected->status = '9'; - $expected->nc_error_plus = '!'; - - $this->assertEquals( $expected, $order_response ); - } -} diff --git a/vendor-bin/phpstan/composer.lock b/vendor-bin/phpstan/composer.lock index 34f49f6..36c6d54 100644 --- a/vendor-bin/phpstan/composer.lock +++ b/vendor-bin/phpstan/composer.lock @@ -9,27 +9,25 @@ "packages-dev": [ { "name": "php-stubs/wordpress-stubs", - "version": "v5.9.5", + "version": "v5.9.6", "source": { "type": "git", "url": "https://github.com/php-stubs/wordpress-stubs.git", - "reference": "13ecf204a7e6d215a7c0d23e2aa27940fe617717" + "reference": "6a18d938d0aef39d091505a4a35b025fb6c10098" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-stubs/wordpress-stubs/zipball/13ecf204a7e6d215a7c0d23e2aa27940fe617717", - "reference": "13ecf204a7e6d215a7c0d23e2aa27940fe617717", + "url": "https://api.github.com/repos/php-stubs/wordpress-stubs/zipball/6a18d938d0aef39d091505a4a35b025fb6c10098", + "reference": "6a18d938d0aef39d091505a4a35b025fb6c10098", "shasum": "" }, - "replace": { - "giacocorsiglia/wordpress-stubs": "*" - }, "require-dev": { "nikic/php-parser": "< 4.12.0", "php": "~7.3 || ~8.0", - "php-stubs/generator": "^0.8.1", + "php-stubs/generator": "^0.8.3", "phpdocumentor/reflection-docblock": "^5.3", - "phpstan/phpstan": "^1.2" + "phpstan/phpstan": "^1.10.12", + "phpunit/phpunit": "^9.5" }, "suggest": { "paragonie/sodium_compat": "Pure PHP implementation of libsodium", @@ -50,9 +48,9 @@ ], "support": { "issues": "https://github.com/php-stubs/wordpress-stubs/issues", - "source": "https://github.com/php-stubs/wordpress-stubs/tree/v5.9.5" + "source": "https://github.com/php-stubs/wordpress-stubs/tree/v5.9.6" }, - "time": "2022-11-09T05:32:14+00:00" + "time": "2023-05-18T04:34:27+00:00" }, { "name": "phpstan/phpstan", @@ -116,16 +114,16 @@ }, { "name": "symfony/polyfill-php73", - "version": "v1.27.0", + "version": "v1.28.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php73.git", - "reference": "9e8ecb5f92152187c4799efd3c96b78ccab18ff9" + "reference": "fe2f306d1d9d346a7fee353d0d5012e401e984b5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/9e8ecb5f92152187c4799efd3c96b78ccab18ff9", - "reference": "9e8ecb5f92152187c4799efd3c96b78ccab18ff9", + "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/fe2f306d1d9d346a7fee353d0d5012e401e984b5", + "reference": "fe2f306d1d9d346a7fee353d0d5012e401e984b5", "shasum": "" }, "require": { @@ -134,7 +132,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.27-dev" + "dev-main": "1.28-dev" }, "thanks": { "name": "symfony/polyfill", @@ -175,7 +173,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php73/tree/v1.27.0" + "source": "https://github.com/symfony/polyfill-php73/tree/v1.28.0" }, "funding": [ { @@ -191,7 +189,7 @@ "type": "tidelift" } ], - "time": "2022-11-03T14:55:06+00:00" + "time": "2023-01-26T09:26:14+00:00" }, { "name": "szepeviktor/phpstan-wordpress", @@ -265,5 +263,5 @@ "prefer-lowest": false, "platform": [], "platform-dev": [], - "plugin-api-version": "2.3.0" + "plugin-api-version": "2.6.0" } diff --git a/vendor-bin/psalm/composer.lock b/vendor-bin/psalm/composer.lock index af5e6e5..752ba35 100644 --- a/vendor-bin/psalm/composer.lock +++ b/vendor-bin/psalm/composer.lock @@ -248,16 +248,16 @@ }, { "name": "composer/pcre", - "version": "3.1.0", + "version": "3.1.1", "source": { "type": "git", "url": "https://github.com/composer/pcre.git", - "reference": "4bff79ddd77851fe3cdd11616ed3f92841ba5bd2" + "reference": "00104306927c7a0919b4ced2aaa6782c1e61a3c9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/pcre/zipball/4bff79ddd77851fe3cdd11616ed3f92841ba5bd2", - "reference": "4bff79ddd77851fe3cdd11616ed3f92841ba5bd2", + "url": "https://api.github.com/repos/composer/pcre/zipball/00104306927c7a0919b4ced2aaa6782c1e61a3c9", + "reference": "00104306927c7a0919b4ced2aaa6782c1e61a3c9", "shasum": "" }, "require": { @@ -299,7 +299,7 @@ ], "support": { "issues": "https://github.com/composer/pcre/issues", - "source": "https://github.com/composer/pcre/tree/3.1.0" + "source": "https://github.com/composer/pcre/tree/3.1.1" }, "funding": [ { @@ -315,20 +315,20 @@ "type": "tidelift" } ], - "time": "2022-11-17T09:50:14+00:00" + "time": "2023-10-11T07:11:09+00:00" }, { "name": "composer/semver", - "version": "3.3.2", + "version": "3.4.0", "source": { "type": "git", "url": "https://github.com/composer/semver.git", - "reference": "3953f23262f2bff1919fc82183ad9acb13ff62c9" + "reference": "35e8d0af4486141bc745f23a29cc2091eb624a32" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/semver/zipball/3953f23262f2bff1919fc82183ad9acb13ff62c9", - "reference": "3953f23262f2bff1919fc82183ad9acb13ff62c9", + "url": "https://api.github.com/repos/composer/semver/zipball/35e8d0af4486141bc745f23a29cc2091eb624a32", + "reference": "35e8d0af4486141bc745f23a29cc2091eb624a32", "shasum": "" }, "require": { @@ -378,9 +378,9 @@ "versioning" ], "support": { - "irc": "irc://irc.freenode.org/composer", + "irc": "ircs://irc.libera.chat:6697/composer", "issues": "https://github.com/composer/semver/issues", - "source": "https://github.com/composer/semver/tree/3.3.2" + "source": "https://github.com/composer/semver/tree/3.4.0" }, "funding": [ { @@ -396,7 +396,7 @@ "type": "tidelift" } ], - "time": "2022-04-01T19:23:25+00:00" + "time": "2023-08-31T09:50:34+00:00" }, { "name": "composer/xdebug-handler", @@ -501,6 +501,53 @@ }, "time": "2019-12-04T15:06:13+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": "felixfbecker/advanced-json-rpc", "version": "v3.2.1", @@ -604,16 +651,16 @@ }, { "name": "netresearch/jsonmapper", - "version": "v4.0.0", + "version": "v4.2.0", "source": { "type": "git", "url": "https://github.com/cweiske/jsonmapper.git", - "reference": "8bbc021a8edb2e4a7ea2f8ad4fa9ec9dce2fcb8d" + "reference": "f60565f8c0566a31acf06884cdaa591867ecc956" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/cweiske/jsonmapper/zipball/8bbc021a8edb2e4a7ea2f8ad4fa9ec9dce2fcb8d", - "reference": "8bbc021a8edb2e4a7ea2f8ad4fa9ec9dce2fcb8d", + "url": "https://api.github.com/repos/cweiske/jsonmapper/zipball/f60565f8c0566a31acf06884cdaa591867ecc956", + "reference": "f60565f8c0566a31acf06884cdaa591867ecc956", "shasum": "" }, "require": { @@ -649,22 +696,22 @@ "support": { "email": "cweiske@cweiske.de", "issues": "https://github.com/cweiske/jsonmapper/issues", - "source": "https://github.com/cweiske/jsonmapper/tree/v4.0.0" + "source": "https://github.com/cweiske/jsonmapper/tree/v4.2.0" }, - "time": "2020-12-01T19:48:11+00:00" + "time": "2023-04-09T17:37:40+00:00" }, { "name": "nikic/php-parser", - "version": "v4.15.2", + "version": "v4.17.1", "source": { "type": "git", "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "f59bbe44bf7d96f24f3e2b4ddc21cd52c1d2adbc" + "reference": "a6303e50c90c355c7eeee2c4a8b27fe8dc8fef1d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/f59bbe44bf7d96f24f3e2b4ddc21cd52c1d2adbc", - "reference": "f59bbe44bf7d96f24f3e2b4ddc21cd52c1d2adbc", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/a6303e50c90c355c7eeee2c4a8b27fe8dc8fef1d", + "reference": "a6303e50c90c355c7eeee2c4a8b27fe8dc8fef1d", "shasum": "" }, "require": { @@ -705,9 +752,9 @@ ], "support": { "issues": "https://github.com/nikic/PHP-Parser/issues", - "source": "https://github.com/nikic/PHP-Parser/tree/v4.15.2" + "source": "https://github.com/nikic/PHP-Parser/tree/v4.17.1" }, - "time": "2022-11-12T15:38:23+00:00" + "time": "2023-08-13T19:53:39+00:00" }, { "name": "openlss/lib-array2xml", @@ -874,24 +921,27 @@ }, { "name": "phpdocumentor/type-resolver", - "version": "1.6.2", + "version": "1.7.3", "source": { "type": "git", "url": "https://github.com/phpDocumentor/TypeResolver.git", - "reference": "48f445a408c131e38cab1c235aa6d2bb7a0bb20d" + "reference": "3219c6ee25c9ea71e3d9bbaf39c67c9ebd499419" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/48f445a408c131e38cab1c235aa6d2bb7a0bb20d", - "reference": "48f445a408c131e38cab1c235aa6d2bb7a0bb20d", + "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/3219c6ee25c9ea71e3d9bbaf39c67c9ebd499419", + "reference": "3219c6ee25c9ea71e3d9bbaf39c67c9ebd499419", "shasum": "" }, "require": { + "doctrine/deprecations": "^1.0", "php": "^7.4 || ^8.0", - "phpdocumentor/reflection-common": "^2.0" + "phpdocumentor/reflection-common": "^2.0", + "phpstan/phpdoc-parser": "^1.13" }, "require-dev": { "ext-tokenizer": "*", + "phpbench/phpbench": "^1.2", "phpstan/extension-installer": "^1.1", "phpstan/phpstan": "^1.8", "phpstan/phpstan-phpunit": "^1.1", @@ -923,9 +973,56 @@ "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names", "support": { "issues": "https://github.com/phpDocumentor/TypeResolver/issues", - "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.6.2" + "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.7.3" }, - "time": "2022-10-14T12:47:21+00:00" + "time": "2023-08-12T11:01:26+00:00" + }, + { + "name": "phpstan/phpdoc-parser", + "version": "1.24.3", + "source": { + "type": "git", + "url": "https://github.com/phpstan/phpdoc-parser.git", + "reference": "12f01d214f1c73b9c91fdb3b1c415e4c70652083" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/12f01d214f1c73b9c91fdb3b1c415e4c70652083", + "reference": "12f01d214f1c73b9c91fdb3b1c415e4c70652083", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0" + }, + "require-dev": { + "doctrine/annotations": "^2.0", + "nikic/php-parser": "^4.15", + "php-parallel-lint/php-parallel-lint": "^1.2", + "phpstan/extension-installer": "^1.0", + "phpstan/phpstan": "^1.5", + "phpstan/phpstan-phpunit": "^1.1", + "phpstan/phpstan-strict-rules": "^1.0", + "phpunit/phpunit": "^9.5", + "symfony/process": "^5.2" + }, + "type": "library", + "autoload": { + "psr-4": { + "PHPStan\\PhpDocParser\\": [ + "src/" + ] + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "PHPDoc parser with support for nullable, intersection and generic types", + "support": { + "issues": "https://github.com/phpstan/phpdoc-parser/issues", + "source": "https://github.com/phpstan/phpdoc-parser/tree/1.24.3" + }, + "time": "2023-11-18T20:15:32+00:00" }, { "name": "psr/container", @@ -1032,16 +1129,16 @@ }, { "name": "sebastian/diff", - "version": "4.0.4", + "version": "4.0.5", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/diff.git", - "reference": "3461e3fccc7cfdfc2720be910d3bd73c69be590d" + "reference": "74be17022044ebaaecfdf0c5cd504fc9cd5a7131" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/3461e3fccc7cfdfc2720be910d3bd73c69be590d", - "reference": "3461e3fccc7cfdfc2720be910d3bd73c69be590d", + "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/74be17022044ebaaecfdf0c5cd504fc9cd5a7131", + "reference": "74be17022044ebaaecfdf0c5cd504fc9cd5a7131", "shasum": "" }, "require": { @@ -1086,7 +1183,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/diff/issues", - "source": "https://github.com/sebastianbergmann/diff/tree/4.0.4" + "source": "https://github.com/sebastianbergmann/diff/tree/4.0.5" }, "funding": [ { @@ -1094,27 +1191,27 @@ "type": "github" } ], - "time": "2020-10-26T13:10:38+00:00" + "time": "2023-05-07T05:35:17+00:00" }, { "name": "symfony/console", - "version": "v6.2.0", + "version": "v6.3.8", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "75d4749d9620a8fa21a2d2847800a84b5c4e7682" + "reference": "0d14a9f6d04d4ac38a8cea1171f4554e325dae92" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/75d4749d9620a8fa21a2d2847800a84b5c4e7682", - "reference": "75d4749d9620a8fa21a2d2847800a84b5c4e7682", + "url": "https://api.github.com/repos/symfony/console/zipball/0d14a9f6d04d4ac38a8cea1171f4554e325dae92", + "reference": "0d14a9f6d04d4ac38a8cea1171f4554e325dae92", "shasum": "" }, "require": { "php": ">=8.1", - "symfony/deprecation-contracts": "^2.1|^3", + "symfony/deprecation-contracts": "^2.5|^3", "symfony/polyfill-mbstring": "~1.0", - "symfony/service-contracts": "^1.1|^2|^3", + "symfony/service-contracts": "^2.5|^3", "symfony/string": "^5.4|^6.0" }, "conflict": { @@ -1136,12 +1233,6 @@ "symfony/process": "^5.4|^6.0", "symfony/var-dumper": "^5.4|^6.0" }, - "suggest": { - "psr/log": "For using the console logger", - "symfony/event-dispatcher": "", - "symfony/lock": "", - "symfony/process": "" - }, "type": "library", "autoload": { "psr-4": { @@ -1169,12 +1260,12 @@ "homepage": "https://symfony.com", "keywords": [ "cli", - "command line", + "command-line", "console", "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v6.2.0" + "source": "https://github.com/symfony/console/tree/v6.3.8" }, "funding": [ { @@ -1190,20 +1281,20 @@ "type": "tidelift" } ], - "time": "2022-11-29T16:44:51+00:00" + "time": "2023-10-31T08:09:35+00:00" }, { "name": "symfony/deprecation-contracts", - "version": "v3.1.1", + "version": "v3.4.0", "source": { "type": "git", "url": "https://github.com/symfony/deprecation-contracts.git", - "reference": "07f1b9cc2ffee6aaafcf4b710fbc38ff736bd918" + "reference": "7c3aff79d10325257a001fcf92d991f24fc967cf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/07f1b9cc2ffee6aaafcf4b710fbc38ff736bd918", - "reference": "07f1b9cc2ffee6aaafcf4b710fbc38ff736bd918", + "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/7c3aff79d10325257a001fcf92d991f24fc967cf", + "reference": "7c3aff79d10325257a001fcf92d991f24fc967cf", "shasum": "" }, "require": { @@ -1212,7 +1303,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "3.1-dev" + "dev-main": "3.4-dev" }, "thanks": { "name": "symfony/contracts", @@ -1241,7 +1332,7 @@ "description": "A generic function and convention to trigger deprecation notices", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/deprecation-contracts/tree/v3.1.1" + "source": "https://github.com/symfony/deprecation-contracts/tree/v3.4.0" }, "funding": [ { @@ -1257,20 +1348,20 @@ "type": "tidelift" } ], - "time": "2022-02-25T11:15:52+00:00" + "time": "2023-05-23T14:45:45+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": { @@ -1285,7 +1376,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.27-dev" + "dev-main": "1.28-dev" }, "thanks": { "name": "symfony/polyfill", @@ -1323,7 +1414,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": [ { @@ -1339,20 +1430,20 @@ "type": "tidelift" } ], - "time": "2022-11-03T14:55:06+00:00" + "time": "2023-01-26T09:26:14+00:00" }, { "name": "symfony/polyfill-intl-grapheme", - "version": "v1.27.0", + "version": "v1.28.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-grapheme.git", - "reference": "511a08c03c1960e08a883f4cffcacd219b758354" + "reference": "875e90aeea2777b6f135677f618529449334a612" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/511a08c03c1960e08a883f4cffcacd219b758354", - "reference": "511a08c03c1960e08a883f4cffcacd219b758354", + "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/875e90aeea2777b6f135677f618529449334a612", + "reference": "875e90aeea2777b6f135677f618529449334a612", "shasum": "" }, "require": { @@ -1364,7 +1455,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.27-dev" + "dev-main": "1.28-dev" }, "thanks": { "name": "symfony/polyfill", @@ -1404,7 +1495,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.27.0" + "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.28.0" }, "funding": [ { @@ -1420,20 +1511,20 @@ "type": "tidelift" } ], - "time": "2022-11-03T14:55:06+00:00" + "time": "2023-01-26T09:26:14+00:00" }, { "name": "symfony/polyfill-intl-normalizer", - "version": "v1.27.0", + "version": "v1.28.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-normalizer.git", - "reference": "19bd1e4fcd5b91116f14d8533c57831ed00571b6" + "reference": "8c4ad05dd0120b6a53c1ca374dca2ad0a1c4ed92" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/19bd1e4fcd5b91116f14d8533c57831ed00571b6", - "reference": "19bd1e4fcd5b91116f14d8533c57831ed00571b6", + "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/8c4ad05dd0120b6a53c1ca374dca2ad0a1c4ed92", + "reference": "8c4ad05dd0120b6a53c1ca374dca2ad0a1c4ed92", "shasum": "" }, "require": { @@ -1445,7 +1536,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.27-dev" + "dev-main": "1.28-dev" }, "thanks": { "name": "symfony/polyfill", @@ -1488,7 +1579,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.27.0" + "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.28.0" }, "funding": [ { @@ -1504,20 +1595,20 @@ "type": "tidelift" } ], - "time": "2022-11-03T14:55:06+00:00" + "time": "2023-01-26T09:26:14+00:00" }, { "name": "symfony/polyfill-mbstring", - "version": "v1.27.0", + "version": "v1.28.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "8ad114f6b39e2c98a8b0e3bd907732c207c2b534" + "reference": "42292d99c55abe617799667f454222c54c60e229" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/8ad114f6b39e2c98a8b0e3bd907732c207c2b534", - "reference": "8ad114f6b39e2c98a8b0e3bd907732c207c2b534", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/42292d99c55abe617799667f454222c54c60e229", + "reference": "42292d99c55abe617799667f454222c54c60e229", "shasum": "" }, "require": { @@ -1532,7 +1623,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.27-dev" + "dev-main": "1.28-dev" }, "thanks": { "name": "symfony/polyfill", @@ -1571,7 +1662,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.27.0" + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.28.0" }, "funding": [ { @@ -1587,20 +1678,20 @@ "type": "tidelift" } ], - "time": "2022-11-03T14:55:06+00:00" + "time": "2023-07-28T09:04:16+00:00" }, { "name": "symfony/polyfill-php80", - "version": "v1.27.0", + "version": "v1.28.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php80.git", - "reference": "7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936" + "reference": "6caa57379c4aec19c0a12a38b59b26487dcfe4b5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936", - "reference": "7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/6caa57379c4aec19c0a12a38b59b26487dcfe4b5", + "reference": "6caa57379c4aec19c0a12a38b59b26487dcfe4b5", "shasum": "" }, "require": { @@ -1609,7 +1700,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.27-dev" + "dev-main": "1.28-dev" }, "thanks": { "name": "symfony/polyfill", @@ -1654,7 +1745,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php80/tree/v1.27.0" + "source": "https://github.com/symfony/polyfill-php80/tree/v1.28.0" }, "funding": [ { @@ -1670,20 +1761,20 @@ "type": "tidelift" } ], - "time": "2022-11-03T14:55:06+00:00" + "time": "2023-01-26T09:26:14+00:00" }, { "name": "symfony/service-contracts", - "version": "v3.1.1", + "version": "v3.4.0", "source": { "type": "git", "url": "https://github.com/symfony/service-contracts.git", - "reference": "925e713fe8fcacf6bc05e936edd8dd5441a21239" + "reference": "b3313c2dbffaf71c8de2934e2ea56ed2291a3838" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/service-contracts/zipball/925e713fe8fcacf6bc05e936edd8dd5441a21239", - "reference": "925e713fe8fcacf6bc05e936edd8dd5441a21239", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/b3313c2dbffaf71c8de2934e2ea56ed2291a3838", + "reference": "b3313c2dbffaf71c8de2934e2ea56ed2291a3838", "shasum": "" }, "require": { @@ -1693,13 +1784,10 @@ "conflict": { "ext-psr": "<1.1|>=2" }, - "suggest": { - "symfony/service-implementation": "" - }, "type": "library", "extra": { "branch-alias": { - "dev-main": "3.1-dev" + "dev-main": "3.4-dev" }, "thanks": { "name": "symfony/contracts", @@ -1739,7 +1827,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/service-contracts/tree/v3.1.1" + "source": "https://github.com/symfony/service-contracts/tree/v3.4.0" }, "funding": [ { @@ -1755,20 +1843,20 @@ "type": "tidelift" } ], - "time": "2022-05-30T19:18:58+00:00" + "time": "2023-07-30T20:28:31+00:00" }, { "name": "symfony/string", - "version": "v6.2.0", + "version": "v6.3.8", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "145702685e0d12f81d755c71127bfff7582fdd36" + "reference": "13880a87790c76ef994c91e87efb96134522577a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/145702685e0d12f81d755c71127bfff7582fdd36", - "reference": "145702685e0d12f81d755c71127bfff7582fdd36", + "url": "https://api.github.com/repos/symfony/string/zipball/13880a87790c76ef994c91e87efb96134522577a", + "reference": "13880a87790c76ef994c91e87efb96134522577a", "shasum": "" }, "require": { @@ -1779,13 +1867,13 @@ "symfony/polyfill-mbstring": "~1.0" }, "conflict": { - "symfony/translation-contracts": "<2.0" + "symfony/translation-contracts": "<2.5" }, "require-dev": { "symfony/error-handler": "^5.4|^6.0", "symfony/http-client": "^5.4|^6.0", "symfony/intl": "^6.2", - "symfony/translation-contracts": "^2.0|^3.0", + "symfony/translation-contracts": "^2.5|^3.0", "symfony/var-exporter": "^5.4|^6.0" }, "type": "library", @@ -1825,7 +1913,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v6.2.0" + "source": "https://github.com/symfony/string/tree/v6.3.8" }, "funding": [ { @@ -1841,7 +1929,7 @@ "type": "tidelift" } ], - "time": "2022-11-30T17:13:47+00:00" + "time": "2023-11-09T08:28:21+00:00" }, { "name": "vimeo/psalm", @@ -2068,5 +2156,5 @@ "prefer-lowest": false, "platform": [], "platform-dev": [], - "plugin-api-version": "2.3.0" + "plugin-api-version": "2.6.0" }