summaryrefslogtreecommitdiff
path: root/vendor/php-http/httplug
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/php-http/httplug')
-rw-r--r--vendor/php-http/httplug/.php-cs-fixer.dist.php16
-rw-r--r--vendor/php-http/httplug/CHANGELOG.md141
-rw-r--r--vendor/php-http/httplug/LICENSE20
-rw-r--r--vendor/php-http/httplug/README.md54
-rw-r--r--vendor/php-http/httplug/composer.json40
-rw-r--r--vendor/php-http/httplug/puli.json12
-rw-r--r--vendor/php-http/httplug/src/Exception.php14
-rw-r--r--vendor/php-http/httplug/src/Exception/HttpException.php65
-rw-r--r--vendor/php-http/httplug/src/Exception/NetworkException.php28
-rw-r--r--vendor/php-http/httplug/src/Exception/RequestAwareTrait.php26
-rw-r--r--vendor/php-http/httplug/src/Exception/RequestException.php29
-rw-r--r--vendor/php-http/httplug/src/Exception/TransferException.php14
-rw-r--r--vendor/php-http/httplug/src/HttpAsyncClient.php25
-rw-r--r--vendor/php-http/httplug/src/HttpClient.php17
-rw-r--r--vendor/php-http/httplug/src/Promise/HttpFulfilledPromise.php54
-rw-r--r--vendor/php-http/httplug/src/Promise/HttpRejectedPromise.php58
16 files changed, 613 insertions, 0 deletions
diff --git a/vendor/php-http/httplug/.php-cs-fixer.dist.php b/vendor/php-http/httplug/.php-cs-fixer.dist.php
new file mode 100644
index 000000000..83809c25d
--- /dev/null
+++ b/vendor/php-http/httplug/.php-cs-fixer.dist.php
@@ -0,0 +1,16 @@
+<?php
+
+$finder = PhpCsFixer\Finder::create()
+ ->in(__DIR__.'/src')
+ ->name('*.php')
+;
+
+$config = (new PhpCsFixer\Config())
+ ->setRiskyAllowed(true)
+ ->setRules([
+ '@Symfony' => true,
+ ])
+ ->setFinder($finder)
+;
+
+return $config;
diff --git a/vendor/php-http/httplug/CHANGELOG.md b/vendor/php-http/httplug/CHANGELOG.md
new file mode 100644
index 000000000..efccd55d3
--- /dev/null
+++ b/vendor/php-http/httplug/CHANGELOG.md
@@ -0,0 +1,141 @@
+# Change Log
+
+
+All notable changes to this project will be documented in this file.
+
+The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
+and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
+
+
+## [2.4.0] - 2023-04-14
+
+### Changed
+
+- Allow `psr/http-message` v2 in addition to v1
+- Deprecate `Http\Client\HttpClient`, use [PSR-18](https://www.php-fig.org/psr/psr-18/) instead
+
+## [2.3.0] - 2022-02-21
+
+### Changed
+
+- Enabled the `$onRejected` callback of `HttpRejectedPromise` to return a promise for implementing a retry
+ mechanism [#168](https://github.com/php-http/httplug/pull/168)
+
+## [2.2.0] - 2020-07-13
+
+### Changed
+
+- Support PHP 7.1-8.0
+
+## [2.1.0] - 2019-12-27
+
+### Changed
+
+- `Http\Client\Exception\NetworkException` no longer extends `Http\Client\Exception\RequestException`,
+ in accordance with [PSR-18](https://www.php-fig.org/psr/psr-18/)
+
+## [2.0.0] - 2018-10-31
+
+This version is no BC break for consumers using HTTPlug. However, HTTP clients that
+implement HTTPlug need to adjust because we add return type declarations.
+
+### Added
+
+- Support for PSR-18 (HTTP client).
+
+### Changed
+
+- **BC Break:** `HttpClient::sendRequest(RequestInterface $request)` has a return type annotation. The new
+signature is `HttpClient::sendRequest(RequestInterface $request): ResponseInterface`.
+- **BC Break:** `RequestException::getRequest()` has a return type annotation. The new
+signature is `RequestException::getRequest(): RequestInterface`.
+
+### Removed
+
+- PHP 5 support
+
+
+## [1.1.0] - 2016-08-31
+
+### Added
+
+- HttpFulfilledPromise and HttpRejectedPromise which respect the HttpAsyncClient interface
+
+
+## [1.0.0] - 2016-01-26
+
+### Removed
+
+- Stability configuration from composer
+
+
+## [1.0.0-RC1] - 2016-01-12
+
+### Changed
+
+- Updated package files
+- Updated promise dependency to RC1
+
+
+## [1.0.0-beta] - 2015-12-17
+
+### Added
+
+- Puli configuration and binding types
+
+### Changed
+
+- Exception concept
+
+
+## [1.0.0-alpha3] - 2015-12-13
+
+### Changed
+
+- Async client does not throw exceptions
+
+### Removed
+
+- Promise interface moved to its own repository: [php-http/promise](https://github.com/php-http/promise)
+
+
+## [1.0.0-alpha2] - 2015-11-16
+
+### Added
+
+- Async client and Promise interface
+
+
+## [1.0.0-alpha] - 2015-10-26
+
+### Added
+
+- Better domain exceptions.
+
+### Changed
+
+- Purpose of the library: general HTTP CLient abstraction.
+
+### Removed
+
+- Request options: they should be configured at construction time.
+- Multiple request sending: should be done asynchronously using Async Client.
+- `getName` method
+
+
+## 0.1.0 - 2015-06-03
+
+### Added
+
+- Initial release
+
+
+[Unreleased]: https://github.com/php-http/httplug/compare/v2.0.0...HEAD
+[2.0.0]: https://github.com/php-http/httplug/compare/v1.1.0...HEAD
+[1.1.0]: https://github.com/php-http/httplug/compare/v1.0.0...v1.1.0
+[1.0.0]: https://github.com/php-http/httplug/compare/v1.0.0-RC1...v1.0.0
+[1.0.0-RC1]: https://github.com/php-http/httplug/compare/v1.0.0-beta...v1.0.0-RC1
+[1.0.0-beta]: https://github.com/php-http/httplug/compare/v1.0.0-alpha3...v1.0.0-beta
+[1.0.0-alpha3]: https://github.com/php-http/httplug/compare/v1.0.0-alpha2...v1.0.0-alpha3
+[1.0.0-alpha2]: https://github.com/php-http/httplug/compare/v1.0.0-alpha...v1.0.0-alpha2
+[1.0.0-alpha]: https://github.com/php-http/httplug/compare/v0.1.0...v1.0.0-alpha
diff --git a/vendor/php-http/httplug/LICENSE b/vendor/php-http/httplug/LICENSE
new file mode 100644
index 000000000..8cd264c6b
--- /dev/null
+++ b/vendor/php-http/httplug/LICENSE
@@ -0,0 +1,20 @@
+Copyright (c) 2014 Eric GELOEN <[email protected]>
+Copyright (c) 2015 PHP HTTP Team <[email protected]>
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is furnished
+to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
diff --git a/vendor/php-http/httplug/README.md b/vendor/php-http/httplug/README.md
new file mode 100644
index 000000000..a9b476a5e
--- /dev/null
+++ b/vendor/php-http/httplug/README.md
@@ -0,0 +1,54 @@
+# HTTPlug
+
+[![Latest Version](https://img.shields.io/github/release/php-http/httplug.svg?style=flat-square)](https://github.com/php-http/httplug/releases)
+[![Software License](https://img.shields.io/badge/license-MIT-brightgreen.svg?style=flat-square)](LICENSE)
+[![Build Status](https://github.com/php-http/httplug/actions/workflows/ci.yml/badge.svg)](https://github.com/php-http/httplug/actions/workflows/ci.yml)
+[![Code Coverage](https://img.shields.io/scrutinizer/coverage/g/php-http/httplug.svg?style=flat-square)](https://scrutinizer-ci.com/g/php-http/httplug)
+[![Quality Score](https://img.shields.io/scrutinizer/g/php-http/httplug.svg?style=flat-square)](https://scrutinizer-ci.com/g/php-http/httplug)
+[![Total Downloads](https://img.shields.io/packagist/dt/php-http/httplug.svg?style=flat-square)](https://packagist.org/packages/php-http/httplug)
+
+[![Email](https://img.shields.io/badge/[email protected]?style=flat-square)](mailto:[email protected])
+
+**HTTPlug, the HTTP client abstraction for PHP.**
+
+
+## Intro
+
+HTTP client standard built on [PSR-7](http://www.php-fig.org/psr/psr-7/) HTTP
+messages. The HttpAsyncClient defines an asynchronous HTTP client for PHP.
+
+This package also provides a synchronous HttpClient interface with the same
+method signature as the [PSR-18](http://www.php-fig.org/psr/psr-18/) client.
+For synchronous requests, we recommend using PSR-18 directly.
+
+
+## History
+
+HTTPlug is the official successor of the [ivory http adapter](https://github.com/egeloen/ivory-http-adapter).
+HTTPlug is a predecessor of [PSR-18](http://www.php-fig.org/psr/psr-18/)
+
+
+## Install
+
+Via Composer
+
+``` bash
+$ composer require php-http/httplug
+```
+
+
+## Documentation
+
+Please see the [official documentation](http://docs.php-http.org).
+
+
+## Testing
+
+``` bash
+$ composer test
+```
+
+
+## License
+
+The MIT License (MIT). Please see [License File](LICENSE) for more information.
diff --git a/vendor/php-http/httplug/composer.json b/vendor/php-http/httplug/composer.json
new file mode 100644
index 000000000..739177017
--- /dev/null
+++ b/vendor/php-http/httplug/composer.json
@@ -0,0 +1,40 @@
+{
+ "name": "php-http/httplug",
+ "description": "HTTPlug, the HTTP client abstraction for PHP",
+ "keywords": [
+ "http",
+ "client"
+ ],
+ "homepage": "http://httplug.io",
+ "license": "MIT",
+ "authors": [
+ {
+ "name": "Eric GELOEN",
+ "email": "[email protected]"
+ },
+ {
+ "name": "Márk Sági-Kazár",
+ "email": "[email protected]",
+ "homepage": "https://sagikazarmark.hu"
+ }
+ ],
+ "require": {
+ "php": "^7.1 || ^8.0",
+ "php-http/promise": "^1.1",
+ "psr/http-client": "^1.0",
+ "psr/http-message": "^1.0 || ^2.0"
+ },
+ "require-dev": {
+ "friends-of-phpspec/phpspec-code-coverage": "^4.1 || ^5.0 || ^6.0",
+ "phpspec/phpspec": "^5.1 || ^6.0 || ^7.0"
+ },
+ "autoload": {
+ "psr-4": {
+ "Http\\Client\\": "src/"
+ }
+ },
+ "scripts": {
+ "test": "vendor/bin/phpspec run",
+ "test-ci": "vendor/bin/phpspec run -c phpspec.ci.yml"
+ }
+}
diff --git a/vendor/php-http/httplug/puli.json b/vendor/php-http/httplug/puli.json
new file mode 100644
index 000000000..416833152
--- /dev/null
+++ b/vendor/php-http/httplug/puli.json
@@ -0,0 +1,12 @@
+{
+ "version": "1.0",
+ "name": "php-http/httplug",
+ "binding-types": {
+ "Http\\Client\\HttpAsyncClient": {
+ "description": "Async HTTP Client"
+ },
+ "Http\\Client\\HttpClient": {
+ "description": "HTTP Client"
+ }
+ }
+}
diff --git a/vendor/php-http/httplug/src/Exception.php b/vendor/php-http/httplug/src/Exception.php
new file mode 100644
index 000000000..4df164c9a
--- /dev/null
+++ b/vendor/php-http/httplug/src/Exception.php
@@ -0,0 +1,14 @@
+<?php
+
+namespace Http\Client;
+
+use Psr\Http\Client\ClientExceptionInterface as PsrClientException;
+
+/**
+ * Every HTTP Client related Exception must implement this interface.
+ *
+ * @author Márk Sági-Kazár <[email protected]>
+ */
+interface Exception extends PsrClientException
+{
+}
diff --git a/vendor/php-http/httplug/src/Exception/HttpException.php b/vendor/php-http/httplug/src/Exception/HttpException.php
new file mode 100644
index 000000000..6c2a007a0
--- /dev/null
+++ b/vendor/php-http/httplug/src/Exception/HttpException.php
@@ -0,0 +1,65 @@
+<?php
+
+namespace Http\Client\Exception;
+
+use Psr\Http\Message\RequestInterface;
+use Psr\Http\Message\ResponseInterface;
+
+/**
+ * Thrown when a response was received but the request itself failed.
+ *
+ * In addition to the request, this exception always provides access to the response object.
+ *
+ * @author Márk Sági-Kazár <[email protected]>
+ */
+class HttpException extends RequestException
+{
+ /**
+ * @var ResponseInterface
+ */
+ protected $response;
+
+ /**
+ * @param string $message
+ */
+ public function __construct(
+ $message,
+ RequestInterface $request,
+ ResponseInterface $response,
+ \Exception $previous = null
+ ) {
+ parent::__construct($message, $request, $previous);
+
+ $this->response = $response;
+ $this->code = $response->getStatusCode();
+ }
+
+ /**
+ * Returns the response.
+ *
+ * @return ResponseInterface
+ */
+ public function getResponse()
+ {
+ return $this->response;
+ }
+
+ /**
+ * Factory method to create a new exception with a normalized error message.
+ */
+ public static function create(
+ RequestInterface $request,
+ ResponseInterface $response,
+ \Exception $previous = null
+ ) {
+ $message = sprintf(
+ '[url] %s [http method] %s [status code] %s [reason phrase] %s',
+ $request->getRequestTarget(),
+ $request->getMethod(),
+ $response->getStatusCode(),
+ $response->getReasonPhrase()
+ );
+
+ return new static($message, $request, $response, $previous);
+ }
+}
diff --git a/vendor/php-http/httplug/src/Exception/NetworkException.php b/vendor/php-http/httplug/src/Exception/NetworkException.php
new file mode 100644
index 000000000..9b4f1e8fd
--- /dev/null
+++ b/vendor/php-http/httplug/src/Exception/NetworkException.php
@@ -0,0 +1,28 @@
+<?php
+
+namespace Http\Client\Exception;
+
+use Psr\Http\Client\NetworkExceptionInterface as PsrNetworkException;
+use Psr\Http\Message\RequestInterface;
+
+/**
+ * Thrown when the request cannot be completed because of network issues.
+ *
+ * There is no response object as this exception is thrown when no response has been received.
+ *
+ * @author Márk Sági-Kazár <[email protected]>
+ */
+class NetworkException extends TransferException implements PsrNetworkException
+{
+ use RequestAwareTrait;
+
+ /**
+ * @param string $message
+ */
+ public function __construct($message, RequestInterface $request, \Exception $previous = null)
+ {
+ $this->setRequest($request);
+
+ parent::__construct($message, 0, $previous);
+ }
+}
diff --git a/vendor/php-http/httplug/src/Exception/RequestAwareTrait.php b/vendor/php-http/httplug/src/Exception/RequestAwareTrait.php
new file mode 100644
index 000000000..71b4bb8c9
--- /dev/null
+++ b/vendor/php-http/httplug/src/Exception/RequestAwareTrait.php
@@ -0,0 +1,26 @@
+<?php
+
+namespace Http\Client\Exception;
+
+use Psr\Http\Message\RequestInterface;
+
+trait RequestAwareTrait
+{
+ /**
+ * @var RequestInterface
+ */
+ private $request;
+
+ private function setRequest(RequestInterface $request)
+ {
+ $this->request = $request;
+ }
+
+ /**
+ * {@inheritdoc}
+ */
+ public function getRequest(): RequestInterface
+ {
+ return $this->request;
+ }
+}
diff --git a/vendor/php-http/httplug/src/Exception/RequestException.php b/vendor/php-http/httplug/src/Exception/RequestException.php
new file mode 100644
index 000000000..f6c60ce56
--- /dev/null
+++ b/vendor/php-http/httplug/src/Exception/RequestException.php
@@ -0,0 +1,29 @@
+<?php
+
+namespace Http\Client\Exception;
+
+use Psr\Http\Client\RequestExceptionInterface as PsrRequestException;
+use Psr\Http\Message\RequestInterface;
+
+/**
+ * Exception for when a request failed, providing access to the failed request.
+ *
+ * This could be due to an invalid request, or one of the extending exceptions
+ * for network errors or HTTP error responses.
+ *
+ * @author Márk Sági-Kazár <[email protected]>
+ */
+class RequestException extends TransferException implements PsrRequestException
+{
+ use RequestAwareTrait;
+
+ /**
+ * @param string $message
+ */
+ public function __construct($message, RequestInterface $request, \Exception $previous = null)
+ {
+ $this->setRequest($request);
+
+ parent::__construct($message, 0, $previous);
+ }
+}
diff --git a/vendor/php-http/httplug/src/Exception/TransferException.php b/vendor/php-http/httplug/src/Exception/TransferException.php
new file mode 100644
index 000000000..a858cf5ec
--- /dev/null
+++ b/vendor/php-http/httplug/src/Exception/TransferException.php
@@ -0,0 +1,14 @@
+<?php
+
+namespace Http\Client\Exception;
+
+use Http\Client\Exception;
+
+/**
+ * Base exception for transfer related exceptions.
+ *
+ * @author Márk Sági-Kazár <[email protected]>
+ */
+class TransferException extends \RuntimeException implements Exception
+{
+}
diff --git a/vendor/php-http/httplug/src/HttpAsyncClient.php b/vendor/php-http/httplug/src/HttpAsyncClient.php
new file mode 100644
index 000000000..c3b9d61aa
--- /dev/null
+++ b/vendor/php-http/httplug/src/HttpAsyncClient.php
@@ -0,0 +1,25 @@
+<?php
+
+namespace Http\Client;
+
+use Http\Promise\Promise;
+use Psr\Http\Message\RequestInterface;
+
+/**
+ * Sends a PSR-7 Request in an asynchronous way by returning a Promise.
+ *
+ * @author Joel Wurtz <[email protected]>
+ */
+interface HttpAsyncClient
+{
+ /**
+ * Sends a PSR-7 request in an asynchronous way.
+ *
+ * Exceptions related to processing the request are available from the returned Promise.
+ *
+ * @return Promise resolves a PSR-7 Response or fails with an Http\Client\Exception
+ *
+ * @throws \Exception If processing the request is impossible (eg. bad configuration).
+ */
+ public function sendAsyncRequest(RequestInterface $request);
+}
diff --git a/vendor/php-http/httplug/src/HttpClient.php b/vendor/php-http/httplug/src/HttpClient.php
new file mode 100644
index 000000000..22b94aaf7
--- /dev/null
+++ b/vendor/php-http/httplug/src/HttpClient.php
@@ -0,0 +1,17 @@
+<?php
+
+namespace Http\Client;
+
+use Psr\Http\Client\ClientInterface;
+
+/**
+ * {@inheritdoc}
+ *
+ * Provide the Httplug HttpClient interface for BC.
+ * You should typehint Psr\Http\Client\ClientInterface in new code
+ *
+ * @deprecated since version 2.4, use Psr\Http\Client\ClientInterface instead; see https://www.php-fig.org/psr/psr-18/
+ */
+interface HttpClient extends ClientInterface
+{
+}
diff --git a/vendor/php-http/httplug/src/Promise/HttpFulfilledPromise.php b/vendor/php-http/httplug/src/Promise/HttpFulfilledPromise.php
new file mode 100644
index 000000000..1ad32cd53
--- /dev/null
+++ b/vendor/php-http/httplug/src/Promise/HttpFulfilledPromise.php
@@ -0,0 +1,54 @@
+<?php
+
+namespace Http\Client\Promise;
+
+use Http\Client\Exception;
+use Http\Promise\Promise;
+use Psr\Http\Message\ResponseInterface;
+
+final class HttpFulfilledPromise implements Promise
+{
+ /**
+ * @var ResponseInterface
+ */
+ private $response;
+
+ public function __construct(ResponseInterface $response)
+ {
+ $this->response = $response;
+ }
+
+ /**
+ * {@inheritdoc}
+ */
+ public function then(callable $onFulfilled = null, callable $onRejected = null)
+ {
+ if (null === $onFulfilled) {
+ return $this;
+ }
+
+ try {
+ return new self($onFulfilled($this->response));
+ } catch (Exception $e) {
+ return new HttpRejectedPromise($e);
+ }
+ }
+
+ /**
+ * {@inheritdoc}
+ */
+ public function getState()
+ {
+ return Promise::FULFILLED;
+ }
+
+ /**
+ * {@inheritdoc}
+ */
+ public function wait($unwrap = true)
+ {
+ if ($unwrap) {
+ return $this->response;
+ }
+ }
+}
diff --git a/vendor/php-http/httplug/src/Promise/HttpRejectedPromise.php b/vendor/php-http/httplug/src/Promise/HttpRejectedPromise.php
new file mode 100644
index 000000000..624cc8a94
--- /dev/null
+++ b/vendor/php-http/httplug/src/Promise/HttpRejectedPromise.php
@@ -0,0 +1,58 @@
+<?php
+
+namespace Http\Client\Promise;
+
+use Http\Client\Exception;
+use Http\Promise\Promise;
+
+final class HttpRejectedPromise implements Promise
+{
+ /**
+ * @var Exception
+ */
+ private $exception;
+
+ public function __construct(Exception $exception)
+ {
+ $this->exception = $exception;
+ }
+
+ /**
+ * {@inheritdoc}
+ */
+ public function then(callable $onFulfilled = null, callable $onRejected = null)
+ {
+ if (null === $onRejected) {
+ return $this;
+ }
+
+ try {
+ $result = $onRejected($this->exception);
+ if ($result instanceof Promise) {
+ return $result;
+ }
+
+ return new HttpFulfilledPromise($result);
+ } catch (Exception $e) {
+ return new self($e);
+ }
+ }
+
+ /**
+ * {@inheritdoc}
+ */
+ public function getState()
+ {
+ return Promise::REJECTED;
+ }
+
+ /**
+ * {@inheritdoc}
+ */
+ public function wait($unwrap = true)
+ {
+ if ($unwrap) {
+ throw $this->exception;
+ }
+ }
+}