From 6f5a8cb0cd4ea7b40ef8da020d367d26dc8abfbc Mon Sep 17 00:00:00 2001 From: Roland Gruber Date: Fri, 3 Apr 2020 17:33:33 +0200 Subject: [PATCH] updated dependencies --- .gitignore | 1 + lam/composer.json | 2 +- lam/composer.lock | 88 ++++++------ .../3rdParty/composer/composer/installed.json | 102 +++++++------- .../composer/phpmailer/phpmailer/README.md | 6 +- .../composer/phpmailer/phpmailer/VERSION | 2 +- .../phpmailer/language/phpmailer.lang-da.php | 32 +++-- .../phpmailer/phpmailer/src/PHPMailer.php | 128 ++++++++++++------ .../composer/phpmailer/phpmailer/src/POP3.php | 4 +- .../composer/phpmailer/phpmailer/src/SMTP.php | 3 +- .../symfony/http-foundation/.gitattributes | 3 - .../symfony/http-foundation/AcceptHeader.php | 3 + .../http-foundation/BinaryFileResponse.php | 4 +- .../symfony/http-foundation/CHANGELOG.md | 3 + .../symfony/http-foundation/File/File.php | 6 +- .../http-foundation/File/UploadedFile.php | 2 +- .../symfony/http-foundation/HeaderBag.php | 2 +- .../composer/symfony/http-foundation/LICENSE | 2 +- .../symfony/http-foundation/README.md | 2 +- .../http-foundation/RedirectResponse.php | 2 +- .../symfony/http-foundation/Request.php | 25 ++-- .../symfony/http-foundation/Response.php | 9 +- .../http-foundation/ResponseHeaderBag.php | 14 +- .../symfony/http-foundation/ServerBag.php | 8 +- .../http-foundation/Session/Session.php | 5 + .../Handler/AbstractSessionHandler.php | 2 +- .../Handler/MemcachedSessionHandler.php | 2 +- .../Storage/Handler/MongoDbSessionHandler.php | 2 +- .../Handler/NativeFileSessionHandler.php | 4 +- .../Storage/Handler/PdoSessionHandler.php | 14 +- .../Storage/Handler/RedisSessionHandler.php | 10 +- .../Storage/Handler/SessionHandlerFactory.php | 16 +-- .../Storage/MockArraySessionStorage.php | 4 +- .../Storage/MockFileSessionStorage.php | 4 +- .../Session/Storage/NativeSessionStorage.php | 21 +-- .../Session/Storage/Proxy/AbstractProxy.php | 6 +- .../composer/symfony/mime/.gitattributes | 3 - .../composer/symfony/mime/Crypto/SMime.php | 2 +- .../mime/Encoder/IdnAddressEncoder.php | 4 +- .../mime/Part/AbstractMultipartPart.php | 2 +- .../composer/symfony/mime/Part/DataPart.php | 2 +- .../symfony/polyfill-ctype/composer.json | 2 +- .../symfony/polyfill-intl-idn/README.md | 2 +- .../symfony/polyfill-intl-idn/bootstrap.php | 4 +- .../symfony/polyfill-intl-idn/composer.json | 2 +- .../symfony/polyfill-mbstring/README.md | 2 +- .../symfony/polyfill-mbstring/bootstrap.php | 4 +- .../symfony/polyfill-mbstring/composer.json | 2 +- .../composer/symfony/polyfill-php72/README.md | 2 +- .../symfony/polyfill-php72/composer.json | 2 +- 50 files changed, 324 insertions(+), 254 deletions(-) delete mode 100644 lam/lib/3rdParty/composer/symfony/http-foundation/.gitattributes delete mode 100644 lam/lib/3rdParty/composer/symfony/mime/.gitattributes diff --git a/.gitignore b/.gitignore index 60a67740..53c56740 100644 --- a/.gitignore +++ b/.gitignore @@ -6,3 +6,4 @@ /composer.lock /code-coverage/ /.phpunit.result.cache +/lam/lib/3rdParty/composer/bin/ diff --git a/lam/composer.json b/lam/composer.json index 9562d6df..1c1be017 100644 --- a/lam/composer.json +++ b/lam/composer.json @@ -10,7 +10,7 @@ ], "require" : { "web-auth/webauthn-lib" : "2.1.7", - "symfony/http-foundation" : "5.0.0", + "symfony/http-foundation" : "5.0.7", "symfony/psr-http-message-bridge" : "1.3.0", "pear-pear.horde.org/Horde_Imap_Client" : "2.30.1", "phpmailer/phpmailer": "~6.1" diff --git a/lam/composer.lock b/lam/composer.lock index 6e1efc1d..e58ac012 100644 --- a/lam/composer.lock +++ b/lam/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "1f8fbd378084d1b9851cabba2f4ccdde", + "content-hash": "2362fd1a7833247d118aed415aefe7cd", "packages": [ { "name": "beberlei/assert", @@ -500,17 +500,17 @@ }, { "name": "pear-pear.horde.org/Horde_Socket_Client", - "version": "2.1.2", + "version": "2.1.3", "dist": { "type": "file", - "url": "https://pear.horde.org/get/Horde_Socket_Client-2.1.2.tgz" + "url": "https://pear.horde.org/get/Horde_Socket_Client-2.1.3.tgz" }, "require": { "pear-pear.horde.org/horde_exception": "<3.0.0.0", "php": "<8.0.0.0" }, "replace": { - "pear-horde/horde_socket_client": "== 2.1.2.0" + "pear-horde/horde_socket_client": "== 2.1.3.0" }, "type": "pear-library", "autoload": { @@ -524,7 +524,7 @@ "license": [ "LGPL-2.1" ], - "description": "Provides abstract class for use in creating PHP network socket clients." + "description": "A library that provides an abstract PHP network socket client." }, { "name": "pear-pear.horde.org/Horde_Stream", @@ -773,16 +773,16 @@ }, { "name": "phpmailer/phpmailer", - "version": "v6.1.4", + "version": "v6.1.5", "source": { "type": "git", "url": "https://github.com/PHPMailer/PHPMailer.git", - "reference": "c5e61d0729507049cec9673aa1a679f9adefd683" + "reference": "a8bf068f64a580302026e484ee29511f661b2ad3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/PHPMailer/PHPMailer/zipball/c5e61d0729507049cec9673aa1a679f9adefd683", - "reference": "c5e61d0729507049cec9673aa1a679f9adefd683", + "url": "https://api.github.com/repos/PHPMailer/PHPMailer/zipball/a8bf068f64a580302026e484ee29511f661b2ad3", + "reference": "a8bf068f64a580302026e484ee29511f661b2ad3", "shasum": "" }, "require": { @@ -831,7 +831,7 @@ } ], "description": "PHPMailer is a full-featured email creation and transfer class for PHP", - "time": "2019-12-10T11:17:38+00:00" + "time": "2020-03-14T14:23:48+00:00" }, { "name": "psr/http-client", @@ -1192,16 +1192,16 @@ }, { "name": "symfony/http-foundation", - "version": "v5.0.0", + "version": "v5.0.7", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "c5c226b6f164ae4f95c4bffbe940c81050940eda" + "reference": "26fb006a2c7b6cdd23d52157b05f8414ffa417b6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/c5c226b6f164ae4f95c4bffbe940c81050940eda", - "reference": "c5c226b6f164ae4f95c4bffbe940c81050940eda", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/26fb006a2c7b6cdd23d52157b05f8414ffa417b6", + "reference": "26fb006a2c7b6cdd23d52157b05f8414ffa417b6", "shasum": "" }, "require": { @@ -1243,20 +1243,20 @@ ], "description": "Symfony HttpFoundation Component", "homepage": "https://symfony.com", - "time": "2019-11-18T17:27:11+00:00" + "time": "2020-03-30T14:14:32+00:00" }, { "name": "symfony/mime", - "version": "v5.0.5", + "version": "v5.0.7", "source": { "type": "git", "url": "https://github.com/symfony/mime.git", - "reference": "9b3e5b5e58c56bbd76628c952d2b78556d305f3c" + "reference": "481b7d6da88922fb1e0d86a943987722b08f3955" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mime/zipball/9b3e5b5e58c56bbd76628c952d2b78556d305f3c", - "reference": "9b3e5b5e58c56bbd76628c952d2b78556d305f3c", + "url": "https://api.github.com/repos/symfony/mime/zipball/481b7d6da88922fb1e0d86a943987722b08f3955", + "reference": "481b7d6da88922fb1e0d86a943987722b08f3955", "shasum": "" }, "require": { @@ -1305,20 +1305,20 @@ "mime", "mime-type" ], - "time": "2020-02-04T09:41:09+00:00" + "time": "2020-03-27T16:56:45+00:00" }, { "name": "symfony/polyfill-ctype", - "version": "v1.14.0", + "version": "v1.15.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-ctype.git", - "reference": "fbdeaec0df06cf3d51c93de80c7eb76e271f5a38" + "reference": "4719fa9c18b0464d399f1a63bf624b42b6fa8d14" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/fbdeaec0df06cf3d51c93de80c7eb76e271f5a38", - "reference": "fbdeaec0df06cf3d51c93de80c7eb76e271f5a38", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/4719fa9c18b0464d399f1a63bf624b42b6fa8d14", + "reference": "4719fa9c18b0464d399f1a63bf624b42b6fa8d14", "shasum": "" }, "require": { @@ -1330,7 +1330,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.14-dev" + "dev-master": "1.15-dev" } }, "autoload": { @@ -1363,20 +1363,20 @@ "polyfill", "portable" ], - "time": "2020-01-13T11:15:53+00:00" + "time": "2020-02-27T09:26:54+00:00" }, { "name": "symfony/polyfill-intl-idn", - "version": "v1.14.0", + "version": "v1.15.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-idn.git", - "reference": "6842f1a39cf7d580655688069a03dd7cd83d244a" + "reference": "47bd6aa45beb1cd7c6a16b7d1810133b728bdfcf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/6842f1a39cf7d580655688069a03dd7cd83d244a", - "reference": "6842f1a39cf7d580655688069a03dd7cd83d244a", + "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/47bd6aa45beb1cd7c6a16b7d1810133b728bdfcf", + "reference": "47bd6aa45beb1cd7c6a16b7d1810133b728bdfcf", "shasum": "" }, "require": { @@ -1390,7 +1390,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.14-dev" + "dev-master": "1.15-dev" } }, "autoload": { @@ -1425,20 +1425,20 @@ "portable", "shim" ], - "time": "2020-01-17T12:01:36+00:00" + "time": "2020-03-09T19:04:49+00:00" }, { "name": "symfony/polyfill-mbstring", - "version": "v1.14.0", + "version": "v1.15.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "34094cfa9abe1f0f14f48f490772db7a775559f2" + "reference": "81ffd3a9c6d707be22e3012b827de1c9775fc5ac" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/34094cfa9abe1f0f14f48f490772db7a775559f2", - "reference": "34094cfa9abe1f0f14f48f490772db7a775559f2", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/81ffd3a9c6d707be22e3012b827de1c9775fc5ac", + "reference": "81ffd3a9c6d707be22e3012b827de1c9775fc5ac", "shasum": "" }, "require": { @@ -1450,7 +1450,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.14-dev" + "dev-master": "1.15-dev" } }, "autoload": { @@ -1484,20 +1484,20 @@ "portable", "shim" ], - "time": "2020-01-13T11:15:53+00:00" + "time": "2020-03-09T19:04:49+00:00" }, { "name": "symfony/polyfill-php72", - "version": "v1.14.0", + "version": "v1.15.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php72.git", - "reference": "46ecacf4751dd0dc81e4f6bf01dbf9da1dc1dadf" + "reference": "37b0976c78b94856543260ce09b460a7bc852747" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/46ecacf4751dd0dc81e4f6bf01dbf9da1dc1dadf", - "reference": "46ecacf4751dd0dc81e4f6bf01dbf9da1dc1dadf", + "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/37b0976c78b94856543260ce09b460a7bc852747", + "reference": "37b0976c78b94856543260ce09b460a7bc852747", "shasum": "" }, "require": { @@ -1506,7 +1506,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.14-dev" + "dev-master": "1.15-dev" } }, "autoload": { @@ -1539,7 +1539,7 @@ "portable", "shim" ], - "time": "2020-01-13T11:15:53+00:00" + "time": "2020-02-27T09:26:54+00:00" }, { "name": "symfony/psr-http-message-bridge", diff --git a/lam/lib/3rdParty/composer/composer/installed.json b/lam/lib/3rdParty/composer/composer/installed.json index c83f4ffc..d36dfa10 100644 --- a/lam/lib/3rdParty/composer/composer/installed.json +++ b/lam/lib/3rdParty/composer/composer/installed.json @@ -517,18 +517,18 @@ }, { "name": "pear-pear.horde.org/Horde_Socket_Client", - "version": "2.1.2", - "version_normalized": "2.1.2.0", + "version": "2.1.3", + "version_normalized": "2.1.3.0", "dist": { "type": "file", - "url": "https://pear.horde.org/get/Horde_Socket_Client-2.1.2.tgz" + "url": "https://pear.horde.org/get/Horde_Socket_Client-2.1.3.tgz" }, "require": { "pear-pear.horde.org/horde_exception": "<3.0.0.0", "php": "<8.0.0.0" }, "replace": { - "pear-horde/horde_socket_client": "== 2.1.2.0" + "pear-horde/horde_socket_client": "== 2.1.3.0" }, "type": "pear-library", "installation-source": "dist", @@ -543,7 +543,7 @@ "license": [ "LGPL-2.1" ], - "description": "Provides abstract class for use in creating PHP network socket clients." + "description": "A library that provides an abstract PHP network socket client." }, { "name": "pear-pear.horde.org/Horde_Stream", @@ -808,17 +808,17 @@ }, { "name": "phpmailer/phpmailer", - "version": "v6.1.4", - "version_normalized": "6.1.4.0", + "version": "v6.1.5", + "version_normalized": "6.1.5.0", "source": { "type": "git", "url": "https://github.com/PHPMailer/PHPMailer.git", - "reference": "c5e61d0729507049cec9673aa1a679f9adefd683" + "reference": "a8bf068f64a580302026e484ee29511f661b2ad3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/PHPMailer/PHPMailer/zipball/c5e61d0729507049cec9673aa1a679f9adefd683", - "reference": "c5e61d0729507049cec9673aa1a679f9adefd683", + "url": "https://api.github.com/repos/PHPMailer/PHPMailer/zipball/a8bf068f64a580302026e484ee29511f661b2ad3", + "reference": "a8bf068f64a580302026e484ee29511f661b2ad3", "shasum": "" }, "require": { @@ -839,7 +839,7 @@ "stevenmaguire/oauth2-microsoft": "Needed for Microsoft XOAUTH2 authentication", "symfony/polyfill-mbstring": "To support UTF-8 if the Mbstring PHP extension is not enabled (^1.2)" }, - "time": "2019-12-10T11:17:38+00:00", + "time": "2020-03-14T14:23:48+00:00", "type": "library", "installation-source": "dist", "autoload": { @@ -1241,17 +1241,17 @@ }, { "name": "symfony/http-foundation", - "version": "v5.0.0", - "version_normalized": "5.0.0.0", + "version": "v5.0.7", + "version_normalized": "5.0.7.0", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "c5c226b6f164ae4f95c4bffbe940c81050940eda" + "reference": "26fb006a2c7b6cdd23d52157b05f8414ffa417b6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/c5c226b6f164ae4f95c4bffbe940c81050940eda", - "reference": "c5c226b6f164ae4f95c4bffbe940c81050940eda", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/26fb006a2c7b6cdd23d52157b05f8414ffa417b6", + "reference": "26fb006a2c7b6cdd23d52157b05f8414ffa417b6", "shasum": "" }, "require": { @@ -1263,7 +1263,7 @@ "predis/predis": "~1.0", "symfony/expression-language": "^4.4|^5.0" }, - "time": "2019-11-18T17:27:11+00:00", + "time": "2020-03-30T14:14:32+00:00", "type": "library", "extra": { "branch-alias": { @@ -1298,17 +1298,17 @@ }, { "name": "symfony/mime", - "version": "v5.0.5", - "version_normalized": "5.0.5.0", + "version": "v5.0.7", + "version_normalized": "5.0.7.0", "source": { "type": "git", "url": "https://github.com/symfony/mime.git", - "reference": "9b3e5b5e58c56bbd76628c952d2b78556d305f3c" + "reference": "481b7d6da88922fb1e0d86a943987722b08f3955" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mime/zipball/9b3e5b5e58c56bbd76628c952d2b78556d305f3c", - "reference": "9b3e5b5e58c56bbd76628c952d2b78556d305f3c", + "url": "https://api.github.com/repos/symfony/mime/zipball/481b7d6da88922fb1e0d86a943987722b08f3955", + "reference": "481b7d6da88922fb1e0d86a943987722b08f3955", "shasum": "" }, "require": { @@ -1323,7 +1323,7 @@ "egulias/email-validator": "^2.1.10", "symfony/dependency-injection": "^4.4|^5.0" }, - "time": "2020-02-04T09:41:09+00:00", + "time": "2020-03-27T16:56:45+00:00", "type": "library", "extra": { "branch-alias": { @@ -1362,17 +1362,17 @@ }, { "name": "symfony/polyfill-ctype", - "version": "v1.14.0", - "version_normalized": "1.14.0.0", + "version": "v1.15.0", + "version_normalized": "1.15.0.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-ctype.git", - "reference": "fbdeaec0df06cf3d51c93de80c7eb76e271f5a38" + "reference": "4719fa9c18b0464d399f1a63bf624b42b6fa8d14" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/fbdeaec0df06cf3d51c93de80c7eb76e271f5a38", - "reference": "fbdeaec0df06cf3d51c93de80c7eb76e271f5a38", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/4719fa9c18b0464d399f1a63bf624b42b6fa8d14", + "reference": "4719fa9c18b0464d399f1a63bf624b42b6fa8d14", "shasum": "" }, "require": { @@ -1381,11 +1381,11 @@ "suggest": { "ext-ctype": "For best performance" }, - "time": "2020-01-13T11:15:53+00:00", + "time": "2020-02-27T09:26:54+00:00", "type": "library", "extra": { "branch-alias": { - "dev-master": "1.14-dev" + "dev-master": "1.15-dev" } }, "installation-source": "dist", @@ -1422,17 +1422,17 @@ }, { "name": "symfony/polyfill-intl-idn", - "version": "v1.14.0", - "version_normalized": "1.14.0.0", + "version": "v1.15.0", + "version_normalized": "1.15.0.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-idn.git", - "reference": "6842f1a39cf7d580655688069a03dd7cd83d244a" + "reference": "47bd6aa45beb1cd7c6a16b7d1810133b728bdfcf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/6842f1a39cf7d580655688069a03dd7cd83d244a", - "reference": "6842f1a39cf7d580655688069a03dd7cd83d244a", + "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/47bd6aa45beb1cd7c6a16b7d1810133b728bdfcf", + "reference": "47bd6aa45beb1cd7c6a16b7d1810133b728bdfcf", "shasum": "" }, "require": { @@ -1443,11 +1443,11 @@ "suggest": { "ext-intl": "For best performance" }, - "time": "2020-01-17T12:01:36+00:00", + "time": "2020-03-09T19:04:49+00:00", "type": "library", "extra": { "branch-alias": { - "dev-master": "1.14-dev" + "dev-master": "1.15-dev" } }, "installation-source": "dist", @@ -1486,17 +1486,17 @@ }, { "name": "symfony/polyfill-mbstring", - "version": "v1.14.0", - "version_normalized": "1.14.0.0", + "version": "v1.15.0", + "version_normalized": "1.15.0.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "34094cfa9abe1f0f14f48f490772db7a775559f2" + "reference": "81ffd3a9c6d707be22e3012b827de1c9775fc5ac" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/34094cfa9abe1f0f14f48f490772db7a775559f2", - "reference": "34094cfa9abe1f0f14f48f490772db7a775559f2", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/81ffd3a9c6d707be22e3012b827de1c9775fc5ac", + "reference": "81ffd3a9c6d707be22e3012b827de1c9775fc5ac", "shasum": "" }, "require": { @@ -1505,11 +1505,11 @@ "suggest": { "ext-mbstring": "For best performance" }, - "time": "2020-01-13T11:15:53+00:00", + "time": "2020-03-09T19:04:49+00:00", "type": "library", "extra": { "branch-alias": { - "dev-master": "1.14-dev" + "dev-master": "1.15-dev" } }, "installation-source": "dist", @@ -1547,27 +1547,27 @@ }, { "name": "symfony/polyfill-php72", - "version": "v1.14.0", - "version_normalized": "1.14.0.0", + "version": "v1.15.0", + "version_normalized": "1.15.0.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php72.git", - "reference": "46ecacf4751dd0dc81e4f6bf01dbf9da1dc1dadf" + "reference": "37b0976c78b94856543260ce09b460a7bc852747" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/46ecacf4751dd0dc81e4f6bf01dbf9da1dc1dadf", - "reference": "46ecacf4751dd0dc81e4f6bf01dbf9da1dc1dadf", + "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/37b0976c78b94856543260ce09b460a7bc852747", + "reference": "37b0976c78b94856543260ce09b460a7bc852747", "shasum": "" }, "require": { "php": ">=5.3.3" }, - "time": "2020-01-13T11:15:53+00:00", + "time": "2020-02-27T09:26:54+00:00", "type": "library", "extra": { "branch-alias": { - "dev-master": "1.14-dev" + "dev-master": "1.15-dev" } }, "installation-source": "dist", diff --git a/lam/lib/3rdParty/composer/phpmailer/phpmailer/README.md b/lam/lib/3rdParty/composer/phpmailer/phpmailer/README.md index d8a0f4e3..c287e307 100644 --- a/lam/lib/3rdParty/composer/phpmailer/phpmailer/README.md +++ b/lam/lib/3rdParty/composer/phpmailer/phpmailer/README.md @@ -102,8 +102,8 @@ try { $mail->SMTPAuth = true; // Enable SMTP authentication $mail->Username = 'user@example.com'; // SMTP username $mail->Password = 'secret'; // SMTP password - $mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS; // Enable TLS encryption; `PHPMailer::ENCRYPTION_SMTPS` also accepted - $mail->Port = 587; // TCP port to connect to + $mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS; // Enable TLS encryption; `PHPMailer::ENCRYPTION_SMTPS` encouraged + $mail->Port = 587; // TCP port to connect to, use 465 for `PHPMailer::ENCRYPTION_SMTPS` above //Recipients $mail->setFrom('from@example.com', 'Mailer'); @@ -155,7 +155,7 @@ Note that in order to reduce PHPMailer's deployed code footprint, the examples a Complete generated API documentation is [available online](http://phpmailer.github.io/PHPMailer/). -You can generate complete API-level documentation by running `phpdoc` in the top-level folder, and documentation will appear in the `docs` folder, though you'll need to have [PHPDocumentor](http://www.phpdoc.org) installed. You may find [the unit tests](https://github.com/PHPMailer/PHPMailer/tree/master/test/phpmailerTest.php) a good source of how to do various operations such as encryption. +You can generate complete API-level documentation by running `phpdoc` in the top-level folder, and documentation will appear in the `docs` folder, though you'll need to have [PHPDocumentor](http://www.phpdoc.org) installed. You may find [the unit tests](https://github.com/PHPMailer/PHPMailer/blob/master/test/PHPMailerTest.php) a good source of how to do various operations such as encryption. If the documentation doesn't cover what you need, search the [many questions on Stack Overflow](http://stackoverflow.com/questions/tagged/phpmailer), and before you ask a question about "SMTP Error: Could not connect to SMTP host.", [read the troubleshooting guide](https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting). diff --git a/lam/lib/3rdParty/composer/phpmailer/phpmailer/VERSION b/lam/lib/3rdParty/composer/phpmailer/phpmailer/VERSION index 1879c1be..f8c5c2cc 100644 --- a/lam/lib/3rdParty/composer/phpmailer/phpmailer/VERSION +++ b/lam/lib/3rdParty/composer/phpmailer/phpmailer/VERSION @@ -1 +1 @@ -6.1.4 \ No newline at end of file +6.1.5 \ No newline at end of file diff --git a/lam/lib/3rdParty/composer/phpmailer/phpmailer/language/phpmailer.lang-da.php b/lam/lib/3rdParty/composer/phpmailer/phpmailer/language/phpmailer.lang-da.php index e725f4b4..5febb516 100644 --- a/lam/lib/3rdParty/composer/phpmailer/phpmailer/language/phpmailer.lang-da.php +++ b/lam/lib/3rdParty/composer/phpmailer/phpmailer/language/phpmailer.lang-da.php @@ -2,25 +2,27 @@ /** * Danish PHPMailer language file: refer to English translation for definitive list * @package PHPMailer - * @author Mikael Stokkebro + * @author John Sebastian + * Rewrite and extension of the work by Mikael Stokkebro + * */ -$PHPMAILER_LANG['authenticate'] = 'SMTP fejl: Kunne ikke logge på.'; -$PHPMAILER_LANG['connect_host'] = 'SMTP fejl: Kunne ikke tilslutte SMTP serveren.'; -$PHPMAILER_LANG['data_not_accepted'] = 'SMTP fejl: Data kunne ikke accepteres.'; -//$PHPMAILER_LANG['empty_message'] = 'Message body empty'; +$PHPMAILER_LANG['authenticate'] = 'SMTP fejl: Login mislykkedes.'; +$PHPMAILER_LANG['connect_host'] = 'SMTP fejl: Forbindelse til SMTP serveren kunne ikke oprettes.'; +$PHPMAILER_LANG['data_not_accepted'] = 'SMTP fejl: Data blev ikke accepteret.'; +$PHPMAILER_LANG['empty_message'] = 'Meddelelsen er uden indhold'; $PHPMAILER_LANG['encoding'] = 'Ukendt encode-format: '; -$PHPMAILER_LANG['execute'] = 'Kunne ikke køre: '; -$PHPMAILER_LANG['file_access'] = 'Ingen adgang til fil: '; +$PHPMAILER_LANG['execute'] = 'Kunne ikke afvikle: '; +$PHPMAILER_LANG['file_access'] = 'Kunne ikke tilgå filen: '; $PHPMAILER_LANG['file_open'] = 'Fil fejl: Kunne ikke åbne filen: '; $PHPMAILER_LANG['from_failed'] = 'Følgende afsenderadresse er forkert: '; -$PHPMAILER_LANG['instantiate'] = 'Kunne ikke initialisere email funktionen.'; -//$PHPMAILER_LANG['invalid_address'] = 'Invalid address: '; +$PHPMAILER_LANG['instantiate'] = 'Email funktionen kunne ikke initialiseres.'; +$PHPMAILER_LANG['invalid_address'] = 'Udgyldig adresse: '; $PHPMAILER_LANG['mailer_not_supported'] = ' mailer understøttes ikke.'; -$PHPMAILER_LANG['provide_address'] = 'Du skal indtaste mindst en modtagers emailadresse.'; +$PHPMAILER_LANG['provide_address'] = 'Indtast mindst en modtagers email adresse.'; $PHPMAILER_LANG['recipients_failed'] = 'SMTP fejl: Følgende modtagere er forkerte: '; -//$PHPMAILER_LANG['signing'] = 'Signing Error: '; -//$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Connect() failed.'; -//$PHPMAILER_LANG['smtp_error'] = 'SMTP server error: '; -//$PHPMAILER_LANG['variable_set'] = 'Cannot set or reset variable: '; -//$PHPMAILER_LANG['extension_missing'] = 'Extension missing: '; +$PHPMAILER_LANG['signing'] = 'Signeringsfejl: '; +$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Connect() fejlede.'; +$PHPMAILER_LANG['smtp_error'] = 'SMTP server fejl: '; +$PHPMAILER_LANG['variable_set'] = 'Kunne ikke definere eller nulstille variablen: '; +$PHPMAILER_LANG['extension_missing'] = 'Udvidelse mangler: '; diff --git a/lam/lib/3rdParty/composer/phpmailer/phpmailer/src/PHPMailer.php b/lam/lib/3rdParty/composer/phpmailer/phpmailer/src/PHPMailer.php index 127f2b79..fddad40a 100644 --- a/lam/lib/3rdParty/composer/phpmailer/phpmailer/src/PHPMailer.php +++ b/lam/lib/3rdParty/composer/phpmailer/phpmailer/src/PHPMailer.php @@ -64,7 +64,7 @@ class PHPMailer * Options: null (default), 1 = High, 3 = Normal, 5 = low. * When null, the header is not set at all. * - * @var int + * @var int|null */ public $Priority; @@ -745,7 +745,7 @@ class PHPMailer * * @var string */ - const VERSION = '6.1.4'; + const VERSION = '6.1.5'; /** * Error severity: message only, continue processing. @@ -769,11 +769,22 @@ class PHPMailer const STOP_CRITICAL = 2; /** - * SMTP RFC standard line ending. + * The SMTP standard CRLF line break. + * If you want to change line break format, change static::$LE, not this. + */ + const CRLF = "\r\n"; + + /** + * "Folding White Space" a white space string used for line folding. + */ + const FWS = ' '; + + /** + * SMTP RFC standard line ending; Carriage Return, Line Feed. * * @var string */ - protected static $LE = "\r\n"; + protected static $LE = self::CRLF; /** * The maximum line length supported by mail(). @@ -1446,7 +1457,7 @@ class PHPMailer ) { //SMTP mandates RFC-compliant line endings //and it's also used with mail() on Windows - static::setLE("\r\n"); + static::setLE(self::CRLF); } else { //Maintain backward compatibility with legacy Linux command line mailers static::setLE(PHP_EOL); @@ -1553,7 +1564,7 @@ class PHPMailer $this->encodeHeader($this->secureHeader($this->Subject)), $this->MIMEBody ); - $this->MIMEHeader = rtrim($this->MIMEHeader, "\r\n ") . static::$LE . + $this->MIMEHeader = static::stripTrailingWSP($this->MIMEHeader) . static::$LE . static::normalizeBreaks($header_dkim) . static::$LE; } @@ -1620,7 +1631,7 @@ class PHPMailer */ protected function sendmailSend($header, $body) { - $header = rtrim($header, "\r\n ") . static::$LE . static::$LE; + $header = static::stripTrailingWSP($header) . static::$LE . static::$LE; // CVE-2016-10033, CVE-2016-10045: Don't pass -f if characters will be escaped. if (!empty($this->Sender) && self::isShellSafe($this->Sender)) { @@ -1750,7 +1761,7 @@ class PHPMailer */ protected function mailSend($header, $body) { - $header = rtrim($header, "\r\n ") . static::$LE . static::$LE; + $header = static::stripTrailingWSP($header) . static::$LE . static::$LE; $toArr = []; foreach ($this->to as $toaddr) { @@ -1839,7 +1850,7 @@ class PHPMailer */ protected function smtpSend($header, $body) { - $header = rtrim($header, "\r\n ") . static::$LE . static::$LE; + $header = static::stripTrailingWSP($header) . static::$LE . static::$LE; $bad_rcpt = []; if (!$this->smtpConnect($this->SMTPOptions)) { throw new Exception($this->lang('smtp_connect_failed'), self::STOP_CRITICAL); @@ -2511,7 +2522,8 @@ class PHPMailer */ public function getSentMIMEMessage() { - return rtrim($this->MIMEHeader . $this->mailHeader, "\n\r") . static::$LE . static::$LE . $this->MIMEBody; + return static::stripTrailingWSP($this->MIMEHeader . $this->mailHeader) . + static::$LE . static::$LE . $this->MIMEBody; } /** @@ -2594,7 +2606,7 @@ class PHPMailer $altBodyEncoding = static::ENCODING_QUOTED_PRINTABLE; } //Use this as a preamble in all multipart message types - $mimepre = 'This is a multi-part message in MIME format.' . static::$LE; + $mimepre = 'This is a multi-part message in MIME format.' . static::$LE . static::$LE; switch ($this->message_type) { case 'inline': $body .= $mimepre; @@ -2949,7 +2961,7 @@ class PHPMailer $disposition = 'attachment' ) { try { - if (!static::isPermittedPath($path) || !@is_file($path)) { + if (!static::isPermittedPath($path) || !@is_file($path) || !is_readable($path)) { throw new Exception($this->lang('file_access') . $path, self::STOP_CONTINUE); } @@ -3134,7 +3146,7 @@ class PHPMailer protected function encodeFile($path, $encoding = self::ENCODING_BASE64) { try { - if (!static::isPermittedPath($path) || !file_exists($path)) { + if (!static::isPermittedPath($path) || !file_exists($path) || !is_readable($path)) { throw new Exception($this->lang('file_open') . $path, self::STOP_CONTINUE); } $file_buffer = file_get_contents($path); @@ -3146,7 +3158,10 @@ class PHPMailer return $file_buffer; } catch (Exception $exc) { $this->setError($exc->getMessage()); - + $this->edebug($exc->getMessage()); + if ($this->exceptions) { + throw $exc; + } return ''; } } @@ -3516,7 +3531,7 @@ class PHPMailer $disposition = 'inline' ) { try { - if (!static::isPermittedPath($path) || !@is_file($path)) { + if (!static::isPermittedPath($path) || !@is_file($path) || !is_readable($path)) { throw new Exception($this->lang('file_access') . $path, self::STOP_CONTINUE); } @@ -3935,15 +3950,28 @@ class PHPMailer * * @param string $name Custom header name * @param string|null $value Header value + * + * @throws Exception */ public function addCustomHeader($name, $value = null) { - if (null === $value) { + if (null === $value && strpos($name, ':') !== false) { // Value passed in as name:value - $this->CustomHeader[] = explode(':', $name, 2); - } else { - $this->CustomHeader[] = [$name, $value]; + list($name, $value) = explode(':', $name, 2); } + $name = trim($name); + $value = trim($value); + //Ensure name is not empty, and that neither name nor value contain line breaks + if (empty($name) || strpbrk($name . $value, "\r\n") !== false) { + if ($this->exceptions) { + throw new Exception('Invalid header name or value'); + } + + return false; + } + $this->CustomHeader[] = [$name, $value]; + + return true; } /** @@ -3987,6 +4015,7 @@ class PHPMailer foreach ($images[2] as $imgindex => $url) { // Convert data URIs into embedded images //e.g. "data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" + $match = []; if (preg_match('#^data:(image/(?:jpe?g|gif|png));?(base64)?,(.+)#', $url, $match)) { if (count($match) === 4 && static::ENCODING_BASE64 === $match[2]) { $data = base64_decode($match[3]); @@ -4355,7 +4384,7 @@ class PHPMailer $breaktype = static::$LE; } // Normalise to \n - $text = str_replace(["\r\n", "\r"], "\n", $text); + $text = str_replace([self::CRLF, "\r"], "\n", $text); // Now convert LE as needed if ("\n" !== $breaktype) { $text = str_replace("\n", $breaktype, $text); @@ -4364,6 +4393,18 @@ class PHPMailer return $text; } + /** + * Remove trailing breaks from a string. + * + * @param string $text + * + * @return string The text to remove breaks from + */ + public static function stripTrailingWSP($text) + { + return rtrim($text, " \r\n\t"); + } + /** * Return the current line break format string. * @@ -4472,13 +4513,15 @@ class PHPMailer */ public function DKIM_HeaderC($signHeader) { + //Normalize breaks to CRLF (regardless of the mailer) + $signHeader = static::normalizeBreaks($signHeader, self::CRLF); + //Unfold header lines //Note PCRE \s is too broad a definition of whitespace; RFC5322 defines it as `[ \t]` //@see https://tools.ietf.org/html/rfc5322#section-2.2 //That means this may break if you do something daft like put vertical tabs in your headers. - //Unfold header lines $signHeader = preg_replace('/\r\n[ \t]+/', ' ', $signHeader); //Break headers out into an array - $lines = explode("\r\n", $signHeader); + $lines = explode(self::CRLF, $signHeader); foreach ($lines as $key => $line) { //If the header is missing a :, skip it as it's invalid //This is likely to happen because the explode() above will also split @@ -4498,7 +4541,7 @@ class PHPMailer $lines[$key] = trim($heading, " \t") . ':' . trim($value, " \t"); } - return implode("\r\n", $lines); + return implode(self::CRLF, $lines); } /** @@ -4515,13 +4558,13 @@ class PHPMailer public function DKIM_BodyC($body) { if (empty($body)) { - return "\r\n"; + return self::CRLF; } // Normalize line endings to CRLF - $body = static::normalizeBreaks($body, "\r\n"); + $body = static::normalizeBreaks($body, self::CRLF); //Reduce multiple trailing line breaks to a single one - return rtrim($body, "\r\n") . "\r\n"; + return static::stripTrailingWSP($body) . self::CRLF; } /** @@ -4542,17 +4585,18 @@ class PHPMailer $DKIMquery = 'dns/txt'; // Query method $DKIMtime = time(); //Always sign these headers without being asked + //Recommended list from https://tools.ietf.org/html/rfc6376#section-5.4.1 $autoSignHeaders = [ - 'From', - 'To', - 'CC', - 'Date', - 'Subject', - 'Reply-To', - 'Message-ID', - 'Content-Type', - 'Mime-Version', - 'X-Mailer', + 'from', + 'to', + 'cc', + 'date', + 'subject', + 'reply-to', + 'message-id', + 'content-type', + 'mime-version', + 'x-mailer', ]; if (stripos($headers_line, 'Subject') === false) { $headers_line .= 'Subject: ' . $subject . static::$LE; @@ -4587,7 +4631,7 @@ class PHPMailer $headersToSign = []; foreach ($parsedHeaders as $header) { //Is this header one that must be included in the DKIM signature? - if (in_array($header['label'], $autoSignHeaders, true)) { + if (in_array(strtolower($header['label']), $autoSignHeaders, true)) { $headersToSignKeys[] = $header['label']; $headersToSign[] = $header['label'] . ': ' . $header['value']; if ($this->DKIM_copyHeaderFields) { @@ -4625,9 +4669,9 @@ class PHPMailer //Fold long values if (strlen($copiedHeader) > self::STD_LINE_LENGTH - 3) { $copiedHeaderFields .= substr( - chunk_split($copiedHeader, self::STD_LINE_LENGTH - 3, static::$LE . ' '), + chunk_split($copiedHeader, self::STD_LINE_LENGTH - 3, static::$LE . self::FWS), 0, - -strlen(static::$LE . ' ') + -strlen(static::$LE . self::FWS) ); } else { $copiedHeaderFields .= $copiedHeader; @@ -4639,7 +4683,6 @@ class PHPMailer $headerKeys = ' h=' . implode(':', $headersToSignKeys) . ';' . static::$LE; $headerValues = implode(static::$LE, $headersToSign); $body = $this->DKIM_BodyC($body); - $DKIMlen = strlen($body); // Length of body $DKIMb64 = base64_encode(pack('H*', hash('sha256', $body))); // Base64 of packed binary SHA-256 hash of body $ident = ''; if ('' !== $this->DKIM_identity) { @@ -4653,7 +4696,6 @@ class PHPMailer ' s=' . $this->DKIM_selector . ';' . static::$LE . ' a=' . $DKIMsignatureType . ';' . ' q=' . $DKIMquery . ';' . - ' l=' . $DKIMlen . ';' . ' t=' . $DKIMtime . ';' . ' c=' . $DKIMcanonicalization . ';' . static::$LE . $headerKeys . @@ -4666,9 +4708,9 @@ class PHPMailer $headerValues . static::$LE . $dkimSignatureHeader ); $signature = $this->DKIM_Sign($canonicalizedHeaders); - $signature = trim(chunk_split($signature, self::STD_LINE_LENGTH - 3, static::$LE . ' ')); + $signature = trim(chunk_split($signature, self::STD_LINE_LENGTH - 3, static::$LE . self::FWS)); - return static::normalizeBreaks($dkimSignatureHeader . $signature) . static::$LE; + return static::normalizeBreaks($dkimSignatureHeader . $signature); } /** diff --git a/lam/lib/3rdParty/composer/phpmailer/phpmailer/src/POP3.php b/lam/lib/3rdParty/composer/phpmailer/phpmailer/src/POP3.php index 50d5f0c2..cd6fc2f2 100644 --- a/lam/lib/3rdParty/composer/phpmailer/phpmailer/src/POP3.php +++ b/lam/lib/3rdParty/composer/phpmailer/phpmailer/src/POP3.php @@ -45,7 +45,7 @@ class POP3 * * @var string */ - const VERSION = '6.1.4'; + const VERSION = '6.1.5'; /** * Default POP3 port number. @@ -230,6 +230,8 @@ class POP3 } // connect to the POP3 server + $errno = 0; + $errstr = ''; $this->pop_conn = fsockopen( $host, // POP3 Host $port, // Port # diff --git a/lam/lib/3rdParty/composer/phpmailer/phpmailer/src/SMTP.php b/lam/lib/3rdParty/composer/phpmailer/phpmailer/src/SMTP.php index c693f4d4..1e38ba7d 100644 --- a/lam/lib/3rdParty/composer/phpmailer/phpmailer/src/SMTP.php +++ b/lam/lib/3rdParty/composer/phpmailer/phpmailer/src/SMTP.php @@ -34,7 +34,7 @@ class SMTP * * @var string */ - const VERSION = '6.1.4'; + const VERSION = '6.1.5'; /** * SMTP line break constant. @@ -1344,6 +1344,7 @@ class SMTP } else { $this->last_smtp_transaction_id = false; foreach ($this->smtp_transaction_id_patterns as $smtp_transaction_id_pattern) { + $matches = []; if (preg_match($smtp_transaction_id_pattern, $reply, $matches)) { $this->last_smtp_transaction_id = trim($matches[1]); break; diff --git a/lam/lib/3rdParty/composer/symfony/http-foundation/.gitattributes b/lam/lib/3rdParty/composer/symfony/http-foundation/.gitattributes deleted file mode 100644 index ebb92870..00000000 --- a/lam/lib/3rdParty/composer/symfony/http-foundation/.gitattributes +++ /dev/null @@ -1,3 +0,0 @@ -/Tests export-ignore -/phpunit.xml.dist export-ignore -/.gitignore export-ignore diff --git a/lam/lib/3rdParty/composer/symfony/http-foundation/AcceptHeader.php b/lam/lib/3rdParty/composer/symfony/http-foundation/AcceptHeader.php index 90f9f479..057c6b53 100644 --- a/lam/lib/3rdParty/composer/symfony/http-foundation/AcceptHeader.php +++ b/lam/lib/3rdParty/composer/symfony/http-foundation/AcceptHeader.php @@ -11,6 +11,9 @@ namespace Symfony\Component\HttpFoundation; +// Help opcache.preload discover always-needed symbols +class_exists(AcceptHeaderItem::class); + /** * Represents an Accept-* header. * diff --git a/lam/lib/3rdParty/composer/symfony/http-foundation/BinaryFileResponse.php b/lam/lib/3rdParty/composer/symfony/http-foundation/BinaryFileResponse.php index ad839cef..30eff944 100644 --- a/lam/lib/3rdParty/composer/symfony/http-foundation/BinaryFileResponse.php +++ b/lam/lib/3rdParty/composer/symfony/http-foundation/BinaryFileResponse.php @@ -214,7 +214,7 @@ class BinaryFileResponse extends Response } if ('x-accel-redirect' === strtolower($type)) { // Do X-Accel-Mapping substitutions. - // @link http://wiki.nginx.org/X-accel#X-Accel-Redirect + // @link https://www.nginx.com/resources/wiki/start/topics/examples/x-accel/#x-accel-redirect $parts = HeaderUtils::split($request->headers->get('X-Accel-Mapping', ''), ',='); foreach ($parts as $part) { list($pathPrefix, $location) = $part; @@ -340,7 +340,7 @@ class BinaryFileResponse extends Response } /** - * If this is set to true, the file will be unlinked after the request is send + * If this is set to true, the file will be unlinked after the request is sent * Note: If the X-Sendfile header is used, the deleteFileAfterSend setting will not be used. * * @return $this diff --git a/lam/lib/3rdParty/composer/symfony/http-foundation/CHANGELOG.md b/lam/lib/3rdParty/composer/symfony/http-foundation/CHANGELOG.md index bab37d1b..0af7d000 100644 --- a/lam/lib/3rdParty/composer/symfony/http-foundation/CHANGELOG.md +++ b/lam/lib/3rdParty/composer/symfony/http-foundation/CHANGELOG.md @@ -17,6 +17,9 @@ CHANGELOG * passing arguments to `Request::isMethodSafe()` is deprecated. * `ApacheRequest` is deprecated, use the `Request` class instead. * passing a third argument to `HeaderBag::get()` is deprecated, use method `all()` instead + * [BC BREAK] `PdoSessionHandler` with MySQL changed the type of the lifetime column, + make sure to run `ALTER TABLE sessions MODIFY sess_lifetime INTEGER UNSIGNED NOT NULL` to + update your database. * `PdoSessionHandler` now precalculates the expiry timestamp in the lifetime column, make sure to run `CREATE INDEX EXPIRY ON sessions (sess_lifetime)` to update your database to speed up garbage collection of expired sessions. diff --git a/lam/lib/3rdParty/composer/symfony/http-foundation/File/File.php b/lam/lib/3rdParty/composer/symfony/http-foundation/File/File.php index d79c27f6..82d964ca 100644 --- a/lam/lib/3rdParty/composer/symfony/http-foundation/File/File.php +++ b/lam/lib/3rdParty/composer/symfony/http-foundation/File/File.php @@ -88,7 +88,7 @@ class File extends \SplFileInfo $renamed = rename($this->getPathname(), $target); restore_error_handler(); if (!$renamed) { - throw new FileException(sprintf('Could not move the file "%s" to "%s" (%s)', $this->getPathname(), $target, strip_tags($error))); + throw new FileException(sprintf('Could not move the file "%s" to "%s" (%s).', $this->getPathname(), $target, strip_tags($error))); } @chmod($target, 0666 & ~umask()); @@ -103,10 +103,10 @@ class File extends \SplFileInfo { if (!is_dir($directory)) { if (false === @mkdir($directory, 0777, true) && !is_dir($directory)) { - throw new FileException(sprintf('Unable to create the "%s" directory', $directory)); + throw new FileException(sprintf('Unable to create the "%s" directory.', $directory)); } } elseif (!is_writable($directory)) { - throw new FileException(sprintf('Unable to write in the "%s" directory', $directory)); + throw new FileException(sprintf('Unable to write in the "%s" directory.', $directory)); } $target = rtrim($directory, '/\\').\DIRECTORY_SEPARATOR.(null === $name ? $this->getBasename() : $this->getName($name)); diff --git a/lam/lib/3rdParty/composer/symfony/http-foundation/File/UploadedFile.php b/lam/lib/3rdParty/composer/symfony/http-foundation/File/UploadedFile.php index 3a258e29..fa13b01e 100644 --- a/lam/lib/3rdParty/composer/symfony/http-foundation/File/UploadedFile.php +++ b/lam/lib/3rdParty/composer/symfony/http-foundation/File/UploadedFile.php @@ -181,7 +181,7 @@ class UploadedFile extends File $moved = move_uploaded_file($this->getPathname(), $target); restore_error_handler(); if (!$moved) { - throw new FileException(sprintf('Could not move the file "%s" to "%s" (%s)', $this->getPathname(), $target, strip_tags($error))); + throw new FileException(sprintf('Could not move the file "%s" to "%s" (%s).', $this->getPathname(), $target, strip_tags($error))); } @chmod($target, 0666 & ~umask()); diff --git a/lam/lib/3rdParty/composer/symfony/http-foundation/HeaderBag.php b/lam/lib/3rdParty/composer/symfony/http-foundation/HeaderBag.php index 9c7273a7..d45d95e0 100644 --- a/lam/lib/3rdParty/composer/symfony/http-foundation/HeaderBag.php +++ b/lam/lib/3rdParty/composer/symfony/http-foundation/HeaderBag.php @@ -199,7 +199,7 @@ class HeaderBag implements \IteratorAggregate, \Countable } if (false === $date = \DateTime::createFromFormat(DATE_RFC2822, $value)) { - throw new \RuntimeException(sprintf('The %s HTTP header is not parseable (%s).', $key, $value)); + throw new \RuntimeException(sprintf('The "%s" HTTP header is not parseable (%s).', $key, $value)); } return $date; diff --git a/lam/lib/3rdParty/composer/symfony/http-foundation/LICENSE b/lam/lib/3rdParty/composer/symfony/http-foundation/LICENSE index a677f437..9e936ec0 100644 --- a/lam/lib/3rdParty/composer/symfony/http-foundation/LICENSE +++ b/lam/lib/3rdParty/composer/symfony/http-foundation/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2004-2019 Fabien Potencier +Copyright (c) 2004-2020 Fabien Potencier Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/lam/lib/3rdParty/composer/symfony/http-foundation/README.md b/lam/lib/3rdParty/composer/symfony/http-foundation/README.md index 8907f0b9..ac98f9b8 100644 --- a/lam/lib/3rdParty/composer/symfony/http-foundation/README.md +++ b/lam/lib/3rdParty/composer/symfony/http-foundation/README.md @@ -7,7 +7,7 @@ specification. Resources --------- - * [Documentation](https://symfony.com/doc/current/components/http_foundation/index.html) + * [Documentation](https://symfony.com/doc/current/components/http_foundation.html) * [Contributing](https://symfony.com/doc/current/contributing/index.html) * [Report issues](https://github.com/symfony/symfony/issues) and [send Pull Requests](https://github.com/symfony/symfony/pulls) diff --git a/lam/lib/3rdParty/composer/symfony/http-foundation/RedirectResponse.php b/lam/lib/3rdParty/composer/symfony/http-foundation/RedirectResponse.php index 13da56a7..c6d7590e 100644 --- a/lam/lib/3rdParty/composer/symfony/http-foundation/RedirectResponse.php +++ b/lam/lib/3rdParty/composer/symfony/http-foundation/RedirectResponse.php @@ -42,7 +42,7 @@ class RedirectResponse extends Response throw new \InvalidArgumentException(sprintf('The HTTP status code is not a redirect ("%s" given).', $status)); } - if (301 == $status && !\array_key_exists('cache-control', array_change_key_case($headers, \CASE_LOWER))) { + if (301 == $status && !\array_key_exists('cache-control', array_change_key_case($headers, CASE_LOWER))) { $this->headers->remove('cache-control'); } } diff --git a/lam/lib/3rdParty/composer/symfony/http-foundation/Request.php b/lam/lib/3rdParty/composer/symfony/http-foundation/Request.php index 1ab74d7e..1abb0af6 100644 --- a/lam/lib/3rdParty/composer/symfony/http-foundation/Request.php +++ b/lam/lib/3rdParty/composer/symfony/http-foundation/Request.php @@ -15,6 +15,14 @@ use Symfony\Component\HttpFoundation\Exception\ConflictingHeadersException; use Symfony\Component\HttpFoundation\Exception\SuspiciousOperationException; use Symfony\Component\HttpFoundation\Session\SessionInterface; +// Help opcache.preload discover always-needed symbols +class_exists(AcceptHeader::class); +class_exists(FileBag::class); +class_exists(HeaderBag::class); +class_exists(HeaderUtils::class); +class_exists(ParameterBag::class); +class_exists(ServerBag::class); + /** * Request represents an HTTP request. * @@ -1553,24 +1561,23 @@ class Request * Gets the preferred format for the response by inspecting, in the following order: * * the request format set using setRequestFormat * * the values of the Accept HTTP header - * * the content type of the body of the request. + * + * Note that if you use this method, you should send the "Vary: Accept" header + * in the response to prevent any issues with intermediary HTTP caches. */ public function getPreferredFormat(?string $default = 'html'): ?string { - if (null !== $this->preferredFormat) { + if (null !== $this->preferredFormat || null !== $this->preferredFormat = $this->getRequestFormat(null)) { return $this->preferredFormat; } - $preferredFormat = null; - foreach ($this->getAcceptableContentTypes() as $contentType) { - if ($preferredFormat = $this->getFormat($contentType)) { - break; + foreach ($this->getAcceptableContentTypes() as $mimeType) { + if ($this->preferredFormat = $this->getFormat($mimeType)) { + return $this->preferredFormat; } } - $this->preferredFormat = $this->getRequestFormat($preferredFormat ?: $this->getContentType()); - - return $this->preferredFormat ?: $default; + return $default; } /** diff --git a/lam/lib/3rdParty/composer/symfony/http-foundation/Response.php b/lam/lib/3rdParty/composer/symfony/http-foundation/Response.php index 9122b13c..990bf0d5 100644 --- a/lam/lib/3rdParty/composer/symfony/http-foundation/Response.php +++ b/lam/lib/3rdParty/composer/symfony/http-foundation/Response.php @@ -11,6 +11,9 @@ namespace Symfony\Component\HttpFoundation; +// Help opcache.preload discover always-needed symbols +class_exists(ResponseHeaderBag::class); + /** * Response represents an HTTP response. * @@ -258,10 +261,12 @@ class Response $this->setContent(null); $headers->remove('Content-Type'); $headers->remove('Content-Length'); + // prevent PHP from sending the Content-Type header based on default_mimetype + ini_set('default_mimetype', ''); } else { // Content-type based on the Request if (!$headers->has('Content-Type')) { - $format = $request->getPreferredFormat(); + $format = $request->getRequestFormat(null); if (null !== $format && $mimeType = $request->getMimeType($format)) { $headers->set('Content-Type', $mimeType); } @@ -611,7 +616,7 @@ class Response } /** - * Returns true if the response must be revalidated by caches. + * Returns true if the response must be revalidated by shared caches once it has become stale. * * This method indicates that the response must not be served stale by a * cache in any circumstance without first revalidating with the origin. diff --git a/lam/lib/3rdParty/composer/symfony/http-foundation/ResponseHeaderBag.php b/lam/lib/3rdParty/composer/symfony/http-foundation/ResponseHeaderBag.php index de1e2a16..5acefc9c 100644 --- a/lam/lib/3rdParty/composer/symfony/http-foundation/ResponseHeaderBag.php +++ b/lam/lib/3rdParty/composer/symfony/http-foundation/ResponseHeaderBag.php @@ -239,9 +239,9 @@ class ResponseHeaderBag extends HeaderBag /** * Clears a cookie in the browser. */ - public function clearCookie(string $name, ?string $path = '/', string $domain = null, bool $secure = false, bool $httpOnly = true) + public function clearCookie(string $name, ?string $path = '/', string $domain = null, bool $secure = false, bool $httpOnly = true, string $sameSite = null) { - $this->setCookie(new Cookie($name, null, 1, $path, $domain, $secure, $httpOnly, false, null)); + $this->setCookie(new Cookie($name, null, 1, $path, $domain, $secure, $httpOnly, false, $sameSite)); } /** @@ -262,13 +262,13 @@ class ResponseHeaderBag extends HeaderBag */ protected function computeCacheControlValue() { - if (!$this->cacheControl && !$this->has('ETag') && !$this->has('Last-Modified') && !$this->has('Expires')) { - return 'no-cache, private'; - } - if (!$this->cacheControl) { + if ($this->has('Last-Modified') || $this->has('Expires')) { + return 'private, must-revalidate'; // allows for heuristic expiration (RFC 7234 Section 4.2.2) in the case of "Last-Modified" + } + // conservative by default - return 'private, must-revalidate'; + return 'no-cache, private'; } $header = $this->getCacheControlHeader(); diff --git a/lam/lib/3rdParty/composer/symfony/http-foundation/ServerBag.php b/lam/lib/3rdParty/composer/symfony/http-foundation/ServerBag.php index 25da35ec..02c70911 100644 --- a/lam/lib/3rdParty/composer/symfony/http-foundation/ServerBag.php +++ b/lam/lib/3rdParty/composer/symfony/http-foundation/ServerBag.php @@ -43,13 +43,13 @@ class ServerBag extends ParameterBag /* * php-cgi under Apache does not pass HTTP Basic user/pass to PHP by default * For this workaround to work, add these lines to your .htaccess file: - * RewriteCond %{HTTP:Authorization} ^(.+)$ - * RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] + * RewriteCond %{HTTP:Authorization} .+ + * RewriteRule ^ - [E=HTTP_AUTHORIZATION:%0] * * A sample .htaccess file: * RewriteEngine On - * RewriteCond %{HTTP:Authorization} ^(.+)$ - * RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] + * RewriteCond %{HTTP:Authorization} .+ + * RewriteRule ^ - [E=HTTP_AUTHORIZATION:%0] * RewriteCond %{REQUEST_FILENAME} !-f * RewriteRule ^(.*)$ app.php [QSA,L] */ diff --git a/lam/lib/3rdParty/composer/symfony/http-foundation/Session/Session.php b/lam/lib/3rdParty/composer/symfony/http-foundation/Session/Session.php index 89071b86..8b02d2d0 100644 --- a/lam/lib/3rdParty/composer/symfony/http-foundation/Session/Session.php +++ b/lam/lib/3rdParty/composer/symfony/http-foundation/Session/Session.php @@ -18,6 +18,11 @@ use Symfony\Component\HttpFoundation\Session\Flash\FlashBagInterface; use Symfony\Component\HttpFoundation\Session\Storage\NativeSessionStorage; use Symfony\Component\HttpFoundation\Session\Storage\SessionStorageInterface; +// Help opcache.preload discover always-needed symbols +class_exists(AttributeBag::class); +class_exists(FlashBag::class); +class_exists(SessionBagProxy::class); + /** * @author Fabien Potencier * @author Drak diff --git a/lam/lib/3rdParty/composer/symfony/http-foundation/Session/Storage/Handler/AbstractSessionHandler.php b/lam/lib/3rdParty/composer/symfony/http-foundation/Session/Storage/Handler/AbstractSessionHandler.php index 0618035b..bd151669 100644 --- a/lam/lib/3rdParty/composer/symfony/http-foundation/Session/Storage/Handler/AbstractSessionHandler.php +++ b/lam/lib/3rdParty/composer/symfony/http-foundation/Session/Storage/Handler/AbstractSessionHandler.php @@ -114,7 +114,7 @@ abstract class AbstractSessionHandler implements \SessionHandlerInterface, \Sess { if (!headers_sent() && filter_var(ini_get('session.use_cookies'), FILTER_VALIDATE_BOOLEAN)) { if (!$this->sessionName) { - throw new \LogicException(sprintf('Session name cannot be empty, did you forget to call "parent::open()" in "%s"?.', \get_class($this))); + throw new \LogicException(sprintf('Session name cannot be empty, did you forget to call "parent::open()" in "%s"?.', static::class)); } $cookie = SessionUtils::popSessionCookie($this->sessionName, $sessionId); diff --git a/lam/lib/3rdParty/composer/symfony/http-foundation/Session/Storage/Handler/MemcachedSessionHandler.php b/lam/lib/3rdParty/composer/symfony/http-foundation/Session/Storage/Handler/MemcachedSessionHandler.php index 8896964e..828d29eb 100644 --- a/lam/lib/3rdParty/composer/symfony/http-foundation/Session/Storage/Handler/MemcachedSessionHandler.php +++ b/lam/lib/3rdParty/composer/symfony/http-foundation/Session/Storage/Handler/MemcachedSessionHandler.php @@ -47,7 +47,7 @@ class MemcachedSessionHandler extends AbstractSessionHandler $this->memcached = $memcached; if ($diff = array_diff(array_keys($options), ['prefix', 'expiretime'])) { - throw new \InvalidArgumentException(sprintf('The following options are not supported "%s"', implode(', ', $diff))); + throw new \InvalidArgumentException(sprintf('The following options are not supported "%s".', implode(', ', $diff))); } $this->ttl = isset($options['expiretime']) ? (int) $options['expiretime'] : 86400; diff --git a/lam/lib/3rdParty/composer/symfony/http-foundation/Session/Storage/Handler/MongoDbSessionHandler.php b/lam/lib/3rdParty/composer/symfony/http-foundation/Session/Storage/Handler/MongoDbSessionHandler.php index a6889e40..9a2d7919 100644 --- a/lam/lib/3rdParty/composer/symfony/http-foundation/Session/Storage/Handler/MongoDbSessionHandler.php +++ b/lam/lib/3rdParty/composer/symfony/http-foundation/Session/Storage/Handler/MongoDbSessionHandler.php @@ -66,7 +66,7 @@ class MongoDbSessionHandler extends AbstractSessionHandler public function __construct(\MongoDB\Client $mongo, array $options) { if (!isset($options['database']) || !isset($options['collection'])) { - throw new \InvalidArgumentException('You must provide the "database" and "collection" option for MongoDBSessionHandler'); + throw new \InvalidArgumentException('You must provide the "database" and "collection" option for MongoDBSessionHandler.'); } $this->mongo = $mongo; diff --git a/lam/lib/3rdParty/composer/symfony/http-foundation/Session/Storage/Handler/NativeFileSessionHandler.php b/lam/lib/3rdParty/composer/symfony/http-foundation/Session/Storage/Handler/NativeFileSessionHandler.php index bdfc9d81..effc9db5 100644 --- a/lam/lib/3rdParty/composer/symfony/http-foundation/Session/Storage/Handler/NativeFileSessionHandler.php +++ b/lam/lib/3rdParty/composer/symfony/http-foundation/Session/Storage/Handler/NativeFileSessionHandler.php @@ -38,7 +38,7 @@ class NativeFileSessionHandler extends \SessionHandler if ($count = substr_count($savePath, ';')) { if ($count > 2) { - throw new \InvalidArgumentException(sprintf('Invalid argument $savePath \'%s\'', $savePath)); + throw new \InvalidArgumentException(sprintf('Invalid argument $savePath \'%s\'.', $savePath)); } // characters after last ';' are the path @@ -46,7 +46,7 @@ class NativeFileSessionHandler extends \SessionHandler } if ($baseDir && !is_dir($baseDir) && !@mkdir($baseDir, 0777, true) && !is_dir($baseDir)) { - throw new \RuntimeException(sprintf('Session Storage was not able to create directory "%s"', $baseDir)); + throw new \RuntimeException(sprintf('Session Storage was not able to create directory "%s".', $baseDir)); } ini_set('session.save_path', $savePath); diff --git a/lam/lib/3rdParty/composer/symfony/http-foundation/Session/Storage/Handler/PdoSessionHandler.php b/lam/lib/3rdParty/composer/symfony/http-foundation/Session/Storage/Handler/PdoSessionHandler.php index 52f8334a..a301e9f0 100644 --- a/lam/lib/3rdParty/composer/symfony/http-foundation/Session/Storage/Handler/PdoSessionHandler.php +++ b/lam/lib/3rdParty/composer/symfony/http-foundation/Session/Storage/Handler/PdoSessionHandler.php @@ -174,7 +174,7 @@ class PdoSessionHandler extends AbstractSessionHandler { if ($pdoOrDsn instanceof \PDO) { if (\PDO::ERRMODE_EXCEPTION !== $pdoOrDsn->getAttribute(\PDO::ATTR_ERRMODE)) { - throw new \InvalidArgumentException(sprintf('"%s" requires PDO error mode attribute be set to throw Exceptions (i.e. $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION))', __CLASS__)); + throw new \InvalidArgumentException(sprintf('"%s" requires PDO error mode attribute be set to throw Exceptions (i.e. $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION)).', __CLASS__)); } $this->pdo = $pdoOrDsn; @@ -219,7 +219,7 @@ class PdoSessionHandler extends AbstractSessionHandler // - trailing space removal // - case-insensitivity // - language processing like é == e - $sql = "CREATE TABLE $this->table ($this->idCol VARBINARY(128) NOT NULL PRIMARY KEY, $this->dataCol BLOB NOT NULL, $this->lifetimeCol INTEGER UNSIGNED NOT NULL, $this->timeCol INTEGER UNSIGNED NOT NULL) COLLATE utf8_bin, ENGINE = InnoDB"; + $sql = "CREATE TABLE $this->table ($this->idCol VARBINARY(128) NOT NULL PRIMARY KEY, $this->dataCol BLOB NOT NULL, $this->lifetimeCol INTEGER UNSIGNED NOT NULL, $this->timeCol INTEGER UNSIGNED NOT NULL) COLLATE utf8mb4_bin, ENGINE = InnoDB"; break; case 'sqlite': $sql = "CREATE TABLE $this->table ($this->idCol TEXT NOT NULL PRIMARY KEY, $this->dataCol BLOB NOT NULL, $this->lifetimeCol INTEGER NOT NULL, $this->timeCol INTEGER NOT NULL)"; @@ -468,7 +468,7 @@ class PdoSessionHandler extends AbstractSessionHandler } if (!isset($params['scheme'])) { - throw new \InvalidArgumentException('URLs without scheme are not supported to configure the PdoSessionHandler'); + throw new \InvalidArgumentException('URLs without scheme are not supported to configure the PdoSessionHandler.'); } $driverAliasMap = [ @@ -869,10 +869,10 @@ class PdoSessionHandler extends AbstractSessionHandler $mergeStmt->bindParam(2, $sessionId, \PDO::PARAM_STR); $mergeStmt->bindParam(3, $data, \PDO::PARAM_LOB); $mergeStmt->bindValue(4, time() + $maxlifetime, \PDO::PARAM_INT); - $mergeStmt->bindValue(4, time(), \PDO::PARAM_INT); - $mergeStmt->bindParam(5, $data, \PDO::PARAM_LOB); - $mergeStmt->bindValue(6, time() + $maxlifetime, \PDO::PARAM_INT); - $mergeStmt->bindValue(6, time(), \PDO::PARAM_INT); + $mergeStmt->bindValue(5, time(), \PDO::PARAM_INT); + $mergeStmt->bindParam(6, $data, \PDO::PARAM_LOB); + $mergeStmt->bindValue(7, time() + $maxlifetime, \PDO::PARAM_INT); + $mergeStmt->bindValue(8, time(), \PDO::PARAM_INT); } else { $mergeStmt->bindParam(':id', $sessionId, \PDO::PARAM_STR); $mergeStmt->bindParam(':data', $data, \PDO::PARAM_LOB); diff --git a/lam/lib/3rdParty/composer/symfony/http-foundation/Session/Storage/Handler/RedisSessionHandler.php b/lam/lib/3rdParty/composer/symfony/http-foundation/Session/Storage/Handler/RedisSessionHandler.php index 678fb028..d6c37c43 100644 --- a/lam/lib/3rdParty/composer/symfony/http-foundation/Session/Storage/Handler/RedisSessionHandler.php +++ b/lam/lib/3rdParty/composer/symfony/http-foundation/Session/Storage/Handler/RedisSessionHandler.php @@ -54,16 +54,16 @@ class RedisSessionHandler extends AbstractSessionHandler !$redis instanceof RedisProxy && !$redis instanceof RedisClusterProxy ) { - throw new \InvalidArgumentException(sprintf('%s() expects parameter 1 to be Redis, RedisArray, RedisCluster or Predis\ClientInterface, %s given', __METHOD__, \is_object($redis) ? \get_class($redis) : \gettype($redis))); + throw new \InvalidArgumentException(sprintf('"%s()" expects parameter 1 to be Redis, RedisArray, RedisCluster or Predis\ClientInterface, "%s" given.', __METHOD__, \is_object($redis) ? \get_class($redis) : \gettype($redis))); } if ($diff = array_diff(array_keys($options), ['prefix', 'ttl'])) { - throw new \InvalidArgumentException(sprintf('The following options are not supported "%s"', implode(', ', $diff))); + throw new \InvalidArgumentException(sprintf('The following options are not supported "%s".', implode(', ', $diff))); } $this->redis = $redis; $this->prefix = $options['prefix'] ?? 'sf_s'; - $this->ttl = $options['ttl'] ?? (int) ini_get('session.gc_maxlifetime'); + $this->ttl = $options['ttl'] ?? null; } /** @@ -79,7 +79,7 @@ class RedisSessionHandler extends AbstractSessionHandler */ protected function doWrite(string $sessionId, string $data): bool { - $result = $this->redis->setEx($this->prefix.$sessionId, $this->ttl, $data); + $result = $this->redis->setEx($this->prefix.$sessionId, (int) ($this->ttl ?? ini_get('session.gc_maxlifetime')), $data); return $result && !$result instanceof ErrorInterface; } @@ -115,6 +115,6 @@ class RedisSessionHandler extends AbstractSessionHandler */ public function updateTimestamp($sessionId, $data) { - return (bool) $this->redis->expire($this->prefix.$sessionId, $this->ttl); + return (bool) $this->redis->expire($this->prefix.$sessionId, (int) ($this->ttl ?? ini_get('session.gc_maxlifetime'))); } } diff --git a/lam/lib/3rdParty/composer/symfony/http-foundation/Session/Storage/Handler/SessionHandlerFactory.php b/lam/lib/3rdParty/composer/symfony/http-foundation/Session/Storage/Handler/SessionHandlerFactory.php index f4feeac0..a5ebd29e 100644 --- a/lam/lib/3rdParty/composer/symfony/http-foundation/Session/Storage/Handler/SessionHandlerFactory.php +++ b/lam/lib/3rdParty/composer/symfony/http-foundation/Session/Storage/Handler/SessionHandlerFactory.php @@ -27,7 +27,7 @@ class SessionHandlerFactory public static function createHandler($connection): AbstractSessionHandler { if (!\is_string($connection) && !\is_object($connection)) { - throw new \TypeError(sprintf('Argument 1 passed to %s() must be a string or a connection object, %s given.', __METHOD__, \gettype($connection))); + throw new \TypeError(sprintf('Argument 1 passed to "%s()" must be a string or a connection object, "%s" given.', __METHOD__, \gettype($connection))); } switch (true) { @@ -46,17 +46,17 @@ class SessionHandlerFactory return new PdoSessionHandler($connection); case !\is_string($connection): - throw new \InvalidArgumentException(sprintf('Unsupported Connection: %s.', \get_class($connection))); + throw new \InvalidArgumentException(sprintf('Unsupported Connection: "%s".', \get_class($connection))); case 0 === strpos($connection, 'file://'): return new StrictSessionHandler(new NativeFileSessionHandler(substr($connection, 7))); - case 0 === strpos($connection, 'redis://'): - case 0 === strpos($connection, 'rediss://'): - case 0 === strpos($connection, 'memcached://'): + case 0 === strpos($connection, 'redis:'): + case 0 === strpos($connection, 'rediss:'): + case 0 === strpos($connection, 'memcached:'): if (!class_exists(AbstractAdapter::class)) { - throw new InvalidArgumentException(sprintf('Unsupported DSN "%s". Try running "composer require symfony/cache".', $connection)); + throw new \InvalidArgumentException(sprintf('Unsupported DSN "%s". Try running "composer require symfony/cache".', $connection)); } - $handlerClass = 0 === strpos($connection, 'memcached://') ? MemcachedSessionHandler::class : RedisSessionHandler::class; + $handlerClass = 0 === strpos($connection, 'memcached:') ? MemcachedSessionHandler::class : RedisSessionHandler::class; $connection = AbstractAdapter::createConnection($connection, ['lazy' => true]); return new $handlerClass($connection); @@ -80,6 +80,6 @@ class SessionHandlerFactory return new PdoSessionHandler($connection); } - throw new \InvalidArgumentException(sprintf('Unsupported Connection: %s.', $connection)); + throw new \InvalidArgumentException(sprintf('Unsupported Connection: "%s".', $connection)); } } diff --git a/lam/lib/3rdParty/composer/symfony/http-foundation/Session/Storage/MockArraySessionStorage.php b/lam/lib/3rdParty/composer/symfony/http-foundation/Session/Storage/MockArraySessionStorage.php index 4662bd86..0201504c 100644 --- a/lam/lib/3rdParty/composer/symfony/http-foundation/Session/Storage/MockArraySessionStorage.php +++ b/lam/lib/3rdParty/composer/symfony/http-foundation/Session/Storage/MockArraySessionStorage.php @@ -148,7 +148,7 @@ class MockArraySessionStorage implements SessionStorageInterface public function save() { if (!$this->started || $this->closed) { - throw new \RuntimeException('Trying to save a session that was not started yet or was already closed'); + throw new \RuntimeException('Trying to save a session that was not started yet or was already closed.'); } // nothing to do since we don't persist the session data $this->closed = false; @@ -186,7 +186,7 @@ class MockArraySessionStorage implements SessionStorageInterface public function getBag(string $name) { if (!isset($this->bags[$name])) { - throw new \InvalidArgumentException(sprintf('The SessionBagInterface %s is not registered.', $name)); + throw new \InvalidArgumentException(sprintf('The SessionBagInterface "%s" is not registered.', $name)); } if (!$this->started) { diff --git a/lam/lib/3rdParty/composer/symfony/http-foundation/Session/Storage/MockFileSessionStorage.php b/lam/lib/3rdParty/composer/symfony/http-foundation/Session/Storage/MockFileSessionStorage.php index 019a6348..ab8b8640 100644 --- a/lam/lib/3rdParty/composer/symfony/http-foundation/Session/Storage/MockFileSessionStorage.php +++ b/lam/lib/3rdParty/composer/symfony/http-foundation/Session/Storage/MockFileSessionStorage.php @@ -36,7 +36,7 @@ class MockFileSessionStorage extends MockArraySessionStorage } if (!is_dir($savePath) && !@mkdir($savePath, 0777, true) && !is_dir($savePath)) { - throw new \RuntimeException(sprintf('Session Storage was not able to create directory "%s"', $savePath)); + throw new \RuntimeException(sprintf('Session Storage was not able to create directory "%s".', $savePath)); } $this->savePath = $savePath; @@ -86,7 +86,7 @@ class MockFileSessionStorage extends MockArraySessionStorage public function save() { if (!$this->started) { - throw new \RuntimeException('Trying to save a session that was not started yet or was already closed'); + throw new \RuntimeException('Trying to save a session that was not started yet or was already closed.'); } $data = $this->data; diff --git a/lam/lib/3rdParty/composer/symfony/http-foundation/Session/Storage/NativeSessionStorage.php b/lam/lib/3rdParty/composer/symfony/http-foundation/Session/Storage/NativeSessionStorage.php index d3b44c85..268f9784 100644 --- a/lam/lib/3rdParty/composer/symfony/http-foundation/Session/Storage/NativeSessionStorage.php +++ b/lam/lib/3rdParty/composer/symfony/http-foundation/Session/Storage/NativeSessionStorage.php @@ -17,6 +17,11 @@ use Symfony\Component\HttpFoundation\Session\Storage\Handler\StrictSessionHandle use Symfony\Component\HttpFoundation\Session\Storage\Proxy\AbstractProxy; use Symfony\Component\HttpFoundation\Session\Storage\Proxy\SessionHandlerProxy; +// Help opcache.preload discover always-needed symbols +class_exists(MetadataBag::class); +class_exists(StrictSessionHandler::class); +class_exists(SessionHandlerProxy::class); + /** * This provides a base class for session attribute storage. * @@ -139,7 +144,7 @@ class NativeSessionStorage implements SessionStorageInterface return true; } - if (\PHP_SESSION_ACTIVE === session_status()) { + if (PHP_SESSION_ACTIVE === session_status()) { throw new \RuntimeException('Failed to start the session: already started by PHP.'); } @@ -149,7 +154,7 @@ class NativeSessionStorage implements SessionStorageInterface // ok to try and start the session if (!session_start()) { - throw new \RuntimeException('Failed to start the session'); + throw new \RuntimeException('Failed to start the session.'); } if (null !== $this->emulateSameSite) { @@ -202,7 +207,7 @@ class NativeSessionStorage implements SessionStorageInterface public function regenerate(bool $destroy = false, int $lifetime = null) { // Cannot regenerate the session ID for non-active sessions. - if (\PHP_SESSION_ACTIVE !== session_status()) { + if (PHP_SESSION_ACTIVE !== session_status()) { return false; } @@ -311,7 +316,7 @@ class NativeSessionStorage implements SessionStorageInterface public function getBag(string $name) { if (!isset($this->bags[$name])) { - throw new \InvalidArgumentException(sprintf('The SessionBagInterface %s is not registered.', $name)); + throw new \InvalidArgumentException(sprintf('The SessionBagInterface "%s" is not registered.', $name)); } if (!$this->started && $this->saveHandler->isActive()) { @@ -362,7 +367,7 @@ class NativeSessionStorage implements SessionStorageInterface */ public function setOptions(array $options) { - if (headers_sent() || \PHP_SESSION_ACTIVE === session_status()) { + if (headers_sent() || PHP_SESSION_ACTIVE === session_status()) { return; } @@ -401,13 +406,11 @@ class NativeSessionStorage implements SessionStorageInterface * ini_set('session.save_path', '/tmp'); * * or pass in a \SessionHandler instance which configures session.save_handler in the - * constructor, for a template see NativeFileSessionHandler or use handlers in - * composer package drak/native-session + * constructor, for a template see NativeFileSessionHandler. * * @see https://php.net/session-set-save-handler * @see https://php.net/sessionhandlerinterface * @see https://php.net/sessionhandler - * @see https://github.com/zikula/NativeSession * * @param AbstractProxy|\SessionHandlerInterface|null $saveHandler * @@ -429,7 +432,7 @@ class NativeSessionStorage implements SessionStorageInterface } $this->saveHandler = $saveHandler; - if (headers_sent() || \PHP_SESSION_ACTIVE === session_status()) { + if (headers_sent() || PHP_SESSION_ACTIVE === session_status()) { return; } diff --git a/lam/lib/3rdParty/composer/symfony/http-foundation/Session/Storage/Proxy/AbstractProxy.php b/lam/lib/3rdParty/composer/symfony/http-foundation/Session/Storage/Proxy/AbstractProxy.php index ded79d64..e7be22c0 100644 --- a/lam/lib/3rdParty/composer/symfony/http-foundation/Session/Storage/Proxy/AbstractProxy.php +++ b/lam/lib/3rdParty/composer/symfony/http-foundation/Session/Storage/Proxy/AbstractProxy.php @@ -65,7 +65,7 @@ abstract class AbstractProxy */ public function isActive() { - return \PHP_SESSION_ACTIVE === session_status(); + return PHP_SESSION_ACTIVE === session_status(); } /** @@ -86,7 +86,7 @@ abstract class AbstractProxy public function setId(string $id) { if ($this->isActive()) { - throw new \LogicException('Cannot change the ID of an active session'); + throw new \LogicException('Cannot change the ID of an active session.'); } session_id($id); @@ -110,7 +110,7 @@ abstract class AbstractProxy public function setName(string $name) { if ($this->isActive()) { - throw new \LogicException('Cannot change the name of an active session'); + throw new \LogicException('Cannot change the name of an active session.'); } session_name($name); diff --git a/lam/lib/3rdParty/composer/symfony/mime/.gitattributes b/lam/lib/3rdParty/composer/symfony/mime/.gitattributes deleted file mode 100644 index ebb92870..00000000 --- a/lam/lib/3rdParty/composer/symfony/mime/.gitattributes +++ /dev/null @@ -1,3 +0,0 @@ -/Tests export-ignore -/phpunit.xml.dist export-ignore -/.gitignore export-ignore diff --git a/lam/lib/3rdParty/composer/symfony/mime/Crypto/SMime.php b/lam/lib/3rdParty/composer/symfony/mime/Crypto/SMime.php index 55941be9..c6317a6b 100644 --- a/lam/lib/3rdParty/composer/symfony/mime/Crypto/SMime.php +++ b/lam/lib/3rdParty/composer/symfony/mime/Crypto/SMime.php @@ -24,7 +24,7 @@ abstract class SMime protected function normalizeFilePath(string $path): string { if (!file_exists($path)) { - throw new RuntimeException(sprintf('File does not exist: %s.', $path)); + throw new RuntimeException(sprintf('File does not exist: "%s".', $path)); } return 'file://'.str_replace('\\', '/', realpath($path)); diff --git a/lam/lib/3rdParty/composer/symfony/mime/Encoder/IdnAddressEncoder.php b/lam/lib/3rdParty/composer/symfony/mime/Encoder/IdnAddressEncoder.php index 1c5e32c0..cdd5d4ca 100644 --- a/lam/lib/3rdParty/composer/symfony/mime/Encoder/IdnAddressEncoder.php +++ b/lam/lib/3rdParty/composer/symfony/mime/Encoder/IdnAddressEncoder.php @@ -20,9 +20,7 @@ use Symfony\Component\Mime\Exception\AddressEncoderException; * SMTP servers. * * This encoder does not support email addresses with non-ASCII characters in - * local-part (the substring before @). To send to such addresses, use - * Utf8AddressEncoder together with SmtpUtf8Handler. Your outbound SMTP server must support - * the SMTPUTF8 extension. + * local-part (the substring before @). * * @author Christian Schmidt */ diff --git a/lam/lib/3rdParty/composer/symfony/mime/Part/AbstractMultipartPart.php b/lam/lib/3rdParty/composer/symfony/mime/Part/AbstractMultipartPart.php index 48b86202..685d2506 100644 --- a/lam/lib/3rdParty/composer/symfony/mime/Part/AbstractMultipartPart.php +++ b/lam/lib/3rdParty/composer/symfony/mime/Part/AbstractMultipartPart.php @@ -91,7 +91,7 @@ abstract class AbstractMultipartPart extends AbstractPart private function getBoundary(): string { if (null === $this->boundary) { - $this->boundary = '_=_symfony_'.time().'_'.bin2hex(random_bytes(16)).'_=_'; + $this->boundary = strtr(base64_encode(random_bytes(6)), '+/', '-_'); } return $this->boundary; diff --git a/lam/lib/3rdParty/composer/symfony/mime/Part/DataPart.php b/lam/lib/3rdParty/composer/symfony/mime/Part/DataPart.php index 423185fe..c6f1cb97 100644 --- a/lam/lib/3rdParty/composer/symfony/mime/Part/DataPart.php +++ b/lam/lib/3rdParty/composer/symfony/mime/Part/DataPart.php @@ -57,7 +57,7 @@ class DataPart extends TextPart } if (false === $handle = @fopen($path, 'r', false)) { - throw new InvalidArgumentException(sprintf('Unable to open path "%s"', $path)); + throw new InvalidArgumentException(sprintf('Unable to open path "%s".', $path)); } $p = new self($handle, $name ?: basename($path), $contentType); $p->handle = $handle; diff --git a/lam/lib/3rdParty/composer/symfony/polyfill-ctype/composer.json b/lam/lib/3rdParty/composer/symfony/polyfill-ctype/composer.json index 2596c745..71d436ed 100644 --- a/lam/lib/3rdParty/composer/symfony/polyfill-ctype/composer.json +++ b/lam/lib/3rdParty/composer/symfony/polyfill-ctype/composer.json @@ -28,7 +28,7 @@ "minimum-stability": "dev", "extra": { "branch-alias": { - "dev-master": "1.14-dev" + "dev-master": "1.15-dev" } } } diff --git a/lam/lib/3rdParty/composer/symfony/polyfill-intl-idn/README.md b/lam/lib/3rdParty/composer/symfony/polyfill-intl-idn/README.md index 5fd8c6e9..2e75f2e5 100644 --- a/lam/lib/3rdParty/composer/symfony/polyfill-intl-idn/README.md +++ b/lam/lib/3rdParty/composer/symfony/polyfill-intl-idn/README.md @@ -1,7 +1,7 @@ Symfony Polyfill / Intl: Idn ============================ -This component provides `idn_to_ascii` and `idn_to_utf8` functions to users who run php versions without the intl extension. +This component provides [`idn_to_ascii`](https://php.net/idn-to-ascii) and [`idn_to_utf8`](https://php.net/idn-to-utf8) functions to users who run php versions without the [Intl](https://php.net/intl) extension. More information can be found in the [main Polyfill README](https://github.com/symfony/polyfill/blob/master/README.md). diff --git a/lam/lib/3rdParty/composer/symfony/polyfill-intl-idn/bootstrap.php b/lam/lib/3rdParty/composer/symfony/polyfill-intl-idn/bootstrap.php index c6e3921d..b29d4e50 100644 --- a/lam/lib/3rdParty/composer/symfony/polyfill-intl-idn/bootstrap.php +++ b/lam/lib/3rdParty/composer/symfony/polyfill-intl-idn/bootstrap.php @@ -11,7 +11,7 @@ use Symfony\Polyfill\Intl\Idn as p; -if (!function_exists('idn_to_ascii')) { +if (!defined('IDNA_DEFAULT')) { define('U_IDNA_PROHIBITED_ERROR', 66560); define('U_IDNA_ERROR_START', 66560); define('U_IDNA_UNASSIGNED_ERROR', 66561); @@ -48,7 +48,9 @@ if (!function_exists('idn_to_ascii')) { define('IDNA_ERROR_INVALID_ACE_LABEL', 1024); define('IDNA_ERROR_BIDI', 2048); define('IDNA_ERROR_CONTEXTJ', 4096); +} +if (!function_exists('idn_to_ascii')) { if (PHP_VERSION_ID < 70400) { function idn_to_ascii($domain, $options = IDNA_DEFAULT, $variant = INTL_IDNA_VARIANT_2003, &$idna_info = array()) { return p\Idn::idn_to_ascii($domain, $options, $variant, $idna_info); } function idn_to_utf8($domain, $options = IDNA_DEFAULT, $variant = INTL_IDNA_VARIANT_2003, &$idna_info = array()) { return p\Idn::idn_to_utf8($domain, $options, $variant, $idna_info); } diff --git a/lam/lib/3rdParty/composer/symfony/polyfill-intl-idn/composer.json b/lam/lib/3rdParty/composer/symfony/polyfill-intl-idn/composer.json index 403f4aa7..ef2c0068 100644 --- a/lam/lib/3rdParty/composer/symfony/polyfill-intl-idn/composer.json +++ b/lam/lib/3rdParty/composer/symfony/polyfill-intl-idn/composer.json @@ -30,7 +30,7 @@ "minimum-stability": "dev", "extra": { "branch-alias": { - "dev-master": "1.14-dev" + "dev-master": "1.15-dev" } } } diff --git a/lam/lib/3rdParty/composer/symfony/polyfill-mbstring/README.md b/lam/lib/3rdParty/composer/symfony/polyfill-mbstring/README.md index 342e8286..4efb599d 100644 --- a/lam/lib/3rdParty/composer/symfony/polyfill-mbstring/README.md +++ b/lam/lib/3rdParty/composer/symfony/polyfill-mbstring/README.md @@ -2,7 +2,7 @@ Symfony Polyfill / Mbstring =========================== This component provides a partial, native PHP implementation for the -[Mbstring](http://php.net/mbstring) extension. +[Mbstring](https://php.net/mbstring) extension. More information can be found in the [main Polyfill README](https://github.com/symfony/polyfill/blob/master/README.md). diff --git a/lam/lib/3rdParty/composer/symfony/polyfill-mbstring/bootstrap.php b/lam/lib/3rdParty/composer/symfony/polyfill-mbstring/bootstrap.php index 204a41ba..8c8225c5 100644 --- a/lam/lib/3rdParty/composer/symfony/polyfill-mbstring/bootstrap.php +++ b/lam/lib/3rdParty/composer/symfony/polyfill-mbstring/bootstrap.php @@ -11,11 +11,13 @@ use Symfony\Polyfill\Mbstring as p; -if (!function_exists('mb_strlen')) { +if (!defined('MB_CASE_UPPER')) { define('MB_CASE_UPPER', 0); define('MB_CASE_LOWER', 1); define('MB_CASE_TITLE', 2); +} +if (!function_exists('mb_strlen')) { function mb_convert_encoding($s, $to, $from = null) { return p\Mbstring::mb_convert_encoding($s, $to, $from); } function mb_decode_mimeheader($s) { return p\Mbstring::mb_decode_mimeheader($s); } function mb_encode_mimeheader($s, $charset = null, $transferEnc = null, $lf = null, $indent = null) { return p\Mbstring::mb_encode_mimeheader($s, $charset, $transferEnc, $lf, $indent); } diff --git a/lam/lib/3rdParty/composer/symfony/polyfill-mbstring/composer.json b/lam/lib/3rdParty/composer/symfony/polyfill-mbstring/composer.json index 1a8bec5c..02b8896f 100644 --- a/lam/lib/3rdParty/composer/symfony/polyfill-mbstring/composer.json +++ b/lam/lib/3rdParty/composer/symfony/polyfill-mbstring/composer.json @@ -28,7 +28,7 @@ "minimum-stability": "dev", "extra": { "branch-alias": { - "dev-master": "1.14-dev" + "dev-master": "1.15-dev" } } } diff --git a/lam/lib/3rdParty/composer/symfony/polyfill-php72/README.md b/lam/lib/3rdParty/composer/symfony/polyfill-php72/README.md index 82c45f7a..8ac181e4 100644 --- a/lam/lib/3rdParty/composer/symfony/polyfill-php72/README.md +++ b/lam/lib/3rdParty/composer/symfony/polyfill-php72/README.md @@ -16,7 +16,7 @@ Moved to core since 7.2 (was in the optional XML extension earlier): - [`utf8_decode`](https://php.net/utf8_decode) Also, it provides a constant added to PHP 7.2: -- [`PHP_OS_FAMILY`](http://php.net/manual/en/reserved.constants.php#constant.php-os-family) +- [`PHP_OS_FAMILY`](https://php.net/reserved.constants#constant.php-os-family) More information can be found in the [main Polyfill README](https://github.com/symfony/polyfill/blob/master/README.md). diff --git a/lam/lib/3rdParty/composer/symfony/polyfill-php72/composer.json b/lam/lib/3rdParty/composer/symfony/polyfill-php72/composer.json index d2f84641..27901f2a 100644 --- a/lam/lib/3rdParty/composer/symfony/polyfill-php72/composer.json +++ b/lam/lib/3rdParty/composer/symfony/polyfill-php72/composer.json @@ -25,7 +25,7 @@ "minimum-stability": "dev", "extra": { "branch-alias": { - "dev-master": "1.14-dev" + "dev-master": "1.15-dev" } } }