chore: update Utopia Emails dependency to version 0.5 and remove deprecated email validator

- Updated the Utopia Emails dependency version from 0.4.* to 0.5.* in composer.json and composer.lock.
- Removed the custom Email validator class and its associated tests as it is no longer needed with the new Utopia Emails library.
This commit is contained in:
Eldad Fux
2025-10-19 21:55:52 +01:00
parent 68b72f3162
commit 18a66bae4e
4 changed files with 8 additions and 117 deletions
+1 -1
View File
@@ -57,7 +57,7 @@
"utopia-php/domains": "0.8.*",
"utopia-php/dns": "0.3.*",
"utopia-php/dsn": "0.2.1",
"utopia-php/emails": "0.4.*",
"utopia-php/emails": "0.5.*",
"utopia-php/framework": "0.33.*",
"utopia-php/fetch": "0.4.*",
"utopia-php/image": "0.8.*",
Generated
+7 -7
View File
@@ -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": "2fbd76a832756d8b21adf27e5b0a7cc7",
"content-hash": "16bb025bc719fc989a11800ec450fd5b",
"packages": [
{
"name": "adhocore/jwt",
@@ -3900,16 +3900,16 @@
},
{
"name": "utopia-php/emails",
"version": "0.4.0",
"version": "0.5.0",
"source": {
"type": "git",
"url": "https://github.com/utopia-php/emails.git",
"reference": "48d772c854a176f063e495d0179a1369087fd4f0"
"reference": "aebfd79cd8c39f230fb9a238ca12a4f7a1f7e0cd"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/utopia-php/emails/zipball/48d772c854a176f063e495d0179a1369087fd4f0",
"reference": "48d772c854a176f063e495d0179a1369087fd4f0",
"url": "https://api.github.com/repos/utopia-php/emails/zipball/aebfd79cd8c39f230fb9a238ca12a4f7a1f7e0cd",
"reference": "aebfd79cd8c39f230fb9a238ca12a4f7a1f7e0cd",
"shasum": ""
},
"require": {
@@ -3954,9 +3954,9 @@
],
"support": {
"issues": "https://github.com/utopia-php/emails/issues",
"source": "https://github.com/utopia-php/emails/tree/0.4.0"
"source": "https://github.com/utopia-php/emails/tree/0.5.0"
},
"time": "2025-10-19T20:31:42+00:00"
"time": "2025-10-19T20:51:56+00:00"
},
{
"name": "utopia-php/fetch",
-40
View File
@@ -1,40 +0,0 @@
<?php
namespace Appwrite\Network\Validator;
use Utopia\Emails\Validator\Email as UtopiaEmailValidator;
/**
* Email
*
* Validate that an variable is a valid email address
* Extends the new Utopia Emails validator to maintain backward compatibility
*
* @package Appwrite\Network\Validator
*/
class Email extends UtopiaEmailValidator
{
protected bool $allowEmpty;
public function __construct(bool $allowEmpty = false)
{
$this->allowEmpty = $allowEmpty;
}
/**
* Is valid
*
* Validation will pass when $value is valid email address.
*
* @param mixed $value
* @return bool
*/
public function isValid($value): bool
{
if ($this->allowEmpty && \strlen($value) === 0) {
return true;
}
return parent::isValid($value);
}
}
@@ -1,69 +0,0 @@
<?php
/**
* Utopia PHP Framework
*
* @package Framework
* @subpackage Tests
*
* @link https://github.com/utopia-php/framework
* @author Appwrite Team <team@appwrite.io>
* @version 1.0 RC4
* @license The MIT License (MIT) <http://www.opensource.org/licenses/mit-license.php>
*/
namespace Tests\Unit\Network\Validators;
use Appwrite\Network\Validator\Email;
use PHPUnit\Framework\TestCase;
class EmailTest extends TestCase
{
protected ?Email $email = null;
public function setUp(): void
{
$this->email = new Email();
}
public function tearDown(): void
{
$this->email = null;
}
public function testIsValid(): void
{
$this->assertEquals(true, $this->email->isValid('email@domain.com'));
$this->assertEquals(true, $this->email->isValid('firstname.lastname@domain.com'));
$this->assertEquals(true, $this->email->isValid('email@subdomain.domain.com'));
$this->assertEquals(true, $this->email->isValid('firstname+lastname@domain.com'));
$this->assertEquals(true, $this->email->isValid('email@[123.123.123.123]'));
$this->assertEquals(true, $this->email->isValid('"email"@domain.com'));
$this->assertEquals(true, $this->email->isValid('1234567890@domain.com'));
$this->assertEquals(true, $this->email->isValid('email@domain-one.com'));
$this->assertEquals(true, $this->email->isValid('_______@domain.com'));
$this->assertEquals(true, $this->email->isValid('email@domain.name'));
$this->assertEquals(true, $this->email->isValid('email@domain.co.jp'));
$this->assertEquals(true, $this->email->isValid('firstname-lastname@domain.com'));
$this->assertEquals(false, $this->email->isValid(false));
$this->assertEquals(false, $this->email->isValid(['string', 'string']));
$this->assertEquals(false, $this->email->isValid(1));
$this->assertEquals(false, $this->email->isValid(1.2));
$this->assertEquals(false, $this->email->isValid('plainaddress')); // Missing @ sign and domain
$this->assertEquals(false, $this->email->isValid('@domain.com')); // Missing username
$this->assertEquals(false, $this->email->isValid('#@%^%#$@#$@#.com')); // Garbage
$this->assertEquals(false, $this->email->isValid('Joe Smith <email@domain.com>')); // Encoded html within email is invalid
$this->assertEquals(false, $this->email->isValid('email.domain.com')); // Missing @
$this->assertEquals(false, $this->email->isValid('email@domain@domain.com')); // Two @ sign
$this->assertEquals(false, $this->email->isValid('.email@domain.com')); // Leading dot in address is not allowed
$this->assertEquals(false, $this->email->isValid('email.@domain.com')); // Trailing dot in address is not allowed
$this->assertEquals(false, $this->email->isValid('email..email@domain.com')); // Multiple dots
$this->assertEquals(false, $this->email->isValid('あいうえお@domain.com')); // Unicode char as address
$this->assertEquals(false, $this->email->isValid('email@domain.com (Joe Smith)')); // Text followed email is not allowed
$this->assertEquals(false, $this->email->isValid('email@domain')); // Missing top level domain (.com/.net/.org/etc)
$this->assertEquals(false, $this->email->isValid('email@-domain.com')); // Leading dash in front of domain is invalid
$this->assertEquals(false, $this->email->isValid('email@111.222.333.44444')); // Invalid IP format
$this->assertEquals(false, $this->email->isValid('email@domain..com')); // Multiple dot in the domain portion is invalid
$this->assertEquals($this->email->getType(), 'string');
}
}