From 595b03887a09922e3f369d3682ace6de3d53b2ae Mon Sep 17 00:00:00 2001 From: =?utf8?q?Tim=20D=C3=BCsterhus?= Date: Fri, 23 Apr 2021 15:06:24 +0200 Subject: [PATCH] Update composer dependencies --- .../files/lib/system/api/composer.lock | 55 +++---- .../system/api/composer/InstalledVersions.php | 28 ++-- .../system/api/composer/autoload_files.php | 2 +- .../system/api/composer/autoload_static.php | 2 +- .../lib/system/api/composer/installed.json | 73 ++++++---- .../lib/system/api/composer/installed.php | 28 ++-- .../api/guzzlehttp/promises/CHANGELOG.md | 3 + .../guzzlehttp/promises/phpstan-baseline.neon | 7 - .../api/guzzlehttp/promises/phpstan.neon.dist | 10 -- .../system/api/guzzlehttp/promises/psalm.xml | 15 -- .../guzzlehttp/promises/src/EachPromise.php | 11 +- .../guzzlehttp/psr7/.github/workflows/bc.yml | 16 +++ .../guzzlehttp/psr7/.github/workflows/ci.yml | 30 ++++ .../psr7/.github/workflows/integration.yml | 37 +++++ .../{promises => psr7}/.php_cs.dist | 42 +----- .../system/api/guzzlehttp/psr7/CHANGELOG.md | 19 +++ .../api/guzzlehttp/psr7/src/AppendStream.php | 2 + .../api/guzzlehttp/psr7/src/BufferStream.php | 2 + .../api/guzzlehttp/psr7/src/CachingStream.php | 6 +- .../guzzlehttp/psr7/src/DroppingStream.php | 2 + .../api/guzzlehttp/psr7/src/FnStream.php | 3 + .../api/guzzlehttp/psr7/src/InflateStream.php | 3 + .../guzzlehttp/psr7/src/LazyOpenStream.php | 4 +- .../api/guzzlehttp/psr7/src/LimitStream.php | 5 +- .../guzzlehttp/psr7/src/MultipartStream.php | 8 +- .../api/guzzlehttp/psr7/src/NoSeekStream.php | 4 +- .../api/guzzlehttp/psr7/src/PumpStream.php | 18 +-- .../system/api/guzzlehttp/psr7/src/Query.php | 9 +- .../api/guzzlehttp/psr7/src/Request.php | 4 +- .../api/guzzlehttp/psr7/src/Response.php | 2 +- .../api/guzzlehttp/psr7/src/Rfc7230.php | 1 + .../api/guzzlehttp/psr7/src/ServerRequest.php | 11 +- .../psr7/src/StreamDecoratorTrait.php | 1 + .../api/guzzlehttp/psr7/src/StreamWrapper.php | 2 + .../api/guzzlehttp/psr7/src/UploadedFile.php | 29 ++-- .../system/api/guzzlehttp/psr7/src/Uri.php | 61 +++++++- .../api/guzzlehttp/psr7/src/UriNormalizer.php | 2 + .../api/guzzlehttp/psr7/src/UriResolver.php | 2 + .../system/api/guzzlehttp/psr7/src/Utils.php | 43 +++++- .../api/guzzlehttp/psr7/src/functions.php | 7 +- .../system/api/pear/pear_exception/.gitignore | 6 - .../api/pear/pear_exception/.travis.yml | 7 - .../pear/pear_exception/PEAR/Exception.php | 2 +- .../api/pear/pear_exception/composer.json | 4 +- .../api/pear/pear_exception/package.xml | 120 ---------------- .../tests/PEAR/ExceptionTest.php | 78 ---------- .../system/api/pelago/emogrifier/CHANGELOG.md | 13 ++ .../system/api/pelago/emogrifier/README.md | 10 +- .../api/pelago/emogrifier/composer.json | 3 +- .../HtmlProcessor/AbstractHtmlProcessor.php | 135 ++++++++++++++++-- 50 files changed, 545 insertions(+), 442 deletions(-) delete mode 100644 wcfsetup/install/files/lib/system/api/guzzlehttp/promises/phpstan-baseline.neon delete mode 100644 wcfsetup/install/files/lib/system/api/guzzlehttp/promises/phpstan.neon.dist delete mode 100644 wcfsetup/install/files/lib/system/api/guzzlehttp/promises/psalm.xml create mode 100644 wcfsetup/install/files/lib/system/api/guzzlehttp/psr7/.github/workflows/bc.yml create mode 100644 wcfsetup/install/files/lib/system/api/guzzlehttp/psr7/.github/workflows/ci.yml create mode 100644 wcfsetup/install/files/lib/system/api/guzzlehttp/psr7/.github/workflows/integration.yml rename wcfsetup/install/files/lib/system/api/guzzlehttp/{promises => psr7}/.php_cs.dist (50%) delete mode 100644 wcfsetup/install/files/lib/system/api/pear/pear_exception/.gitignore delete mode 100644 wcfsetup/install/files/lib/system/api/pear/pear_exception/.travis.yml delete mode 100644 wcfsetup/install/files/lib/system/api/pear/pear_exception/package.xml delete mode 100644 wcfsetup/install/files/lib/system/api/pear/pear_exception/tests/PEAR/ExceptionTest.php diff --git a/wcfsetup/install/files/lib/system/api/composer.lock b/wcfsetup/install/files/lib/system/api/composer.lock index 66e5937b04..5430876077 100644 --- a/wcfsetup/install/files/lib/system/api/composer.lock +++ b/wcfsetup/install/files/lib/system/api/composer.lock @@ -262,16 +262,16 @@ }, { "name": "guzzlehttp/promises", - "version": "1.4.0", + "version": "1.4.1", "source": { "type": "git", "url": "https://github.com/guzzle/promises.git", - "reference": "60d379c243457e073cff02bc323a2a86cb355631" + "reference": "8e7d04f1f6450fef59366c399cfad4b9383aa30d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/promises/zipball/60d379c243457e073cff02bc323a2a86cb355631", - "reference": "60d379c243457e073cff02bc323a2a86cb355631", + "url": "https://api.github.com/repos/guzzle/promises/zipball/8e7d04f1f6450fef59366c399cfad4b9383aa30d", + "reference": "8e7d04f1f6450fef59366c399cfad4b9383aa30d", "shasum": "" }, "require": { @@ -311,22 +311,22 @@ ], "support": { "issues": "https://github.com/guzzle/promises/issues", - "source": "https://github.com/guzzle/promises/tree/1.4.0" + "source": "https://github.com/guzzle/promises/tree/1.4.1" }, - "time": "2020-09-30T07:37:28+00:00" + "time": "2021-03-07T09:25:29+00:00" }, { "name": "guzzlehttp/psr7", - "version": "1.7.0", + "version": "1.8.1", "source": { "type": "git", "url": "https://github.com/guzzle/psr7.git", - "reference": "53330f47520498c0ae1f61f7e2c90f55690c06a3" + "reference": "35ea11d335fd638b5882ff1725228b3d35496ab1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/psr7/zipball/53330f47520498c0ae1f61f7e2c90f55690c06a3", - "reference": "53330f47520498c0ae1f61f7e2c90f55690c06a3", + "url": "https://api.github.com/repos/guzzle/psr7/zipball/35ea11d335fd638b5882ff1725228b3d35496ab1", + "reference": "35ea11d335fd638b5882ff1725228b3d35496ab1", "shasum": "" }, "require": { @@ -386,9 +386,9 @@ ], "support": { "issues": "https://github.com/guzzle/psr7/issues", - "source": "https://github.com/guzzle/psr7/tree/1.7.0" + "source": "https://github.com/guzzle/psr7/tree/1.8.1" }, - "time": "2020-09-30T07:37:11+00:00" + "time": "2021-03-21T16:25:00+00:00" }, { "name": "paragonie/constant_time_encoding", @@ -511,23 +511,23 @@ }, { "name": "pear/pear_exception", - "version": "v1.0.1", + "version": "v1.0.2", "source": { "type": "git", "url": "https://github.com/pear/PEAR_Exception.git", - "reference": "dbb42a5a0e45f3adcf99babfb2a1ba77b8ac36a7" + "reference": "b14fbe2ddb0b9f94f5b24cf08783d599f776fff0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/pear/PEAR_Exception/zipball/dbb42a5a0e45f3adcf99babfb2a1ba77b8ac36a7", - "reference": "dbb42a5a0e45f3adcf99babfb2a1ba77b8ac36a7", + "url": "https://api.github.com/repos/pear/PEAR_Exception/zipball/b14fbe2ddb0b9f94f5b24cf08783d599f776fff0", + "reference": "b14fbe2ddb0b9f94f5b24cf08783d599f776fff0", "shasum": "" }, "require": { - "php": ">=4.4.0" + "php": ">=5.2.0" }, "require-dev": { - "phpunit/phpunit": "*" + "phpunit/phpunit": "<9" }, "type": "class", "extra": { @@ -566,20 +566,20 @@ "issues": "http://pear.php.net/bugs/search.php?cmd=display&package_name[]=PEAR_Exception", "source": "https://github.com/pear/PEAR_Exception" }, - "time": "2019-12-10T10:24:42+00:00" + "time": "2021-03-21T15:43:46+00:00" }, { "name": "pelago/emogrifier", - "version": "v5.0.0", + "version": "v5.0.1", "source": { "type": "git", "url": "https://github.com/MyIntervals/emogrifier.git", - "reference": "b43b650880d189b0ada61d95d0729c7424b1752d" + "reference": "37595a9bb62c3c25969bdd9e8d7dd24c3ac62bc9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/MyIntervals/emogrifier/zipball/b43b650880d189b0ada61d95d0729c7424b1752d", - "reference": "b43b650880d189b0ada61d95d0729c7424b1752d", + "url": "https://api.github.com/repos/MyIntervals/emogrifier/zipball/37595a9bb62c3c25969bdd9e8d7dd24c3ac62bc9", + "reference": "37595a9bb62c3c25969bdd9e8d7dd24c3ac62bc9", "shasum": "" }, "require": { @@ -590,13 +590,14 @@ }, "require-dev": { "php-parallel-lint/php-parallel-lint": "^1.2.0", + "rawr/cross-data-providers": "^2.3.0", "slevomat/coding-standard": "^6.4.1", "squizlabs/php_codesniffer": "^3.5.8" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "5.0.x-dev" + "dev-main": "6.0.x-dev" } }, "autoload": { @@ -643,7 +644,7 @@ "issues": "https://github.com/MyIntervals/emogrifier/issues", "source": "https://github.com/MyIntervals/emogrifier" }, - "time": "2020-11-23T18:37:25+00:00" + "time": "2021-04-06T08:18:22+00:00" }, { "name": "psr/http-client", @@ -863,7 +864,7 @@ }, { "name": "symfony/css-selector", - "version": "v5.2.3", + "version": "v5.2.4", "source": { "type": "git", "url": "https://github.com/symfony/css-selector.git", @@ -908,7 +909,7 @@ "description": "Converts CSS selectors to XPath expressions", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/css-selector/tree/v5.2.3" + "source": "https://github.com/symfony/css-selector/tree/v5.2.4" }, "funding": [ { diff --git a/wcfsetup/install/files/lib/system/api/composer/InstalledVersions.php b/wcfsetup/install/files/lib/system/api/composer/InstalledVersions.php index 929a0a2f8b..498ccf8126 100644 --- a/wcfsetup/install/files/lib/system/api/composer/InstalledVersions.php +++ b/wcfsetup/install/files/lib/system/api/composer/InstalledVersions.php @@ -82,21 +82,21 @@ private static $installed = array ( ), 'guzzlehttp/promises' => array ( - 'pretty_version' => '1.4.0', - 'version' => '1.4.0.0', + 'pretty_version' => '1.4.1', + 'version' => '1.4.1.0', 'aliases' => array ( ), - 'reference' => '60d379c243457e073cff02bc323a2a86cb355631', + 'reference' => '8e7d04f1f6450fef59366c399cfad4b9383aa30d', ), 'guzzlehttp/psr7' => array ( - 'pretty_version' => '1.7.0', - 'version' => '1.7.0.0', + 'pretty_version' => '1.8.1', + 'version' => '1.8.1.0', 'aliases' => array ( ), - 'reference' => '53330f47520498c0ae1f61f7e2c90f55690c06a3', + 'reference' => '35ea11d335fd638b5882ff1725228b3d35496ab1', ), 'paragonie/constant_time_encoding' => array ( @@ -118,21 +118,21 @@ private static $installed = array ( ), 'pear/pear_exception' => array ( - 'pretty_version' => 'v1.0.1', - 'version' => '1.0.1.0', + 'pretty_version' => 'v1.0.2', + 'version' => '1.0.2.0', 'aliases' => array ( ), - 'reference' => 'dbb42a5a0e45f3adcf99babfb2a1ba77b8ac36a7', + 'reference' => 'b14fbe2ddb0b9f94f5b24cf08783d599f776fff0', ), 'pelago/emogrifier' => array ( - 'pretty_version' => 'v5.0.0', - 'version' => '5.0.0.0', + 'pretty_version' => 'v5.0.1', + 'version' => '5.0.1.0', 'aliases' => array ( ), - 'reference' => 'b43b650880d189b0ada61d95d0729c7424b1752d', + 'reference' => '37595a9bb62c3c25969bdd9e8d7dd24c3ac62bc9', ), 'psr/http-client' => array ( @@ -186,8 +186,8 @@ private static $installed = array ( ), 'symfony/css-selector' => array ( - 'pretty_version' => 'v5.2.3', - 'version' => '5.2.3.0', + 'pretty_version' => 'v5.2.4', + 'version' => '5.2.4.0', 'aliases' => array ( ), diff --git a/wcfsetup/install/files/lib/system/api/composer/autoload_files.php b/wcfsetup/install/files/lib/system/api/composer/autoload_files.php index 5ea4f1dff3..4eb5714aac 100644 --- a/wcfsetup/install/files/lib/system/api/composer/autoload_files.php +++ b/wcfsetup/install/files/lib/system/api/composer/autoload_files.php @@ -7,9 +7,9 @@ $baseDir = $vendorDir; return array( '7b11c4dc42b3b3023073cb14e519683c' => $vendorDir . '/ralouphie/getallheaders/src/getallheaders.php', + '0e6d7bf4a5811bfa5cf40c5ccd6fae6a' => $vendorDir . '/symfony/polyfill-mbstring/bootstrap.php', 'c964ee0ededf28c96ebd9db5099ef910' => $vendorDir . '/guzzlehttp/promises/src/functions_include.php', 'a0edc8309cc5e1d60e3047b5df6b7052' => $vendorDir . '/guzzlehttp/psr7/src/functions_include.php', - '0e6d7bf4a5811bfa5cf40c5ccd6fae6a' => $vendorDir . '/symfony/polyfill-mbstring/bootstrap.php', '2cffec82183ee1cea088009cef9a6fc3' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier.composer.php', '37a3dc5111fe8f707ab4c132ef1dbc62' => $vendorDir . '/guzzlehttp/guzzle/src/functions_include.php', ); diff --git a/wcfsetup/install/files/lib/system/api/composer/autoload_static.php b/wcfsetup/install/files/lib/system/api/composer/autoload_static.php index d81f4fb95d..8062a7526e 100644 --- a/wcfsetup/install/files/lib/system/api/composer/autoload_static.php +++ b/wcfsetup/install/files/lib/system/api/composer/autoload_static.php @@ -8,9 +8,9 @@ class ComposerStaticInita1f5f7c74275d47a45049a2936db1d0d { public static $files = array ( '7b11c4dc42b3b3023073cb14e519683c' => __DIR__ . '/..' . '/ralouphie/getallheaders/src/getallheaders.php', + '0e6d7bf4a5811bfa5cf40c5ccd6fae6a' => __DIR__ . '/..' . '/symfony/polyfill-mbstring/bootstrap.php', 'c964ee0ededf28c96ebd9db5099ef910' => __DIR__ . '/..' . '/guzzlehttp/promises/src/functions_include.php', 'a0edc8309cc5e1d60e3047b5df6b7052' => __DIR__ . '/..' . '/guzzlehttp/psr7/src/functions_include.php', - '0e6d7bf4a5811bfa5cf40c5ccd6fae6a' => __DIR__ . '/..' . '/symfony/polyfill-mbstring/bootstrap.php', '2cffec82183ee1cea088009cef9a6fc3' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier.composer.php', '37a3dc5111fe8f707ab4c132ef1dbc62' => __DIR__ . '/..' . '/guzzlehttp/guzzle/src/functions_include.php', ); diff --git a/wcfsetup/install/files/lib/system/api/composer/installed.json b/wcfsetup/install/files/lib/system/api/composer/installed.json index 6ba605c44f..bd4b005444 100644 --- a/wcfsetup/install/files/lib/system/api/composer/installed.json +++ b/wcfsetup/install/files/lib/system/api/composer/installed.json @@ -256,17 +256,17 @@ }, { "name": "guzzlehttp/promises", - "version": "1.4.0", - "version_normalized": "1.4.0.0", + "version": "1.4.1", + "version_normalized": "1.4.1.0", "source": { "type": "git", "url": "https://github.com/guzzle/promises.git", - "reference": "60d379c243457e073cff02bc323a2a86cb355631" + "reference": "8e7d04f1f6450fef59366c399cfad4b9383aa30d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/promises/zipball/60d379c243457e073cff02bc323a2a86cb355631", - "reference": "60d379c243457e073cff02bc323a2a86cb355631", + "url": "https://api.github.com/repos/guzzle/promises/zipball/8e7d04f1f6450fef59366c399cfad4b9383aa30d", + "reference": "8e7d04f1f6450fef59366c399cfad4b9383aa30d", "shasum": "" }, "require": { @@ -275,7 +275,7 @@ "require-dev": { "symfony/phpunit-bridge": "^4.4 || ^5.1" }, - "time": "2020-09-30T07:37:28+00:00", + "time": "2021-03-07T09:25:29+00:00", "type": "library", "extra": { "branch-alias": { @@ -306,21 +306,25 @@ "keywords": [ "promise" ], + "support": { + "issues": "https://github.com/guzzle/promises/issues", + "source": "https://github.com/guzzle/promises/tree/1.4.1" + }, "install-path": "../guzzlehttp/promises" }, { "name": "guzzlehttp/psr7", - "version": "1.7.0", - "version_normalized": "1.7.0.0", + "version": "1.8.1", + "version_normalized": "1.8.1.0", "source": { "type": "git", "url": "https://github.com/guzzle/psr7.git", - "reference": "53330f47520498c0ae1f61f7e2c90f55690c06a3" + "reference": "35ea11d335fd638b5882ff1725228b3d35496ab1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/psr7/zipball/53330f47520498c0ae1f61f7e2c90f55690c06a3", - "reference": "53330f47520498c0ae1f61f7e2c90f55690c06a3", + "url": "https://api.github.com/repos/guzzle/psr7/zipball/35ea11d335fd638b5882ff1725228b3d35496ab1", + "reference": "35ea11d335fd638b5882ff1725228b3d35496ab1", "shasum": "" }, "require": { @@ -338,7 +342,7 @@ "suggest": { "laminas/laminas-httphandlerrunner": "Emit PSR-7 responses" }, - "time": "2020-09-30T07:37:11+00:00", + "time": "2021-03-21T16:25:00+00:00", "type": "library", "extra": { "branch-alias": { @@ -380,6 +384,10 @@ "uri", "url" ], + "support": { + "issues": "https://github.com/guzzle/psr7/issues", + "source": "https://github.com/guzzle/psr7/tree/1.8.1" + }, "install-path": "../guzzlehttp/psr7" }, { @@ -505,26 +513,26 @@ }, { "name": "pear/pear_exception", - "version": "v1.0.1", - "version_normalized": "1.0.1.0", + "version": "v1.0.2", + "version_normalized": "1.0.2.0", "source": { "type": "git", "url": "https://github.com/pear/PEAR_Exception.git", - "reference": "dbb42a5a0e45f3adcf99babfb2a1ba77b8ac36a7" + "reference": "b14fbe2ddb0b9f94f5b24cf08783d599f776fff0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/pear/PEAR_Exception/zipball/dbb42a5a0e45f3adcf99babfb2a1ba77b8ac36a7", - "reference": "dbb42a5a0e45f3adcf99babfb2a1ba77b8ac36a7", + "url": "https://api.github.com/repos/pear/PEAR_Exception/zipball/b14fbe2ddb0b9f94f5b24cf08783d599f776fff0", + "reference": "b14fbe2ddb0b9f94f5b24cf08783d599f776fff0", "shasum": "" }, "require": { - "php": ">=4.4.0" + "php": ">=5.2.0" }, "require-dev": { - "phpunit/phpunit": "*" + "phpunit/phpunit": "<9" }, - "time": "2019-12-10T10:24:42+00:00", + "time": "2021-03-21T15:43:46+00:00", "type": "class", "extra": { "branch-alias": { @@ -559,21 +567,25 @@ "keywords": [ "exception" ], + "support": { + "issues": "http://pear.php.net/bugs/search.php?cmd=display&package_name[]=PEAR_Exception", + "source": "https://github.com/pear/PEAR_Exception" + }, "install-path": "../pear/pear_exception" }, { "name": "pelago/emogrifier", - "version": "v5.0.0", - "version_normalized": "5.0.0.0", + "version": "v5.0.1", + "version_normalized": "5.0.1.0", "source": { "type": "git", "url": "https://github.com/MyIntervals/emogrifier.git", - "reference": "b43b650880d189b0ada61d95d0729c7424b1752d" + "reference": "37595a9bb62c3c25969bdd9e8d7dd24c3ac62bc9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/MyIntervals/emogrifier/zipball/b43b650880d189b0ada61d95d0729c7424b1752d", - "reference": "b43b650880d189b0ada61d95d0729c7424b1752d", + "url": "https://api.github.com/repos/MyIntervals/emogrifier/zipball/37595a9bb62c3c25969bdd9e8d7dd24c3ac62bc9", + "reference": "37595a9bb62c3c25969bdd9e8d7dd24c3ac62bc9", "shasum": "" }, "require": { @@ -584,14 +596,15 @@ }, "require-dev": { "php-parallel-lint/php-parallel-lint": "^1.2.0", + "rawr/cross-data-providers": "^2.3.0", "slevomat/coding-standard": "^6.4.1", "squizlabs/php_codesniffer": "^3.5.8" }, - "time": "2020-11-23T18:37:25+00:00", + "time": "2021-04-06T08:18:22+00:00", "type": "library", "extra": { "branch-alias": { - "dev-master": "5.0.x-dev" + "dev-main": "6.0.x-dev" } }, "installation-source": "dist", @@ -861,8 +874,8 @@ }, { "name": "symfony/css-selector", - "version": "v5.2.3", - "version_normalized": "5.2.3.0", + "version": "v5.2.4", + "version_normalized": "5.2.4.0", "source": { "type": "git", "url": "https://github.com/symfony/css-selector.git", @@ -909,7 +922,7 @@ "description": "Converts CSS selectors to XPath expressions", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/css-selector/tree/v5.2.3" + "source": "https://github.com/symfony/css-selector/tree/v5.2.4" }, "funding": [ { diff --git a/wcfsetup/install/files/lib/system/api/composer/installed.php b/wcfsetup/install/files/lib/system/api/composer/installed.php index e2eb7b01ae..e37a43da65 100644 --- a/wcfsetup/install/files/lib/system/api/composer/installed.php +++ b/wcfsetup/install/files/lib/system/api/composer/installed.php @@ -58,21 +58,21 @@ ), 'guzzlehttp/promises' => array ( - 'pretty_version' => '1.4.0', - 'version' => '1.4.0.0', + 'pretty_version' => '1.4.1', + 'version' => '1.4.1.0', 'aliases' => array ( ), - 'reference' => '60d379c243457e073cff02bc323a2a86cb355631', + 'reference' => '8e7d04f1f6450fef59366c399cfad4b9383aa30d', ), 'guzzlehttp/psr7' => array ( - 'pretty_version' => '1.7.0', - 'version' => '1.7.0.0', + 'pretty_version' => '1.8.1', + 'version' => '1.8.1.0', 'aliases' => array ( ), - 'reference' => '53330f47520498c0ae1f61f7e2c90f55690c06a3', + 'reference' => '35ea11d335fd638b5882ff1725228b3d35496ab1', ), 'paragonie/constant_time_encoding' => array ( @@ -94,21 +94,21 @@ ), 'pear/pear_exception' => array ( - 'pretty_version' => 'v1.0.1', - 'version' => '1.0.1.0', + 'pretty_version' => 'v1.0.2', + 'version' => '1.0.2.0', 'aliases' => array ( ), - 'reference' => 'dbb42a5a0e45f3adcf99babfb2a1ba77b8ac36a7', + 'reference' => 'b14fbe2ddb0b9f94f5b24cf08783d599f776fff0', ), 'pelago/emogrifier' => array ( - 'pretty_version' => 'v5.0.0', - 'version' => '5.0.0.0', + 'pretty_version' => 'v5.0.1', + 'version' => '5.0.1.0', 'aliases' => array ( ), - 'reference' => 'b43b650880d189b0ada61d95d0729c7424b1752d', + 'reference' => '37595a9bb62c3c25969bdd9e8d7dd24c3ac62bc9', ), 'psr/http-client' => array ( @@ -162,8 +162,8 @@ ), 'symfony/css-selector' => array ( - 'pretty_version' => 'v5.2.3', - 'version' => '5.2.3.0', + 'pretty_version' => 'v5.2.4', + 'version' => '5.2.4.0', 'aliases' => array ( ), diff --git a/wcfsetup/install/files/lib/system/api/guzzlehttp/promises/CHANGELOG.md b/wcfsetup/install/files/lib/system/api/guzzlehttp/promises/CHANGELOG.md index 4b63b2c749..14796c472c 100644 --- a/wcfsetup/install/files/lib/system/api/guzzlehttp/promises/CHANGELOG.md +++ b/wcfsetup/install/files/lib/system/api/guzzlehttp/promises/CHANGELOG.md @@ -1,5 +1,8 @@ # CHANGELOG +## 1.4.1 - 2021-02-18 + +- Fixed `each_limit` skipping promises and failing ## 1.4.0 - 2020-09-30 diff --git a/wcfsetup/install/files/lib/system/api/guzzlehttp/promises/phpstan-baseline.neon b/wcfsetup/install/files/lib/system/api/guzzlehttp/promises/phpstan-baseline.neon deleted file mode 100644 index 26012c2d42..0000000000 --- a/wcfsetup/install/files/lib/system/api/guzzlehttp/promises/phpstan-baseline.neon +++ /dev/null @@ -1,7 +0,0 @@ -parameters: - ignoreErrors: - - - message: "#^Parameter \\#1 \\$function of function register_shutdown_function expects callable\\(\\)\\: void, Closure\\(\\)\\: mixed given\\.$#" - count: 1 - path: src/TaskQueue.php - diff --git a/wcfsetup/install/files/lib/system/api/guzzlehttp/promises/phpstan.neon.dist b/wcfsetup/install/files/lib/system/api/guzzlehttp/promises/phpstan.neon.dist deleted file mode 100644 index b533a8c991..0000000000 --- a/wcfsetup/install/files/lib/system/api/guzzlehttp/promises/phpstan.neon.dist +++ /dev/null @@ -1,10 +0,0 @@ -includes: - - phpstan-baseline.neon - -parameters: - level: 5 - paths: - - src - - ignoreErrors: - - "#^Dead catch - Exception is already caught by Throwable above\\.$#" diff --git a/wcfsetup/install/files/lib/system/api/guzzlehttp/promises/psalm.xml b/wcfsetup/install/files/lib/system/api/guzzlehttp/promises/psalm.xml deleted file mode 100644 index 3e4e3d0853..0000000000 --- a/wcfsetup/install/files/lib/system/api/guzzlehttp/promises/psalm.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - diff --git a/wcfsetup/install/files/lib/system/api/guzzlehttp/promises/src/EachPromise.php b/wcfsetup/install/files/lib/system/api/guzzlehttp/promises/src/EachPromise.php index fbb8876c76..748f4712cd 100644 --- a/wcfsetup/install/files/lib/system/api/guzzlehttp/promises/src/EachPromise.php +++ b/wcfsetup/install/files/lib/system/api/guzzlehttp/promises/src/EachPromise.php @@ -10,6 +10,8 @@ class EachPromise implements PromisorInterface { private $pending = []; + private $nextPendingIndex = 0; + /** @var \Iterator|null */ private $iterable; @@ -121,6 +123,7 @@ class EachPromise implements PromisorInterface $clearFn = function () { $this->iterable = $this->concurrency = $this->pending = null; $this->onFulfilled = $this->onRejected = null; + $this->nextPendingIndex = 0; }; $this->aggregate->then($clearFn, $clearFn); @@ -163,11 +166,9 @@ class EachPromise implements PromisorInterface $promise = Create::promiseFor($this->iterable->current()); $key = $this->iterable->key(); - // Iterable keys may not be unique, so we add the promises at the end - // of the pending array and retrieve the array index being used - $this->pending[] = null; - end($this->pending); - $idx = key($this->pending); + // Iterable keys may not be unique, so we use a counter to + // guarantee uniqueness + $idx = $this->nextPendingIndex++; $this->pending[$idx] = $promise->then( function ($value) use ($idx, $key) { diff --git a/wcfsetup/install/files/lib/system/api/guzzlehttp/psr7/.github/workflows/bc.yml b/wcfsetup/install/files/lib/system/api/guzzlehttp/psr7/.github/workflows/bc.yml new file mode 100644 index 0000000000..9eaedbce73 --- /dev/null +++ b/wcfsetup/install/files/lib/system/api/guzzlehttp/psr7/.github/workflows/bc.yml @@ -0,0 +1,16 @@ +name: BC Check + +on: + pull_request: + +jobs: + roave-bc-check: + name: Roave BC Check + runs-on: ubuntu-latest + + steps: + - name: Checkout code + uses: actions/checkout@v2 + + - name: Roave BC Check + uses: docker://nyholm/roave-bc-check-ga diff --git a/wcfsetup/install/files/lib/system/api/guzzlehttp/psr7/.github/workflows/ci.yml b/wcfsetup/install/files/lib/system/api/guzzlehttp/psr7/.github/workflows/ci.yml new file mode 100644 index 0000000000..da7414e572 --- /dev/null +++ b/wcfsetup/install/files/lib/system/api/guzzlehttp/psr7/.github/workflows/ci.yml @@ -0,0 +1,30 @@ +name: CI + +on: + pull_request: + +jobs: + build: + name: Build + runs-on: ubuntu-latest + strategy: + max-parallel: 10 + matrix: + php: ['5.6', '7.0', '7.1', '7.2', '7.3', '7.4'] + + steps: + - name: Set up PHP + uses: shivammathur/setup-php@v2 + with: + php-version: ${{ matrix.php }} + coverage: 'none' + extensions: mbstring + + - name: Checkout code + uses: actions/checkout@v2 + + - name: Install dependencies + run: composer update --no-interaction --no-progress --prefer-dist + + - name: Run tests + run: make test diff --git a/wcfsetup/install/files/lib/system/api/guzzlehttp/psr7/.github/workflows/integration.yml b/wcfsetup/install/files/lib/system/api/guzzlehttp/psr7/.github/workflows/integration.yml new file mode 100644 index 0000000000..b6e0eb241e --- /dev/null +++ b/wcfsetup/install/files/lib/system/api/guzzlehttp/psr7/.github/workflows/integration.yml @@ -0,0 +1,37 @@ +name: Integration + +on: + pull_request: + +jobs: + + build: + name: Test + runs-on: ubuntu-latest + strategy: + max-parallel: 10 + matrix: + php: ['7.2', '7.3', '7.4', '8.0'] + + steps: + - name: Set up PHP + uses: shivammathur/setup-php@v2 + with: + php-version: ${{ matrix.php }} + coverage: none + + - name: Checkout code + uses: actions/checkout@v2 + + - name: Download dependencies + uses: ramsey/composer-install@v1 + with: + composer-options: --no-interaction --prefer-dist --optimize-autoloader + + - name: Start server + run: php -S 127.0.0.1:10002 tests/Integration/server.php & + + - name: Run tests + env: + TEST_SERVER: 127.0.0.1:10002 + run: ./vendor/bin/phpunit --testsuite Integration diff --git a/wcfsetup/install/files/lib/system/api/guzzlehttp/promises/.php_cs.dist b/wcfsetup/install/files/lib/system/api/guzzlehttp/psr7/.php_cs.dist similarity index 50% rename from wcfsetup/install/files/lib/system/api/guzzlehttp/promises/.php_cs.dist rename to wcfsetup/install/files/lib/system/api/guzzlehttp/psr7/.php_cs.dist index a321876e8f..e4f0bd5357 100644 --- a/wcfsetup/install/files/lib/system/api/guzzlehttp/promises/.php_cs.dist +++ b/wcfsetup/install/files/lib/system/api/guzzlehttp/psr7/.php_cs.dist @@ -5,57 +5,34 @@ $config = PhpCsFixer\Config::create() ->setRules([ '@PSR2' => true, 'array_syntax' => ['syntax' => 'short'], - 'binary_operator_spaces' => ['operators' => ['=>' => null]], - 'blank_line_after_opening_tag' => true, - 'class_attributes_separation' => ['elements' => ['method']], - 'compact_nullable_typehint' => true, 'concat_space' => ['spacing' => 'one'], - 'declare_equal_normalize' => ['space' => 'none'], 'declare_strict_types' => false, - 'dir_constant' => true, 'final_static_access' => true, 'fully_qualified_strict_types' => true, - 'function_to_constant' => true, - 'function_typehint_space' => true, 'header_comment' => false, - 'is_null' => ['use_yoda_style' => false], - 'list_syntax' => ['syntax' => 'short'], + 'is_null' => ['use_yoda_style' => true], + 'list_syntax' => ['syntax' => 'long'], 'lowercase_cast' => true, 'magic_method_casing' => true, 'modernize_types_casting' => true, 'multiline_comment_opening_closing' => true, - //'native_constant_invocation' => true, 'no_alias_functions' => true, 'no_alternative_syntax' => true, 'no_blank_lines_after_phpdoc' => true, 'no_empty_comment' => true, 'no_empty_phpdoc' => true, + 'no_empty_statement' => true, 'no_extra_blank_lines' => true, 'no_leading_import_slash' => true, - 'no_leading_namespace_whitespace' => true, - 'no_spaces_around_offset' => true, - 'no_superfluous_phpdoc_tags' => ['allow_mixed' => true], 'no_trailing_comma_in_singleline_array' => true, - 'no_unneeded_control_parentheses' => true, 'no_unset_cast' => true, 'no_unused_imports' => true, - 'no_useless_else' => true, - 'no_useless_return' => true, 'no_whitespace_in_blank_line' => true, - 'normalize_index_brace' => true, 'ordered_imports' => true, - 'php_unit_construct' => true, - 'php_unit_dedicate_assert' => ['target' => 'newest'], - 'php_unit_dedicate_assert_internal_type' => ['target' => 'newest'], - 'php_unit_expectation' => ['target' => 'newest'], - 'php_unit_mock' => ['target' => 'newest'], - 'php_unit_mock_short_will_return' => true, - 'php_unit_no_expectation_annotation' => ['target' => 'newest'], + 'php_unit_ordered_covers' => true, 'php_unit_test_annotation' => ['style' => 'prefix'], - //'php_unit_test_case_static_method_calls' => ['call_type' => 'self'], + 'php_unit_test_case_static_method_calls' => ['call_type' => 'self'], 'phpdoc_align' => ['align' => 'vertical'], - //'phpdoc_line_span' => ['method' => 'multi', 'property' => 'multi'], - 'phpdoc_no_package' => true, 'phpdoc_no_useless_inheritdoc' => true, 'phpdoc_scalar' => true, 'phpdoc_separation' => true, @@ -65,17 +42,8 @@ $config = PhpCsFixer\Config::create() 'phpdoc_types' => true, 'phpdoc_types_order' => ['null_adjustment' => 'always_last', 'sort_algorithm' => 'none'], 'phpdoc_var_without_name' => true, - 'return_assignment' => true, - 'short_scalar_cast' => true, 'single_trait_insert_per_statement' => true, 'standardize_not_equals' => true, - //'static_lambda' => true, - 'ternary_to_null_coalescing' => true, - 'trim_array_spaces' => true, - 'visibility_required' => true, - 'yoda_style' => false, - // 'native_function_invocation' => true, - 'braces' => ['allow_single_line_closure'=>true], ]) ->setFinder( PhpCsFixer\Finder::create() diff --git a/wcfsetup/install/files/lib/system/api/guzzlehttp/psr7/CHANGELOG.md b/wcfsetup/install/files/lib/system/api/guzzlehttp/psr7/CHANGELOG.md index b441d36668..a608aa4191 100644 --- a/wcfsetup/install/files/lib/system/api/guzzlehttp/psr7/CHANGELOG.md +++ b/wcfsetup/install/files/lib/system/api/guzzlehttp/psr7/CHANGELOG.md @@ -9,6 +9,25 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0. ## [Unreleased] +## [1.8.1] - 2021-03-21 + +### Fixed + +- Issue parsing IPv6 URLs +- Issue modifying ServerRequest lost all its attributes + +## [1.8.0] - 2021-03-21 + +### Added + +- Locale independent URL parsing +- Most classes got a `@final` annotation to prepare for 2.0 + +### Fixed + +- Issue when creating stream from `php://input` and curl-ext is not installed +- Broken `Utils::tryFopen()` on PHP 8 + ## [1.7.0] - 2020-09-30 ### Added diff --git a/wcfsetup/install/files/lib/system/api/guzzlehttp/psr7/src/AppendStream.php b/wcfsetup/install/files/lib/system/api/guzzlehttp/psr7/src/AppendStream.php index 86e7a23ba3..fa9153d78f 100644 --- a/wcfsetup/install/files/lib/system/api/guzzlehttp/psr7/src/AppendStream.php +++ b/wcfsetup/install/files/lib/system/api/guzzlehttp/psr7/src/AppendStream.php @@ -8,6 +8,8 @@ use Psr\Http\Message\StreamInterface; * Reads from multiple streams, one after the other. * * This is a read-only stream decorator. + * + * @final */ class AppendStream implements StreamInterface { diff --git a/wcfsetup/install/files/lib/system/api/guzzlehttp/psr7/src/BufferStream.php b/wcfsetup/install/files/lib/system/api/guzzlehttp/psr7/src/BufferStream.php index 627e4a5f14..783859c198 100644 --- a/wcfsetup/install/files/lib/system/api/guzzlehttp/psr7/src/BufferStream.php +++ b/wcfsetup/install/files/lib/system/api/guzzlehttp/psr7/src/BufferStream.php @@ -11,6 +11,8 @@ use Psr\Http\Message\StreamInterface; * This stream returns a "hwm" metadata value that tells upstream consumers * what the configured high water mark of the stream is, or the maximum * preferred size of the buffer. + * + * @final */ class BufferStream implements StreamInterface { diff --git a/wcfsetup/install/files/lib/system/api/guzzlehttp/psr7/src/CachingStream.php b/wcfsetup/install/files/lib/system/api/guzzlehttp/psr7/src/CachingStream.php index 244d2a063a..fe749e9811 100644 --- a/wcfsetup/install/files/lib/system/api/guzzlehttp/psr7/src/CachingStream.php +++ b/wcfsetup/install/files/lib/system/api/guzzlehttp/psr7/src/CachingStream.php @@ -7,6 +7,8 @@ use Psr\Http\Message\StreamInterface; /** * Stream decorator that can cache previously read bytes from a sequentially * read stream. + * + * @final */ class CachingStream implements StreamInterface { @@ -21,7 +23,7 @@ class CachingStream implements StreamInterface /** * We will treat the buffer object as the body of the stream * - * @param StreamInterface $stream Stream to cache + * @param StreamInterface $stream Stream to cache. The cursor is assumed to be at the beginning of the stream. * @param StreamInterface $target Optionally specify where data is cached */ public function __construct( @@ -29,7 +31,7 @@ class CachingStream implements StreamInterface StreamInterface $target = null ) { $this->remoteStream = $stream; - $this->stream = $target ?: new Stream(fopen('php://temp', 'r+')); + $this->stream = $target ?: new Stream(Utils::tryFopen('php://temp', 'r+')); } public function getSize() diff --git a/wcfsetup/install/files/lib/system/api/guzzlehttp/psr7/src/DroppingStream.php b/wcfsetup/install/files/lib/system/api/guzzlehttp/psr7/src/DroppingStream.php index e125642d3e..9f7420c405 100644 --- a/wcfsetup/install/files/lib/system/api/guzzlehttp/psr7/src/DroppingStream.php +++ b/wcfsetup/install/files/lib/system/api/guzzlehttp/psr7/src/DroppingStream.php @@ -7,6 +7,8 @@ use Psr\Http\Message\StreamInterface; /** * Stream decorator that begins dropping data once the size of the underlying * stream becomes too full. + * + * @final */ class DroppingStream implements StreamInterface { diff --git a/wcfsetup/install/files/lib/system/api/guzzlehttp/psr7/src/FnStream.php b/wcfsetup/install/files/lib/system/api/guzzlehttp/psr7/src/FnStream.php index 407577a379..76a8cc7ba6 100644 --- a/wcfsetup/install/files/lib/system/api/guzzlehttp/psr7/src/FnStream.php +++ b/wcfsetup/install/files/lib/system/api/guzzlehttp/psr7/src/FnStream.php @@ -9,6 +9,8 @@ use Psr\Http\Message\StreamInterface; * * Allows for easy testing and extension of a provided stream without needing * to create a concrete class for a simple extension point. + * + * @final */ class FnStream implements StreamInterface { @@ -56,6 +58,7 @@ class FnStream implements StreamInterface /** * An unserialize would allow the __destruct to run when the unserialized value goes out of scope. + * * @throws \LogicException */ public function __wakeup() diff --git a/wcfsetup/install/files/lib/system/api/guzzlehttp/psr7/src/InflateStream.php b/wcfsetup/install/files/lib/system/api/guzzlehttp/psr7/src/InflateStream.php index c98b96f258..0cbd2cce27 100644 --- a/wcfsetup/install/files/lib/system/api/guzzlehttp/psr7/src/InflateStream.php +++ b/wcfsetup/install/files/lib/system/api/guzzlehttp/psr7/src/InflateStream.php @@ -14,6 +14,8 @@ use Psr\Http\Message\StreamInterface; * * @link http://tools.ietf.org/html/rfc1952 * @link http://php.net/manual/en/filters.compression.php + * + * @final */ class InflateStream implements StreamInterface { @@ -34,6 +36,7 @@ class InflateStream implements StreamInterface /** * @param StreamInterface $stream * @param $header + * * @return int */ private function getLengthOfPossibleFilenameHeader(StreamInterface $stream, $header) diff --git a/wcfsetup/install/files/lib/system/api/guzzlehttp/psr7/src/LazyOpenStream.php b/wcfsetup/install/files/lib/system/api/guzzlehttp/psr7/src/LazyOpenStream.php index 13c7af5c8b..911e127d31 100644 --- a/wcfsetup/install/files/lib/system/api/guzzlehttp/psr7/src/LazyOpenStream.php +++ b/wcfsetup/install/files/lib/system/api/guzzlehttp/psr7/src/LazyOpenStream.php @@ -7,6 +7,8 @@ use Psr\Http\Message\StreamInterface; /** * Lazily reads or writes to a file that is opened only after an IO operation * take place on the stream. + * + * @final */ class LazyOpenStream implements StreamInterface { @@ -15,7 +17,7 @@ class LazyOpenStream implements StreamInterface /** @var string File to open */ private $filename; - /** @var string $mode */ + /** @var string */ private $mode; /** diff --git a/wcfsetup/install/files/lib/system/api/guzzlehttp/psr7/src/LimitStream.php b/wcfsetup/install/files/lib/system/api/guzzlehttp/psr7/src/LimitStream.php index bef9161ead..1173ec40d7 100644 --- a/wcfsetup/install/files/lib/system/api/guzzlehttp/psr7/src/LimitStream.php +++ b/wcfsetup/install/files/lib/system/api/guzzlehttp/psr7/src/LimitStream.php @@ -4,9 +4,10 @@ namespace GuzzleHttp\Psr7; use Psr\Http\Message\StreamInterface; - /** - * Decorator used to return only a subset of a stream + * Decorator used to return only a subset of a stream. + * + * @final */ class LimitStream implements StreamInterface { diff --git a/wcfsetup/install/files/lib/system/api/guzzlehttp/psr7/src/MultipartStream.php b/wcfsetup/install/files/lib/system/api/guzzlehttp/psr7/src/MultipartStream.php index 0cbfea35d6..5a6079a89f 100644 --- a/wcfsetup/install/files/lib/system/api/guzzlehttp/psr7/src/MultipartStream.php +++ b/wcfsetup/install/files/lib/system/api/guzzlehttp/psr7/src/MultipartStream.php @@ -7,6 +7,8 @@ use Psr\Http\Message\StreamInterface; /** * Stream that when read returns bytes for a streaming multipart or * multipart/form-data stream. + * + * @final */ class MultipartStream implements StreamInterface { @@ -115,9 +117,11 @@ class MultipartStream implements StreamInterface $disposition = $this->getHeader($headers, 'content-disposition'); if (!$disposition) { $headers['Content-Disposition'] = ($filename === '0' || $filename) - ? sprintf('form-data; name="%s"; filename="%s"', + ? sprintf( + 'form-data; name="%s"; filename="%s"', $name, - basename($filename)) + basename($filename) + ) : "form-data; name=\"{$name}\""; } diff --git a/wcfsetup/install/files/lib/system/api/guzzlehttp/psr7/src/NoSeekStream.php b/wcfsetup/install/files/lib/system/api/guzzlehttp/psr7/src/NoSeekStream.php index 4b04b4c0a4..d66bdde460 100644 --- a/wcfsetup/install/files/lib/system/api/guzzlehttp/psr7/src/NoSeekStream.php +++ b/wcfsetup/install/files/lib/system/api/guzzlehttp/psr7/src/NoSeekStream.php @@ -5,7 +5,9 @@ namespace GuzzleHttp\Psr7; use Psr\Http\Message\StreamInterface; /** - * Stream decorator that prevents a stream from being seeked + * Stream decorator that prevents a stream from being seeked. + * + * @final */ class NoSeekStream implements StreamInterface { diff --git a/wcfsetup/install/files/lib/system/api/guzzlehttp/psr7/src/PumpStream.php b/wcfsetup/install/files/lib/system/api/guzzlehttp/psr7/src/PumpStream.php index fbd8726b46..44c7b582c1 100644 --- a/wcfsetup/install/files/lib/system/api/guzzlehttp/psr7/src/PumpStream.php +++ b/wcfsetup/install/files/lib/system/api/guzzlehttp/psr7/src/PumpStream.php @@ -13,6 +13,8 @@ use Psr\Http\Message\StreamInterface; * returned by the provided callable is buffered internally until drained using * the read() function of the PumpStream. The provided callable MUST return * false when there is no more data to read. + * + * @final */ class PumpStream implements StreamInterface { @@ -32,14 +34,14 @@ class PumpStream implements StreamInterface private $buffer; /** - * @param callable $source Source of the stream data. The callable MAY - * accept an integer argument used to control the - * amount of data to return. The callable MUST - * return a string when called, or false on error - * or EOF. - * @param array $options Stream options: - * - metadata: Hash of metadata to use with stream. - * - size: Size of the stream, if known. + * @param callable $source Source of the stream data. The callable MAY + * accept an integer argument used to control the + * amount of data to return. The callable MUST + * return a string when called, or false on error + * or EOF. + * @param array $options Stream options: + * - metadata: Hash of metadata to use with stream. + * - size: Size of the stream, if known. */ public function __construct(callable $source, array $options = []) { diff --git a/wcfsetup/install/files/lib/system/api/guzzlehttp/psr7/src/Query.php b/wcfsetup/install/files/lib/system/api/guzzlehttp/psr7/src/Query.php index 99e0930509..5a7cc0359e 100644 --- a/wcfsetup/install/files/lib/system/api/guzzlehttp/psr7/src/Query.php +++ b/wcfsetup/install/files/lib/system/api/guzzlehttp/psr7/src/Query.php @@ -34,7 +34,9 @@ final class Query } elseif ($urlEncoding === PHP_QUERY_RFC1738) { $decoder = 'urldecode'; } else { - $decoder = function ($str) { return $str; }; + $decoder = function ($str) { + return $str; + }; } foreach (explode('&', $str) as $kvp) { @@ -65,6 +67,7 @@ final class Query * @param int|false $encoding Set to false to not encode, PHP_QUERY_RFC3986 * to encode using RFC3986, or PHP_QUERY_RFC1738 * to encode using RFC1738. + * * @return string */ public static function build(array $params, $encoding = PHP_QUERY_RFC3986) @@ -74,7 +77,9 @@ final class Query } if ($encoding === false) { - $encoder = function ($str) { return $str; }; + $encoder = function ($str) { + return $str; + }; } elseif ($encoding === PHP_QUERY_RFC3986) { $encoder = 'rawurlencode'; } elseif ($encoding === PHP_QUERY_RFC1738) { diff --git a/wcfsetup/install/files/lib/system/api/guzzlehttp/psr7/src/Request.php b/wcfsetup/install/files/lib/system/api/guzzlehttp/psr7/src/Request.php index 89fbb1e62e..c1cdaebff8 100644 --- a/wcfsetup/install/files/lib/system/api/guzzlehttp/psr7/src/Request.php +++ b/wcfsetup/install/files/lib/system/api/guzzlehttp/psr7/src/Request.php @@ -17,7 +17,7 @@ class Request implements RequestInterface /** @var string */ private $method; - /** @var null|string */ + /** @var string|null */ private $requestTarget; /** @var UriInterface */ @@ -27,7 +27,7 @@ class Request implements RequestInterface * @param string $method HTTP method * @param string|UriInterface $uri URI * @param array $headers Request headers - * @param string|null|resource|StreamInterface $body Request body + * @param string|resource|StreamInterface|null $body Request body * @param string $version Protocol version */ public function __construct( diff --git a/wcfsetup/install/files/lib/system/api/guzzlehttp/psr7/src/Response.php b/wcfsetup/install/files/lib/system/api/guzzlehttp/psr7/src/Response.php index 36b85fb783..8c01a0f5a4 100644 --- a/wcfsetup/install/files/lib/system/api/guzzlehttp/psr7/src/Response.php +++ b/wcfsetup/install/files/lib/system/api/guzzlehttp/psr7/src/Response.php @@ -83,7 +83,7 @@ class Response implements ResponseInterface /** * @param int $status Status code * @param array $headers Response headers - * @param string|null|resource|StreamInterface $body Response body + * @param string|resource|StreamInterface|null $body Response body * @param string $version Protocol version * @param string|null $reason Reason phrase (when empty a default will be used based on the status code) */ diff --git a/wcfsetup/install/files/lib/system/api/guzzlehttp/psr7/src/Rfc7230.php b/wcfsetup/install/files/lib/system/api/guzzlehttp/psr7/src/Rfc7230.php index 505e4742b6..51b571f24d 100644 --- a/wcfsetup/install/files/lib/system/api/guzzlehttp/psr7/src/Rfc7230.php +++ b/wcfsetup/install/files/lib/system/api/guzzlehttp/psr7/src/Rfc7230.php @@ -11,6 +11,7 @@ final class Rfc7230 * Note: header delimiter (\r\n) is modified to \r?\n to accept line feed only delimiters for BC reasons. * * @link https://github.com/amphp/http/blob/v1.0.1/src/Rfc7230.php#L12-L15 + * * @license https://github.com/amphp/http/blob/v1.0.1/LICENSE */ const HEADER_REGEX = "(^([^()<>@,;:\\\"/[\]?={}\x01-\x20\x7F]++):[ \t]*+((?:[ \t]*+[\x21-\x7E\x80-\xFF]++)*+)[ \t]*+\r?\n)m"; diff --git a/wcfsetup/install/files/lib/system/api/guzzlehttp/psr7/src/ServerRequest.php b/wcfsetup/install/files/lib/system/api/guzzlehttp/psr7/src/ServerRequest.php index 72c5566cfa..e6d26f5ff9 100644 --- a/wcfsetup/install/files/lib/system/api/guzzlehttp/psr7/src/ServerRequest.php +++ b/wcfsetup/install/files/lib/system/api/guzzlehttp/psr7/src/ServerRequest.php @@ -4,9 +4,9 @@ namespace GuzzleHttp\Psr7; use InvalidArgumentException; use Psr\Http\Message\ServerRequestInterface; -use Psr\Http\Message\UriInterface; use Psr\Http\Message\StreamInterface; use Psr\Http\Message\UploadedFileInterface; +use Psr\Http\Message\UriInterface; /** * Server-side HTTP request @@ -35,7 +35,7 @@ class ServerRequest extends Request implements ServerRequestInterface private $cookieParams = []; /** - * @var null|array|object + * @var array|object|null */ private $parsedBody; @@ -58,7 +58,7 @@ class ServerRequest extends Request implements ServerRequestInterface * @param string $method HTTP method * @param string|UriInterface $uri URI * @param array $headers Request headers - * @param string|null|resource|StreamInterface $body Request body + * @param string|resource|StreamInterface|null $body Request body * @param string $version Protocol version * @param array $serverParams Typically the $_SERVER superglobal */ @@ -111,6 +111,7 @@ class ServerRequest extends Request implements ServerRequestInterface * delegate to normalizeNestedFileSpec() and return that return value. * * @param array $value $_FILES struct + * * @return array|UploadedFileInterface */ private static function createUploadedFileFromSpec(array $value) @@ -135,6 +136,7 @@ class ServerRequest extends Request implements ServerRequestInterface * UploadedFileInterface instances. * * @param array $files + * * @return UploadedFileInterface[] */ private static function normalizeNestedFileSpec(array $files = []) @@ -184,7 +186,7 @@ class ServerRequest extends Request implements ServerRequestInterface private static function extractHostAndPortFromAuthority($authority) { - $uri = 'http://'.$authority; + $uri = 'http://' . $authority; $parts = parse_url($uri); if (false === $parts) { return [null, null]; @@ -245,7 +247,6 @@ class ServerRequest extends Request implements ServerRequestInterface return $uri; } - /** * {@inheritdoc} */ diff --git a/wcfsetup/install/files/lib/system/api/guzzlehttp/psr7/src/StreamDecoratorTrait.php b/wcfsetup/install/files/lib/system/api/guzzlehttp/psr7/src/StreamDecoratorTrait.php index 093023b1c9..5025dd67b8 100644 --- a/wcfsetup/install/files/lib/system/api/guzzlehttp/psr7/src/StreamDecoratorTrait.php +++ b/wcfsetup/install/files/lib/system/api/guzzlehttp/psr7/src/StreamDecoratorTrait.php @@ -6,6 +6,7 @@ use Psr\Http\Message\StreamInterface; /** * Stream decorator trait + * * @property StreamInterface stream */ trait StreamDecoratorTrait diff --git a/wcfsetup/install/files/lib/system/api/guzzlehttp/psr7/src/StreamWrapper.php b/wcfsetup/install/files/lib/system/api/guzzlehttp/psr7/src/StreamWrapper.php index eac6535397..fc7cb969bd 100644 --- a/wcfsetup/install/files/lib/system/api/guzzlehttp/psr7/src/StreamWrapper.php +++ b/wcfsetup/install/files/lib/system/api/guzzlehttp/psr7/src/StreamWrapper.php @@ -6,6 +6,8 @@ use Psr\Http\Message\StreamInterface; /** * Converts Guzzle streams into PHP stream resources. + * + * @final */ class StreamWrapper { diff --git a/wcfsetup/install/files/lib/system/api/guzzlehttp/psr7/src/UploadedFile.php b/wcfsetup/install/files/lib/system/api/guzzlehttp/psr7/src/UploadedFile.php index a0ea59e09b..bf342c4de3 100644 --- a/wcfsetup/install/files/lib/system/api/guzzlehttp/psr7/src/UploadedFile.php +++ b/wcfsetup/install/files/lib/system/api/guzzlehttp/psr7/src/UploadedFile.php @@ -39,7 +39,7 @@ class UploadedFile implements UploadedFileInterface private $error; /** - * @var null|string + * @var string|null */ private $file; @@ -60,10 +60,10 @@ class UploadedFile implements UploadedFileInterface /** * @param StreamInterface|string|resource $streamOrFile - * @param int $size - * @param int $errorStatus - * @param string|null $clientFilename - * @param string|null $clientMediaType + * @param int $size + * @param int $errorStatus + * @param string|null $clientFilename + * @param string|null $clientMediaType */ public function __construct( $streamOrFile, @@ -144,7 +144,8 @@ class UploadedFile implements UploadedFileInterface /** * @param mixed $param - * @return boolean + * + * @return bool */ private function isStringOrNull($param) { @@ -153,7 +154,8 @@ class UploadedFile implements UploadedFileInterface /** * @param mixed $param - * @return boolean + * + * @return bool */ private function isStringNotEmpty($param) { @@ -195,7 +197,7 @@ class UploadedFile implements UploadedFileInterface /** * Return true if there is no upload error * - * @return boolean + * @return bool */ private function isOk() { @@ -203,7 +205,7 @@ class UploadedFile implements UploadedFileInterface } /** - * @return boolean + * @return bool */ public function isMoved() { @@ -248,10 +250,10 @@ class UploadedFile implements UploadedFileInterface * * @param string $targetPath Path to which to move the uploaded file. * - * @throws RuntimeException if the upload was not successful. + * @throws RuntimeException if the upload was not successful. * @throws InvalidArgumentException if the $path specified is invalid. - * @throws RuntimeException on any error during the move operation, or on - * the second or subsequent call to the method. + * @throws RuntimeException on any error during the move operation, or on + * the second or subsequent call to the method. */ public function moveTo($targetPath) { @@ -297,6 +299,7 @@ class UploadedFile implements UploadedFileInterface * {@inheritdoc} * * @see http://php.net/manual/en/features.file-upload.errors.php + * * @return int One of PHP's UPLOAD_ERR_XXX constants. */ public function getError() @@ -308,7 +311,7 @@ class UploadedFile implements UploadedFileInterface * {@inheritdoc} * * @return string|null The filename sent by the client or null if none - * was provided. + * was provided. */ public function getClientFilename() { diff --git a/wcfsetup/install/files/lib/system/api/guzzlehttp/psr7/src/Uri.php b/wcfsetup/install/files/lib/system/api/guzzlehttp/psr7/src/Uri.php index a0d73917e2..ab201c1d15 100644 --- a/wcfsetup/install/files/lib/system/api/guzzlehttp/psr7/src/Uri.php +++ b/wcfsetup/install/files/lib/system/api/guzzlehttp/psr7/src/Uri.php @@ -67,7 +67,7 @@ class Uri implements UriInterface { // weak type check to also accept null until we can add scalar type hints if ($uri != '') { - $parts = parse_url($uri); + $parts = self::parse($uri); if ($parts === false) { throw new \InvalidArgumentException("Unable to parse URI: $uri"); } @@ -75,6 +75,49 @@ class Uri implements UriInterface } } + /** + * UTF-8 aware \parse_url() replacement. + * + * The internal function produces broken output for non ASCII domain names + * (IDN) when used with locales other than "C". + * + * On the other hand, cURL understands IDN correctly only when UTF-8 locale + * is configured ("C.UTF-8", "en_US.UTF-8", etc.). + * + * @see https://bugs.php.net/bug.php?id=52923 + * @see https://www.php.net/manual/en/function.parse-url.php#114817 + * @see https://curl.haxx.se/libcurl/c/CURLOPT_URL.html#ENCODING + * + * @param string $url + * + * @return array|false + */ + private static function parse($url) + { + // If IPv6 + $prefix = ''; + if (preg_match('%^(.*://\[[0-9:a-f]+\])(.*?)$%', $url, $matches)) { + $prefix = $matches[1]; + $url = $matches[2]; + } + + $encodedUrl = preg_replace_callback( + '%[^:/@?&=#]+%usD', + static function ($matches) { + return urlencode($matches[0]); + }, + $url + ); + + $result = parse_url($prefix.$encodedUrl); + + if ($result === false) { + return false; + } + + return array_map('urldecode', $result); + } + public function __toString() { return self::composeComponents( @@ -167,6 +210,7 @@ class Uri implements UriInterface * @param UriInterface $uri * * @return bool + * * @see Uri::isNetworkPathReference * @see Uri::isAbsolutePathReference * @see Uri::isRelativePathReference @@ -185,6 +229,7 @@ class Uri implements UriInterface * @param UriInterface $uri * * @return bool + * * @link https://tools.ietf.org/html/rfc3986#section-4.2 */ public static function isNetworkPathReference(UriInterface $uri) @@ -200,6 +245,7 @@ class Uri implements UriInterface * @param UriInterface $uri * * @return bool + * * @link https://tools.ietf.org/html/rfc3986#section-4.2 */ public static function isAbsolutePathReference(UriInterface $uri) @@ -218,6 +264,7 @@ class Uri implements UriInterface * @param UriInterface $uri * * @return bool + * * @link https://tools.ietf.org/html/rfc3986#section-4.2 */ public static function isRelativePathReference(UriInterface $uri) @@ -238,6 +285,7 @@ class Uri implements UriInterface * @param UriInterface|null $base An optional base URI to compare against * * @return bool + * * @link https://tools.ietf.org/html/rfc3986#section-4.4 */ public static function isSameDocumentReference(UriInterface $uri, UriInterface $base = null) @@ -358,6 +406,7 @@ class Uri implements UriInterface * @param array $parts * * @return UriInterface + * * @link http://php.net/manual/en/function.parse-url.php * * @throws \InvalidArgumentException If the components do not form a valid URI. @@ -576,7 +625,7 @@ class Uri implements UriInterface throw new \InvalidArgumentException('Scheme must be a string'); } - return strtolower($scheme); + return \strtr($scheme, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz'); } /** @@ -612,7 +661,7 @@ class Uri implements UriInterface throw new \InvalidArgumentException('Host must be a string'); } - return strtolower($host); + return \strtr($host, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz'); } /** @@ -641,7 +690,7 @@ class Uri implements UriInterface /** * @param UriInterface $uri * @param array $keys - * + * * @return array */ private static function getFilteredQueryString(UriInterface $uri, array $keys) @@ -662,7 +711,7 @@ class Uri implements UriInterface /** * @param string $key * @param string|null $value - * + * * @return string */ private static function generateQueryString($key, $value) @@ -754,7 +803,7 @@ class Uri implements UriInterface 'by adding a leading slash to the path is deprecated since version 1.4 and will throw an exception instead.', E_USER_DEPRECATED ); - $this->path = '/'. $this->path; + $this->path = '/' . $this->path; //throw new \InvalidArgumentException('The path of a URI with an authority must start with a slash "/" or be empty'); } } diff --git a/wcfsetup/install/files/lib/system/api/guzzlehttp/psr7/src/UriNormalizer.php b/wcfsetup/install/files/lib/system/api/guzzlehttp/psr7/src/UriNormalizer.php index 2b9174a5e7..81419ead42 100644 --- a/wcfsetup/install/files/lib/system/api/guzzlehttp/psr7/src/UriNormalizer.php +++ b/wcfsetup/install/files/lib/system/api/guzzlehttp/psr7/src/UriNormalizer.php @@ -115,6 +115,7 @@ final class UriNormalizer * @param int $flags A bitmask of normalizations to apply, see constants * * @return UriInterface The normalized URI + * * @link https://tools.ietf.org/html/rfc3986#section-6.2 */ public static function normalize(UriInterface $uri, $flags = self::PRESERVING_NORMALIZATIONS) @@ -171,6 +172,7 @@ final class UriNormalizer * @param int $normalizations A bitmask of normalizations to apply, see constants * * @return bool + * * @link https://tools.ietf.org/html/rfc3986#section-6.1 */ public static function isEquivalent(UriInterface $uri1, UriInterface $uri2, $normalizations = self::PRESERVING_NORMALIZATIONS) diff --git a/wcfsetup/install/files/lib/system/api/guzzlehttp/psr7/src/UriResolver.php b/wcfsetup/install/files/lib/system/api/guzzlehttp/psr7/src/UriResolver.php index 26cecd53a1..a3cb15d570 100644 --- a/wcfsetup/install/files/lib/system/api/guzzlehttp/psr7/src/UriResolver.php +++ b/wcfsetup/install/files/lib/system/api/guzzlehttp/psr7/src/UriResolver.php @@ -19,6 +19,7 @@ final class UriResolver * @param string $path * * @return string + * * @link http://tools.ietf.org/html/rfc3986#section-5.2.4 */ public static function removeDotSegments($path) @@ -58,6 +59,7 @@ final class UriResolver * @param UriInterface $rel Relative URI * * @return UriInterface + * * @link http://tools.ietf.org/html/rfc3986#section-5.2 */ public static function resolve(UriInterface $base, UriInterface $rel) diff --git a/wcfsetup/install/files/lib/system/api/guzzlehttp/psr7/src/Utils.php b/wcfsetup/install/files/lib/system/api/guzzlehttp/psr7/src/Utils.php index 86960dde2e..7c7cc3eb6b 100644 --- a/wcfsetup/install/files/lib/system/api/guzzlehttp/psr7/src/Utils.php +++ b/wcfsetup/install/files/lib/system/api/guzzlehttp/psr7/src/Utils.php @@ -75,6 +75,7 @@ final class Utils * @param StreamInterface $stream Stream to read * @param int $maxLen Maximum number of bytes to read. Pass -1 * to read the entire stream. + * * @return string * * @throws \RuntimeException on error. @@ -181,7 +182,7 @@ final class Utils $standardPorts = ['http' => 80, 'https' => 443]; $scheme = $changes['uri']->getScheme(); if (isset($standardPorts[$scheme]) && $port != $standardPorts[$scheme]) { - $changes['set_headers']['Host'] .= ':'.$port; + $changes['set_headers']['Host'] .= ':' . $port; } } } @@ -202,7 +203,7 @@ final class Utils } if ($request instanceof ServerRequestInterface) { - return (new ServerRequest( + $new = (new ServerRequest( isset($changes['method']) ? $changes['method'] : $request->getMethod(), $uri, $headers, @@ -216,6 +217,12 @@ final class Utils ->withQueryParams($request->getQueryParams()) ->withCookieParams($request->getCookieParams()) ->withUploadedFiles($request->getUploadedFiles()); + + foreach ($request->getAttributes() as $key => $value) { + $new = $new->withAttribute($key, $value); + } + + return $new; } return new Request( @@ -286,7 +293,7 @@ final class Utils * number of requested bytes are available. Any additional bytes will be * buffered and used in subsequent reads. * - * @param resource|string|null|int|float|bool|StreamInterface|callable|\Iterator $resource Entity body data + * @param resource|string|int|float|bool|StreamInterface|callable|\Iterator|null $resource Entity body data * @param array $options Additional options * * @return StreamInterface @@ -296,7 +303,7 @@ final class Utils public static function streamFor($resource = '', array $options = []) { if (is_scalar($resource)) { - $stream = fopen('php://temp', 'r+'); + $stream = self::tryFopen('php://temp', 'r+'); if ($resource !== '') { fwrite($stream, $resource); fseek($stream, 0); @@ -306,6 +313,16 @@ final class Utils switch (gettype($resource)) { case 'resource': + /* + * The 'php://input' is a special stream with quirks and inconsistencies. + * We avoid using that stream by reading it into php://temp + */ + if (\stream_get_meta_data($resource)['uri'] === 'php://input') { + $stream = self::tryFopen('php://temp', 'w+'); + fwrite($stream, stream_get_contents($resource)); + fseek($stream, 0); + $resource = $stream; + } return new Stream($resource, $options); case 'object': if ($resource instanceof StreamInterface) { @@ -324,7 +341,7 @@ final class Utils } break; case 'NULL': - return new Stream(fopen('php://temp', 'r+'), $options); + return new Stream(self::tryFopen('php://temp', 'r+'), $options); } if (is_callable($resource)) { @@ -352,14 +369,26 @@ final class Utils $ex = null; set_error_handler(function () use ($filename, $mode, &$ex) { $ex = new \RuntimeException(sprintf( - 'Unable to open %s using mode %s: %s', + 'Unable to open "%s" using mode "%s": %s', $filename, $mode, func_get_args()[1] )); + + return true; }); - $handle = fopen($filename, $mode); + try { + $handle = fopen($filename, $mode); + } catch (\Throwable $e) { + $ex = new \RuntimeException(sprintf( + 'Unable to open "%s" using mode "%s": %s', + $filename, + $mode, + $e->getMessage() + ), 0, $e); + } + restore_error_handler(); if ($ex) { diff --git a/wcfsetup/install/files/lib/system/api/guzzlehttp/psr7/src/functions.php b/wcfsetup/install/files/lib/system/api/guzzlehttp/psr7/src/functions.php index e4cc136196..b0901fadd3 100644 --- a/wcfsetup/install/files/lib/system/api/guzzlehttp/psr7/src/functions.php +++ b/wcfsetup/install/files/lib/system/api/guzzlehttp/psr7/src/functions.php @@ -70,7 +70,7 @@ function uri_for($uri) * number of requested bytes are available. Any additional bytes will be * buffered and used in subsequent reads. * - * @param resource|string|null|int|float|bool|StreamInterface|callable|\Iterator $resource Entity body data + * @param resource|string|int|float|bool|StreamInterface|callable|\Iterator|null $resource Entity body data * @param array $options Additional options * * @return StreamInterface @@ -187,6 +187,7 @@ function try_fopen($filename, $mode) * @param StreamInterface $stream Stream to read * @param int $maxLen Maximum number of bytes to read. Pass -1 * to read the entire stream. + * * @return string * * @throws \RuntimeException on error. @@ -311,6 +312,7 @@ function parse_query($str, $urlEncoding = true) * @param int|false $encoding Set to false to not encode, PHP_QUERY_RFC3986 * to encode using RFC3986, or PHP_QUERY_RFC1738 * to encode using RFC1738. + * * @return string * * @deprecated build_query will be removed in guzzlehttp/psr7:2.0. Use Query::build instead. @@ -361,6 +363,7 @@ function mimetype_from_extension($extension) * @return array * * @internal + * * @deprecated _parse_message will be removed in guzzlehttp/psr7:2.0. Use Message::parseMessage instead. */ function _parse_message($message) @@ -377,6 +380,7 @@ function _parse_message($message) * @return string * * @internal + * * @deprecated _parse_request_uri will be removed in guzzlehttp/psr7:2.0. Use Message::parseRequestUri instead. */ function _parse_request_uri($path, array $headers) @@ -409,6 +413,7 @@ function get_message_body_summary(MessageInterface $message, $truncateAt = 120) * @return array * * @internal + * * @deprecated _caseless_remove will be removed in guzzlehttp/psr7:2.0. Use Utils::caselessRemove instead. */ function _caseless_remove($keys, array $data) diff --git a/wcfsetup/install/files/lib/system/api/pear/pear_exception/.gitignore b/wcfsetup/install/files/lib/system/api/pear/pear_exception/.gitignore deleted file mode 100644 index 479265b071..0000000000 --- a/wcfsetup/install/files/lib/system/api/pear/pear_exception/.gitignore +++ /dev/null @@ -1,6 +0,0 @@ -PEAR_Exception*.tgz - -# composer related -composer.lock -composer.phar -vendor diff --git a/wcfsetup/install/files/lib/system/api/pear/pear_exception/.travis.yml b/wcfsetup/install/files/lib/system/api/pear/pear_exception/.travis.yml deleted file mode 100644 index 18875d993e..0000000000 --- a/wcfsetup/install/files/lib/system/api/pear/pear_exception/.travis.yml +++ /dev/null @@ -1,7 +0,0 @@ -language: php -php: - - 5.6 - - 5.5 - - 5.4 -script: - - cd tests && phpunit --coverage-text . diff --git a/wcfsetup/install/files/lib/system/api/pear/pear_exception/PEAR/Exception.php b/wcfsetup/install/files/lib/system/api/pear/pear_exception/PEAR/Exception.php index 5abf4f84a9..a8ef6e086c 100644 --- a/wcfsetup/install/files/lib/system/api/pear/pear_exception/PEAR/Exception.php +++ b/wcfsetup/install/files/lib/system/api/pear/pear_exception/PEAR/Exception.php @@ -142,7 +142,7 @@ class PEAR_Exception extends Exception $code = null; $this->cause = null; } - parent::__construct($message, $code); + parent::__construct($message, (int) $code); $this->signal(); } diff --git a/wcfsetup/install/files/lib/system/api/pear/pear_exception/composer.json b/wcfsetup/install/files/lib/system/api/pear/pear_exception/composer.json index b923cf7181..9ffba9b3d8 100644 --- a/wcfsetup/install/files/lib/system/api/pear/pear_exception/composer.json +++ b/wcfsetup/install/files/lib/system/api/pear/pear_exception/composer.json @@ -18,7 +18,7 @@ } ], "require": { - "php": ">=4.4.0" + "php": ">=5.2.0" }, "autoload": { "classmap": ["PEAR/"] @@ -36,6 +36,6 @@ "source": "https://github.com/pear/PEAR_Exception" }, "require-dev": { - "phpunit/phpunit": "*" + "phpunit/phpunit": "<9" } } diff --git a/wcfsetup/install/files/lib/system/api/pear/pear_exception/package.xml b/wcfsetup/install/files/lib/system/api/pear/pear_exception/package.xml deleted file mode 100644 index 98290c6a8a..0000000000 --- a/wcfsetup/install/files/lib/system/api/pear/pear_exception/package.xml +++ /dev/null @@ -1,120 +0,0 @@ - - - PEAR_Exception - pear.php.net - The PEAR Exception base class - PEAR_Exception PHP5 error handling mechanism - - - Christian Weiske - cweiske - cweiske@php.net - yes - - - Helgi Thormar - dufuz - dufuz@php.net - no - - - Greg Beaver - cellog - cellog@php.net - no - - - 2015-02-10 - - - 1.0.0 - 1.0.0 - - - stable - stable - - New BSD License - - This package was split out from the PEAR package. - If you use PEAR_Exception in your package and use nothing from the PEAR package - then it's better to depend on just PEAR_Exception. - - - - - - - - - - - - - - - - - - 5.4.0 - - - 1.9.5 - - - - - - - - - - 1.0.0 - 1.0.0 - - - stable - stable - - 2015-02-10 - New BSD License - Release stable version - - - - - 1.0.0beta2 - 1.0.0 - - - beta - stable - - 2014-02-21 - New BSD License - Bump up PEAR dependency. - - - - - 1.0.0beta1 - 1.0.0 - - - beta - stable - - 2012-05-10 - New BSD License - -This packge was split out from the PEAR package. If you use PEAR_Exception in your package -and use nothing from the PEAR package then it's better to depend on just PEAR_Exception. - - - - diff --git a/wcfsetup/install/files/lib/system/api/pear/pear_exception/tests/PEAR/ExceptionTest.php b/wcfsetup/install/files/lib/system/api/pear/pear_exception/tests/PEAR/ExceptionTest.php deleted file mode 100644 index 61d2df4f1d..0000000000 --- a/wcfsetup/install/files/lib/system/api/pear/pear_exception/tests/PEAR/ExceptionTest.php +++ /dev/null @@ -1,78 +0,0 @@ -assertNull($e->getCause()); - } - - public function testGetCauseException() - { - $cause = new Exception('foo bar'); - $e = new PEAR_Exception('I caught an exception', $cause); - $this->assertNotNull($e->getCause()); - $this->assertInstanceOf('Exception', $e->getCause()); - $this->assertEquals($cause, $e->getCause()); - } - - public function testGetCauseMessage() - { - $cause = new Exception('foo bar'); - $e = new PEAR_Exception('I caught an exception', $cause); - - $e->getCauseMessage($causes); - $this->assertEquals('I caught an exception', $causes[0]['message']); - $this->assertEquals('foo bar', $causes[1]['message']); - } - - public function testGetTraceSafe() - { - $e = new PEAR_Exception('oops'); - $this->assertInternalType('array', $e->getTraceSafe()); - } - - public function testGetErrorClass() - { - $e = new PEAR_Exception('oops'); - $this->assertEquals('PEAR_ExceptionTest', $e->getErrorClass()); - } - - public function testGetErrorMethod() - { - $e = new PEAR_Exception('oops'); - $this->assertEquals('testGetErrorMethod', $e->getErrorMethod()); - } - - public function test__toString() - { - $e = new PEAR_Exception('oops'); - $this->assertInternalType('string', (string) $e); - $this->assertContains('oops', (string) $e); - } - - public function testToHtml() - { - $e = new PEAR_Exception('oops'); - $html = $e->toHtml(); - $this->assertInternalType('string', $html); - $this->assertContains('oops', $html); - } -} -?> diff --git a/wcfsetup/install/files/lib/system/api/pelago/emogrifier/CHANGELOG.md b/wcfsetup/install/files/lib/system/api/pelago/emogrifier/CHANGELOG.md index 3c455a1a6d..6266a95e90 100644 --- a/wcfsetup/install/files/lib/system/api/pelago/emogrifier/CHANGELOG.md +++ b/wcfsetup/install/files/lib/system/api/pelago/emogrifier/CHANGELOG.md @@ -10,11 +10,24 @@ This project adheres to [Semantic Versioning](https://semver.org/). ### Changed ### Deprecated +- Support for PHP 7.2 will be removed in Emogrifier 7.0. ### Removed ### Fixed +## 5.0.1 + +### Changed +- Switch the default branch from `master` to `main` + ([#951](https://github.com/MyIntervals/emogrifier/pull/951)) + +### Fixed +- Ignore `http-equiv` `Content-Type` in `` + ([#961](https://github.com/MyIntervals/emogrifier/pull/961)) +- Allow "Content-Type" in content + ([#959](https://github.com/MyIntervals/emogrifier/pull/959)) + ## 5.0.0 ### Added diff --git a/wcfsetup/install/files/lib/system/api/pelago/emogrifier/README.md b/wcfsetup/install/files/lib/system/api/pelago/emogrifier/README.md index fea1536d42..fd9b08bd34 100644 --- a/wcfsetup/install/files/lib/system/api/pelago/emogrifier/README.md +++ b/wcfsetup/install/files/lib/system/api/pelago/emogrifier/README.md @@ -1,6 +1,6 @@ # Emogrifier -[![Build Status](https://github.com/MyIntervals/emogrifier/workflows/CI/badge.svg?branch=master)](https://github.com/MyIntervals/emogrifier/actions/) +[![Build Status](https://github.com/MyIntervals/emogrifier/workflows/CI/badge.svg?branch=main)](https://github.com/MyIntervals/emogrifier/actions/) [![Latest Stable Version](https://poser.pugx.org/pelago/emogrifier/v/stable.svg)](https://packagist.org/packages/pelago/emogrifier) [![Total Downloads](https://poser.pugx.org/pelago/emogrifier/downloads.svg)](https://packagist.org/packages/pelago/emogrifier) [![Latest Unstable Version](https://poser.pugx.org/pelago/emogrifier/v/unstable.svg)](https://packagist.org/packages/pelago/emogrifier) @@ -342,10 +342,10 @@ The following selectors are not implemented yet: without a type * [optional](https://developer.mozilla.org/en-US/docs/Web/CSS/:optional) * [required](https://developer.mozilla.org/en-US/docs/Web/CSS/:required) - + Rules involving the following selectors cannot be applied as inline styles. They will, however, be preserved and copied to a `