[Web] Update composer libs, fixes PHPMailer security issue

master
andryyy 2021-05-04 20:46:05 +02:00
parent 0cbd4ec273
commit af57a5312b
No known key found for this signature in database
GPG Key ID: 8EC34FF2794E25EF
35 changed files with 409 additions and 1153 deletions

View File

@ -70,16 +70,16 @@
},
{
"name": "ddeboer/imap",
"version": "1.12.0",
"version": "1.12.1",
"source": {
"type": "git",
"url": "https://github.com/ddeboer/imap.git",
"reference": "f0e02bb82cdfbffa5c064be090e0b4c15edbf684"
"reference": "dbed05ca67b93509345a820b2859de10c48948fb"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/ddeboer/imap/zipball/f0e02bb82cdfbffa5c064be090e0b4c15edbf684",
"reference": "f0e02bb82cdfbffa5c064be090e0b4c15edbf684",
"url": "https://api.github.com/repos/ddeboer/imap/zipball/dbed05ca67b93509345a820b2859de10c48948fb",
"reference": "dbed05ca67b93509345a820b2859de10c48948fb",
"shasum": ""
},
"require": {
@ -89,9 +89,9 @@
"php": "^7.4 || ^8.0"
},
"require-dev": {
"friendsofphp/php-cs-fixer": "^2.18.4",
"friendsofphp/php-cs-fixer": "^2.18.6",
"laminas/laminas-mail": "^2.14.0",
"phpstan/phpstan": "^0.12.80",
"phpstan/phpstan": "^0.12.84",
"phpstan/phpstan-phpunit": "^0.12.18",
"phpstan/phpstan-strict-rules": "^0.12.9",
"phpunit/phpunit": "^9.5.4"
@ -128,7 +128,7 @@
],
"support": {
"issues": "https://github.com/ddeboer/imap/issues",
"source": "https://github.com/ddeboer/imap/tree/1.12.0"
"source": "https://github.com/ddeboer/imap/tree/1.12.1"
},
"funding": [
{
@ -140,20 +140,20 @@
"type": "github"
}
],
"time": "2021-04-02T14:20:54+00:00"
"time": "2021-04-27T08:38:46+00:00"
},
{
"name": "directorytree/ldaprecord",
"version": "v2.4.2",
"version": "v2.4.4",
"source": {
"type": "git",
"url": "https://github.com/DirectoryTree/LdapRecord.git",
"reference": "5da929cc94d5ceb2ad1909f0f2f9b4510616b111"
"reference": "2d1c4d71dd900b2f8245a6e32f67274795fac8a2"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/DirectoryTree/LdapRecord/zipball/5da929cc94d5ceb2ad1909f0f2f9b4510616b111",
"reference": "5da929cc94d5ceb2ad1909f0f2f9b4510616b111",
"url": "https://api.github.com/repos/DirectoryTree/LdapRecord/zipball/2d1c4d71dd900b2f8245a6e32f67274795fac8a2",
"reference": "2d1c4d71dd900b2f8245a6e32f67274795fac8a2",
"shasum": ""
},
"require": {
@ -212,20 +212,20 @@
"type": "github"
}
],
"time": "2021-04-10T02:08:26+00:00"
"time": "2021-05-01T17:48:47+00:00"
},
{
"name": "illuminate/contracts",
"version": "v8.36.2",
"version": "v8.40.0",
"source": {
"type": "git",
"url": "https://github.com/illuminate/contracts.git",
"reference": "5764f703ea8f74ced163125d810951cd5ef2b7e1"
"reference": "5152041a5c4ac4dbebb3c8ee72d05666c592ae08"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/illuminate/contracts/zipball/5764f703ea8f74ced163125d810951cd5ef2b7e1",
"reference": "5764f703ea8f74ced163125d810951cd5ef2b7e1",
"url": "https://api.github.com/repos/illuminate/contracts/zipball/5152041a5c4ac4dbebb3c8ee72d05666c592ae08",
"reference": "5152041a5c4ac4dbebb3c8ee72d05666c592ae08",
"shasum": ""
},
"require": {
@ -260,7 +260,7 @@
"issues": "https://github.com/laravel/framework/issues",
"source": "https://github.com/laravel/framework"
},
"time": "2021-04-01T13:09:31+00:00"
"time": "2021-04-23T13:31:10+00:00"
},
{
"name": "matthiasmullie/minify",
@ -445,16 +445,16 @@
},
{
"name": "nesbot/carbon",
"version": "2.46.0",
"version": "2.47.0",
"source": {
"type": "git",
"url": "https://github.com/briannesbitt/Carbon.git",
"reference": "2fd2c4a77d58a4e95234c8a61c5df1f157a91bf4"
"reference": "606262fd8888b75317ba9461825a24fc34001e1e"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/2fd2c4a77d58a4e95234c8a61c5df1f157a91bf4",
"reference": "2fd2c4a77d58a4e95234c8a61c5df1f157a91bf4",
"url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/606262fd8888b75317ba9461825a24fc34001e1e",
"reference": "606262fd8888b75317ba9461825a24fc34001e1e",
"shasum": ""
},
"require": {
@ -534,7 +534,7 @@
"type": "tidelift"
}
],
"time": "2021-02-24T17:30:44+00:00"
"time": "2021-04-13T21:54:02+00:00"
},
{
"name": "paragonie/random_compat",
@ -674,16 +674,16 @@
},
{
"name": "phpmailer/phpmailer",
"version": "v6.4.0",
"version": "v6.4.1",
"source": {
"type": "git",
"url": "https://github.com/PHPMailer/PHPMailer.git",
"reference": "050d430203105c27c30efd1dce7aa421ad882d01"
"reference": "9256f12d8fb0cd0500f93b19e18c356906cbed3d"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/PHPMailer/PHPMailer/zipball/050d430203105c27c30efd1dce7aa421ad882d01",
"reference": "050d430203105c27c30efd1dce7aa421ad882d01",
"url": "https://api.github.com/repos/PHPMailer/PHPMailer/zipball/9256f12d8fb0cd0500f93b19e18c356906cbed3d",
"reference": "9256f12d8fb0cd0500f93b19e18c356906cbed3d",
"shasum": ""
},
"require": {
@ -738,7 +738,7 @@
"description": "PHPMailer is a full-featured email creation and transfer class for PHP",
"support": {
"issues": "https://github.com/PHPMailer/PHPMailer/issues",
"source": "https://github.com/PHPMailer/PHPMailer/tree/v6.4.0"
"source": "https://github.com/PHPMailer/PHPMailer/tree/v6.4.1"
},
"funding": [
{
@ -746,7 +746,7 @@
"type": "github"
}
],
"time": "2021-03-31T20:06:42+00:00"
"time": "2021-04-29T12:25:04+00:00"
},
{
"name": "psr/container",
@ -798,16 +798,16 @@
},
{
"name": "psr/log",
"version": "1.1.3",
"version": "1.1.4",
"source": {
"type": "git",
"url": "https://github.com/php-fig/log.git",
"reference": "0f73288fd15629204f9d42b7055f72dacbe811fc"
"reference": "d49695b909c3b7628b6289db5479a1c204601f11"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/php-fig/log/zipball/0f73288fd15629204f9d42b7055f72dacbe811fc",
"reference": "0f73288fd15629204f9d42b7055f72dacbe811fc",
"url": "https://api.github.com/repos/php-fig/log/zipball/d49695b909c3b7628b6289db5479a1c204601f11",
"reference": "d49695b909c3b7628b6289db5479a1c204601f11",
"shasum": ""
},
"require": {
@ -831,7 +831,7 @@
"authors": [
{
"name": "PHP-FIG",
"homepage": "http://www.php-fig.org/"
"homepage": "https://www.php-fig.org/"
}
],
"description": "Common interface for logging libraries",
@ -842,9 +842,9 @@
"psr-3"
],
"support": {
"source": "https://github.com/php-fig/log/tree/1.1.3"
"source": "https://github.com/php-fig/log/tree/1.1.4"
},
"time": "2020-03-23T09:12:05+00:00"
"time": "2021-05-03T11:20:27+00:00"
},
{
"name": "psr/simple-cache",
@ -1187,16 +1187,16 @@
},
{
"name": "symfony/translation",
"version": "v5.2.6",
"version": "v5.2.7",
"source": {
"type": "git",
"url": "https://github.com/symfony/translation.git",
"reference": "2cc7f45d96db9adfcf89adf4401d9dfed509f4e1"
"reference": "e37ece5242564bceea54d709eafc948377ec9749"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/translation/zipball/2cc7f45d96db9adfcf89adf4401d9dfed509f4e1",
"reference": "2cc7f45d96db9adfcf89adf4401d9dfed509f4e1",
"url": "https://api.github.com/repos/symfony/translation/zipball/e37ece5242564bceea54d709eafc948377ec9749",
"reference": "e37ece5242564bceea54d709eafc948377ec9749",
"shasum": ""
},
"require": {
@ -1260,7 +1260,7 @@
"description": "Provides tools to internationalize your application",
"homepage": "https://symfony.com",
"support": {
"source": "https://github.com/symfony/translation/tree/v5.2.6"
"source": "https://github.com/symfony/translation/tree/v5.2.7"
},
"funding": [
{
@ -1276,20 +1276,20 @@
"type": "tidelift"
}
],
"time": "2021-03-23T19:33:48+00:00"
"time": "2021-04-01T08:15:21+00:00"
},
{
"name": "symfony/translation-contracts",
"version": "v2.3.0",
"version": "v2.4.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/translation-contracts.git",
"reference": "e2eaa60b558f26a4b0354e1bbb25636efaaad105"
"reference": "95c812666f3e91db75385749fe219c5e494c7f95"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/translation-contracts/zipball/e2eaa60b558f26a4b0354e1bbb25636efaaad105",
"reference": "e2eaa60b558f26a4b0354e1bbb25636efaaad105",
"url": "https://api.github.com/repos/symfony/translation-contracts/zipball/95c812666f3e91db75385749fe219c5e494c7f95",
"reference": "95c812666f3e91db75385749fe219c5e494c7f95",
"shasum": ""
},
"require": {
@ -1301,7 +1301,7 @@
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "2.3-dev"
"dev-main": "2.4-dev"
},
"thanks": {
"name": "symfony/contracts",
@ -1338,7 +1338,7 @@
"standards"
],
"support": {
"source": "https://github.com/symfony/translation-contracts/tree/v2.3.0"
"source": "https://github.com/symfony/translation-contracts/tree/v2.4.0"
},
"funding": [
{
@ -1354,20 +1354,20 @@
"type": "tidelift"
}
],
"time": "2020-09-28T13:05:58+00:00"
"time": "2021-03-23T23:28:01+00:00"
},
{
"name": "symfony/var-dumper",
"version": "v5.2.6",
"version": "v5.2.7",
"source": {
"type": "git",
"url": "https://github.com/symfony/var-dumper.git",
"reference": "89412a68ea2e675b4e44f260a5666729f77f668e"
"reference": "27cb9f7cfa3853c736425c7233a8f68814b19636"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/var-dumper/zipball/89412a68ea2e675b4e44f260a5666729f77f668e",
"reference": "89412a68ea2e675b4e44f260a5666729f77f668e",
"url": "https://api.github.com/repos/symfony/var-dumper/zipball/27cb9f7cfa3853c736425c7233a8f68814b19636",
"reference": "27cb9f7cfa3853c736425c7233a8f68814b19636",
"shasum": ""
},
"require": {
@ -1426,7 +1426,7 @@
"dump"
],
"support": {
"source": "https://github.com/symfony/var-dumper/tree/v5.2.6"
"source": "https://github.com/symfony/var-dumper/tree/v5.2.7"
},
"funding": [
{
@ -1442,7 +1442,7 @@
"type": "tidelift"
}
],
"time": "2021-03-28T09:42:18+00:00"
"time": "2021-04-19T14:07:32+00:00"
},
{
"name": "tightenco/collect",

View File

@ -55,21 +55,21 @@ private static $installed = array (
),
'ddeboer/imap' =>
array (
'pretty_version' => '1.12.0',
'version' => '1.12.0.0',
'pretty_version' => '1.12.1',
'version' => '1.12.1.0',
'aliases' =>
array (
),
'reference' => 'f0e02bb82cdfbffa5c064be090e0b4c15edbf684',
'reference' => 'dbed05ca67b93509345a820b2859de10c48948fb',
),
'directorytree/ldaprecord' =>
array (
'pretty_version' => 'v2.4.2',
'version' => '2.4.2.0',
'pretty_version' => 'v2.4.4',
'version' => '2.4.4.0',
'aliases' =>
array (
),
'reference' => '5da929cc94d5ceb2ad1909f0f2f9b4510616b111',
'reference' => '2d1c4d71dd900b2f8245a6e32f67274795fac8a2',
),
'exorus/php-mime-mail-parser' =>
array (
@ -80,12 +80,12 @@ private static $installed = array (
),
'illuminate/contracts' =>
array (
'pretty_version' => 'v8.36.2',
'version' => '8.36.2.0',
'pretty_version' => 'v8.40.0',
'version' => '8.40.0.0',
'aliases' =>
array (
),
'reference' => '5764f703ea8f74ced163125d810951cd5ef2b7e1',
'reference' => '5152041a5c4ac4dbebb3c8ee72d05666c592ae08',
),
'matthiasmullie/minify' =>
array (
@ -123,12 +123,12 @@ private static $installed = array (
),
'nesbot/carbon' =>
array (
'pretty_version' => '2.46.0',
'version' => '2.46.0.0',
'pretty_version' => '2.47.0',
'version' => '2.47.0.0',
'aliases' =>
array (
),
'reference' => '2fd2c4a77d58a4e95234c8a61c5df1f157a91bf4',
'reference' => '606262fd8888b75317ba9461825a24fc34001e1e',
),
'paragonie/random_compat' =>
array (
@ -150,12 +150,12 @@ private static $installed = array (
),
'phpmailer/phpmailer' =>
array (
'pretty_version' => 'v6.4.0',
'version' => '6.4.0.0',
'pretty_version' => 'v6.4.1',
'version' => '6.4.1.0',
'aliases' =>
array (
),
'reference' => '050d430203105c27c30efd1dce7aa421ad882d01',
'reference' => '9256f12d8fb0cd0500f93b19e18c356906cbed3d',
),
'psr/container' =>
array (
@ -168,12 +168,12 @@ private static $installed = array (
),
'psr/log' =>
array (
'pretty_version' => '1.1.3',
'version' => '1.1.3.0',
'pretty_version' => '1.1.4',
'version' => '1.1.4.0',
'aliases' =>
array (
),
'reference' => '0f73288fd15629204f9d42b7055f72dacbe811fc',
'reference' => 'd49695b909c3b7628b6289db5479a1c204601f11',
),
'psr/simple-cache' =>
array (
@ -222,21 +222,21 @@ private static $installed = array (
),
'symfony/translation' =>
array (
'pretty_version' => 'v5.2.6',
'version' => '5.2.6.0',
'pretty_version' => 'v5.2.7',
'version' => '5.2.7.0',
'aliases' =>
array (
),
'reference' => '2cc7f45d96db9adfcf89adf4401d9dfed509f4e1',
'reference' => 'e37ece5242564bceea54d709eafc948377ec9749',
),
'symfony/translation-contracts' =>
array (
'pretty_version' => 'v2.3.0',
'version' => '2.3.0.0',
'pretty_version' => 'v2.4.0',
'version' => '2.4.0.0',
'aliases' =>
array (
),
'reference' => 'e2eaa60b558f26a4b0354e1bbb25636efaaad105',
'reference' => '95c812666f3e91db75385749fe219c5e494c7f95',
),
'symfony/translation-implementation' =>
array (
@ -247,12 +247,12 @@ private static $installed = array (
),
'symfony/var-dumper' =>
array (
'pretty_version' => 'v5.2.6',
'version' => '5.2.6.0',
'pretty_version' => 'v5.2.7',
'version' => '5.2.7.0',
'aliases' =>
array (
),
'reference' => '89412a68ea2e675b4e44f260a5666729f77f668e',
'reference' => '27cb9f7cfa3853c736425c7233a8f68814b19636',
),
'tightenco/collect' =>
array (

View File

@ -63,17 +63,17 @@
},
{
"name": "ddeboer/imap",
"version": "1.12.0",
"version_normalized": "1.12.0.0",
"version": "1.12.1",
"version_normalized": "1.12.1.0",
"source": {
"type": "git",
"url": "https://github.com/ddeboer/imap.git",
"reference": "f0e02bb82cdfbffa5c064be090e0b4c15edbf684"
"reference": "dbed05ca67b93509345a820b2859de10c48948fb"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/ddeboer/imap/zipball/f0e02bb82cdfbffa5c064be090e0b4c15edbf684",
"reference": "f0e02bb82cdfbffa5c064be090e0b4c15edbf684",
"url": "https://api.github.com/repos/ddeboer/imap/zipball/dbed05ca67b93509345a820b2859de10c48948fb",
"reference": "dbed05ca67b93509345a820b2859de10c48948fb",
"shasum": ""
},
"require": {
@ -83,14 +83,14 @@
"php": "^7.4 || ^8.0"
},
"require-dev": {
"friendsofphp/php-cs-fixer": "^2.18.4",
"friendsofphp/php-cs-fixer": "^2.18.6",
"laminas/laminas-mail": "^2.14.0",
"phpstan/phpstan": "^0.12.80",
"phpstan/phpstan": "^0.12.84",
"phpstan/phpstan-phpunit": "^0.12.18",
"phpstan/phpstan-strict-rules": "^0.12.9",
"phpunit/phpunit": "^9.5.4"
},
"time": "2021-04-02T14:20:54+00:00",
"time": "2021-04-27T08:38:46+00:00",
"type": "library",
"installation-source": "dist",
"autoload": {
@ -124,7 +124,7 @@
],
"support": {
"issues": "https://github.com/ddeboer/imap/issues",
"source": "https://github.com/ddeboer/imap/tree/1.12.0"
"source": "https://github.com/ddeboer/imap/tree/1.12.1"
},
"funding": [
{
@ -140,17 +140,17 @@
},
{
"name": "directorytree/ldaprecord",
"version": "v2.4.2",
"version_normalized": "2.4.2.0",
"version": "v2.4.4",
"version_normalized": "2.4.4.0",
"source": {
"type": "git",
"url": "https://github.com/DirectoryTree/LdapRecord.git",
"reference": "5da929cc94d5ceb2ad1909f0f2f9b4510616b111"
"reference": "2d1c4d71dd900b2f8245a6e32f67274795fac8a2"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/DirectoryTree/LdapRecord/zipball/5da929cc94d5ceb2ad1909f0f2f9b4510616b111",
"reference": "5da929cc94d5ceb2ad1909f0f2f9b4510616b111",
"url": "https://api.github.com/repos/DirectoryTree/LdapRecord/zipball/2d1c4d71dd900b2f8245a6e32f67274795fac8a2",
"reference": "2d1c4d71dd900b2f8245a6e32f67274795fac8a2",
"shasum": ""
},
"require": {
@ -167,7 +167,7 @@
"mockery/mockery": "^1.0",
"phpunit/phpunit": "^8.0"
},
"time": "2021-04-10T02:08:26+00:00",
"time": "2021-05-01T17:48:47+00:00",
"type": "library",
"installation-source": "dist",
"autoload": {
@ -215,17 +215,17 @@
},
{
"name": "illuminate/contracts",
"version": "v8.36.2",
"version_normalized": "8.36.2.0",
"version": "v8.40.0",
"version_normalized": "8.40.0.0",
"source": {
"type": "git",
"url": "https://github.com/illuminate/contracts.git",
"reference": "5764f703ea8f74ced163125d810951cd5ef2b7e1"
"reference": "5152041a5c4ac4dbebb3c8ee72d05666c592ae08"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/illuminate/contracts/zipball/5764f703ea8f74ced163125d810951cd5ef2b7e1",
"reference": "5764f703ea8f74ced163125d810951cd5ef2b7e1",
"url": "https://api.github.com/repos/illuminate/contracts/zipball/5152041a5c4ac4dbebb3c8ee72d05666c592ae08",
"reference": "5152041a5c4ac4dbebb3c8ee72d05666c592ae08",
"shasum": ""
},
"require": {
@ -233,7 +233,7 @@
"psr/container": "^1.0",
"psr/simple-cache": "^1.0"
},
"time": "2021-04-01T13:09:31+00:00",
"time": "2021-04-23T13:31:10+00:00",
"type": "library",
"extra": {
"branch-alias": {
@ -452,17 +452,17 @@
},
{
"name": "nesbot/carbon",
"version": "2.46.0",
"version_normalized": "2.46.0.0",
"version": "2.47.0",
"version_normalized": "2.47.0.0",
"source": {
"type": "git",
"url": "https://github.com/briannesbitt/Carbon.git",
"reference": "2fd2c4a77d58a4e95234c8a61c5df1f157a91bf4"
"reference": "606262fd8888b75317ba9461825a24fc34001e1e"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/2fd2c4a77d58a4e95234c8a61c5df1f157a91bf4",
"reference": "2fd2c4a77d58a4e95234c8a61c5df1f157a91bf4",
"url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/606262fd8888b75317ba9461825a24fc34001e1e",
"reference": "606262fd8888b75317ba9461825a24fc34001e1e",
"shasum": ""
},
"require": {
@ -481,7 +481,7 @@
"phpunit/phpunit": "^7.5.20 || ^8.5.14",
"squizlabs/php_codesniffer": "^3.4"
},
"time": "2021-02-24T17:30:44+00:00",
"time": "2021-04-13T21:54:02+00:00",
"bin": [
"bin/carbon"
],
@ -686,17 +686,17 @@
},
{
"name": "phpmailer/phpmailer",
"version": "v6.4.0",
"version_normalized": "6.4.0.0",
"version": "v6.4.1",
"version_normalized": "6.4.1.0",
"source": {
"type": "git",
"url": "https://github.com/PHPMailer/PHPMailer.git",
"reference": "050d430203105c27c30efd1dce7aa421ad882d01"
"reference": "9256f12d8fb0cd0500f93b19e18c356906cbed3d"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/PHPMailer/PHPMailer/zipball/050d430203105c27c30efd1dce7aa421ad882d01",
"reference": "050d430203105c27c30efd1dce7aa421ad882d01",
"url": "https://api.github.com/repos/PHPMailer/PHPMailer/zipball/9256f12d8fb0cd0500f93b19e18c356906cbed3d",
"reference": "9256f12d8fb0cd0500f93b19e18c356906cbed3d",
"shasum": ""
},
"require": {
@ -721,7 +721,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": "2021-03-31T20:06:42+00:00",
"time": "2021-04-29T12:25:04+00:00",
"type": "library",
"installation-source": "dist",
"autoload": {
@ -753,7 +753,7 @@
"description": "PHPMailer is a full-featured email creation and transfer class for PHP",
"support": {
"issues": "https://github.com/PHPMailer/PHPMailer/issues",
"source": "https://github.com/PHPMailer/PHPMailer/tree/v6.4.0"
"source": "https://github.com/PHPMailer/PHPMailer/tree/v6.4.1"
},
"funding": [
{
@ -816,23 +816,23 @@
},
{
"name": "psr/log",
"version": "1.1.3",
"version_normalized": "1.1.3.0",
"version": "1.1.4",
"version_normalized": "1.1.4.0",
"source": {
"type": "git",
"url": "https://github.com/php-fig/log.git",
"reference": "0f73288fd15629204f9d42b7055f72dacbe811fc"
"reference": "d49695b909c3b7628b6289db5479a1c204601f11"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/php-fig/log/zipball/0f73288fd15629204f9d42b7055f72dacbe811fc",
"reference": "0f73288fd15629204f9d42b7055f72dacbe811fc",
"url": "https://api.github.com/repos/php-fig/log/zipball/d49695b909c3b7628b6289db5479a1c204601f11",
"reference": "d49695b909c3b7628b6289db5479a1c204601f11",
"shasum": ""
},
"require": {
"php": ">=5.3.0"
},
"time": "2020-03-23T09:12:05+00:00",
"time": "2021-05-03T11:20:27+00:00",
"type": "library",
"extra": {
"branch-alias": {
@ -852,7 +852,7 @@
"authors": [
{
"name": "PHP-FIG",
"homepage": "http://www.php-fig.org/"
"homepage": "https://www.php-fig.org/"
}
],
"description": "Common interface for logging libraries",
@ -863,7 +863,7 @@
"psr-3"
],
"support": {
"source": "https://github.com/php-fig/log/tree/1.1.3"
"source": "https://github.com/php-fig/log/tree/1.1.4"
},
"install-path": "../psr/log"
},
@ -1218,17 +1218,17 @@
},
{
"name": "symfony/translation",
"version": "v5.2.6",
"version_normalized": "5.2.6.0",
"version": "v5.2.7",
"version_normalized": "5.2.7.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/translation.git",
"reference": "2cc7f45d96db9adfcf89adf4401d9dfed509f4e1"
"reference": "e37ece5242564bceea54d709eafc948377ec9749"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/translation/zipball/2cc7f45d96db9adfcf89adf4401d9dfed509f4e1",
"reference": "2cc7f45d96db9adfcf89adf4401d9dfed509f4e1",
"url": "https://api.github.com/repos/symfony/translation/zipball/e37ece5242564bceea54d709eafc948377ec9749",
"reference": "e37ece5242564bceea54d709eafc948377ec9749",
"shasum": ""
},
"require": {
@ -1263,7 +1263,7 @@
"symfony/config": "",
"symfony/yaml": ""
},
"time": "2021-03-23T19:33:48+00:00",
"time": "2021-04-01T08:15:21+00:00",
"type": "library",
"installation-source": "dist",
"autoload": {
@ -1294,7 +1294,7 @@
"description": "Provides tools to internationalize your application",
"homepage": "https://symfony.com",
"support": {
"source": "https://github.com/symfony/translation/tree/v5.2.6"
"source": "https://github.com/symfony/translation/tree/v5.2.7"
},
"funding": [
{
@ -1314,17 +1314,17 @@
},
{
"name": "symfony/translation-contracts",
"version": "v2.3.0",
"version_normalized": "2.3.0.0",
"version": "v2.4.0",
"version_normalized": "2.4.0.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/translation-contracts.git",
"reference": "e2eaa60b558f26a4b0354e1bbb25636efaaad105"
"reference": "95c812666f3e91db75385749fe219c5e494c7f95"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/translation-contracts/zipball/e2eaa60b558f26a4b0354e1bbb25636efaaad105",
"reference": "e2eaa60b558f26a4b0354e1bbb25636efaaad105",
"url": "https://api.github.com/repos/symfony/translation-contracts/zipball/95c812666f3e91db75385749fe219c5e494c7f95",
"reference": "95c812666f3e91db75385749fe219c5e494c7f95",
"shasum": ""
},
"require": {
@ -1333,11 +1333,11 @@
"suggest": {
"symfony/translation-implementation": ""
},
"time": "2020-09-28T13:05:58+00:00",
"time": "2021-03-23T23:28:01+00:00",
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "2.3-dev"
"dev-main": "2.4-dev"
},
"thanks": {
"name": "symfony/contracts",
@ -1375,7 +1375,7 @@
"standards"
],
"support": {
"source": "https://github.com/symfony/translation-contracts/tree/v2.3.0"
"source": "https://github.com/symfony/translation-contracts/tree/v2.4.0"
},
"funding": [
{
@ -1395,17 +1395,17 @@
},
{
"name": "symfony/var-dumper",
"version": "v5.2.6",
"version_normalized": "5.2.6.0",
"version": "v5.2.7",
"version_normalized": "5.2.7.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/var-dumper.git",
"reference": "89412a68ea2e675b4e44f260a5666729f77f668e"
"reference": "27cb9f7cfa3853c736425c7233a8f68814b19636"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/var-dumper/zipball/89412a68ea2e675b4e44f260a5666729f77f668e",
"reference": "89412a68ea2e675b4e44f260a5666729f77f668e",
"url": "https://api.github.com/repos/symfony/var-dumper/zipball/27cb9f7cfa3853c736425c7233a8f68814b19636",
"reference": "27cb9f7cfa3853c736425c7233a8f68814b19636",
"shasum": ""
},
"require": {
@ -1428,7 +1428,7 @@
"ext-intl": "To show region name in time zone dump",
"symfony/console": "To use the ServerDumpCommand and/or the bin/var-dump-server script"
},
"time": "2021-03-28T09:42:18+00:00",
"time": "2021-04-19T14:07:32+00:00",
"bin": [
"Resources/bin/var-dump-server"
],
@ -1466,7 +1466,7 @@
"dump"
],
"support": {
"source": "https://github.com/symfony/var-dumper/tree/v5.2.6"
"source": "https://github.com/symfony/var-dumper/tree/v5.2.7"
},
"funding": [
{

View File

@ -31,21 +31,21 @@
),
'ddeboer/imap' =>
array (
'pretty_version' => '1.12.0',
'version' => '1.12.0.0',
'pretty_version' => '1.12.1',
'version' => '1.12.1.0',
'aliases' =>
array (
),
'reference' => 'f0e02bb82cdfbffa5c064be090e0b4c15edbf684',
'reference' => 'dbed05ca67b93509345a820b2859de10c48948fb',
),
'directorytree/ldaprecord' =>
array (
'pretty_version' => 'v2.4.2',
'version' => '2.4.2.0',
'pretty_version' => 'v2.4.4',
'version' => '2.4.4.0',
'aliases' =>
array (
),
'reference' => '5da929cc94d5ceb2ad1909f0f2f9b4510616b111',
'reference' => '2d1c4d71dd900b2f8245a6e32f67274795fac8a2',
),
'exorus/php-mime-mail-parser' =>
array (
@ -56,12 +56,12 @@
),
'illuminate/contracts' =>
array (
'pretty_version' => 'v8.36.2',
'version' => '8.36.2.0',
'pretty_version' => 'v8.40.0',
'version' => '8.40.0.0',
'aliases' =>
array (
),
'reference' => '5764f703ea8f74ced163125d810951cd5ef2b7e1',
'reference' => '5152041a5c4ac4dbebb3c8ee72d05666c592ae08',
),
'matthiasmullie/minify' =>
array (
@ -99,12 +99,12 @@
),
'nesbot/carbon' =>
array (
'pretty_version' => '2.46.0',
'version' => '2.46.0.0',
'pretty_version' => '2.47.0',
'version' => '2.47.0.0',
'aliases' =>
array (
),
'reference' => '2fd2c4a77d58a4e95234c8a61c5df1f157a91bf4',
'reference' => '606262fd8888b75317ba9461825a24fc34001e1e',
),
'paragonie/random_compat' =>
array (
@ -126,12 +126,12 @@
),
'phpmailer/phpmailer' =>
array (
'pretty_version' => 'v6.4.0',
'version' => '6.4.0.0',
'pretty_version' => 'v6.4.1',
'version' => '6.4.1.0',
'aliases' =>
array (
),
'reference' => '050d430203105c27c30efd1dce7aa421ad882d01',
'reference' => '9256f12d8fb0cd0500f93b19e18c356906cbed3d',
),
'psr/container' =>
array (
@ -144,12 +144,12 @@
),
'psr/log' =>
array (
'pretty_version' => '1.1.3',
'version' => '1.1.3.0',
'pretty_version' => '1.1.4',
'version' => '1.1.4.0',
'aliases' =>
array (
),
'reference' => '0f73288fd15629204f9d42b7055f72dacbe811fc',
'reference' => 'd49695b909c3b7628b6289db5479a1c204601f11',
),
'psr/simple-cache' =>
array (
@ -198,21 +198,21 @@
),
'symfony/translation' =>
array (
'pretty_version' => 'v5.2.6',
'version' => '5.2.6.0',
'pretty_version' => 'v5.2.7',
'version' => '5.2.7.0',
'aliases' =>
array (
),
'reference' => '2cc7f45d96db9adfcf89adf4401d9dfed509f4e1',
'reference' => 'e37ece5242564bceea54d709eafc948377ec9749',
),
'symfony/translation-contracts' =>
array (
'pretty_version' => 'v2.3.0',
'version' => '2.3.0.0',
'pretty_version' => 'v2.4.0',
'version' => '2.4.0.0',
'aliases' =>
array (
),
'reference' => 'e2eaa60b558f26a4b0354e1bbb25636efaaad105',
'reference' => '95c812666f3e91db75385749fe219c5e494c7f95',
),
'symfony/translation-implementation' =>
array (
@ -223,12 +223,12 @@
),
'symfony/var-dumper' =>
array (
'pretty_version' => 'v5.2.6',
'version' => '5.2.6.0',
'pretty_version' => 'v5.2.7',
'version' => '5.2.7.0',
'aliases' =>
array (
),
'reference' => '89412a68ea2e675b4e44f260a5666729f77f668e',
'reference' => '27cb9f7cfa3853c736425c7233a8f68814b19636',
),
'tightenco/collect' =>
array (

View File

@ -1,700 +0,0 @@
# Changelog
## [1.12.0](https://github.com/ddeboer/imap/tree/1.12.0) (2021-04-02)
[Full Changelog](https://github.com/ddeboer/imap/compare/1.11.0...1.12.0)
**Implemented enhancements:**
- Require PHP 7.4 for types attributes [\#496](https://github.com/ddeboer/imap/pull/496) ([Slamdunk](https://github.com/Slamdunk))
- Add x-mac-ce charset as alias for windows-1250 [\#488](https://github.com/ddeboer/imap/pull/488) ([aixkalur](https://github.com/aixkalur))
**Fixed bugs:**
- Cannot decode a content with an uknown encoding [\#491](https://github.com/ddeboer/imap/issues/491)
**Closed issues:**
- Implement copyMove\(\) function [\#494](https://github.com/ddeboer/imap/issues/494)
**Merged pull requests:**
- Implement move with imap\_mail\_copy+CP\_MOVE [\#495](https://github.com/ddeboer/imap/pull/495) ([Slamdunk](https://github.com/Slamdunk))
- Dev tools refactor [\#486](https://github.com/ddeboer/imap/pull/486) ([Slamdunk](https://github.com/Slamdunk))
## [1.11.0](https://github.com/ddeboer/imap/tree/1.11.0) (2020-11-30)
[Full Changelog](https://github.com/ddeboer/imap/compare/1.10.1...1.11.0)
**Implemented enhancements:**
- PHP 8 Compatibility [\#481](https://github.com/ddeboer/imap/issues/481)
- \[GA\] PHP 8 compatibility fix [\#483](https://github.com/ddeboer/imap/pull/483) ([Slamdunk](https://github.com/Slamdunk))
- Support PHP 8.0, require PHP 7.3 [\#482](https://github.com/ddeboer/imap/pull/482) ([Slamdunk](https://github.com/Slamdunk))
**Fixed bugs:**
- Fix: Outlook date format [\#480](https://github.com/ddeboer/imap/pull/480) ([gajosadrian](https://github.com/gajosadrian))
**Closed issues:**
- Closing Connection [\#479](https://github.com/ddeboer/imap/issues/479)
- Problem with charset of message part / DataPartInfo [\#475](https://github.com/ddeboer/imap/issues/475)
- Unsupported charset "X-UNKNOWN" [\#425](https://github.com/ddeboer/imap/issues/425)
## [1.10.1](https://github.com/ddeboer/imap/tree/1.10.1) (2020-08-26)
[Full Changelog](https://github.com/ddeboer/imap/compare/1.10.0...1.10.1)
**Fixed bugs:**
- getThread and getMessageSequence not using with the same id [\#469](https://github.com/ddeboer/imap/issues/469)
- imap\_thread: use absolude ids [\#474](https://github.com/ddeboer/imap/pull/474) ([Slamdunk](https://github.com/Slamdunk))
**Closed issues:**
- How to get a message by Message-ID [\#472](https://github.com/ddeboer/imap/issues/472)
- Mail with e-sign [\#467](https://github.com/ddeboer/imap/issues/467)
- Duplicate method definition in MessageInterface [\#455](https://github.com/ddeboer/imap/issues/455)
- Missed errors in search method [\#444](https://github.com/ddeboer/imap/issues/444)
**Merged pull requests:**
- Subtype not always present [\#473](https://github.com/ddeboer/imap/pull/473) ([Piskvor](https://github.com/Piskvor))
- Improved error handling for message search method [\#445](https://github.com/ddeboer/imap/pull/445) ([ikarol](https://github.com/ikarol))
## [1.10.0](https://github.com/ddeboer/imap/tree/1.10.0) (2020-01-24)
[Full Changelog](https://github.com/ddeboer/imap/compare/1.9.0...1.10.0)
**Implemented enhancements:**
- Handle comments \(CFWS\) in Date header + not-valid formats [\#439](https://github.com/ddeboer/imap/pull/439) ([pupaxxo](https://github.com/pupaxxo))
- Support PHP 7.4, require PHP 7.2 [\#433](https://github.com/ddeboer/imap/pull/433) ([Slamdunk](https://github.com/Slamdunk))
**Closed issues:**
- Invalid Date header when trying to fetching date on not RFC compliant emails [\#438](https://github.com/ddeboer/imap/issues/438)
**Merged pull requests:**
- Clear the last used mailbox cache when closing a connection [\#447](https://github.com/ddeboer/imap/pull/447) ([dhzavann](https://github.com/dhzavann))
- README: update PHP version to match composer.json [\#441](https://github.com/ddeboer/imap/pull/441) ([Slamdunk](https://github.com/Slamdunk))
- Typo [\#440](https://github.com/ddeboer/imap/pull/440) ([OskarStark](https://github.com/OskarStark))
## [1.9.0](https://github.com/ddeboer/imap/tree/1.9.0) (2019-11-25)
[Full Changelog](https://github.com/ddeboer/imap/compare/1.8.0...1.9.0)
**Implemented enhancements:**
- Quota: let's also test the numbers [\#431](https://github.com/ddeboer/imap/pull/431) ([Slamdunk](https://github.com/Slamdunk))
- Add getQuota method using imap\_get\_quotaroot to Connection class [\#430](https://github.com/ddeboer/imap/pull/430) ([arkadiusjonczek](https://github.com/arkadiusjonczek))
**Closed issues:**
- markAsSeen\(\) not work [\#415](https://github.com/ddeboer/imap/issues/415)
**Merged pull requests:**
- CS Fix: strip redundant php docs [\#428](https://github.com/ddeboer/imap/pull/428) ([Slamdunk](https://github.com/Slamdunk))
- Fix: Variable name [\#412](https://github.com/ddeboer/imap/pull/412) ([localheinz](https://github.com/localheinz))
## [1.8.0](https://github.com/ddeboer/imap/tree/1.8.0) (2019-04-15)
[Full Changelog](https://github.com/ddeboer/imap/compare/1.7.2...1.8.0)
**Implemented enhancements:**
- Add phpstan-strict-rules, expose PartiInterface::getDescription\(\) [\#409](https://github.com/ddeboer/imap/pull/409) ([Slamdunk](https://github.com/Slamdunk))
## [1.7.2](https://github.com/ddeboer/imap/tree/1.7.2) (2019-04-12)
[Full Changelog](https://github.com/ddeboer/imap/compare/1.7.1...1.7.2)
**Fixed bugs:**
- Handle message/rfc822 when content-disposition is missing [\#410](https://github.com/ddeboer/imap/pull/410) ([Daredzik](https://github.com/Daredzik))
## [1.7.1](https://github.com/ddeboer/imap/tree/1.7.1) (2019-03-18)
[Full Changelog](https://github.com/ddeboer/imap/compare/1.7.0...1.7.1)
**Fixed bugs:**
- Encoding problem with 1.7 [\#405](https://github.com/ddeboer/imap/issues/405)
- imap\_search/imap\_sort: default params must not be passed if unspecified [\#406](https://github.com/ddeboer/imap/pull/406) ([Slamdunk](https://github.com/Slamdunk))
## [1.7.0](https://github.com/ddeboer/imap/tree/1.7.0) (2019-03-04)
[Full Changelog](https://github.com/ddeboer/imap/compare/1.6.0...1.7.0)
**Implemented enhancements:**
- Docker and Travis differs in handling new message eols [\#404](https://github.com/ddeboer/imap/pull/404) ([Slamdunk](https://github.com/Slamdunk))
- Update PHP-CS-Fixer rules [\#403](https://github.com/ddeboer/imap/pull/403) ([Slamdunk](https://github.com/Slamdunk))
- Add charset for imap\_search or imap\_sort [\#402](https://github.com/ddeboer/imap/pull/402) ([Slamdunk](https://github.com/Slamdunk))
- PHPStan clean ups [\#400](https://github.com/ddeboer/imap/pull/400) ([Slamdunk](https://github.com/Slamdunk))
- Adding an undelete\(\) message method [\#386](https://github.com/ddeboer/imap/pull/386) ([C-Duv](https://github.com/C-Duv))
**Closed issues:**
- Convert from GBK \(X-GBK\) to UTF-8 Issue [\#395](https://github.com/ddeboer/imap/issues/395)
**Merged pull requests:**
- Add new ResourceCheckFailureException to handle imap\_check\(\) false [\#399](https://github.com/ddeboer/imap/pull/399) ([pyatnitsev](https://github.com/pyatnitsev))
- Remove GBK -\> X-GBK Alias and add X-GBK -\> GBK [\#396](https://github.com/ddeboer/imap/pull/396) ([pyatnitsev](https://github.com/pyatnitsev))
- Add Feature Requests to README.md [\#394](https://github.com/ddeboer/imap/pull/394) ([Slamdunk](https://github.com/Slamdunk))
## [1.6.0](https://github.com/ddeboer/imap/tree/1.6.0) (2018-12-04)
[Full Changelog](https://github.com/ddeboer/imap/compare/1.5.5...1.6.0)
**Implemented enhancements:**
- Require PHP ^7.1 [\#257](https://github.com/ddeboer/imap/issues/257)
- Require PHP ^7.1 [\#383](https://github.com/ddeboer/imap/pull/383) ([Slamdunk](https://github.com/Slamdunk))
- Add ability to pass options and retries to imap\_open [\#382](https://github.com/ddeboer/imap/pull/382) ([Slamdunk](https://github.com/Slamdunk))
- Docker setup for running tests [\#374](https://github.com/ddeboer/imap/pull/374) ([LeadTechVisas](https://github.com/LeadTechVisas))
- Get messages by UID sequence [\#373](https://github.com/ddeboer/imap/pull/373) ([LeadTechVisas](https://github.com/LeadTechVisas))
**Fixed bugs:**
- Undeliverable mail: attachment parsing error [\#334](https://github.com/ddeboer/imap/issues/334)
- imap\_getmailboxes returns false; [\#134](https://github.com/ddeboer/imap/issues/134)
- Fix mailbox name as only numbers [\#381](https://github.com/ddeboer/imap/pull/381) ([Slamdunk](https://github.com/Slamdunk))
- Gracefully handle possible non-array return value of imap\_getmailboxes [\#372](https://github.com/ddeboer/imap/pull/372) ([Slamdunk](https://github.com/Slamdunk))
**Closed issues:**
- \[AUTHENTICATIONFAILED\] Authentication failed - Too many login failures [\#368](https://github.com/ddeboer/imap/issues/368)
- last folder in list [\#353](https://github.com/ddeboer/imap/issues/353)
- Caching IMAP server connections [\#88](https://github.com/ddeboer/imap/issues/88)
## [1.5.5](https://github.com/ddeboer/imap/tree/1.5.5) (2018-08-21)
[Full Changelog](https://github.com/ddeboer/imap/compare/1.5.4...1.5.5)
**Fixed bugs:**
- Plain text attachments are not identified as Attachment parts [\#341](https://github.com/ddeboer/imap/issues/341)
- Handle plain/text attachments without Content-Type header [\#367](https://github.com/ddeboer/imap/pull/367) ([Slamdunk](https://github.com/Slamdunk))
## [1.5.4](https://github.com/ddeboer/imap/tree/1.5.4) (2018-08-19)
[Full Changelog](https://github.com/ddeboer/imap/compare/1.5.3...1.5.4)
**Fixed bugs:**
- Very long filename, result of getFilename\(\) = NULL? [\#365](https://github.com/ddeboer/imap/issues/365)
- Support RFC2231 attachment filenames [\#366](https://github.com/ddeboer/imap/pull/366) ([Slamdunk](https://github.com/Slamdunk))
## [1.5.3](https://github.com/ddeboer/imap/tree/1.5.3) (2018-07-20)
[Full Changelog](https://github.com/ddeboer/imap/compare/1.5.2...1.5.3)
**Fixed bugs:**
- Dates: handle UT timezone [\#361](https://github.com/ddeboer/imap/pull/361) ([Slamdunk](https://github.com/Slamdunk))
## [1.5.2](https://github.com/ddeboer/imap/tree/1.5.2) (2018-07-10)
[Full Changelog](https://github.com/ddeboer/imap/compare/1.5.1...1.5.2)
**Fixed bugs:**
- Fails to load Message Headers [\#358](https://github.com/ddeboer/imap/issues/358)
- Handle invalid headers [\#359](https://github.com/ddeboer/imap/pull/359) ([Slamdunk](https://github.com/Slamdunk))
## [1.5.1](https://github.com/ddeboer/imap/tree/1.5.1) (2018-05-04)
[Full Changelog](https://github.com/ddeboer/imap/compare/1.5.0...1.5.1)
**Fixed bugs:**
- getContent\(\) method returns wrong content part [\#342](https://github.com/ddeboer/imap/issues/342)
- Fix handle of attachment messages with attachments [\#343](https://github.com/ddeboer/imap/pull/343) ([Slamdunk](https://github.com/Slamdunk))
## [1.5.0](https://github.com/ddeboer/imap/tree/1.5.0) (2018-03-26)
[Full Changelog](https://github.com/ddeboer/imap/compare/1.4.1...1.5.0)
**Implemented enhancements:**
- ImapResource: cache last opened mailbox [\#328](https://github.com/ddeboer/imap/pull/328) ([Slamdunk](https://github.com/Slamdunk))
**Fixed bugs:**
- AbstractPart::isAttachment\(\) handle unknown part type [\#302](https://github.com/ddeboer/imap/pull/302) ([Slamdunk](https://github.com/Slamdunk))
## [1.4.1](https://github.com/ddeboer/imap/tree/1.4.1) (2018-03-22)
[Full Changelog](https://github.com/ddeboer/imap/compare/1.4.0...1.4.1)
**Fixed bugs:**
- Return value of Ddeboer\\Imap\\Message\\AbstractPart::getDecodedContent\(\) must be of the type string, boolean returned [\#284](https://github.com/ddeboer/imap/issues/284)
- base64\_decode may return false in PHP \< 7.1 [\#324](https://github.com/ddeboer/imap/pull/324) ([Slamdunk](https://github.com/Slamdunk))
**Merged pull requests:**
- Add entry in README about Mailbox::addMessage [\#325](https://github.com/ddeboer/imap/pull/325) ([soywod](https://github.com/soywod))
## [1.4.0](https://github.com/ddeboer/imap/tree/1.4.0) (2018-03-19)
[Full Changelog](https://github.com/ddeboer/imap/compare/1.3.1...1.4.0)
**Implemented enhancements:**
- Lazy load Message [\#320](https://github.com/ddeboer/imap/pull/320) ([Slamdunk](https://github.com/Slamdunk))
**Fixed bugs:**
- Invalid argument supplied for foreach\(\) in Parameters.php line 52 [\#317](https://github.com/ddeboer/imap/issues/317)
- Message "11964" does not exist: imap\_fetchstructure\(\): Bad message number [\#310](https://github.com/ddeboer/imap/issues/310)
- imap\_mime\_header\_decode may return false [\#322](https://github.com/ddeboer/imap/pull/322) ([Slamdunk](https://github.com/Slamdunk))
## [1.3.1](https://github.com/ddeboer/imap/tree/1.3.1) (2018-03-09)
[Full Changelog](https://github.com/ddeboer/imap/compare/1.3.0...1.3.1)
**Implemented enhancements:**
- Allow empty port [\#312](https://github.com/ddeboer/imap/pull/312) ([Slamdunk](https://github.com/Slamdunk))
**Closed issues:**
- getServerString\(\) with no port [\#311](https://github.com/ddeboer/imap/issues/311)
## [1.3.0](https://github.com/ddeboer/imap/tree/1.3.0) (2018-02-28)
[Full Changelog](https://github.com/ddeboer/imap/compare/1.2.3...1.3.0)
**Implemented enhancements:**
- Implement bulk-move [\#306](https://github.com/ddeboer/imap/pull/306) ([particleflux](https://github.com/particleflux))
**Closed issues:**
- feature: Bulk move [\#305](https://github.com/ddeboer/imap/issues/305)
**Merged pull requests:**
- README.md: add `Unknown search criterion: OR` note [\#304](https://github.com/ddeboer/imap/pull/304) ([Slamdunk](https://github.com/Slamdunk))
## [1.2.3](https://github.com/ddeboer/imap/tree/1.2.3) (2018-02-09)
[Full Changelog](https://github.com/ddeboer/imap/compare/1.2.2...1.2.3)
**Fixed bugs:**
- $part-\>type can be 9 [\#301](https://github.com/ddeboer/imap/issues/301)
**Merged pull requests:**
- README.md: code-coverage has higher priority than Scrutinizer [\#300](https://github.com/ddeboer/imap/pull/300) ([Slamdunk](https://github.com/Slamdunk))
## [1.2.2](https://github.com/ddeboer/imap/tree/1.2.2) (2018-02-05)
[Full Changelog](https://github.com/ddeboer/imap/compare/1.2.1...1.2.2)
**Implemented enhancements:**
- Allow PHPUnit ^7.0 [\#296](https://github.com/ddeboer/imap/pull/296) ([Slamdunk](https://github.com/Slamdunk))
**Fixed bugs:**
- Attachment-\>getFilename return null [\#297](https://github.com/ddeboer/imap/issues/297)
- Don't handle multiplart as an attachment [\#298](https://github.com/ddeboer/imap/pull/298) ([Slamdunk](https://github.com/Slamdunk))
## [1.2.1](https://github.com/ddeboer/imap/tree/1.2.1) (2018-01-29)
[Full Changelog](https://github.com/ddeboer/imap/compare/1.2.0...1.2.1)
**Implemented enhancements:**
- Introduce strict comparison [\#289](https://github.com/ddeboer/imap/pull/289) ([Slamdunk](https://github.com/Slamdunk))
**Fixed bugs:**
- Invalid Date header found: "Thur, 04 Jan 2018 06:44:23 +0400" [\#293](https://github.com/ddeboer/imap/issues/293)
- MessageIterator::current\(\) fails when there are no messages [\#288](https://github.com/ddeboer/imap/issues/288)
- Remove weekday while parsing date header [\#294](https://github.com/ddeboer/imap/pull/294) ([Slamdunk](https://github.com/Slamdunk))
- MessageIterator: forbid raw calls [\#290](https://github.com/ddeboer/imap/pull/290) ([Slamdunk](https://github.com/Slamdunk))
## [1.2.0](https://github.com/ddeboer/imap/tree/1.2.0) (2018-01-15)
[Full Changelog](https://github.com/ddeboer/imap/compare/1.1.2...1.2.0)
**Implemented enhancements:**
- Make imap\_append\(\) optional arguments reachable [\#280](https://github.com/ddeboer/imap/pull/280) ([Slamdunk](https://github.com/Slamdunk))
- PHPStan: introduce static analysis [\#276](https://github.com/ddeboer/imap/pull/276) ([Slamdunk](https://github.com/Slamdunk))
**Fixed bugs:**
- getAttachments\(\) problem when mixin inline and attachment [\#281](https://github.com/ddeboer/imap/issues/281)
- UnexpectedEncodingException: Cannot decode "5" [\#278](https://github.com/ddeboer/imap/issues/278)
- Handle correctly multiple nested attachments [\#283](https://github.com/ddeboer/imap/pull/283) ([Slamdunk](https://github.com/Slamdunk))
- Manageable UnexpectedEncodingException [\#282](https://github.com/ddeboer/imap/pull/282) ([Slamdunk](https://github.com/Slamdunk))
**Closed issues:**
- Appending mail with options [\#279](https://github.com/ddeboer/imap/issues/279)
## [1.1.2](https://github.com/ddeboer/imap/tree/1.1.2) (2017-12-12)
[Full Changelog](https://github.com/ddeboer/imap/compare/1.1.1...1.1.2)
**Fixed bugs:**
- Unsupported charset "134": mb\_convert\_encoding\(\): Illegal character encoding specified [\#270](https://github.com/ddeboer/imap/issues/270)
- Support Microsoft charset values [\#271](https://github.com/ddeboer/imap/pull/271) ([Slamdunk](https://github.com/Slamdunk))
## [1.1.1](https://github.com/ddeboer/imap/tree/1.1.1) (2017-11-10)
[Full Changelog](https://github.com/ddeboer/imap/compare/1.1.0...1.1.1)
**Implemented enhancements:**
- Transcoder: expand charset aliases list [\#267](https://github.com/ddeboer/imap/pull/267) ([Slamdunk](https://github.com/Slamdunk))
**Fixed bugs:**
- Charset aliases: fix to lowercase search [\#266](https://github.com/ddeboer/imap/pull/266) ([Slamdunk](https://github.com/Slamdunk))
**Merged pull requests:**
- README.md: add timeout note [\#263](https://github.com/ddeboer/imap/pull/263) ([Slamdunk](https://github.com/Slamdunk))
## [1.1.0](https://github.com/ddeboer/imap/tree/1.1.0) (2017-11-06)
[Full Changelog](https://github.com/ddeboer/imap/compare/1.0.8...1.1.0)
**Implemented enhancements:**
- Deprecate MessageInterface::maskAsSeen\(\) in favour of MessageInterface::markAsSeen\(\) [\#255](https://github.com/ddeboer/imap/pull/255) ([Slamdunk](https://github.com/Slamdunk))
- Lazy load structured Headers [\#250](https://github.com/ddeboer/imap/pull/250) ([Slamdunk](https://github.com/Slamdunk))
- Implement imap\_thread [\#249](https://github.com/ddeboer/imap/pull/249) ([Slamdunk](https://github.com/Slamdunk))
- Require ext-iconv [\#248](https://github.com/ddeboer/imap/pull/248) ([Slamdunk](https://github.com/Slamdunk))
- Message Part: expose $partNumber [\#244](https://github.com/ddeboer/imap/pull/244) ([wujku](https://github.com/wujku))
- Add Mockability helpers and documentation [\#236](https://github.com/ddeboer/imap/pull/236) ([Slamdunk](https://github.com/Slamdunk))
- Add missing interface change for \#225 [\#233](https://github.com/ddeboer/imap/pull/233) ([Slamdunk](https://github.com/Slamdunk))
- Connection: check if the connection is still active with `imap\_ping` [\#232](https://github.com/ddeboer/imap/pull/232) ([wujku](https://github.com/wujku))
- Message: add `References` and `In-Reply-To` headers shortcuts [\#230](https://github.com/ddeboer/imap/pull/230) ([wujku](https://github.com/wujku))
- Added bulk set / clear flags functionality for mailbox messages [\#225](https://github.com/ddeboer/imap/pull/225) ([wujku](https://github.com/wujku))
**Merged pull requests:**
- make docs more obvious [\#252](https://github.com/ddeboer/imap/pull/252) ([lgg](https://github.com/lgg))
- README.md: add Table of Contents with Travis checker [\#234](https://github.com/ddeboer/imap/pull/234) ([Slamdunk](https://github.com/Slamdunk))
## [1.0.8](https://github.com/ddeboer/imap/tree/1.0.8) (2017-10-27)
[Full Changelog](https://github.com/ddeboer/imap/compare/1.0.7...1.0.8)
**Implemented enhancements:**
- Headers: no catchable exception [\#246](https://github.com/ddeboer/imap/issues/246)
- imap\_thread [\#113](https://github.com/ddeboer/imap/issues/113)
**Fixed bugs:**
- \[TypeError\] Return value of Ddeboer\Imap\Message\AbstractMessage::getId\(\) must be of the type string, null returned [\#253](https://github.com/ddeboer/imap/issues/253)
- BasicMessageInterface::getId\(\) can be null [\#254](https://github.com/ddeboer/imap/pull/254) ([Slamdunk](https://github.com/Slamdunk))
## [1.0.7](https://github.com/ddeboer/imap/tree/1.0.7) (2017-10-16)
[Full Changelog](https://github.com/ddeboer/imap/compare/1.0.6...1.0.7)
**Fixed bugs:**
- Problem with a IMAP resource stream [\#245](https://github.com/ddeboer/imap/issues/245)
- IMAP resource must be checked at every call for mailbox context [\#247](https://github.com/ddeboer/imap/pull/247) ([Slamdunk](https://github.com/Slamdunk))
## [1.0.6](https://github.com/ddeboer/imap/tree/1.0.6) (2017-10-12)
[Full Changelog](https://github.com/ddeboer/imap/compare/1.0.5...1.0.6)
**Fixed bugs:**
- \[TypeError\] Return value of AbstractMessage::getFrom\(\) must be an instance of EmailAddress, null returned [\#241](https://github.com/ddeboer/imap/issues/241)
- Message: Date header can be absent [\#243](https://github.com/ddeboer/imap/pull/243) ([Slamdunk](https://github.com/Slamdunk))
- Message: From header can be absent [\#242](https://github.com/ddeboer/imap/pull/242) ([Slamdunk](https://github.com/Slamdunk))
## [1.0.5](https://github.com/ddeboer/imap/tree/1.0.5) (2017-10-12)
[Full Changelog](https://github.com/ddeboer/imap/compare/1.0.4...1.0.5)
**Fixed bugs:**
- Use set\_error\_handler with late exception [\#240](https://github.com/ddeboer/imap/pull/240) ([Slamdunk](https://github.com/Slamdunk))
## [1.0.4](https://github.com/ddeboer/imap/tree/1.0.4) (2017-10-11)
[Full Changelog](https://github.com/ddeboer/imap/compare/1.0.3...1.0.4)
**Implemented enhancements:**
- Avoid \(set|restor\)\_error\_handler [\#239](https://github.com/ddeboer/imap/pull/239) ([Slamdunk](https://github.com/Slamdunk))
**Fixed bugs:**
- Current Transcoder class does not support all charsets. [\#237](https://github.com/ddeboer/imap/issues/237)
- Relay also iconv during decoding [\#238](https://github.com/ddeboer/imap/pull/238) ([Slamdunk](https://github.com/Slamdunk))
## [1.0.3](https://github.com/ddeboer/imap/tree/1.0.3) (2017-10-11)
[Full Changelog](https://github.com/ddeboer/imap/compare/1.0.2...1.0.3)
**Fixed bugs:**
- Attachment::getFilename\(\) may be null on inline-att, widen return type [\#235](https://github.com/ddeboer/imap/pull/235) ([wujku](https://github.com/wujku))
## [1.0.2](https://github.com/ddeboer/imap/tree/1.0.2) (2017-10-06)
[Full Changelog](https://github.com/ddeboer/imap/compare/1.0.1...1.0.2)
**Fixed bugs:**
- Issue with saving XML attachments [\#228](https://github.com/ddeboer/imap/issues/228)
- Do not charset-decode attachments [\#231](https://github.com/ddeboer/imap/pull/231) ([Slamdunk](https://github.com/Slamdunk))
## [1.0.1](https://github.com/ddeboer/imap/tree/1.0.1) (2017-10-05)
[Full Changelog](https://github.com/ddeboer/imap/compare/1.0.0...1.0.1)
**Fixed bugs:**
- Error with attachment charset [\#226](https://github.com/ddeboer/imap/issues/226)
- If charset is not specified defaults to "us-ascii" [\#227](https://github.com/ddeboer/imap/pull/227) ([Slamdunk](https://github.com/Slamdunk))
## [1.0.0](https://github.com/ddeboer/imap/tree/1.0.0) (2017-10-04)
[Full Changelog](https://github.com/ddeboer/imap/compare/0.5.2...1.0.0)
**Implemented enhancements:**
- Need getAll for headers [\#200](https://github.com/ddeboer/imap/issues/200)
- Tests: implement @covers to avoid false positive on code-coverage [\#188](https://github.com/ddeboer/imap/issues/188)
- Remove commented code [\#174](https://github.com/ddeboer/imap/issues/174)
- Regex in SearchExpressions [\#157](https://github.com/ddeboer/imap/issues/157)
- How do I get unread messages count? [\#98](https://github.com/ddeboer/imap/issues/98)
- Add mocking ability through Interfaces [\#221](https://github.com/ddeboer/imap/pull/221) ([Slamdunk](https://github.com/Slamdunk))
- Wrap imap resource to periodically check its status [\#220](https://github.com/ddeboer/imap/pull/220) ([Slamdunk](https://github.com/Slamdunk))
- Add more coding-standard rules [\#218](https://github.com/ddeboer/imap/pull/218) ([Slamdunk](https://github.com/Slamdunk))
- Always keep unseen: remove keepUnseen, add markAsSeen [\#217](https://github.com/ddeboer/imap/pull/217) ([Slamdunk](https://github.com/Slamdunk))
- Embedded messages: refactor \#106 [\#216](https://github.com/ddeboer/imap/pull/216) ([Slamdunk](https://github.com/Slamdunk))
- Headers now extends \ArrayIterator [\#215](https://github.com/ddeboer/imap/pull/215) ([Slamdunk](https://github.com/Slamdunk))
- Implement imap\_mail\_copy [\#214](https://github.com/ddeboer/imap/pull/214) ([Slamdunk](https://github.com/Slamdunk))
- Imap sort [\#213](https://github.com/ddeboer/imap/pull/213) ([Slamdunk](https://github.com/Slamdunk))
- Increased code-coverage [\#211](https://github.com/ddeboer/imap/pull/211) ([Slamdunk](https://github.com/Slamdunk))
- Update to PHPUnit ^6.2 [\#209](https://github.com/ddeboer/imap/pull/209) ([Slamdunk](https://github.com/Slamdunk))
- Use specific exceptions to ease user catches [\#208](https://github.com/ddeboer/imap/pull/208) ([Slamdunk](https://github.com/Slamdunk))
- Wrap Exception on invalid Date header [\#205](https://github.com/ddeboer/imap/pull/205) ([Slamdunk](https://github.com/Slamdunk))
- Add tests for \#144 set flags functionalities [\#203](https://github.com/ddeboer/imap/pull/203) ([Slamdunk](https://github.com/Slamdunk))
- Add imap\_fetchheader\(\) functionality to get raw headers [\#202](https://github.com/ddeboer/imap/pull/202) ([Slamdunk](https://github.com/Slamdunk))
- Parse all email type headers [\#199](https://github.com/ddeboer/imap/pull/199) ([Slamdunk](https://github.com/Slamdunk))
- Test search conditions [\#198](https://github.com/ddeboer/imap/pull/198) ([Slamdunk](https://github.com/Slamdunk))
- Mailbox: get status [\#192](https://github.com/ddeboer/imap/pull/192) ([Slamdunk](https://github.com/Slamdunk))
- SearchExpression is a Search\ConditionInterface [\#191](https://github.com/ddeboer/imap/pull/191) ([Slamdunk](https://github.com/Slamdunk))
- SearchCondition: \_\_toString\(\) -\> toString\(\) [\#187](https://github.com/ddeboer/imap/pull/187) ([Slamdunk](https://github.com/Slamdunk))
- Retain imap\_getmailboxes\(\) results [\#184](https://github.com/ddeboer/imap/pull/184) ([Slamdunk](https://github.com/Slamdunk))
- Add type hints and return types [\#183](https://github.com/ddeboer/imap/pull/183) ([Slamdunk](https://github.com/Slamdunk))
- Exception: increase verbosity with imap\_alerts\(\) and imap\_errors\(\) [\#182](https://github.com/ddeboer/imap/pull/182) ([Slamdunk](https://github.com/Slamdunk))
- Add coding-standards [\#181](https://github.com/ddeboer/imap/pull/181) ([Slamdunk](https://github.com/Slamdunk))
- Travis: re-enable code-coverage on scrutinizer [\#177](https://github.com/ddeboer/imap/pull/177) ([Slamdunk](https://github.com/Slamdunk))
- Add .gitattributes to remove from releases unneded files [\#173](https://github.com/ddeboer/imap/pull/173) ([Slamdunk](https://github.com/Slamdunk))
- Travis: use local Dovecot installation [\#170](https://github.com/ddeboer/imap/pull/170) ([Slamdunk](https://github.com/Slamdunk))
- Need all Headers in string format [\#149](https://github.com/ddeboer/imap/pull/149) ([FlashWS](https://github.com/FlashWS))
- Get raw mail [\#146](https://github.com/ddeboer/imap/pull/146) ([styxit](https://github.com/styxit))
- add getBcc\(\), Set, Clear Flag\(\Seen, \Answered, \Flagged, \Deleted, and \Draft\), getHeadersRaw\(\) [\#144](https://github.com/ddeboer/imap/pull/144) ([trungpv93](https://github.com/trungpv93))
**Fixed bugs:**
- Search\Condition needs charset escaping/indication [\#190](https://github.com/ddeboer/imap/issues/190)
- imap\_utf7\_\(encode|decode\) -\> mb\_convert\_encoding [\#185](https://github.com/ddeboer/imap/issues/185)
- España [\#176](https://github.com/ddeboer/imap/issues/176)
- getHeaders\(\) decode broke information [\#171](https://github.com/ddeboer/imap/issues/171)
- Date format for date search condition [\#168](https://github.com/ddeboer/imap/issues/168)
- Error when trying fetch messages from container [\#167](https://github.com/ddeboer/imap/issues/167)
- Attachment encoding error [\#158](https://github.com/ddeboer/imap/issues/158)
- getFilename\(\) is empty and no attachment, even when there is an attachment. [\#142](https://github.com/ddeboer/imap/issues/142)
- Encoding issues [\#136](https://github.com/ddeboer/imap/issues/136)
- URGENT: The timezone could not be found in the database [\#135](https://github.com/ddeboer/imap/issues/135)
- Incorrect transcoding of text attachments [\#132](https://github.com/ddeboer/imap/issues/132)
- Undefined offset [\#123](https://github.com/ddeboer/imap/issues/123)
- ICS file not supported as attachment [\#120](https://github.com/ddeboer/imap/issues/120)
- Should iconv be a requirement? [\#115](https://github.com/ddeboer/imap/issues/115)
- KeepUnseen doen't work [\#92](https://github.com/ddeboer/imap/issues/92)
- PHP Fatal error Failed to parse time string in ddeboer/imap/src/Message.php [\#89](https://github.com/ddeboer/imap/issues/89)
- encoding issue [\#85](https://github.com/ddeboer/imap/issues/85)
- keepUnseen not working correctly with Hotmail [\#84](https://github.com/ddeboer/imap/issues/84)
- Iconv Exception [\#78](https://github.com/ddeboer/imap/issues/78)
- $message-\>getAttachments\(\) doesn't recognize some attachments [\#74](https://github.com/ddeboer/imap/issues/74)
- Message::move\(\) doesn't work. [\#73](https://github.com/ddeboer/imap/issues/73)
- Message\Part: part number must distinguish original message [\#223](https://github.com/ddeboer/imap/pull/223) ([Slamdunk](https://github.com/Slamdunk))
- Recursive Embedded email body bug [\#222](https://github.com/ddeboer/imap/pull/222) ([Slamdunk](https://github.com/Slamdunk))
- Exclude HTML from allowed attachment subtype [\#212](https://github.com/ddeboer/imap/pull/212) ([Slamdunk](https://github.com/Slamdunk))
- Fix imap\_mail\_move behaviour and test it [\#207](https://github.com/ddeboer/imap/pull/207) ([Slamdunk](https://github.com/Slamdunk))
- Undefined encoding: throw exception [\#197](https://github.com/ddeboer/imap/pull/197) ([Slamdunk](https://github.com/Slamdunk))
- Message charset: mb\_convert\_encoding + aliases [\#196](https://github.com/ddeboer/imap/pull/196) ([Slamdunk](https://github.com/Slamdunk))
- Mailbox: only UTF-8 names [\#193](https://github.com/ddeboer/imap/pull/193) ([Slamdunk](https://github.com/Slamdunk))
- Search\Date\AbstractDate: fix format to RFC-3501 [\#189](https://github.com/ddeboer/imap/pull/189) ([Slamdunk](https://github.com/Slamdunk))
- Travis: fix failing tests [\#172](https://github.com/ddeboer/imap/pull/172) ([Slamdunk](https://github.com/Slamdunk))
- Return body of single-part HTML message as HTML, not text [\#101](https://github.com/ddeboer/imap/pull/101) ([joker806](https://github.com/joker806))
- Implement "undisclosed recipients" addresses [\#86](https://github.com/ddeboer/imap/pull/86) ([darit](https://github.com/darit))
**Closed issues:**
- Potential memory issue with attachments [\#195](https://github.com/ddeboer/imap/issues/195)
- Explain Message::delete [\#175](https://github.com/ddeboer/imap/issues/175)
- Get raw message [\#161](https://github.com/ddeboer/imap/issues/161)
- Composer install problem [\#160](https://github.com/ddeboer/imap/issues/160)
- Transcoder not exist [\#154](https://github.com/ddeboer/imap/issues/154)
- The library doesn't support using sort by [\#151](https://github.com/ddeboer/imap/issues/151)
- Office 365 - Array to string conversion error [\#131](https://github.com/ddeboer/imap/issues/131)
- Is there a method to turn a seen message into an "unseen" one ? [\#130](https://github.com/ddeboer/imap/issues/130)
- Create mailbox [\#126](https://github.com/ddeboer/imap/issues/126)
- Move and Delete Message not working [\#112](https://github.com/ddeboer/imap/issues/112)
- Problem on production server [\#111](https://github.com/ddeboer/imap/issues/111)
- Authentication failed for a Gmail account [\#109](https://github.com/ddeboer/imap/issues/109)
- A method to run IMAP commands? [\#83](https://github.com/ddeboer/imap/issues/83)
**Merged pull requests:**
- Update README.md to latest develop changes [\#224](https://github.com/ddeboer/imap/pull/224) ([Slamdunk](https://github.com/Slamdunk))
- Add Filippo Tessarotto as an author of the package [\#219](https://github.com/ddeboer/imap/pull/219) ([Slamdunk](https://github.com/Slamdunk))
- README.md: call Connection::expunge after move and delete [\#210](https://github.com/ddeboer/imap/pull/210) ([Slamdunk](https://github.com/Slamdunk))
- Remove misleading Mailbox::expunge\(\) [\#206](https://github.com/ddeboer/imap/pull/206) ([Slamdunk](https://github.com/Slamdunk))
- Add CHANGELOG.md [\#194](https://github.com/ddeboer/imap/pull/194) ([Slamdunk](https://github.com/Slamdunk))
- README.md updates [\#178](https://github.com/ddeboer/imap/pull/178) ([Slamdunk](https://github.com/Slamdunk))
## [0.5.2](https://github.com/ddeboer/imap/tree/0.5.2) (2015-12-03)
[Full Changelog](https://github.com/ddeboer/imap/compare/0.5.1...0.5.2)
**Closed issues:**
- $message-\>getAttachments\(\) returns null if message has no attachments [\#80](https://github.com/ddeboer/imap/issues/80)
- Email objects visibility [\#76](https://github.com/ddeboer/imap/issues/76)
**Merged pull requests:**
- Fixed the keepUnseen method [\#95](https://github.com/ddeboer/imap/pull/95) ([aeyoll](https://github.com/aeyoll))
- Mark Mailbox as countable, fix doc comments [\#91](https://github.com/ddeboer/imap/pull/91) ([krzysiekpiasecki](https://github.com/krzysiekpiasecki))
- Message::getAttachments confirm to signature [\#82](https://github.com/ddeboer/imap/pull/82) ([boekkooi](https://github.com/boekkooi))
- Added hasMailbox to Connection [\#81](https://github.com/ddeboer/imap/pull/81) ([boekkooi](https://github.com/boekkooi))
- Make sure imap connection are reopened [\#79](https://github.com/ddeboer/imap/pull/79) ([joserobleda](https://github.com/joserobleda))
## [0.5.1](https://github.com/ddeboer/imap/tree/0.5.1) (2015-02-01)
[Full Changelog](https://github.com/ddeboer/imap/compare/0.5.0...0.5.1)
**Closed issues:**
- imap\_open error [\#72](https://github.com/ddeboer/imap/issues/72)
- $message-\>getAttachments\(\) does not return anything, even though a message has at least one attachment [\#71](https://github.com/ddeboer/imap/issues/71)
- Prepare docs for 1.0 [\#69](https://github.com/ddeboer/imap/issues/69)
- "date" header is not reliable [\#63](https://github.com/ddeboer/imap/issues/63)
- File Attachments don't show up [\#55](https://github.com/ddeboer/imap/issues/55)
**Merged pull requests:**
- Add support for attachments without content disposition [\#70](https://github.com/ddeboer/imap/pull/70) ([ddeboer](https://github.com/ddeboer))
## [0.5.0](https://github.com/ddeboer/imap/tree/0.5.0) (2015-01-24)
[Full Changelog](https://github.com/ddeboer/imap/compare/0.4.0...0.5.0)
**Closed issues:**
- Use utf8\_encode\(\) function to encode content [\#66](https://github.com/ddeboer/imap/issues/66)
- Please add function order by date [\#59](https://github.com/ddeboer/imap/issues/59)
- mb\_convert\_encoding breaks code [\#57](https://github.com/ddeboer/imap/issues/57)
- How get I getMessages but newest first ... [\#11](https://github.com/ddeboer/imap/issues/11)
## [0.4.0](https://github.com/ddeboer/imap/tree/0.4.0) (2015-01-04)
[Full Changelog](https://github.com/ddeboer/imap/compare/0.3.1...0.4.0)
**Closed issues:**
- Please add 6th parameter to imap\_open call [\#62](https://github.com/ddeboer/imap/issues/62)
- Should Message::delete\(\) use the Message UID? [\#46](https://github.com/ddeboer/imap/issues/46)
- mb\_convert\_encoding\(\): Illegal character encoding specified [\#35](https://github.com/ddeboer/imap/issues/35)
- Deleting a message isn't working [\#30](https://github.com/ddeboer/imap/issues/30)
- imap\_header doesn't work with message uid [\#26](https://github.com/ddeboer/imap/issues/26)
**Merged pull requests:**
- Added basic requirement [\#61](https://github.com/ddeboer/imap/pull/61) ([nikoskip](https://github.com/nikoskip))
- FIX: PHP error: "Cannot declare class Ddeboer\Imap\Search\Text\Text ..." [\#58](https://github.com/ddeboer/imap/pull/58) ([racztiborzoltan](https://github.com/racztiborzoltan))
- Message::delete sets the FT\_UID flag. Fixes \#30 Fixes \#46 [\#54](https://github.com/ddeboer/imap/pull/54) ([ctalbot](https://github.com/ctalbot))
- Allow binary-encoded part content [\#48](https://github.com/ddeboer/imap/pull/48) ([joker806](https://github.com/joker806))
- Fix CS [\#47](https://github.com/ddeboer/imap/pull/47) ([xelan](https://github.com/xelan))
- fixed typo [\#45](https://github.com/ddeboer/imap/pull/45) ([xelan](https://github.com/xelan))
## [0.3.1](https://github.com/ddeboer/imap/tree/0.3.1) (2014-08-11)
[Full Changelog](https://github.com/ddeboer/imap/compare/0.3.0...0.3.1)
**Merged pull requests:**
- \imap\_header dosen't work with UID [\#44](https://github.com/ddeboer/imap/pull/44) ([ysramirez](https://github.com/ysramirez))
## [0.3.0](https://github.com/ddeboer/imap/tree/0.3.0) (2014-08-10)
[Full Changelog](https://github.com/ddeboer/imap/compare/0.2...0.3.0)
**Closed issues:**
- please remove useless wiki [\#42](https://github.com/ddeboer/imap/issues/42)
- Travis tests allways fail? [\#40](https://github.com/ddeboer/imap/issues/40)
- Garbled e-mail body encoding [\#27](https://github.com/ddeboer/imap/issues/27)
- Improve docs [\#25](https://github.com/ddeboer/imap/issues/25)
- "undisclosed-recipients" throws error [\#23](https://github.com/ddeboer/imap/issues/23)
**Merged pull requests:**
- correct minor typo [\#43](https://github.com/ddeboer/imap/pull/43) ([cordoval](https://github.com/cordoval))
- Utf-8 encode body content. [\#39](https://github.com/ddeboer/imap/pull/39) ([cmoralesweb](https://github.com/cmoralesweb))
- Fix regex parsing the date header \(allowing multiple brackets\) [\#38](https://github.com/ddeboer/imap/pull/38) ([joker806](https://github.com/joker806))
- Allow empty connection flags [\#34](https://github.com/ddeboer/imap/pull/34) ([joker806](https://github.com/joker806))
- Fixed typo [\#32](https://github.com/ddeboer/imap/pull/32) ([abhinavkumar940](https://github.com/abhinavkumar940))
## [0.2](https://github.com/ddeboer/imap/tree/0.2) (2013-11-24)
[Full Changelog](https://github.com/ddeboer/imap/compare/0.1...0.2)
## [0.1](https://github.com/ddeboer/imap/tree/0.1) (2013-11-22)
[Full Changelog](https://github.com/ddeboer/imap/compare/c02d49cdb9246901bb00d211a0f2aba208f6fab6...0.1)
**Closed issues:**
- Prevent setting SEEN flag [\#20](https://github.com/ddeboer/imap/issues/20)
- Add tests [\#18](https://github.com/ddeboer/imap/issues/18)
- delete messages [\#9](https://github.com/ddeboer/imap/issues/9)
- README is missing basic usage [\#7](https://github.com/ddeboer/imap/issues/7)
- Subject and other texts are decoded incorrectly [\#3](https://github.com/ddeboer/imap/issues/3)
**Merged pull requests:**
- also fetch inline attachments [\#24](https://github.com/ddeboer/imap/pull/24) ([kaiserlos](https://github.com/kaiserlos))
- since leading slash is always needed [\#22](https://github.com/ddeboer/imap/pull/22) ([huglester](https://github.com/huglester))
- Added missed createMailbox\($name\) function [\#19](https://github.com/ddeboer/imap/pull/19) ([burci](https://github.com/burci))
- Added move and delete function to message + expunge function [\#17](https://github.com/ddeboer/imap/pull/17) ([burci](https://github.com/burci))
- Clean up some unused variable [\#16](https://github.com/ddeboer/imap/pull/16) ([burci](https://github.com/burci))
- Fixed mailbox encoding [\#15](https://github.com/ddeboer/imap/pull/15) ([burci](https://github.com/burci))
- Create new mailbox [\#14](https://github.com/ddeboer/imap/pull/14) ([burci](https://github.com/burci))
- Fixed bug in getDecodedContent with 'format=flowed' email [\#13](https://github.com/ddeboer/imap/pull/13) ([burci](https://github.com/burci))
- Fixed date parsing for some imap servers [\#12](https://github.com/ddeboer/imap/pull/12) ([thelfensdrfer](https://github.com/thelfensdrfer))
- Add support for more complex search expressions. [\#10](https://github.com/ddeboer/imap/pull/10) ([jamesiarmes](https://github.com/jamesiarmes))
- Allow user to change server connection flags [\#6](https://github.com/ddeboer/imap/pull/6) ([mvar](https://github.com/mvar))
- Improvements in EmailAddress class [\#4](https://github.com/ddeboer/imap/pull/4) ([mvar](https://github.com/mvar))
\* *This Changelog was automatically generated by [github_changelog_generator](https://github.com/github-changelog-generator/github-changelog-generator)*

View File

@ -28,9 +28,9 @@
"ext-mbstring": "*"
},
"require-dev": {
"friendsofphp/php-cs-fixer": "^2.18.4",
"friendsofphp/php-cs-fixer": "^2.18.6",
"laminas/laminas-mail": "^2.14.0",
"phpstan/phpstan": "^0.12.80",
"phpstan/phpstan": "^0.12.84",
"phpstan/phpstan-phpunit": "^0.12.18",
"phpstan/phpstan-strict-rules": "^0.12.9",
"phpunit/phpunit": "^9.5.4"

View File

@ -183,13 +183,11 @@ final class Mailbox implements MailboxInterface
$this->resource->getStream(),
$this->getFullEncodedName(),
$message,
$options ?? '',
];
if (null !== $options) {
$arguments[] = $options;
if (null !== $internalDate) {
$arguments[] = $internalDate->format('d-M-Y H:i:s O');
}
}
return \imap_append(...$arguments);
}

View File

@ -192,6 +192,36 @@ class DistinguishedNameBuilder
return $this;
}
/**
* Get the components of the DN.
*
* @param null|string $type
*
* @return array
*/
public function components($type = null)
{
return is_null($type)
? $this->components
: $this->componentsOfType($type);
}
/**
* Get the components of a particular type.
*
* @param string $type
*
* @return array
*/
protected function componentsOfType($type)
{
$components = array_filter($this->components, function ($component) use ($type) {
return ([$name] = $component) && strtolower($name) === strtolower($type);
});
return array_values($components);
}
/**
* Get the fully qualified DN.
*

View File

@ -43,6 +43,13 @@ trait HasAttributes
*/
protected $casts = [];
/**
* The accessors to append to the model's array form.
*
* @var array
*/
protected $appends = [];
/**
* The format that dates must be output to for serialization.
*
@ -83,7 +90,7 @@ trait HasAttributes
$attributes = $this->addMutatedAttributesToArray(
$attributes,
$mutatedAttributes = $this->getMutatedAttributes()
$this->getMutatedAttributes()
);
// Before we go ahead and encode each value, we'll attempt
@ -91,6 +98,13 @@ trait HasAttributes
// they can be encoded, such as GUIDs and SIDs.
$attributes = $this->convertAttributesForJson($attributes);
// Here we will grab all of the appended, calculated attributes to this model
// as these attributes are not really in the attributes array, but are run
// when we need to array or JSON the model for convenience to the coder.
foreach ($this->getArrayableAppends() as $key) {
$attributes[$key] = $this->mutateAttributeForArray($key, null);
}
// Now we will go through each attribute to make sure it is
// properly encoded. If attributes aren't in UTF-8, we will
// encounter JSON encoding errors upon model serialization.
@ -493,6 +507,16 @@ trait HasAttributes
return $value;
}
/**
* Convert the model to its JSON representation.
*
* @return string
*/
public function toJson()
{
return json_encode($this);
}
/**
* Encode the given value as JSON.
*
@ -596,6 +620,22 @@ trait HasAttributes
return $values;
}
/**
* Get all of the appendable values that are arrayable.
*
* @return array
*/
protected function getArrayableAppends()
{
if (empty($this->appends)) {
return [];
}
return $this->getArrayableItems(
array_combine($this->appends, $this->appends)
);
}
/**
* Get the format for date serialization.
*
@ -940,6 +980,42 @@ trait HasAttributes
return ! $this->originalIsEquivalent($key);
}
/**
* Get the accessors being appended to the models array form.
*
* @return array
*/
public function getAppends()
{
return $this->appends;
}
/**
* Set the accessors to append to model arrays.
*
* @param array $appends
*
* @return $this
*/
public function setAppends(array $appends)
{
$this->appends = $appends;
return $this;
}
/**
* Return whether the accessor attribute has been appended.
*
* @param string $attribute
*
* @return bool
*/
public function hasAppended($attribute)
{
return in_array($attribute, $this->appends);
}
/**
* Returns a normalized attribute key.
*

View File

@ -11,7 +11,7 @@ class Paginator extends AbstractPaginator
*/
protected function fetchCookie()
{
return $this->query->controls[LDAP_CONTROL_PAGEDRESULTS]['value']['cookie'];
return $this->query->controls[LDAP_CONTROL_PAGEDRESULTS]['value']['cookie'] ?? null;
}
/**

View File

@ -0,0 +1,14 @@
<?php
namespace Illuminate\Contracts\Validation;
interface DataAwareRule
{
/**
* Set the data under validation.
*
* @param array $data
* @return $this
*/
public function setData($data);
}

View File

@ -0,0 +1,14 @@
<?php
namespace Illuminate\Contracts\Validation;
interface UncompromisedVerifier
{
/**
* Verify that the given data has not been compromised in data leaks.
*
* @param array $data
* @return bool
*/
public function verify($data);
}

View File

@ -75,11 +75,11 @@ return [
'sameElse' => 'L',
],
'meridiem' => function ($hour) {
if ($hour < 11) {
if ($hour < 12) {
return 'pagi';
}
if ($hour < 15) {
return 'tengahari';
return 'tengah hari';
}
if ($hour < 19) {
return 'petang';

View File

@ -71,35 +71,35 @@ return [
'a_minute' => '{1}хвилина|:count хвилина|:count хвилини|:count хвилин',
'second' => ':count секунда|:count секунди|:count секунд',
's' => ':countсек',
'a_second' => '{1}кілька секунд|:count секунда|:count секунди|:count секунд',
'a_second' => '{1}декілька секунд|:count секунда|:count секунди|:count секунд',
'hour_ago' => ':count годину|:count години|:count годин',
'a_hour_ago' => '{1}годину|:count годину|:count години|:count годин',
'minute_ago' => ':count хвилину|:count хвилини|:count хвилин',
'a_minute_ago' => '{1}хвилину|:count хвилину|:count хвилини|:count хвилин',
'second_ago' => ':count секунду|:count секунди|:count секунд',
'a_second_ago' => '{1}кілька секунд|:count секунду|:count секунди|:count секунд',
'a_second_ago' => '{1}декілька секунд|:count секунду|:count секунди|:count секунд',
'hour_from_now' => ':count годину|:count години|:count годин',
'a_hour_from_now' => '{1}годину|:count годину|:count години|:count годин',
'minute_from_now' => ':count хвилину|:count хвилини|:count хвилин',
'a_minute_from_now' => '{1}хвилину|:count хвилину|:count хвилини|:count хвилин',
'second_from_now' => ':count секунду|:count секунди|:count секунд',
'a_second_from_now' => '{1}кілька секунд|:count секунду|:count секунди|:count секунд',
'a_second_from_now' => '{1}декілька секунд|:count секунду|:count секунди|:count секунд',
'hour_after' => ':count годину|:count години|:count годин',
'a_hour_after' => '{1}годину|:count годину|:count години|:count годин',
'minute_after' => ':count хвилину|:count хвилини|:count хвилин',
'a_minute_after' => '{1}хвилину|:count хвилину|:count хвилини|:count хвилин',
'second_after' => ':count секунду|:count секунди|:count секунд',
'a_second_after' => '{1}кілька секунд|:count секунду|:count секунди|:count секунд',
'a_second_after' => '{1}декілька секунд|:count секунду|:count секунди|:count секунд',
'hour_before' => ':count годину|:count години|:count годин',
'a_hour_before' => '{1}годину|:count годину|:count години|:count годин',
'minute_before' => ':count хвилину|:count хвилини|:count хвилин',
'a_minute_before' => '{1}хвилину|:count хвилину|:count хвилини|:count хвилин',
'second_before' => ':count секунду|:count секунди|:count секунд',
'a_second_before' => '{1}кілька секунд|:count секунду|:count секунди|:count секунд',
'a_second_before' => '{1}декілька секунд|:count секунду|:count секунди|:count секунд',
'ago' => ':time тому',
'from_now' => 'за :time',

View File

@ -873,8 +873,7 @@ trait Creator
if (\is_string($var)) {
$var = trim($var);
if (\is_string($var) &&
!preg_match('/^P[0-9T]/', $var) &&
if (!preg_match('/^P[0-9T]/', $var) &&
!preg_match('/^R[0-9]/', $var) &&
preg_match('/[a-z0-9]/i', $var)
) {

View File

@ -638,9 +638,11 @@ trait Difference
*/
public function floatDiffInRealDays($date = null, $absolute = true)
{
$hoursDiff = $this->floatDiffInRealHours($date, $absolute);
$date = $this->resolveCarbon($date)->utc();
$utc = $this->copy()->utc();
$hoursDiff = $utc->floatDiffInRealHours($date, $absolute);
return ($hoursDiff < 0 ? -1 : 1) * $this->diffInDays($date) + fmod($hoursDiff, static::HOURS_PER_DAY) / static::HOURS_PER_DAY;
return ($hoursDiff < 0 ? -1 : 1) * $utc->diffInDays($date) + fmod($hoursDiff, static::HOURS_PER_DAY) / static::HOURS_PER_DAY;
}
/**

View File

@ -2,6 +2,8 @@
Please disclose any security issues or vulnerabilities found through [Tidelift's coordinated disclosure system](https://tidelift.com/security) or to the maintainers privately.
PHPMailer versions between 6.1.8 and 6.4.0 contain a regression of the earlier CVE-2018-19296 object injection vulnerability as a result of [a fix for Windows UNC paths in 6.1.8](https://github.com/PHPMailer/PHPMailer/commit/e2e07a355ee8ff36aba21d0242c5950c56e4c6f9). Recorded as [CVE-2020-36326](https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2020-36326). Reported by Fariskhi Vidyan via Tidelift. 6.4.1 fixes this issue, and also enforces stricter checks for URL schemes in local path contexts.
PHPMailer versions 6.1.5 and earlier contain an output escaping bug that occurs in `Content-Type` and `Content-Disposition` when filenames passed into `addAttachment` and other methods that accept attachment names contain double quote characters, in contravention of RFC822 3.4.1. No specific vulnerability has been found relating to this, but it could allow file attachments to bypass attachment filters that are based on matching filename extensions. Recorded as [CVE-2020-13625](https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2020-13625). Reported by Elar Lang of Clarified Security.
PHPMailer versions prior to 6.0.6 and 5.2.27 are vulnerable to an object injection attack by passing `phar://` paths into `addAttachment()` and other functions that may receive unfiltered local paths, possibly leading to RCE. Recorded as [CVE-2018-19296](https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2018-19296). See [this article](https://knasmueller.net/5-answers-about-php-phar-exploitation) for more info on this type of vulnerability. Mitigated by blocking the use of paths containing URL-protocol style prefixes such as `phar://`. Reported by Sehun Oh of cyberone.kr.

View File

@ -1 +1 @@
6.4.0
6.4.1

View File

@ -57,5 +57,9 @@
"PHPMailer\\Test\\": "test/"
}
},
"license": "LGPL-2.1-only"
"license": "LGPL-2.1-only",
"scripts": {
"check": "./vendor/bin/phpcs",
"test": "./vendor/bin/phpunit"
}
}

View File

@ -16,11 +16,11 @@ $PHPMAILER_LANG['file_access'] = 'Немає доступу до фай
$PHPMAILER_LANG['file_open'] = 'Помилка файлової системи: не вдається відкрити файл: ';
$PHPMAILER_LANG['from_failed'] = 'Невірна адреса відправника: ';
$PHPMAILER_LANG['instantiate'] = 'Неможливо запустити функцію mail().';
$PHPMAILER_LANG['provide_address'] = 'Будь-ласка, введіть хоча б одну email-адресу отримувача.';
$PHPMAILER_LANG['provide_address'] = 'Будь ласка, введіть хоча б одну email-адресу отримувача.';
$PHPMAILER_LANG['mailer_not_supported'] = ' - поштовий сервер не підтримується.';
$PHPMAILER_LANG['recipients_failed'] = 'Помилка SMTP: не вдалося відправлення для таких отримувачів: ';
$PHPMAILER_LANG['empty_message'] = 'Пусте повідомлення';
$PHPMAILER_LANG['invalid_address'] = 'Не відправлено через невірний формат email-адреси: ';
$PHPMAILER_LANG['invalid_address'] = 'Не відправлено через неправильний формат email-адреси: ';
$PHPMAILER_LANG['signing'] = 'Помилка підпису: ';
$PHPMAILER_LANG['smtp_connect_failed'] = 'Помилка з\'єднання з SMTP-сервером';
$PHPMAILER_LANG['smtp_error'] = 'Помилка SMTP-сервера: ';

View File

@ -748,7 +748,7 @@ class PHPMailer
*
* @var string
*/
const VERSION = '6.4.0';
const VERSION = '6.4.1';
/**
* Error severity: message only, continue processing.
@ -1721,9 +1721,10 @@ class PHPMailer
fwrite($mail, $header);
fwrite($mail, $body);
$result = pclose($mail);
$addrinfo = static::parseAddresses($toAddr);
$this->doCallback(
($result === 0),
[$toAddr],
[[$addrinfo['address'], $addrinfo['name']]],
$this->cc,
$this->bcc,
$this->Subject,
@ -1810,7 +1811,8 @@ class PHPMailer
*/
protected static function isPermittedPath($path)
{
return !preg_match('#^[a-z]+://#i', $path);
//Matches scheme definition from https://tools.ietf.org/html/rfc3986#section-3.1
return !preg_match('#^[a-z][a-z\d+.-]*://#i', $path);
}
/**
@ -1822,12 +1824,15 @@ class PHPMailer
*/
protected static function fileIsAccessible($path)
{
if (!static::isPermittedPath($path)) {
return false;
}
$readable = file_exists($path);
//If not a UNC path (expected to start with \\), check read permission, see #2069
if (strpos($path, '\\\\') !== 0) {
$readable = $readable && is_readable($path);
}
return static::isPermittedPath($path) && $readable;
return $readable;
}
/**
@ -1876,7 +1881,17 @@ class PHPMailer
if ($this->SingleTo && count($toArr) > 1) {
foreach ($toArr as $toAddr) {
$result = $this->mailPassthru($toAddr, $this->Subject, $body, $header, $params);
$this->doCallback($result, [$toAddr], $this->cc, $this->bcc, $this->Subject, $body, $this->From, []);
$addrinfo = static::parseAddresses($toAddr);
$this->doCallback(
$result,
[[$addrinfo['address'], $addrinfo['name']]],
$this->cc,
$this->bcc,
$this->Subject,
$body,
$this->From,
[]
);
}
} else {
$result = $this->mailPassthru($to, $this->Subject, $body, $header, $params);
@ -1965,7 +1980,7 @@ class PHPMailer
$isSent = true;
}
$callbacks[] = ['issent' => $isSent, 'to' => $to[0]];
$callbacks[] = ['issent' => $isSent, 'to' => $to[0], 'name' => $to[1]];
}
}
@ -1986,7 +2001,7 @@ class PHPMailer
foreach ($callbacks as $cb) {
$this->doCallback(
$cb['issent'],
[$cb['to']],
[[$cb['to'], $cb['name']]],
[],
[],
$this->Subject,

View File

@ -46,7 +46,7 @@ class POP3
*
* @var string
*/
const VERSION = '6.4.0';
const VERSION = '6.4.1';
/**
* Default POP3 port number.

View File

@ -35,7 +35,7 @@ class SMTP
*
* @var string
*/
const VERSION = '6.4.0';
const VERSION = '6.4.1';
/**
* SMTP line break constant.

View File

@ -15,7 +15,7 @@ abstract class AbstractLogger implements LoggerInterface
* System is unusable.
*
* @param string $message
* @param array $context
* @param mixed[] $context
*
* @return void
*/
@ -31,7 +31,7 @@ abstract class AbstractLogger implements LoggerInterface
* trigger the SMS alerts and wake you up.
*
* @param string $message
* @param array $context
* @param mixed[] $context
*
* @return void
*/
@ -46,7 +46,7 @@ abstract class AbstractLogger implements LoggerInterface
* Example: Application component unavailable, unexpected exception.
*
* @param string $message
* @param array $context
* @param mixed[] $context
*
* @return void
*/
@ -60,7 +60,7 @@ abstract class AbstractLogger implements LoggerInterface
* be logged and monitored.
*
* @param string $message
* @param array $context
* @param mixed[] $context
*
* @return void
*/
@ -76,7 +76,7 @@ abstract class AbstractLogger implements LoggerInterface
* that are not necessarily wrong.
*
* @param string $message
* @param array $context
* @param mixed[] $context
*
* @return void
*/
@ -89,7 +89,7 @@ abstract class AbstractLogger implements LoggerInterface
* Normal but significant events.
*
* @param string $message
* @param array $context
* @param mixed[] $context
*
* @return void
*/
@ -104,7 +104,7 @@ abstract class AbstractLogger implements LoggerInterface
* Example: User logs in, SQL logs.
*
* @param string $message
* @param array $context
* @param mixed[] $context
*
* @return void
*/
@ -117,7 +117,7 @@ abstract class AbstractLogger implements LoggerInterface
* Detailed debug information.
*
* @param string $message
* @param array $context
* @param mixed[] $context
*
* @return void
*/

View File

@ -10,7 +10,7 @@ trait LoggerAwareTrait
/**
* The logger instance.
*
* @var LoggerInterface
* @var LoggerInterface|null
*/
protected $logger;

View File

@ -7,7 +7,7 @@
"authors": [
{
"name": "PHP-FIG",
"homepage": "http://www.php-fig.org/"
"homepage": "https://www.php-fig.org/"
}
],
"require": {

View File

@ -2,4 +2,4 @@ CHANGELOG
=========
The changelog is maintained for all Symfony contracts at the following URL:
https://github.com/symfony/contracts/blob/master/CHANGELOG.md
https://github.com/symfony/contracts/blob/main/CHANGELOG.md

View File

@ -1,4 +1,4 @@
Copyright (c) 2018-2020 Fabien Potencier
Copyright (c) 2018-2021 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

View File

@ -6,4 +6,4 @@ A set of abstractions extracted out of the Symfony components.
Can be used to build on semantics that the Symfony components proved useful - and
that already have battle tested implementations.
See https://github.com/symfony/contracts/blob/master/README.md for more information.
See https://github.com/symfony/contracts/blob/main/README.md for more information.

View File

@ -59,6 +59,8 @@ class TranslatorTest extends TestCase
}
/**
* @requires extension intl
*
* @dataProvider getTransChoiceTests
*/
public function testTransChoiceWithDefaultLocale($expected, $id, $number)
@ -142,11 +144,11 @@ class TranslatorTest extends TestCase
/**
* @dataProvider getChooseTests
*/
public function testChoose($expected, $id, $number)
public function testChoose($expected, $id, $number, $locale = null)
{
$translator = $this->getTranslator();
$this->assertEquals($expected, $translator->trans($id, ['%count%' => $number]));
$this->assertEquals($expected, $translator->trans($id, ['%count%' => $number], null, $locale));
}
public function testReturnMessageIfExactlyOneStandardRuleIsGiven()
@ -161,7 +163,7 @@ class TranslatorTest extends TestCase
*/
public function testThrowExceptionIfMatchingMessageCannotBeFound($id, $number)
{
$this->expectException('InvalidArgumentException');
$this->expectException(\InvalidArgumentException::class);
$translator = $this->getTranslator();
$translator->trans($id, ['%count%' => $number]);
@ -255,6 +257,18 @@ class TranslatorTest extends TestCase
['', '|', 1],
// Empty plural set (3 plural forms) from a .PO file
['', '||', 1],
// Floating values
['1.5 liters', '%count% liter|%count% liters', 1.5],
['1.5 litre', '%count% litre|%count% litres', 1.5, 'fr'],
// Negative values
['-1 degree', '%count% degree|%count% degrees', -1],
['-1 degré', '%count% degré|%count% degrés', -1],
['-1.5 degrees', '%count% degree|%count% degrees', -1.5],
['-1.5 degré', '%count% degré|%count% degrés', -1.5, 'fr'],
['-2 degrees', '%count% degree|%count% degrees', -2],
['-2 degrés', '%count% degré|%count% degrés', -2],
];
}

View File

@ -13,6 +13,8 @@ namespace Symfony\Contracts\Translation;
/**
* @author Fabien Potencier <fabien@symfony.com>
*
* @method string getLocale() Returns the default locale
*/
interface TranslatorInterface
{

View File

@ -32,6 +32,8 @@ trait TranslatorTrait
/**
* {@inheritdoc}
*
* @return string
*/
public function getLocale()
{
@ -136,8 +138,10 @@ EOF;
* which is subject to the new BSD license (http://framework.zend.com/license/new-bsd).
* Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
*/
private function getPluralizationRule(int $number, string $locale): int
private function getPluralizationRule(float $number, string $locale): int
{
$number = abs($number);
switch ('pt_BR' !== $locale && \strlen($locale) > 3 ? substr($locale, 0, strrpos($locale, '_')) : $locale) {
case 'af':
case 'bn':
@ -205,7 +209,7 @@ EOF;
case 'pt_BR':
case 'ti':
case 'wa':
return ((0 == $number) || (1 == $number)) ? 0 : 1;
return ($number < 2) ? 0 : 1;
case 'be':
case 'bs':

View File

@ -27,7 +27,7 @@
"minimum-stability": "dev",
"extra": {
"branch-alias": {
"dev-master": "2.3-dev"
"dev-main": "2.4-dev"
},
"thanks": {
"name": "symfony/contracts",

View File

@ -1,220 +0,0 @@
<?php
/*
* This file is part of the Symfony package.
*
* (c) Fabien Potencier <fabien@symfony.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Symfony\Component\Translation;
/**
* Returns the plural rules for a given locale.
*
* @author Fabien Potencier <fabien@symfony.com>
*
* @deprecated since Symfony 4.2, use IdentityTranslator instead
*/
class PluralizationRules
{
private static $rules = [];
/**
* Returns the plural position to use for the given locale and number.
*
* @param float $number The number
* @param string $locale The locale
*
* @return int The plural position
*/
public static function get($number, $locale/*, bool $triggerDeprecation = true*/)
{
$number = abs($number);
if (3 > \func_num_args() || func_get_arg(2)) {
@trigger_error(sprintf('The "%s" class is deprecated since Symfony 4.2.', __CLASS__), \E_USER_DEPRECATED);
}
if ('pt_BR' === $locale) {
// temporary set a locale for brazilian
$locale = 'xbr';
}
if (\strlen($locale) > 3) {
$locale = substr($locale, 0, -\strlen(strrchr($locale, '_')));
}
if (isset(self::$rules[$locale])) {
$return = self::$rules[$locale]($number);
if (!\is_int($return) || $return < 0) {
return 0;
}
return $return;
}
/*
* The plural rules are derived from code of the Zend Framework (2010-09-25),
* which is subject to the new BSD license (http://framework.zend.com/license/new-bsd).
* Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
*/
switch ($locale) {
case 'az':
case 'bo':
case 'dz':
case 'id':
case 'ja':
case 'jv':
case 'ka':
case 'km':
case 'kn':
case 'ko':
case 'ms':
case 'th':
case 'tr':
case 'vi':
case 'zh':
return 0;
case 'af':
case 'bn':
case 'bg':
case 'ca':
case 'da':
case 'de':
case 'el':
case 'en':
case 'eo':
case 'es':
case 'et':
case 'eu':
case 'fa':
case 'fi':
case 'fo':
case 'fur':
case 'fy':
case 'gl':
case 'gu':
case 'ha':
case 'he':
case 'hu':
case 'is':
case 'it':
case 'ku':
case 'lb':
case 'ml':
case 'mn':
case 'mr':
case 'nah':
case 'nb':
case 'ne':
case 'nl':
case 'nn':
case 'no':
case 'oc':
case 'om':
case 'or':
case 'pa':
case 'pap':
case 'ps':
case 'pt':
case 'so':
case 'sq':
case 'sv':
case 'sw':
case 'ta':
case 'te':
case 'tk':
case 'ur':
case 'zu':
return (1 == $number) ? 0 : 1;
case 'am':
case 'bh':
case 'fil':
case 'fr':
case 'gun':
case 'hi':
case 'hy':
case 'ln':
case 'mg':
case 'nso':
case 'xbr':
case 'ti':
case 'wa':
return ($number < 2) ? 0 : 1;
case 'be':
case 'bs':
case 'hr':
case 'ru':
case 'sh':
case 'sr':
case 'uk':
return ((1 == $number % 10) && (11 != $number % 100)) ? 0 : ((($number % 10 >= 2) && ($number % 10 <= 4) && (($number % 100 < 10) || ($number % 100 >= 20))) ? 1 : 2);
case 'cs':
case 'sk':
return (1 == $number) ? 0 : ((($number >= 2) && ($number <= 4)) ? 1 : 2);
case 'ga':
return (1 == $number) ? 0 : ((2 == $number) ? 1 : 2);
case 'lt':
return ((1 == $number % 10) && (11 != $number % 100)) ? 0 : ((($number % 10 >= 2) && (($number % 100 < 10) || ($number % 100 >= 20))) ? 1 : 2);
case 'sl':
return (1 == $number % 100) ? 0 : ((2 == $number % 100) ? 1 : (((3 == $number % 100) || (4 == $number % 100)) ? 2 : 3));
case 'mk':
return (1 == $number % 10) ? 0 : 1;
case 'mt':
return (1 == $number) ? 0 : (((0 == $number) || (($number % 100 > 1) && ($number % 100 < 11))) ? 1 : ((($number % 100 > 10) && ($number % 100 < 20)) ? 2 : 3));
case 'lv':
return (0 == $number) ? 0 : (((1 == $number % 10) && (11 != $number % 100)) ? 1 : 2);
case 'pl':
return (1 == $number) ? 0 : ((($number % 10 >= 2) && ($number % 10 <= 4) && (($number % 100 < 12) || ($number % 100 > 14))) ? 1 : 2);
case 'cy':
return (1 == $number) ? 0 : ((2 == $number) ? 1 : (((8 == $number) || (11 == $number)) ? 2 : 3));
case 'ro':
return (1 == $number) ? 0 : (((0 == $number) || (($number % 100 > 0) && ($number % 100 < 20))) ? 1 : 2);
case 'ar':
return (0 == $number) ? 0 : ((1 == $number) ? 1 : ((2 == $number) ? 2 : ((($number % 100 >= 3) && ($number % 100 <= 10)) ? 3 : ((($number % 100 >= 11) && ($number % 100 <= 99)) ? 4 : 5))));
default:
return 0;
}
}
/**
* Overrides the default plural rule for a given locale.
*
* @param callable $rule A PHP callable
* @param string $locale The locale
*/
public static function set(callable $rule, $locale)
{
@trigger_error(sprintf('The "%s" class is deprecated since Symfony 4.2.', __CLASS__), \E_USER_DEPRECATED);
if ('pt_BR' === $locale) {
// temporary set a locale for brazilian
$locale = 'xbr';
}
if (\strlen($locale) > 3) {
$locale = substr($locale, 0, -\strlen(strrchr($locale, '_')));
}
self::$rules[$locale] = $rule;
}
}

View File

@ -95,5 +95,7 @@ EOF
$this->server->listen(function (Data $data, array $context, int $clientId) use ($descriptor, $io) {
$descriptor->describe($io, $data, $context, $clientId);
});
return 0;
}
}