diff --git a/.gitignore b/.gitignore index 965800fd..d7844db3 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,4 @@ vendor/* -!vendor/composer/ .idea *.ini *.pem diff --git a/Protocols/EPP/eppConnection.php b/Protocols/EPP/eppConnection.php index 1c5fdf21..63ab60b3 100755 --- a/Protocols/EPP/eppConnection.php +++ b/Protocols/EPP/eppConnection.php @@ -432,8 +432,8 @@ public function request($eppRequest) { } if (($response = $this->writeandread($eppRequest)) instanceof $check) { // $response->Success() will trigger an eppException when fails have occurred - if ((is_array($this->exceptions)) && (count($this->exceptions)>0)) { - foreach($this->exceptions as $exceptionhandler) { + if ((is_array($this->exceptions)) && (count($this->exceptions) > 0)) { + foreach ($this->exceptions as $exceptionhandler) { $response->addException($exceptionhandler); } } @@ -441,7 +441,7 @@ public function request($eppRequest) { return $response; } else { /* @var $response eppResponse */ - throw new eppException("Return class $check expected, but received a ".get_class($response)." class",0,null,null,$eppRequest->saveXML()); + throw new eppException("Return class $check expected, but received a " . get_class($response) . " class", 0, null, null, $eppRequest->saveXML()); } } @@ -494,11 +494,11 @@ public function request($eppRequest) { * * @param boolean $enableReadSleep * @param boolean $incrementorEnabled - * @param integer $initialReadSleepTime - * @param integer $limit - * @param integer $readSleepTimeIncrementorLimit - * @param integer $incrementor1 - * @param integer $incrementor2 + * @param integer $initialReadSleepTime + * @param integer $limit + * @param integer $readSleepTimeIncrementorLimit + * @param integer $incrementor1 + * @param integer $incrementor2 */ public function setReadTimings( $enableReadSleep = true, @@ -524,7 +524,7 @@ public function setReadTimings( * @return string * @throws eppException */ - public function read($nonBlocking=false) { + public function read($nonBlocking = false) { $content = ''; $time = time() + $this->timeout; $read = ""; @@ -532,7 +532,7 @@ public function read($nonBlocking=false) { if (feof($this->connection)) { $this->loggedin = false; $this->connected = false; - throw new eppException ('Unexpected closed connection by remote host...',0,null,null,$read); + throw new eppException ('Unexpected closed connection by remote host...', 0, null, null, $read); } //Check if timeout occured if (time() >= $time) { @@ -824,11 +824,11 @@ public function writeandread($content) { $response = $this->createResponse($content); /* @var $response eppResponse */ if (!$response) { - throw new eppException("No valid response from server",0,null,null,$content); + throw new eppException("No valid response from server", 0, null, null, $content); } $content->preserveWhiteSpace = false; $content->formatOutput = true; - $this->writeLog($content->saveXML(null, LIBXML_NOEMPTYTAG),"WRITE"); + $this->writeLog($content->saveXML(null, LIBXML_NOEMPTYTAG), "WRITE"); //print_r($content->saveXML(null, LIBXML_NOEMPTYTAG)); #XML Debug Output @@ -837,21 +837,21 @@ public function writeandread($content) { $readcounter = 0; $xml = $this->read(); // When no data is present on the stream, retry reading several times - while ((strlen($xml)==0) && ($readcounter < $this->retry)) { + while ((strlen($xml) == 0) && ($readcounter < $this->retry)) { $xml = $this->read(); $readcounter++; } if (strlen($xml)) { - set_error_handler(array($this,'HandleXmlError')); + set_error_handler(array($this, 'HandleXmlError')); if ($response->loadXML($xml)) { restore_error_handler(); $response->preserveWhiteSpace = false; $response->formatOutput = true; $this->writeLog($response->formatContents(), "READ"); $clienttransid = $response->getClientTransactionId(); - if (($this->checktransactionids) && ($clienttransid) && ($clienttransid != $requestsessionid) && ($clienttransid!='{{clTRID}}')) { - throw new eppException("Client transaction id $requestsessionid does not match returned $clienttransid",0,null,null,$xml); + if (($this->checktransactionids) && ($clienttransid) && ($clienttransid != $requestsessionid) && ($clienttransid != '{{clTRID}}')) { + throw new eppException("Client transaction id $requestsessionid does not match returned $clienttransid", 0, null, null, $xml); } $response->setXpath($this->getServices()); $response->setXpath($this->getExtensions()); @@ -868,7 +868,7 @@ public function writeandread($content) { throw new eppException('Empty XML document when receiving data!'); } } else { - throw new eppException('Error writing content',0,null,null,$content); + throw new eppException('Error writing content', 0, null, null, $content); } return null; } @@ -882,7 +882,7 @@ public function createResponse($request) { } } if (!$response) { - throw new eppException('No valid response class found for request class '.get_class($request)); + throw new eppException('No valid response class found for request class ' . get_class($request)); } return $response; } @@ -976,7 +976,7 @@ public function setRetry($retry) $this->retry = $retry; } - public function addDefaultNamespace($xmlns, $namespace, $addxmlns=true) { + public function addDefaultNamespace($xmlns, $namespace, $addxmlns = true) { if ($addxmlns) { $this->defaultnamespace[$namespace] = 'xmlns:' . $xmlns; } else { @@ -1049,9 +1049,9 @@ public function setExtensions($extensions) { */ public function useExtension($namespace) { if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') { - $includepath = dirname(__FILE__).'\\eppExtensions\\'.$namespace.'\\includes.php'; + $includepath = dirname(__FILE__) . '\\eppExtensions\\' . $namespace . '\\includes.php'; } else { - $includepath = dirname(__FILE__).'/eppExtensions/'.$namespace.'/includes.php'; + $includepath = dirname(__FILE__) . '/eppExtensions/' . $namespace . '/includes.php'; } if (is_file($includepath)) { include($includepath); @@ -1115,47 +1115,47 @@ public function setConnectionDetails($result) { $this->setUsername($result['userid']); $this->setPassword($result['password']); - if (array_key_exists('port',$result)) { + if (array_key_exists('port', $result)) { $this->setPort($result['port']); } else { $this->setPort(700); } - if (array_key_exists('timeout',$result)) { + if (array_key_exists('timeout', $result)) { $this->setTimeout($result['timeout']); } else { $this->setTimeout(10); } - if (array_key_exists('logging',$result)) { - if (($result['logging']=='true') || ($result['logging']=='yes') || ($result['logging']=='1')) { + if (array_key_exists('logging', $result)) { + if (($result['logging'] == 'true') || ($result['logging'] == 'yes') || ($result['logging'] == '1')) { $this->enableLogging(); } } - if (array_key_exists('certificatefile',$result) && array_key_exists('certificatepassword',$result)) { + if (array_key_exists('certificatefile', $result) && array_key_exists('certificatepassword', $result)) { // Enter the path to your certificate and the password here $this->enableCertification($result['certificatefile'], $result['certificatepassword']); - } elseif (array_key_exists('certificatefile',$result)) { + } elseif (array_key_exists('certificatefile', $result)) { // Enter the path to your certificate without password $this->enableCertification($result['certificatefile'], null); } - if (array_key_exists('verifypeer',$result)) { - if (($result['verifypeer']=='true') || ($result['verifypeer']=='yes') || ($result['verifypeer']=='1')) { + if (array_key_exists('verifypeer', $result)) { + if (($result['verifypeer'] == 'true') || ($result['verifypeer'] == 'yes') || ($result['verifypeer'] == '1')) { $this->verify_peer = true; } else { $this->verify_peer = false; } } - if (array_key_exists('verifypeername',$result)) { - if (($result['verifypeername']=='true') || ($result['verifypeername']=='yes') || ($result['verifypeername']=='1')) { + if (array_key_exists('verifypeername', $result)) { + if (($result['verifypeername'] == 'true') || ($result['verifypeername'] == 'yes') || ($result['verifypeername'] == '1')) { $this->verify_peer_name = true; } else { $this->verify_peer_name = false; } } - if (array_key_exists('allowselfsigned',$result)) { - if (($result['allowselfsigned']=='true') || ($result['allowselfsigned']=='yes') || ($result['allowselfsigned']=='1')) { + if (array_key_exists('allowselfsigned', $result)) { + if (($result['allowselfsigned'] == 'true') || ($result['allowselfsigned'] == 'yes') || ($result['allowselfsigned'] == '1')) { $this->allow_self_signed = true; } else { $this->allow_self_signed = false; @@ -1182,7 +1182,7 @@ static function loadSettings($directory, $settingsfile) { $result = []; $settings = file($path, FILE_IGNORE_NEW_LINES); foreach ($settings as $setting) { - if (strlen(trim($setting))>0) { + if (strlen(trim($setting)) > 0) { list($param, $value) = explode('=', $setting, 2); $param = trim($param); $value = trim($value); @@ -1220,22 +1220,22 @@ private function showLog() { } } - protected function writeLog($text,$action) { + protected function writeLog($text, $action) { if ($this->logging) { // Hide userid in the logging - $text = $this->hideTextBetween($text,'',''); + $text = $this->hideTextBetween($text, '', ''); // Hide password in the logging - $text = $this->hideTextBetween($text,'',''); - $text = $this->hideTextBetween($text,''); + $text = $this->hideTextBetween($text, '', ''); + $text = $this->hideTextBetween($text, ''); // Hide new password in the logging - $text = $this->hideTextBetween($text,'',''); - $text = $this->hideTextBetween($text,''); + $text = $this->hideTextBetween($text, '', ''); + $text = $this->hideTextBetween($text, ''); // Hide domain password in the logging - $text = $this->hideTextBetween($text,'',''); - $text = $this->hideTextBetween($text,''); + $text = $this->hideTextBetween($text, '', ''); + $text = $this->hideTextBetween($text, ''); // Hide contact password in the logging - $text = $this->hideTextBetween($text,'',''); - $text = $this->hideTextBetween($text,''); + $text = $this->hideTextBetween($text, '', ''); + $text = $this->hideTextBetween($text, ''); //echo "-----".date("Y-m-d H:i:s")."-----".$text."-----end-----\n"; $log = "-----" . $action . "-----" . date("Y-m-d H:i:s") . "-----\n" . $text . "\n-----END-----" . date("Y-m-d H:i:s") . "-----\n"; $this->logentries[] = $log; @@ -1252,9 +1252,9 @@ protected function writeLog($text,$action) { * @return string */ protected function hideTextBetween($text, $start, $end) { - if (($startpos = strpos(strtolower($text),strtolower($start))) !== false) { - if (($endpos = strpos(strtolower($text),strtolower($end))) !== false) { - $text = substr($text,0,$startpos+strlen($start)).'XXXXXXXXXXXXXXXX'.substr($text,$endpos,99999); + if (($startpos = strpos(strtolower($text), strtolower($start))) !== false) { + if (($endpos = strpos(strtolower($text), strtolower($end))) !== false) { + $text = substr($text, 0, $startpos + strlen($start)) . 'XXXXXXXXXXXXXXXX' . substr($text, $endpos, 99999); } } return $text; diff --git a/Protocols/EPP/eppExtensions/brdomain-ext-1.0/eppData/brDomain.php b/Protocols/EPP/eppExtensions/brdomain-ext-1.0/eppData/brDomain.php new file mode 100644 index 00000000..f808b7d7 --- /dev/null +++ b/Protocols/EPP/eppExtensions/brdomain-ext-1.0/eppData/brDomain.php @@ -0,0 +1,149 @@ +ticketNumber; + } + + /** + * @param string $ticketNumber + */ + public function setTicketNumber(string $ticketNumber): void + { + $this->ticketNumber = $ticketNumber; + } + + /** + * @return string + */ + public function getOrganization(): string + { + return $this->organization; + } + + /** + * @param string $organization + */ + public function setOrganization(string $organization): void + { + $this->organization = $organization; + } + + /** + * @return array + */ + public function getReleaseProcessFlags(): array + { + return $this->releaseProcessFlags; + } + + /** + * @param array $releaseProcessFlags + */ + public function setReleaseProcessFlags(array $releaseProcessFlags): void + { + $this->releaseProcessFlags = $releaseProcessFlags; + } + + /** + * @return array + */ + public function getPending(): array + { + return $this->pending; + } + + /** + * @param array $pending + */ + public function setPending(array $pending): void + { + $this->pending = $pending; + } + + /** + * @return array + */ + public function getDoc(): array + { + return $this->doc; + } + + /** + * @param array $doc + */ + public function setDoc(array $doc): void + { + $this->doc = $doc; + } + + /** + * @return array + */ + public function getReleaseProc(): array + { + return $this->releaseProc; + } + + /** + * @param array $releaseProc + */ + public function setReleaseProc(array $releaseProc): void + { + $this->releaseProc = $releaseProc; + } + + /** + * @return array + */ + public function getNs(): array + { + return $this->ns; + } + + /** + * @param array $ns + */ + public function setNs(array $ns): void + { + $this->ns = $ns; + } +} diff --git a/Protocols/EPP/eppExtensions/brdomain-ext-1.0/eppRequests/eppCheckBrDomainRequest.php b/Protocols/EPP/eppExtensions/brdomain-ext-1.0/eppRequests/eppCheckBrDomainRequest.php new file mode 100644 index 00000000..490d08ad --- /dev/null +++ b/Protocols/EPP/eppExtensions/brdomain-ext-1.0/eppRequests/eppCheckBrDomainRequest.php @@ -0,0 +1,58 @@ + + + + + + example.com.br + example.net.br + example.org.br + + + + + + 005.506.560/0001-36 + + + + ABC-12345 + + + + */ + + /** + * @throws eppException + */ + public function __construct($checkrequest, $namespacesinroot = true) + { + parent::__construct($checkrequest, $namespacesinroot); + } + + public function setOrganization(brOrg $brOrg) { + $extension = $this->getExtension(); + $check = $this->createElement('brdomain:check'); + $check->setAttribute('xmlns:brdomain','urn:ietf:params:xml:ns:brdomain-1.0'); + $check->setAttribute('xsi:schemaLocation','urn:ietf:params:xml:ns:brdomain-1.0 brdomain-1.0.xsd'); + $oganization = $this->createElement('brdomain:organization', $brOrg->getOrganization()); + $check->appendChild($oganization); + $extension->appendChild($check); + $this->extension = $extension; + } +} \ No newline at end of file diff --git a/Protocols/EPP/eppExtensions/brdomain-ext-1.0/eppRequests/eppCreateBrDomainRequest.php b/Protocols/EPP/eppExtensions/brdomain-ext-1.0/eppRequests/eppCreateBrDomainRequest.php new file mode 100644 index 00000000..58405bce --- /dev/null +++ b/Protocols/EPP/eppExtensions/brdomain-ext-1.0/eppRequests/eppCreateBrDomainRequest.php @@ -0,0 +1,85 @@ + + + + + + example.com.br + + + ns1.example.com.br + 192.0.2.1 + + + ns1.example.net.br + + + fan + fan + fan + + 2fooBAR + + + + + + + 005.506.560/0001-36 + + + + + + ABC-12345 + + + */ + + /** + * @throws eppException + */ + public function __construct($createinfo, $forcehostattr = false, $namespacesinroot = true, $usecdata = true) + { + parent::__construct($createinfo, $forcehostattr = false, $namespacesinroot = true, $usecdata = true); + } + + /** + * @param string $organization + * @return void + */ + public function create(string $organization, bool $autoRenew = false) { + $this->addExtension('xmlns:brdomain', 'urn:ietf:params:xml:ns:brdomain-1.0'); + $ext = $this->createElement('extension'); + $organization = $this->createElement('brdomain:organization'); + $create = $this->createElement('dnsbe:create'); + $domain = $this->createElement('dnsbe:domain'); + if(is_array($nsgroup)){ + foreach ($nsgroup as $nsgroupname){ + $domain->appendChild($this->createElement('dnsbe:nsgroup', $nsgroupname)); + } + } + else { + $domain->appendChild($this->createElement('dnsbe:nsgroup', $nsgroup)); + } + $create->appendChild($domain); + $dnsext->appendChild($create); + $ext->appendChild($dnsext); + $this->getCommand()->appendChild($ext); + $this->addSessionId(); + } +} \ No newline at end of file diff --git a/Protocols/EPP/eppExtensions/brdomain-ext-1.0/eppResponses/eppCheckBrDomainResponse.php b/Protocols/EPP/eppExtensions/brdomain-ext-1.0/eppResponses/eppCheckBrDomainResponse.php new file mode 100644 index 00000000..49d26ae1 --- /dev/null +++ b/Protocols/EPP/eppExtensions/brdomain-ext-1.0/eppResponses/eppCheckBrDomainResponse.php @@ -0,0 +1,8 @@ +addExtension('brdomain', 'urn:ietf:params:xml:ns:brdomain-1.0'); + +include_once(dirname(__FILE__) . '/eppData/brDomain.php'); + +include_once(dirname(__FILE__) . '/eppRequests/eppCheckBrDomainRequest.php'); +include_once(dirname(__FILE__) . '/eppResponses/eppCheckBrDomainResponse.php'); +$this->addCommandResponse('Metaregistrar\EPP\eppCheckBrDomainRequest', 'Metaregistrar\EPP\eppCheckBrDomainResponse'); + +#include_once(dirname(__FILE__) . '/eppRequests/eppCreateBrDomainRequest.php'); +#include_once(dirname(__FILE__) . '/eppRequests/eppCreateBrDomainResponse.php'); +#$this->addCommandResponse('Metaregistrar\EPP\eppCreateBrDomainRequest', 'Metaregistrar\EPP\eppCreateBrDomainRequest'); + diff --git a/Protocols/EPP/eppExtensions/brorg-ext-1.0/eppData/brOrg.php b/Protocols/EPP/eppExtensions/brorg-ext-1.0/eppData/brOrg.php new file mode 100644 index 00000000..4d6abfe5 --- /dev/null +++ b/Protocols/EPP/eppExtensions/brorg-ext-1.0/eppData/brOrg.php @@ -0,0 +1,235 @@ + + S: 005.506.560/0001-36 + S: + S: fan + S: John Doe + S: 2006-06-06T06:00:00.0Z + S: antispam.br + S: cert.br + S: dns.br + S: nic.br + S: ptt.br + S: registro.br + S: 64500 + S: + S: 192.168.0.0 + S: 192.168.0.255 + S: + S: true + + * + */ + + /** @var string */ + private $orgId; + + /** @var string */ + private $organization; + + /** @var string */ + private $contact; + + /** @var string */ + private $contactType; + + /** @var string */ + private $responsible; + + /** @var \DateTime */ + private $expirationDate; + + /** @var array */ + private $domainName; + + /** @var int */ + private $asNumber; + + /** @var boolean */ + private $suspended; + + /** + * @param $postalInfo + * @param $email + * @param $voice + * @param $fax + * @param $password + * @param $status + */ + public function __construct($postalInfo = null, $email = null, $voice = null, $fax = null, $password = null, $status = null) + { + parent::__construct($postalInfo, $email, $voice, $fax, $password, $status); + } + + /** + * @return string + */ + public function getOrgId(): string + { + return $this->orgId; + } + + /** + * @param string $orgId + * @return brOrg + */ + public function setOrgId(string $orgId): brOrg + { + $this->orgId = $orgId; + return $this; + } + + /** + * @return string + */ + public function getOrganization(): string + { + return $this->organization; + } + + /** + * @param string $organization + * @return brOrg + */ + public function setOrganization(string $organization): brOrg + { + $this->organization = $organization; + return $this; + } + + /** + * @return string + */ + public function getContact(): string + { + return $this->contact; + } + + /** + * @param string $contact + * @return brOrg + */ + public function setContact(string $contact): brOrg + { + $this->contact = $contact; + return $this; + } + + /** + * @return string + */ + public function getContactType(): string + { + return $this->contactType; + } + + /** + * @param string $contactType + * @return brOrg + */ + public function setContactType(string $contactType): brOrg + { + $this->contactType = $contactType; + return $this; + } + + /** + * @return string + */ + public function getResponsible(): string + { + return $this->responsible; + } + + /** + * @param string $responsible + * @return brOrg + */ + public function setResponsible(string $responsible): brOrg + { + $this->responsible = $responsible; + return $this; + } + + /** + * @return \DateTime + */ + public function getExpirationDate(): \DateTime + { + return $this->expirationDate; + } + + /** + * @param \DateTime $expirationDate + * @return brOrg + */ + public function setExpirationDate(\DateTime $expirationDate): brOrg + { + $this->expirationDate = $expirationDate; + return $this; + } + + /** + * @return array + */ + public function getDomainName(): array + { + return $this->domainName; + } + + /** + * @param array $domainName + * @return brOrg + */ + public function setDomainName(array $domainName): brOrg + { + $this->domainName = $domainName; + return $this; + } + + /** + * @return int + */ + public function getAsNumber(): int + { + return $this->asNumber; + } + + /** + * @param int $asNumber + * @return brOrg + */ + public function setAsNumber(int $asNumber): brOrg + { + $this->asNumber = $asNumber; + return $this; + } + + /** + * @return bool + */ + public function isSuspended(): bool + { + return $this->suspended; + } + + /** + * @param bool $suspended + * @return brOrg + */ + public function setSuspended(bool $suspended): brOrg + { + $this->suspended = $suspended; + return $this; + } +} diff --git a/Protocols/EPP/eppExtensions/brorg-ext-1.0/eppRequests/eppCheckBrOrgRequest.php b/Protocols/EPP/eppExtensions/brorg-ext-1.0/eppRequests/eppCheckBrOrgRequest.php new file mode 100644 index 00000000..98327875 --- /dev/null +++ b/Protocols/EPP/eppExtensions/brorg-ext-1.0/eppRequests/eppCheckBrOrgRequest.php @@ -0,0 +1,62 @@ + + C: + C: + C: + C: + C: e123456 + C: e654321 + C: + C: + C: + C: + C: + C: e123456 + C: + C: 043.828.151/0001-45 + C: + C: + C: + C: e654321 + C: + C: 005.506.560/0001-36 + C: + C: + C: + C: + C: ABC-12345 + C: + C: + */ + + public function __construct($checkrequest, $namespacesinroot = true) + { + parent::__construct($checkrequest, $namespacesinroot); + } + + /** + * @throws DOMException + */ + public function setOrganization(brOrg $brOrg) { + $extension = $this->getExtension(); + $check = $this->createElement('brorg:check'); + $check->setAttribute('xmlns:brorg','urn:ietf:params:xml:ns:brorg-1.0'); + $cd = $this->createElement('brorg:cd'); + $oganization = $this->createElement('brorg:organization', $brOrg->getOrganization()); + + $cd->appendChild($oganization); + $check->appendChild($cd); + $extension->appendChild($check); + $this->extension = $extension; + } +} diff --git a/Protocols/EPP/eppExtensions/brorg-ext-1.0/eppRequests/eppCreateBrOrgRequest.php b/Protocols/EPP/eppExtensions/brorg-ext-1.0/eppRequests/eppCreateBrOrgRequest.php new file mode 100644 index 00000000..5dc11beb --- /dev/null +++ b/Protocols/EPP/eppExtensions/brorg-ext-1.0/eppRequests/eppCreateBrOrgRequest.php @@ -0,0 +1,28 @@ +getExtension(); + $create = $this->createElement('brorg:create'); + $create->setAttribute('xmlns:brorg','urn:ietf:params:xml:ns:brorg-1.0'); + + $oganization = $this->createElement('brorg:organization', $organization->getOrganization()); + $create->appendChild($oganization); + + $contact = $this->createElement('brorg:contact', $organization->getContact()); + $contact->setAttribute('type', $organization->getContactType()); + $create->appendChild($contact); + + $responsible = $this->createElement('brorg:responsible', $organization->getResponsible()); + $create->appendChild($responsible); + + $extension->appendChild($create); + $this->extension = $extension; + } +} \ No newline at end of file diff --git a/Protocols/EPP/eppExtensions/brorg-ext-1.0/eppRequests/eppInfoBrOrgRequest.php b/Protocols/EPP/eppExtensions/brorg-ext-1.0/eppRequests/eppInfoBrOrgRequest.php new file mode 100644 index 00000000..bcced0f8 --- /dev/null +++ b/Protocols/EPP/eppExtensions/brorg-ext-1.0/eppRequests/eppInfoBrOrgRequest.php @@ -0,0 +1,58 @@ + + C: + C: + C: + C: + C: e123456 + C: e654321 + C: + C: + C: + C: + C: + C: e123456 + C: + C: 043.828.151/0001-45 + C: + C: + C: + C: e654321 + C: + C: 005.506.560/0001-36 + C: + C: + C: + C: + C: ABC-12345 + C: + C: + */ + + function __construct($inforequest, $namespacesinroot = true, $usecdata = true) { + parent::__construct($inforequest, $namespacesinroot, $usecdata); + } + + /** + * @throws DOMException + */ + public function setOrganization(brOrg $brOrg) { + $extension = $this->getExtension(); + $info = $this->createElement('brorg:info'); + $info->setAttribute('xmlns:brorg','urn:ietf:params:xml:ns:brorg-1.0'); + $oganization = $this->createElement('brorg:organization', $brOrg->getOrganization()); + $info->appendChild($oganization); + $extension->appendChild($info); + $this->extension = $extension; + } +} diff --git a/Protocols/EPP/eppExtensions/brorg-ext-1.0/eppResponses/eppCheckBrOrgResponse.php b/Protocols/EPP/eppExtensions/brorg-ext-1.0/eppResponses/eppCheckBrOrgResponse.php new file mode 100644 index 00000000..d3a73673 --- /dev/null +++ b/Protocols/EPP/eppExtensions/brorg-ext-1.0/eppResponses/eppCheckBrOrgResponse.php @@ -0,0 +1,23 @@ +xPath(); + $result = $xpath->query('/epp:epp/epp:response/epp:extension/brorg:chkData/brorg:ticketInfo:*'); + if ($result->length > 0) { + $brOrg = new brOrg(); + return $brOrg; + } + + return null; + } +} diff --git a/Protocols/EPP/eppExtensions/brorg-ext-1.0/eppResponses/eppCreateBrOrgResponse.php b/Protocols/EPP/eppExtensions/brorg-ext-1.0/eppResponses/eppCreateBrOrgResponse.php new file mode 100644 index 00000000..61f635bd --- /dev/null +++ b/Protocols/EPP/eppExtensions/brorg-ext-1.0/eppResponses/eppCreateBrOrgResponse.php @@ -0,0 +1,19 @@ +queryPath('/epp:epp/epp:response/epp:extension/brorg:creData/brorg:organization')) { + return new brOrg($handle); + } + return null; + } +} diff --git a/Protocols/EPP/eppExtensions/brorg-ext-1.0/eppResponses/eppInfoBrOrgResponse.php b/Protocols/EPP/eppExtensions/brorg-ext-1.0/eppResponses/eppInfoBrOrgResponse.php new file mode 100644 index 00000000..f1602bda --- /dev/null +++ b/Protocols/EPP/eppExtensions/brorg-ext-1.0/eppResponses/eppInfoBrOrgResponse.php @@ -0,0 +1,19 @@ +queryPath('/epp:epp/epp:response/epp:extension/brorg:creData/brorg:organization')) { + return new brOrg($handle); + } + return null; + } +} diff --git a/Protocols/EPP/eppExtensions/brorg-ext-1.0/includes.php b/Protocols/EPP/eppExtensions/brorg-ext-1.0/includes.php new file mode 100644 index 00000000..b448ecc9 --- /dev/null +++ b/Protocols/EPP/eppExtensions/brorg-ext-1.0/includes.php @@ -0,0 +1,17 @@ +addExtension('brorg', 'urn:ietf:params:xml:ns:brorg-1.0'); + +include_once(dirname(__FILE__) . '/eppData/brOrg.php'); + +include_once(dirname(__FILE__) . '/eppRequests/eppCheckBrOrgRequest.php'); +include_once(dirname(__FILE__) . '/eppResponses/eppCheckBrOrgResponse.php'); +$this->addCommandResponse('Metaregistrar\EPP\eppCheckBrOrgRequest', 'Metaregistrar\EPP\eppCheckBrOrgResponse'); + +include_once(dirname(__FILE__) . '/eppRequests/eppCreateBrOrgRequest.php'); +include_once(dirname(__FILE__) . '/eppResponses/eppCreateBrOrgResponse.php'); +$this->addCommandResponse('Metaregistrar\EPP\eppCreateBrOrgRequest', 'Metaregistrar\EPP\eppCreateBrOrgResponse'); + +include_once(dirname(__FILE__) . '/eppRequests/eppInfoBrOrgRequest.php'); +include_once(dirname(__FILE__) . '/eppResponses/eppInfoBrOrgResponse.php'); +$this->addCommandResponse('Metaregistrar\EPP\eppInfoBrOrgRequest', 'Metaregistrar\EPP\eppInfoBrOrgResponse'); diff --git a/Protocols/EPP/eppRequests/eppRequest.php b/Protocols/EPP/eppRequests/eppRequest.php index 08acc703..07aae932 100644 --- a/Protocols/EPP/eppRequests/eppRequest.php +++ b/Protocols/EPP/eppRequests/eppRequest.php @@ -64,6 +64,8 @@ class eppRequest extends \DOMDocument { function __construct() { $this->sessionid = uniqid(); parent::__construct('1.0', 'UTF-8'); + $this->getEpp()->setAttribute('xmlns:xsi', 'http://www.w3.org/2001/XMLSchema-instance'); + $this->getEpp()->setAttribute('xsi:schemaLocation', 'urn:ietf:params:xml:ns:epp-1.0 epp-1.0.xsd'); $this->formatOutput = true; //$this->standalone = false; #$this->validateOnParse = true; diff --git a/Registries/registrobrEppConnection/eppConnection.php b/Registries/registrobrEppConnection/eppConnection.php new file mode 100644 index 00000000..f0249bcc --- /dev/null +++ b/Registries/registrobrEppConnection/eppConnection.php @@ -0,0 +1,104 @@ +local_ca_path) { + return parent::connect($hostname, $port); + } + + $context = stream_context_create(); + stream_context_set_option($context, 'ssl', 'ca_file', $this->local_ca_path); + + stream_context_set_option($context, 'ssl', 'verify_peer', $this->verify_peer); + stream_context_set_option($context, 'ssl', 'verify_peer_name', $this->verify_peer_name); + + if ($this->local_cert_path) { + stream_context_set_option($context, 'ssl', 'local_cert', $this->local_cert_path); + if (isset($this->local_cert_pwd) && (strlen($this->local_cert_pwd) > 0)) { + stream_context_set_option($context, 'ssl', 'passphrase', $this->local_cert_pwd); + } + if (isset($this->allow_self_signed)) { + stream_context_set_option($context, 'ssl', 'allow_self_signed', $this->allow_self_signed); + stream_context_set_option($context, 'ssl', 'verify_peer', false); + } else { + stream_context_set_option($context, 'ssl', 'verify_peer', $this->verify_peer); + } + } + + if ($hostname) { + $this->hostname = $hostname; + } + if ($port) { + $this->port = $port; + } + + $this->connection = stream_socket_client($this->hostname . ':' . $this->port, $errno, $errstr, $this->timeout, STREAM_CLIENT_CONNECT, $context); + if (is_resource($this->connection)) { + stream_set_blocking($this->connection, $this->blocking); + stream_set_timeout($this->connection, $this->timeout); + if ($errno == 0) { + $meta = stream_get_meta_data($this->connection); + if (isset($meta['crypto'])) { + $this->writeLog("Stream opened to " . $this->getHostname() . " port " . $this->getPort() . " with protocol " . $meta['crypto']['protocol'] . ", cipher " . $meta['crypto']['cipher_name'] . ", " . $meta['crypto']['cipher_bits'] . " bits " . $meta['crypto']['cipher_version'], "Connection made"); + } else { + $this->writeLog("Stream opened to " . $this->getHostname() . " port " . $this->getPort(), "Connection made"); + } + $this->connected = true; + $this->read(); + } + return $this->connected; + } else { + $this->writeLog("Connection could not be opened: $errno $errstr", "ERROR"); + return false; + } + + } + + /** + * @return string + */ + public function getLocalCaPath(): string + { + return $this->local_ca_path; + } + + /** + * @param string $localCaPath + */ + public function setLocalCaPath(string $localCaPath) + { + $this->local_ca_path = $localCaPath; + } +} diff --git a/Registries/registrobrEppConnection/registrobr.ini.dist b/Registries/registrobrEppConnection/registrobr.ini.dist new file mode 100644 index 00000000..51ad78e3 --- /dev/null +++ b/Registries/registrobrEppConnection/registrobr.ini.dist @@ -0,0 +1,10 @@ +interface=registrobrEppConnection +hostname=tls://beta.registro.br +port=700 +userid= +password= + +verifypeer=false +verifypeername=false +certificatefile= +cafile= \ No newline at end of file diff --git a/Registries/registrobrEppConnection/registrobrdomain.php b/Registries/registrobrEppConnection/registrobrdomain.php new file mode 100644 index 00000000..c80869dc --- /dev/null +++ b/Registries/registrobrEppConnection/registrobrdomain.php @@ -0,0 +1,25 @@ +login()) { + $domains = [ + new \Metaregistrar\EPP\brDomain('skymail.com.br'), + new \Metaregistrar\EPP\brDomain('skymail.net.br'), + new \Metaregistrar\EPP\brDomain('skymail.gov.br'), + new \Metaregistrar\EPP\brDomain('skymail.org.br'), + ]; + $infoDomainRequest = new \Metaregistrar\EPP\eppCheckBrDomainRequest($domains); + $conn->request($infoDomainRequest); + } + } +} catch (eppException $e) { + echo "ERROR: " . $e->getMessage() . "\n"; + echo $e->getLastCommand(); + echo "\n\n"; +} diff --git a/Registries/registrobrEppConnection/scripts/checkorganization.php b/Registries/registrobrEppConnection/scripts/checkorganization.php new file mode 100644 index 00000000..676c6f2a --- /dev/null +++ b/Registries/registrobrEppConnection/scripts/checkorganization.php @@ -0,0 +1,22 @@ +login()) { + $contactHandle = new \Metaregistrar\EPP\eppContactHandle(1); + $request = new \Metaregistrar\EPP\eppCheckBrOrgRequest($contactHandle); + $brOrg = new \Metaregistrar\EPP\brOrg(); + $brOrg->setOrganization('17.644.286/0001-40'); + $request->setOrganization($brOrg); + $conn->request($request); + } +} catch (eppException $e) { + echo "ERROR: " . $e->getMessage() . "\n"; + echo $e->getLastCommand(); + echo "\n\n"; +} diff --git a/Registries/registrobrEppConnection/scripts/connect.php b/Registries/registrobrEppConnection/scripts/connect.php new file mode 100644 index 00000000..7ae9c1d5 --- /dev/null +++ b/Registries/registrobrEppConnection/scripts/connect.php @@ -0,0 +1,15 @@ +connect(); +} catch (eppException $e) { + echo "ERROR: " . $e->getMessage() . "\n"; + echo $e->getLastCommand(); + echo "\n\n"; +} diff --git a/Registries/registrobrEppConnection/scripts/createcontact.php b/Registries/registrobrEppConnection/scripts/createcontact.php new file mode 100644 index 00000000..0b677e89 --- /dev/null +++ b/Registries/registrobrEppConnection/scripts/createcontact.php @@ -0,0 +1,31 @@ +login()) { + $contact = new \Metaregistrar\EPP\eppContact(); + $postalInfo = new \Metaregistrar\EPP\eppContactPostalInfo(); + $postalInfo->setType('loc'); + $postalInfo->setName('Lucas Marin'); + $postalInfo->addStreet('Rua Guanabara'); + $postalInfo->addStreet('110'); + $postalInfo->addStreet('AP 11'); + $postalInfo->setCity('Sao Paulo'); + $postalInfo->setProvince('SP'); + $postalInfo->setZipcode('17900-000'); + $postalInfo->setCountrycode('BR'); + $contact->addPostalInfo($postalInfo); + $contact->setVoice('55.11972064945'); + $contact->setEmail('lucasmarin@gmail.com'); + $conn->request(new \Metaregistrar\EPP\eppCreateContactRequest($contact)); + } +} catch (eppException $e) { + echo "ERROR: " . $e->getMessage() . "\n"; + echo $e->getLastCommand(); + echo "\n\n"; +} diff --git a/Registries/registrobrEppConnection/scripts/createdomain.php b/Registries/registrobrEppConnection/scripts/createdomain.php new file mode 100644 index 00000000..3544d227 --- /dev/null +++ b/Registries/registrobrEppConnection/scripts/createdomain.php @@ -0,0 +1,25 @@ +login()) { + $domains = [ + new \Metaregistrar\EPP\brDomain('skymail.com.br'), + new \Metaregistrar\EPP\brDomain('skymail.net.br'), + new \Metaregistrar\EPP\brDomain('skymail.gov.br'), + new \Metaregistrar\EPP\brDomain('skymail.org.br'), + ]; + $infoDomainRequest = new \Metaregistrar\EPP\eppCheckBrDomainRequest($domains); + $conn->request($infoDomainRequest); + } + } +} catch (eppException $e) { + echo "ERROR: " . $e->getMessage() . "\n"; + echo $e->getLastCommand(); + echo "\n\n"; +} diff --git a/Registries/registrobrEppConnection/scripts/createorganization.php b/Registries/registrobrEppConnection/scripts/createorganization.php new file mode 100644 index 00000000..245ecbb2 --- /dev/null +++ b/Registries/registrobrEppConnection/scripts/createorganization.php @@ -0,0 +1,38 @@ +login()) { + $contact = new \Metaregistrar\EPP\eppContact(); + $postalInfo = new \Metaregistrar\EPP\eppContactPostalInfo(); + $postalInfo->setType('loc'); + $postalInfo->setName('Lucas Marin'); + $postalInfo->addStreet('Rua Guanabara'); + $postalInfo->addStreet('110'); + $postalInfo->addStreet('AP 11'); + $postalInfo->setCity('Sao Paulo'); + $postalInfo->setProvince('SP'); + $postalInfo->setZipcode('17900-000'); + $postalInfo->setCountrycode('BR'); + $contact->addPostalInfo($postalInfo); + $contact->setVoice('55.11972064945'); + $contact->setEmail('lucasmarin@gmail.com'); + $request = new \Metaregistrar\EPP\eppCreateBrOrgRequest($contact); + $organization = new \Metaregistrar\EPP\brOrg(); + $organization->setOrganization('82.407.396/0001-50'); + $organization->setContactType('admin'); + $organization->setContact('LUMAR3'); + $organization->setResponsible('Lucas Marin'); + $request->setOrganization($organization); + $conn->request($request); + } +} catch (eppException $e) { + echo "ERROR: " . $e->getMessage() . "\n"; + echo $e->getLastCommand(); + echo "\n\n"; +} diff --git a/Registries/registrobrEppConnection/scripts/deletedomain.php b/Registries/registrobrEppConnection/scripts/deletedomain.php new file mode 100644 index 00000000..3544d227 --- /dev/null +++ b/Registries/registrobrEppConnection/scripts/deletedomain.php @@ -0,0 +1,25 @@ +login()) { + $domains = [ + new \Metaregistrar\EPP\brDomain('skymail.com.br'), + new \Metaregistrar\EPP\brDomain('skymail.net.br'), + new \Metaregistrar\EPP\brDomain('skymail.gov.br'), + new \Metaregistrar\EPP\brDomain('skymail.org.br'), + ]; + $infoDomainRequest = new \Metaregistrar\EPP\eppCheckBrDomainRequest($domains); + $conn->request($infoDomainRequest); + } + } +} catch (eppException $e) { + echo "ERROR: " . $e->getMessage() . "\n"; + echo $e->getLastCommand(); + echo "\n\n"; +} diff --git a/Registries/registrobrEppConnection/scripts/hello.php b/Registries/registrobrEppConnection/scripts/hello.php new file mode 100644 index 00000000..0fc0aedc --- /dev/null +++ b/Registries/registrobrEppConnection/scripts/hello.php @@ -0,0 +1,16 @@ +connect(); + $conn->request(new \Metaregistrar\EPP\eppHelloRequest()); +} catch (eppException $e) { + echo "ERROR: " . $e->getMessage() . "\n"; + echo $e->getLastCommand(); + echo "\n\n"; +} diff --git a/Registries/registrobrEppConnection/scripts/infocontact.php b/Registries/registrobrEppConnection/scripts/infocontact.php new file mode 100644 index 00000000..d0038df2 --- /dev/null +++ b/Registries/registrobrEppConnection/scripts/infocontact.php @@ -0,0 +1,18 @@ +login()) { + $contactHandle = new \Metaregistrar\EPP\eppContactHandle('LUMAR3'); + $conn->request(new \Metaregistrar\EPP\eppInfoContactRequest($contactHandle)); + } +} catch (eppException $e) { + echo "ERROR: " . $e->getMessage() . "\n"; + echo $e->getLastCommand(); + echo "\n\n"; +} diff --git a/Registries/registrobrEppConnection/scripts/infodomain.php b/Registries/registrobrEppConnection/scripts/infodomain.php new file mode 100644 index 00000000..3544d227 --- /dev/null +++ b/Registries/registrobrEppConnection/scripts/infodomain.php @@ -0,0 +1,25 @@ +login()) { + $domains = [ + new \Metaregistrar\EPP\brDomain('skymail.com.br'), + new \Metaregistrar\EPP\brDomain('skymail.net.br'), + new \Metaregistrar\EPP\brDomain('skymail.gov.br'), + new \Metaregistrar\EPP\brDomain('skymail.org.br'), + ]; + $infoDomainRequest = new \Metaregistrar\EPP\eppCheckBrDomainRequest($domains); + $conn->request($infoDomainRequest); + } + } +} catch (eppException $e) { + echo "ERROR: " . $e->getMessage() . "\n"; + echo $e->getLastCommand(); + echo "\n\n"; +} diff --git a/Registries/registrobrEppConnection/scripts/infoorganization.php b/Registries/registrobrEppConnection/scripts/infoorganization.php new file mode 100644 index 00000000..a8527e9f --- /dev/null +++ b/Registries/registrobrEppConnection/scripts/infoorganization.php @@ -0,0 +1,23 @@ +login()) { + $contactHandle = new \Metaregistrar\EPP\eppContactHandle(1); + $request = new \Metaregistrar\EPP\eppInfoBrOrgRequest($contactHandle); + $brOrg = new \Metaregistrar\EPP\brOrg(); + $brOrg->setOrganization('17.644.286/0001-40'); + $request->setOrganization($brOrg); + $conn->request($request); + } + } +} catch (eppException $e) { + echo "ERROR: " . $e->getMessage() . "\n"; + echo $e->getLastCommand(); + echo "\n\n"; +} diff --git a/Registries/registrobrEppConnection/scripts/login.php b/Registries/registrobrEppConnection/scripts/login.php new file mode 100644 index 00000000..4b1e4dea --- /dev/null +++ b/Registries/registrobrEppConnection/scripts/login.php @@ -0,0 +1,15 @@ +login(); +} catch (eppException $e) { + echo "ERROR: " . $e->getMessage() . "\n"; + echo $e->getLastCommand(); + echo "\n\n"; +} diff --git a/Registries/registrobrEppConnection/scripts/loginchangingpassword.php b/Registries/registrobrEppConnection/scripts/loginchangingpassword.php new file mode 100644 index 00000000..9c2f69c9 --- /dev/null +++ b/Registries/registrobrEppConnection/scripts/loginchangingpassword.php @@ -0,0 +1,17 @@ +setNewPassword('abcd=1234'); + $conn->login(); +} catch (eppException $e) { + echo "ERROR: " . $e->getMessage() . "\n"; + echo $e->getLastCommand(); + echo "\n\n"; +} diff --git a/Registries/registrobrEppConnection/scripts/logout.php b/Registries/registrobrEppConnection/scripts/logout.php new file mode 100644 index 00000000..4beadd60 --- /dev/null +++ b/Registries/registrobrEppConnection/scripts/logout.php @@ -0,0 +1,16 @@ +login(); + $conn->logout(); +} catch (eppException $e) { + echo "ERROR: " . $e->getMessage() . "\n"; + echo $e->getLastCommand(); + echo "\n\n"; +} diff --git a/Registries/registrobrEppConnection/scripts/pollrequest.php b/Registries/registrobrEppConnection/scripts/pollrequest.php new file mode 100644 index 00000000..3544d227 --- /dev/null +++ b/Registries/registrobrEppConnection/scripts/pollrequest.php @@ -0,0 +1,25 @@ +login()) { + $domains = [ + new \Metaregistrar\EPP\brDomain('skymail.com.br'), + new \Metaregistrar\EPP\brDomain('skymail.net.br'), + new \Metaregistrar\EPP\brDomain('skymail.gov.br'), + new \Metaregistrar\EPP\brDomain('skymail.org.br'), + ]; + $infoDomainRequest = new \Metaregistrar\EPP\eppCheckBrDomainRequest($domains); + $conn->request($infoDomainRequest); + } + } +} catch (eppException $e) { + echo "ERROR: " . $e->getMessage() . "\n"; + echo $e->getLastCommand(); + echo "\n\n"; +} diff --git a/Registries/registrobrEppConnection/scripts/renewdomain.php b/Registries/registrobrEppConnection/scripts/renewdomain.php new file mode 100644 index 00000000..3544d227 --- /dev/null +++ b/Registries/registrobrEppConnection/scripts/renewdomain.php @@ -0,0 +1,25 @@ +login()) { + $domains = [ + new \Metaregistrar\EPP\brDomain('skymail.com.br'), + new \Metaregistrar\EPP\brDomain('skymail.net.br'), + new \Metaregistrar\EPP\brDomain('skymail.gov.br'), + new \Metaregistrar\EPP\brDomain('skymail.org.br'), + ]; + $infoDomainRequest = new \Metaregistrar\EPP\eppCheckBrDomainRequest($domains); + $conn->request($infoDomainRequest); + } + } +} catch (eppException $e) { + echo "ERROR: " . $e->getMessage() . "\n"; + echo $e->getLastCommand(); + echo "\n\n"; +} diff --git a/Registries/registrobrEppConnection/scripts/updatecontact.php b/Registries/registrobrEppConnection/scripts/updatecontact.php new file mode 100644 index 00000000..9def8deb --- /dev/null +++ b/Registries/registrobrEppConnection/scripts/updatecontact.php @@ -0,0 +1,25 @@ +login()) { + $contact = new \Metaregistrar\EPP\eppContactHandle('LUMAR3'); + $postalInfo = new \Metaregistrar\EPP\eppContactPostalInfo(); + $postalInfo->setType('loc'); + $postalInfo->addStreet('Rua Guanabara2'); + $postalInfo->addStreet('111'); + $postalInfo->addStreet('Ap 12'); + $updateInfo = new \Metaregistrar\EPP\eppContact($postalInfo, 'lucasmarin2@gmail.com', '55.11972064946'); + $updateRequest = new \Metaregistrar\EPP\eppUpdateContactRequest($contact, null, null, $updateInfo); + $contact = $conn->request($updateRequest); + } +} catch (eppException $e) { + echo "ERROR: " . $e->getMessage() . "\n"; + echo $e->getLastCommand(); + echo "\n\n"; +} diff --git a/Registries/registrobrEppConnection/scripts/updatedomainautorenew.php b/Registries/registrobrEppConnection/scripts/updatedomainautorenew.php new file mode 100644 index 00000000..3544d227 --- /dev/null +++ b/Registries/registrobrEppConnection/scripts/updatedomainautorenew.php @@ -0,0 +1,25 @@ +login()) { + $domains = [ + new \Metaregistrar\EPP\brDomain('skymail.com.br'), + new \Metaregistrar\EPP\brDomain('skymail.net.br'), + new \Metaregistrar\EPP\brDomain('skymail.gov.br'), + new \Metaregistrar\EPP\brDomain('skymail.org.br'), + ]; + $infoDomainRequest = new \Metaregistrar\EPP\eppCheckBrDomainRequest($domains); + $conn->request($infoDomainRequest); + } + } +} catch (eppException $e) { + echo "ERROR: " . $e->getMessage() . "\n"; + echo $e->getLastCommand(); + echo "\n\n"; +} diff --git a/Registries/registrobrEppConnection/scripts/updatedomaincontact.php b/Registries/registrobrEppConnection/scripts/updatedomaincontact.php new file mode 100644 index 00000000..3544d227 --- /dev/null +++ b/Registries/registrobrEppConnection/scripts/updatedomaincontact.php @@ -0,0 +1,25 @@ +login()) { + $domains = [ + new \Metaregistrar\EPP\brDomain('skymail.com.br'), + new \Metaregistrar\EPP\brDomain('skymail.net.br'), + new \Metaregistrar\EPP\brDomain('skymail.gov.br'), + new \Metaregistrar\EPP\brDomain('skymail.org.br'), + ]; + $infoDomainRequest = new \Metaregistrar\EPP\eppCheckBrDomainRequest($domains); + $conn->request($infoDomainRequest); + } + } +} catch (eppException $e) { + echo "ERROR: " . $e->getMessage() . "\n"; + echo $e->getLastCommand(); + echo "\n\n"; +} diff --git a/Registries/registrobrEppConnection/scripts/updatedomainticket.php b/Registries/registrobrEppConnection/scripts/updatedomainticket.php new file mode 100644 index 00000000..3544d227 --- /dev/null +++ b/Registries/registrobrEppConnection/scripts/updatedomainticket.php @@ -0,0 +1,25 @@ +login()) { + $domains = [ + new \Metaregistrar\EPP\brDomain('skymail.com.br'), + new \Metaregistrar\EPP\brDomain('skymail.net.br'), + new \Metaregistrar\EPP\brDomain('skymail.gov.br'), + new \Metaregistrar\EPP\brDomain('skymail.org.br'), + ]; + $infoDomainRequest = new \Metaregistrar\EPP\eppCheckBrDomainRequest($domains); + $conn->request($infoDomainRequest); + } + } +} catch (eppException $e) { + echo "ERROR: " . $e->getMessage() . "\n"; + echo $e->getLastCommand(); + echo "\n\n"; +} diff --git a/Registries/registrobrEppConnection/scripts/updateorganization.php b/Registries/registrobrEppConnection/scripts/updateorganization.php new file mode 100644 index 00000000..3544d227 --- /dev/null +++ b/Registries/registrobrEppConnection/scripts/updateorganization.php @@ -0,0 +1,25 @@ +login()) { + $domains = [ + new \Metaregistrar\EPP\brDomain('skymail.com.br'), + new \Metaregistrar\EPP\brDomain('skymail.net.br'), + new \Metaregistrar\EPP\brDomain('skymail.gov.br'), + new \Metaregistrar\EPP\brDomain('skymail.org.br'), + ]; + $infoDomainRequest = new \Metaregistrar\EPP\eppCheckBrDomainRequest($domains); + $conn->request($infoDomainRequest); + } + } +} catch (eppException $e) { + echo "ERROR: " . $e->getMessage() . "\n"; + echo $e->getLastCommand(); + echo "\n\n"; +} diff --git a/composer.json b/composer.json index 7a7d1b6f..c69c18a0 100644 --- a/composer.json +++ b/composer.json @@ -1,18 +1,22 @@ { - "name": "metaregistrar/php-epp-client", + "name": "skymailbr/php-epp-client", "type": "library", "description": "Object-oriented PHP EPP Client", "keywords": ["xml","epp","domains"], - "homepage": "https://github.com/metaregistrar/php-epp-client", + "homepage": "https://github.com/skymailbr/php-epp-client", "license": "MIT", "authors": [ { "name": "Ewout de Graaf", "email": "ewout@metaregistrar.com" + }, + { + "name": "Lucas Stevanelli Marin", + "email": "lucasmarin@gmail.com" } ], "require": { - "php": "^7|^8.0", + "php": "^7.1|^8.0", "ext-dom": "*", "ext-libxml": "*" }, @@ -20,6 +24,6 @@ "phpunit/phpunit": "^7" }, "autoload": { - "classmap" : [ "Protocols/", "Registries/" ] + "classmap": [ "Protocols/", "Registries/" ] } } diff --git a/composer.lock b/composer.lock index c771ff07..d215d195 100644 --- a/composer.lock +++ b/composer.lock @@ -1,43 +1,40 @@ { "_readme": [ "This file locks the dependencies of your project to a known state", - "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", + "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "hash": "1823de7130e2617686ac5ce952d5811b", - "content-hash": "2586b9709e21c0fe6ab75e0f1663f642", + "content-hash": "a95422087d43e11331530f6afd717e72", "packages": [], "packages-dev": [ { "name": "doctrine/instantiator", - "version": "1.1.0", + "version": "1.5.0", "source": { "type": "git", "url": "https://github.com/doctrine/instantiator.git", - "reference": "185b8868aa9bf7159f5f953ed5afb2d7fcdc3bda" + "reference": "0a0fa9780f5d4e507415a065172d26a98d02047b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/instantiator/zipball/185b8868aa9bf7159f5f953ed5afb2d7fcdc3bda", - "reference": "185b8868aa9bf7159f5f953ed5afb2d7fcdc3bda", + "url": "https://api.github.com/repos/doctrine/instantiator/zipball/0a0fa9780f5d4e507415a065172d26a98d02047b", + "reference": "0a0fa9780f5d4e507415a065172d26a98d02047b", "shasum": "" }, "require": { - "php": "^7.1" + "php": "^7.1 || ^8.0" }, "require-dev": { - "athletic/athletic": "~0.1.8", + "doctrine/coding-standard": "^9 || ^11", "ext-pdo": "*", "ext-phar": "*", - "phpunit/phpunit": "^6.2.3", - "squizlabs/php_codesniffer": "^3.0.2" + "phpbench/phpbench": "^0.16 || ^1", + "phpstan/phpstan": "^1.4", + "phpstan/phpstan-phpunit": "^1", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", + "vimeo/psalm": "^4.30 || ^5.4" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.2.x-dev" - } - }, "autoload": { "psr-4": { "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/" @@ -51,50 +48,69 @@ { "name": "Marco Pivetta", "email": "ocramius@gmail.com", - "homepage": "http://ocramius.github.com/" + "homepage": "https://ocramius.github.io/" } ], "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors", - "homepage": "https://github.com/doctrine/instantiator", + "homepage": "https://www.doctrine-project.org/projects/instantiator.html", "keywords": [ "constructor", "instantiate" ], - "time": "2017-07-22 11:58:36" + "support": { + "issues": "https://github.com/doctrine/instantiator/issues", + "source": "https://github.com/doctrine/instantiator/tree/1.5.0" + }, + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Finstantiator", + "type": "tidelift" + } + ], + "time": "2022-12-30T00:15:36+00:00" }, { "name": "myclabs/deep-copy", - "version": "1.8.1", + "version": "1.11.0", "source": { "type": "git", "url": "https://github.com/myclabs/DeepCopy.git", - "reference": "3e01bdad3e18354c3dce54466b7fbe33a9f9f7f8" + "reference": "14daed4296fae74d9e3201d2c4925d1acb7aa614" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/3e01bdad3e18354c3dce54466b7fbe33a9f9f7f8", - "reference": "3e01bdad3e18354c3dce54466b7fbe33a9f9f7f8", + "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/14daed4296fae74d9e3201d2c4925d1acb7aa614", + "reference": "14daed4296fae74d9e3201d2c4925d1acb7aa614", "shasum": "" }, "require": { - "php": "^7.1" + "php": "^7.1 || ^8.0" }, - "replace": { - "myclabs/deep-copy": "self.version" + "conflict": { + "doctrine/collections": "<1.6.8", + "doctrine/common": "<2.13.3 || >=3,<3.2.2" }, "require-dev": { - "doctrine/collections": "^1.0", - "doctrine/common": "^2.6", - "phpunit/phpunit": "^7.1" + "doctrine/collections": "^1.6.8", + "doctrine/common": "^2.13.3 || ^3.2.2", + "phpunit/phpunit": "^7.5.20 || ^8.5.23 || ^9.5.13" }, "type": "library", "autoload": { - "psr-4": { - "DeepCopy\\": "src/DeepCopy/" - }, "files": [ "src/DeepCopy/deep_copy.php" - ] + ], + "psr-4": { + "DeepCopy\\": "src/DeepCopy/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -108,7 +124,17 @@ "object", "object graph" ], - "time": "2018-06-11 23:09:50" + "support": { + "issues": "https://github.com/myclabs/DeepCopy/issues", + "source": "https://github.com/myclabs/DeepCopy/tree/1.11.0" + }, + "funding": [ + { + "url": "https://tidelift.com/funding/github/packagist/myclabs/deep-copy", + "type": "tidelift" + } + ], + "time": "2022-03-03T13:19:32+00:00" }, { "name": "phar-io/manifest", @@ -163,7 +189,11 @@ } ], "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)", - "time": "2018-07-08 19:23:20" + "support": { + "issues": "https://github.com/phar-io/manifest/issues", + "source": "https://github.com/phar-io/manifest/tree/master" + }, + "time": "2018-07-08T19:23:20+00:00" }, { "name": "phar-io/version", @@ -210,39 +240,38 @@ } ], "description": "Library for handling version information and constraints", - "time": "2018-07-08 19:19:57" + "support": { + "issues": "https://github.com/phar-io/version/issues", + "source": "https://github.com/phar-io/version/tree/master" + }, + "time": "2018-07-08T19:19:57+00:00" }, { "name": "phpdocumentor/reflection-common", - "version": "1.0.1", + "version": "2.2.0", "source": { "type": "git", "url": "https://github.com/phpDocumentor/ReflectionCommon.git", - "reference": "21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6" + "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6", - "reference": "21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/1d01c49d4ed62f25aa84a747ad35d5a16924662b", + "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b", "shasum": "" }, "require": { - "php": ">=5.5" - }, - "require-dev": { - "phpunit/phpunit": "^4.6" + "php": "^7.2 || ^8.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-2.x": "2.x-dev" } }, "autoload": { "psr-4": { - "phpDocumentor\\Reflection\\": [ - "src" - ] + "phpDocumentor\\Reflection\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -264,44 +293,46 @@ "reflection", "static analysis" ], - "time": "2017-09-11 18:02:19" + "support": { + "issues": "https://github.com/phpDocumentor/ReflectionCommon/issues", + "source": "https://github.com/phpDocumentor/ReflectionCommon/tree/2.x" + }, + "time": "2020-06-27T09:03:43+00:00" }, { "name": "phpdocumentor/reflection-docblock", - "version": "4.3.0", + "version": "5.3.0", "source": { "type": "git", "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", - "reference": "94fd0001232e47129dd3504189fa1c7225010d08" + "reference": "622548b623e81ca6d78b721c5e029f4ce664f170" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/94fd0001232e47129dd3504189fa1c7225010d08", - "reference": "94fd0001232e47129dd3504189fa1c7225010d08", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/622548b623e81ca6d78b721c5e029f4ce664f170", + "reference": "622548b623e81ca6d78b721c5e029f4ce664f170", "shasum": "" }, "require": { - "php": "^7.0", - "phpdocumentor/reflection-common": "^1.0.0", - "phpdocumentor/type-resolver": "^0.4.0", - "webmozart/assert": "^1.0" + "ext-filter": "*", + "php": "^7.2 || ^8.0", + "phpdocumentor/reflection-common": "^2.2", + "phpdocumentor/type-resolver": "^1.3", + "webmozart/assert": "^1.9.1" }, "require-dev": { - "doctrine/instantiator": "~1.0.5", - "mockery/mockery": "^1.0", - "phpunit/phpunit": "^6.4" + "mockery/mockery": "~1.3.2", + "psalm/phar": "^4.8" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "4.x-dev" + "dev-master": "5.x-dev" } }, "autoload": { "psr-4": { - "phpDocumentor\\Reflection\\": [ - "src/" - ] + "phpDocumentor\\Reflection\\": "src" } }, "notification-url": "https://packagist.org/downloads/", @@ -312,44 +343,55 @@ { "name": "Mike van Riel", "email": "me@mikevanriel.com" + }, + { + "name": "Jaap van Otterdijk", + "email": "account@ijaap.nl" } ], "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", - "time": "2017-11-30 07:14:17" + "support": { + "issues": "https://github.com/phpDocumentor/ReflectionDocBlock/issues", + "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/5.3.0" + }, + "time": "2021-10-19T17:43:47+00:00" }, { "name": "phpdocumentor/type-resolver", - "version": "0.4.0", + "version": "1.6.2", "source": { "type": "git", "url": "https://github.com/phpDocumentor/TypeResolver.git", - "reference": "9c977708995954784726e25d0cd1dddf4e65b0f7" + "reference": "48f445a408c131e38cab1c235aa6d2bb7a0bb20d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/9c977708995954784726e25d0cd1dddf4e65b0f7", - "reference": "9c977708995954784726e25d0cd1dddf4e65b0f7", + "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/48f445a408c131e38cab1c235aa6d2bb7a0bb20d", + "reference": "48f445a408c131e38cab1c235aa6d2bb7a0bb20d", "shasum": "" }, "require": { - "php": "^5.5 || ^7.0", - "phpdocumentor/reflection-common": "^1.0" + "php": "^7.4 || ^8.0", + "phpdocumentor/reflection-common": "^2.0" }, "require-dev": { - "mockery/mockery": "^0.9.4", - "phpunit/phpunit": "^5.2||^4.8.24" + "ext-tokenizer": "*", + "phpstan/extension-installer": "^1.1", + "phpstan/phpstan": "^1.8", + "phpstan/phpstan-phpunit": "^1.1", + "phpunit/phpunit": "^9.5", + "rector/rector": "^0.13.9", + "vimeo/psalm": "^4.25" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-1.x": "1.x-dev" } }, "autoload": { "psr-4": { - "phpDocumentor\\Reflection\\": [ - "src/" - ] + "phpDocumentor\\Reflection\\": "src" } }, "notification-url": "https://packagist.org/downloads/", @@ -362,42 +404,47 @@ "email": "me@mikevanriel.com" } ], - "time": "2017-07-14 14:27:02" + "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names", + "support": { + "issues": "https://github.com/phpDocumentor/TypeResolver/issues", + "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.6.2" + }, + "time": "2022-10-14T12:47:21+00:00" }, { "name": "phpspec/prophecy", - "version": "1.8.0", + "version": "v1.16.0", "source": { "type": "git", "url": "https://github.com/phpspec/prophecy.git", - "reference": "4ba436b55987b4bf311cb7c6ba82aa528aac0a06" + "reference": "be8cac52a0827776ff9ccda8c381ac5b71aeb359" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpspec/prophecy/zipball/4ba436b55987b4bf311cb7c6ba82aa528aac0a06", - "reference": "4ba436b55987b4bf311cb7c6ba82aa528aac0a06", + "url": "https://api.github.com/repos/phpspec/prophecy/zipball/be8cac52a0827776ff9ccda8c381ac5b71aeb359", + "reference": "be8cac52a0827776ff9ccda8c381ac5b71aeb359", "shasum": "" }, "require": { - "doctrine/instantiator": "^1.0.2", - "php": "^5.3|^7.0", - "phpdocumentor/reflection-docblock": "^2.0|^3.0.2|^4.0", - "sebastian/comparator": "^1.1|^2.0|^3.0", - "sebastian/recursion-context": "^1.0|^2.0|^3.0" + "doctrine/instantiator": "^1.2", + "php": "^7.2 || 8.0.* || 8.1.* || 8.2.*", + "phpdocumentor/reflection-docblock": "^5.2", + "sebastian/comparator": "^3.0 || ^4.0", + "sebastian/recursion-context": "^3.0 || ^4.0" }, "require-dev": { - "phpspec/phpspec": "^2.5|^3.2", - "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.5 || ^7.1" + "phpspec/phpspec": "^6.0 || ^7.0", + "phpunit/phpunit": "^8.0 || ^9.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.8.x-dev" + "dev-master": "1.x-dev" } }, "autoload": { - "psr-0": { - "Prophecy\\": "src/" + "psr-4": { + "Prophecy\\": "src/Prophecy" } }, "notification-url": "https://packagist.org/downloads/", @@ -425,7 +472,11 @@ "spy", "stub" ], - "time": "2018-08-05 17:53:17" + "support": { + "issues": "https://github.com/phpspec/prophecy/issues", + "source": "https://github.com/phpspec/prophecy/tree/v1.16.0" + }, + "time": "2022-11-29T15:06:56+00:00" }, { "name": "phpunit/php-code-coverage", @@ -488,27 +539,31 @@ "testing", "xunit" ], - "time": "2018-10-31 16:06:48" + "support": { + "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", + "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/master" + }, + "time": "2018-10-31T16:06:48+00:00" }, { "name": "phpunit/php-file-iterator", - "version": "2.0.2", + "version": "2.0.5", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-file-iterator.git", - "reference": "050bedf145a257b1ff02746c31894800e5122946" + "reference": "42c5ba5220e6904cbfe8b1a1bda7c0cfdc8c12f5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/050bedf145a257b1ff02746c31894800e5122946", - "reference": "050bedf145a257b1ff02746c31894800e5122946", + "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/42c5ba5220e6904cbfe8b1a1bda7c0cfdc8c12f5", + "reference": "42c5ba5220e6904cbfe8b1a1bda7c0cfdc8c12f5", "shasum": "" }, "require": { - "php": "^7.1" + "php": ">=7.1" }, "require-dev": { - "phpunit/phpunit": "^7.1" + "phpunit/phpunit": "^8.5" }, "type": "library", "extra": { @@ -538,7 +593,17 @@ "filesystem", "iterator" ], - "time": "2018-09-13 20:33:42" + "support": { + "issues": "https://github.com/sebastianbergmann/php-file-iterator/issues", + "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/2.0.5" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2021-12-02T12:42:26+00:00" }, { "name": "phpunit/php-text-template", @@ -579,32 +644,36 @@ "keywords": [ "template" ], - "time": "2015-06-21 13:50:34" + "support": { + "issues": "https://github.com/sebastianbergmann/php-text-template/issues", + "source": "https://github.com/sebastianbergmann/php-text-template/tree/1.2.1" + }, + "time": "2015-06-21T13:50:34+00:00" }, { "name": "phpunit/php-timer", - "version": "2.0.0", + "version": "2.1.3", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-timer.git", - "reference": "8b8454ea6958c3dee38453d3bd571e023108c91f" + "reference": "2454ae1765516d20c4ffe103d85a58a9a3bd5662" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/8b8454ea6958c3dee38453d3bd571e023108c91f", - "reference": "8b8454ea6958c3dee38453d3bd571e023108c91f", + "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/2454ae1765516d20c4ffe103d85a58a9a3bd5662", + "reference": "2454ae1765516d20c4ffe103d85a58a9a3bd5662", "shasum": "" }, "require": { - "php": "^7.1" + "php": ">=7.1" }, "require-dev": { - "phpunit/phpunit": "^7.0" + "phpunit/phpunit": "^8.5" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0-dev" + "dev-master": "2.1-dev" } }, "autoload": { @@ -628,25 +697,35 @@ "keywords": [ "timer" ], - "time": "2018-02-01 13:07:23" + "support": { + "issues": "https://github.com/sebastianbergmann/php-timer/issues", + "source": "https://github.com/sebastianbergmann/php-timer/tree/2.1.3" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-11-30T08:20:02+00:00" }, { "name": "phpunit/php-token-stream", - "version": "3.0.1", + "version": "3.1.3", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-token-stream.git", - "reference": "c99e3be9d3e85f60646f152f9002d46ed7770d18" + "reference": "9c1da83261628cb24b6a6df371b6e312b3954768" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/c99e3be9d3e85f60646f152f9002d46ed7770d18", - "reference": "c99e3be9d3e85f60646f152f9002d46ed7770d18", + "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/9c1da83261628cb24b6a6df371b6e312b3954768", + "reference": "9c1da83261628cb24b6a6df371b6e312b3954768", "shasum": "" }, "require": { "ext-tokenizer": "*", - "php": "^7.1" + "php": ">=7.1" }, "require-dev": { "phpunit/phpunit": "^7.0" @@ -654,7 +733,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0-dev" + "dev-master": "3.1-dev" } }, "autoload": { @@ -677,20 +756,31 @@ "keywords": [ "tokenizer" ], - "time": "2018-10-30 05:52:18" + "support": { + "issues": "https://github.com/sebastianbergmann/php-token-stream/issues", + "source": "https://github.com/sebastianbergmann/php-token-stream/tree/3.1.3" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "abandoned": true, + "time": "2021-07-26T12:15:06+00:00" }, { "name": "phpunit/phpunit", - "version": "7.5.4", + "version": "7.5.20", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "2896657da5fb237bc316bdfc18c2650efeee0dc0" + "reference": "9467db479d1b0487c99733bb1e7944d32deded2c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/2896657da5fb237bc316bdfc18c2650efeee0dc0", - "reference": "2896657da5fb237bc316bdfc18c2650efeee0dc0", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/9467db479d1b0487c99733bb1e7944d32deded2c", + "reference": "9467db479d1b0487c99733bb1e7944d32deded2c", "shasum": "" }, "require": { @@ -708,7 +798,7 @@ "phpunit/php-code-coverage": "^6.0.7", "phpunit/php-file-iterator": "^2.0.1", "phpunit/php-text-template": "^1.2.1", - "phpunit/php-timer": "^2.0", + "phpunit/php-timer": "^2.1", "sebastian/comparator": "^3.0", "sebastian/diff": "^3.0", "sebastian/environment": "^4.0", @@ -761,27 +851,31 @@ "testing", "xunit" ], - "time": "2019-02-07 14:15:04" + "support": { + "issues": "https://github.com/sebastianbergmann/phpunit/issues", + "source": "https://github.com/sebastianbergmann/phpunit/tree/7.5.20" + }, + "time": "2020-01-08T08:45:45+00:00" }, { "name": "sebastian/code-unit-reverse-lookup", - "version": "1.0.1", + "version": "1.0.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git", - "reference": "4419fcdb5eabb9caa61a27c7a1db532a6b55dd18" + "reference": "1de8cd5c010cb153fcd68b8d0f64606f523f7619" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/4419fcdb5eabb9caa61a27c7a1db532a6b55dd18", - "reference": "4419fcdb5eabb9caa61a27c7a1db532a6b55dd18", + "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/1de8cd5c010cb153fcd68b8d0f64606f523f7619", + "reference": "1de8cd5c010cb153fcd68b8d0f64606f523f7619", "shasum": "" }, "require": { - "php": "^5.6 || ^7.0" + "php": ">=5.6" }, "require-dev": { - "phpunit/phpunit": "^5.7 || ^6.0" + "phpunit/phpunit": "^8.5" }, "type": "library", "extra": { @@ -806,29 +900,39 @@ ], "description": "Looks up which function or method a line of code belongs to", "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/", - "time": "2017-03-04 06:30:41" + "support": { + "issues": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/issues", + "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/1.0.2" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-11-30T08:15:22+00:00" }, { "name": "sebastian/comparator", - "version": "3.0.2", + "version": "3.0.5", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/comparator.git", - "reference": "5de4fc177adf9bce8df98d8d141a7559d7ccf6da" + "reference": "1dc7ceb4a24aede938c7af2a9ed1de09609ca770" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/5de4fc177adf9bce8df98d8d141a7559d7ccf6da", - "reference": "5de4fc177adf9bce8df98d8d141a7559d7ccf6da", + "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/1dc7ceb4a24aede938c7af2a9ed1de09609ca770", + "reference": "1dc7ceb4a24aede938c7af2a9ed1de09609ca770", "shasum": "" }, "require": { - "php": "^7.1", + "php": ">=7.1", "sebastian/diff": "^3.0", "sebastian/exporter": "^3.1" }, "require-dev": { - "phpunit/phpunit": "^7.1" + "phpunit/phpunit": "^8.5" }, "type": "library", "extra": { @@ -846,6 +950,10 @@ "BSD-3-Clause" ], "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, { "name": "Jeff Welch", "email": "whatthejeff@gmail.com" @@ -857,10 +965,6 @@ { "name": "Bernhard Schussek", "email": "bschussek@2bepublished.at" - }, - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" } ], "description": "Provides the functionality to compare PHP values for equality", @@ -870,24 +974,34 @@ "compare", "equality" ], - "time": "2018-07-12 15:12:46" + "support": { + "issues": "https://github.com/sebastianbergmann/comparator/issues", + "source": "https://github.com/sebastianbergmann/comparator/tree/3.0.5" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2022-09-14T12:31:48+00:00" }, { "name": "sebastian/diff", - "version": "3.0.2", + "version": "3.0.3", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/diff.git", - "reference": "720fcc7e9b5cf384ea68d9d930d480907a0c1a29" + "reference": "14f72dd46eaf2f2293cbe79c93cc0bc43161a211" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/720fcc7e9b5cf384ea68d9d930d480907a0c1a29", - "reference": "720fcc7e9b5cf384ea68d9d930d480907a0c1a29", + "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/14f72dd46eaf2f2293cbe79c93cc0bc43161a211", + "reference": "14f72dd46eaf2f2293cbe79c93cc0bc43161a211", "shasum": "" }, "require": { - "php": "^7.1" + "php": ">=7.1" }, "require-dev": { "phpunit/phpunit": "^7.5 || ^8.0", @@ -909,13 +1023,13 @@ "BSD-3-Clause" ], "authors": [ - { - "name": "Kore Nordmann", - "email": "mail@kore-nordmann.de" - }, { "name": "Sebastian Bergmann", "email": "sebastian@phpunit.de" + }, + { + "name": "Kore Nordmann", + "email": "mail@kore-nordmann.de" } ], "description": "Diff implementation", @@ -926,24 +1040,34 @@ "unidiff", "unified diff" ], - "time": "2019-02-04 06:01:07" + "support": { + "issues": "https://github.com/sebastianbergmann/diff/issues", + "source": "https://github.com/sebastianbergmann/diff/tree/3.0.3" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-11-30T07:59:04+00:00" }, { "name": "sebastian/environment", - "version": "4.1.0", + "version": "4.2.4", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/environment.git", - "reference": "6fda8ce1974b62b14935adc02a9ed38252eca656" + "reference": "d47bbbad83711771f167c72d4e3f25f7fcc1f8b0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/6fda8ce1974b62b14935adc02a9ed38252eca656", - "reference": "6fda8ce1974b62b14935adc02a9ed38252eca656", + "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/d47bbbad83711771f167c72d4e3f25f7fcc1f8b0", + "reference": "d47bbbad83711771f167c72d4e3f25f7fcc1f8b0", "shasum": "" }, "require": { - "php": "^7.1" + "php": ">=7.1" }, "require-dev": { "phpunit/phpunit": "^7.5" @@ -954,7 +1078,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "4.1-dev" + "dev-master": "4.2-dev" } }, "autoload": { @@ -979,29 +1103,39 @@ "environment", "hhvm" ], - "time": "2019-02-01 05:27:49" + "support": { + "issues": "https://github.com/sebastianbergmann/environment/issues", + "source": "https://github.com/sebastianbergmann/environment/tree/4.2.4" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-11-30T07:53:42+00:00" }, { "name": "sebastian/exporter", - "version": "3.1.0", + "version": "3.1.5", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/exporter.git", - "reference": "234199f4528de6d12aaa58b612e98f7d36adb937" + "reference": "73a9676f2833b9a7c36968f9d882589cd75511e6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/234199f4528de6d12aaa58b612e98f7d36adb937", - "reference": "234199f4528de6d12aaa58b612e98f7d36adb937", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/73a9676f2833b9a7c36968f9d882589cd75511e6", + "reference": "73a9676f2833b9a7c36968f9d882589cd75511e6", "shasum": "" }, "require": { - "php": "^7.0", + "php": ">=7.0", "sebastian/recursion-context": "^3.0" }, "require-dev": { "ext-mbstring": "*", - "phpunit/phpunit": "^6.0" + "phpunit/phpunit": "^8.5" }, "type": "library", "extra": { @@ -1019,6 +1153,10 @@ "BSD-3-Clause" ], "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, { "name": "Jeff Welch", "email": "whatthejeff@gmail.com" @@ -1027,17 +1165,13 @@ "name": "Volker Dusch", "email": "github@wallbash.com" }, - { - "name": "Bernhard Schussek", - "email": "bschussek@2bepublished.at" - }, - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - }, { "name": "Adam Harvey", "email": "aharvey@php.net" + }, + { + "name": "Bernhard Schussek", + "email": "bschussek@gmail.com" } ], "description": "Provides the functionality to export PHP variables for visualization", @@ -1046,7 +1180,17 @@ "export", "exporter" ], - "time": "2017-04-03 13:19:02" + "support": { + "issues": "https://github.com/sebastianbergmann/exporter/issues", + "source": "https://github.com/sebastianbergmann/exporter/tree/3.1.5" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2022-09-14T06:00:17+00:00" }, { "name": "sebastian/global-state", @@ -1097,24 +1241,28 @@ "keywords": [ "global state" ], - "time": "2017-04-27 15:39:26" + "support": { + "issues": "https://github.com/sebastianbergmann/global-state/issues", + "source": "https://github.com/sebastianbergmann/global-state/tree/2.0.0" + }, + "time": "2017-04-27T15:39:26+00:00" }, { "name": "sebastian/object-enumerator", - "version": "3.0.3", + "version": "3.0.4", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/object-enumerator.git", - "reference": "7cfd9e65d11ffb5af41198476395774d4c8a84c5" + "reference": "e67f6d32ebd0c749cf9d1dbd9f226c727043cdf2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/7cfd9e65d11ffb5af41198476395774d4c8a84c5", - "reference": "7cfd9e65d11ffb5af41198476395774d4c8a84c5", + "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/e67f6d32ebd0c749cf9d1dbd9f226c727043cdf2", + "reference": "e67f6d32ebd0c749cf9d1dbd9f226c727043cdf2", "shasum": "" }, "require": { - "php": "^7.0", + "php": ">=7.0", "sebastian/object-reflector": "^1.1.1", "sebastian/recursion-context": "^3.0" }, @@ -1144,24 +1292,34 @@ ], "description": "Traverses array structures and object graphs to enumerate all referenced objects", "homepage": "https://github.com/sebastianbergmann/object-enumerator/", - "time": "2017-08-03 12:35:26" + "support": { + "issues": "https://github.com/sebastianbergmann/object-enumerator/issues", + "source": "https://github.com/sebastianbergmann/object-enumerator/tree/3.0.4" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-11-30T07:40:27+00:00" }, { "name": "sebastian/object-reflector", - "version": "1.1.1", + "version": "1.1.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/object-reflector.git", - "reference": "773f97c67f28de00d397be301821b06708fca0be" + "reference": "9b8772b9cbd456ab45d4a598d2dd1a1bced6363d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/773f97c67f28de00d397be301821b06708fca0be", - "reference": "773f97c67f28de00d397be301821b06708fca0be", + "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/9b8772b9cbd456ab45d4a598d2dd1a1bced6363d", + "reference": "9b8772b9cbd456ab45d4a598d2dd1a1bced6363d", "shasum": "" }, "require": { - "php": "^7.0" + "php": ">=7.0" }, "require-dev": { "phpunit/phpunit": "^6.0" @@ -1189,24 +1347,34 @@ ], "description": "Allows reflection of object attributes, including inherited and non-public ones", "homepage": "https://github.com/sebastianbergmann/object-reflector/", - "time": "2017-03-29 09:07:27" + "support": { + "issues": "https://github.com/sebastianbergmann/object-reflector/issues", + "source": "https://github.com/sebastianbergmann/object-reflector/tree/1.1.2" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-11-30T07:37:18+00:00" }, { "name": "sebastian/recursion-context", - "version": "3.0.0", + "version": "3.0.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/recursion-context.git", - "reference": "5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8" + "reference": "367dcba38d6e1977be014dc4b22f47a484dac7fb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8", - "reference": "5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8", + "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/367dcba38d6e1977be014dc4b22f47a484dac7fb", + "reference": "367dcba38d6e1977be014dc4b22f47a484dac7fb", "shasum": "" }, "require": { - "php": "^7.0" + "php": ">=7.0" }, "require-dev": { "phpunit/phpunit": "^6.0" @@ -1227,14 +1395,14 @@ "BSD-3-Clause" ], "authors": [ - { - "name": "Jeff Welch", - "email": "whatthejeff@gmail.com" - }, { "name": "Sebastian Bergmann", "email": "sebastian@phpunit.de" }, + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, { "name": "Adam Harvey", "email": "aharvey@php.net" @@ -1242,24 +1410,34 @@ ], "description": "Provides functionality to recursively process PHP variables", "homepage": "http://www.github.com/sebastianbergmann/recursion-context", - "time": "2017-03-03 06:23:57" + "support": { + "issues": "https://github.com/sebastianbergmann/recursion-context/issues", + "source": "https://github.com/sebastianbergmann/recursion-context/tree/3.0.1" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-11-30T07:34:24+00:00" }, { "name": "sebastian/resource-operations", - "version": "2.0.1", + "version": "2.0.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/resource-operations.git", - "reference": "4d7a795d35b889bf80a0cc04e08d77cedfa917a9" + "reference": "31d35ca87926450c44eae7e2611d45a7a65ea8b3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/4d7a795d35b889bf80a0cc04e08d77cedfa917a9", - "reference": "4d7a795d35b889bf80a0cc04e08d77cedfa917a9", + "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/31d35ca87926450c44eae7e2611d45a7a65ea8b3", + "reference": "31d35ca87926450c44eae7e2611d45a7a65ea8b3", "shasum": "" }, "require": { - "php": "^7.1" + "php": ">=7.1" }, "type": "library", "extra": { @@ -1284,7 +1462,17 @@ ], "description": "Provides a list of PHP built-in functions that operate on resources", "homepage": "https://www.github.com/sebastianbergmann/resource-operations", - "time": "2018-10-04 04:07:39" + "support": { + "issues": "https://github.com/sebastianbergmann/resource-operations/issues", + "source": "https://github.com/sebastianbergmann/resource-operations/tree/2.0.2" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-11-30T07:30:19+00:00" }, { "name": "sebastian/version", @@ -1327,85 +1515,31 @@ ], "description": "Library that helps with managing the version number of Git-hosted PHP projects", "homepage": "https://github.com/sebastianbergmann/version", - "time": "2016-10-03 07:35:21" - }, - { - "name": "symfony/polyfill-ctype", - "version": "v1.10.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-ctype.git", - "reference": "e3d826245268269cd66f8326bd8bc066687b4a19" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/e3d826245268269cd66f8326bd8bc066687b4a19", - "reference": "e3d826245268269cd66f8326bd8bc066687b4a19", - "shasum": "" - }, - "require": { - "php": ">=5.3.3" - }, - "suggest": { - "ext-ctype": "For best performance" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.9-dev" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Ctype\\": "" - }, - "files": [ - "bootstrap.php" - ] + "support": { + "issues": "https://github.com/sebastianbergmann/version/issues", + "source": "https://github.com/sebastianbergmann/version/tree/master" }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - }, - { - "name": "Gert de Pagter", - "email": "BackEndTea@gmail.com" - } - ], - "description": "Symfony polyfill for ctype functions", - "homepage": "https://symfony.com/", - "keywords": [ - "compatibility", - "ctype", - "polyfill", - "portable" - ], - "time": "2018-08-06 14:22:27" + "time": "2016-10-03T07:35:21+00:00" }, { "name": "theseer/tokenizer", - "version": "1.1.0", + "version": "1.2.1", "source": { "type": "git", "url": "https://github.com/theseer/tokenizer.git", - "reference": "cb2f008f3f05af2893a87208fe6a6c4985483f8b" + "reference": "34a41e998c2183e22995f158c581e7b5e755ab9e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/theseer/tokenizer/zipball/cb2f008f3f05af2893a87208fe6a6c4985483f8b", - "reference": "cb2f008f3f05af2893a87208fe6a6c4985483f8b", + "url": "https://api.github.com/repos/theseer/tokenizer/zipball/34a41e998c2183e22995f158c581e7b5e755ab9e", + "reference": "34a41e998c2183e22995f158c581e7b5e755ab9e", "shasum": "" }, "require": { "ext-dom": "*", "ext-tokenizer": "*", "ext-xmlwriter": "*", - "php": "^7.0" + "php": "^7.2 || ^8.0" }, "type": "library", "autoload": { @@ -1425,34 +1559,47 @@ } ], "description": "A small library for converting tokenized PHP source code into XML and potentially other formats", - "time": "2017-04-07 12:08:54" + "support": { + "issues": "https://github.com/theseer/tokenizer/issues", + "source": "https://github.com/theseer/tokenizer/tree/1.2.1" + }, + "funding": [ + { + "url": "https://github.com/theseer", + "type": "github" + } + ], + "time": "2021-07-28T10:34:58+00:00" }, { "name": "webmozart/assert", - "version": "1.4.0", + "version": "1.11.0", "source": { "type": "git", - "url": "https://github.com/webmozart/assert.git", - "reference": "83e253c8e0be5b0257b881e1827274667c5c17a9" + "url": "https://github.com/webmozarts/assert.git", + "reference": "11cb2199493b2f8a3b53e7f19068fc6aac760991" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/webmozart/assert/zipball/83e253c8e0be5b0257b881e1827274667c5c17a9", - "reference": "83e253c8e0be5b0257b881e1827274667c5c17a9", + "url": "https://api.github.com/repos/webmozarts/assert/zipball/11cb2199493b2f8a3b53e7f19068fc6aac760991", + "reference": "11cb2199493b2f8a3b53e7f19068fc6aac760991", "shasum": "" }, "require": { - "php": "^5.3.3 || ^7.0", - "symfony/polyfill-ctype": "^1.8" + "ext-ctype": "*", + "php": "^7.2 || ^8.0" + }, + "conflict": { + "phpstan/phpstan": "<0.12.20", + "vimeo/psalm": "<4.6.1 || 4.6.2" }, "require-dev": { - "phpunit/phpunit": "^4.6", - "sebastian/version": "^1.0.1" + "phpunit/phpunit": "^8.5.13" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.3-dev" + "dev-master": "1.10-dev" } }, "autoload": { @@ -1476,7 +1623,11 @@ "check", "validate" ], - "time": "2018-12-25 11:19:39" + "support": { + "issues": "https://github.com/webmozarts/assert/issues", + "source": "https://github.com/webmozarts/assert/tree/1.11.0" + }, + "time": "2022-06-03T18:03:27+00:00" } ], "aliases": [], @@ -1485,7 +1636,10 @@ "prefer-stable": false, "prefer-lowest": false, "platform": { - "php": "^7" + "php": "^7|^8.0", + "ext-dom": "*", + "ext-libxml": "*" }, - "platform-dev": [] + "platform-dev": [], + "plugin-api-version": "2.3.0" } diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 00000000..0b9e28b7 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,7 @@ +version: "3.9" + +services: + php-fpm: + image: php:7-fpm + volumes: + - ./:/var/www/html diff --git a/logs/.keep b/logs/.keep new file mode 100644 index 00000000..e69de29b