/home/mip/mip/public/img/credit/datatables/Result.tar
MultipleErrors.php000064400000002052151520657540010256 0ustar00<?php

namespace Egulias\EmailValidator\Result;

use Egulias\EmailValidator\Result\Reason\EmptyReason;
use Egulias\EmailValidator\Result\Reason\Reason;

/**
 * @psalm-suppress PropertyNotSetInConstructor
 */
class MultipleErrors extends InvalidEmail
{
    /**
     * @var Reason[]
     */
    private $reasons = [];

    public function __construct()
    {
    }

    public function addReason(Reason $reason) : void
    {
        $this->reasons[$reason->code()] = $reason;
    }

    /**
     * @return Reason[]
     */
    public function getReasons() : array
    {
        return $this->reasons;
    }

    public function reason() : Reason
    {
        return 0 !== count($this->reasons)
            ? current($this->reasons)
            : new EmptyReason();
    }

    public function description() : string
    {
        $description = '';
        foreach($this->reasons as $reason) {
            $description .= $reason->description() . PHP_EOL;
        }

        return $description;
    }

    public function code() : int
    {
        return 0;
    }
}
InvalidEmail.php000064400000001513151520657540007625 0ustar00<?php

namespace Egulias\EmailValidator\Result;

use Egulias\EmailValidator\Result\Reason\Reason;

class InvalidEmail implements Result
{
    /**
     * @var string
     */
    private string $token;

    /**
     * @var Reason
     */
    protected Reason $reason;

    public function __construct(Reason $reason, string $token)
    {
        $this->token = $token;
        $this->reason = $reason;
    }

    public function isValid(): bool
    {
        return false;
    }

    public function isInvalid(): bool
    {
        return true;
    }

    public function description(): string
    {
        return $this->reason->description() . " in char " . $this->token;
    }

    public function code(): int
    {
        return $this->reason->code();
    }

    public function reason(): Reason
    {
        return $this->reason;
    }
}
Result.php000064400000000764151520657540006554 0ustar00<?php

namespace Egulias\EmailValidator\Result;

interface Result
{
    /**
     * Is validation result valid?
     */
    public function isValid() : bool;

    /**
     * Is validation result invalid?
     * Usually the inverse of isValid()
     */
    public function isInvalid() : bool;

    /**
     * Short description of the result, human readable.
     */
    public function description() : string;

    /**
     * Code for user land to act upon.
     */
    public function code() : int;
}
SpoofEmail.php000064400000000462151520657540007327 0ustar00<?php
namespace Egulias\EmailValidator\Result;

use Egulias\EmailValidator\Result\Reason\SpoofEmail as ReasonSpoofEmail;

class SpoofEmail extends InvalidEmail
{
    public function __construct()
    {
        $this->reason = new ReasonSpoofEmail();
        parent::__construct($this->reason, '');
    }
}
ValidEmail.php000064400000000573151520657540007303 0ustar00<?php

namespace Egulias\EmailValidator\Result;

class ValidEmail implements Result
{
    public function isValid(): bool
    {
        return true;
    }

    public function isInvalid(): bool
    {
        return false;
    }

    public function description(): string
    {
        return "Valid email";
    }

    public function code(): int
    {
        return 0;
    }

}
Reason/CharNotAllowed.php000064400000000402151520657540011360 0ustar00<?php

namespace Egulias\EmailValidator\Result\Reason;

class CharNotAllowed implements Reason
{
    public function code() : int
    {
        return 1;
    }

    public function description() : string
    {
        return "Character not allowed";
    }
}
Reason/ExpectingCTEXT.php000064400000000376151520657540011262 0ustar00<?php

namespace Egulias\EmailValidator\Result\Reason;

class ExpectingCTEXT implements Reason
{
    public function code() : int
    {
        return 139;
    }

    public function description() : string
    {
        return 'Expecting CTEXT';
    }
}
Reason/CRNoLF.php000064400000000372151520657540007543 0ustar00<?php

namespace Egulias\EmailValidator\Result\Reason;

class CRNoLF implements Reason
{
    public function code() : int
    {
        return 150;
    }

    public function description() : string
    {
        return 'Missing LF after CR';
    }
}
Reason/UnclosedQuotedString.php000064400000000413151520657540012641 0ustar00<?php

namespace Egulias\EmailValidator\Result\Reason;

class UnclosedQuotedString implements Reason
{
    public function code() : int
    {
        return 145;
    }

    public function description() : string
    {
        return "Unclosed quoted string";
    }
}
Reason/UnusualElements.php000064400000000767151520657540011661 0ustar00<?php

namespace Egulias\EmailValidator\Result\Reason;

class UnusualElements implements Reason
{
    /**
     * @var string $element
     */
    private $element;

    public function __construct(string $element)
    {
        $this->element = $element;
    }

    public function code() : int
    {
        return 201;
    }

    public function description() : string
    {
        return 'Unusual element found, wourld render invalid in majority of cases. Element found: ' . $this->element;
    }
}
Reason/DomainTooLong.php000064400000000422151520657540011225 0ustar00<?php

namespace Egulias\EmailValidator\Result\Reason;

class DomainTooLong implements Reason
{
    public function code() : int
    {
        return 244;
    }

    public function description() : string
    {
        return 'Domain is longer than 253 characters';
    }
}
Reason/ConsecutiveDot.php000064400000000404151520657540011452 0ustar00<?php

namespace Egulias\EmailValidator\Result\Reason;

class ConsecutiveDot implements Reason
{
    public function code() : int
    {
        return 132;
    }

    public function description() : string
    {
        return 'Concecutive DOT found';
    }
}
Reason/NoDomainPart.php000064400000000401151520657540011044 0ustar00<?php

namespace Egulias\EmailValidator\Result\Reason;

class NoDomainPart implements Reason
{
    public function code() : int
    {
        return 131;
    }

    public function description() : string
    {
        return 'No domain part found';
    }
}
Reason/EmptyReason.php000064400000000366151520657540010771 0ustar00<?php

namespace Egulias\EmailValidator\Result\Reason;

class EmptyReason implements Reason
{
    public function code() : int
    {
        return 0;
    }

    public function description() : string
    {
        return 'Empty reason';
    }
}
Reason/DetailedReason.php000064400000000375151520657540011406 0ustar00<?php

namespace Egulias\EmailValidator\Result\Reason;

abstract class DetailedReason implements Reason
{
    protected $detailedDescription;

    public function __construct(string $details)
    {
        $this->detailedDescription = $details;
    }
}
Reason/AtextAfterCFWS.php000064400000000405151520657540011247 0ustar00<?php

namespace Egulias\EmailValidator\Result\Reason;

class AtextAfterCFWS implements Reason
{
    public function code() : int
    {
        return 133;
    }

    public function description() : string
    {
        return 'ATEXT found after CFWS';
    }
}
Reason/Reason.php000064400000000433151520657540007745 0ustar00<?php

namespace Egulias\EmailValidator\Result\Reason;

interface Reason
{
    /**
     * Code for user land to act upon;
     */
    public function code() : int;

    /**
     * Short description of the result, human readable.
     */
    public function description() : string;
}
Reason/RFCWarnings.php000064400000000413151520657540010637 0ustar00<?php

namespace Egulias\EmailValidator\Result\Reason;

class RFCWarnings implements Reason
{
    public function code() : int
    {
        return 997;
    }

    public function description() : string
    {
        return 'Warnings found after validating';
    }
}
Reason/ExpectingATEXT.php000064400000000501151520657540011246 0ustar00<?php

namespace Egulias\EmailValidator\Result\Reason;

class ExpectingATEXT extends DetailedReason
{
    public function code() : int
    {
        return 137;
    }

    public function description() : string
    {
        return "Expecting ATEXT (Printable US-ASCII). Extended: " . $this->detailedDescription;
    }
}
Reason/DotAtEnd.php000064400000000367151520657540010166 0ustar00<?php

namespace Egulias\EmailValidator\Result\Reason;

class DotAtEnd implements Reason
{
    public function code() : int
    {
        return 142;
    }

    public function description() : string
    {
        return 'Dot at the end';
    }
}
Reason/CommentsInIDRight.php000064400000000444151520657540012007 0ustar00<?php

namespace Egulias\EmailValidator\Result\Reason;

class CommentsInIDRight implements Reason
{
    public function code() : int
    {
        return 400;
    }

    public function description() : string
    {
        return 'Comments are not allowed in IDRight for message-id';
    }
}
Reason/CommaInDomain.php000064400000000425151520657540011172 0ustar00<?php

namespace Egulias\EmailValidator\Result\Reason;

class CommaInDomain implements Reason
{
    public function code() : int
    {
        return 200;
    }

    public function description() : string
    {
        return "Comma ',' is not allowed in domain part";
    }
}
Reason/DomainAcceptsNoMail.php000064400000000435151520657540012332 0ustar00<?php

namespace Egulias\EmailValidator\Result\Reason;

class DomainAcceptsNoMail implements Reason
{
    public function code() : int
    {
        return 154;
    }

    public function description() : string
    {
        return 'Domain accepts no mail (Null MX, RFC7505)';
    }
}
Reason/ExpectingDomainLiteralClose.php000064400000000454151520657540014102 0ustar00<?php

namespace Egulias\EmailValidator\Result\Reason;

class ExpectingDomainLiteralClose implements Reason
{
    public function code() : int
    {
        return 137;
    }

    public function description() : string
    {
        return "Closing bracket ']' for domain literal not found";
    }
}
Reason/NoDNSRecord.php000064400000000431151520657540010574 0ustar00<?php

namespace Egulias\EmailValidator\Result\Reason;

class NoDNSRecord implements Reason 
{
    public function code() : int
    {
        return 5;
    }

    public function description() : string
    {
        return 'No MX or A DSN record was found for this email';
    }
}
Reason/ConsecutiveAt.php000064400000000406151520657540011272 0ustar00<?php

namespace Egulias\EmailValidator\Result\Reason;

class ConsecutiveAt implements Reason
{
    public function code() : int
    {
        return 128;
    }

    public function description() : string
    {
        return '@ found after another @';
    }

}
Reason/SpoofEmail.php000064400000000451151520657540010554 0ustar00<?php

namespace Egulias\EmailValidator\Result\Reason;

class SpoofEmail implements Reason
{
    public function code() : int
    {
        return 298;
    }

    public function description() : string
    {
        return 'The email contains mixed UTF8 chars that makes it suspicious'; 
    }

}
Reason/ExceptionFound.php000064400000000676151520657540011461 0ustar00<?php

namespace Egulias\EmailValidator\Result\Reason;

class ExceptionFound implements Reason
{
    /**
     * @var \Exception
     */
    private $exception;

    public function __construct(\Exception $exception)
    {
        $this->exception = $exception;
        
    }
    public function code() : int
    {
        return 999;
    }

    public function description() : string
    {
        return $this->exception->getMessage();
    }
}
Reason/CRLFAtTheEnd.php000064400000000507151520657540010623 0ustar00<?php

namespace Egulias\EmailValidator\Result\Reason;

class CRLFAtTheEnd implements Reason
{
    public const CODE = 149;
    public const REASON = "CRLF at the end";

    public function code() : int
    {
        return 149;
    }

    public function description() : string
    {
        return 'CRLF at the end';
    }
}
Reason/UnclosedComment.php000064400000000416151520657540011616 0ustar00<?php

namespace Egulias\EmailValidator\Result\Reason;

class UnclosedComment implements Reason 
{
    public function code() : int
    {
        return 146;
    }

    public function description(): string
    {
        return 'No closing comment token found';
    }
}
Reason/UnOpenedComment.php000064400000000506151520657540011557 0ustar00<?php

namespace Egulias\EmailValidator\Result\Reason;

class UnOpenedComment implements Reason
{
    public function code() : int
    {
        return 152;
    }

    public function description(): string
    {
        return 'Missing opening comment parentheses - https://tools.ietf.org/html/rfc5322#section-3.2.2';
    }
}
Reason/DotAtStart.php000064400000000374151520657540010553 0ustar00<?php

namespace Egulias\EmailValidator\Result\Reason;

class DotAtStart implements Reason
{
    public function code() : int
    {
        return 141;
    }

    public function description() : string
    {
        return "Starts with a DOT";
    }
}
Reason/DomainHyphened.php000064400000000414151520657540011411 0ustar00<?php

namespace Egulias\EmailValidator\Result\Reason;

class DomainHyphened extends DetailedReason
{
    public function code() : int
    {
        return 144;
    }

    public function description() : string
    {
        return 'S_HYPHEN found in domain';
    }
}
Reason/NoLocalPart.php000064400000000372151520657540010676 0ustar00<?php

namespace Egulias\EmailValidator\Result\Reason;

class NoLocalPart implements Reason 
{
    public function code() : int
    {
        return 130;
    }

    public function description() : string
    {
        return "No local part";
    }
}
Reason/ExpectingDTEXT.php000064400000000376151520657540011263 0ustar00<?php

namespace Egulias\EmailValidator\Result\Reason;

class ExpectingDTEXT implements Reason
{
    public function code() : int
    {
        return 129;
    }

    public function description() : string
    {
        return 'Expecting DTEXT';
    }
}
Reason/UnableToGetDNSRecord.php000064400000000544151520657540012376 0ustar00<?php

namespace Egulias\EmailValidator\Result\Reason;

/**
 * Used on SERVFAIL, TIMEOUT or other runtime and network errors
 */
class UnableToGetDNSRecord extends NoDNSRecord
{
    public function code() : int
    {
        return 3;
    }

    public function description() : string
    {
        return 'Unable to get DNS records for the host';
    }
}
Reason/LabelTooLong.php000064400000000430151520657540011034 0ustar00<?php

namespace Egulias\EmailValidator\Result\Reason;

class LabelTooLong implements Reason
{
    public function code() : int
    {
        return 245;
    }

    public function description() : string
    {
        return 'Domain "label" is longer than 63 characters';
    }
}
Reason/LocalOrReservedDomain.php000064400000000447151520657540012706 0ustar00<?php

namespace Egulias\EmailValidator\Result\Reason;

class LocalOrReservedDomain implements Reason
{
    public function code() : int
    {
        return 153;
    }

    public function description() : string
    {
        return 'Local, mDNS or reserved domain (RFC2606, RFC6762)';
    }
}
Reason/CRLFX2.php000064400000000400151520657540007450 0ustar00<?php

namespace Egulias\EmailValidator\Result\Reason;

class CRLFX2 implements Reason
{
    public function code() : int
    {
        return 148;
    }

    public function description() : string
    {
        return 'CR  LF tokens found twice';
    }
}