feat: initial version

Signed-off-by: Sebastian Krupinski <root@LAPTOP-7DVOR6NC>
This commit is contained in:
Sebastian Krupinski
2026-02-20 16:41:19 -05:00
commit 7f562d6aba
139 changed files with 11256 additions and 0 deletions

View File

@@ -0,0 +1,14 @@
<?php
declare(strict_types=1);
namespace Gricob\IMAP\Protocol\Response\Line\Status\Code;
final readonly class AppendUidCode implements Code
{
public function __construct(
public int $uidValidity,
public int $uid,
) {
}
}

View File

@@ -0,0 +1,9 @@
<?php
declare(strict_types=1);
namespace Gricob\IMAP\Protocol\Response\Line\Status\Code;
interface Code
{
}

View File

@@ -0,0 +1,16 @@
<?php
declare(strict_types=1);
namespace Gricob\IMAP\Protocol\Response\Line\Status\Code;
final readonly class PermanentFlagsCode implements Code
{
/**
* @param string[] $flags
*/
public function __construct(
public array $flags,
) {
}
}

View File

@@ -0,0 +1,9 @@
<?php
declare(strict_types=1);
namespace Gricob\IMAP\Protocol\Response\Line\Status\Code;
final readonly class ReadOnlyCode implements Code
{
}

View File

@@ -0,0 +1,9 @@
<?php
declare(strict_types=1);
namespace Gricob\IMAP\Protocol\Response\Line\Status\Code;
final readonly class ReadWriteCode implements Code
{
}

View File

@@ -0,0 +1,13 @@
<?php
declare(strict_types=1);
namespace Gricob\IMAP\Protocol\Response\Line\Status\Code;
final readonly class UidNextCode implements Code
{
public function __construct(
public int $value,
) {
}
}

View File

@@ -0,0 +1,13 @@
<?php
declare(strict_types=1);
namespace Gricob\IMAP\Protocol\Response\Line\Status\Code;
final readonly class UidValidityCode implements Code
{
public function __construct(
public int $value,
) {
}
}

View File

@@ -0,0 +1,13 @@
<?php
declare(strict_types=1);
namespace Gricob\IMAP\Protocol\Response\Line\Status\Code;
final readonly class UnseenCode implements Code
{
public function __construct(
public int $seq,
) {
}
}

View File

@@ -0,0 +1,19 @@
<?php
declare(strict_types=1);
namespace Gricob\IMAP\Protocol\Response\Line\Status;
use Gricob\IMAP\Protocol\Response\Line\Line;
use Gricob\IMAP\Protocol\Response\Line\Status\Code\Code;
final readonly class Status implements Line
{
final public function __construct(
public string $tag,
public StatusType $type,
public ?Code $code,
public string $message
) {
}
}

View File

@@ -0,0 +1,12 @@
<?php
namespace Gricob\IMAP\Protocol\Response\Line\Status;
enum StatusType: string
{
case OK = 'OK';
case NO = 'NO';
case BAD = 'BAD';
case PREAUTH = 'PREAUTH';
case BYE = 'BYE';
}