rkljw 2 months ago
parent
commit
9bdb640bda
100 changed files with 1476 additions and 17992 deletions
  1. 1 1
      .gitignore
  2. 23 23
      .watcher.php
  3. 54 54
      Dockerfile
  4. 21 21
      LICENSE
  5. 63 63
      README.md
  6. 23 23
      app/Constants/ErrorCode.php
  7. 30 30
      app/Controller/AbstractController.php
  8. 38 38
      app/Controller/IndexController.php
  9. 42 42
      app/Exception/Handler/JsonRpcExceptionHandler.php
  10. 33 0
      app/JsonRpc/LinkService.php
  11. 12 0
      app/JsonRpc/PublicRpcServiceInterface.php
  12. 66 66
      app/JsonRpc/WebsiteService.php
  13. 35 35
      app/Listener/ResumeExitCoordinatorListener.php
  14. 27 27
      app/Model/Article.php
  15. 27 27
      app/Model/ArticleData.php
  16. 27 27
      app/Model/Category.php
  17. 27 27
      app/Model/District.php
  18. 27 27
      app/Model/LetterOfComplaint.php
  19. 27 27
      app/Model/LetterType.php
  20. 27 27
      app/Model/Link.php
  21. 19 19
      app/Model/Model.php
  22. 27 27
      app/Model/TemplateClass.php
  23. 27 27
      app/Model/UserLevel.php
  24. 27 27
      app/Model/WebsiteColumn.php
  25. 27 27
      app/Model/WebsiteRole.php
  26. 27 27
      app/Model/WebsiteRoleUser.php
  27. 101 0
      app/Service/MinioService.php
  28. 25 25
      app/Tools/Result.php
  29. 21 21
      composer.json
  30. 13 13
      config/autoload/aspects.php
  31. 19 19
      config/autoload/cache.php
  32. 13 13
      config/autoload/commands.php
  33. 28 28
      config/autoload/config_center.php
  34. 13 13
      config/autoload/databases.php
  35. 44 44
      config/autoload/devtool.php
  36. 22 22
      config/autoload/exceptions.php
  37. 15 15
      config/autoload/listeners.php
  38. 21 21
      config/autoload/logger.php
  39. 15 15
      config/autoload/middlewares.php
  40. 13 13
      config/autoload/processes.php
  41. 29 29
      config/autoload/redis.php
  42. 48 47
      config/autoload/server.php
  43. 33 33
      config/config.php
  44. 21 21
      config/container.php
  45. 18 18
      config/routes.php
  46. 30 30
      deploy.test.yml
  47. 18 18
      docker-compose.yml
  48. 14 14
      phpstan.neon.dist
  49. 16 16
      phpunit.xml.dist
  50. 27 27
      test/Cases/ExampleTest.php
  51. 45 45
      test/HttpTestCase.php
  52. 30 30
      test/bootstrap.php
  53. 0 25
      vendor/autoload.php
  54. 0 21
      vendor/carbonphp/carbon-doctrine-types/LICENSE
  55. 0 14
      vendor/carbonphp/carbon-doctrine-types/README.md
  56. 0 36
      vendor/carbonphp/carbon-doctrine-types/composer.json
  57. 0 16
      vendor/carbonphp/carbon-doctrine-types/src/Carbon/Doctrine/CarbonDoctrineType.php
  58. 0 9
      vendor/carbonphp/carbon-doctrine-types/src/Carbon/Doctrine/CarbonImmutableType.php
  59. 0 9
      vendor/carbonphp/carbon-doctrine-types/src/Carbon/Doctrine/CarbonType.php
  60. 0 131
      vendor/carbonphp/carbon-doctrine-types/src/Carbon/Doctrine/CarbonTypeConverter.php
  61. 0 30
      vendor/carbonphp/carbon-doctrine-types/src/Carbon/Doctrine/DateTimeDefaultPrecision.php
  62. 0 32
      vendor/carbonphp/carbon-doctrine-types/src/Carbon/Doctrine/DateTimeImmutableType.php
  63. 0 24
      vendor/carbonphp/carbon-doctrine-types/src/Carbon/Doctrine/DateTimeType.php
  64. 0 2
      vendor/clue/ndjson-react/.github/FUNDING.yml
  65. 0 75
      vendor/clue/ndjson-react/CHANGELOG.md
  66. 0 21
      vendor/clue/ndjson-react/LICENSE
  67. 0 365
      vendor/clue/ndjson-react/README.md
  68. 0 31
      vendor/clue/ndjson-react/composer.json
  69. 0 166
      vendor/clue/ndjson-react/src/Decoder.php
  70. 0 144
      vendor/clue/ndjson-react/src/Encoder.php
  71. 0 579
      vendor/composer/ClassLoader.php
  72. 0 359
      vendor/composer/InstalledVersions.php
  73. 0 21
      vendor/composer/LICENSE
  74. 0 39
      vendor/composer/autoload_files.php
  75. 0 9
      vendor/composer/autoload_namespaces.php
  76. 0 133
      vendor/composer/autoload_psr4.php
  77. 0 50
      vendor/composer/autoload_real.php
  78. 0 11064
      vendor/composer/installed.json
  79. 0 1485
      vendor/composer/installed.php
  80. 0 19
      vendor/composer/pcre/LICENSE
  81. 0 181
      vendor/composer/pcre/README.md
  82. 0 46
      vendor/composer/pcre/composer.json
  83. 0 46
      vendor/composer/pcre/src/MatchAllResult.php
  84. 0 46
      vendor/composer/pcre/src/MatchAllStrictGroupsResult.php
  85. 0 48
      vendor/composer/pcre/src/MatchAllWithOffsetsResult.php
  86. 0 39
      vendor/composer/pcre/src/MatchResult.php
  87. 0 39
      vendor/composer/pcre/src/MatchStrictGroupsResult.php
  88. 0 41
      vendor/composer/pcre/src/MatchWithOffsetsResult.php
  89. 0 60
      vendor/composer/pcre/src/PcreException.php
  90. 0 430
      vendor/composer/pcre/src/Preg.php
  91. 0 174
      vendor/composer/pcre/src/Regex.php
  92. 0 43
      vendor/composer/pcre/src/ReplaceResult.php
  93. 0 20
      vendor/composer/pcre/src/UnexpectedNullMatchException.php
  94. 0 26
      vendor/composer/platform_check.php
  95. 0 214
      vendor/composer/semver/CHANGELOG.md
  96. 0 19
      vendor/composer/semver/LICENSE
  97. 0 99
      vendor/composer/semver/README.md
  98. 0 59
      vendor/composer/semver/composer.json
  99. 0 11
      vendor/composer/semver/phpstan-baseline.neon
  100. 0 113
      vendor/composer/semver/src/Comparator.php

+ 1 - 1
.gitignore

@@ -17,7 +17,7 @@ runtime/logs/hyperf.log
 *.air
 *.ipa
 *.apk
-
+.env
 # Project files, i.e. `.project`, `.actionScriptProperties` and `.flexProperties`
 # should NOT be excluded as they contain compiler settings and other important
 # information for Eclipse / Flash Builder.

+ 23 - 23
.watcher.php

@@ -1,23 +1,23 @@
-<?php
-
-declare(strict_types=1);
-/**
- * This file is part of Hyperf.
- *
- * @link     https://www.hyperf.io
- * @document https://hyperf.wiki
- * @contact  group@hyperf.io
- * @license  https://github.com/hyperf/hyperf/blob/master/LICENSE
- */
-use Hyperf\Watcher\Driver\ScanFileDriver;
-
-return [
-    'driver' => ScanFileDriver::class,
-    'bin' => PHP_BINARY,
-    'watch' => [
-        'dir' => ['app', 'config'],
-        'file' => ['.env'],
-        'scan_interval' => 2000,
-    ],
-    'ext' => ['.php', '.env'],
-];
+<?php
+
+declare(strict_types=1);
+/**
+ * This file is part of Hyperf.
+ *
+ * @link     https://www.hyperf.io
+ * @document https://hyperf.wiki
+ * @contact  group@hyperf.io
+ * @license  https://github.com/hyperf/hyperf/blob/master/LICENSE
+ */
+use Hyperf\Watcher\Driver\ScanFileDriver;
+
+return [
+    'driver' => ScanFileDriver::class,
+    'bin' => PHP_BINARY,
+    'watch' => [
+        'dir' => ['app', 'config'],
+        'file' => ['.env'],
+        'scan_interval' => 2000,
+    ],
+    'ext' => ['.php', '.env'],
+];

+ 54 - 54
Dockerfile

@@ -1,54 +1,54 @@
-# Default Dockerfile
-#
-# @link     https://www.hyperf.io
-# @document https://hyperf.wiki
-# @contact  group@hyperf.io
-# @license  https://github.com/hyperf/hyperf/blob/master/LICENSE
-
-FROM hyperf/hyperf:8.3-alpine-v3.19-swoole
-LABEL maintainer="Hyperf Developers <group@hyperf.io>" version="1.0" license="MIT" app.name="Hyperf"
-
-##
-# ---------- env settings ----------
-##
-# --build-arg timezone=Asia/Shanghai
-ARG timezone
-
-ENV TIMEZONE=${timezone:-"Asia/Shanghai"} \
-    APP_ENV=prod \
-    SCAN_CACHEABLE=(true)
-
-# update
-RUN set -ex \
-    # show php version and extensions
-    && php -v \
-    && php -m \
-    && php --ri swoole \
-    #  ---------- some config ----------
-    && cd /etc/php* \
-    # - config PHP
-    && { \
-        echo "upload_max_filesize=128M"; \
-        echo "post_max_size=128M"; \
-        echo "memory_limit=1G"; \
-        echo "date.timezone=${TIMEZONE}"; \
-    } | tee conf.d/99_overrides.ini \
-    # - config timezone
-    && ln -sf /usr/share/zoneinfo/${TIMEZONE} /etc/localtime \
-    && echo "${TIMEZONE}" > /etc/timezone \
-    # ---------- clear works ----------
-    && rm -rf /var/cache/apk/* /tmp/* /usr/share/man \
-    && echo -e "\033[42;37m Build Completed :).\033[0m\n"
-
-WORKDIR /opt/www
-
-# Composer Cache
-# COPY ./composer.* /opt/www/
-# RUN composer install --no-dev --no-scripts
-
-COPY . /opt/www
-RUN composer install --no-dev -o && php bin/hyperf.php
-
-EXPOSE 9501
-
-ENTRYPOINT ["php", "/opt/www/bin/hyperf.php", "start"]
+# Default Dockerfile
+#
+# @link     https://www.hyperf.io
+# @document https://hyperf.wiki
+# @contact  group@hyperf.io
+# @license  https://github.com/hyperf/hyperf/blob/master/LICENSE
+
+FROM hyperf/hyperf:8.3-alpine-v3.19-swoole
+LABEL maintainer="Hyperf Developers <group@hyperf.io>" version="1.0" license="MIT" app.name="Hyperf"
+
+##
+# ---------- env settings ----------
+##
+# --build-arg timezone=Asia/Shanghai
+ARG timezone
+
+ENV TIMEZONE=${timezone:-"Asia/Shanghai"} \
+    APP_ENV=prod \
+    SCAN_CACHEABLE=(true)
+
+# update
+RUN set -ex \
+    # show php version and extensions
+    && php -v \
+    && php -m \
+    && php --ri swoole \
+    #  ---------- some config ----------
+    && cd /etc/php* \
+    # - config PHP
+    && { \
+        echo "upload_max_filesize=128M"; \
+        echo "post_max_size=128M"; \
+        echo "memory_limit=1G"; \
+        echo "date.timezone=${TIMEZONE}"; \
+    } | tee conf.d/99_overrides.ini \
+    # - config timezone
+    && ln -sf /usr/share/zoneinfo/${TIMEZONE} /etc/localtime \
+    && echo "${TIMEZONE}" > /etc/timezone \
+    # ---------- clear works ----------
+    && rm -rf /var/cache/apk/* /tmp/* /usr/share/man \
+    && echo -e "\033[42;37m Build Completed :).\033[0m\n"
+
+WORKDIR /opt/www
+
+# Composer Cache
+# COPY ./composer.* /opt/www/
+# RUN composer install --no-dev --no-scripts
+
+COPY . /opt/www
+RUN composer install --no-dev -o && php bin/hyperf.php
+
+EXPOSE 9501
+
+ENTRYPOINT ["php", "/opt/www/bin/hyperf.php", "start"]

+ 21 - 21
LICENSE

@@ -1,21 +1,21 @@
-The MIT License (MIT)
-
-Copyright (c) Hyperf
-
-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.
+The MIT License (MIT)
+
+Copyright (c) Hyperf
+
+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.

+ 63 - 63
README.md

@@ -1,63 +1,63 @@
-# Introduction
-
-This is a skeleton application using the Hyperf framework. This application is meant to be used as a starting place for those looking to get their feet wet with Hyperf Framework.
-
-# Requirements
-
-Hyperf has some requirements for the system environment, it can only run under Linux and Mac environment, but due to the development of Docker virtualization technology, Docker for Windows can also be used as the running environment under Windows.
-
-The various versions of Dockerfile have been prepared for you in the [hyperf/hyperf-docker](https://github.com/hyperf/hyperf-docker) project, or directly based on the already built [hyperf/hyperf](https://hub.docker.com/r/hyperf/hyperf) Image to run.
-
-When you don't want to use Docker as the basis for your running environment, you need to make sure that your operating environment meets the following requirements:  
-
- - PHP >= 8.1
- - Any of the following network engines
-   - Swoole PHP extension >= 5.0,with `swoole.use_shortname` set to `Off` in your `php.ini`
-   - Swow PHP extension >= 1.3
- - JSON PHP extension
- - Pcntl PHP extension
- - OpenSSL PHP extension (If you need to use the HTTPS)
- - PDO PHP extension (If you need to use the MySQL Client)
- - Redis PHP extension (If you need to use the Redis Client)
- - Protobuf PHP extension (If you need to use the gRPC Server or Client)
-
-# Installation using Composer
-
-The easiest way to create a new Hyperf project is to use [Composer](https://getcomposer.org/). If you don't have it already installed, then please install as per [the documentation](https://getcomposer.org/download/).
-
-To create your new Hyperf project:
-
-```bash
-composer create-project hyperf/hyperf-skeleton path/to/install
-```
-
-If your development environment is based on Docker you can use the official Composer image to create a new Hyperf project:
-
-```bash
-docker run --rm -it -v $(pwd):/app composer create-project --ignore-platform-reqs hyperf/hyperf-skeleton path/to/install
-```
-
-# Getting started
-
-Once installed, you can run the server immediately using the command below.
-
-```bash
-cd path/to/install
-php bin/hyperf.php start
-```
-
-Or if in a Docker based environment you can use the `docker-compose.yml` provided by the template:
-
-```bash
-cd path/to/install
-docker-compose up
-```
-
-This will start the cli-server on port `9501`, and bind it to all network interfaces. You can then visit the site at `http://localhost:9501/` which will bring up Hyperf default home page.
-
-## Hints
-
-- A nice tip is to rename `hyperf-skeleton` of files like `composer.json` and `docker-compose.yml` to your actual project name.
-- Take a look at `config/routes.php` and `app/Controller/IndexController.php` to see an example of a HTTP entrypoint.
-
-**Remember:** you can always replace the contents of this README.md file to something that fits your project description.
+# Introduction
+
+This is a skeleton application using the Hyperf framework. This application is meant to be used as a starting place for those looking to get their feet wet with Hyperf Framework.
+
+# Requirements
+
+Hyperf has some requirements for the system environment, it can only run under Linux and Mac environment, but due to the development of Docker virtualization technology, Docker for Windows can also be used as the running environment under Windows.
+
+The various versions of Dockerfile have been prepared for you in the [hyperf/hyperf-docker](https://github.com/hyperf/hyperf-docker) project, or directly based on the already built [hyperf/hyperf](https://hub.docker.com/r/hyperf/hyperf) Image to run.
+
+When you don't want to use Docker as the basis for your running environment, you need to make sure that your operating environment meets the following requirements:  
+
+ - PHP >= 8.1
+ - Any of the following network engines
+   - Swoole PHP extension >= 5.0,with `swoole.use_shortname` set to `Off` in your `php.ini`
+   - Swow PHP extension >= 1.3
+ - JSON PHP extension
+ - Pcntl PHP extension
+ - OpenSSL PHP extension (If you need to use the HTTPS)
+ - PDO PHP extension (If you need to use the MySQL Client)
+ - Redis PHP extension (If you need to use the Redis Client)
+ - Protobuf PHP extension (If you need to use the gRPC Server or Client)
+
+# Installation using Composer
+
+The easiest way to create a new Hyperf project is to use [Composer](https://getcomposer.org/). If you don't have it already installed, then please install as per [the documentation](https://getcomposer.org/download/).
+
+To create your new Hyperf project:
+
+```bash
+composer create-project hyperf/hyperf-skeleton path/to/install
+```
+
+If your development environment is based on Docker you can use the official Composer image to create a new Hyperf project:
+
+```bash
+docker run --rm -it -v $(pwd):/app composer create-project --ignore-platform-reqs hyperf/hyperf-skeleton path/to/install
+```
+
+# Getting started
+
+Once installed, you can run the server immediately using the command below.
+
+```bash
+cd path/to/install
+php bin/hyperf.php start
+```
+
+Or if in a Docker based environment you can use the `docker-compose.yml` provided by the template:
+
+```bash
+cd path/to/install
+docker-compose up
+```
+
+This will start the cli-server on port `9501`, and bind it to all network interfaces. You can then visit the site at `http://localhost:9501/` which will bring up Hyperf default home page.
+
+## Hints
+
+- A nice tip is to rename `hyperf-skeleton` of files like `composer.json` and `docker-compose.yml` to your actual project name.
+- Take a look at `config/routes.php` and `app/Controller/IndexController.php` to see an example of a HTTP entrypoint.
+
+**Remember:** you can always replace the contents of this README.md file to something that fits your project description.

+ 23 - 23
app/Constants/ErrorCode.php

@@ -1,24 +1,24 @@
-<?php
-declare(strict_types=1);
-namespace App\Constants;
-use Hyperf\Constants\AbstractConstants;
-use Hyperf\Constants\Annotation\Constants;
-/**
- * @Constants
- */
-#[Constants]
-class ErrorCode extends AbstractConstants
-{
-    /**
-     * @Message("Server Error!")
-     */
-    const SERVER_ERROR = 500;
-    /**
-     * @Message("success")
-     */
-    public const SUCCESS = 200;
-    /**
-     * @Message("error")
-     */
-    public const ERROR = 0;
+<?php
+declare(strict_types=1);
+namespace App\Constants;
+use Hyperf\Constants\AbstractConstants;
+use Hyperf\Constants\Annotation\Constants;
+/**
+ * @Constants
+ */
+#[Constants]
+class ErrorCode extends AbstractConstants
+{
+    /**
+     * @Message("Server Error!")
+     */
+    const SERVER_ERROR = 500;
+    /**
+     * @Message("success")
+     */
+    public const SUCCESS = 200;
+    /**
+     * @Message("error")
+     */
+    public const ERROR = 0;
 }

+ 30 - 30
app/Controller/AbstractController.php

@@ -1,30 +1,30 @@
-<?php
-
-declare(strict_types=1);
-/**
- * This file is part of Hyperf.
- *
- * @link     https://www.hyperf.io
- * @document https://hyperf.wiki
- * @contact  group@hyperf.io
- * @license  https://github.com/hyperf/hyperf/blob/master/LICENSE
- */
-
-namespace App\Controller;
-
-use Hyperf\Di\Annotation\Inject;
-use Hyperf\HttpServer\Contract\RequestInterface;
-use Hyperf\HttpServer\Contract\ResponseInterface;
-use Psr\Container\ContainerInterface;
-
-abstract class AbstractController
-{
-    #[Inject]
-    protected ContainerInterface $container;
-
-    #[Inject]
-    protected RequestInterface $request;
-
-    #[Inject]
-    protected ResponseInterface $response;
-}
+<?php
+
+declare(strict_types=1);
+/**
+ * This file is part of Hyperf.
+ *
+ * @link     https://www.hyperf.io
+ * @document https://hyperf.wiki
+ * @contact  group@hyperf.io
+ * @license  https://github.com/hyperf/hyperf/blob/master/LICENSE
+ */
+
+namespace App\Controller;
+
+use Hyperf\Di\Annotation\Inject;
+use Hyperf\HttpServer\Contract\RequestInterface;
+use Hyperf\HttpServer\Contract\ResponseInterface;
+use Psr\Container\ContainerInterface;
+
+abstract class AbstractController
+{
+    #[Inject]
+    protected ContainerInterface $container;
+
+    #[Inject]
+    protected RequestInterface $request;
+
+    #[Inject]
+    protected ResponseInterface $response;
+}

+ 38 - 38
app/Controller/IndexController.php

@@ -1,38 +1,38 @@
-<?php
-
-declare(strict_types=1);
-/**
- * This file is part of Hyperf.
- *
- * @link     https://www.hyperf.io
- * @document https://hyperf.wiki
- * @contact  group@hyperf.io
- * @license  https://github.com/hyperf/hyperf/blob/master/LICENSE
- */
-
-namespace App\Exception\Handler;
-
-use Hyperf\Contract\StdoutLoggerInterface;
-use Hyperf\ExceptionHandler\ExceptionHandler;
-use Hyperf\HttpMessage\Stream\SwooleStream;
-use Psr\Http\Message\ResponseInterface;
-use Throwable;
-
-class AppExceptionHandler extends ExceptionHandler
-{
-    public function __construct(protected StdoutLoggerInterface $logger)
-    {
-    }
-
-    public function handle(Throwable $throwable, ResponseInterface $response)
-    {
-        $this->logger->error(sprintf('%s[%s] in %s', $throwable->getMessage(), $throwable->getLine(), $throwable->getFile()));
-        $this->logger->error($throwable->getTraceAsString());
-        return $response->withHeader('Server', 'Hyperf')->withStatus(500)->withBody(new SwooleStream('Internal Server Error.'));
-    }
-
-    public function isValid(Throwable $throwable): bool
-    {
-        return true;
-    }
-}
+<?php
+
+declare(strict_types=1);
+/**
+ * This file is part of Hyperf.
+ *
+ * @link     https://www.hyperf.io
+ * @document https://hyperf.wiki
+ * @contact  group@hyperf.io
+ * @license  https://github.com/hyperf/hyperf/blob/master/LICENSE
+ */
+
+namespace App\Exception\Handler;
+
+use Hyperf\Contract\StdoutLoggerInterface;
+use Hyperf\ExceptionHandler\ExceptionHandler;
+use Hyperf\HttpMessage\Stream\SwooleStream;
+use Psr\Http\Message\ResponseInterface;
+use Throwable;
+
+class AppExceptionHandler extends ExceptionHandler
+{
+    public function __construct(protected StdoutLoggerInterface $logger)
+    {
+    }
+
+    public function handle(Throwable $throwable, ResponseInterface $response)
+    {
+        $this->logger->error(sprintf('%s[%s] in %s', $throwable->getMessage(), $throwable->getLine(), $throwable->getFile()));
+        $this->logger->error($throwable->getTraceAsString());
+        return $response->withHeader('Server', 'Hyperf')->withStatus(500)->withBody(new SwooleStream('Internal Server Error.'));
+    }
+
+    public function isValid(Throwable $throwable): bool
+    {
+        return true;
+    }
+}

+ 42 - 42
app/Exception/Handler/JsonRpcExceptionHandler.php

@@ -1,43 +1,43 @@
-<?php
-declare(strict_types=1);
-namespace App\Exception\Handler;
-use http\Env;
-use Hyperf\Config\Annotation\Value;
-use Hyperf\Contract\ConfigInterface;
-use Hyperf\ExceptionHandler\ExceptionHandler;
-use Hyperf\HttpMessage\Stream\SwooleStream;
-use Hyperf\Context\ApplicationContext;
-use Psr\Http\Message\ResponseInterface;
-use Throwable;
-use function Hyperf\Support\env;
-class JsonRpcExceptionHandler extends ExceptionHandler
-{
-    /**
-     * @Value("app_name")
-     * @var $appName
-     */
-    public function handle(Throwable $throwable, ResponseInterface $response)
-    {
-        $responseContents = $response->getBody()->getContents();
-        $responseContents = json_decode($responseContents, true);
-        if (!empty($responseContents['error'])) {
-            $port = null;
-            $config = ApplicationContext::getContainer()->get(ConfigInterface::class);
-            $servers = $config->get('server.servers');
-            foreach ($servers as $k => $server) {
-                if ($server['name'] == 'jsonrpc-http') {
-                    $port = $server['port'];
-                    break;
-                }
-            }
-            $app_name = env("APP_NAME");
-            $responseContents['error']['message'] .= " - {$app_name}:{$port}";
-        }
-        $data = json_encode($responseContents, JSON_UNESCAPED_UNICODE);
-        return $response->withStatus(200)->withBody(new SwooleStream($data));
-    }
-    public function isValid(Throwable $throwable): bool
-    {
-        return true;
-    }
+<?php
+declare(strict_types=1);
+namespace App\Exception\Handler;
+use http\Env;
+use Hyperf\Config\Annotation\Value;
+use Hyperf\Contract\ConfigInterface;
+use Hyperf\ExceptionHandler\ExceptionHandler;
+use Hyperf\HttpMessage\Stream\SwooleStream;
+use Hyperf\Context\ApplicationContext;
+use Psr\Http\Message\ResponseInterface;
+use Throwable;
+use function Hyperf\Support\env;
+class JsonRpcExceptionHandler extends ExceptionHandler
+{
+    /**
+     * @Value("app_name")
+     * @var $appName
+     */
+    public function handle(Throwable $throwable, ResponseInterface $response)
+    {
+        $responseContents = $response->getBody()->getContents();
+        $responseContents = json_decode($responseContents, true);
+        if (!empty($responseContents['error'])) {
+            $port = null;
+            $config = ApplicationContext::getContainer()->get(ConfigInterface::class);
+            $servers = $config->get('server.servers');
+            foreach ($servers as $k => $server) {
+                if ($server['name'] == 'jsonrpc-http') {
+                    $port = $server['port'];
+                    break;
+                }
+            }
+            $app_name = env("APP_NAME");
+            $responseContents['error']['message'] .= " - {$app_name}:{$port}";
+        }
+        $data = json_encode($responseContents, JSON_UNESCAPED_UNICODE);
+        return $response->withStatus(200)->withBody(new SwooleStream($data));
+    }
+    public function isValid(Throwable $throwable): bool
+    {
+        return true;
+    }
 }

+ 33 - 0
app/JsonRpc/LinkService.php

@@ -9,6 +9,7 @@ use App\Model\LevelUser;
 use App\Model\UserLevel;
 use App\Tools\Result;
 use Hyperf\RpcServer\Annotation\RpcService;
+use App\Service\MinioService;
 
 #[RpcService(name: "PublicRpcService", protocol: "jsonrpc-http", server: "jsonrpc-http")]
 class PublicRpcService implements PublicRpcServiceInterface
@@ -489,5 +490,37 @@ class PublicRpcService implements PublicRpcServiceInterface
             return Result::success($result);
         }
     }
+
+    /**
+     * 获取所有的buckets
+     * @param array $data
+     * @return array
+     */
+    public function getBuckets(array $data) :array
+    {
+        $result = new MinioService();
+        // 调用服务层的方法获取存储桶列表
+        $bucketsResponse =$result->listBuckets();
+        // 直接返回服务层生成的响应
+        return Result::success($bucketsResponse['data']);
+    }
+
+    /**
+     * 上传文件
+     * @param array $data
+     * @return array
+     */
+    public function uploadFile(array $data) :array
+    {
+        $result = new MinioService();
+        $rep = $result->uploadFile($data);
+        if($rep['code']==200){
+            return Result::success($rep['data']);
+        }else{
+            return Result::error("上传失败!");
+        }
+
+    }
+
 }
 

+ 12 - 0
app/JsonRpc/PublicRpcServiceInterface.php

@@ -133,4 +133,16 @@ interface PublicRpcServiceInterface
      * @return array
      */
     public function modZhinengbumen(array $data): array;
+
+    /**
+     * @param array $data
+     * @return array
+     */
+    public function getBuckets(array $data): array;
+
+    /**
+     * @param array $data
+     * @return array
+     */
+    public function uploadFile(array $data): array;
 }

+ 66 - 66
app/JsonRpc/WebsiteService.php

@@ -1,66 +1,66 @@
-<?php
-
-declare(strict_types=1);
-/**
- * This file is part of Hyperf.
- *
- * @link     https://www.hyperf.io
- * @document https://hyperf.wiki
- * @contact  group@hyperf.io
- * @license  https://github.com/hyperf/hyperf/blob/master/LICENSE
- */
-
-namespace App\Listener;
-
-use Hyperf\Collection\Arr;
-use Hyperf\Database\Events\QueryExecuted;
-use Hyperf\Event\Annotation\Listener;
-use Hyperf\Event\Contract\ListenerInterface;
-use Hyperf\Logger\LoggerFactory;
-use Psr\Container\ContainerInterface;
-use Psr\Log\LoggerInterface;
-
-#[Listener]
-class DbQueryExecutedListener implements ListenerInterface
-{
-    /**
-     * @var LoggerInterface
-     */
-    private $logger;
-
-    public function __construct(ContainerInterface $container)
-    {
-        $this->logger = $container->get(LoggerFactory::class)->get('sql');
-    }
-
-    public function listen(): array
-    {
-        return [
-            QueryExecuted::class,
-        ];
-    }
-
-    /**
-     * @param QueryExecuted $event
-     */
-    public function process(object $event): void
-    {
-        if ($event instanceof QueryExecuted) {
-            $sql = $event->sql;
-            if (! Arr::isAssoc($event->bindings)) {
-                $position = 0;
-                foreach ($event->bindings as $value) {
-                    $position = strpos($sql, '?', $position);
-                    if ($position === false) {
-                        break;
-                    }
-                    $value = "'{$value}'";
-                    $sql = substr_replace($sql, $value, $position, 1);
-                    $position += strlen($value);
-                }
-            }
-
-            $this->logger->info(sprintf('[%s] %s', $event->time, $sql));
-        }
-    }
-}
+<?php
+
+declare(strict_types=1);
+/**
+ * This file is part of Hyperf.
+ *
+ * @link     https://www.hyperf.io
+ * @document https://hyperf.wiki
+ * @contact  group@hyperf.io
+ * @license  https://github.com/hyperf/hyperf/blob/master/LICENSE
+ */
+
+namespace App\Listener;
+
+use Hyperf\Collection\Arr;
+use Hyperf\Database\Events\QueryExecuted;
+use Hyperf\Event\Annotation\Listener;
+use Hyperf\Event\Contract\ListenerInterface;
+use Hyperf\Logger\LoggerFactory;
+use Psr\Container\ContainerInterface;
+use Psr\Log\LoggerInterface;
+
+#[Listener]
+class DbQueryExecutedListener implements ListenerInterface
+{
+    /**
+     * @var LoggerInterface
+     */
+    private $logger;
+
+    public function __construct(ContainerInterface $container)
+    {
+        $this->logger = $container->get(LoggerFactory::class)->get('sql');
+    }
+
+    public function listen(): array
+    {
+        return [
+            QueryExecuted::class,
+        ];
+    }
+
+    /**
+     * @param QueryExecuted $event
+     */
+    public function process(object $event): void
+    {
+        if ($event instanceof QueryExecuted) {
+            $sql = $event->sql;
+            if (! Arr::isAssoc($event->bindings)) {
+                $position = 0;
+                foreach ($event->bindings as $value) {
+                    $position = strpos($sql, '?', $position);
+                    if ($position === false) {
+                        break;
+                    }
+                    $value = "'{$value}'";
+                    $sql = substr_replace($sql, $value, $position, 1);
+                    $position += strlen($value);
+                }
+            }
+
+            $this->logger->info(sprintf('[%s] %s', $event->time, $sql));
+        }
+    }
+}

+ 35 - 35
app/Listener/ResumeExitCoordinatorListener.php

@@ -1,35 +1,35 @@
-<?php
-
-declare(strict_types=1);
-/**
- * This file is part of Hyperf.
- *
- * @link     https://www.hyperf.io
- * @document https://hyperf.wiki
- * @contact  group@hyperf.io
- * @license  https://github.com/hyperf/hyperf/blob/master/LICENSE
- */
-
-namespace App\Listener;
-
-use Hyperf\Command\Event\AfterExecute;
-use Hyperf\Coordinator\Constants;
-use Hyperf\Coordinator\CoordinatorManager;
-use Hyperf\Event\Annotation\Listener;
-use Hyperf\Event\Contract\ListenerInterface;
-
-#[Listener]
-class ResumeExitCoordinatorListener implements ListenerInterface
-{
-    public function listen(): array
-    {
-        return [
-            AfterExecute::class,
-        ];
-    }
-
-    public function process(object $event): void
-    {
-        CoordinatorManager::until(Constants::WORKER_EXIT)->resume();
-    }
-}
+<?php
+
+declare(strict_types=1);
+/**
+ * This file is part of Hyperf.
+ *
+ * @link     https://www.hyperf.io
+ * @document https://hyperf.wiki
+ * @contact  group@hyperf.io
+ * @license  https://github.com/hyperf/hyperf/blob/master/LICENSE
+ */
+
+namespace App\Listener;
+
+use Hyperf\Command\Event\AfterExecute;
+use Hyperf\Coordinator\Constants;
+use Hyperf\Coordinator\CoordinatorManager;
+use Hyperf\Event\Annotation\Listener;
+use Hyperf\Event\Contract\ListenerInterface;
+
+#[Listener]
+class ResumeExitCoordinatorListener implements ListenerInterface
+{
+    public function listen(): array
+    {
+        return [
+            AfterExecute::class,
+        ];
+    }
+
+    public function process(object $event): void
+    {
+        CoordinatorManager::until(Constants::WORKER_EXIT)->resume();
+    }
+}

+ 27 - 27
app/Model/Article.php

@@ -1,27 +1,27 @@
-<?php
-
-declare(strict_types=1);
-
-namespace App\Model;
-
-use Hyperf\DbConnection\Model\Model;
-
-/**
- */
-class Article extends Model
-{
-    /**
-     * The table associated with the model.
-     */
-    protected ?string $table = 'article';
-
-    /**
-     * The attributes that are mass assignable.
-     */
-    protected array $fillable = [];
-
-    /**
-     * The attributes that should be cast to native types.
-     */
-    protected array $casts = [];
-}
+<?php
+
+declare(strict_types=1);
+
+namespace App\Model;
+
+use Hyperf\DbConnection\Model\Model;
+
+/**
+ */
+class Article extends Model
+{
+    /**
+     * The table associated with the model.
+     */
+    protected ?string $table = 'article';
+
+    /**
+     * The attributes that are mass assignable.
+     */
+    protected array $fillable = [];
+
+    /**
+     * The attributes that should be cast to native types.
+     */
+    protected array $casts = [];
+}

+ 27 - 27
app/Model/ArticleData.php

@@ -1,27 +1,27 @@
-<?php
-
-declare(strict_types=1);
-
-namespace App\Model;
-
-use Hyperf\DbConnection\Model\Model;
-
-/**
- */
-class ArticleData extends Model
-{
-    /**
-     * The table associated with the model.
-     */
-    protected ?string $table = 'article_data';
-
-    /**
-     * The attributes that are mass assignable.
-     */
-    protected array $fillable = [];
-
-    /**
-     * The attributes that should be cast to native types.
-     */
-    protected array $casts = [];
-}
+<?php
+
+declare(strict_types=1);
+
+namespace App\Model;
+
+use Hyperf\DbConnection\Model\Model;
+
+/**
+ */
+class ArticleData extends Model
+{
+    /**
+     * The table associated with the model.
+     */
+    protected ?string $table = 'article_data';
+
+    /**
+     * The attributes that are mass assignable.
+     */
+    protected array $fillable = [];
+
+    /**
+     * The attributes that should be cast to native types.
+     */
+    protected array $casts = [];
+}

+ 27 - 27
app/Model/Category.php

@@ -1,27 +1,27 @@
-<?php
-
-declare(strict_types=1);
-
-namespace App\Model;
-
-use Hyperf\DbConnection\Model\Model;
-
-/**
- */
-class Category extends Model
-{
-    /**
-     * The table associated with the model.
-     */
-    protected ?string $table = 'category';
-
-    /**
-     * The attributes that are mass assignable.
-     */
-    protected array $fillable = [];
-
-    /**
-     * The attributes that should be cast to native types.
-     */
-    protected array $casts = [];
-}
+<?php
+
+declare(strict_types=1);
+
+namespace App\Model;
+
+use Hyperf\DbConnection\Model\Model;
+
+/**
+ */
+class Category extends Model
+{
+    /**
+     * The table associated with the model.
+     */
+    protected ?string $table = 'category';
+
+    /**
+     * The attributes that are mass assignable.
+     */
+    protected array $fillable = [];
+
+    /**
+     * The attributes that should be cast to native types.
+     */
+    protected array $casts = [];
+}

+ 27 - 27
app/Model/District.php

@@ -1,27 +1,27 @@
-<?php
-
-declare(strict_types=1);
-
-namespace App\Model;
-
-use Hyperf\DbConnection\Model\Model;
-
-/**
- */
-class District extends Model
-{
-    /**
-     * The table associated with the model.
-     */
-    protected ?string $table = 'district';
-
-    /**
-     * The attributes that are mass assignable.
-     */
-    protected array $fillable = [];
-
-    /**
-     * The attributes that should be cast to native types.
-     */
-    protected array $casts = [];
-}
+<?php
+
+declare(strict_types=1);
+
+namespace App\Model;
+
+use Hyperf\DbConnection\Model\Model;
+
+/**
+ */
+class District extends Model
+{
+    /**
+     * The table associated with the model.
+     */
+    protected ?string $table = 'district';
+
+    /**
+     * The attributes that are mass assignable.
+     */
+    protected array $fillable = [];
+
+    /**
+     * The attributes that should be cast to native types.
+     */
+    protected array $casts = [];
+}

+ 27 - 27
app/Model/LetterOfComplaint.php

@@ -1,27 +1,27 @@
-<?php
-
-declare(strict_types=1);
-
-namespace App\Model;
-
-use Hyperf\DbConnection\Model\Model;
-
-/**
- */
-class LetterOfComplaint extends Model
-{
-    /**
-     * The table associated with the model.
-     */
-    protected ?string $table = 'letter_of_complaint';
-
-    /**
-     * The attributes that are mass assignable.
-     */
-    protected array $fillable = [];
-
-    /**
-     * The attributes that should be cast to native types.
-     */
-    protected array $casts = [];
-}
+<?php
+
+declare(strict_types=1);
+
+namespace App\Model;
+
+use Hyperf\DbConnection\Model\Model;
+
+/**
+ */
+class LetterOfComplaint extends Model
+{
+    /**
+     * The table associated with the model.
+     */
+    protected ?string $table = 'letter_of_complaint';
+
+    /**
+     * The attributes that are mass assignable.
+     */
+    protected array $fillable = [];
+
+    /**
+     * The attributes that should be cast to native types.
+     */
+    protected array $casts = [];
+}

+ 27 - 27
app/Model/LetterType.php

@@ -1,27 +1,27 @@
-<?php
-
-declare(strict_types=1);
-
-namespace App\Model;
-
-use Hyperf\DbConnection\Model\Model;
-
-/**
- */
-class LetterType extends Model
-{
-    /**
-     * The table associated with the model.
-     */
-    protected ?string $table = 'letter_type';
-
-    /**
-     * The attributes that are mass assignable.
-     */
-    protected array $fillable = [];
-
-    /**
-     * The attributes that should be cast to native types.
-     */
-    protected array $casts = [];
-}
+<?php
+
+declare(strict_types=1);
+
+namespace App\Model;
+
+use Hyperf\DbConnection\Model\Model;
+
+/**
+ */
+class LetterType extends Model
+{
+    /**
+     * The table associated with the model.
+     */
+    protected ?string $table = 'letter_type';
+
+    /**
+     * The attributes that are mass assignable.
+     */
+    protected array $fillable = [];
+
+    /**
+     * The attributes that should be cast to native types.
+     */
+    protected array $casts = [];
+}

+ 27 - 27
app/Model/Link.php

@@ -1,27 +1,27 @@
-<?php
-
-declare(strict_types=1);
-
-namespace App\Model;
-
-use Hyperf\DbConnection\Model\Model;
-
-/**
- */
-class Link extends Model
-{
-    /**
-     * The table associated with the model.
-     */
-    protected ?string $table = 'link';
-
-    /**
-     * The attributes that are mass assignable.
-     */
-    protected array $fillable = [];
-
-    /**
-     * The attributes that should be cast to native types.
-     */
-    protected array $casts = [];
-}
+<?php
+
+declare(strict_types=1);
+
+namespace App\Model;
+
+use Hyperf\DbConnection\Model\Model;
+
+/**
+ */
+class Link extends Model
+{
+    /**
+     * The table associated with the model.
+     */
+    protected ?string $table = 'link';
+
+    /**
+     * The attributes that are mass assignable.
+     */
+    protected array $fillable = [];
+
+    /**
+     * The attributes that should be cast to native types.
+     */
+    protected array $casts = [];
+}

+ 19 - 19
app/Model/Model.php

@@ -1,19 +1,19 @@
-<?php
-
-declare(strict_types=1);
-/**
- * This file is part of Hyperf.
- *
- * @link     https://www.hyperf.io
- * @document https://hyperf.wiki
- * @contact  group@hyperf.io
- * @license  https://github.com/hyperf/hyperf/blob/master/LICENSE
- */
-
-namespace App\Model;
-
-use Hyperf\DbConnection\Model\Model as BaseModel;
-
-abstract class Model extends BaseModel
-{
-}
+<?php
+
+declare(strict_types=1);
+/**
+ * This file is part of Hyperf.
+ *
+ * @link     https://www.hyperf.io
+ * @document https://hyperf.wiki
+ * @contact  group@hyperf.io
+ * @license  https://github.com/hyperf/hyperf/blob/master/LICENSE
+ */
+
+namespace App\Model;
+
+use Hyperf\DbConnection\Model\Model as BaseModel;
+
+abstract class Model extends BaseModel
+{
+}

+ 27 - 27
app/Model/TemplateClass.php

@@ -1,27 +1,27 @@
-<?php
-
-declare(strict_types=1);
-
-namespace App\Model;
-
-use Hyperf\DbConnection\Model\Model;
-
-/**
- */
-class TemplateClass extends Model
-{
-    /**
-     * The table associated with the model.
-     */
-    protected ?string $table = 'template_class';
-
-    /**
-     * The attributes that are mass assignable.
-     */
-    protected array $fillable = [];
-
-    /**
-     * The attributes that should be cast to native types.
-     */
-    protected array $casts = [];
-}
+<?php
+
+declare(strict_types=1);
+
+namespace App\Model;
+
+use Hyperf\DbConnection\Model\Model;
+
+/**
+ */
+class TemplateClass extends Model
+{
+    /**
+     * The table associated with the model.
+     */
+    protected ?string $table = 'template_class';
+
+    /**
+     * The attributes that are mass assignable.
+     */
+    protected array $fillable = [];
+
+    /**
+     * The attributes that should be cast to native types.
+     */
+    protected array $casts = [];
+}

+ 27 - 27
app/Model/UserLevel.php

@@ -1,27 +1,27 @@
-<?php
-
-declare(strict_types=1);
-
-namespace App\Model;
-
-use Hyperf\DbConnection\Model\Model;
-
-/**
- */
-class UserLevel extends Model
-{
-    /**
-     * The table associated with the model.
-     */
-    protected ?string $table = 'user_level';
-
-    /**
-     * The attributes that are mass assignable.
-     */
-    protected array $fillable = [];
-
-    /**
-     * The attributes that should be cast to native types.
-     */
-    protected array $casts = [];
-}
+<?php
+
+declare(strict_types=1);
+
+namespace App\Model;
+
+use Hyperf\DbConnection\Model\Model;
+
+/**
+ */
+class UserLevel extends Model
+{
+    /**
+     * The table associated with the model.
+     */
+    protected ?string $table = 'user_level';
+
+    /**
+     * The attributes that are mass assignable.
+     */
+    protected array $fillable = [];
+
+    /**
+     * The attributes that should be cast to native types.
+     */
+    protected array $casts = [];
+}

+ 27 - 27
app/Model/WebsiteColumn.php

@@ -1,27 +1,27 @@
-<?php
-
-declare(strict_types=1);
-
-namespace App\Model;
-
-use Hyperf\DbConnection\Model\Model;
-
-/**
- */
-class WebsiteColumn extends Model
-{
-    /**
-     * The table associated with the model.
-     */
-    protected ?string $table = 'website_column';
-
-    /**
-     * The attributes that are mass assignable.
-     */
-    protected array $fillable = [];
-
-    /**
-     * The attributes that should be cast to native types.
-     */
-    protected array $casts = [];
-}
+<?php
+
+declare(strict_types=1);
+
+namespace App\Model;
+
+use Hyperf\DbConnection\Model\Model;
+
+/**
+ */
+class WebsiteColumn extends Model
+{
+    /**
+     * The table associated with the model.
+     */
+    protected ?string $table = 'website_column';
+
+    /**
+     * The attributes that are mass assignable.
+     */
+    protected array $fillable = [];
+
+    /**
+     * The attributes that should be cast to native types.
+     */
+    protected array $casts = [];
+}

+ 27 - 27
app/Model/WebsiteRole.php

@@ -1,27 +1,27 @@
-<?php
-
-declare(strict_types=1);
-
-namespace App\Model;
-
-use Hyperf\DbConnection\Model\Model;
-
-/**
- */
-class WebsiteRole extends Model
-{
-    /**
-     * The table associated with the model.
-     */
-    protected ?string $table = 'website_role';
-
-    /**
-     * The attributes that are mass assignable.
-     */
-    protected array $fillable = [];
-
-    /**
-     * The attributes that should be cast to native types.
-     */
-    protected array $casts = [];
-}
+<?php
+
+declare(strict_types=1);
+
+namespace App\Model;
+
+use Hyperf\DbConnection\Model\Model;
+
+/**
+ */
+class WebsiteRole extends Model
+{
+    /**
+     * The table associated with the model.
+     */
+    protected ?string $table = 'website_role';
+
+    /**
+     * The attributes that are mass assignable.
+     */
+    protected array $fillable = [];
+
+    /**
+     * The attributes that should be cast to native types.
+     */
+    protected array $casts = [];
+}

+ 27 - 27
app/Model/WebsiteRoleUser.php

@@ -1,27 +1,27 @@
-<?php
-
-declare(strict_types=1);
-
-namespace App\Model;
-
-use Hyperf\DbConnection\Model\Model;
-
-/**
- */
-class WebsiteRoleUser extends Model
-{
-    /**
-     * The table associated with the model.
-     */
-    protected ?string $table = 'website_role_user';
-
-    /**
-     * The attributes that are mass assignable.
-     */
-    protected array $fillable = [];
-
-    /**
-     * The attributes that should be cast to native types.
-     */
-    protected array $casts = [];
-}
+<?php
+
+declare(strict_types=1);
+
+namespace App\Model;
+
+use Hyperf\DbConnection\Model\Model;
+
+/**
+ */
+class WebsiteRoleUser extends Model
+{
+    /**
+     * The table associated with the model.
+     */
+    protected ?string $table = 'website_role_user';
+
+    /**
+     * The attributes that are mass assignable.
+     */
+    protected array $fillable = [];
+
+    /**
+     * The attributes that should be cast to native types.
+     */
+    protected array $casts = [];
+}

+ 101 - 0
app/Service/MinioService.php

@@ -0,0 +1,101 @@
+<?php
+
+declare(strict_types=1);
+
+namespace App\Service;
+
+use Aws\S3\S3Client;
+use Hyperf\HttpServer\Contract\ResponseInterface;
+use function Hyperf\Support\env;
+use App\Tools\Result;
+use Hyperf\HttpMessage\Upload\UploadedFile;
+
+class MinioService
+{
+    /**
+     * @Inject
+     * @var ResponseInterface
+     */
+    protected $response;
+
+    /**
+     * @Inject
+     * @var \Hyperf\Config\ConfigInterface
+     */
+    protected $config;
+
+    protected $s3Client;
+
+    public function __construct()
+    {
+        $this->s3Client = new S3Client([
+            'version' => 'latest',
+            'region'  => 'chinese',
+            'endpoint' => env("OSS_ENDPOINT"),
+            'use_path_style_endpoint' => true,
+            'credentials' => [
+                'key'    => env("OSS_KEY"),
+                'secret' => env("OSS_SECRET"),
+            ],
+        ]);
+    }
+
+    /**
+     * 没几把鸟用用来测试的
+     * @return \Psr\Http\Message\ResponseInterface
+     */
+    public function listBuckets()
+    {
+        try {
+            // 获取所有存储桶列表
+            $result =  $this->s3Client->listBuckets();
+            // 提取存储桶名称
+            $buckets = array_column($result['Buckets'], 'Name');
+            return  Result::success($buckets);
+        } catch (\Aws\Exception\AwsException $e) {
+            var_dump($e->getMessage());
+            return  Result::error("报错了");
+        } catch (\Exception $e) {
+            var_dump($e->getMessage());
+            return  Result::error("报错了");
+        }
+    }
+
+    /**
+     * 上传文件
+     * @return array|string[]
+     */
+    public function uploadFile($data)
+    {
+        $acceptExt = ['png', 'jpg', 'jpeg', 'gif', 'xls', 'xlsx', 'pdf', 'doc', 'docx', 'ppt', 'zip', 'pptx', 'mp4', 'flv','rar','tar'];
+        try {
+            if (!in_array( $data['ext'], $acceptExt)) {
+                return Result::error('文件名后缀不允许');
+            }
+            $fileName = time().mt_rand(1, 1000000) . '.' . $data['ext'];
+            $finalPath =  DIRECTORY_SEPARATOR.date('Ymd').DIRECTORY_SEPARATOR  . $fileName;
+            $key = $data['contentType'].$finalPath;
+            var_dump("===key:",$key);
+            $result = $this->s3Client->putObject([
+                'Bucket' => env("BUCKET"),
+                'Key' => $key,
+                'Body' => base64_decode($data['fileContent']),
+                'ACL' => 'public-read',
+                'ContentType' => $data['contentType'],
+            ]);
+            var_dump("返回值:",$result);
+            $rep = [
+                'imgUrl'=>$result['ObjectURL'],
+                'id'=>uniqid(),
+                'src'=>$key,
+                'fileName'=>$fileName,
+                'fileType'=> $data['ext'],
+                'oldFileName'=>$data['fileName']
+            ];
+            return  Result::success($rep);
+        } catch (\Exception $e) {
+            return  Result::error($e->getMessage());
+        }
+    }
+
+}

+ 25 - 25
app/Tools/Result.php

@@ -1,26 +1,26 @@
-<?php
-namespace App\Tools;
-use App\Constants\ErrorCode;
-class Result
-{
-    public static function success($data = [])
-    {
-        return static::result(ErrorCode::SUCCESS, ErrorCode::getMessage(ErrorCode::SUCCESS), $data);
-    }
-    public static function error($message = '', $code = ErrorCode::ERROR, $data = [])
-    {
-        if (empty($message)) {
-            return static::result($code, ErrorCode::getMessage($code), $data);
-        } else {
-            return static::result($code, $message, $data);
-        }
-    }
-    protected static function result($code, $message, $data)
-    {
-        return [
-            'code' => $code,
-            'message' => $message,
-            'data' => $data,
-        ];
-    }
+<?php
+namespace App\Tools;
+use App\Constants\ErrorCode;
+class Result
+{
+    public static function success($data = [])
+    {
+        return static::result(ErrorCode::SUCCESS, ErrorCode::getMessage(ErrorCode::SUCCESS), $data);
+    }
+    public static function error($message = '', $code = ErrorCode::ERROR, $data = [])
+    {
+        if (empty($message)) {
+            return static::result($code, ErrorCode::getMessage($code), $data);
+        } else {
+            return static::result($code, $message, $data);
+        }
+    }
+    protected static function result($code, $message, $data)
+    {
+        return [
+            'code' => $code,
+            'message' => $message,
+            'data' => $data,
+        ];
+    }
 }

+ 21 - 21
composer.json

@@ -1,21 +1,21 @@
-<?php
-
-declare(strict_types=1);
-/**
- * This file is part of Hyperf.
- *
- * @link     https://www.hyperf.io
- * @document https://hyperf.wiki
- * @contact  group@hyperf.io
- * @license  https://github.com/hyperf/hyperf/blob/master/LICENSE
- */
-return [
-    'scan' => [
-        'paths' => [
-            BASE_PATH . '/app',
-        ],
-        'ignore_annotations' => [
-            'mixin',
-        ],
-    ],
-];
+<?php
+
+declare(strict_types=1);
+/**
+ * This file is part of Hyperf.
+ *
+ * @link     https://www.hyperf.io
+ * @document https://hyperf.wiki
+ * @contact  group@hyperf.io
+ * @license  https://github.com/hyperf/hyperf/blob/master/LICENSE
+ */
+return [
+    'scan' => [
+        'paths' => [
+            BASE_PATH . '/app',
+        ],
+        'ignore_annotations' => [
+            'mixin',
+        ],
+    ],
+];

+ 13 - 13
config/autoload/aspects.php

@@ -1,13 +1,13 @@
-<?php
-
-declare(strict_types=1);
-/**
- * This file is part of Hyperf.
- *
- * @link     https://www.hyperf.io
- * @document https://hyperf.wiki
- * @contact  group@hyperf.io
- * @license  https://github.com/hyperf/hyperf/blob/master/LICENSE
- */
-return [
-];
+<?php
+
+declare(strict_types=1);
+/**
+ * This file is part of Hyperf.
+ *
+ * @link     https://www.hyperf.io
+ * @document https://hyperf.wiki
+ * @contact  group@hyperf.io
+ * @license  https://github.com/hyperf/hyperf/blob/master/LICENSE
+ */
+return [
+];

+ 19 - 19
config/autoload/cache.php

@@ -1,19 +1,19 @@
-<?php
-
-declare(strict_types=1);
-/**
- * This file is part of Hyperf.
- *
- * @link     https://www.hyperf.io
- * @document https://hyperf.wiki
- * @contact  group@hyperf.io
- * @license  https://github.com/hyperf/hyperf/blob/master/LICENSE
- */
-return [
-    'default' => [
-        'driver' => Hyperf\Cache\Driver\RedisDriver::class,
-        'packer' => Hyperf\Codec\Packer\PhpSerializerPacker::class,
-        'prefix' => 'c:',
-        'skip_cache_results' => [],
-    ],
-];
+<?php
+
+declare(strict_types=1);
+/**
+ * This file is part of Hyperf.
+ *
+ * @link     https://www.hyperf.io
+ * @document https://hyperf.wiki
+ * @contact  group@hyperf.io
+ * @license  https://github.com/hyperf/hyperf/blob/master/LICENSE
+ */
+return [
+    'default' => [
+        'driver' => Hyperf\Cache\Driver\RedisDriver::class,
+        'packer' => Hyperf\Codec\Packer\PhpSerializerPacker::class,
+        'prefix' => 'c:',
+        'skip_cache_results' => [],
+    ],
+];

+ 13 - 13
config/autoload/commands.php

@@ -1,13 +1,13 @@
-<?php
-
-declare(strict_types=1);
-/**
- * This file is part of Hyperf.
- *
- * @link     https://www.hyperf.io
- * @document https://hyperf.wiki
- * @contact  group@hyperf.io
- * @license  https://github.com/hyperf/hyperf/blob/master/LICENSE
- */
-return [
-];
+<?php
+
+declare(strict_types=1);
+/**
+ * This file is part of Hyperf.
+ *
+ * @link     https://www.hyperf.io
+ * @document https://hyperf.wiki
+ * @contact  group@hyperf.io
+ * @license  https://github.com/hyperf/hyperf/blob/master/LICENSE
+ */
+return [
+];

+ 28 - 28
config/autoload/config_center.php

@@ -1,28 +1,28 @@
-<?php
-
-declare(strict_types=1);
-/**
- * This file is part of Hyperf.
- *
- * @link     https://www.hyperf.io
- * @document https://hyperf.wiki
- * @contact  group@hyperf.io
- * @license  https://github.com/hyperf/hyperf/blob/master/LICENSE
- */
-use Hyperf\ConfigCenter\Mode;
-
-use function Hyperf\Support\env;
-
-return [
-//    'enable' => (bool) env('CONFIG_CENTER_ENABLE', true),
-//    'driver' => env('CONFIG_CENTER_DRIVER', 'nacos'),
-//    'mode' => env('CONFIG_CENTER_MODE', Mode::PROCESS),
-//    'drivers' => [
-//
-//    ],
-    'server' => [
-        'settings' => [
-            'timezone' => 'Asia/Shanghai',
-        ],
-    ],
-];
+<?php
+
+declare(strict_types=1);
+/**
+ * This file is part of Hyperf.
+ *
+ * @link     https://www.hyperf.io
+ * @document https://hyperf.wiki
+ * @contact  group@hyperf.io
+ * @license  https://github.com/hyperf/hyperf/blob/master/LICENSE
+ */
+use Hyperf\ConfigCenter\Mode;
+
+use function Hyperf\Support\env;
+
+return [
+//    'enable' => (bool) env('CONFIG_CENTER_ENABLE', true),
+//    'driver' => env('CONFIG_CENTER_DRIVER', 'nacos'),
+//    'mode' => env('CONFIG_CENTER_MODE', Mode::PROCESS),
+//    'drivers' => [
+//
+//    ],
+    'server' => [
+        'settings' => [
+            'timezone' => 'Asia/Shanghai',
+        ],
+    ],
+];

+ 13 - 13
config/autoload/databases.php

@@ -1,13 +1,13 @@
-<?php
-
-declare(strict_types=1);
-/**
- * This file is part of Hyperf.
- *
- * @link     https://www.hyperf.io
- * @document https://hyperf.wiki
- * @contact  group@hyperf.io
- * @license  https://github.com/hyperf/hyperf/blob/master/LICENSE
- */
-return [
-];
+<?php
+
+declare(strict_types=1);
+/**
+ * This file is part of Hyperf.
+ *
+ * @link     https://www.hyperf.io
+ * @document https://hyperf.wiki
+ * @contact  group@hyperf.io
+ * @license  https://github.com/hyperf/hyperf/blob/master/LICENSE
+ */
+return [
+];

+ 44 - 44
config/autoload/devtool.php

@@ -1,44 +1,44 @@
-<?php
-
-declare(strict_types=1);
-/**
- * This file is part of Hyperf.
- *
- * @link     https://www.hyperf.io
- * @document https://hyperf.wiki
- * @contact  group@hyperf.io
- * @license  https://github.com/hyperf/hyperf/blob/master/LICENSE
- */
-return [
-    'generator' => [
-        'amqp' => [
-            'consumer' => [
-                'namespace' => 'App\\Amqp\\Consumer',
-            ],
-            'producer' => [
-                'namespace' => 'App\\Amqp\\Producer',
-            ],
-        ],
-        'aspect' => [
-            'namespace' => 'App\\Aspect',
-        ],
-        'command' => [
-            'namespace' => 'App\\Command',
-        ],
-        'controller' => [
-            'namespace' => 'App\\Controller',
-        ],
-        'job' => [
-            'namespace' => 'App\\Job',
-        ],
-        'listener' => [
-            'namespace' => 'App\\Listener',
-        ],
-        'middleware' => [
-            'namespace' => 'App\\Middleware',
-        ],
-        'Process' => [
-            'namespace' => 'App\\Processes',
-        ],
-    ],
-];
+<?php
+
+declare(strict_types=1);
+/**
+ * This file is part of Hyperf.
+ *
+ * @link     https://www.hyperf.io
+ * @document https://hyperf.wiki
+ * @contact  group@hyperf.io
+ * @license  https://github.com/hyperf/hyperf/blob/master/LICENSE
+ */
+return [
+    'generator' => [
+        'amqp' => [
+            'consumer' => [
+                'namespace' => 'App\\Amqp\\Consumer',
+            ],
+            'producer' => [
+                'namespace' => 'App\\Amqp\\Producer',
+            ],
+        ],
+        'aspect' => [
+            'namespace' => 'App\\Aspect',
+        ],
+        'command' => [
+            'namespace' => 'App\\Command',
+        ],
+        'controller' => [
+            'namespace' => 'App\\Controller',
+        ],
+        'job' => [
+            'namespace' => 'App\\Job',
+        ],
+        'listener' => [
+            'namespace' => 'App\\Listener',
+        ],
+        'middleware' => [
+            'namespace' => 'App\\Middleware',
+        ],
+        'Process' => [
+            'namespace' => 'App\\Processes',
+        ],
+    ],
+];

+ 22 - 22
config/autoload/exceptions.php

@@ -1,22 +1,22 @@
-<?php
-
-declare(strict_types=1);
-/**
- * This file is part of Hyperf.
- *
- * @link     https://www.hyperf.io
- * @document https://hyperf.wiki
- * @contact  group@hyperf.io
- * @license  https://github.com/hyperf/hyperf/blob/master/LICENSE
- */
-return [
-    'handler' => [
-        'http' => [
-            Hyperf\HttpServer\Exception\Handler\HttpExceptionHandler::class,
-            App\Exception\Handler\AppExceptionHandler::class,
-        ],
-        'jsonrpc-http' => [
-            App\Exception\Handler\JsonRpcExceptionHandler::class,
-        ],
-    ],
-];
+<?php
+
+declare(strict_types=1);
+/**
+ * This file is part of Hyperf.
+ *
+ * @link     https://www.hyperf.io
+ * @document https://hyperf.wiki
+ * @contact  group@hyperf.io
+ * @license  https://github.com/hyperf/hyperf/blob/master/LICENSE
+ */
+return [
+    'handler' => [
+        'http' => [
+            Hyperf\HttpServer\Exception\Handler\HttpExceptionHandler::class,
+            App\Exception\Handler\AppExceptionHandler::class,
+        ],
+        'jsonrpc-http' => [
+            App\Exception\Handler\JsonRpcExceptionHandler::class,
+        ],
+    ],
+];

+ 15 - 15
config/autoload/listeners.php

@@ -1,15 +1,15 @@
-<?php
-
-declare(strict_types=1);
-/**
- * This file is part of Hyperf.
- *
- * @link     https://www.hyperf.io
- * @document https://hyperf.wiki
- * @contact  group@hyperf.io
- * @license  https://github.com/hyperf/hyperf/blob/master/LICENSE
- */
-return [
-    Hyperf\ExceptionHandler\Listener\ErrorExceptionHandler::class,
-    Hyperf\Command\Listener\FailToHandleListener::class,
-];
+<?php
+
+declare(strict_types=1);
+/**
+ * This file is part of Hyperf.
+ *
+ * @link     https://www.hyperf.io
+ * @document https://hyperf.wiki
+ * @contact  group@hyperf.io
+ * @license  https://github.com/hyperf/hyperf/blob/master/LICENSE
+ */
+return [
+    Hyperf\ExceptionHandler\Listener\ErrorExceptionHandler::class,
+    Hyperf\Command\Listener\FailToHandleListener::class,
+];

+ 21 - 21
config/autoload/logger.php

@@ -1,21 +1,21 @@
-<?php
-
-return [
-    'default' => [
-        'handler' => [
-            'class' => \Monolog\Handler\StreamHandler::class,
-            'constructor' => [
-                'stream' => BASE_PATH . '/runtime/logs/hyperf.log',
-                'level' => \Monolog\Logger::DEBUG,
-            ],
-        ],
-        'formatter' => [
-            'class' => \Monolog\Formatter\LineFormatter::class,
-            'constructor' => [
-                'format' => null,
-                'dateFormat' => null,
-                'allowInlineLineBreaks' => true,
-            ]
-        ],
-    ],
-];
+<?php
+
+return [
+    'default' => [
+        'handler' => [
+            'class' => \Monolog\Handler\StreamHandler::class,
+            'constructor' => [
+                'stream' => BASE_PATH . '/runtime/logs/hyperf.log',
+                'level' => \Monolog\Logger::DEBUG,
+            ],
+        ],
+        'formatter' => [
+            'class' => \Monolog\Formatter\LineFormatter::class,
+            'constructor' => [
+                'format' => null,
+                'dateFormat' => null,
+                'allowInlineLineBreaks' => true,
+            ]
+        ],
+    ],
+];

+ 15 - 15
config/autoload/middlewares.php

@@ -1,15 +1,15 @@
-<?php
-
-declare(strict_types=1);
-/**
- * This file is part of Hyperf.
- *
- * @link     https://www.hyperf.io
- * @document https://hyperf.wiki
- * @contact  group@hyperf.io
- * @license  https://github.com/hyperf/hyperf/blob/master/LICENSE
- */
-return [
-    'http' => [
-    ],
-];
+<?php
+
+declare(strict_types=1);
+/**
+ * This file is part of Hyperf.
+ *
+ * @link     https://www.hyperf.io
+ * @document https://hyperf.wiki
+ * @contact  group@hyperf.io
+ * @license  https://github.com/hyperf/hyperf/blob/master/LICENSE
+ */
+return [
+    'http' => [
+    ],
+];

+ 13 - 13
config/autoload/processes.php

@@ -1,13 +1,13 @@
-<?php
-
-declare(strict_types=1);
-/**
- * This file is part of Hyperf.
- *
- * @link     https://www.hyperf.io
- * @document https://hyperf.wiki
- * @contact  group@hyperf.io
- * @license  https://github.com/hyperf/hyperf/blob/master/LICENSE
- */
-return [
-];
+<?php
+
+declare(strict_types=1);
+/**
+ * This file is part of Hyperf.
+ *
+ * @link     https://www.hyperf.io
+ * @document https://hyperf.wiki
+ * @contact  group@hyperf.io
+ * @license  https://github.com/hyperf/hyperf/blob/master/LICENSE
+ */
+return [
+];

+ 29 - 29
config/autoload/redis.php

@@ -1,29 +1,29 @@
-<?php
-
-declare(strict_types=1);
-/**
- * This file is part of Hyperf.
- *
- * @link     https://www.hyperf.io
- * @document https://hyperf.wiki
- * @contact  group@hyperf.io
- * @license  https://github.com/hyperf/hyperf/blob/master/LICENSE
- */
-use function Hyperf\Support\env;
-
-return [
-    'default' => [
-        'host' => env('REDIS_HOST', 'localhost'),
-        'auth' => env('REDIS_AUTH', null),
-        'port' => (int) env('REDIS_PORT', 6379),
-        'db' => (int) env('REDIS_DB', 0),
-        'pool' => [
-            'min_connections' => 1,
-            'max_connections' => 10,
-            'connect_timeout' => 10.0,
-            'wait_timeout' => 3.0,
-            'heartbeat' => -1,
-            'max_idle_time' => (float) env('REDIS_MAX_IDLE_TIME', 60),
-        ],
-    ],
-];
+<?php
+
+declare(strict_types=1);
+/**
+ * This file is part of Hyperf.
+ *
+ * @link     https://www.hyperf.io
+ * @document https://hyperf.wiki
+ * @contact  group@hyperf.io
+ * @license  https://github.com/hyperf/hyperf/blob/master/LICENSE
+ */
+use function Hyperf\Support\env;
+
+return [
+    'default' => [
+        'host' => env('REDIS_HOST', 'localhost'),
+        'auth' => env('REDIS_AUTH', null),
+        'port' => (int) env('REDIS_PORT', 6379),
+        'db' => (int) env('REDIS_DB', 0),
+        'pool' => [
+            'min_connections' => 1,
+            'max_connections' => 10,
+            'connect_timeout' => 10.0,
+            'wait_timeout' => 3.0,
+            'heartbeat' => -1,
+            'max_idle_time' => (float) env('REDIS_MAX_IDLE_TIME', 60),
+        ],
+    ],
+];

+ 48 - 47
config/autoload/server.php

@@ -1,47 +1,48 @@
-<?php
-
-declare(strict_types=1);
-/**
- * This file is part of Hyperf.
- *
- * @link     https://www.hyperf.io
- * @document https://hyperf.wiki
- * @contact  group@hyperf.io
- * @license  https://github.com/hyperf/hyperf/blob/master/LICENSE
- */
-use Hyperf\Server\Event;
-use Hyperf\Server\Server;
-use Swoole\Constant;
-
-return [
-    'mode' => SWOOLE_PROCESS,
-    'servers' => [
-        [
-            'name' => 'jsonrpc-http',
-            'type' => Server::SERVER_HTTP,
-            'host' => '0.0.0.0',
-            'port' => 9502,
-            'sock_type' => SWOOLE_SOCK_TCP,
-            'callbacks' => [
-                Event::ON_REQUEST => [Hyperf\JsonRpc\HttpServer::class, 'onRequest'],
-            ],
-        ],
-
-    ],
-    'settings' => [
-        Constant::OPTION_ENABLE_COROUTINE => true,
-        Constant::OPTION_WORKER_NUM => swoole_cpu_num(),
-        Constant::OPTION_PID_FILE => BASE_PATH . '/runtime/hyperf.pid',
-        Constant::OPTION_OPEN_TCP_NODELAY => true,
-        Constant::OPTION_MAX_COROUTINE => 100000,
-        Constant::OPTION_OPEN_HTTP2_PROTOCOL => true,
-        Constant::OPTION_MAX_REQUEST => 100000,
-        Constant::OPTION_SOCKET_BUFFER_SIZE => 2 * 1024 * 1024,
-        Constant::OPTION_BUFFER_OUTPUT_SIZE => 2 * 1024 * 1024,
-    ],
-    'callbacks' => [
-        Event::ON_WORKER_START => [Hyperf\Framework\Bootstrap\WorkerStartCallback::class, 'onWorkerStart'],
-        Event::ON_PIPE_MESSAGE => [Hyperf\Framework\Bootstrap\PipeMessageCallback::class, 'onPipeMessage'],
-        Event::ON_WORKER_EXIT => [Hyperf\Framework\Bootstrap\WorkerExitCallback::class, 'onWorkerExit'],
-    ],
-];
+<?php
+
+declare(strict_types=1);
+/**
+ * This file is part of Hyperf.
+ *
+ * @link     https://www.hyperf.io
+ * @document https://hyperf.wiki
+ * @contact  group@hyperf.io
+ * @license  https://github.com/hyperf/hyperf/blob/master/LICENSE
+ */
+use Hyperf\Server\Event;
+use Hyperf\Server\Server;
+use Swoole\Constant;
+
+return [
+    'mode' => SWOOLE_PROCESS,
+    'servers' => [
+        [
+            'name' => 'jsonrpc-http',
+            'type' => Server::SERVER_HTTP,
+            'host' => '0.0.0.0',
+            'port' => 9502,
+            'sock_type' => SWOOLE_SOCK_TCP,
+            'callbacks' => [
+                Event::ON_REQUEST => [Hyperf\JsonRpc\HttpServer::class, 'onRequest'],
+            ],
+        ],
+
+    ],
+    'settings' => [
+        Constant::OPTION_ENABLE_COROUTINE => true,
+        Constant::OPTION_WORKER_NUM => swoole_cpu_num(),
+        Constant::OPTION_PID_FILE => BASE_PATH . '/runtime/hyperf.pid',
+        Constant::OPTION_OPEN_TCP_NODELAY => true,
+        Constant::OPTION_MAX_COROUTINE => 100000,
+        Constant::OPTION_OPEN_HTTP2_PROTOCOL => true,
+        Constant::OPTION_MAX_REQUEST => 100000,
+        Constant::OPTION_SOCKET_BUFFER_SIZE => 2 * 1024 * 1024,
+        Constant::OPTION_BUFFER_OUTPUT_SIZE => 2 * 1024 * 1024,
+        Constant::OPTION_PACKAGE_MAX_LENGTH => 15 * 1024 * 1024,
+    ],
+    'callbacks' => [
+        Event::ON_WORKER_START => [Hyperf\Framework\Bootstrap\WorkerStartCallback::class, 'onWorkerStart'],
+        Event::ON_PIPE_MESSAGE => [Hyperf\Framework\Bootstrap\PipeMessageCallback::class, 'onPipeMessage'],
+        Event::ON_WORKER_EXIT => [Hyperf\Framework\Bootstrap\WorkerExitCallback::class, 'onWorkerExit'],
+    ],
+];

+ 33 - 33
config/config.php

@@ -1,33 +1,33 @@
-<?php
-
-declare(strict_types=1);
-/**
- * This file is part of Hyperf.
- *
- * @link     https://www.hyperf.io
- * @document https://hyperf.wiki
- * @contact  group@hyperf.io
- * @license  https://github.com/hyperf/hyperf/blob/master/LICENSE
- */
-use Hyperf\Contract\StdoutLoggerInterface;
-use Psr\Log\LogLevel;
-
-use function Hyperf\Support\env;
-
-return [
-    'app_name' => env('APP_NAME', 'skeleton'),
-    'app_env' => env('APP_ENV', 'dev'),
-    'scan_cacheable' => env('SCAN_CACHEABLE', false),
-    StdoutLoggerInterface::class => [
-        'log_level' => [
-            LogLevel::ALERT,
-            LogLevel::CRITICAL,
-            LogLevel::DEBUG,
-            LogLevel::EMERGENCY,
-            LogLevel::ERROR,
-            LogLevel::INFO,
-            LogLevel::NOTICE,
-            LogLevel::WARNING,
-        ],
-    ],
-];
+<?php
+
+declare(strict_types=1);
+/**
+ * This file is part of Hyperf.
+ *
+ * @link     https://www.hyperf.io
+ * @document https://hyperf.wiki
+ * @contact  group@hyperf.io
+ * @license  https://github.com/hyperf/hyperf/blob/master/LICENSE
+ */
+use Hyperf\Contract\StdoutLoggerInterface;
+use Psr\Log\LogLevel;
+
+use function Hyperf\Support\env;
+
+return [
+    'app_name' => env('APP_NAME', 'skeleton'),
+    'app_env' => env('APP_ENV', 'dev'),
+    'scan_cacheable' => env('SCAN_CACHEABLE', false),
+    StdoutLoggerInterface::class => [
+        'log_level' => [
+            LogLevel::ALERT,
+            LogLevel::CRITICAL,
+            LogLevel::DEBUG,
+            LogLevel::EMERGENCY,
+            LogLevel::ERROR,
+            LogLevel::INFO,
+            LogLevel::NOTICE,
+            LogLevel::WARNING,
+        ],
+    ],
+];

+ 21 - 21
config/container.php

@@ -1,21 +1,21 @@
-<?php
-/**
- * Initialize a dependency injection container that implemented PSR-11 and return the container.
- */
-
-declare(strict_types=1);
-/**
- * This file is part of Hyperf.
- *
- * @link     https://www.hyperf.io
- * @document https://hyperf.wiki
- * @contact  group@hyperf.io
- * @license  https://github.com/hyperf/hyperf/blob/master/LICENSE
- */
-use Hyperf\Context\ApplicationContext;
-use Hyperf\Di\Container;
-use Hyperf\Di\Definition\DefinitionSourceFactory;
-
-$container = new Container((new DefinitionSourceFactory())());
-
-return ApplicationContext::setContainer($container);
+<?php
+/**
+ * Initialize a dependency injection container that implemented PSR-11 and return the container.
+ */
+
+declare(strict_types=1);
+/**
+ * This file is part of Hyperf.
+ *
+ * @link     https://www.hyperf.io
+ * @document https://hyperf.wiki
+ * @contact  group@hyperf.io
+ * @license  https://github.com/hyperf/hyperf/blob/master/LICENSE
+ */
+use Hyperf\Context\ApplicationContext;
+use Hyperf\Di\Container;
+use Hyperf\Di\Definition\DefinitionSourceFactory;
+
+$container = new Container((new DefinitionSourceFactory())());
+
+return ApplicationContext::setContainer($container);

+ 18 - 18
config/routes.php

@@ -1,18 +1,18 @@
-<?php
-
-declare(strict_types=1);
-/**
- * This file is part of Hyperf.
- *
- * @link     https://www.hyperf.io
- * @document https://hyperf.wiki
- * @contact  group@hyperf.io
- * @license  https://github.com/hyperf/hyperf/blob/master/LICENSE
- */
-use Hyperf\HttpServer\Router\Router;
-
-Router::addRoute(['GET', 'POST', 'HEAD'], '/', 'App\Controller\IndexController@index');
-
-Router::get('/favicon.ico', function () {
-    return '';
-});
+<?php
+
+declare(strict_types=1);
+/**
+ * This file is part of Hyperf.
+ *
+ * @link     https://www.hyperf.io
+ * @document https://hyperf.wiki
+ * @contact  group@hyperf.io
+ * @license  https://github.com/hyperf/hyperf/blob/master/LICENSE
+ */
+use Hyperf\HttpServer\Router\Router;
+
+Router::addRoute(['GET', 'POST', 'HEAD'], '/', 'App\Controller\IndexController@index');
+
+Router::get('/favicon.ico', function () {
+    return '';
+});

+ 30 - 30
deploy.test.yml

@@ -1,30 +1,30 @@
-version: '3.7'
-services:
-  hyperf:
-    image: $REGISTRY_URL/$PROJECT_NAME:test
-    environment:
-      - "APP_PROJECT=hyperf"
-      - "APP_ENV=testing"
-    ports:
-      - "9501:9501"
-    deploy:
-      replicas: 1
-      restart_policy:
-        condition: on-failure
-        delay: 5s
-        max_attempts: 5
-      update_config:
-        parallelism: 2
-        delay: 5s
-        order: start-first
-    networks:
-      - hyperf_net
-    configs:
-      - source: hyperf_v1.0
-        target: /opt/www/.env
-configs:
-  hyperf_v1.0:
-    external: true
-networks:
-  hyperf_net:
-    external: true
+version: '3.7'
+services:
+  hyperf:
+    image: $REGISTRY_URL/$PROJECT_NAME:test
+    environment:
+      - "APP_PROJECT=hyperf"
+      - "APP_ENV=testing"
+    ports:
+      - "9501:9501"
+    deploy:
+      replicas: 1
+      restart_policy:
+        condition: on-failure
+        delay: 5s
+        max_attempts: 5
+      update_config:
+        parallelism: 2
+        delay: 5s
+        order: start-first
+    networks:
+      - hyperf_net
+    configs:
+      - source: hyperf_v1.0
+        target: /opt/www/.env
+configs:
+  hyperf_v1.0:
+    external: true
+networks:
+  hyperf_net:
+    external: true

+ 18 - 18
docker-compose.yml

@@ -1,18 +1,18 @@
-version: '3'
-services:
-  hyperf-skeleton:
-    container_name: hyperf-skeleton
-    image: hyperf-skeleton
-    build:
-      context: .
-    volumes:
-      - ./:/opt/www
-    ports:
-      - 9501:9501
-    environment:
-      - APP_ENV=dev
-      - SCAN_CACHEABLE=false
-
-networks:
-  default:
-    name: hyperf-skeleton
+version: '3'
+services:
+  hyperf-skeleton:
+    container_name: hyperf-skeleton
+    image: hyperf-skeleton
+    build:
+      context: .
+    volumes:
+      - ./:/opt/www
+    ports:
+      - 9501:9501
+    environment:
+      - APP_ENV=dev
+      - SCAN_CACHEABLE=false
+
+networks:
+  default:
+    name: hyperf-skeleton

+ 14 - 14
phpstan.neon.dist

@@ -1,14 +1,14 @@
-# Magic behaviour with __get, __set, __call and __callStatic is not exactly static analyser-friendly :)
-# Fortunately, You can ignore it by the following config.
-#
-# vendor/bin/phpstan analyse app --memory-limit 200M -l 0
-#
-parameters:
-  level: 0
-  paths:
-    - ./app
-    - ./config
-  reportUnmatchedIgnoredErrors: false
-  ignoreErrors:
-    - '#Static call to instance method Hyperf\\HttpServer\\Router\\Router::[a-zA-Z0-9\\_]+\(\)#'
-    - '#Static call to instance method Hyperf\\DbConnection\\Db::[a-zA-Z0-9\\_]+\(\)#'
+# Magic behaviour with __get, __set, __call and __callStatic is not exactly static analyser-friendly :)
+# Fortunately, You can ignore it by the following config.
+#
+# vendor/bin/phpstan analyse app --memory-limit 200M -l 0
+#
+parameters:
+  level: 0
+  paths:
+    - ./app
+    - ./config
+  reportUnmatchedIgnoredErrors: false
+  ignoreErrors:
+    - '#Static call to instance method Hyperf\\HttpServer\\Router\\Router::[a-zA-Z0-9\\_]+\(\)#'
+    - '#Static call to instance method Hyperf\\DbConnection\\Db::[a-zA-Z0-9\\_]+\(\)#'

+ 16 - 16
phpunit.xml.dist

@@ -1,16 +1,16 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" backupGlobals="false" bootstrap="./test/bootstrap.php" colors="true" processIsolation="false" stopOnFailure="false" xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/10.5/phpunit.xsd" cacheDirectory=".phpunit.cache" backupStaticProperties="false">
-  <testsuites>
-    <testsuite name="Tests">
-      <directory suffix="Test.php">./test</directory>
-    </testsuite>
-  </testsuites>
-  <php>
-    <env name="APP_ENV" value="testing" force="true"/>
-  </php>
-  <source>
-    <include>
-      <directory suffix=".php">./app</directory>
-    </include>
-  </source>
-</phpunit>
+<?xml version="1.0" encoding="UTF-8"?>
+<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" backupGlobals="false" bootstrap="./test/bootstrap.php" colors="true" processIsolation="false" stopOnFailure="false" xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/10.5/phpunit.xsd" cacheDirectory=".phpunit.cache" backupStaticProperties="false">
+  <testsuites>
+    <testsuite name="Tests">
+      <directory suffix="Test.php">./test</directory>
+    </testsuite>
+  </testsuites>
+  <php>
+    <env name="APP_ENV" value="testing" force="true"/>
+  </php>
+  <source>
+    <include>
+      <directory suffix=".php">./app</directory>
+    </include>
+  </source>
+</phpunit>

+ 27 - 27
test/Cases/ExampleTest.php

@@ -1,27 +1,27 @@
-<?php
-
-declare(strict_types=1);
-/**
- * This file is part of Hyperf.
- *
- * @link     https://www.hyperf.io
- * @document https://hyperf.wiki
- * @contact  group@hyperf.io
- * @license  https://github.com/hyperf/hyperf/blob/master/LICENSE
- */
-
-namespace HyperfTest\Cases;
-
-use Hyperf\Testing\TestCase;
-
-/**
- * @internal
- * @coversNothing
- */
-class ExampleTest extends TestCase
-{
-    public function testExample()
-    {
-        $this->get('/')->assertOk()->assertSee('Hyperf');
-    }
-}
+<?php
+
+declare(strict_types=1);
+/**
+ * This file is part of Hyperf.
+ *
+ * @link     https://www.hyperf.io
+ * @document https://hyperf.wiki
+ * @contact  group@hyperf.io
+ * @license  https://github.com/hyperf/hyperf/blob/master/LICENSE
+ */
+
+namespace HyperfTest\Cases;
+
+use Hyperf\Testing\TestCase;
+
+/**
+ * @internal
+ * @coversNothing
+ */
+class ExampleTest extends TestCase
+{
+    public function testExample()
+    {
+        $this->get('/')->assertOk()->assertSee('Hyperf');
+    }
+}

+ 45 - 45
test/HttpTestCase.php

@@ -1,45 +1,45 @@
-<?php
-
-declare(strict_types=1);
-/**
- * This file is part of Hyperf.
- *
- * @link     https://www.hyperf.io
- * @document https://hyperf.wiki
- * @contact  group@hyperf.io
- * @license  https://github.com/hyperf/hyperf/blob/master/LICENSE
- */
-
-namespace HyperfTest;
-
-use Hyperf\Testing\Client;
-use PHPUnit\Framework\TestCase;
-
-use function Hyperf\Support\make;
-
-/**
- * Class HttpTestCase.
- * @method get($uri, $data = [], $headers = [])
- * @method post($uri, $data = [], $headers = [])
- * @method json($uri, $data = [], $headers = [])
- * @method file($uri, $data = [], $headers = [])
- * @method request($method, $path, $options = [])
- */
-abstract class HttpTestCase extends TestCase
-{
-    /**
-     * @var Client
-     */
-    protected $client;
-
-    public function __construct($name = null, array $data = [], $dataName = '')
-    {
-        parent::__construct($name, $data, $dataName);
-        $this->client = make(Client::class);
-    }
-
-    public function __call($name, $arguments)
-    {
-        return $this->client->{$name}(...$arguments);
-    }
-}
+<?php
+
+declare(strict_types=1);
+/**
+ * This file is part of Hyperf.
+ *
+ * @link     https://www.hyperf.io
+ * @document https://hyperf.wiki
+ * @contact  group@hyperf.io
+ * @license  https://github.com/hyperf/hyperf/blob/master/LICENSE
+ */
+
+namespace HyperfTest;
+
+use Hyperf\Testing\Client;
+use PHPUnit\Framework\TestCase;
+
+use function Hyperf\Support\make;
+
+/**
+ * Class HttpTestCase.
+ * @method get($uri, $data = [], $headers = [])
+ * @method post($uri, $data = [], $headers = [])
+ * @method json($uri, $data = [], $headers = [])
+ * @method file($uri, $data = [], $headers = [])
+ * @method request($method, $path, $options = [])
+ */
+abstract class HttpTestCase extends TestCase
+{
+    /**
+     * @var Client
+     */
+    protected $client;
+
+    public function __construct($name = null, array $data = [], $dataName = '')
+    {
+        parent::__construct($name, $data, $dataName);
+        $this->client = make(Client::class);
+    }
+
+    public function __call($name, $arguments)
+    {
+        return $this->client->{$name}(...$arguments);
+    }
+}

+ 30 - 30
test/bootstrap.php

@@ -1,30 +1,30 @@
-<?php
-
-declare(strict_types=1);
-/**
- * This file is part of Hyperf.
- *
- * @link     https://www.hyperf.io
- * @document https://hyperf.wiki
- * @contact  group@hyperf.io
- * @license  https://github.com/hyperf/hyperf/blob/master/LICENSE
- */
-ini_set('display_errors', 'on');
-ini_set('display_startup_errors', 'on');
-
-error_reporting(E_ALL);
-date_default_timezone_set('Asia/Shanghai');
-
-Swoole\Runtime::enableCoroutine(true);
-
-! defined('BASE_PATH') && define('BASE_PATH', dirname(__DIR__, 1));
-
-require BASE_PATH . '/vendor/autoload.php';
-
-! defined('SWOOLE_HOOK_FLAGS') && define('SWOOLE_HOOK_FLAGS', Hyperf\Engine\DefaultOption::hookFlags());
-
-Hyperf\Di\ClassLoader::init();
-
-$container = require BASE_PATH . '/config/container.php';
-
-$container->get(Hyperf\Contract\ApplicationInterface::class);
+<?php
+
+declare(strict_types=1);
+/**
+ * This file is part of Hyperf.
+ *
+ * @link     https://www.hyperf.io
+ * @document https://hyperf.wiki
+ * @contact  group@hyperf.io
+ * @license  https://github.com/hyperf/hyperf/blob/master/LICENSE
+ */
+ini_set('display_errors', 'on');
+ini_set('display_startup_errors', 'on');
+
+error_reporting(E_ALL);
+date_default_timezone_set('Asia/Shanghai');
+
+Swoole\Runtime::enableCoroutine(true);
+
+! defined('BASE_PATH') && define('BASE_PATH', dirname(__DIR__, 1));
+
+require BASE_PATH . '/vendor/autoload.php';
+
+! defined('SWOOLE_HOOK_FLAGS') && define('SWOOLE_HOOK_FLAGS', Hyperf\Engine\DefaultOption::hookFlags());
+
+Hyperf\Di\ClassLoader::init();
+
+$container = require BASE_PATH . '/config/container.php';
+
+$container->get(Hyperf\Contract\ApplicationInterface::class);

+ 0 - 25
vendor/autoload.php

@@ -1,25 +0,0 @@
-<?php
-
-// autoload.php @generated by Composer
-
-if (PHP_VERSION_ID < 50600) {
-    if (!headers_sent()) {
-        header('HTTP/1.1 500 Internal Server Error');
-    }
-    $err = 'Composer 2.3.0 dropped support for autoloading on PHP <5.6 and you are running '.PHP_VERSION.', please upgrade PHP or use Composer 2.2 LTS via "composer self-update --2.2". Aborting.'.PHP_EOL;
-    if (!ini_get('display_errors')) {
-        if (PHP_SAPI === 'cli' || PHP_SAPI === 'phpdbg') {
-            fwrite(STDERR, $err);
-        } elseif (!headers_sent()) {
-            echo $err;
-        }
-    }
-    trigger_error(
-        $err,
-        E_USER_ERROR
-    );
-}
-
-require_once __DIR__ . '/composer/autoload_real.php';
-
-return ComposerAutoloaderInit88f2a4d4a4e81dc7d415bcdf39930654::getLoader();

+ 0 - 21
vendor/carbonphp/carbon-doctrine-types/LICENSE

@@ -1,21 +0,0 @@
-MIT License
-
-Copyright (c) 2023 Carbon
-
-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.

+ 0 - 14
vendor/carbonphp/carbon-doctrine-types/README.md

@@ -1,14 +0,0 @@
-# carbonphp/carbon-doctrine-types
-
-Types to use Carbon in Doctrine
-
-## Documentation
-
-[Check how to use in the official Carbon documentation](https://carbon.nesbot.com/symfony/)
-
-This package is an externalization of [src/Carbon/Doctrine](https://github.com/briannesbitt/Carbon/tree/2.71.0/src/Carbon/Doctrine)
-from `nestbot/carbon` package.
-
-Externalization allows to better deal with different versions of dbal. With
-version 4.0 of dbal, it no longer sustainable to be compatible with all version
-using a single code.

+ 0 - 36
vendor/carbonphp/carbon-doctrine-types/composer.json

@@ -1,36 +0,0 @@
-{
-    "name": "carbonphp/carbon-doctrine-types",
-    "description": "Types to use Carbon in Doctrine",
-    "type": "library",
-    "keywords": [
-        "date",
-        "time",
-        "DateTime",
-        "Carbon",
-        "Doctrine"
-    ],
-    "require": {
-        "php": "^8.1"
-    },
-    "require-dev": {
-        "doctrine/dbal": "^4.0.0",
-        "nesbot/carbon": "^2.71.0 || ^3.0.0",
-        "phpunit/phpunit": "^10.3"
-    },
-    "conflict": {
-        "doctrine/dbal": "<4.0.0 || >=5.0.0"
-    },
-    "license": "MIT",
-    "autoload": {
-        "psr-4": {
-            "Carbon\\Doctrine\\": "src/Carbon/Doctrine/"
-        }
-    },
-    "authors": [
-        {
-            "name": "KyleKatarn",
-            "email": "kylekatarnls@gmail.com"
-        }
-    ],
-    "minimum-stability": "dev"
-}

+ 0 - 16
vendor/carbonphp/carbon-doctrine-types/src/Carbon/Doctrine/CarbonDoctrineType.php

@@ -1,16 +0,0 @@
-<?php
-
-declare(strict_types=1);
-
-namespace Carbon\Doctrine;
-
-use Doctrine\DBAL\Platforms\AbstractPlatform;
-
-interface CarbonDoctrineType
-{
-    public function getSQLDeclaration(array $fieldDeclaration, AbstractPlatform $platform);
-
-    public function convertToPHPValue(mixed $value, AbstractPlatform $platform);
-
-    public function convertToDatabaseValue($value, AbstractPlatform $platform);
-}

+ 0 - 9
vendor/carbonphp/carbon-doctrine-types/src/Carbon/Doctrine/CarbonImmutableType.php

@@ -1,9 +0,0 @@
-<?php
-
-declare(strict_types=1);
-
-namespace Carbon\Doctrine;
-
-class CarbonImmutableType extends DateTimeImmutableType implements CarbonDoctrineType
-{
-}

+ 0 - 9
vendor/carbonphp/carbon-doctrine-types/src/Carbon/Doctrine/CarbonType.php

@@ -1,9 +0,0 @@
-<?php
-
-declare(strict_types=1);
-
-namespace Carbon\Doctrine;
-
-class CarbonType extends DateTimeType implements CarbonDoctrineType
-{
-}

+ 0 - 131
vendor/carbonphp/carbon-doctrine-types/src/Carbon/Doctrine/CarbonTypeConverter.php

@@ -1,131 +0,0 @@
-<?php
-
-declare(strict_types=1);
-
-namespace Carbon\Doctrine;
-
-use Carbon\Carbon;
-use Carbon\CarbonInterface;
-use DateTimeInterface;
-use Doctrine\DBAL\Platforms\AbstractPlatform;
-use Doctrine\DBAL\Platforms\DB2Platform;
-use Doctrine\DBAL\Platforms\OraclePlatform;
-use Doctrine\DBAL\Platforms\SQLitePlatform;
-use Doctrine\DBAL\Platforms\SQLServerPlatform;
-use Doctrine\DBAL\Types\Exception\InvalidType;
-use Doctrine\DBAL\Types\Exception\ValueNotConvertible;
-use Exception;
-
-/**
- * @template T of CarbonInterface
- */
-trait CarbonTypeConverter
-{
-    /**
-     * This property differentiates types installed by carbonphp/carbon-doctrine-types
-     * from the ones embedded previously in nesbot/carbon source directly.
-     *
-     * @readonly
-     */
-    public bool $external = true;
-
-    /**
-     * @return class-string<T>
-     */
-    protected function getCarbonClassName(): string
-    {
-        return Carbon::class;
-    }
-
-    public function getSQLDeclaration(array $fieldDeclaration, AbstractPlatform $platform): string
-    {
-        $precision = min(
-            $fieldDeclaration['precision'] ?? DateTimeDefaultPrecision::get(),
-            $this->getMaximumPrecision($platform),
-        );
-
-        $type = parent::getSQLDeclaration($fieldDeclaration, $platform);
-
-        if (!$precision) {
-            return $type;
-        }
-
-        if (str_contains($type, '(')) {
-            return preg_replace('/\(\d+\)/', "($precision)", $type);
-        }
-
-        [$before, $after] = explode(' ', "$type ");
-
-        return trim("$before($precision) $after");
-    }
-
-    /**
-     * @SuppressWarnings(PHPMD.UnusedFormalParameter)
-     */
-    public function convertToDatabaseValue($value, AbstractPlatform $platform): ?string
-    {
-        if ($value === null) {
-            return $value;
-        }
-
-        if ($value instanceof DateTimeInterface) {
-            return $value->format('Y-m-d H:i:s.u');
-        }
-
-        throw InvalidType::new(
-            $value,
-            static::class,
-            ['null', 'DateTime', 'Carbon']
-        );
-    }
-
-    private function doConvertToPHPValue(mixed $value)
-    {
-        $class = $this->getCarbonClassName();
-
-        if ($value === null || is_a($value, $class)) {
-            return $value;
-        }
-
-        if ($value instanceof DateTimeInterface) {
-            return $class::instance($value);
-        }
-
-        $date = null;
-        $error = null;
-
-        try {
-            $date = $class::parse($value);
-        } catch (Exception $exception) {
-            $error = $exception;
-        }
-
-        if (!$date) {
-            throw ValueNotConvertible::new(
-                $value,
-                static::class,
-                'Y-m-d H:i:s.u or any format supported by '.$class.'::parse()',
-                $error
-            );
-        }
-
-        return $date;
-    }
-
-    private function getMaximumPrecision(AbstractPlatform $platform): int
-    {
-        if ($platform instanceof DB2Platform) {
-            return 12;
-        }
-
-        if ($platform instanceof OraclePlatform) {
-            return 9;
-        }
-
-        if ($platform instanceof SQLServerPlatform || $platform instanceof SQLitePlatform) {
-            return 3;
-        }
-
-        return 6;
-    }
-}

+ 0 - 30
vendor/carbonphp/carbon-doctrine-types/src/Carbon/Doctrine/DateTimeDefaultPrecision.php

@@ -1,30 +0,0 @@
-<?php
-
-declare(strict_types=1);
-
-namespace Carbon\Doctrine;
-
-class DateTimeDefaultPrecision
-{
-    private static $precision = 6;
-
-    /**
-     * Change the default Doctrine datetime and datetime_immutable precision.
-     *
-     * @param int $precision
-     */
-    public static function set(int $precision): void
-    {
-        self::$precision = $precision;
-    }
-
-    /**
-     * Get the default Doctrine datetime and datetime_immutable precision.
-     *
-     * @return int
-     */
-    public static function get(): int
-    {
-        return self::$precision;
-    }
-}

+ 0 - 32
vendor/carbonphp/carbon-doctrine-types/src/Carbon/Doctrine/DateTimeImmutableType.php

@@ -1,32 +0,0 @@
-<?php
-
-declare(strict_types=1);
-
-namespace Carbon\Doctrine;
-
-use Carbon\CarbonImmutable;
-use DateTimeImmutable;
-use Doctrine\DBAL\Platforms\AbstractPlatform;
-use Doctrine\DBAL\Types\VarDateTimeImmutableType;
-
-class DateTimeImmutableType extends VarDateTimeImmutableType implements CarbonDoctrineType
-{
-    /** @use CarbonTypeConverter<CarbonImmutable> */
-    use CarbonTypeConverter;
-
-    /**
-     * @SuppressWarnings(PHPMD.UnusedFormalParameter)
-     */
-    public function convertToPHPValue(mixed $value, AbstractPlatform $platform): ?CarbonImmutable
-    {
-        return $this->doConvertToPHPValue($value);
-    }
-
-    /**
-     * @return class-string<CarbonImmutable>
-     */
-    protected function getCarbonClassName(): string
-    {
-        return CarbonImmutable::class;
-    }
-}

+ 0 - 24
vendor/carbonphp/carbon-doctrine-types/src/Carbon/Doctrine/DateTimeType.php

@@ -1,24 +0,0 @@
-<?php
-
-declare(strict_types=1);
-
-namespace Carbon\Doctrine;
-
-use Carbon\Carbon;
-use DateTime;
-use Doctrine\DBAL\Platforms\AbstractPlatform;
-use Doctrine\DBAL\Types\VarDateTimeType;
-
-class DateTimeType extends VarDateTimeType implements CarbonDoctrineType
-{
-    /** @use CarbonTypeConverter<Carbon> */
-    use CarbonTypeConverter;
-
-    /**
-     * @SuppressWarnings(PHPMD.UnusedFormalParameter)
-     */
-    public function convertToPHPValue(mixed $value, AbstractPlatform $platform): ?Carbon
-    {
-        return $this->doConvertToPHPValue($value);
-    }
-}

+ 0 - 2
vendor/clue/ndjson-react/.github/FUNDING.yml

@@ -1,2 +0,0 @@
-github: clue
-custom: https://clue.engineering/support

+ 0 - 75
vendor/clue/ndjson-react/CHANGELOG.md

@@ -1,75 +0,0 @@
-# Changelog
-
-## 1.3.0 (2022-12-23)
-
-*   Feature: Add support for PHP 8.1 and PHP 8.2.
-    (#31 by @clue and #30 by @SimonFring)
-
-*   Feature: Check type of incoming `data` before trying to decode NDJSON.
-    (#29 by @SimonFrings)
-
-*   Improve documentation and examples and update to new [default loop](https://reactphp.org/event-loop/#loop).
-    (#26 by @clue, #27 by @SimonFrings and #25 by @PaulRotmann)
-
-*   Improve test suite, report failed assertions and ensure 100% code coverage.
-    (#32 and #33 by @clue and #28 by @SimonFrings)
-
-## 1.2.0 (2020-12-09)
-
-*   Improve test suite and add `.gitattributes` to exclude dev files from exports.
-    Add PHP 8 support, update to PHPUnit 9 and simplify test setup.
-    (#18 by @clue and #19, #22 and #23 by @SimonFrings)
-
-## 1.1.0 (2020-02-04)
-
-*   Feature: Improve error reporting and add parsing error message to Exception and
-    ignore `JSON_THROW_ON_ERROR` option (available as of PHP 7.3).
-    (#14 by @clue)
-
-*   Feature: Add bechmarking script and import all global function references.
-    (#16 by @clue)
-
-*   Improve documentation and add NDJSON format description and
-    add support / sponsorship info.
-    (#12 and #17 by @clue)
-
-*   Improve test suite to run tests on PHP 7.4 and simplify test matrix and
-    apply minor code style adjustments to make phpstan happy.
-    (#13 and #15 by @clue)
-
-## 1.0.0 (2018-05-17)
-
-*   First stable release, now following SemVer
-
-*   Improve documentation and usage examples
-
-> Contains no other changes, so it's actually fully compatible with the v0.1.2 release.
-
-## 0.1.2 (2018-05-11)
-
-*   Feature: Limit buffer size to 64 KiB by default.
-    (#10 by @clue)
-
-*   Feature: Forward compatiblity with EventLoop v0.5 and upcoming v1.0.
-    (#8 by @clue)
-
-*   Fix: Return bool `false` if encoding fails due to invalid value to pause source.
-    (#9 by @clue)
-
-*   Improve test suite by supporting PHPUnit v6 and test against legacy PHP 5.3 through PHP 7.2.
-    (#7 by @clue)
-
-*   Update project homepage.
-    (#11 by @clue)
-
-## 0.1.1 (2017-05-22)
-
-*   Feature: Forward compatibility with Stream v0.7, v0.6, v0.5 and upcoming v1.0 (while keeping BC)
-    (#6 by @thklein)
-
-*   Improved test suite by adding PHPUnit to `require-dev`
-    (#5 by @thklein)
-
-## 0.1.0 (2016-11-24)
-
-*   First tagged release

+ 0 - 21
vendor/clue/ndjson-react/LICENSE

@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2016 Christian Lück
-
-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.

+ 0 - 365
vendor/clue/ndjson-react/README.md

@@ -1,365 +0,0 @@
-# clue/reactphp-ndjson
-
-[![CI status](https://github.com/clue/reactphp-ndjson/actions/workflows/ci.yml/badge.svg)](https://github.com/clue/reactphp-ndjson/actions)
-[![installs on Packagist](https://img.shields.io/packagist/dt/clue/ndjson-react?color=blue&label=installs%20on%20Packagist)](https://packagist.org/packages/clue/ndjson-react)
-[![code coverage](https://img.shields.io/badge/code%20coverage-100%25-success)](#tests)
-
-Streaming newline-delimited JSON ([NDJSON](http://ndjson.org/)) parser and encoder for [ReactPHP](https://reactphp.org/).
-
-[NDJSON](http://ndjson.org/) can be used to store multiple JSON records in a
-file to store any kind of (uniform) structured data, such as a list of user
-objects or log entries. It uses a simple newline character between each
-individual record and as such can be both used for efficient persistence and
-simple append-style operations. This also allows it to be used in a streaming
-context, such as a simple inter-process communication (IPC) protocol or for a
-remote procedure call (RPC) mechanism. This library provides a simple
-streaming API to process very large NDJSON files with thousands or even millions
-of rows efficiently without having to load the whole file into memory at once.
-
-* **Standard interfaces** -
-  Allows easy integration with existing higher-level components by implementing
-  ReactPHP's standard streaming interfaces.
-* **Lightweight, SOLID design** -
-  Provides a thin abstraction that is [*just good enough*](https://en.wikipedia.org/wiki/Principle_of_good_enough)
-  and does not get in your way.
-  Builds on top of well-tested components and well-established concepts instead of reinventing the wheel.
-* **Good test coverage** -
-  Comes with an [automated tests suite](#tests) and is regularly tested in the *real world*.
-
-**Table of contents**
-
-* [Support us](#support-us)
-* [NDJSON format](#ndjson-format)
-* [Usage](#usage)
-    * [Decoder](#decoder)
-    * [Encoder](#encoder)
-* [Install](#install)
-* [Tests](#tests)
-* [License](#license)
-* [More](#more)
-
-## Support us
-
-We invest a lot of time developing, maintaining, and updating our awesome
-open-source projects. You can help us sustain this high-quality of our work by
-[becoming a sponsor on GitHub](https://github.com/sponsors/clue). Sponsors get
-numerous benefits in return, see our [sponsoring page](https://github.com/sponsors/clue)
-for details.
-
-Let's take these projects to the next level together! 🚀
-
-## NDJSON format
-
-NDJSON ("Newline-Delimited JSON" or sometimes referred to as "JSON lines") is a
-very simple text-based format for storing a large number of records, such as a
-list of user records or log entries.
-
-```JSON
-{"name":"Alice","age":30,"comment":"Yes, I like cheese"}
-{"name":"Bob","age":50,"comment":"Hello\nWorld!"}
-```
-
-If you understand JSON and you're now looking at this newline-delimited JSON for
-the first time, you should already know everything you need to know to
-understand NDJSON: As the name implies, this format essentially consists of
-individual lines where each individual line is any valid JSON text and each line
-is delimited with a newline character.
-
-This example uses a list of user objects where each user has some arbitrary
-properties. This can easily be adjusted for many different use cases, such as
-storing for example products instead of users, assigning additional properties
-or having a significantly larger number of records. You can edit NDJSON files in
-any text editor or use them in a streaming context where individual records
-should be processed. Unlike normal JSON files, adding a new log entry to this
-NDJSON file does not require modification of this file's structure (note there's
-no "outer array" to be modified). This makes it a perfect fit for a streaming
-context, for line-oriented CLI tools (such as `grep` and others) or for a logging
-context where you want to append records at a later time. Additionally, this
-also allows it to be used in a streaming context, such as a simple inter-process
-communication (IPC) protocol or for a remote procedure call (RPC) mechanism.
-
-The newline character at the end of each line allows for some really simple
-*framing* (detecting individual records). While each individual line is valid
-JSON, the complete file as a whole is technically no longer valid JSON, because
-it contains multiple JSON texts. This implies that for example calling PHP's
-`json_decode()` on this complete input would fail because it would try to parse
-multiple records at once. Likewise, using "pretty printing" JSON
-(`JSON_PRETTY_PRINT`) is not allowed because each JSON text is limited to exactly
-one line. On the other hand, values containing newline characters (such as the
-`comment` property in the above example) do not cause issues because each newline
-within a JSON string will be represented by a `\n` instead.
-
-One common alternative to NDJSON would be Comma-Separated Values (CSV).
-If you want to process CSV files, you may want to take a look at the related
-project [clue/reactphp-csv](https://github.com/clue/reactphp-csv) instead:
-
-```
-name,age,comment
-Alice,30,"Yes, I like cheese"
-Bob,50,"Hello
-World!"
-```
-
-CSV may look slightly simpler, but this simplicity comes at a price. CSV is
-limited to untyped, two-dimensional data, so there's no standard way of storing
-any nested structures or to differentiate a boolean value from a string or
-integer. Field names are sometimes used, sometimes they're not
-(application-dependant). Inconsistent handling for fields that contain
-separators such as `,` or spaces or line breaks (see the `comment` field above)
-introduce additional complexity and its text encoding is usually undefined,
-Unicode (or UTF-8) is unlikely to be supported and CSV files often use ISO
-8859-1 encoding or some variant (again application-dependant).
-
-While NDJSON helps avoiding many of CSV's shortcomings, it is still a
-(relatively) young format while CSV files have been used in production systems
-for decades. This means that if you want to interface with an existing system,
-you may have to rely on the format that's already supported. If you're building
-a new system, using NDJSON is an excellent choice as it provides a flexible way
-to process individual records using a common text-based format that can include
-any kind of structured data.
-
-## Usage
-
-### Decoder
-
-The `Decoder` (parser) class can be used to make sure you only get back
-complete, valid JSON elements when reading from a stream.
-It wraps a given
-[`ReadableStreamInterface`](https://github.com/reactphp/stream#readablestreaminterface)
-and exposes its data through the same interface, but emits the JSON elements
-as parsed values instead of just chunks of strings:
-
-```
-{"name":"test","active":true}
-{"name":"hello w\u00f6rld","active":true}
-```
-
-```php
-$stdin = new React\Stream\ReadableResourceStream(STDIN);
-
-$ndjson = new Clue\React\NDJson\Decoder($stdin);
-
-$ndjson->on('data', function ($data) {
-    // $data is a parsed element from the JSON stream
-    // line 1: $data = (object)array('name' => 'test', 'active' => true);
-    // line 2: $data = (object)array('name' => 'hello wörld', 'active' => true);
-    var_dump($data);
-});
-```
-
-ReactPHP's streams emit chunks of data strings and make no assumption about their lengths.
-These chunks do not necessarily represent complete JSON elements, as an
-element may be broken up into multiple chunks.
-This class reassembles these elements by buffering incomplete ones.
-
-The `Decoder` supports the same optional parameters as the underlying
-[`json_decode()`](https://www.php.net/manual/en/function.json-decode.php) function.
-This means that, by default, JSON objects will be emitted as a `stdClass`.
-This behavior can be controlled through the optional constructor parameters:
-
-```php
-$ndjson = new Clue\React\NDJson\Decoder($stdin, true);
-
-$ndjson->on('data', function ($data) {
-    // JSON objects will be emitted as assoc arrays now
-});
-```
-
-Additionally, the `Decoder` limits the maximum buffer size (maximum line
-length) to avoid buffer overflows due to malformed user input. Usually, there
-should be no need to change this value, unless you know you're dealing with some
-unreasonably long lines. It accepts an additional argument if you want to change
-this from the default of 64 KiB:
-
-```php
-$ndjson = new Clue\React\NDJson\Decoder($stdin, false, 512, 0, 64 * 1024);
-```
-
-If the underlying stream emits an `error` event or the plain stream contains
-any data that does not represent a valid NDJson stream,
-it will emit an `error` event and then `close` the input stream:
-
-```php
-$ndjson->on('error', function (Exception $error) {
-    // an error occured, stream will close next
-});
-```
-
-If the underlying stream emits an `end` event, it will flush any incomplete
-data from the buffer, thus either possibly emitting a final `data` event
-followed by an `end` event on success or an `error` event for
-incomplete/invalid JSON data as above:
-
-```php
-$ndjson->on('end', function () {
-    // stream successfully ended, stream will close next
-});
-```
-
-If either the underlying stream or the `Decoder` is closed, it will forward
-the `close` event:
-
-```php
-$ndjson->on('close', function () {
-    // stream closed
-    // possibly after an "end" event or due to an "error" event
-});
-```
-
-The `close(): void` method can be used to explicitly close the `Decoder` and
-its underlying stream:
-
-```php
-$ndjson->close();
-```
-
-The `pipe(WritableStreamInterface $dest, array $options = array(): WritableStreamInterface`
-method can be used to forward all data to the given destination stream.
-Please note that the `Decoder` emits decoded/parsed data events, while many
-(most?) writable streams expect only data chunks:
-
-```php
-$ndjson->pipe($logger);
-```
-
-For more details, see ReactPHP's
-[`ReadableStreamInterface`](https://github.com/reactphp/stream#readablestreaminterface).
-
-### Encoder
-
-The `Encoder` (serializer) class can be used to make sure anything you write to
-a stream ends up as valid JSON elements in the resulting NDJSON stream.
-It wraps a given
-[`WritableStreamInterface`](https://github.com/reactphp/stream#writablestreaminterface)
-and accepts its data through the same interface, but handles any data as complete
-JSON elements instead of just chunks of strings:
-
-```php
-$stdout = new React\Stream\WritableResourceStream(STDOUT);
-
-$ndjson = new Clue\React\NDJson\Encoder($stdout);
-
-$ndjson->write(array('name' => 'test', 'active' => true));
-$ndjson->write(array('name' => 'hello wörld', 'active' => true));
-```
-```
-{"name":"test","active":true}
-{"name":"hello w\u00f6rld","active":true}
-```
-
-The `Encoder` supports the same parameters as the underlying
-[`json_encode()`](https://www.php.net/manual/en/function.json-encode.php) function.
-This means that, by default, Unicode characters will be escaped in the output.
-This behavior can be controlled through the optional constructor parameters:
-
-```php
-$ndjson = new Clue\React\NDJson\Encoder($stdout, JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE);
-
-$ndjson->write('hello wörld');
-```
-```
-"hello wörld"
-```
-
-Note that trying to pass the `JSON_PRETTY_PRINT` option will yield an
-`InvalidArgumentException` because it is not compatible with NDJSON.
-
-If the underlying stream emits an `error` event or the given data contains
-any data that can not be represented as a valid NDJSON stream,
-it will emit an `error` event and then `close` the input stream:
-
-```php
-$ndjson->on('error', function (Exception $error) {
-    // an error occured, stream will close next
-});
-```
-
-If either the underlying stream or the `Encoder` is closed, it will forward
-the `close` event:
-
-```php
-$ndjson->on('close', function () {
-    // stream closed
-    // possibly after an "end" event or due to an "error" event
-});
-```
-
-The `end(mixed $data = null): void` method can be used to optionally emit
-any final data and then soft-close the `Encoder` and its underlying stream:
-
-```php
-$ndjson->end();
-```
-
-The `close(): void` method can be used to explicitly close the `Encoder` and
-its underlying stream:
-
-```php
-$ndjson->close();
-```
-
-For more details, see ReactPHP's
-[`WritableStreamInterface`](https://github.com/reactphp/stream#writablestreaminterface).
-
-## Install
-
-The recommended way to install this library is [through Composer](https://getcomposer.org/).
-[New to Composer?](https://getcomposer.org/doc/00-intro.md)
-
-This project follows [SemVer](https://semver.org/).
-This will install the latest supported version:
-
-```bash
-composer require clue/ndjson-react:^1.3
-```
-
-See also the [CHANGELOG](CHANGELOG.md) for details about version upgrades.
-
-This project aims to run on any platform and thus does not require any PHP
-extensions and supports running on legacy PHP 5.3 through current PHP 8+ and
-HHVM.
-It's *highly recommended to use the latest supported PHP version* for this project.
-
-## Tests
-
-To run the test suite, you first need to clone this repo and then install all
-dependencies [through Composer](https://getcomposer.org/):
-
-```bash
-composer install
-```
-
-To run the test suite, go to the project root and run:
-
-```bash
-vendor/bin/phpunit
-```
-
-## License
-
-This project is released under the permissive [MIT license](LICENSE).
-
-> Did you know that I offer custom development services and issuing invoices for
-  sponsorships of releases and for contributions? Contact me (@clue) for details.
-
-## More
-
-* If you want to learn more about processing streams of data, refer to the documentation of
-  the underlying [react/stream](https://github.com/reactphp/stream) component.
-
-* If you want to process compressed NDJSON files (`.ndjson.gz` file extension),
-  you may want to use [clue/reactphp-zlib](https://github.com/clue/reactphp-zlib)
-  on the compressed input stream before passing the decompressed stream to the NDJSON decoder.
-
-* If you want to create compressed NDJSON files (`.ndjson.gz` file extension),
-  you may want to use [clue/reactphp-zlib](https://github.com/clue/reactphp-zlib)
-  on the resulting NDJSON encoder output stream before passing the compressed
-  stream to the file output stream.
-
-* If you want to concurrently process the records from your NDJSON stream,
-  you may want to use [clue/reactphp-flux](https://github.com/clue/reactphp-flux)
-  to concurrently process many (but not too many) records at once.
-
-* If you want to process structured data in the more common text-based format,
-  you may want to use [clue/reactphp-csv](https://github.com/clue/reactphp-csv)
-  to process Comma-Separated-Values (CSV) files (`.csv` file extension).

+ 0 - 31
vendor/clue/ndjson-react/composer.json

@@ -1,31 +0,0 @@
-{
-    "name": "clue/ndjson-react",
-    "description": "Streaming newline-delimited JSON (NDJSON) parser and encoder for ReactPHP.",
-    "keywords": ["NDJSON", "newline", "JSON", "jsonlines", "streaming", "ReactPHP"],
-    "homepage": "https://github.com/clue/reactphp-ndjson",
-    "license": "MIT",
-    "authors": [
-        {
-            "name": "Christian Lück",
-            "email": "christian@clue.engineering"
-        }
-    ],
-    "require": {
-        "php": ">=5.3",
-        "react/stream": "^1.2"
-    },
-    "require-dev": {
-        "phpunit/phpunit": "^9.5 || ^5.7 || ^4.8.35",
-        "react/event-loop": "^1.2"
-    },
-    "autoload": {
-        "psr-4": {
-            "Clue\\React\\NDJson\\": "src/"
-        }
-    },
-    "autoload-dev": {
-        "psr-4": {
-            "Clue\\Tests\\React\\NDJson\\": "tests/"
-        }
-    }
-}

+ 0 - 166
vendor/clue/ndjson-react/src/Decoder.php

@@ -1,166 +0,0 @@
-<?php
-
-namespace Clue\React\NDJson;
-
-use Evenement\EventEmitter;
-use React\Stream\ReadableStreamInterface;
-use React\Stream\Util;
-use React\Stream\WritableStreamInterface;
-
-/**
- * The Decoder / Parser reads from a plain stream and emits data objects for each JSON element
- */
-class Decoder extends EventEmitter implements ReadableStreamInterface
-{
-    private $input;
-    private $assoc;
-    private $depth;
-    private $options;
-    /** @var int */
-    private $maxlength;
-
-    private $buffer = '';
-    private $closed = false;
-
-    /**
-     * @param ReadableStreamInterface $input
-     * @param bool $assoc
-     * @param int $depth
-     * @param int $options (requires PHP 5.4+)
-     * @param int $maxlength
-     * @throws \BadMethodCallException
-     */
-    public function __construct(ReadableStreamInterface $input, $assoc = false, $depth = 512, $options = 0, $maxlength = 65536)
-    {
-        // @codeCoverageIgnoreStart
-        if ($options !== 0 && \PHP_VERSION < 5.4) {
-            throw new \BadMethodCallException('Options parameter is only supported on PHP 5.4+');
-        }
-        if (\defined('JSON_THROW_ON_ERROR')) {
-            $options = $options & ~\JSON_THROW_ON_ERROR;
-        }
-        // @codeCoverageIgnoreEnd
-
-        $this->input = $input;
-
-        if (!$input->isReadable()) {
-            $this->close();
-            return;
-        }
-
-        $this->assoc = $assoc;
-        $this->depth = $depth;
-        $this->options = $options;
-        $this->maxlength = $maxlength;
-
-        $this->input->on('data', array($this, 'handleData'));
-        $this->input->on('end', array($this, 'handleEnd'));
-        $this->input->on('error', array($this, 'handleError'));
-        $this->input->on('close', array($this, 'close'));
-    }
-
-    public function isReadable()
-    {
-        return !$this->closed;
-    }
-
-    public function close()
-    {
-        if ($this->closed) {
-            return;
-        }
-
-        $this->closed = true;
-        $this->buffer = '';
-
-        $this->input->close();
-
-        $this->emit('close');
-        $this->removeAllListeners();
-    }
-
-    public function pause()
-    {
-        $this->input->pause();
-    }
-
-    public function resume()
-    {
-        $this->input->resume();
-    }
-
-    public function pipe(WritableStreamInterface $dest, array $options = array())
-    {
-        Util::pipe($this, $dest, $options);
-
-        return $dest;
-    }
-
-    /** @internal */
-    public function handleData($data)
-    {
-        if (!\is_string($data)) {
-            $this->handleError(new \UnexpectedValueException('Expected stream to emit string, but got ' . \gettype($data)));
-            return;
-        }
-
-        $this->buffer .= $data;
-
-        // keep parsing while a newline has been found
-        while (($newline = \strpos($this->buffer, "\n")) !== false && $newline <= $this->maxlength) {
-            // read data up until newline and remove from buffer
-            $data = (string)\substr($this->buffer, 0, $newline);
-            $this->buffer = (string)\substr($this->buffer, $newline + 1);
-
-            // decode data with options given in ctor
-            // @codeCoverageIgnoreStart
-            if ($this->options === 0) {
-                $data = \json_decode($data, $this->assoc, $this->depth);
-            } else {
-                assert(\PHP_VERSION_ID >= 50400);
-                $data = \json_decode($data, $this->assoc, $this->depth, $this->options);
-            }
-            // @codeCoverageIgnoreEnd
-
-            // abort stream if decoding failed
-            if ($data === null && \json_last_error() !== \JSON_ERROR_NONE) {
-                // @codeCoverageIgnoreStart
-                if (\PHP_VERSION_ID > 50500) {
-                    $errstr = \json_last_error_msg();
-                } elseif (\json_last_error() === \JSON_ERROR_SYNTAX) {
-                    $errstr = 'Syntax error';
-                } else {
-                    $errstr = 'Unknown error';
-                }
-                // @codeCoverageIgnoreEnd
-                return $this->handleError(new \RuntimeException('Unable to decode JSON: ' . $errstr, \json_last_error()));
-            }
-
-            $this->emit('data', array($data));
-        }
-
-        if (isset($this->buffer[$this->maxlength])) {
-            $this->handleError(new \OverflowException('Buffer size exceeded'));
-        }
-    }
-
-    /** @internal */
-    public function handleEnd()
-    {
-        if ($this->buffer !== '') {
-            $this->handleData("\n");
-        }
-
-        if (!$this->closed) {
-            $this->emit('end');
-            $this->close();
-        }
-    }
-
-    /** @internal */
-    public function handleError(\Exception $error)
-    {
-        $this->emit('error', array($error));
-        $this->close();
-    }
-}

+ 0 - 144
vendor/clue/ndjson-react/src/Encoder.php

@@ -1,144 +0,0 @@
-<?php
-
-namespace Clue\React\NDJson;
-
-use Evenement\EventEmitter;
-use React\Stream\WritableStreamInterface;
-
-/**
- * The Encoder / Serializer can be used to write any value, encode it as a JSON text and forward it to an output stream
- */
-class Encoder extends EventEmitter implements WritableStreamInterface
-{
-    private $output;
-    private $options;
-    private $depth;
-
-    private $closed = false;
-
-    /**
-     * @param WritableStreamInterface $output
-     * @param int $options
-     * @param int $depth (requires PHP 5.5+)
-     * @throws \InvalidArgumentException
-     * @throws \BadMethodCallException
-     */
-    public function __construct(WritableStreamInterface $output, $options = 0, $depth = 512)
-    {
-        // @codeCoverageIgnoreStart
-        if (\defined('JSON_PRETTY_PRINT') && $options & \JSON_PRETTY_PRINT) {
-            throw new \InvalidArgumentException('Pretty printing not available for NDJSON');
-        }
-        if ($depth !== 512 && \PHP_VERSION < 5.5) {
-            throw new \BadMethodCallException('Depth parameter is only supported on PHP 5.5+');
-        }
-        if (\defined('JSON_THROW_ON_ERROR')) {
-            $options = $options & ~\JSON_THROW_ON_ERROR;
-        }
-        // @codeCoverageIgnoreEnd
-
-        $this->output = $output;
-
-        if (!$output->isWritable()) {
-            $this->close();
-            return;
-        }
-
-        $this->options = $options;
-        $this->depth = $depth;
-
-        $this->output->on('drain', array($this, 'handleDrain'));
-        $this->output->on('error', array($this, 'handleError'));
-        $this->output->on('close', array($this, 'close'));
-    }
-
-    public function write($data)
-    {
-        if ($this->closed) {
-            return false;
-        }
-
-        // we have to handle PHP warnings for legacy PHP < 5.5
-        // certain values (such as INF etc.) emit a warning, but still encode successfully
-        // @codeCoverageIgnoreStart
-        if (\PHP_VERSION_ID < 50500) {
-            $errstr = null;
-            \set_error_handler(function ($_, $error) use (&$errstr) {
-                $errstr = $error;
-            });
-
-            // encode data with options given in ctor (depth not supported)
-            $data = \json_encode($data, $this->options);
-
-            // always check error code and match missing error messages
-            \restore_error_handler();
-            $errno = \json_last_error();
-            if (\defined('JSON_ERROR_UTF8') && $errno === \JSON_ERROR_UTF8) {
-                // const JSON_ERROR_UTF8 added in PHP 5.3.3, but no error message assigned in legacy PHP < 5.5
-                // this overrides PHP 5.3.14 only: https://3v4l.org/IGP8Z#v5314
-                $errstr = 'Malformed UTF-8 characters, possibly incorrectly encoded';
-            } elseif ($errno !== \JSON_ERROR_NONE && $errstr === null) {
-                // error number present, but no error message applicable
-                $errstr = 'Unknown error';
-            }
-
-            // abort stream if encoding fails
-            if ($errno !== \JSON_ERROR_NONE || $errstr !== null) {
-                $this->handleError(new \RuntimeException('Unable to encode JSON: ' . $errstr, $errno));
-                return false;
-            }
-        } else {
-            // encode data with options given in ctor
-            $data = \json_encode($data, $this->options, $this->depth);
-
-            // abort stream if encoding fails
-            if ($data === false && \json_last_error() !== \JSON_ERROR_NONE) {
-                $this->handleError(new \RuntimeException('Unable to encode JSON: ' . \json_last_error_msg(), \json_last_error()));
-                return false;
-            }
-        }
-        // @codeCoverageIgnoreEnd
-
-        return $this->output->write($data . "\n");
-    }
-
-    public function end($data = null)
-    {
-        if ($data !== null) {
-            $this->write($data);
-        }
-
-        $this->output->end();
-    }
-
-    public function isWritable()
-    {
-        return !$this->closed;
-    }
-
-    public function close()
-    {
-        if ($this->closed) {
-            return;
-        }
-
-        $this->closed = true;
-        $this->output->close();
-
-        $this->emit('close');
-        $this->removeAllListeners();
-    }
-
-    /** @internal */
-    public function handleDrain()
-    {
-        $this->emit('drain');
-    }
-
-    /** @internal */
-    public function handleError(\Exception $error)
-    {
-        $this->emit('error', array($error));
-        $this->close();
-    }
-}

+ 0 - 579
vendor/composer/ClassLoader.php

@@ -1,579 +0,0 @@
-<?php
-
-/*
- * This file is part of Composer.
- *
- * (c) Nils Adermann <naderman@naderman.de>
- *     Jordi Boggiano <j.boggiano@seld.be>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Composer\Autoload;
-
-/**
- * ClassLoader implements a PSR-0, PSR-4 and classmap class loader.
- *
- *     $loader = new \Composer\Autoload\ClassLoader();
- *
- *     // register classes with namespaces
- *     $loader->add('Symfony\Component', __DIR__.'/component');
- *     $loader->add('Symfony',           __DIR__.'/framework');
- *
- *     // activate the autoloader
- *     $loader->register();
- *
- *     // to enable searching the include path (eg. for PEAR packages)
- *     $loader->setUseIncludePath(true);
- *
- * In this example, if you try to use a class in the Symfony\Component
- * namespace or one of its children (Symfony\Component\Console for instance),
- * the autoloader will first look for the class under the component/
- * directory, and it will then fallback to the framework/ directory if not
- * found before giving up.
- *
- * This class is loosely based on the Symfony UniversalClassLoader.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- * @author Jordi Boggiano <j.boggiano@seld.be>
- * @see    https://www.php-fig.org/psr/psr-0/
- * @see    https://www.php-fig.org/psr/psr-4/
- */
-class ClassLoader
-{
-    /** @var \Closure(string):void */
-    private static $includeFile;
-
-    /** @var string|null */
-    private $vendorDir;
-
-    // PSR-4
-    /**
-     * @var array<string, array<string, int>>
-     */
-    private $prefixLengthsPsr4 = array();
-    /**
-     * @var array<string, list<string>>
-     */
-    private $prefixDirsPsr4 = array();
-    /**
-     * @var list<string>
-     */
-    private $fallbackDirsPsr4 = array();
-
-    // PSR-0
-    /**
-     * List of PSR-0 prefixes
-     *
-     * Structured as array('F (first letter)' => array('Foo\Bar (full prefix)' => array('path', 'path2')))
-     *
-     * @var array<string, array<string, list<string>>>
-     */
-    private $prefixesPsr0 = array();
-    /**
-     * @var list<string>
-     */
-    private $fallbackDirsPsr0 = array();
-
-    /** @var bool */
-    private $useIncludePath = false;
-
-    /**
-     * @var array<string, string>
-     */
-    private $classMap = array();
-
-    /** @var bool */
-    private $classMapAuthoritative = false;
-
-    /**
-     * @var array<string, bool>
-     */
-    private $missingClasses = array();
-
-    /** @var string|null */
-    private $apcuPrefix;
-
-    /**
-     * @var array<string, self>
-     */
-    private static $registeredLoaders = array();
-
-    /**
-     * @param string|null $vendorDir
-     */
-    public function __construct($vendorDir = null)
-    {
-        $this->vendorDir = $vendorDir;
-        self::initializeIncludeClosure();
-    }
-
-    /**
-     * @return array<string, list<string>>
-     */
-    public function getPrefixes()
-    {
-        if (!empty($this->prefixesPsr0)) {
-            return call_user_func_array('array_merge', array_values($this->prefixesPsr0));
-        }
-
-        return array();
-    }
-
-    /**
-     * @return array<string, list<string>>
-     */
-    public function getPrefixesPsr4()
-    {
-        return $this->prefixDirsPsr4;
-    }
-
-    /**
-     * @return list<string>
-     */
-    public function getFallbackDirs()
-    {
-        return $this->fallbackDirsPsr0;
-    }
-
-    /**
-     * @return list<string>
-     */
-    public function getFallbackDirsPsr4()
-    {
-        return $this->fallbackDirsPsr4;
-    }
-
-    /**
-     * @return array<string, string> Array of classname => path
-     */
-    public function getClassMap()
-    {
-        return $this->classMap;
-    }
-
-    /**
-     * @param array<string, string> $classMap Class to filename map
-     *
-     * @return void
-     */
-    public function addClassMap(array $classMap)
-    {
-        if ($this->classMap) {
-            $this->classMap = array_merge($this->classMap, $classMap);
-        } else {
-            $this->classMap = $classMap;
-        }
-    }
-
-    /**
-     * Registers a set of PSR-0 directories for a given prefix, either
-     * appending or prepending to the ones previously set for this prefix.
-     *
-     * @param string              $prefix  The prefix
-     * @param list<string>|string $paths   The PSR-0 root directories
-     * @param bool                $prepend Whether to prepend the directories
-     *
-     * @return void
-     */
-    public function add($prefix, $paths, $prepend = false)
-    {
-        $paths = (array) $paths;
-        if (!$prefix) {
-            if ($prepend) {
-                $this->fallbackDirsPsr0 = array_merge(
-                    $paths,
-                    $this->fallbackDirsPsr0
-                );
-            } else {
-                $this->fallbackDirsPsr0 = array_merge(
-                    $this->fallbackDirsPsr0,
-                    $paths
-                );
-            }
-
-            return;
-        }
-
-        $first = $prefix[0];
-        if (!isset($this->prefixesPsr0[$first][$prefix])) {
-            $this->prefixesPsr0[$first][$prefix] = $paths;
-
-            return;
-        }
-        if ($prepend) {
-            $this->prefixesPsr0[$first][$prefix] = array_merge(
-                $paths,
-                $this->prefixesPsr0[$first][$prefix]
-            );
-        } else {
-            $this->prefixesPsr0[$first][$prefix] = array_merge(
-                $this->prefixesPsr0[$first][$prefix],
-                $paths
-            );
-        }
-    }
-
-    /**
-     * Registers a set of PSR-4 directories for a given namespace, either
-     * appending or prepending to the ones previously set for this namespace.
-     *
-     * @param string              $prefix  The prefix/namespace, with trailing '\\'
-     * @param list<string>|string $paths   The PSR-4 base directories
-     * @param bool                $prepend Whether to prepend the directories
-     *
-     * @throws \InvalidArgumentException
-     *
-     * @return void
-     */
-    public function addPsr4($prefix, $paths, $prepend = false)
-    {
-        $paths = (array) $paths;
-        if (!$prefix) {
-            // Register directories for the root namespace.
-            if ($prepend) {
-                $this->fallbackDirsPsr4 = array_merge(
-                    $paths,
-                    $this->fallbackDirsPsr4
-                );
-            } else {
-                $this->fallbackDirsPsr4 = array_merge(
-                    $this->fallbackDirsPsr4,
-                    $paths
-                );
-            }
-        } elseif (!isset($this->prefixDirsPsr4[$prefix])) {
-            // Register directories for a new namespace.
-            $length = strlen($prefix);
-            if ('\\' !== $prefix[$length - 1]) {
-                throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator.");
-            }
-            $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length;
-            $this->prefixDirsPsr4[$prefix] = $paths;
-        } elseif ($prepend) {
-            // Prepend directories for an already registered namespace.
-            $this->prefixDirsPsr4[$prefix] = array_merge(
-                $paths,
-                $this->prefixDirsPsr4[$prefix]
-            );
-        } else {
-            // Append directories for an already registered namespace.
-            $this->prefixDirsPsr4[$prefix] = array_merge(
-                $this->prefixDirsPsr4[$prefix],
-                $paths
-            );
-        }
-    }
-
-    /**
-     * Registers a set of PSR-0 directories for a given prefix,
-     * replacing any others previously set for this prefix.
-     *
-     * @param string              $prefix The prefix
-     * @param list<string>|string $paths  The PSR-0 base directories
-     *
-     * @return void
-     */
-    public function set($prefix, $paths)
-    {
-        if (!$prefix) {
-            $this->fallbackDirsPsr0 = (array) $paths;
-        } else {
-            $this->prefixesPsr0[$prefix[0]][$prefix] = (array) $paths;
-        }
-    }
-
-    /**
-     * Registers a set of PSR-4 directories for a given namespace,
-     * replacing any others previously set for this namespace.
-     *
-     * @param string              $prefix The prefix/namespace, with trailing '\\'
-     * @param list<string>|string $paths  The PSR-4 base directories
-     *
-     * @throws \InvalidArgumentException
-     *
-     * @return void
-     */
-    public function setPsr4($prefix, $paths)
-    {
-        if (!$prefix) {
-            $this->fallbackDirsPsr4 = (array) $paths;
-        } else {
-            $length = strlen($prefix);
-            if ('\\' !== $prefix[$length - 1]) {
-                throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator.");
-            }
-            $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length;
-            $this->prefixDirsPsr4[$prefix] = (array) $paths;
-        }
-    }
-
-    /**
-     * Turns on searching the include path for class files.
-     *
-     * @param bool $useIncludePath
-     *
-     * @return void
-     */
-    public function setUseIncludePath($useIncludePath)
-    {
-        $this->useIncludePath = $useIncludePath;
-    }
-
-    /**
-     * Can be used to check if the autoloader uses the include path to check
-     * for classes.
-     *
-     * @return bool
-     */
-    public function getUseIncludePath()
-    {
-        return $this->useIncludePath;
-    }
-
-    /**
-     * Turns off searching the prefix and fallback directories for classes
-     * that have not been registered with the class map.
-     *
-     * @param bool $classMapAuthoritative
-     *
-     * @return void
-     */
-    public function setClassMapAuthoritative($classMapAuthoritative)
-    {
-        $this->classMapAuthoritative = $classMapAuthoritative;
-    }
-
-    /**
-     * Should class lookup fail if not found in the current class map?
-     *
-     * @return bool
-     */
-    public function isClassMapAuthoritative()
-    {
-        return $this->classMapAuthoritative;
-    }
-
-    /**
-     * APCu prefix to use to cache found/not-found classes, if the extension is enabled.
-     *
-     * @param string|null $apcuPrefix
-     *
-     * @return void
-     */
-    public function setApcuPrefix($apcuPrefix)
-    {
-        $this->apcuPrefix = function_exists('apcu_fetch') && filter_var(ini_get('apc.enabled'), FILTER_VALIDATE_BOOLEAN) ? $apcuPrefix : null;
-    }
-
-    /**
-     * The APCu prefix in use, or null if APCu caching is not enabled.
-     *
-     * @return string|null
-     */
-    public function getApcuPrefix()
-    {
-        return $this->apcuPrefix;
-    }
-
-    /**
-     * Registers this instance as an autoloader.
-     *
-     * @param bool $prepend Whether to prepend the autoloader or not
-     *
-     * @return void
-     */
-    public function register($prepend = false)
-    {
-        spl_autoload_register(array($this, 'loadClass'), true, $prepend);
-
-        if (null === $this->vendorDir) {
-            return;
-        }
-
-        if ($prepend) {
-            self::$registeredLoaders = array($this->vendorDir => $this) + self::$registeredLoaders;
-        } else {
-            unset(self::$registeredLoaders[$this->vendorDir]);
-            self::$registeredLoaders[$this->vendorDir] = $this;
-        }
-    }
-
-    /**
-     * Unregisters this instance as an autoloader.
-     *
-     * @return void
-     */
-    public function unregister()
-    {
-        spl_autoload_unregister(array($this, 'loadClass'));
-
-        if (null !== $this->vendorDir) {
-            unset(self::$registeredLoaders[$this->vendorDir]);
-        }
-    }
-
-    /**
-     * Loads the given class or interface.
-     *
-     * @param  string    $class The name of the class
-     * @return true|null True if loaded, null otherwise
-     */
-    public function loadClass($class)
-    {
-        if ($file = $this->findFile($class)) {
-            $includeFile = self::$includeFile;
-            $includeFile($file);
-
-            return true;
-        }
-
-        return null;
-    }
-
-    /**
-     * Finds the path to the file where the class is defined.
-     *
-     * @param string $class The name of the class
-     *
-     * @return string|false The path if found, false otherwise
-     */
-    public function findFile($class)
-    {
-        // class map lookup
-        if (isset($this->classMap[$class])) {
-            return $this->classMap[$class];
-        }
-        if ($this->classMapAuthoritative || isset($this->missingClasses[$class])) {
-            return false;
-        }
-        if (null !== $this->apcuPrefix) {
-            $file = apcu_fetch($this->apcuPrefix.$class, $hit);
-            if ($hit) {
-                return $file;
-            }
-        }
-
-        $file = $this->findFileWithExtension($class, '.php');
-
-        // Search for Hack files if we are running on HHVM
-        if (false === $file && defined('HHVM_VERSION')) {
-            $file = $this->findFileWithExtension($class, '.hh');
-        }
-
-        if (null !== $this->apcuPrefix) {
-            apcu_add($this->apcuPrefix.$class, $file);
-        }
-
-        if (false === $file) {
-            // Remember that this class does not exist.
-            $this->missingClasses[$class] = true;
-        }
-
-        return $file;
-    }
-
-    /**
-     * Returns the currently registered loaders keyed by their corresponding vendor directories.
-     *
-     * @return array<string, self>
-     */
-    public static function getRegisteredLoaders()
-    {
-        return self::$registeredLoaders;
-    }
-
-    /**
-     * @param  string       $class
-     * @param  string       $ext
-     * @return string|false
-     */
-    private function findFileWithExtension($class, $ext)
-    {
-        // PSR-4 lookup
-        $logicalPathPsr4 = strtr($class, '\\', DIRECTORY_SEPARATOR) . $ext;
-
-        $first = $class[0];
-        if (isset($this->prefixLengthsPsr4[$first])) {
-            $subPath = $class;
-            while (false !== $lastPos = strrpos($subPath, '\\')) {
-                $subPath = substr($subPath, 0, $lastPos);
-                $search = $subPath . '\\';
-                if (isset($this->prefixDirsPsr4[$search])) {
-                    $pathEnd = DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $lastPos + 1);
-                    foreach ($this->prefixDirsPsr4[$search] as $dir) {
-                        if (file_exists($file = $dir . $pathEnd)) {
-                            return $file;
-                        }
-                    }
-                }
-            }
-        }
-
-        // PSR-4 fallback dirs
-        foreach ($this->fallbackDirsPsr4 as $dir) {
-            if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr4)) {
-                return $file;
-            }
-        }
-
-        // PSR-0 lookup
-        if (false !== $pos = strrpos($class, '\\')) {
-            // namespaced class name
-            $logicalPathPsr0 = substr($logicalPathPsr4, 0, $pos + 1)
-                . strtr(substr($logicalPathPsr4, $pos + 1), '_', DIRECTORY_SEPARATOR);
-        } else {
-            // PEAR-like class name
-            $logicalPathPsr0 = strtr($class, '_', DIRECTORY_SEPARATOR) . $ext;
-        }
-
-        if (isset($this->prefixesPsr0[$first])) {
-            foreach ($this->prefixesPsr0[$first] as $prefix => $dirs) {
-                if (0 === strpos($class, $prefix)) {
-                    foreach ($dirs as $dir) {
-                        if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) {
-                            return $file;
-                        }
-                    }
-                }
-            }
-        }
-
-        // PSR-0 fallback dirs
-        foreach ($this->fallbackDirsPsr0 as $dir) {
-            if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) {
-                return $file;
-            }
-        }
-
-        // PSR-0 include paths.
-        if ($this->useIncludePath && $file = stream_resolve_include_path($logicalPathPsr0)) {
-            return $file;
-        }
-
-        return false;
-    }
-
-    /**
-     * @return void
-     */
-    private static function initializeIncludeClosure()
-    {
-        if (self::$includeFile !== null) {
-            return;
-        }
-
-        /**
-         * Scope isolated include.
-         *
-         * Prevents access to $this/self from included files.
-         *
-         * @param  string $file
-         * @return void
-         */
-        self::$includeFile = \Closure::bind(static function($file) {
-            include $file;
-        }, null, null);
-    }
-}

+ 0 - 359
vendor/composer/InstalledVersions.php

@@ -1,359 +0,0 @@
-<?php
-
-/*
- * This file is part of Composer.
- *
- * (c) Nils Adermann <naderman@naderman.de>
- *     Jordi Boggiano <j.boggiano@seld.be>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Composer;
-
-use Composer\Autoload\ClassLoader;
-use Composer\Semver\VersionParser;
-
-/**
- * This class is copied in every Composer installed project and available to all
- *
- * See also https://getcomposer.org/doc/07-runtime.md#installed-versions
- *
- * To require its presence, you can require `composer-runtime-api ^2.0`
- *
- * @final
- */
-class InstalledVersions
-{
-    /**
-     * @var mixed[]|null
-     * @psalm-var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>}|array{}|null
-     */
-    private static $installed;
-
-    /**
-     * @var bool|null
-     */
-    private static $canGetVendors;
-
-    /**
-     * @var array[]
-     * @psalm-var array<string, array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>}>
-     */
-    private static $installedByVendor = array();
-
-    /**
-     * Returns a list of all package names which are present, either by being installed, replaced or provided
-     *
-     * @return string[]
-     * @psalm-return list<string>
-     */
-    public static function getInstalledPackages()
-    {
-        $packages = array();
-        foreach (self::getInstalled() as $installed) {
-            $packages[] = array_keys($installed['versions']);
-        }
-
-        if (1 === \count($packages)) {
-            return $packages[0];
-        }
-
-        return array_keys(array_flip(\call_user_func_array('array_merge', $packages)));
-    }
-
-    /**
-     * Returns a list of all package names with a specific type e.g. 'library'
-     *
-     * @param  string   $type
-     * @return string[]
-     * @psalm-return list<string>
-     */
-    public static function getInstalledPackagesByType($type)
-    {
-        $packagesByType = array();
-
-        foreach (self::getInstalled() as $installed) {
-            foreach ($installed['versions'] as $name => $package) {
-                if (isset($package['type']) && $package['type'] === $type) {
-                    $packagesByType[] = $name;
-                }
-            }
-        }
-
-        return $packagesByType;
-    }
-
-    /**
-     * Checks whether the given package is installed
-     *
-     * This also returns true if the package name is provided or replaced by another package
-     *
-     * @param  string $packageName
-     * @param  bool   $includeDevRequirements
-     * @return bool
-     */
-    public static function isInstalled($packageName, $includeDevRequirements = true)
-    {
-        foreach (self::getInstalled() as $installed) {
-            if (isset($installed['versions'][$packageName])) {
-                return $includeDevRequirements || !isset($installed['versions'][$packageName]['dev_requirement']) || $installed['versions'][$packageName]['dev_requirement'] === false;
-            }
-        }
-
-        return false;
-    }
-
-    /**
-     * Checks whether the given package satisfies a version constraint
-     *
-     * e.g. If you want to know whether version 2.3+ of package foo/bar is installed, you would call:
-     *
-     *   Composer\InstalledVersions::satisfies(new VersionParser, 'foo/bar', '^2.3')
-     *
-     * @param  VersionParser $parser      Install composer/semver to have access to this class and functionality
-     * @param  string        $packageName
-     * @param  string|null   $constraint  A version constraint to check for, if you pass one you have to make sure composer/semver is required by your package
-     * @return bool
-     */
-    public static function satisfies(VersionParser $parser, $packageName, $constraint)
-    {
-        $constraint = $parser->parseConstraints((string) $constraint);
-        $provided = $parser->parseConstraints(self::getVersionRanges($packageName));
-
-        return $provided->matches($constraint);
-    }
-
-    /**
-     * Returns a version constraint representing all the range(s) which are installed for a given package
-     *
-     * It is easier to use this via isInstalled() with the $constraint argument if you need to check
-     * whether a given version of a package is installed, and not just whether it exists
-     *
-     * @param  string $packageName
-     * @return string Version constraint usable with composer/semver
-     */
-    public static function getVersionRanges($packageName)
-    {
-        foreach (self::getInstalled() as $installed) {
-            if (!isset($installed['versions'][$packageName])) {
-                continue;
-            }
-
-            $ranges = array();
-            if (isset($installed['versions'][$packageName]['pretty_version'])) {
-                $ranges[] = $installed['versions'][$packageName]['pretty_version'];
-            }
-            if (array_key_exists('aliases', $installed['versions'][$packageName])) {
-                $ranges = array_merge($ranges, $installed['versions'][$packageName]['aliases']);
-            }
-            if (array_key_exists('replaced', $installed['versions'][$packageName])) {
-                $ranges = array_merge($ranges, $installed['versions'][$packageName]['replaced']);
-            }
-            if (array_key_exists('provided', $installed['versions'][$packageName])) {
-                $ranges = array_merge($ranges, $installed['versions'][$packageName]['provided']);
-            }
-
-            return implode(' || ', $ranges);
-        }
-
-        throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
-    }
-
-    /**
-     * @param  string      $packageName
-     * @return string|null If the package is being replaced or provided but is not really installed, null will be returned as version, use satisfies or getVersionRanges if you need to know if a given version is present
-     */
-    public static function getVersion($packageName)
-    {
-        foreach (self::getInstalled() as $installed) {
-            if (!isset($installed['versions'][$packageName])) {
-                continue;
-            }
-
-            if (!isset($installed['versions'][$packageName]['version'])) {
-                return null;
-            }
-
-            return $installed['versions'][$packageName]['version'];
-        }
-
-        throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
-    }
-
-    /**
-     * @param  string      $packageName
-     * @return string|null If the package is being replaced or provided but is not really installed, null will be returned as version, use satisfies or getVersionRanges if you need to know if a given version is present
-     */
-    public static function getPrettyVersion($packageName)
-    {
-        foreach (self::getInstalled() as $installed) {
-            if (!isset($installed['versions'][$packageName])) {
-                continue;
-            }
-
-            if (!isset($installed['versions'][$packageName]['pretty_version'])) {
-                return null;
-            }
-
-            return $installed['versions'][$packageName]['pretty_version'];
-        }
-
-        throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
-    }
-
-    /**
-     * @param  string      $packageName
-     * @return string|null If the package is being replaced or provided but is not really installed, null will be returned as reference
-     */
-    public static function getReference($packageName)
-    {
-        foreach (self::getInstalled() as $installed) {
-            if (!isset($installed['versions'][$packageName])) {
-                continue;
-            }
-
-            if (!isset($installed['versions'][$packageName]['reference'])) {
-                return null;
-            }
-
-            return $installed['versions'][$packageName]['reference'];
-        }
-
-        throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
-    }
-
-    /**
-     * @param  string      $packageName
-     * @return string|null If the package is being replaced or provided but is not really installed, null will be returned as install path. Packages of type metapackages also have a null install path.
-     */
-    public static function getInstallPath($packageName)
-    {
-        foreach (self::getInstalled() as $installed) {
-            if (!isset($installed['versions'][$packageName])) {
-                continue;
-            }
-
-            return isset($installed['versions'][$packageName]['install_path']) ? $installed['versions'][$packageName]['install_path'] : null;
-        }
-
-        throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
-    }
-
-    /**
-     * @return array
-     * @psalm-return array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}
-     */
-    public static function getRootPackage()
-    {
-        $installed = self::getInstalled();
-
-        return $installed[0]['root'];
-    }
-
-    /**
-     * Returns the raw installed.php data for custom implementations
-     *
-     * @deprecated Use getAllRawData() instead which returns all datasets for all autoloaders present in the process. getRawData only returns the first dataset loaded, which may not be what you expect.
-     * @return array[]
-     * @psalm-return array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>}
-     */
-    public static function getRawData()
-    {
-        @trigger_error('getRawData only returns the first dataset loaded, which may not be what you expect. Use getAllRawData() instead which returns all datasets for all autoloaders present in the process.', E_USER_DEPRECATED);
-
-        if (null === self::$installed) {
-            // only require the installed.php file if this file is loaded from its dumped location,
-            // and not from its source location in the composer/composer package, see https://github.com/composer/composer/issues/9937
-            if (substr(__DIR__, -8, 1) !== 'C') {
-                self::$installed = include __DIR__ . '/installed.php';
-            } else {
-                self::$installed = array();
-            }
-        }
-
-        return self::$installed;
-    }
-
-    /**
-     * Returns the raw data of all installed.php which are currently loaded for custom implementations
-     *
-     * @return array[]
-     * @psalm-return list<array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>}>
-     */
-    public static function getAllRawData()
-    {
-        return self::getInstalled();
-    }
-
-    /**
-     * Lets you reload the static array from another file
-     *
-     * This is only useful for complex integrations in which a project needs to use
-     * this class but then also needs to execute another project's autoloader in process,
-     * and wants to ensure both projects have access to their version of installed.php.
-     *
-     * A typical case would be PHPUnit, where it would need to make sure it reads all
-     * the data it needs from this class, then call reload() with
-     * `require $CWD/vendor/composer/installed.php` (or similar) as input to make sure
-     * the project in which it runs can then also use this class safely, without
-     * interference between PHPUnit's dependencies and the project's dependencies.
-     *
-     * @param  array[] $data A vendor/composer/installed.php data set
-     * @return void
-     *
-     * @psalm-param array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>} $data
-     */
-    public static function reload($data)
-    {
-        self::$installed = $data;
-        self::$installedByVendor = array();
-    }
-
-    /**
-     * @return array[]
-     * @psalm-return list<array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>}>
-     */
-    private static function getInstalled()
-    {
-        if (null === self::$canGetVendors) {
-            self::$canGetVendors = method_exists('Composer\Autoload\ClassLoader', 'getRegisteredLoaders');
-        }
-
-        $installed = array();
-
-        if (self::$canGetVendors) {
-            foreach (ClassLoader::getRegisteredLoaders() as $vendorDir => $loader) {
-                if (isset(self::$installedByVendor[$vendorDir])) {
-                    $installed[] = self::$installedByVendor[$vendorDir];
-                } elseif (is_file($vendorDir.'/composer/installed.php')) {
-                    /** @var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>} $required */
-                    $required = require $vendorDir.'/composer/installed.php';
-                    $installed[] = self::$installedByVendor[$vendorDir] = $required;
-                    if (null === self::$installed && strtr($vendorDir.'/composer', '\\', '/') === strtr(__DIR__, '\\', '/')) {
-                        self::$installed = $installed[count($installed) - 1];
-                    }
-                }
-            }
-        }
-
-        if (null === self::$installed) {
-            // only require the installed.php file if this file is loaded from its dumped location,
-            // and not from its source location in the composer/composer package, see https://github.com/composer/composer/issues/9937
-            if (substr(__DIR__, -8, 1) !== 'C') {
-                /** @var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>} $required */
-                $required = require __DIR__ . '/installed.php';
-                self::$installed = $required;
-            } else {
-                self::$installed = array();
-            }
-        }
-
-        if (self::$installed !== array()) {
-            $installed[] = self::$installed;
-        }
-
-        return $installed;
-    }
-}

+ 0 - 21
vendor/composer/LICENSE

@@ -1,21 +0,0 @@
-
-Copyright (c) Nils Adermann, Jordi Boggiano
-
-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.
-

+ 0 - 39
vendor/composer/autoload_files.php

@@ -1,39 +0,0 @@
-<?php
-
-// autoload_files.php @generated by Composer
-
-$vendorDir = dirname(__DIR__);
-$baseDir = dirname($vendorDir);
-
-return array(
-    '9c7a683baffd24f5595c1dc5f5273030' => $vendorDir . '/hyperf/engine/src/Functions.php',
-    'f0334cce41da231af374e1df9dc548c9' => $vendorDir . '/hyperf/collection/src/Functions.php',
-    '3ac0459b8c20ccf3a7319b7cba59c914' => $vendorDir . '/hyperf/tappable/src/Functions.php',
-    'e45471c4161dad9820dfacbc5735c3f5' => $vendorDir . '/hyperf/stringable/src/Functions.php',
-    '6c17036e92b20070dc14f563311a06a3' => $vendorDir . '/hyperf/coroutine/src/Functions.php',
-    'ffe5873ab2256a6c3a4c92b3488528cb' => $vendorDir . '/hyperf/support/src/Functions.php',
-    '0e6d7bf4a5811bfa5cf40c5ccd6fae6a' => $vendorDir . '/symfony/polyfill-mbstring/bootstrap.php',
-    '6e3fae29631ef280660b3cdad06f25a8' => $vendorDir . '/symfony/deprecation-contracts/function.php',
-    '3ef245790d3389cf1f32f98f11abff00' => $vendorDir . '/hyperf/coordinator/src/Functions.php',
-    '320cde22f66dd4f5d3fd621d3e88b98f' => $vendorDir . '/symfony/polyfill-ctype/bootstrap.php',
-    'a4a119a56e50fbb293281d9a48007e0e' => $vendorDir . '/symfony/polyfill-php80/bootstrap.php',
-    '7b11c4dc42b3b3023073cb14e519683c' => $vendorDir . '/ralouphie/getallheaders/src/getallheaders.php',
-    'ad155f8f1cf0d418fe49e248db8c661b' => $vendorDir . '/react/promise/src/functions_include.php',
-    '8825ede83f2f289127722d4e842cf7e8' => $vendorDir . '/symfony/polyfill-intl-grapheme/bootstrap.php',
-    'e69f7f6ee287b969198c3c9d6777bd38' => $vendorDir . '/symfony/polyfill-intl-normalizer/bootstrap.php',
-    'b6b991a57620e2fb6b2f66f03fe9ddc2' => $vendorDir . '/symfony/string/Resources/functions.php',
-    '37a3dc5111fe8f707ab4c132ef1dbc62' => $vendorDir . '/guzzlehttp/guzzle/src/functions_include.php',
-    'a1105708a18b76903365ca1c4aa61b02' => $vendorDir . '/symfony/translation/Resources/functions.php',
-    '253c157292f75eb38082b5acb06f3f01' => $vendorDir . '/nikic/fast-route/src/functions.php',
-    '6124b4c8570aa390c21fafd04a26c69f' => $vendorDir . '/myclabs/deep-copy/src/DeepCopy/deep_copy.php',
-    '662a729f963d39afe703c9d9b7ab4a8c' => $vendorDir . '/symfony/polyfill-php83/bootstrap.php',
-    'b067bc7112e384b61c701452d53a14a8' => $vendorDir . '/mtdowling/jmespath.php/src/JmesPath.php',
-    'ec07570ca5a812141189b1fa81503674' => $vendorDir . '/phpunit/phpunit/src/Framework/Assert/Functions.php',
-    '23c18046f52bef3eea034657bafda50f' => $vendorDir . '/symfony/polyfill-php81/bootstrap.php',
-    '8a9dc1de0ca7e01f3e08231539562f61' => $vendorDir . '/aws/aws-sdk-php/src/functions.php',
-    'fdea4480df6c5882835d3b60a113de4d' => $vendorDir . '/hyperf/config/src/Functions.php',
-    'ae66016dcf8c35ea526fcf705881b4ed' => $vendorDir . '/hyperf/watcher/src/Functions.php',
-    'c72349b1fe8d0deeedd3a52e8aa814d8' => $vendorDir . '/mockery/mockery/library/helpers.php',
-    'ce9671a430e4846b44e1c68c7611f9f5' => $vendorDir . '/mockery/mockery/library/Mockery.php',
-    '9b38cf48e83f5d8f60375221cd213eee' => $vendorDir . '/phpstan/phpstan/bootstrap.php',
-);

+ 0 - 9
vendor/composer/autoload_namespaces.php

@@ -1,9 +0,0 @@
-<?php
-
-// autoload_namespaces.php @generated by Composer
-
-$vendorDir = dirname(__DIR__);
-$baseDir = dirname($vendorDir);
-
-return array(
-);

+ 0 - 133
vendor/composer/autoload_psr4.php

@@ -1,133 +0,0 @@
-<?php
-
-// autoload_psr4.php @generated by Composer
-
-$vendorDir = dirname(__DIR__);
-$baseDir = dirname($vendorDir);
-
-return array(
-    'Symfony\\Polyfill\\Php83\\' => array($vendorDir . '/symfony/polyfill-php83'),
-    'Symfony\\Polyfill\\Php81\\' => array($vendorDir . '/symfony/polyfill-php81'),
-    'Symfony\\Polyfill\\Php80\\' => array($vendorDir . '/symfony/polyfill-php80'),
-    'Symfony\\Polyfill\\Mbstring\\' => array($vendorDir . '/symfony/polyfill-mbstring'),
-    'Symfony\\Polyfill\\Intl\\Normalizer\\' => array($vendorDir . '/symfony/polyfill-intl-normalizer'),
-    'Symfony\\Polyfill\\Intl\\Grapheme\\' => array($vendorDir . '/symfony/polyfill-intl-grapheme'),
-    'Symfony\\Polyfill\\Ctype\\' => array($vendorDir . '/symfony/polyfill-ctype'),
-    'Symfony\\Contracts\\Translation\\' => array($vendorDir . '/symfony/translation-contracts'),
-    'Symfony\\Contracts\\Service\\' => array($vendorDir . '/symfony/service-contracts'),
-    'Symfony\\Contracts\\EventDispatcher\\' => array($vendorDir . '/symfony/event-dispatcher-contracts'),
-    'Symfony\\Component\\Translation\\' => array($vendorDir . '/symfony/translation'),
-    'Symfony\\Component\\String\\' => array($vendorDir . '/symfony/string'),
-    'Symfony\\Component\\Stopwatch\\' => array($vendorDir . '/symfony/stopwatch'),
-    'Symfony\\Component\\Process\\' => array($vendorDir . '/symfony/process'),
-    'Symfony\\Component\\OptionsResolver\\' => array($vendorDir . '/symfony/options-resolver'),
-    'Symfony\\Component\\HttpFoundation\\' => array($vendorDir . '/symfony/http-foundation'),
-    'Symfony\\Component\\Finder\\' => array($vendorDir . '/symfony/finder'),
-    'Symfony\\Component\\Filesystem\\' => array($vendorDir . '/symfony/filesystem'),
-    'Symfony\\Component\\EventDispatcher\\' => array($vendorDir . '/symfony/event-dispatcher'),
-    'Symfony\\Component\\Console\\' => array($vendorDir . '/symfony/console'),
-    'Swow\\Psr7\\Message\\' => array($vendorDir . '/swow/psr7-plus/src/Message'),
-    'React\\Stream\\' => array($vendorDir . '/react/stream/src'),
-    'React\\Socket\\' => array($vendorDir . '/react/socket/src'),
-    'React\\Promise\\' => array($vendorDir . '/react/promise/src'),
-    'React\\EventLoop\\' => array($vendorDir . '/react/event-loop/src'),
-    'React\\Dns\\' => array($vendorDir . '/react/dns/src'),
-    'React\\ChildProcess\\' => array($vendorDir . '/react/child-process/src'),
-    'React\\Cache\\' => array($vendorDir . '/react/cache/src'),
-    'Psr\\SimpleCache\\' => array($vendorDir . '/psr/simple-cache/src'),
-    'Psr\\Log\\' => array($vendorDir . '/psr/log/src'),
-    'Psr\\Http\\Server\\' => array($vendorDir . '/psr/http-server-handler/src', $vendorDir . '/psr/http-server-middleware/src'),
-    'Psr\\Http\\Message\\' => array($vendorDir . '/psr/http-factory/src', $vendorDir . '/psr/http-message/src'),
-    'Psr\\Http\\Client\\' => array($vendorDir . '/psr/http-client/src'),
-    'Psr\\EventDispatcher\\' => array($vendorDir . '/psr/event-dispatcher/src'),
-    'Psr\\Container\\' => array($vendorDir . '/psr/container/src'),
-    'Psr\\Clock\\' => array($vendorDir . '/psr/clock/src'),
-    'Psr\\Cache\\' => array($vendorDir . '/psr/cache/src'),
-    'PhpParser\\' => array($vendorDir . '/nikic/php-parser/lib/PhpParser'),
-    'PhpOption\\' => array($vendorDir . '/phpoption/phpoption/src/PhpOption'),
-    'PhpDocReader\\' => array($vendorDir . '/php-di/phpdoc-reader/src/PhpDocReader'),
-    'PhpCsFixer\\' => array($vendorDir . '/friendsofphp/php-cs-fixer/src'),
-    'Monolog\\' => array($vendorDir . '/monolog/monolog/src/Monolog'),
-    'Mockery\\' => array($vendorDir . '/mockery/mockery/library/Mockery'),
-    'MathPHP\\' => array($vendorDir . '/markrogoyski/math-php/src'),
-    'Laminas\\Stdlib\\' => array($vendorDir . '/laminas/laminas-stdlib/src'),
-    'Laminas\\Mime\\' => array($vendorDir . '/laminas/laminas-mime/src'),
-    'JmesPath\\' => array($vendorDir . '/mtdowling/jmespath.php/src'),
-    'JetBrains\\PhpStorm\\' => array($vendorDir . '/jetbrains/phpstorm-attributes/src'),
-    'Hyperf\\Watcher\\' => array($vendorDir . '/hyperf/watcher/src'),
-    'Hyperf\\Testing\\' => array($vendorDir . '/hyperf/testing/src'),
-    'Hyperf\\Tappable\\' => array($vendorDir . '/hyperf/tappable/src'),
-    'Hyperf\\Support\\' => array($vendorDir . '/hyperf/support/src'),
-    'Hyperf\\Stringable\\' => array($vendorDir . '/hyperf/stringable/src'),
-    'Hyperf\\Stdlib\\' => array($vendorDir . '/hyperf/stdlib/src'),
-    'Hyperf\\ServiceGovernance\\' => array($vendorDir . '/hyperf/service-governance/src'),
-    'Hyperf\\ServiceGovernanceNacos\\' => array($vendorDir . '/hyperf/service-governance-nacos/src'),
-    'Hyperf\\ServiceGovernanceConsul\\' => array($vendorDir . '/hyperf/service-governance-consul/src'),
-    'Hyperf\\Server\\' => array($vendorDir . '/hyperf/server/src'),
-    'Hyperf\\Serializer\\' => array($vendorDir . '/hyperf/serializer/src'),
-    'Hyperf\\Rpc\\' => array($vendorDir . '/hyperf/rpc/src'),
-    'Hyperf\\RpcServer\\' => array($vendorDir . '/hyperf/rpc-server/src'),
-    'Hyperf\\Redis\\' => array($vendorDir . '/hyperf/redis/src'),
-    'Hyperf\\Process\\' => array($vendorDir . '/hyperf/process/src'),
-    'Hyperf\\Pool\\' => array($vendorDir . '/hyperf/pool/src'),
-    'Hyperf\\Pipeline\\' => array($vendorDir . '/hyperf/pipeline/src'),
-    'Hyperf\\Paginator\\' => array($vendorDir . '/hyperf/paginator/src'),
-    'Hyperf\\Nacos\\' => array($vendorDir . '/hyperf/nacos/src'),
-    'Hyperf\\ModelListener\\' => array($vendorDir . '/hyperf/model-listener/src'),
-    'Hyperf\\Memory\\' => array($vendorDir . '/hyperf/memory/src'),
-    'Hyperf\\Macroable\\' => array($vendorDir . '/hyperf/macroable/src'),
-    'Hyperf\\Logger\\' => array($vendorDir . '/hyperf/logger/src'),
-    'Hyperf\\LoadBalancer\\' => array($vendorDir . '/hyperf/load-balancer/src'),
-    'Hyperf\\JsonRpc\\' => array($vendorDir . '/hyperf/json-rpc/src'),
-    'Hyperf\\HttpServer\\' => array($vendorDir . '/hyperf/http-server/src'),
-    'Hyperf\\HttpMessage\\' => array($vendorDir . '/hyperf/http-message/src'),
-    'Hyperf\\Guzzle\\' => array($vendorDir . '/hyperf/guzzle/src'),
-    'Hyperf\\Framework\\' => array($vendorDir . '/hyperf/framework/src'),
-    'Hyperf\\ExceptionHandler\\' => array($vendorDir . '/hyperf/exception-handler/src'),
-    'Hyperf\\Event\\' => array($vendorDir . '/hyperf/event/src'),
-    'Hyperf\\Engine\\Contract\\' => array($vendorDir . '/hyperf/engine-contract/src'),
-    'Hyperf\\Engine\\' => array($vendorDir . '/hyperf/engine/src'),
-    'Hyperf\\Dispatcher\\' => array($vendorDir . '/hyperf/dispatcher/src'),
-    'Hyperf\\Di\\' => array($vendorDir . '/hyperf/di/src'),
-    'Hyperf\\Devtool\\' => array($vendorDir . '/hyperf/devtool/src'),
-    'Hyperf\\DbConnection\\' => array($vendorDir . '/hyperf/db-connection/src'),
-    'Hyperf\\Database\\' => array($vendorDir . '/hyperf/database/src'),
-    'Hyperf\\Coroutine\\' => array($vendorDir . '/hyperf/coroutine/src'),
-    'Hyperf\\Coordinator\\' => array($vendorDir . '/hyperf/coordinator/src'),
-    'Hyperf\\Contract\\' => array($vendorDir . '/hyperf/contract/src'),
-    'Hyperf\\Context\\' => array($vendorDir . '/hyperf/context/src'),
-    'Hyperf\\Consul\\' => array($vendorDir . '/hyperf/consul/src'),
-    'Hyperf\\Constants\\' => array($vendorDir . '/hyperf/constants/src'),
-    'Hyperf\\Config\\' => array($vendorDir . '/hyperf/config/src'),
-    'Hyperf\\ConfigNacos\\' => array($vendorDir . '/hyperf/config-nacos/src'),
-    'Hyperf\\ConfigCenter\\' => array($vendorDir . '/hyperf/config-center/src'),
-    'Hyperf\\Conditionable\\' => array($vendorDir . '/hyperf/conditionable/src'),
-    'Hyperf\\Command\\' => array($vendorDir . '/hyperf/command/src'),
-    'Hyperf\\Collection\\' => array($vendorDir . '/hyperf/collection/src'),
-    'Hyperf\\Codec\\' => array($vendorDir . '/hyperf/codec/src'),
-    'Hyperf\\CodeParser\\' => array($vendorDir . '/hyperf/code-parser/src'),
-    'Hyperf\\Cache\\' => array($vendorDir . '/hyperf/cache/src'),
-    'HyperfTest\\' => array($baseDir . '/test'),
-    'GuzzleHttp\\Psr7\\' => array($vendorDir . '/guzzlehttp/psr7/src'),
-    'GuzzleHttp\\Promise\\' => array($vendorDir . '/guzzlehttp/promises/src'),
-    'GuzzleHttp\\' => array($vendorDir . '/guzzlehttp/guzzle/src'),
-    'GrahamCampbell\\ResultType\\' => array($vendorDir . '/graham-campbell/result-type/src'),
-    'Fig\\Http\\Message\\' => array($vendorDir . '/fig/http-message-util/src'),
-    'Fidry\\CpuCoreCounter\\' => array($vendorDir . '/fidry/cpu-core-counter/src'),
-    'FastRoute\\' => array($vendorDir . '/nikic/fast-route/src'),
-    'Evenement\\' => array($vendorDir . '/evenement/evenement/src'),
-    'Dotenv\\' => array($vendorDir . '/vlucas/phpdotenv/src'),
-    'Doctrine\\Instantiator\\' => array($vendorDir . '/doctrine/instantiator/src/Doctrine/Instantiator'),
-    'Doctrine\\Inflector\\' => array($vendorDir . '/doctrine/inflector/lib/Doctrine/Inflector'),
-    'Doctrine\\Common\\Lexer\\' => array($vendorDir . '/doctrine/lexer/src'),
-    'Doctrine\\Common\\Annotations\\' => array($vendorDir . '/doctrine/annotations/lib/Doctrine/Common/Annotations'),
-    'DeepCopy\\' => array($vendorDir . '/myclabs/deep-copy/src/DeepCopy'),
-    'Composer\\XdebugHandler\\' => array($vendorDir . '/composer/xdebug-handler/src'),
-    'Composer\\Semver\\' => array($vendorDir . '/composer/semver/src'),
-    'Composer\\Pcre\\' => array($vendorDir . '/composer/pcre/src'),
-    'Clue\\React\\NDJson\\' => array($vendorDir . '/clue/ndjson-react/src'),
-    'Carbon\\Doctrine\\' => array($vendorDir . '/carbonphp/carbon-doctrine-types/src/Carbon/Doctrine'),
-    'Carbon\\' => array($vendorDir . '/nesbot/carbon/src/Carbon'),
-    'Aws\\' => array($vendorDir . '/aws/aws-sdk-php/src'),
-    'App\\' => array($baseDir . '/app'),
-);

+ 0 - 50
vendor/composer/autoload_real.php

@@ -1,50 +0,0 @@
-<?php
-
-// autoload_real.php @generated by Composer
-
-class ComposerAutoloaderInit88f2a4d4a4e81dc7d415bcdf39930654
-{
-    private static $loader;
-
-    public static function loadClassLoader($class)
-    {
-        if ('Composer\Autoload\ClassLoader' === $class) {
-            require __DIR__ . '/ClassLoader.php';
-        }
-    }
-
-    /**
-     * @return \Composer\Autoload\ClassLoader
-     */
-    public static function getLoader()
-    {
-        if (null !== self::$loader) {
-            return self::$loader;
-        }
-
-        require __DIR__ . '/platform_check.php';
-
-        spl_autoload_register(array('ComposerAutoloaderInit88f2a4d4a4e81dc7d415bcdf39930654', 'loadClassLoader'), true, true);
-        self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(__DIR__));
-        spl_autoload_unregister(array('ComposerAutoloaderInit88f2a4d4a4e81dc7d415bcdf39930654', 'loadClassLoader'));
-
-        require __DIR__ . '/autoload_static.php';
-        call_user_func(\Composer\Autoload\ComposerStaticInit88f2a4d4a4e81dc7d415bcdf39930654::getInitializer($loader));
-
-        $loader->register(true);
-
-        $filesToLoad = \Composer\Autoload\ComposerStaticInit88f2a4d4a4e81dc7d415bcdf39930654::$files;
-        $requireFile = \Closure::bind(static function ($fileIdentifier, $file) {
-            if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
-                $GLOBALS['__composer_autoload_files'][$fileIdentifier] = true;
-
-                require $file;
-            }
-        }, null, null);
-        foreach ($filesToLoad as $fileIdentifier => $file) {
-            $requireFile($fileIdentifier, $file);
-        }
-
-        return $loader;
-    }
-}

+ 0 - 11064
vendor/composer/installed.json

@@ -1,11064 +0,0 @@
-{
-    "packages": [
-        {
-            "name": "aws/aws-crt-php",
-            "version": "v1.2.7",
-            "version_normalized": "1.2.7.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/awslabs/aws-crt-php.git",
-                "reference": "d71d9906c7bb63a28295447ba12e74723bd3730e"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/awslabs/aws-crt-php/zipball/d71d9906c7bb63a28295447ba12e74723bd3730e",
-                "reference": "d71d9906c7bb63a28295447ba12e74723bd3730e",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=5.5"
-            },
-            "require-dev": {
-                "phpunit/phpunit": "^4.8.35||^5.6.3||^9.5",
-                "yoast/phpunit-polyfills": "^1.0"
-            },
-            "suggest": {
-                "ext-awscrt": "Make sure you install awscrt native extension to use any of the functionality."
-            },
-            "time": "2024-10-18T22:15:13+00:00",
-            "type": "library",
-            "installation-source": "dist",
-            "autoload": {
-                "classmap": [
-                    "src/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "Apache-2.0"
-            ],
-            "authors": [
-                {
-                    "name": "AWS SDK Common Runtime Team",
-                    "email": "aws-sdk-common-runtime@amazon.com"
-                }
-            ],
-            "description": "AWS Common Runtime for PHP",
-            "homepage": "https://github.com/awslabs/aws-crt-php",
-            "keywords": [
-                "amazon",
-                "aws",
-                "crt",
-                "sdk"
-            ],
-            "support": {
-                "issues": "https://github.com/awslabs/aws-crt-php/issues",
-                "source": "https://github.com/awslabs/aws-crt-php/tree/v1.2.7"
-            },
-            "install-path": "../aws/aws-crt-php"
-        },
-        {
-            "name": "aws/aws-sdk-php",
-            "version": "3.336.6",
-            "version_normalized": "3.336.6.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/aws/aws-sdk-php.git",
-                "reference": "0a99dab427f0a1c082775301141aeac3558691ad"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/0a99dab427f0a1c082775301141aeac3558691ad",
-                "reference": "0a99dab427f0a1c082775301141aeac3558691ad",
-                "shasum": ""
-            },
-            "require": {
-                "aws/aws-crt-php": "^1.2.3",
-                "ext-json": "*",
-                "ext-pcre": "*",
-                "ext-simplexml": "*",
-                "guzzlehttp/guzzle": "^6.5.8 || ^7.4.5",
-                "guzzlehttp/promises": "^1.4.0 || ^2.0",
-                "guzzlehttp/psr7": "^1.9.1 || ^2.4.5",
-                "mtdowling/jmespath.php": "^2.6",
-                "php": ">=7.2.5",
-                "psr/http-message": "^1.0 || ^2.0"
-            },
-            "require-dev": {
-                "andrewsville/php-token-reflection": "^1.4",
-                "aws/aws-php-sns-message-validator": "~1.0",
-                "behat/behat": "~3.0",
-                "composer/composer": "^1.10.22",
-                "dms/phpunit-arraysubset-asserts": "^0.4.0",
-                "doctrine/cache": "~1.4",
-                "ext-dom": "*",
-                "ext-openssl": "*",
-                "ext-pcntl": "*",
-                "ext-sockets": "*",
-                "nette/neon": "^2.3",
-                "paragonie/random_compat": ">= 2",
-                "phpunit/phpunit": "^5.6.3 || ^8.5 || ^9.5",
-                "psr/cache": "^1.0 || ^2.0 || ^3.0",
-                "psr/simple-cache": "^1.0 || ^2.0 || ^3.0",
-                "sebastian/comparator": "^1.2.3 || ^4.0",
-                "yoast/phpunit-polyfills": "^1.0"
-            },
-            "suggest": {
-                "aws/aws-php-sns-message-validator": "To validate incoming SNS notifications",
-                "doctrine/cache": "To use the DoctrineCacheAdapter",
-                "ext-curl": "To send requests using cURL",
-                "ext-openssl": "Allows working with CloudFront private distributions and verifying received SNS messages",
-                "ext-sockets": "To use client-side monitoring"
-            },
-            "time": "2024-12-28T04:16:13+00:00",
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "3.0-dev"
-                }
-            },
-            "installation-source": "dist",
-            "autoload": {
-                "files": [
-                    "src/functions.php"
-                ],
-                "psr-4": {
-                    "Aws\\": "src/"
-                },
-                "exclude-from-classmap": [
-                    "src/data/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "Apache-2.0"
-            ],
-            "authors": [
-                {
-                    "name": "Amazon Web Services",
-                    "homepage": "http://aws.amazon.com"
-                }
-            ],
-            "description": "AWS SDK for PHP - Use Amazon Web Services in your PHP project",
-            "homepage": "http://aws.amazon.com/sdkforphp",
-            "keywords": [
-                "amazon",
-                "aws",
-                "cloud",
-                "dynamodb",
-                "ec2",
-                "glacier",
-                "s3",
-                "sdk"
-            ],
-            "support": {
-                "forum": "https://forums.aws.amazon.com/forum.jspa?forumID=80",
-                "issues": "https://github.com/aws/aws-sdk-php/issues",
-                "source": "https://github.com/aws/aws-sdk-php/tree/3.336.6"
-            },
-            "install-path": "../aws/aws-sdk-php"
-        },
-        {
-            "name": "carbonphp/carbon-doctrine-types",
-            "version": "3.2.0",
-            "version_normalized": "3.2.0.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/CarbonPHP/carbon-doctrine-types.git",
-                "reference": "18ba5ddfec8976260ead6e866180bd5d2f71aa1d"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/CarbonPHP/carbon-doctrine-types/zipball/18ba5ddfec8976260ead6e866180bd5d2f71aa1d",
-                "reference": "18ba5ddfec8976260ead6e866180bd5d2f71aa1d",
-                "shasum": ""
-            },
-            "require": {
-                "php": "^8.1"
-            },
-            "conflict": {
-                "doctrine/dbal": "<4.0.0 || >=5.0.0"
-            },
-            "require-dev": {
-                "doctrine/dbal": "^4.0.0",
-                "nesbot/carbon": "^2.71.0 || ^3.0.0",
-                "phpunit/phpunit": "^10.3"
-            },
-            "time": "2024-02-09T16:56:22+00:00",
-            "type": "library",
-            "installation-source": "dist",
-            "autoload": {
-                "psr-4": {
-                    "Carbon\\Doctrine\\": "src/Carbon/Doctrine/"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "authors": [
-                {
-                    "name": "KyleKatarn",
-                    "email": "kylekatarnls@gmail.com"
-                }
-            ],
-            "description": "Types to use Carbon in Doctrine",
-            "keywords": [
-                "carbon",
-                "date",
-                "datetime",
-                "doctrine",
-                "time"
-            ],
-            "support": {
-                "issues": "https://github.com/CarbonPHP/carbon-doctrine-types/issues",
-                "source": "https://github.com/CarbonPHP/carbon-doctrine-types/tree/3.2.0"
-            },
-            "funding": [
-                {
-                    "url": "https://github.com/kylekatarnls",
-                    "type": "github"
-                },
-                {
-                    "url": "https://opencollective.com/Carbon",
-                    "type": "open_collective"
-                },
-                {
-                    "url": "https://tidelift.com/funding/github/packagist/nesbot/carbon",
-                    "type": "tidelift"
-                }
-            ],
-            "install-path": "../carbonphp/carbon-doctrine-types"
-        },
-        {
-            "name": "clue/ndjson-react",
-            "version": "v1.3.0",
-            "version_normalized": "1.3.0.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/clue/reactphp-ndjson.git",
-                "reference": "392dc165fce93b5bb5c637b67e59619223c931b0"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/clue/reactphp-ndjson/zipball/392dc165fce93b5bb5c637b67e59619223c931b0",
-                "reference": "392dc165fce93b5bb5c637b67e59619223c931b0",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=5.3",
-                "react/stream": "^1.2"
-            },
-            "require-dev": {
-                "phpunit/phpunit": "^9.5 || ^5.7 || ^4.8.35",
-                "react/event-loop": "^1.2"
-            },
-            "time": "2022-12-23T10:58:28+00:00",
-            "type": "library",
-            "installation-source": "dist",
-            "autoload": {
-                "psr-4": {
-                    "Clue\\React\\NDJson\\": "src/"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "authors": [
-                {
-                    "name": "Christian Lück",
-                    "email": "christian@clue.engineering"
-                }
-            ],
-            "description": "Streaming newline-delimited JSON (NDJSON) parser and encoder for ReactPHP.",
-            "homepage": "https://github.com/clue/reactphp-ndjson",
-            "keywords": [
-                "NDJSON",
-                "json",
-                "jsonlines",
-                "newline",
-                "reactphp",
-                "streaming"
-            ],
-            "support": {
-                "issues": "https://github.com/clue/reactphp-ndjson/issues",
-                "source": "https://github.com/clue/reactphp-ndjson/tree/v1.3.0"
-            },
-            "funding": [
-                {
-                    "url": "https://clue.engineering/support",
-                    "type": "custom"
-                },
-                {
-                    "url": "https://github.com/clue",
-                    "type": "github"
-                }
-            ],
-            "install-path": "../clue/ndjson-react"
-        },
-        {
-            "name": "composer/pcre",
-            "version": "3.1.4",
-            "version_normalized": "3.1.4.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/composer/pcre.git",
-                "reference": "04229f163664973f68f38f6f73d917799168ef24"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/composer/pcre/zipball/04229f163664973f68f38f6f73d917799168ef24",
-                "reference": "04229f163664973f68f38f6f73d917799168ef24",
-                "shasum": ""
-            },
-            "require": {
-                "php": "^7.4 || ^8.0"
-            },
-            "require-dev": {
-                "phpstan/phpstan": "^1.3",
-                "phpstan/phpstan-strict-rules": "^1.1",
-                "symfony/phpunit-bridge": "^5"
-            },
-            "time": "2024-05-27T13:40:54+00:00",
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-main": "3.x-dev"
-                }
-            },
-            "installation-source": "dist",
-            "autoload": {
-                "psr-4": {
-                    "Composer\\Pcre\\": "src"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "authors": [
-                {
-                    "name": "Jordi Boggiano",
-                    "email": "j.boggiano@seld.be",
-                    "homepage": "http://seld.be"
-                }
-            ],
-            "description": "PCRE wrapping library that offers type-safe preg_* replacements.",
-            "keywords": [
-                "PCRE",
-                "preg",
-                "regex",
-                "regular expression"
-            ],
-            "support": {
-                "issues": "https://github.com/composer/pcre/issues",
-                "source": "https://github.com/composer/pcre/tree/3.1.4"
-            },
-            "funding": [
-                {
-                    "url": "https://packagist.com",
-                    "type": "custom"
-                },
-                {
-                    "url": "https://github.com/composer",
-                    "type": "github"
-                },
-                {
-                    "url": "https://tidelift.com/funding/github/packagist/composer/composer",
-                    "type": "tidelift"
-                }
-            ],
-            "install-path": "./pcre"
-        },
-        {
-            "name": "composer/semver",
-            "version": "3.4.0",
-            "version_normalized": "3.4.0.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/composer/semver.git",
-                "reference": "35e8d0af4486141bc745f23a29cc2091eb624a32"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/composer/semver/zipball/35e8d0af4486141bc745f23a29cc2091eb624a32",
-                "reference": "35e8d0af4486141bc745f23a29cc2091eb624a32",
-                "shasum": ""
-            },
-            "require": {
-                "php": "^5.3.2 || ^7.0 || ^8.0"
-            },
-            "require-dev": {
-                "phpstan/phpstan": "^1.4",
-                "symfony/phpunit-bridge": "^4.2 || ^5"
-            },
-            "time": "2023-08-31T09:50:34+00:00",
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-main": "3.x-dev"
-                }
-            },
-            "installation-source": "dist",
-            "autoload": {
-                "psr-4": {
-                    "Composer\\Semver\\": "src"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "authors": [
-                {
-                    "name": "Nils Adermann",
-                    "email": "naderman@naderman.de",
-                    "homepage": "http://www.naderman.de"
-                },
-                {
-                    "name": "Jordi Boggiano",
-                    "email": "j.boggiano@seld.be",
-                    "homepage": "http://seld.be"
-                },
-                {
-                    "name": "Rob Bast",
-                    "email": "rob.bast@gmail.com",
-                    "homepage": "http://robbast.nl"
-                }
-            ],
-            "description": "Semver library that offers utilities, version constraint parsing and validation.",
-            "keywords": [
-                "semantic",
-                "semver",
-                "validation",
-                "versioning"
-            ],
-            "support": {
-                "irc": "ircs://irc.libera.chat:6697/composer",
-                "issues": "https://github.com/composer/semver/issues",
-                "source": "https://github.com/composer/semver/tree/3.4.0"
-            },
-            "funding": [
-                {
-                    "url": "https://packagist.com",
-                    "type": "custom"
-                },
-                {
-                    "url": "https://github.com/composer",
-                    "type": "github"
-                },
-                {
-                    "url": "https://tidelift.com/funding/github/packagist/composer/composer",
-                    "type": "tidelift"
-                }
-            ],
-            "install-path": "./semver"
-        },
-        {
-            "name": "composer/xdebug-handler",
-            "version": "3.0.5",
-            "version_normalized": "3.0.5.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/composer/xdebug-handler.git",
-                "reference": "6c1925561632e83d60a44492e0b344cf48ab85ef"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/6c1925561632e83d60a44492e0b344cf48ab85ef",
-                "reference": "6c1925561632e83d60a44492e0b344cf48ab85ef",
-                "shasum": ""
-            },
-            "require": {
-                "composer/pcre": "^1 || ^2 || ^3",
-                "php": "^7.2.5 || ^8.0",
-                "psr/log": "^1 || ^2 || ^3"
-            },
-            "require-dev": {
-                "phpstan/phpstan": "^1.0",
-                "phpstan/phpstan-strict-rules": "^1.1",
-                "phpunit/phpunit": "^8.5 || ^9.6 || ^10.5"
-            },
-            "time": "2024-05-06T16:37:16+00:00",
-            "type": "library",
-            "installation-source": "dist",
-            "autoload": {
-                "psr-4": {
-                    "Composer\\XdebugHandler\\": "src"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "authors": [
-                {
-                    "name": "John Stevenson",
-                    "email": "john-stevenson@blueyonder.co.uk"
-                }
-            ],
-            "description": "Restarts a process without Xdebug.",
-            "keywords": [
-                "Xdebug",
-                "performance"
-            ],
-            "support": {
-                "irc": "ircs://irc.libera.chat:6697/composer",
-                "issues": "https://github.com/composer/xdebug-handler/issues",
-                "source": "https://github.com/composer/xdebug-handler/tree/3.0.5"
-            },
-            "funding": [
-                {
-                    "url": "https://packagist.com",
-                    "type": "custom"
-                },
-                {
-                    "url": "https://github.com/composer",
-                    "type": "github"
-                },
-                {
-                    "url": "https://tidelift.com/funding/github/packagist/composer/composer",
-                    "type": "tidelift"
-                }
-            ],
-            "install-path": "./xdebug-handler"
-        },
-        {
-            "name": "doctrine/annotations",
-            "version": "2.0.1",
-            "version_normalized": "2.0.1.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/doctrine/annotations.git",
-                "reference": "e157ef3f3124bbf6fe7ce0ffd109e8a8ef284e7f"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/doctrine/annotations/zipball/e157ef3f3124bbf6fe7ce0ffd109e8a8ef284e7f",
-                "reference": "e157ef3f3124bbf6fe7ce0ffd109e8a8ef284e7f",
-                "shasum": ""
-            },
-            "require": {
-                "doctrine/lexer": "^2 || ^3",
-                "ext-tokenizer": "*",
-                "php": "^7.2 || ^8.0",
-                "psr/cache": "^1 || ^2 || ^3"
-            },
-            "require-dev": {
-                "doctrine/cache": "^2.0",
-                "doctrine/coding-standard": "^10",
-                "phpstan/phpstan": "^1.8.0",
-                "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5",
-                "symfony/cache": "^5.4 || ^6",
-                "vimeo/psalm": "^4.10"
-            },
-            "suggest": {
-                "php": "PHP 8.0 or higher comes with attributes, a native replacement for annotations"
-            },
-            "time": "2023-02-02T22:02:53+00:00",
-            "type": "library",
-            "installation-source": "dist",
-            "autoload": {
-                "psr-4": {
-                    "Doctrine\\Common\\Annotations\\": "lib/Doctrine/Common/Annotations"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "authors": [
-                {
-                    "name": "Guilherme Blanco",
-                    "email": "guilhermeblanco@gmail.com"
-                },
-                {
-                    "name": "Roman Borschel",
-                    "email": "roman@code-factory.org"
-                },
-                {
-                    "name": "Benjamin Eberlei",
-                    "email": "kontakt@beberlei.de"
-                },
-                {
-                    "name": "Jonathan Wage",
-                    "email": "jonwage@gmail.com"
-                },
-                {
-                    "name": "Johannes Schmitt",
-                    "email": "schmittjoh@gmail.com"
-                }
-            ],
-            "description": "Docblock Annotations Parser",
-            "homepage": "https://www.doctrine-project.org/projects/annotations.html",
-            "keywords": [
-                "annotations",
-                "docblock",
-                "parser"
-            ],
-            "support": {
-                "issues": "https://github.com/doctrine/annotations/issues",
-                "source": "https://github.com/doctrine/annotations/tree/2.0.1"
-            },
-            "install-path": "../doctrine/annotations"
-        },
-        {
-            "name": "doctrine/inflector",
-            "version": "2.0.10",
-            "version_normalized": "2.0.10.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/doctrine/inflector.git",
-                "reference": "5817d0659c5b50c9b950feb9af7b9668e2c436bc"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/doctrine/inflector/zipball/5817d0659c5b50c9b950feb9af7b9668e2c436bc",
-                "reference": "5817d0659c5b50c9b950feb9af7b9668e2c436bc",
-                "shasum": ""
-            },
-            "require": {
-                "php": "^7.2 || ^8.0"
-            },
-            "require-dev": {
-                "doctrine/coding-standard": "^11.0",
-                "phpstan/phpstan": "^1.8",
-                "phpstan/phpstan-phpunit": "^1.1",
-                "phpstan/phpstan-strict-rules": "^1.3",
-                "phpunit/phpunit": "^8.5 || ^9.5",
-                "vimeo/psalm": "^4.25 || ^5.4"
-            },
-            "time": "2024-02-18T20:23:39+00:00",
-            "type": "library",
-            "installation-source": "dist",
-            "autoload": {
-                "psr-4": {
-                    "Doctrine\\Inflector\\": "lib/Doctrine/Inflector"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "authors": [
-                {
-                    "name": "Guilherme Blanco",
-                    "email": "guilhermeblanco@gmail.com"
-                },
-                {
-                    "name": "Roman Borschel",
-                    "email": "roman@code-factory.org"
-                },
-                {
-                    "name": "Benjamin Eberlei",
-                    "email": "kontakt@beberlei.de"
-                },
-                {
-                    "name": "Jonathan Wage",
-                    "email": "jonwage@gmail.com"
-                },
-                {
-                    "name": "Johannes Schmitt",
-                    "email": "schmittjoh@gmail.com"
-                }
-            ],
-            "description": "PHP Doctrine Inflector is a small library that can perform string manipulations with regard to upper/lowercase and singular/plural forms of words.",
-            "homepage": "https://www.doctrine-project.org/projects/inflector.html",
-            "keywords": [
-                "inflection",
-                "inflector",
-                "lowercase",
-                "manipulation",
-                "php",
-                "plural",
-                "singular",
-                "strings",
-                "uppercase",
-                "words"
-            ],
-            "support": {
-                "issues": "https://github.com/doctrine/inflector/issues",
-                "source": "https://github.com/doctrine/inflector/tree/2.0.10"
-            },
-            "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%2Finflector",
-                    "type": "tidelift"
-                }
-            ],
-            "install-path": "../doctrine/inflector"
-        },
-        {
-            "name": "doctrine/instantiator",
-            "version": "1.5.0",
-            "version_normalized": "1.5.0.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/doctrine/instantiator.git",
-                "reference": "0a0fa9780f5d4e507415a065172d26a98d02047b"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/doctrine/instantiator/zipball/0a0fa9780f5d4e507415a065172d26a98d02047b",
-                "reference": "0a0fa9780f5d4e507415a065172d26a98d02047b",
-                "shasum": ""
-            },
-            "require": {
-                "php": "^7.1 || ^8.0"
-            },
-            "require-dev": {
-                "doctrine/coding-standard": "^9 || ^11",
-                "ext-pdo": "*",
-                "ext-phar": "*",
-                "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"
-            },
-            "time": "2022-12-30T00:15:36+00:00",
-            "type": "library",
-            "installation-source": "dist",
-            "autoload": {
-                "psr-4": {
-                    "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "authors": [
-                {
-                    "name": "Marco Pivetta",
-                    "email": "ocramius@gmail.com",
-                    "homepage": "https://ocramius.github.io/"
-                }
-            ],
-            "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors",
-            "homepage": "https://www.doctrine-project.org/projects/instantiator.html",
-            "keywords": [
-                "constructor",
-                "instantiate"
-            ],
-            "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"
-                }
-            ],
-            "install-path": "../doctrine/instantiator"
-        },
-        {
-            "name": "doctrine/lexer",
-            "version": "3.0.1",
-            "version_normalized": "3.0.1.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/doctrine/lexer.git",
-                "reference": "31ad66abc0fc9e1a1f2d9bc6a42668d2fbbcd6dd"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/doctrine/lexer/zipball/31ad66abc0fc9e1a1f2d9bc6a42668d2fbbcd6dd",
-                "reference": "31ad66abc0fc9e1a1f2d9bc6a42668d2fbbcd6dd",
-                "shasum": ""
-            },
-            "require": {
-                "php": "^8.1"
-            },
-            "require-dev": {
-                "doctrine/coding-standard": "^12",
-                "phpstan/phpstan": "^1.10",
-                "phpunit/phpunit": "^10.5",
-                "psalm/plugin-phpunit": "^0.18.3",
-                "vimeo/psalm": "^5.21"
-            },
-            "time": "2024-02-05T11:56:58+00:00",
-            "type": "library",
-            "installation-source": "dist",
-            "autoload": {
-                "psr-4": {
-                    "Doctrine\\Common\\Lexer\\": "src"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "authors": [
-                {
-                    "name": "Guilherme Blanco",
-                    "email": "guilhermeblanco@gmail.com"
-                },
-                {
-                    "name": "Roman Borschel",
-                    "email": "roman@code-factory.org"
-                },
-                {
-                    "name": "Johannes Schmitt",
-                    "email": "schmittjoh@gmail.com"
-                }
-            ],
-            "description": "PHP Doctrine Lexer parser library that can be used in Top-Down, Recursive Descent Parsers.",
-            "homepage": "https://www.doctrine-project.org/projects/lexer.html",
-            "keywords": [
-                "annotations",
-                "docblock",
-                "lexer",
-                "parser",
-                "php"
-            ],
-            "support": {
-                "issues": "https://github.com/doctrine/lexer/issues",
-                "source": "https://github.com/doctrine/lexer/tree/3.0.1"
-            },
-            "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%2Flexer",
-                    "type": "tidelift"
-                }
-            ],
-            "install-path": "../doctrine/lexer"
-        },
-        {
-            "name": "evenement/evenement",
-            "version": "v3.0.2",
-            "version_normalized": "3.0.2.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/igorw/evenement.git",
-                "reference": "0a16b0d71ab13284339abb99d9d2bd813640efbc"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/igorw/evenement/zipball/0a16b0d71ab13284339abb99d9d2bd813640efbc",
-                "reference": "0a16b0d71ab13284339abb99d9d2bd813640efbc",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=7.0"
-            },
-            "require-dev": {
-                "phpunit/phpunit": "^9 || ^6"
-            },
-            "time": "2023-08-08T05:53:35+00:00",
-            "type": "library",
-            "installation-source": "dist",
-            "autoload": {
-                "psr-4": {
-                    "Evenement\\": "src/"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "authors": [
-                {
-                    "name": "Igor Wiedler",
-                    "email": "igor@wiedler.ch"
-                }
-            ],
-            "description": "Événement is a very simple event dispatching library for PHP",
-            "keywords": [
-                "event-dispatcher",
-                "event-emitter"
-            ],
-            "support": {
-                "issues": "https://github.com/igorw/evenement/issues",
-                "source": "https://github.com/igorw/evenement/tree/v3.0.2"
-            },
-            "install-path": "../evenement/evenement"
-        },
-        {
-            "name": "fidry/cpu-core-counter",
-            "version": "1.1.0",
-            "version_normalized": "1.1.0.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/theofidry/cpu-core-counter.git",
-                "reference": "f92996c4d5c1a696a6a970e20f7c4216200fcc42"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/theofidry/cpu-core-counter/zipball/f92996c4d5c1a696a6a970e20f7c4216200fcc42",
-                "reference": "f92996c4d5c1a696a6a970e20f7c4216200fcc42",
-                "shasum": ""
-            },
-            "require": {
-                "php": "^7.2 || ^8.0"
-            },
-            "require-dev": {
-                "fidry/makefile": "^0.2.0",
-                "fidry/php-cs-fixer-config": "^1.1.2",
-                "phpstan/extension-installer": "^1.2.0",
-                "phpstan/phpstan": "^1.9.2",
-                "phpstan/phpstan-deprecation-rules": "^1.0.0",
-                "phpstan/phpstan-phpunit": "^1.2.2",
-                "phpstan/phpstan-strict-rules": "^1.4.4",
-                "phpunit/phpunit": "^8.5.31 || ^9.5.26",
-                "webmozarts/strict-phpunit": "^7.5"
-            },
-            "time": "2024-02-07T09:43:46+00:00",
-            "type": "library",
-            "installation-source": "dist",
-            "autoload": {
-                "psr-4": {
-                    "Fidry\\CpuCoreCounter\\": "src/"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "authors": [
-                {
-                    "name": "Théo FIDRY",
-                    "email": "theo.fidry@gmail.com"
-                }
-            ],
-            "description": "Tiny utility to get the number of CPU cores.",
-            "keywords": [
-                "CPU",
-                "core"
-            ],
-            "support": {
-                "issues": "https://github.com/theofidry/cpu-core-counter/issues",
-                "source": "https://github.com/theofidry/cpu-core-counter/tree/1.1.0"
-            },
-            "funding": [
-                {
-                    "url": "https://github.com/theofidry",
-                    "type": "github"
-                }
-            ],
-            "install-path": "../fidry/cpu-core-counter"
-        },
-        {
-            "name": "fig/http-message-util",
-            "version": "1.1.5",
-            "version_normalized": "1.1.5.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/php-fig/http-message-util.git",
-                "reference": "9d94dc0154230ac39e5bf89398b324a86f63f765"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/php-fig/http-message-util/zipball/9d94dc0154230ac39e5bf89398b324a86f63f765",
-                "reference": "9d94dc0154230ac39e5bf89398b324a86f63f765",
-                "shasum": ""
-            },
-            "require": {
-                "php": "^5.3 || ^7.0 || ^8.0"
-            },
-            "suggest": {
-                "psr/http-message": "The package containing the PSR-7 interfaces"
-            },
-            "time": "2020-11-24T22:02:12+00:00",
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "1.1.x-dev"
-                }
-            },
-            "installation-source": "dist",
-            "autoload": {
-                "psr-4": {
-                    "Fig\\Http\\Message\\": "src/"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "authors": [
-                {
-                    "name": "PHP-FIG",
-                    "homepage": "https://www.php-fig.org/"
-                }
-            ],
-            "description": "Utility classes and constants for use with PSR-7 (psr/http-message)",
-            "keywords": [
-                "http",
-                "http-message",
-                "psr",
-                "psr-7",
-                "request",
-                "response"
-            ],
-            "support": {
-                "issues": "https://github.com/php-fig/http-message-util/issues",
-                "source": "https://github.com/php-fig/http-message-util/tree/1.1.5"
-            },
-            "install-path": "../fig/http-message-util"
-        },
-        {
-            "name": "friendsofphp/php-cs-fixer",
-            "version": "v3.58.1",
-            "version_normalized": "3.58.1.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer.git",
-                "reference": "04e9424025677a86914b9a4944dbbf4060bb0aff"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/PHP-CS-Fixer/PHP-CS-Fixer/zipball/04e9424025677a86914b9a4944dbbf4060bb0aff",
-                "reference": "04e9424025677a86914b9a4944dbbf4060bb0aff",
-                "shasum": ""
-            },
-            "require": {
-                "clue/ndjson-react": "^1.0",
-                "composer/semver": "^3.4",
-                "composer/xdebug-handler": "^3.0.3",
-                "ext-filter": "*",
-                "ext-json": "*",
-                "ext-tokenizer": "*",
-                "fidry/cpu-core-counter": "^1.0",
-                "php": "^7.4 || ^8.0",
-                "react/child-process": "^0.6.5",
-                "react/event-loop": "^1.0",
-                "react/promise": "^2.0 || ^3.0",
-                "react/socket": "^1.0",
-                "react/stream": "^1.0",
-                "sebastian/diff": "^4.0 || ^5.0 || ^6.0",
-                "symfony/console": "^5.4 || ^6.0 || ^7.0",
-                "symfony/event-dispatcher": "^5.4 || ^6.0 || ^7.0",
-                "symfony/filesystem": "^5.4 || ^6.0 || ^7.0",
-                "symfony/finder": "^5.4 || ^6.0 || ^7.0",
-                "symfony/options-resolver": "^5.4 || ^6.0 || ^7.0",
-                "symfony/polyfill-mbstring": "^1.28",
-                "symfony/polyfill-php80": "^1.28",
-                "symfony/polyfill-php81": "^1.28",
-                "symfony/process": "^5.4 || ^6.0 || ^7.0",
-                "symfony/stopwatch": "^5.4 || ^6.0 || ^7.0"
-            },
-            "require-dev": {
-                "facile-it/paraunit": "^1.3 || ^2.0",
-                "infection/infection": "^0.27.11",
-                "justinrainbow/json-schema": "^5.2",
-                "keradus/cli-executor": "^2.1",
-                "mikey179/vfsstream": "^1.6.11",
-                "php-coveralls/php-coveralls": "^2.7",
-                "php-cs-fixer/accessible-object": "^1.1",
-                "php-cs-fixer/phpunit-constraint-isidenticalstring": "^1.4",
-                "php-cs-fixer/phpunit-constraint-xmlmatchesxsd": "^1.4",
-                "phpunit/phpunit": "^9.6 || ^10.5.5 || ^11.0.2",
-                "symfony/var-dumper": "^5.4 || ^6.0 || ^7.0",
-                "symfony/yaml": "^5.4 || ^6.0 || ^7.0"
-            },
-            "suggest": {
-                "ext-dom": "For handling output formats in XML",
-                "ext-mbstring": "For handling non-UTF8 characters."
-            },
-            "time": "2024-05-29T16:39:07+00:00",
-            "bin": [
-                "php-cs-fixer"
-            ],
-            "type": "application",
-            "installation-source": "dist",
-            "autoload": {
-                "psr-4": {
-                    "PhpCsFixer\\": "src/"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "authors": [
-                {
-                    "name": "Fabien Potencier",
-                    "email": "fabien@symfony.com"
-                },
-                {
-                    "name": "Dariusz Rumiński",
-                    "email": "dariusz.ruminski@gmail.com"
-                }
-            ],
-            "description": "A tool to automatically fix PHP code style",
-            "keywords": [
-                "Static code analysis",
-                "fixer",
-                "standards",
-                "static analysis"
-            ],
-            "support": {
-                "issues": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues",
-                "source": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/tree/v3.58.1"
-            },
-            "funding": [
-                {
-                    "url": "https://github.com/keradus",
-                    "type": "github"
-                }
-            ],
-            "install-path": "../friendsofphp/php-cs-fixer"
-        },
-        {
-            "name": "graham-campbell/result-type",
-            "version": "v1.1.2",
-            "version_normalized": "1.1.2.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/GrahamCampbell/Result-Type.git",
-                "reference": "fbd48bce38f73f8a4ec8583362e732e4095e5862"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/GrahamCampbell/Result-Type/zipball/fbd48bce38f73f8a4ec8583362e732e4095e5862",
-                "reference": "fbd48bce38f73f8a4ec8583362e732e4095e5862",
-                "shasum": ""
-            },
-            "require": {
-                "php": "^7.2.5 || ^8.0",
-                "phpoption/phpoption": "^1.9.2"
-            },
-            "require-dev": {
-                "phpunit/phpunit": "^8.5.34 || ^9.6.13 || ^10.4.2"
-            },
-            "time": "2023-11-12T22:16:48+00:00",
-            "type": "library",
-            "installation-source": "dist",
-            "autoload": {
-                "psr-4": {
-                    "GrahamCampbell\\ResultType\\": "src/"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "authors": [
-                {
-                    "name": "Graham Campbell",
-                    "email": "hello@gjcampbell.co.uk",
-                    "homepage": "https://github.com/GrahamCampbell"
-                }
-            ],
-            "description": "An Implementation Of The Result Type",
-            "keywords": [
-                "Graham Campbell",
-                "GrahamCampbell",
-                "Result Type",
-                "Result-Type",
-                "result"
-            ],
-            "support": {
-                "issues": "https://github.com/GrahamCampbell/Result-Type/issues",
-                "source": "https://github.com/GrahamCampbell/Result-Type/tree/v1.1.2"
-            },
-            "funding": [
-                {
-                    "url": "https://github.com/GrahamCampbell",
-                    "type": "github"
-                },
-                {
-                    "url": "https://tidelift.com/funding/github/packagist/graham-campbell/result-type",
-                    "type": "tidelift"
-                }
-            ],
-            "install-path": "../graham-campbell/result-type"
-        },
-        {
-            "name": "guzzlehttp/guzzle",
-            "version": "7.8.1",
-            "version_normalized": "7.8.1.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/guzzle/guzzle.git",
-                "reference": "41042bc7ab002487b876a0683fc8dce04ddce104"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/guzzle/guzzle/zipball/41042bc7ab002487b876a0683fc8dce04ddce104",
-                "reference": "41042bc7ab002487b876a0683fc8dce04ddce104",
-                "shasum": ""
-            },
-            "require": {
-                "ext-json": "*",
-                "guzzlehttp/promises": "^1.5.3 || ^2.0.1",
-                "guzzlehttp/psr7": "^1.9.1 || ^2.5.1",
-                "php": "^7.2.5 || ^8.0",
-                "psr/http-client": "^1.0",
-                "symfony/deprecation-contracts": "^2.2 || ^3.0"
-            },
-            "provide": {
-                "psr/http-client-implementation": "1.0"
-            },
-            "require-dev": {
-                "bamarni/composer-bin-plugin": "^1.8.2",
-                "ext-curl": "*",
-                "php-http/client-integration-tests": "dev-master#2c025848417c1135031fdf9c728ee53d0a7ceaee as 3.0.999",
-                "php-http/message-factory": "^1.1",
-                "phpunit/phpunit": "^8.5.36 || ^9.6.15",
-                "psr/log": "^1.1 || ^2.0 || ^3.0"
-            },
-            "suggest": {
-                "ext-curl": "Required for CURL handler support",
-                "ext-intl": "Required for Internationalized Domain Name (IDN) support",
-                "psr/log": "Required for using the Log middleware"
-            },
-            "time": "2023-12-03T20:35:24+00:00",
-            "type": "library",
-            "extra": {
-                "bamarni-bin": {
-                    "bin-links": true,
-                    "forward-command": false
-                }
-            },
-            "installation-source": "dist",
-            "autoload": {
-                "files": [
-                    "src/functions_include.php"
-                ],
-                "psr-4": {
-                    "GuzzleHttp\\": "src/"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "authors": [
-                {
-                    "name": "Graham Campbell",
-                    "email": "hello@gjcampbell.co.uk",
-                    "homepage": "https://github.com/GrahamCampbell"
-                },
-                {
-                    "name": "Michael Dowling",
-                    "email": "mtdowling@gmail.com",
-                    "homepage": "https://github.com/mtdowling"
-                },
-                {
-                    "name": "Jeremy Lindblom",
-                    "email": "jeremeamia@gmail.com",
-                    "homepage": "https://github.com/jeremeamia"
-                },
-                {
-                    "name": "George Mponos",
-                    "email": "gmponos@gmail.com",
-                    "homepage": "https://github.com/gmponos"
-                },
-                {
-                    "name": "Tobias Nyholm",
-                    "email": "tobias.nyholm@gmail.com",
-                    "homepage": "https://github.com/Nyholm"
-                },
-                {
-                    "name": "Márk Sági-Kazár",
-                    "email": "mark.sagikazar@gmail.com",
-                    "homepage": "https://github.com/sagikazarmark"
-                },
-                {
-                    "name": "Tobias Schultze",
-                    "email": "webmaster@tubo-world.de",
-                    "homepage": "https://github.com/Tobion"
-                }
-            ],
-            "description": "Guzzle is a PHP HTTP client library",
-            "keywords": [
-                "client",
-                "curl",
-                "framework",
-                "http",
-                "http client",
-                "psr-18",
-                "psr-7",
-                "rest",
-                "web service"
-            ],
-            "support": {
-                "issues": "https://github.com/guzzle/guzzle/issues",
-                "source": "https://github.com/guzzle/guzzle/tree/7.8.1"
-            },
-            "funding": [
-                {
-                    "url": "https://github.com/GrahamCampbell",
-                    "type": "github"
-                },
-                {
-                    "url": "https://github.com/Nyholm",
-                    "type": "github"
-                },
-                {
-                    "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/guzzle",
-                    "type": "tidelift"
-                }
-            ],
-            "install-path": "../guzzlehttp/guzzle"
-        },
-        {
-            "name": "guzzlehttp/promises",
-            "version": "2.0.2",
-            "version_normalized": "2.0.2.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/guzzle/promises.git",
-                "reference": "bbff78d96034045e58e13dedd6ad91b5d1253223"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/guzzle/promises/zipball/bbff78d96034045e58e13dedd6ad91b5d1253223",
-                "reference": "bbff78d96034045e58e13dedd6ad91b5d1253223",
-                "shasum": ""
-            },
-            "require": {
-                "php": "^7.2.5 || ^8.0"
-            },
-            "require-dev": {
-                "bamarni/composer-bin-plugin": "^1.8.2",
-                "phpunit/phpunit": "^8.5.36 || ^9.6.15"
-            },
-            "time": "2023-12-03T20:19:20+00:00",
-            "type": "library",
-            "extra": {
-                "bamarni-bin": {
-                    "bin-links": true,
-                    "forward-command": false
-                }
-            },
-            "installation-source": "dist",
-            "autoload": {
-                "psr-4": {
-                    "GuzzleHttp\\Promise\\": "src/"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "authors": [
-                {
-                    "name": "Graham Campbell",
-                    "email": "hello@gjcampbell.co.uk",
-                    "homepage": "https://github.com/GrahamCampbell"
-                },
-                {
-                    "name": "Michael Dowling",
-                    "email": "mtdowling@gmail.com",
-                    "homepage": "https://github.com/mtdowling"
-                },
-                {
-                    "name": "Tobias Nyholm",
-                    "email": "tobias.nyholm@gmail.com",
-                    "homepage": "https://github.com/Nyholm"
-                },
-                {
-                    "name": "Tobias Schultze",
-                    "email": "webmaster@tubo-world.de",
-                    "homepage": "https://github.com/Tobion"
-                }
-            ],
-            "description": "Guzzle promises library",
-            "keywords": [
-                "promise"
-            ],
-            "support": {
-                "issues": "https://github.com/guzzle/promises/issues",
-                "source": "https://github.com/guzzle/promises/tree/2.0.2"
-            },
-            "funding": [
-                {
-                    "url": "https://github.com/GrahamCampbell",
-                    "type": "github"
-                },
-                {
-                    "url": "https://github.com/Nyholm",
-                    "type": "github"
-                },
-                {
-                    "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/promises",
-                    "type": "tidelift"
-                }
-            ],
-            "install-path": "../guzzlehttp/promises"
-        },
-        {
-            "name": "guzzlehttp/psr7",
-            "version": "2.6.2",
-            "version_normalized": "2.6.2.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/guzzle/psr7.git",
-                "reference": "45b30f99ac27b5ca93cb4831afe16285f57b8221"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/guzzle/psr7/zipball/45b30f99ac27b5ca93cb4831afe16285f57b8221",
-                "reference": "45b30f99ac27b5ca93cb4831afe16285f57b8221",
-                "shasum": ""
-            },
-            "require": {
-                "php": "^7.2.5 || ^8.0",
-                "psr/http-factory": "^1.0",
-                "psr/http-message": "^1.1 || ^2.0",
-                "ralouphie/getallheaders": "^3.0"
-            },
-            "provide": {
-                "psr/http-factory-implementation": "1.0",
-                "psr/http-message-implementation": "1.0"
-            },
-            "require-dev": {
-                "bamarni/composer-bin-plugin": "^1.8.2",
-                "http-interop/http-factory-tests": "^0.9",
-                "phpunit/phpunit": "^8.5.36 || ^9.6.15"
-            },
-            "suggest": {
-                "laminas/laminas-httphandlerrunner": "Emit PSR-7 responses"
-            },
-            "time": "2023-12-03T20:05:35+00:00",
-            "type": "library",
-            "extra": {
-                "bamarni-bin": {
-                    "bin-links": true,
-                    "forward-command": false
-                }
-            },
-            "installation-source": "dist",
-            "autoload": {
-                "psr-4": {
-                    "GuzzleHttp\\Psr7\\": "src/"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "authors": [
-                {
-                    "name": "Graham Campbell",
-                    "email": "hello@gjcampbell.co.uk",
-                    "homepage": "https://github.com/GrahamCampbell"
-                },
-                {
-                    "name": "Michael Dowling",
-                    "email": "mtdowling@gmail.com",
-                    "homepage": "https://github.com/mtdowling"
-                },
-                {
-                    "name": "George Mponos",
-                    "email": "gmponos@gmail.com",
-                    "homepage": "https://github.com/gmponos"
-                },
-                {
-                    "name": "Tobias Nyholm",
-                    "email": "tobias.nyholm@gmail.com",
-                    "homepage": "https://github.com/Nyholm"
-                },
-                {
-                    "name": "Márk Sági-Kazár",
-                    "email": "mark.sagikazar@gmail.com",
-                    "homepage": "https://github.com/sagikazarmark"
-                },
-                {
-                    "name": "Tobias Schultze",
-                    "email": "webmaster@tubo-world.de",
-                    "homepage": "https://github.com/Tobion"
-                },
-                {
-                    "name": "Márk Sági-Kazár",
-                    "email": "mark.sagikazar@gmail.com",
-                    "homepage": "https://sagikazarmark.hu"
-                }
-            ],
-            "description": "PSR-7 message implementation that also provides common utility methods",
-            "keywords": [
-                "http",
-                "message",
-                "psr-7",
-                "request",
-                "response",
-                "stream",
-                "uri",
-                "url"
-            ],
-            "support": {
-                "issues": "https://github.com/guzzle/psr7/issues",
-                "source": "https://github.com/guzzle/psr7/tree/2.6.2"
-            },
-            "funding": [
-                {
-                    "url": "https://github.com/GrahamCampbell",
-                    "type": "github"
-                },
-                {
-                    "url": "https://github.com/Nyholm",
-                    "type": "github"
-                },
-                {
-                    "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/psr7",
-                    "type": "tidelift"
-                }
-            ],
-            "install-path": "../guzzlehttp/psr7"
-        },
-        {
-            "name": "hamcrest/hamcrest-php",
-            "version": "v2.0.1",
-            "version_normalized": "2.0.1.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/hamcrest/hamcrest-php.git",
-                "reference": "8c3d0a3f6af734494ad8f6fbbee0ba92422859f3"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/hamcrest/hamcrest-php/zipball/8c3d0a3f6af734494ad8f6fbbee0ba92422859f3",
-                "reference": "8c3d0a3f6af734494ad8f6fbbee0ba92422859f3",
-                "shasum": ""
-            },
-            "require": {
-                "php": "^5.3|^7.0|^8.0"
-            },
-            "replace": {
-                "cordoval/hamcrest-php": "*",
-                "davedevelopment/hamcrest-php": "*",
-                "kodova/hamcrest-php": "*"
-            },
-            "require-dev": {
-                "phpunit/php-file-iterator": "^1.4 || ^2.0",
-                "phpunit/phpunit": "^4.8.36 || ^5.7 || ^6.5 || ^7.0"
-            },
-            "time": "2020-07-09T08:09:16+00:00",
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "2.1-dev"
-                }
-            },
-            "installation-source": "dist",
-            "autoload": {
-                "classmap": [
-                    "hamcrest"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "BSD-3-Clause"
-            ],
-            "description": "This is the PHP port of Hamcrest Matchers",
-            "keywords": [
-                "test"
-            ],
-            "support": {
-                "issues": "https://github.com/hamcrest/hamcrest-php/issues",
-                "source": "https://github.com/hamcrest/hamcrest-php/tree/v2.0.1"
-            },
-            "install-path": "../hamcrest/hamcrest-php"
-        },
-        {
-            "name": "hyperf/cache",
-            "version": "v3.1.23",
-            "version_normalized": "3.1.23.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/hyperf/cache.git",
-                "reference": "7783e220b984b26409d621da49b853340f788a6d"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/hyperf/cache/zipball/7783e220b984b26409d621da49b853340f788a6d",
-                "reference": "7783e220b984b26409d621da49b853340f788a6d",
-                "shasum": ""
-            },
-            "require": {
-                "hyperf/codec": "~3.1.0",
-                "hyperf/collection": "~3.1.0",
-                "hyperf/contract": "~3.1.0",
-                "hyperf/support": "~3.1.0",
-                "hyperf/utils": "~3.1.0",
-                "php": ">=8.1",
-                "psr/container": "^1.0|^2.0",
-                "psr/simple-cache": "^1.0|^2.0|^3.0"
-            },
-            "suggest": {
-                "hyperf/di": "Use cache annotations.",
-                "hyperf/event": "Use listener to delete annotation cache."
-            },
-            "time": "2024-05-23T03:43:58+00:00",
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "3.1-dev"
-                },
-                "hyperf": {
-                    "config": "Hyperf\\Cache\\ConfigProvider"
-                }
-            },
-            "installation-source": "dist",
-            "autoload": {
-                "psr-4": {
-                    "Hyperf\\Cache\\": "src/"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "description": "A cache component for hyperf.",
-            "homepage": "https://hyperf.io",
-            "keywords": [
-                "cache",
-                "hyperf",
-                "php"
-            ],
-            "support": {
-                "docs": "https://hyperf.wiki",
-                "issues": "https://github.com/hyperf/hyperf/issues",
-                "pull-request": "https://github.com/hyperf/hyperf/pulls",
-                "source": "https://github.com/hyperf/hyperf"
-            },
-            "funding": [
-                {
-                    "url": "https://hyperf.wiki/#/zh-cn/donate",
-                    "type": "custom"
-                },
-                {
-                    "url": "https://opencollective.com/hyperf",
-                    "type": "open_collective"
-                }
-            ],
-            "install-path": "../hyperf/cache"
-        },
-        {
-            "name": "hyperf/code-parser",
-            "version": "v3.1.15",
-            "version_normalized": "3.1.15.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/hyperf/code-parser.git",
-                "reference": "820e8e6680f0d04e4187a3037a2a3eaf7141913d"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/hyperf/code-parser/zipball/820e8e6680f0d04e4187a3037a2a3eaf7141913d",
-                "reference": "820e8e6680f0d04e4187a3037a2a3eaf7141913d",
-                "shasum": ""
-            },
-            "require": {
-                "hyperf/collection": "~3.1.0",
-                "hyperf/stringable": "~3.1.0",
-                "hyperf/support": "~3.1.0",
-                "php": ">=8.1"
-            },
-            "suggest": {
-                "jean85/pretty-package-versions": "Required to use PrettyVersions. (^1.2|^2.0)",
-                "nikic/php-parser": "Required to use PhpParser. (^4.0)"
-            },
-            "time": "2024-03-23T11:28:51+00:00",
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "3.1-dev"
-                }
-            },
-            "installation-source": "dist",
-            "autoload": {
-                "psr-4": {
-                    "Hyperf\\CodeParser\\": "src/"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "description": "A code parser component for Hyperf.",
-            "homepage": "https://hyperf.io",
-            "keywords": [
-                "code-parser",
-                "hyperf",
-                "php",
-                "swoole"
-            ],
-            "support": {
-                "docs": "https://hyperf.wiki",
-                "issues": "https://github.com/hyperf/hyperf/issues",
-                "pull-request": "https://github.com/hyperf/hyperf/pulls",
-                "source": "https://github.com/hyperf/hyperf"
-            },
-            "funding": [
-                {
-                    "url": "https://hyperf.wiki/#/zh-cn/donate",
-                    "type": "custom"
-                },
-                {
-                    "url": "https://opencollective.com/hyperf",
-                    "type": "open_collective"
-                }
-            ],
-            "install-path": "../hyperf/code-parser"
-        },
-        {
-            "name": "hyperf/codec",
-            "version": "v3.1.15",
-            "version_normalized": "3.1.15.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/hyperf/codec.git",
-                "reference": "198c364ad8eadda13f1a0decdbb9221ac9c4c260"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/hyperf/codec/zipball/198c364ad8eadda13f1a0decdbb9221ac9c4c260",
-                "reference": "198c364ad8eadda13f1a0decdbb9221ac9c4c260",
-                "shasum": ""
-            },
-            "require": {
-                "ext-json": "*",
-                "ext-xml": "*",
-                "hyperf/contract": "~3.1.0",
-                "php": ">=8.1"
-            },
-            "suggest": {
-                "ext-igbinary": "Required to use IgbinarySerializerPacker."
-            },
-            "time": "2024-03-23T11:28:51+00:00",
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "3.1-dev"
-                }
-            },
-            "installation-source": "dist",
-            "autoload": {
-                "psr-4": {
-                    "Hyperf\\Codec\\": "src/"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "description": "A codec component for Hyperf.",
-            "homepage": "https://hyperf.io",
-            "keywords": [
-                "codec",
-                "hyperf",
-                "php",
-                "swoole"
-            ],
-            "support": {
-                "docs": "https://hyperf.wiki",
-                "issues": "https://github.com/hyperf/hyperf/issues",
-                "pull-request": "https://github.com/hyperf/hyperf/pulls",
-                "source": "https://github.com/hyperf/hyperf"
-            },
-            "funding": [
-                {
-                    "url": "https://hyperf.wiki/#/zh-cn/donate",
-                    "type": "custom"
-                },
-                {
-                    "url": "https://opencollective.com/hyperf",
-                    "type": "open_collective"
-                }
-            ],
-            "install-path": "../hyperf/codec"
-        },
-        {
-            "name": "hyperf/collection",
-            "version": "v3.1.23.2",
-            "version_normalized": "3.1.23.2",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/hyperf/collection.git",
-                "reference": "8d10ca88228ee47c9cee578ac3699e795f468ada"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/hyperf/collection/zipball/8d10ca88228ee47c9cee578ac3699e795f468ada",
-                "reference": "8d10ca88228ee47c9cee578ac3699e795f468ada",
-                "shasum": ""
-            },
-            "require": {
-                "hyperf/conditionable": "~3.1.0",
-                "hyperf/contract": "~3.1.0",
-                "hyperf/macroable": "~3.1.0",
-                "hyperf/stringable": "~3.1.0",
-                "php": ">=8.1"
-            },
-            "time": "2024-05-24T08:33:42+00:00",
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "3.1-dev"
-                }
-            },
-            "installation-source": "dist",
-            "autoload": {
-                "files": [
-                    "src/Functions.php"
-                ],
-                "psr-4": {
-                    "Hyperf\\Collection\\": "src/"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "description": "Hyperf Collection package which come from illuminate/collections",
-            "homepage": "https://hyperf.io",
-            "keywords": [
-                "collection",
-                "hyperf",
-                "php",
-                "swoole"
-            ],
-            "support": {
-                "docs": "https://hyperf.wiki",
-                "issues": "https://github.com/hyperf/hyperf/issues",
-                "pull-request": "https://github.com/hyperf/hyperf/pulls",
-                "source": "https://github.com/hyperf/hyperf"
-            },
-            "funding": [
-                {
-                    "url": "https://hyperf.wiki/#/zh-cn/donate",
-                    "type": "custom"
-                },
-                {
-                    "url": "https://opencollective.com/hyperf",
-                    "type": "open_collective"
-                }
-            ],
-            "install-path": "../hyperf/collection"
-        },
-        {
-            "name": "hyperf/command",
-            "version": "v3.1.24",
-            "version_normalized": "3.1.24.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/hyperf/command.git",
-                "reference": "b1ca85876f35f85fe3f52b0cc75bcc3da418769d"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/hyperf/command/zipball/b1ca85876f35f85fe3f52b0cc75bcc3da418769d",
-                "reference": "b1ca85876f35f85fe3f52b0cc75bcc3da418769d",
-                "shasum": ""
-            },
-            "require": {
-                "hyperf/collection": "~3.1.0",
-                "hyperf/context": "~3.1.0",
-                "hyperf/contract": "~3.1.0",
-                "hyperf/coroutine": "~3.1.0",
-                "hyperf/di": "~3.1.0",
-                "hyperf/stringable": "~3.1.0",
-                "hyperf/support": "~3.1.0",
-                "hyperf/tappable": "~3.1.0",
-                "php": ">=8.1",
-                "psr/event-dispatcher": "^1.0",
-                "symfony/console": "^5.0|^6.0|^7.0"
-            },
-            "suggest": {
-                "hyperf/di": "Required to use annotations.",
-                "hyperf/event": "Required to use listeners."
-            },
-            "time": "2024-05-27T12:37:07+00:00",
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "3.1-dev"
-                },
-                "hyperf": {
-                    "config": "Hyperf\\Command\\ConfigProvider"
-                }
-            },
-            "installation-source": "dist",
-            "autoload": {
-                "psr-4": {
-                    "Hyperf\\Command\\": "src/"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "description": "Command for hyperf",
-            "keywords": [
-                "command",
-                "php",
-                "swoole"
-            ],
-            "support": {
-                "issues": "https://github.com/hyperf/command/issues",
-                "source": "https://github.com/hyperf/command/tree/v3.1.24"
-            },
-            "funding": [
-                {
-                    "url": "https://hyperf.wiki/#/zh-cn/donate",
-                    "type": "custom"
-                },
-                {
-                    "url": "https://opencollective.com/hyperf",
-                    "type": "open_collective"
-                }
-            ],
-            "install-path": "../hyperf/command"
-        },
-        {
-            "name": "hyperf/conditionable",
-            "version": "v3.1.15",
-            "version_normalized": "3.1.15.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/hyperf/conditionable.git",
-                "reference": "2c1555891d136904b890ba6d812d9ff50ca13ae3"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/hyperf/conditionable/zipball/2c1555891d136904b890ba6d812d9ff50ca13ae3",
-                "reference": "2c1555891d136904b890ba6d812d9ff50ca13ae3",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=8.1"
-            },
-            "time": "2024-03-23T11:28:51+00:00",
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "3.1-dev"
-                }
-            },
-            "installation-source": "dist",
-            "autoload": {
-                "psr-4": {
-                    "Hyperf\\Conditionable\\": "src/"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "description": "Hyperf Macroable package which come from illuminate/conditionable",
-            "homepage": "https://hyperf.io",
-            "keywords": [
-                "conditionable",
-                "hyperf",
-                "php",
-                "swoole"
-            ],
-            "support": {
-                "docs": "https://hyperf.wiki",
-                "issues": "https://github.com/hyperf/hyperf/issues",
-                "pull-request": "https://github.com/hyperf/hyperf/pulls",
-                "source": "https://github.com/hyperf/hyperf"
-            },
-            "funding": [
-                {
-                    "url": "https://hyperf.wiki/#/zh-cn/donate",
-                    "type": "custom"
-                },
-                {
-                    "url": "https://opencollective.com/hyperf",
-                    "type": "open_collective"
-                }
-            ],
-            "install-path": "../hyperf/conditionable"
-        },
-        {
-            "name": "hyperf/config",
-            "version": "v3.1.15",
-            "version_normalized": "3.1.15.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/hyperf/config.git",
-                "reference": "5a92774d6db6bc02fc511c005c01f99d922aa292"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/hyperf/config/zipball/5a92774d6db6bc02fc511c005c01f99d922aa292",
-                "reference": "5a92774d6db6bc02fc511c005c01f99d922aa292",
-                "shasum": ""
-            },
-            "require": {
-                "hyperf/collection": "~3.1.0",
-                "hyperf/contract": "~3.1.0",
-                "hyperf/support": "~3.1.0",
-                "php": ">=8.1",
-                "psr/container": "^1.0|^2.0",
-                "symfony/finder": "^5.0|^6.0|^7.0"
-            },
-            "suggest": {
-                "hyperf/context": "Required to use config()",
-                "hyperf/di": "Allows using @Value annotation",
-                "hyperf/event": "Allows using @Value annotation",
-                "hyperf/framework": "Allows using @Value annotation",
-                "vlucas/phpdotenv": "Allows using enviroment value to override the config"
-            },
-            "time": "2024-03-23T11:28:51+00:00",
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "3.1-dev"
-                },
-                "hyperf": {
-                    "config": "Hyperf\\Config\\ConfigProvider"
-                }
-            },
-            "installation-source": "dist",
-            "autoload": {
-                "files": [
-                    "./src/Functions.php"
-                ],
-                "psr-4": {
-                    "Hyperf\\Config\\": "src/"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "description": "An independent component that provides configuration container.",
-            "homepage": "https://hyperf.io",
-            "keywords": [
-                "config",
-                "configuration",
-                "hyperf",
-                "php",
-                "swoole"
-            ],
-            "support": {
-                "docs": "https://hyperf.wiki",
-                "issues": "https://github.com/hyperf/hyperf/issues",
-                "pull-request": "https://github.com/hyperf/hyperf/pulls",
-                "source": "https://github.com/hyperf/hyperf"
-            },
-            "funding": [
-                {
-                    "url": "https://hyperf.wiki/#/zh-cn/donate",
-                    "type": "custom"
-                },
-                {
-                    "url": "https://opencollective.com/hyperf",
-                    "type": "open_collective"
-                }
-            ],
-            "install-path": "../hyperf/config"
-        },
-        {
-            "name": "hyperf/config-center",
-            "version": "v3.1.15",
-            "version_normalized": "3.1.15.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/hyperf/config-center.git",
-                "reference": "a47acc3279ca173fa393b81175b6807859cd144e"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/hyperf/config-center/zipball/a47acc3279ca173fa393b81175b6807859cd144e",
-                "reference": "a47acc3279ca173fa393b81175b6807859cd144e",
-                "shasum": ""
-            },
-            "require": {
-                "hyperf/support": "~3.1.0",
-                "php": ">=8.1"
-            },
-            "suggest": {
-                "hyperf/process": "^2.1"
-            },
-            "time": "2024-03-23T11:28:51+00:00",
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "3.1-dev"
-                },
-                "hyperf": {
-                    "config": "Hyperf\\ConfigCenter\\ConfigProvider"
-                }
-            },
-            "installation-source": "dist",
-            "autoload": {
-                "psr-4": {
-                    "Hyperf\\ConfigCenter\\": "src/"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "description": "The abstraction component of config center",
-            "homepage": "https://hyperf.io",
-            "keywords": [
-                "config-center",
-                "hyperf",
-                "php"
-            ],
-            "support": {
-                "docs": "https://hyperf.wiki",
-                "issues": "https://github.com/hyperf/hyperf/issues",
-                "pull-request": "https://github.com/hyperf/hyperf/pulls",
-                "source": "https://github.com/hyperf/hyperf"
-            },
-            "funding": [
-                {
-                    "url": "https://hyperf.wiki/#/zh-cn/donate",
-                    "type": "custom"
-                },
-                {
-                    "url": "https://opencollective.com/hyperf",
-                    "type": "open_collective"
-                }
-            ],
-            "install-path": "../hyperf/config-center"
-        },
-        {
-            "name": "hyperf/config-nacos",
-            "version": "v3.1.15",
-            "version_normalized": "3.1.15.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/hyperf/config-nacos.git",
-                "reference": "e66bd614a5bc789f6ca28152a206218f77bc8dd2"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/hyperf/config-nacos/zipball/e66bd614a5bc789f6ca28152a206218f77bc8dd2",
-                "reference": "e66bd614a5bc789f6ca28152a206218f77bc8dd2",
-                "shasum": ""
-            },
-            "require": {
-                "hyperf/codec": "~3.1.0",
-                "hyperf/config-center": "~3.1.0",
-                "hyperf/contract": "~3.1.0",
-                "hyperf/guzzle": "~3.1.0",
-                "hyperf/nacos": "~3.1.0",
-                "hyperf/support": "~3.1.0",
-                "hyperf/utils": "~3.1.0",
-                "jetbrains/phpstorm-attributes": "^1.0",
-                "php": ">=8.1"
-            },
-            "suggest": {
-                "ext-json": "*",
-                "ext-simplexml": "*",
-                "ext-yaml": "*",
-                "hyperf/event": "Required to use listeners. (~2.2.0)",
-                "hyperf/framework": "Required to use listeners. (~2.2.0)",
-                "hyperf/process": "Required to use processes. (~2.2.0)"
-            },
-            "time": "2024-03-23T11:28:51+00:00",
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "3.1-dev"
-                },
-                "hyperf": {
-                    "config": "Hyperf\\ConfigNacos\\ConfigProvider"
-                }
-            },
-            "installation-source": "dist",
-            "autoload": {
-                "psr-4": {
-                    "Hyperf\\ConfigNacos\\": "src/"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "description": "A nacos adapter for config center component.",
-            "homepage": "https://hyperf.io",
-            "keywords": [
-                "hyperf",
-                "nacos",
-                "php",
-                "swoole"
-            ],
-            "support": {
-                "docs": "https://hyperf.wiki",
-                "issues": "https://github.com/hyperf/hyperf/issues",
-                "pull-request": "https://github.com/hyperf/hyperf/pulls",
-                "source": "https://github.com/hyperf/hyperf"
-            },
-            "funding": [
-                {
-                    "url": "https://hyperf.wiki/#/zh-cn/donate",
-                    "type": "custom"
-                },
-                {
-                    "url": "https://opencollective.com/hyperf",
-                    "type": "open_collective"
-                }
-            ],
-            "install-path": "../hyperf/config-nacos"
-        },
-        {
-            "name": "hyperf/constants",
-            "version": "v3.1.16",
-            "version_normalized": "3.1.16.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/hyperf/constants.git",
-                "reference": "55d46901660e4540195145d0e4066296cf0dc130"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/hyperf/constants/zipball/55d46901660e4540195145d0e4066296cf0dc130",
-                "reference": "55d46901660e4540195145d0e4066296cf0dc130",
-                "shasum": ""
-            },
-            "require": {
-                "hyperf/di": "~3.1.0",
-                "hyperf/support": "~3.1.0",
-                "hyperf/utils": "~3.1.0",
-                "php": ">=8.1"
-            },
-            "suggest": {
-                "hyperf/translation": "Required to use translation."
-            },
-            "time": "2024-03-31T11:35:28+00:00",
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "3.1-dev"
-                },
-                "hyperf": {
-                    "config": "Hyperf\\Constants\\ConfigProvider"
-                }
-            },
-            "installation-source": "dist",
-            "autoload": {
-                "psr-4": {
-                    "Hyperf\\Constants\\": "src/"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "description": "A constants component for hyperf.",
-            "homepage": "https://hyperf.io",
-            "keywords": [
-                "constants",
-                "hyperf",
-                "php"
-            ],
-            "support": {
-                "docs": "https://hyperf.wiki",
-                "issues": "https://github.com/hyperf/hyperf/issues",
-                "pull-request": "https://github.com/hyperf/hyperf/pulls",
-                "source": "https://github.com/hyperf/hyperf"
-            },
-            "funding": [
-                {
-                    "url": "https://hyperf.wiki/#/zh-cn/donate",
-                    "type": "custom"
-                },
-                {
-                    "url": "https://opencollective.com/hyperf",
-                    "type": "open_collective"
-                }
-            ],
-            "install-path": "../hyperf/constants"
-        },
-        {
-            "name": "hyperf/consul",
-            "version": "v3.1.22",
-            "version_normalized": "3.1.22.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/hyperf/consul.git",
-                "reference": "6e5e6936513c76812d6c1a066530543b15aec5e8"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/hyperf/consul/zipball/6e5e6936513c76812d6c1a066530543b15aec5e8",
-                "reference": "6e5e6936513c76812d6c1a066530543b15aec5e8",
-                "shasum": ""
-            },
-            "require": {
-                "guzzlehttp/guzzle": "^6.3|^7.0",
-                "php": ">=8.1"
-            },
-            "require-dev": {
-                "hyperf/guzzle": "~3.1.0"
-            },
-            "time": "2024-05-15T06:42:24+00:00",
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "3.1-dev"
-                },
-                "hyperf": {
-                    "config": "Hyperf\\Consul\\ConfigProvider"
-                }
-            },
-            "installation-source": "dist",
-            "autoload": {
-                "psr-4": {
-                    "Hyperf\\Consul\\": "src/"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "description": "A Consul Client for Hyperf.",
-            "homepage": "https://hyperf.io",
-            "keywords": [
-                "consul",
-                "consul-client",
-                "hyperf",
-                "php",
-                "swoole"
-            ],
-            "support": {
-                "docs": "https://hyperf.wiki",
-                "issues": "https://github.com/hyperf/hyperf/issues",
-                "pull-request": "https://github.com/hyperf/hyperf/pulls",
-                "source": "https://github.com/hyperf/hyperf"
-            },
-            "funding": [
-                {
-                    "url": "https://hyperf.wiki/#/zh-cn/donate",
-                    "type": "custom"
-                },
-                {
-                    "url": "https://opencollective.com/hyperf",
-                    "type": "open_collective"
-                }
-            ],
-            "install-path": "../hyperf/consul"
-        },
-        {
-            "name": "hyperf/context",
-            "version": "v3.1.15",
-            "version_normalized": "3.1.15.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/hyperf/context.git",
-                "reference": "ad913fd50eb5f738c038e172c120bc6956c0da69"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/hyperf/context/zipball/ad913fd50eb5f738c038e172c120bc6956c0da69",
-                "reference": "ad913fd50eb5f738c038e172c120bc6956c0da69",
-                "shasum": ""
-            },
-            "require": {
-                "hyperf/engine": "^2.0",
-                "php": ">=8.1"
-            },
-            "suggest": {
-                "swow/psr7-plus": "Required to use RequestContext and ResponseContext"
-            },
-            "time": "2024-03-23T11:28:51+00:00",
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "3.1-dev"
-                }
-            },
-            "installation-source": "dist",
-            "autoload": {
-                "psr-4": {
-                    "Hyperf\\Context\\": "src/"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "description": "A coroutine/application context library.",
-            "homepage": "https://hyperf.io",
-            "keywords": [
-                "Context",
-                "hyperf",
-                "php",
-                "swoole"
-            ],
-            "support": {
-                "docs": "https://hyperf.wiki",
-                "issues": "https://github.com/hyperf/hyperf/issues",
-                "pull-request": "https://github.com/hyperf/hyperf/pulls",
-                "source": "https://github.com/hyperf/hyperf"
-            },
-            "funding": [
-                {
-                    "url": "https://hyperf.wiki/#/zh-cn/donate",
-                    "type": "custom"
-                },
-                {
-                    "url": "https://opencollective.com/hyperf",
-                    "type": "open_collective"
-                }
-            ],
-            "install-path": "../hyperf/context"
-        },
-        {
-            "name": "hyperf/contract",
-            "version": "v3.1.15",
-            "version_normalized": "3.1.15.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/hyperf/contract.git",
-                "reference": "9950abe963cc6b30c6d3506fa5b3adbd58cb1945"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/hyperf/contract/zipball/9950abe963cc6b30c6d3506fa5b3adbd58cb1945",
-                "reference": "9950abe963cc6b30c6d3506fa5b3adbd58cb1945",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=8.1"
-            },
-            "time": "2024-03-23T11:28:51+00:00",
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "3.1-dev"
-                }
-            },
-            "installation-source": "dist",
-            "autoload": {
-                "psr-4": {
-                    "Hyperf\\Contract\\": "src/"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "description": "The contracts of Hyperf.",
-            "homepage": "https://hyperf.io",
-            "keywords": [
-                "hyperf",
-                "php",
-                "swoole"
-            ],
-            "support": {
-                "docs": "https://hyperf.wiki",
-                "issues": "https://github.com/hyperf/hyperf/issues",
-                "pull-request": "https://github.com/hyperf/hyperf/pulls",
-                "source": "https://github.com/hyperf/hyperf"
-            },
-            "funding": [
-                {
-                    "url": "https://hyperf.wiki/#/zh-cn/donate",
-                    "type": "custom"
-                },
-                {
-                    "url": "https://opencollective.com/hyperf",
-                    "type": "open_collective"
-                }
-            ],
-            "install-path": "../hyperf/contract"
-        },
-        {
-            "name": "hyperf/coordinator",
-            "version": "v3.1.21",
-            "version_normalized": "3.1.21.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/hyperf/coordinator.git",
-                "reference": "caf5a70f96b7f22950e1caa3ba74f72c8382493c"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/hyperf/coordinator/zipball/caf5a70f96b7f22950e1caa3ba74f72c8382493c",
-                "reference": "caf5a70f96b7f22950e1caa3ba74f72c8382493c",
-                "shasum": ""
-            },
-            "require": {
-                "hyperf/engine": "^2.0",
-                "php": ">=8.1"
-            },
-            "time": "2024-05-09T02:35:08+00:00",
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "3.1-dev"
-                }
-            },
-            "installation-source": "dist",
-            "autoload": {
-                "files": [
-                    "src/Functions.php"
-                ],
-                "psr-4": {
-                    "Hyperf\\Coordinator\\": "src/"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "description": "Hyperf Coordinator",
-            "homepage": "https://hyperf.io",
-            "keywords": [
-                "Coordinator",
-                "hyperf",
-                "php",
-                "swoole"
-            ],
-            "support": {
-                "docs": "https://hyperf.wiki",
-                "issues": "https://github.com/hyperf/hyperf/issues",
-                "pull-request": "https://github.com/hyperf/hyperf/pulls",
-                "source": "https://github.com/hyperf/hyperf"
-            },
-            "funding": [
-                {
-                    "url": "https://hyperf.wiki/#/zh-cn/donate",
-                    "type": "custom"
-                },
-                {
-                    "url": "https://opencollective.com/hyperf",
-                    "type": "open_collective"
-                }
-            ],
-            "install-path": "../hyperf/coordinator"
-        },
-        {
-            "name": "hyperf/coroutine",
-            "version": "v3.1.15",
-            "version_normalized": "3.1.15.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/hyperf/coroutine.git",
-                "reference": "8f4c573a9457646db3e629dacabe064eebaf8cc1"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/hyperf/coroutine/zipball/8f4c573a9457646db3e629dacabe064eebaf8cc1",
-                "reference": "8f4c573a9457646db3e629dacabe064eebaf8cc1",
-                "shasum": ""
-            },
-            "require": {
-                "hyperf/context": "~3.1.0",
-                "hyperf/contract": "~3.1.0",
-                "hyperf/engine": "^2.0",
-                "php": ">=8.1"
-            },
-            "time": "2024-03-23T11:28:51+00:00",
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "3.1-dev"
-                }
-            },
-            "installation-source": "dist",
-            "autoload": {
-                "files": [
-                    "src/Functions.php"
-                ],
-                "psr-4": {
-                    "Hyperf\\Coroutine\\": "src/"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "description": "Hyperf Coroutine",
-            "homepage": "https://hyperf.io",
-            "keywords": [
-                "coroutine",
-                "hyperf",
-                "php",
-                "swoole"
-            ],
-            "support": {
-                "docs": "https://hyperf.wiki",
-                "issues": "https://github.com/hyperf/hyperf/issues",
-                "pull-request": "https://github.com/hyperf/hyperf/pulls",
-                "source": "https://github.com/hyperf/hyperf"
-            },
-            "funding": [
-                {
-                    "url": "https://hyperf.wiki/#/zh-cn/donate",
-                    "type": "custom"
-                },
-                {
-                    "url": "https://opencollective.com/hyperf",
-                    "type": "open_collective"
-                }
-            ],
-            "install-path": "../hyperf/coroutine"
-        },
-        {
-            "name": "hyperf/database",
-            "version": "v3.1.24",
-            "version_normalized": "3.1.24.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/hyperf/database.git",
-                "reference": "9897c211ada78b0603f4249466f0c1b3e2d6d938"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/hyperf/database/zipball/9897c211ada78b0603f4249466f0c1b3e2d6d938",
-                "reference": "9897c211ada78b0603f4249466f0c1b3e2d6d938",
-                "shasum": ""
-            },
-            "require": {
-                "hyperf/code-parser": "~3.1.0",
-                "hyperf/collection": "~3.1.0",
-                "hyperf/macroable": "~3.1.0",
-                "hyperf/support": "~3.1.0",
-                "hyperf/tappable": "~3.1.0",
-                "hyperf/utils": "~3.1.0",
-                "nesbot/carbon": "^2.0",
-                "php": ">=8.1",
-                "psr/container": "^1.0|^2.0",
-                "psr/event-dispatcher": "^1.0"
-            },
-            "suggest": {
-                "doctrine/dbal": "Required to rename columns (^3.0).",
-                "nikic/php-parser": "Required to use ModelCommand. (^4.0)",
-                "php-di/phpdoc-reader": "Required to use ModelCommand. (^2.2)"
-            },
-            "time": "2024-05-24T06:14:27+00:00",
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "3.1-dev"
-                }
-            },
-            "installation-source": "dist",
-            "autoload": {
-                "psr-4": {
-                    "Hyperf\\Database\\": "src/"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "description": "A flexible database library.",
-            "homepage": "https://hyperf.io",
-            "keywords": [
-                "database",
-                "hyperf",
-                "php"
-            ],
-            "support": {
-                "docs": "https://hyperf.wiki",
-                "issues": "https://github.com/hyperf/hyperf/issues",
-                "pull-request": "https://github.com/hyperf/hyperf/pulls",
-                "source": "https://github.com/hyperf/hyperf"
-            },
-            "funding": [
-                {
-                    "url": "https://hyperf.wiki/#/zh-cn/donate",
-                    "type": "custom"
-                },
-                {
-                    "url": "https://opencollective.com/hyperf",
-                    "type": "open_collective"
-                }
-            ],
-            "install-path": "../hyperf/database"
-        },
-        {
-            "name": "hyperf/db-connection",
-            "version": "v3.1.15",
-            "version_normalized": "3.1.15.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/hyperf/db-connection.git",
-                "reference": "bfe44b0365a555fb4b947df37b662fce26b905c0"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/hyperf/db-connection/zipball/bfe44b0365a555fb4b947df37b662fce26b905c0",
-                "reference": "bfe44b0365a555fb4b947df37b662fce26b905c0",
-                "shasum": ""
-            },
-            "require": {
-                "hyperf/database": "~3.1.0",
-                "hyperf/di": "~3.1.0",
-                "hyperf/framework": "~3.1.0",
-                "hyperf/model-listener": "~3.1.0",
-                "hyperf/pool": "~3.1.0",
-                "hyperf/support": "~3.1.0",
-                "hyperf/utils": "~3.1.0",
-                "php": ">=8.1",
-                "psr/container": "^1.0|^2.0"
-            },
-            "time": "2024-03-23T11:28:51+00:00",
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "3.1-dev"
-                },
-                "hyperf": {
-                    "config": "Hyperf\\DbConnection\\ConfigProvider"
-                }
-            },
-            "installation-source": "dist",
-            "autoload": {
-                "psr-4": {
-                    "Hyperf\\DbConnection\\": "src/"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "description": "A hyperf db connection handler for hyperf/database.",
-            "homepage": "https://hyperf.io",
-            "keywords": [
-                "Connection",
-                "database",
-                "hyperf",
-                "php"
-            ],
-            "support": {
-                "docs": "https://hyperf.wiki",
-                "issues": "https://github.com/hyperf/hyperf/issues",
-                "pull-request": "https://github.com/hyperf/hyperf/pulls",
-                "source": "https://github.com/hyperf/hyperf"
-            },
-            "funding": [
-                {
-                    "url": "https://hyperf.wiki/#/zh-cn/donate",
-                    "type": "custom"
-                },
-                {
-                    "url": "https://opencollective.com/hyperf",
-                    "type": "open_collective"
-                }
-            ],
-            "install-path": "../hyperf/db-connection"
-        },
-        {
-            "name": "hyperf/devtool",
-            "version": "v3.1.19",
-            "version_normalized": "3.1.19.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/hyperf/devtool.git",
-                "reference": "cdce9f26c3a18d5d0302acdf83d26d4686223476"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/hyperf/devtool/zipball/cdce9f26c3a18d5d0302acdf83d26d4686223476",
-                "reference": "cdce9f26c3a18d5d0302acdf83d26d4686223476",
-                "shasum": ""
-            },
-            "require": {
-                "hyperf/code-parser": "~3.1.0",
-                "hyperf/command": "~3.1.0",
-                "hyperf/contract": "~3.1.0",
-                "hyperf/di": "~3.1.0",
-                "hyperf/support": "~3.1.0",
-                "hyperf/utils": "~3.1.0",
-                "php": ">=8.1"
-            },
-            "time": "2024-04-13T06:53:08+00:00",
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "3.1-dev"
-                },
-                "hyperf": {
-                    "config": "Hyperf\\Devtool\\ConfigProvider"
-                }
-            },
-            "installation-source": "dist",
-            "autoload": {
-                "psr-4": {
-                    "Hyperf\\Devtool\\": "src/"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "description": "A Devtool for Hyperf.",
-            "homepage": "https://hyperf.io",
-            "keywords": [
-                "dev",
-                "devtool",
-                "hyperf",
-                "php",
-                "swoole"
-            ],
-            "support": {
-                "docs": "https://hyperf.wiki",
-                "issues": "https://github.com/hyperf/hyperf/issues",
-                "pull-request": "https://github.com/hyperf/hyperf/pulls",
-                "source": "https://github.com/hyperf/hyperf"
-            },
-            "funding": [
-                {
-                    "url": "https://hyperf.wiki/#/zh-cn/donate",
-                    "type": "custom"
-                },
-                {
-                    "url": "https://opencollective.com/hyperf",
-                    "type": "open_collective"
-                }
-            ],
-            "install-path": "../hyperf/devtool"
-        },
-        {
-            "name": "hyperf/di",
-            "version": "v3.1.28",
-            "version_normalized": "3.1.28.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/hyperf/di.git",
-                "reference": "6ffef4c7ff0d59380fa1d894ec278054b87c17cb"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/hyperf/di/zipball/6ffef4c7ff0d59380fa1d894ec278054b87c17cb",
-                "reference": "6ffef4c7ff0d59380fa1d894ec278054b87c17cb",
-                "shasum": ""
-            },
-            "require": {
-                "doctrine/instantiator": "^1.0",
-                "hyperf/code-parser": "~3.1.0",
-                "hyperf/pipeline": "~3.1.0",
-                "hyperf/stdlib": "~3.1.0",
-                "hyperf/support": "~3.1.0",
-                "nikic/php-parser": "^4.1",
-                "php": ">=8.1",
-                "php-di/phpdoc-reader": "^2.2",
-                "psr/container": "^1.0 || ^2.0",
-                "symfony/finder": "^5.0 || ^6.0 || ^7.0",
-                "vlucas/phpdotenv": "^5.0"
-            },
-            "suggest": {
-                "ext-pcntl": "Required to scan annotations.",
-                "hyperf/config": "Require this component for annotation scan progress to retrieve the scan path."
-            },
-            "time": "2024-06-26T03:31:21+00:00",
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "3.1-dev"
-                },
-                "hyperf": {
-                    "config": "Hyperf\\Di\\ConfigProvider"
-                }
-            },
-            "installation-source": "dist",
-            "autoload": {
-                "psr-4": {
-                    "Hyperf\\Di\\": "src/"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "description": "A DI for Hyperf.",
-            "homepage": "https://hyperf.io",
-            "keywords": [
-                "annotation",
-                "di",
-                "hyperf",
-                "php",
-                "swoole"
-            ],
-            "support": {
-                "docs": "https://hyperf.wiki",
-                "issues": "https://github.com/hyperf/hyperf/issues",
-                "pull-request": "https://github.com/hyperf/hyperf/pulls",
-                "source": "https://github.com/hyperf/hyperf"
-            },
-            "funding": [
-                {
-                    "url": "https://hyperf.wiki/#/zh-cn/donate",
-                    "type": "custom"
-                },
-                {
-                    "url": "https://opencollective.com/hyperf",
-                    "type": "open_collective"
-                }
-            ],
-            "install-path": "../hyperf/di"
-        },
-        {
-            "name": "hyperf/dispatcher",
-            "version": "v3.1.15",
-            "version_normalized": "3.1.15.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/hyperf/dispatcher.git",
-                "reference": "6a6f0f149081291664ff14bf34aecf2c01f89328"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/hyperf/dispatcher/zipball/6a6f0f149081291664ff14bf34aecf2c01f89328",
-                "reference": "6a6f0f149081291664ff14bf34aecf2c01f89328",
-                "shasum": ""
-            },
-            "require": {
-                "hyperf/contract": "~3.1.0",
-                "php": ">=8.1",
-                "psr/container": "^1.0|^2.0",
-                "psr/http-message": "^1.0|^2.0",
-                "psr/http-server-middleware": "^1.0"
-            },
-            "time": "2024-03-23T11:28:51+00:00",
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "3.1-dev"
-                },
-                "hyperf": {
-                    "config": "Hyperf\\Dispatcher\\ConfigProvider"
-                }
-            },
-            "installation-source": "dist",
-            "autoload": {
-                "psr-4": {
-                    "Hyperf\\Dispatcher\\": "src/"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "description": "A HTTP Server for Hyperf.",
-            "homepage": "https://hyperf.io",
-            "keywords": [
-                "dispatcher",
-                "filter",
-                "hyperf",
-                "middleware",
-                "php",
-                "swoole"
-            ],
-            "support": {
-                "docs": "https://hyperf.wiki",
-                "issues": "https://github.com/hyperf/hyperf/issues",
-                "pull-request": "https://github.com/hyperf/hyperf/pulls",
-                "source": "https://github.com/hyperf/hyperf"
-            },
-            "funding": [
-                {
-                    "url": "https://hyperf.wiki/#/zh-cn/donate",
-                    "type": "custom"
-                },
-                {
-                    "url": "https://opencollective.com/hyperf",
-                    "type": "open_collective"
-                }
-            ],
-            "install-path": "../hyperf/dispatcher"
-        },
-        {
-            "name": "hyperf/engine",
-            "version": "v2.11.0",
-            "version_normalized": "2.11.0.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/hyperf/engine.git",
-                "reference": "26e0b65fc2a63a00266e7124e221c6f3fb2c8e95"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/hyperf/engine/zipball/26e0b65fc2a63a00266e7124e221c6f3fb2c8e95",
-                "reference": "26e0b65fc2a63a00266e7124e221c6f3fb2c8e95",
-                "shasum": ""
-            },
-            "require": {
-                "hyperf/engine-contract": "~1.10.0",
-                "php": ">=8.0"
-            },
-            "conflict": {
-                "ext-swoole": "<5.0"
-            },
-            "require-dev": {
-                "friendsofphp/php-cs-fixer": "^3.0",
-                "hyperf/guzzle": "^3.0",
-                "hyperf/http-message": "^3.0",
-                "mockery/mockery": "^1.5",
-                "phpstan/phpstan": "^1.0",
-                "phpunit/phpunit": "^9.4",
-                "swoole/ide-helper": "5.*"
-            },
-            "suggest": {
-                "ext-sockets": "*",
-                "ext-swoole": ">=5.0",
-                "hyperf/http-message": "Required to use ResponseEmitter.",
-                "psr/http-message": "Required to use WebSocket Frame."
-            },
-            "time": "2024-04-17T13:36:28+00:00",
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "2.11-dev"
-                },
-                "hyperf": {
-                    "config": "Hyperf\\Engine\\ConfigProvider"
-                }
-            },
-            "installation-source": "dist",
-            "autoload": {
-                "files": [
-                    "src/Functions.php"
-                ],
-                "psr-4": {
-                    "Hyperf\\Engine\\": "src/"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "description": "Coroutine engine provided by swoole.",
-            "keywords": [
-                "engine",
-                "hyperf",
-                "php",
-                "swoole"
-            ],
-            "support": {
-                "issues": "https://github.com/hyperf/engine/issues",
-                "source": "https://github.com/hyperf/engine/tree/v2.11.0"
-            },
-            "funding": [
-                {
-                    "url": "https://hyperf.wiki/#/zh-cn/donate",
-                    "type": "custom"
-                },
-                {
-                    "url": "https://opencollective.com/hyperf",
-                    "type": "open_collective"
-                }
-            ],
-            "install-path": "../hyperf/engine"
-        },
-        {
-            "name": "hyperf/engine-contract",
-            "version": "v1.10.1",
-            "version_normalized": "1.10.1.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/hyperf/engine-contract.git",
-                "reference": "2714a8ba6d6b916e5bd373ff680df9569a4c9eef"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/hyperf/engine-contract/zipball/2714a8ba6d6b916e5bd373ff680df9569a4c9eef",
-                "reference": "2714a8ba6d6b916e5bd373ff680df9569a4c9eef",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=8.0"
-            },
-            "require-dev": {
-                "friendsofphp/php-cs-fixer": "^3.0",
-                "mockery/mockery": "^1.0",
-                "phpstan/phpstan": "^1.0",
-                "phpunit/phpunit": ">=7.0",
-                "psr/http-message": "^1.0",
-                "swoole/ide-helper": "^4.5"
-            },
-            "suggest": {
-                "psr/http-message": "Required to use WebSocket Frame."
-            },
-            "time": "2024-04-17T13:34:51+00:00",
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "1.9-dev"
-                }
-            },
-            "installation-source": "dist",
-            "autoload": {
-                "psr-4": {
-                    "Hyperf\\Engine\\Contract\\": "src/"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "description": "Contract for Coroutine Engine",
-            "keywords": [
-                "contract",
-                "coroutine",
-                "engine",
-                "hyperf",
-                "php"
-            ],
-            "support": {
-                "issues": "https://github.com/hyperf/engine-contract/issues",
-                "source": "https://github.com/hyperf/engine-contract/tree/v1.10.1"
-            },
-            "funding": [
-                {
-                    "url": "https://hyperf.wiki/#/zh-cn/donate",
-                    "type": "custom"
-                },
-                {
-                    "url": "https://opencollective.com/hyperf",
-                    "type": "open_collective"
-                }
-            ],
-            "install-path": "../hyperf/engine-contract"
-        },
-        {
-            "name": "hyperf/event",
-            "version": "v3.1.15",
-            "version_normalized": "3.1.15.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/hyperf/event.git",
-                "reference": "8d008682c028e958197589e90232bb2a1d3c77d9"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/hyperf/event/zipball/8d008682c028e958197589e90232bb2a1d3c77d9",
-                "reference": "8d008682c028e958197589e90232bb2a1d3c77d9",
-                "shasum": ""
-            },
-            "require": {
-                "hyperf/contract": "~3.1.0",
-                "hyperf/stdlib": "~3.1.0",
-                "php": ">=8.1",
-                "psr/event-dispatcher": "^1.0"
-            },
-            "suggest": {
-                "hyperf/di": "Required to use annotatioins."
-            },
-            "time": "2024-03-23T11:28:51+00:00",
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "3.1-dev"
-                },
-                "hyperf": {
-                    "config": "Hyperf\\Event\\ConfigProvider"
-                }
-            },
-            "installation-source": "dist",
-            "autoload": {
-                "psr-4": {
-                    "Hyperf\\Event\\": "src/"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "description": "an event manager that implements PSR-14.",
-            "homepage": "https://hyperf.io",
-            "keywords": [
-                "event",
-                "hyperf",
-                "php",
-                "swoole"
-            ],
-            "support": {
-                "docs": "https://hyperf.wiki",
-                "issues": "https://github.com/hyperf/hyperf/issues",
-                "pull-request": "https://github.com/hyperf/hyperf/pulls",
-                "source": "https://github.com/hyperf/hyperf"
-            },
-            "funding": [
-                {
-                    "url": "https://hyperf.wiki/#/zh-cn/donate",
-                    "type": "custom"
-                },
-                {
-                    "url": "https://opencollective.com/hyperf",
-                    "type": "open_collective"
-                }
-            ],
-            "install-path": "../hyperf/event"
-        },
-        {
-            "name": "hyperf/exception-handler",
-            "version": "v3.1.22",
-            "version_normalized": "3.1.22.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/hyperf/exception-handler.git",
-                "reference": "6eefe07081ffaa0d6534273caa96722c606da6a8"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/hyperf/exception-handler/zipball/6eefe07081ffaa0d6534273caa96722c606da6a8",
-                "reference": "6eefe07081ffaa0d6534273caa96722c606da6a8",
-                "shasum": ""
-            },
-            "require": {
-                "hyperf/context": "~3.1.0",
-                "hyperf/contract": "~3.1.0",
-                "hyperf/dispatcher": "~3.1.0",
-                "hyperf/http-message": "~3.1.0",
-                "hyperf/stdlib": "~3.1.0",
-                "hyperf/support": "~3.1.0",
-                "php": ">=8.1",
-                "psr/container": "^1.0|^2.0",
-                "psr/http-message": "^1.0|^2.0",
-                "swow/psr7-plus": "^1.0"
-            },
-            "suggest": {
-                "hyperf/di": "Required to use #[ExceptionHandler]",
-                "hyperf/event": "Required to use listeners",
-                "hyperf/framework": "Required to use listeners",
-                "hyperf/stringable": "Required to use WhoopsExceptionHandler"
-            },
-            "time": "2024-05-15T07:12:41+00:00",
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "3.1-dev"
-                },
-                "hyperf": {
-                    "config": "Hyperf\\ExceptionHandler\\ConfigProvider"
-                }
-            },
-            "installation-source": "dist",
-            "autoload": {
-                "psr-4": {
-                    "Hyperf\\ExceptionHandler\\": "src/"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "description": "Exception handler for hyperf",
-            "homepage": "https://hyperf.io",
-            "keywords": [
-                "exception-handler",
-                "php",
-                "swoole"
-            ],
-            "support": {
-                "docs": "https://hyperf.wiki",
-                "issues": "https://github.com/hyperf/hyperf/issues",
-                "pull-request": "https://github.com/hyperf/hyperf/pulls",
-                "source": "https://github.com/hyperf/hyperf"
-            },
-            "funding": [
-                {
-                    "url": "https://hyperf.wiki/#/zh-cn/donate",
-                    "type": "custom"
-                },
-                {
-                    "url": "https://opencollective.com/hyperf",
-                    "type": "open_collective"
-                }
-            ],
-            "install-path": "../hyperf/exception-handler"
-        },
-        {
-            "name": "hyperf/framework",
-            "version": "v3.1.23",
-            "version_normalized": "3.1.23.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/hyperf/framework.git",
-                "reference": "c40d529fafc197c67a64e9ca918498d417d4102c"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/hyperf/framework/zipball/c40d529fafc197c67a64e9ca918498d417d4102c",
-                "reference": "c40d529fafc197c67a64e9ca918498d417d4102c",
-                "shasum": ""
-            },
-            "require": {
-                "fig/http-message-util": "^1.1.2",
-                "hyperf/contract": "~3.1.0",
-                "hyperf/coordinator": "~3.1.0",
-                "hyperf/coroutine": "~3.1.0",
-                "php": ">=8.1",
-                "psr/container": "^1.0|^2.0",
-                "psr/event-dispatcher": "^1.0",
-                "psr/log": "^1.0|^2.0|^3.0"
-            },
-            "suggest": {
-                "ext-swoole": "Required to use swoole engine.",
-                "hyperf/command": "Required to use Command annotation.",
-                "hyperf/di": "Required to use Command annotation.",
-                "hyperf/dispatcher": "Required to use BootApplication event.",
-                "symfony/event-dispatcher": "Required to use symfony event dispatcher (^5.0|^6.0)."
-            },
-            "time": "2024-05-21T05:43:48+00:00",
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "3.1-dev"
-                },
-                "hyperf": {
-                    "config": "Hyperf\\Framework\\ConfigProvider"
-                }
-            },
-            "installation-source": "dist",
-            "autoload": {
-                "psr-4": {
-                    "Hyperf\\Framework\\": "src/"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "description": "A coroutine framework that focuses on hyperspeed and flexible, specifically use for build microservices and middlewares.",
-            "homepage": "https://hyperf.io",
-            "keywords": [
-                "Microservice",
-                "framework",
-                "hyperf",
-                "middleware",
-                "php",
-                "swoole"
-            ],
-            "support": {
-                "docs": "https://hyperf.wiki",
-                "issues": "https://github.com/hyperf/hyperf/issues",
-                "pull-request": "https://github.com/hyperf/hyperf/pulls",
-                "source": "https://github.com/hyperf/hyperf"
-            },
-            "funding": [
-                {
-                    "url": "https://hyperf.wiki/#/zh-cn/donate",
-                    "type": "custom"
-                },
-                {
-                    "url": "https://opencollective.com/hyperf",
-                    "type": "open_collective"
-                }
-            ],
-            "install-path": "../hyperf/framework"
-        },
-        {
-            "name": "hyperf/guzzle",
-            "version": "v3.1.15",
-            "version_normalized": "3.1.15.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/hyperf/guzzle.git",
-                "reference": "1281abe876925b8ef64a7372d53701fdb9a519cf"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/hyperf/guzzle/zipball/1281abe876925b8ef64a7372d53701fdb9a519cf",
-                "reference": "1281abe876925b8ef64a7372d53701fdb9a519cf",
-                "shasum": ""
-            },
-            "require": {
-                "guzzlehttp/guzzle": "^6.3|^7.0",
-                "php": ">=8.1",
-                "psr/container": "^1.0|^2.0",
-                "psr/http-message": "^1.0|^2.0"
-            },
-            "suggest": {
-                "ext-curl": "Required for CURL handler support",
-                "hyperf/pool": "Required to use pool handler."
-            },
-            "time": "2024-03-23T11:28:51+00:00",
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "3.1-dev"
-                },
-                "hyperf": {
-                    "config": "Hyperf\\Guzzle\\ConfigProvider"
-                }
-            },
-            "installation-source": "dist",
-            "autoload": {
-                "psr-4": {
-                    "Hyperf\\Guzzle\\": "src/"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "description": "Swoole coroutine handler for guzzle",
-            "keywords": [
-                "Guzzle",
-                "handler",
-                "php",
-                "swoole"
-            ],
-            "support": {
-                "issues": "https://github.com/hyperf/guzzle/issues",
-                "source": "https://github.com/hyperf/guzzle/tree/v3.1.15"
-            },
-            "funding": [
-                {
-                    "url": "https://hyperf.wiki/#/zh-cn/donate",
-                    "type": "custom"
-                },
-                {
-                    "url": "https://opencollective.com/hyperf",
-                    "type": "open_collective"
-                }
-            ],
-            "install-path": "../hyperf/guzzle"
-        },
-        {
-            "name": "hyperf/http-message",
-            "version": "v3.1.19",
-            "version_normalized": "3.1.19.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/hyperf/http-message.git",
-                "reference": "f96e372203bd6109bc1f6c15ee8eee3a76c8f92e"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/hyperf/http-message/zipball/f96e372203bd6109bc1f6c15ee8eee3a76c8f92e",
-                "reference": "f96e372203bd6109bc1f6c15ee8eee3a76c8f92e",
-                "shasum": ""
-            },
-            "require": {
-                "hyperf/codec": "~3.1.0",
-                "hyperf/engine": "^2.11",
-                "hyperf/support": "~3.1.0",
-                "laminas/laminas-mime": "^2.7",
-                "php": ">=8.1",
-                "psr/http-message": "^1.0|^2.0",
-                "swow/psr7-plus": "^1.0"
-            },
-            "suggest": {
-                "psr/container": "Required to replace RequestParserInterface."
-            },
-            "time": "2024-04-17T13:55:51+00:00",
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "3.1-dev"
-                },
-                "hyperf": {
-                    "config": "Hyperf\\HttpMessage\\ConfigProvider"
-                }
-            },
-            "installation-source": "dist",
-            "autoload": {
-                "psr-4": {
-                    "Hyperf\\HttpMessage\\": "src/"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "description": "microservice framework base on swoole",
-            "keywords": [
-                "http-message",
-                "hyperf",
-                "php",
-                "swoole"
-            ],
-            "support": {
-                "issues": "https://github.com/hyperf/http-message/issues",
-                "source": "https://github.com/hyperf/http-message/tree/v3.1.19"
-            },
-            "funding": [
-                {
-                    "url": "https://hyperf.wiki/#/zh-cn/donate",
-                    "type": "custom"
-                },
-                {
-                    "url": "https://opencollective.com/hyperf",
-                    "type": "open_collective"
-                }
-            ],
-            "install-path": "../hyperf/http-message"
-        },
-        {
-            "name": "hyperf/http-server",
-            "version": "v3.1.17",
-            "version_normalized": "3.1.17.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/hyperf/http-server.git",
-                "reference": "d2c633123dd8e7d5b2bcd1b24b7047fe3adc6424"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/hyperf/http-server/zipball/d2c633123dd8e7d5b2bcd1b24b7047fe3adc6424",
-                "reference": "d2c633123dd8e7d5b2bcd1b24b7047fe3adc6424",
-                "shasum": ""
-            },
-            "require": {
-                "hyperf/codec": "~3.1.0",
-                "hyperf/collection": "~3.1.0",
-                "hyperf/context": "~3.1.0",
-                "hyperf/contract": "~3.1.0",
-                "hyperf/coroutine": "~3.1.0",
-                "hyperf/dispatcher": "~3.1.0",
-                "hyperf/event": "~3.1.0",
-                "hyperf/exception-handler": "~3.1.0",
-                "hyperf/http-message": "~3.1.0",
-                "hyperf/macroable": "~3.1.0",
-                "hyperf/serializer": "~3.1.0",
-                "hyperf/server": "~3.1.0",
-                "hyperf/stdlib": "~3.1.0",
-                "hyperf/support": "~3.1.0",
-                "nikic/fast-route": "^1.3",
-                "php": ">=8.1",
-                "psr/container": "^1.0|^2.0",
-                "swow/psr7-plus": "^1.0"
-            },
-            "suggest": {
-                "hyperf/di": "Required to use annotations."
-            },
-            "time": "2024-04-08T07:53:54+00:00",
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "3.1-dev"
-                },
-                "hyperf": {
-                    "config": "Hyperf\\HttpServer\\ConfigProvider"
-                }
-            },
-            "installation-source": "dist",
-            "autoload": {
-                "psr-4": {
-                    "Hyperf\\HttpServer\\": "src/"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "description": "A HTTP Server for Hyperf.",
-            "homepage": "https://hyperf.io",
-            "keywords": [
-                "http",
-                "http-server",
-                "hyperf",
-                "php",
-                "swoole"
-            ],
-            "support": {
-                "docs": "https://hyperf.wiki",
-                "issues": "https://github.com/hyperf/hyperf/issues",
-                "pull-request": "https://github.com/hyperf/hyperf/pulls",
-                "source": "https://github.com/hyperf/hyperf"
-            },
-            "funding": [
-                {
-                    "url": "https://hyperf.wiki/#/zh-cn/donate",
-                    "type": "custom"
-                },
-                {
-                    "url": "https://opencollective.com/hyperf",
-                    "type": "open_collective"
-                }
-            ],
-            "install-path": "../hyperf/http-server"
-        },
-        {
-            "name": "hyperf/json-rpc",
-            "version": "v3.1.23",
-            "version_normalized": "3.1.23.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/hyperf/json-rpc.git",
-                "reference": "234a3d8f9873a3d391cf9229fc5033638c5c9a93"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/hyperf/json-rpc/zipball/234a3d8f9873a3d391cf9229fc5033638c5c9a93",
-                "reference": "234a3d8f9873a3d391cf9229fc5033638c5c9a93",
-                "shasum": ""
-            },
-            "require": {
-                "hyperf/codec": "~3.1.0",
-                "hyperf/context": "~3.1.0",
-                "hyperf/contract": "~3.1.0",
-                "hyperf/engine": "^2.0",
-                "hyperf/http-message": "~3.1.0",
-                "hyperf/load-balancer": "~3.1.0",
-                "hyperf/rpc": "~3.1.0",
-                "hyperf/serializer": "~3.1.0",
-                "hyperf/support": "~3.1.0",
-                "hyperf/utils": "~3.1.0",
-                "php": ">=8.1",
-                "psr/container": "^1.0|^2.0",
-                "swow/psr7-plus": "^1.0"
-            },
-            "suggest": {
-                "hyperf/event": "Register the objects to ProtocolManager automatically.",
-                "hyperf/framework": "Register the objects to ProtocolManager automatically.",
-                "hyperf/guzzle": "Required to use JSON RPC with HTTP protocol.",
-                "hyperf/rpc-client": "Reqiured to use JSON RPC in hyperf rpc client.",
-                "hyperf/rpc-server": "Reqiured to use JSON RPC in hyperf rpc server."
-            },
-            "time": "2024-05-23T03:43:58+00:00",
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "3.1-dev"
-                },
-                "hyperf": {
-                    "config": "Hyperf\\JsonRpc\\ConfigProvider"
-                }
-            },
-            "installation-source": "dist",
-            "autoload": {
-                "psr-4": {
-                    "Hyperf\\JsonRpc\\": "src/"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "description": "A JSON RPC component for Hyperf RPC Server or Client.",
-            "homepage": "https://hyperf.io",
-            "keywords": [
-                "hyperf",
-                "json-rpc",
-                "php",
-                "swoole"
-            ],
-            "support": {
-                "docs": "https://hyperf.wiki",
-                "issues": "https://github.com/hyperf/hyperf/issues",
-                "pull-request": "https://github.com/hyperf/hyperf/pulls",
-                "source": "https://github.com/hyperf/hyperf"
-            },
-            "funding": [
-                {
-                    "url": "https://hyperf.wiki/#/zh-cn/donate",
-                    "type": "custom"
-                },
-                {
-                    "url": "https://opencollective.com/hyperf",
-                    "type": "open_collective"
-                }
-            ],
-            "install-path": "../hyperf/json-rpc"
-        },
-        {
-            "name": "hyperf/load-balancer",
-            "version": "v3.1.15",
-            "version_normalized": "3.1.15.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/hyperf/load-balancer.git",
-                "reference": "f4bfecb7e6ef7c7cca008c90510a9e2c7f0c8f5a"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/hyperf/load-balancer/zipball/f4bfecb7e6ef7c7cca008c90510a9e2c7f0c8f5a",
-                "reference": "f4bfecb7e6ef7c7cca008c90510a9e2c7f0c8f5a",
-                "shasum": ""
-            },
-            "require": {
-                "hyperf/coordinator": "~3.1.0",
-                "hyperf/coroutine": "~3.1.0",
-                "markrogoyski/math-php": "^2.0",
-                "php": ">=8.1",
-                "psr/log": "^1.0|^2.0|^3.0"
-            },
-            "time": "2024-03-23T11:28:51+00:00",
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "3.1-dev"
-                },
-                "hyperf": {
-                    "config": "Hyperf\\LoadBalancer\\ConfigProvider"
-                }
-            },
-            "installation-source": "dist",
-            "autoload": {
-                "psr-4": {
-                    "Hyperf\\LoadBalancer\\": "src/"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "description": "A load balancer library for Hyperf.",
-            "homepage": "https://hyperf.io",
-            "keywords": [
-                "hyperf",
-                "load-balancer",
-                "php",
-                "swoole"
-            ],
-            "support": {
-                "docs": "https://hyperf.wiki",
-                "issues": "https://github.com/hyperf/hyperf/issues",
-                "pull-request": "https://github.com/hyperf/hyperf/pulls",
-                "source": "https://github.com/hyperf/hyperf"
-            },
-            "funding": [
-                {
-                    "url": "https://hyperf.wiki/#/zh-cn/donate",
-                    "type": "custom"
-                },
-                {
-                    "url": "https://opencollective.com/hyperf",
-                    "type": "open_collective"
-                }
-            ],
-            "install-path": "../hyperf/load-balancer"
-        },
-        {
-            "name": "hyperf/logger",
-            "version": "v3.1.15",
-            "version_normalized": "3.1.15.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/hyperf/logger.git",
-                "reference": "014f511449f84f6dea0cf368531ac07f31408496"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/hyperf/logger/zipball/014f511449f84f6dea0cf368531ac07f31408496",
-                "reference": "014f511449f84f6dea0cf368531ac07f31408496",
-                "shasum": ""
-            },
-            "require": {
-                "hyperf/contract": "~3.1.0",
-                "hyperf/support": "~3.1.0",
-                "hyperf/utils": "~3.1.0",
-                "monolog/monolog": "^2.7|^3.1",
-                "php": ">=8.1",
-                "psr/container": "^1.0|^2.0",
-                "psr/log": "^1.0|^2.0|^3.0"
-            },
-            "time": "2024-03-23T11:28:51+00:00",
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "3.1-dev"
-                },
-                "hyperf": {
-                    "config": "Hyperf\\Logger\\ConfigProvider"
-                }
-            },
-            "installation-source": "dist",
-            "autoload": {
-                "psr-4": {
-                    "Hyperf\\Logger\\": "src/"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "description": "A logger component for hyperf.",
-            "homepage": "https://hyperf.io",
-            "keywords": [
-                "hyperf",
-                "logger",
-                "php"
-            ],
-            "support": {
-                "docs": "https://hyperf.wiki",
-                "issues": "https://github.com/hyperf/hyperf/issues",
-                "pull-request": "https://github.com/hyperf/hyperf/pulls",
-                "source": "https://github.com/hyperf/hyperf"
-            },
-            "funding": [
-                {
-                    "url": "https://hyperf.wiki/#/zh-cn/donate",
-                    "type": "custom"
-                },
-                {
-                    "url": "https://opencollective.com/hyperf",
-                    "type": "open_collective"
-                }
-            ],
-            "install-path": "../hyperf/logger"
-        },
-        {
-            "name": "hyperf/macroable",
-            "version": "v3.1.23",
-            "version_normalized": "3.1.23.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/hyperf/macroable.git",
-                "reference": "5f555c40bfec6aaab46f1bb1cac9ef556fbfbe72"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/hyperf/macroable/zipball/5f555c40bfec6aaab46f1bb1cac9ef556fbfbe72",
-                "reference": "5f555c40bfec6aaab46f1bb1cac9ef556fbfbe72",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=8.1"
-            },
-            "time": "2024-05-20T09:55:40+00:00",
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "3.1-dev"
-                }
-            },
-            "installation-source": "dist",
-            "autoload": {
-                "psr-4": {
-                    "Hyperf\\Macroable\\": "src/"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "description": "Hyperf Macroable package which come from illuminate/macroable",
-            "homepage": "https://hyperf.io",
-            "keywords": [
-                "hyperf",
-                "macroable",
-                "php",
-                "swoole"
-            ],
-            "support": {
-                "docs": "https://hyperf.wiki",
-                "issues": "https://github.com/hyperf/hyperf/issues",
-                "pull-request": "https://github.com/hyperf/hyperf/pulls",
-                "source": "https://github.com/hyperf/hyperf"
-            },
-            "funding": [
-                {
-                    "url": "https://hyperf.wiki/#/zh-cn/donate",
-                    "type": "custom"
-                },
-                {
-                    "url": "https://opencollective.com/hyperf",
-                    "type": "open_collective"
-                }
-            ],
-            "install-path": "../hyperf/macroable"
-        },
-        {
-            "name": "hyperf/memory",
-            "version": "v3.1.15",
-            "version_normalized": "3.1.15.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/hyperf/memory.git",
-                "reference": "1ad9df27b0817e74bb31b000735072c75fb41943"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/hyperf/memory/zipball/1ad9df27b0817e74bb31b000735072c75fb41943",
-                "reference": "1ad9df27b0817e74bb31b000735072c75fb41943",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=8.1"
-            },
-            "time": "2024-03-23T11:28:51+00:00",
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "3.1-dev"
-                },
-                "hyperf": {
-                    "config": "Hyperf\\Memory\\ConfigProvider"
-                }
-            },
-            "installation-source": "dist",
-            "autoload": {
-                "psr-4": {
-                    "Hyperf\\Memory\\": "src/"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "description": "An independent component that use to operate and manage memory.",
-            "homepage": "https://hyperf.io",
-            "keywords": [
-                "hyperf",
-                "memory",
-                "php",
-                "swoole"
-            ],
-            "support": {
-                "docs": "https://hyperf.wiki",
-                "issues": "https://github.com/hyperf/hyperf/issues",
-                "pull-request": "https://github.com/hyperf/hyperf/pulls",
-                "source": "https://github.com/hyperf/hyperf"
-            },
-            "funding": [
-                {
-                    "url": "https://hyperf.wiki/#/zh-cn/donate",
-                    "type": "custom"
-                },
-                {
-                    "url": "https://opencollective.com/hyperf",
-                    "type": "open_collective"
-                }
-            ],
-            "install-path": "../hyperf/memory"
-        },
-        {
-            "name": "hyperf/model-listener",
-            "version": "v3.1.15",
-            "version_normalized": "3.1.15.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/hyperf/model-listener.git",
-                "reference": "a65804ea8cac4e383d275a1fff7f79cd6f387da6"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/hyperf/model-listener/zipball/a65804ea8cac4e383d275a1fff7f79cd6f387da6",
-                "reference": "a65804ea8cac4e383d275a1fff7f79cd6f387da6",
-                "shasum": ""
-            },
-            "require": {
-                "hyperf/contract": "~3.1.0",
-                "hyperf/database": "~3.1.0",
-                "hyperf/di": "~3.1.0",
-                "hyperf/event": "~3.1.0",
-                "hyperf/support": "~3.1.0",
-                "hyperf/utils": "~3.1.0",
-                "php": ">=8.1",
-                "psr/container": "^1.0|^2.0"
-            },
-            "time": "2024-03-23T11:28:51+00:00",
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "3.1-dev"
-                },
-                "hyperf": {
-                    "config": "Hyperf\\ModelListener\\ConfigProvider"
-                }
-            },
-            "installation-source": "dist",
-            "autoload": {
-                "psr-4": {
-                    "Hyperf\\ModelListener\\": "src/"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "description": "A model listener for Hyperf.",
-            "homepage": "https://hyperf.io",
-            "keywords": [
-                "hyperf",
-                "model-listener",
-                "php",
-                "swoole"
-            ],
-            "support": {
-                "docs": "https://hyperf.wiki",
-                "issues": "https://github.com/hyperf/hyperf/issues",
-                "pull-request": "https://github.com/hyperf/hyperf/pulls",
-                "source": "https://github.com/hyperf/hyperf"
-            },
-            "funding": [
-                {
-                    "url": "https://hyperf.wiki/#/zh-cn/donate",
-                    "type": "custom"
-                },
-                {
-                    "url": "https://opencollective.com/hyperf",
-                    "type": "open_collective"
-                }
-            ],
-            "install-path": "../hyperf/model-listener"
-        },
-        {
-            "name": "hyperf/nacos",
-            "version": "v3.1.15",
-            "version_normalized": "3.1.15.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/hyperf/nacos.git",
-                "reference": "b0dbfdf67f12740faab73a9496269f230c7459be"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/hyperf/nacos/zipball/b0dbfdf67f12740faab73a9496269f230c7459be",
-                "reference": "b0dbfdf67f12740faab73a9496269f230c7459be",
-                "shasum": ""
-            },
-            "require": {
-                "guzzlehttp/guzzle": "^6.5|^7.0",
-                "hyperf/codec": "~3.1.0",
-                "hyperf/contract": "~3.1.0",
-                "hyperf/support": "~3.1.0",
-                "hyperf/utils": "~3.1.0",
-                "jetbrains/phpstorm-attributes": "^1.0",
-                "php": ">=8.1"
-            },
-            "time": "2024-03-23T11:28:51+00:00",
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "3.1-dev"
-                },
-                "hyperf": {
-                    "config": "Hyperf\\Nacos\\ConfigProvider"
-                }
-            },
-            "installation-source": "dist",
-            "autoload": {
-                "psr-4": {
-                    "Hyperf\\Nacos\\": "src/"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "description": "Nacos SDK",
-            "keywords": [
-                "hyperf",
-                "nacos",
-                "php"
-            ],
-            "support": {
-                "issues": "https://github.com/hyperf/nacos/issues",
-                "source": "https://github.com/hyperf/nacos/tree/v3.1.15"
-            },
-            "funding": [
-                {
-                    "url": "https://hyperf.wiki/#/zh-cn/donate",
-                    "type": "custom"
-                },
-                {
-                    "url": "https://opencollective.com/hyperf",
-                    "type": "open_collective"
-                }
-            ],
-            "install-path": "../hyperf/nacos"
-        },
-        {
-            "name": "hyperf/paginator",
-            "version": "v3.1.42",
-            "version_normalized": "3.1.42.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/hyperf/paginator.git",
-                "reference": "b637a3deeee69f4a3e5a6d62ab8214244b98412a"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/hyperf/paginator/zipball/b637a3deeee69f4a3e5a6d62ab8214244b98412a",
-                "reference": "b637a3deeee69f4a3e5a6d62ab8214244b98412a",
-                "shasum": ""
-            },
-            "require": {
-                "hyperf/contract": "~3.1.0",
-                "hyperf/support": "~3.1.0",
-                "hyperf/utils": "~3.1.0",
-                "php": ">=8.1"
-            },
-            "suggest": {
-                "hyperf/event": "Reqiured to use PageResolverListener.",
-                "hyperf/framework": "Reqiured to use PageResolverListener.",
-                "hyperf/http-server": "Reqiured to use PageResolverListener."
-            },
-            "time": "2024-09-25T02:54:12+00:00",
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "3.1-dev"
-                },
-                "hyperf": {
-                    "config": "Hyperf\\Paginator\\ConfigProvider"
-                }
-            },
-            "installation-source": "dist",
-            "autoload": {
-                "psr-4": {
-                    "Hyperf\\Paginator\\": "src/"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "description": "A paginator component for hyperf.",
-            "homepage": "https://hyperf.io",
-            "keywords": [
-                "hyperf",
-                "paginator",
-                "php"
-            ],
-            "support": {
-                "docs": "https://hyperf.wiki",
-                "issues": "https://github.com/hyperf/hyperf/issues",
-                "pull-request": "https://github.com/hyperf/hyperf/pulls",
-                "source": "https://github.com/hyperf/hyperf"
-            },
-            "funding": [
-                {
-                    "url": "https://hyperf.wiki/#/zh-cn/donate",
-                    "type": "custom"
-                },
-                {
-                    "url": "https://opencollective.com/hyperf",
-                    "type": "open_collective"
-                }
-            ],
-            "install-path": "../hyperf/paginator"
-        },
-        {
-            "name": "hyperf/pipeline",
-            "version": "v3.1.15",
-            "version_normalized": "3.1.15.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/hyperf/pipeline.git",
-                "reference": "ad4dbaeea2dc1166bb02e3ac5572f4eb773315a8"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/hyperf/pipeline/zipball/ad4dbaeea2dc1166bb02e3ac5572f4eb773315a8",
-                "reference": "ad4dbaeea2dc1166bb02e3ac5572f4eb773315a8",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=8.1",
-                "psr/container": "^1.0|^2.0"
-            },
-            "time": "2024-03-23T11:28:51+00:00",
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "3.1-dev"
-                }
-            },
-            "installation-source": "dist",
-            "autoload": {
-                "psr-4": {
-                    "Hyperf\\Pipeline\\": "src/"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "description": "Hyperf Macroable package which come from illuminate/pipeline",
-            "homepage": "https://hyperf.io",
-            "keywords": [
-                "hyperf",
-                "php",
-                "pipeline",
-                "swoole"
-            ],
-            "support": {
-                "docs": "https://hyperf.wiki",
-                "issues": "https://github.com/hyperf/hyperf/issues",
-                "pull-request": "https://github.com/hyperf/hyperf/pulls",
-                "source": "https://github.com/hyperf/hyperf"
-            },
-            "funding": [
-                {
-                    "url": "https://hyperf.wiki/#/zh-cn/donate",
-                    "type": "custom"
-                },
-                {
-                    "url": "https://opencollective.com/hyperf",
-                    "type": "open_collective"
-                }
-            ],
-            "install-path": "../hyperf/pipeline"
-        },
-        {
-            "name": "hyperf/pool",
-            "version": "v3.1.15",
-            "version_normalized": "3.1.15.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/hyperf/pool.git",
-                "reference": "34d907adf5bb2727160bfcdeafe0e98cab00d6c7"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/hyperf/pool/zipball/34d907adf5bb2727160bfcdeafe0e98cab00d6c7",
-                "reference": "34d907adf5bb2727160bfcdeafe0e98cab00d6c7",
-                "shasum": ""
-            },
-            "require": {
-                "hyperf/contract": "~3.1.0",
-                "hyperf/support": "~3.1.0",
-                "hyperf/utils": "~3.1.0",
-                "php": ">=8.1",
-                "psr/container": "^1.0|^2.0"
-            },
-            "suggest": {
-                "psr/event-dispatcher": "Required to use events."
-            },
-            "time": "2024-03-23T11:28:51+00:00",
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "3.1-dev"
-                },
-                "hyperf": {
-                    "config": "Hyperf\\Pool\\ConfigProvider"
-                }
-            },
-            "installation-source": "dist",
-            "autoload": {
-                "psr-4": {
-                    "Hyperf\\Pool\\": "src/"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "description": "An independent universal connection pool component.",
-            "homepage": "https://hyperf.io",
-            "keywords": [
-                "connection-pool",
-                "hyperf",
-                "php",
-                "swoole"
-            ],
-            "support": {
-                "docs": "https://hyperf.wiki",
-                "issues": "https://github.com/hyperf/hyperf/issues",
-                "pull-request": "https://github.com/hyperf/hyperf/pulls",
-                "source": "https://github.com/hyperf/hyperf"
-            },
-            "funding": [
-                {
-                    "url": "https://hyperf.wiki/#/zh-cn/donate",
-                    "type": "custom"
-                },
-                {
-                    "url": "https://opencollective.com/hyperf",
-                    "type": "open_collective"
-                }
-            ],
-            "install-path": "../hyperf/pool"
-        },
-        {
-            "name": "hyperf/process",
-            "version": "v3.1.15",
-            "version_normalized": "3.1.15.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/hyperf/process.git",
-                "reference": "2d45d4002a64f23406e3c36d3edf5da42147156b"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/hyperf/process/zipball/2d45d4002a64f23406e3c36d3edf5da42147156b",
-                "reference": "2d45d4002a64f23406e3c36d3edf5da42147156b",
-                "shasum": ""
-            },
-            "require": {
-                "hyperf/contract": "~3.1.0",
-                "hyperf/support": "~3.1.0",
-                "hyperf/utils": "~3.1.0",
-                "php": ">=8.1",
-                "psr/container": "^1.0|^2.0",
-                "psr/event-dispatcher": "^1.0"
-            },
-            "suggest": {
-                "hyperf/di": "Required to use annotations.",
-                "hyperf/event": "Required to dump the message before and after process.",
-                "hyperf/framework": "Required to use BootProcessListener."
-            },
-            "time": "2024-03-23T11:28:51+00:00",
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "3.1-dev"
-                },
-                "hyperf": {
-                    "config": "Hyperf\\Process\\ConfigProvider"
-                }
-            },
-            "installation-source": "dist",
-            "autoload": {
-                "psr-4": {
-                    "Hyperf\\Process\\": "src/"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "description": "A process component for hyperf.",
-            "homepage": "https://hyperf.io",
-            "keywords": [
-                "hyperf",
-                "php",
-                "process"
-            ],
-            "support": {
-                "docs": "https://hyperf.wiki",
-                "issues": "https://github.com/hyperf/hyperf/issues",
-                "pull-request": "https://github.com/hyperf/hyperf/pulls",
-                "source": "https://github.com/hyperf/hyperf"
-            },
-            "funding": [
-                {
-                    "url": "https://hyperf.wiki/#/zh-cn/donate",
-                    "type": "custom"
-                },
-                {
-                    "url": "https://opencollective.com/hyperf",
-                    "type": "open_collective"
-                }
-            ],
-            "install-path": "../hyperf/process"
-        },
-        {
-            "name": "hyperf/redis",
-            "version": "v3.1.18",
-            "version_normalized": "3.1.18.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/hyperf/redis.git",
-                "reference": "85bea22b580bc32dd1d8e8750936b1d386e8deca"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/hyperf/redis/zipball/85bea22b580bc32dd1d8e8750936b1d386e8deca",
-                "reference": "85bea22b580bc32dd1d8e8750936b1d386e8deca",
-                "shasum": ""
-            },
-            "require": {
-                "ext-redis": "^5.0|^6.0",
-                "hyperf/contract": "~3.1.0",
-                "hyperf/pool": "~3.1.0",
-                "hyperf/support": "~3.1.0",
-                "hyperf/tappable": "~3.1.0",
-                "hyperf/utils": "~3.1.0",
-                "php": ">=8.1",
-                "psr/container": "^1.0|^2.0"
-            },
-            "suggest": {
-                "ext-redis": "Required to use sentinel mode (>=5.2).",
-                "hyperf/di": "Create the RedisPool via dependency injection."
-            },
-            "time": "2024-04-11T10:18:35+00:00",
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "3.1-dev"
-                },
-                "hyperf": {
-                    "config": "Hyperf\\Redis\\ConfigProvider"
-                }
-            },
-            "installation-source": "dist",
-            "autoload": {
-                "psr-4": {
-                    "Hyperf\\Redis\\": "src/"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "description": "A redis component for hyperf.",
-            "homepage": "https://hyperf.io",
-            "keywords": [
-                "hyperf",
-                "php",
-                "pool",
-                "redis"
-            ],
-            "support": {
-                "docs": "https://hyperf.wiki",
-                "issues": "https://github.com/hyperf/hyperf/issues",
-                "pull-request": "https://github.com/hyperf/hyperf/pulls",
-                "source": "https://github.com/hyperf/hyperf"
-            },
-            "funding": [
-                {
-                    "url": "https://hyperf.wiki/#/zh-cn/donate",
-                    "type": "custom"
-                },
-                {
-                    "url": "https://opencollective.com/hyperf",
-                    "type": "open_collective"
-                }
-            ],
-            "install-path": "../hyperf/redis"
-        },
-        {
-            "name": "hyperf/rpc",
-            "version": "v3.1.15",
-            "version_normalized": "3.1.15.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/hyperf/rpc.git",
-                "reference": "f5b0109aec760272357270662ad0914c4848b8c0"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/hyperf/rpc/zipball/f5b0109aec760272357270662ad0914c4848b8c0",
-                "reference": "f5b0109aec760272357270662ad0914c4848b8c0",
-                "shasum": ""
-            },
-            "require": {
-                "hyperf/codec": "~3.1.0",
-                "hyperf/contract": "~3.1.0",
-                "hyperf/support": "~3.1.0",
-                "jetbrains/phpstorm-attributes": "^1.0",
-                "php": ">=8.1"
-            },
-            "time": "2024-03-23T11:28:51+00:00",
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "3.1-dev"
-                },
-                "hyperf": []
-            },
-            "installation-source": "dist",
-            "autoload": {
-                "psr-4": {
-                    "Hyperf\\Rpc\\": "src/"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "description": "A rpc basic library for Hyperf.",
-            "homepage": "https://hyperf.io",
-            "keywords": [
-                "hyperf",
-                "php",
-                "rpc",
-                "swoole"
-            ],
-            "support": {
-                "docs": "https://hyperf.wiki",
-                "issues": "https://github.com/hyperf/hyperf/issues",
-                "pull-request": "https://github.com/hyperf/hyperf/pulls",
-                "source": "https://github.com/hyperf/hyperf"
-            },
-            "funding": [
-                {
-                    "url": "https://hyperf.wiki/#/zh-cn/donate",
-                    "type": "custom"
-                },
-                {
-                    "url": "https://opencollective.com/hyperf",
-                    "type": "open_collective"
-                }
-            ],
-            "install-path": "../hyperf/rpc"
-        },
-        {
-            "name": "hyperf/rpc-server",
-            "version": "v3.1.20",
-            "version_normalized": "3.1.20.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/hyperf/rpc-server.git",
-                "reference": "9c820dc51893c6443c01fd0f2f534fc4bcc8a4f1"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/hyperf/rpc-server/zipball/9c820dc51893c6443c01fd0f2f534fc4bcc8a4f1",
-                "reference": "9c820dc51893c6443c01fd0f2f534fc4bcc8a4f1",
-                "shasum": ""
-            },
-            "require": {
-                "hyperf/http-server": "~3.1.0",
-                "hyperf/rpc": "~3.1.0",
-                "php": ">=8.1"
-            },
-            "suggest": {
-                "hyperf/di": "Required to use annotations."
-            },
-            "time": "2024-04-22T01:46:29+00:00",
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "3.1-dev"
-                },
-                "hyperf": {
-                    "config": "Hyperf\\RpcServer\\ConfigProvider"
-                }
-            },
-            "installation-source": "dist",
-            "autoload": {
-                "psr-4": {
-                    "Hyperf\\RpcServer\\": "src/"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "description": "An abstract rpc server component for Hyperf.",
-            "homepage": "https://hyperf.io",
-            "keywords": [
-                "hyperf",
-                "php",
-                "rpc",
-                "rpc-server",
-                "swoole"
-            ],
-            "support": {
-                "docs": "https://hyperf.wiki",
-                "issues": "https://github.com/hyperf/hyperf/issues",
-                "pull-request": "https://github.com/hyperf/hyperf/pulls",
-                "source": "https://github.com/hyperf/hyperf"
-            },
-            "funding": [
-                {
-                    "url": "https://hyperf.wiki/#/zh-cn/donate",
-                    "type": "custom"
-                },
-                {
-                    "url": "https://opencollective.com/hyperf",
-                    "type": "open_collective"
-                }
-            ],
-            "install-path": "../hyperf/rpc-server"
-        },
-        {
-            "name": "hyperf/serializer",
-            "version": "v3.1.23",
-            "version_normalized": "3.1.23.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/hyperf/serializer.git",
-                "reference": "d9b4f012565c90176c7cc117043c5907ea3795bb"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/hyperf/serializer/zipball/d9b4f012565c90176c7cc117043c5907ea3795bb",
-                "reference": "d9b4f012565c90176c7cc117043c5907ea3795bb",
-                "shasum": ""
-            },
-            "require": {
-                "hyperf/contract": "~3.1.0",
-                "php": ">=8.1"
-            },
-            "suggest": {
-                "hyperf/di": "Required to use ExceptionNormalizer",
-                "symfony/property-access": "Required to use SymfonyNormalizer (^5.0|^6.0)",
-                "symfony/serializer": "Required to use SymfonyNormalizer (^5.0|^6.0)"
-            },
-            "time": "2024-05-23T03:43:58+00:00",
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "3.1-dev"
-                },
-                "hyperf": {
-                    "config": "Hyperf\\Serializer\\ConfigProvider"
-                }
-            },
-            "installation-source": "dist",
-            "autoload": {
-                "psr-4": {
-                    "Hyperf\\Serializer\\": "src/"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "description": "A serializer component for Hyperf.",
-            "homepage": "https://hyperf.io",
-            "keywords": [
-                "hyperf",
-                "php",
-                "swoole",
-                "tappable"
-            ],
-            "support": {
-                "docs": "https://hyperf.wiki",
-                "issues": "https://github.com/hyperf/hyperf/issues",
-                "pull-request": "https://github.com/hyperf/hyperf/pulls",
-                "source": "https://github.com/hyperf/hyperf"
-            },
-            "funding": [
-                {
-                    "url": "https://hyperf.wiki/#/zh-cn/donate",
-                    "type": "custom"
-                },
-                {
-                    "url": "https://opencollective.com/hyperf",
-                    "type": "open_collective"
-                }
-            ],
-            "install-path": "../hyperf/serializer"
-        },
-        {
-            "name": "hyperf/server",
-            "version": "v3.1.23",
-            "version_normalized": "3.1.23.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/hyperf/server.git",
-                "reference": "56c34b808df8f1e85991c26ee47c17025a29581c"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/hyperf/server/zipball/56c34b808df8f1e85991c26ee47c17025a29581c",
-                "reference": "56c34b808df8f1e85991c26ee47c17025a29581c",
-                "shasum": ""
-            },
-            "require": {
-                "hyperf/contract": "~3.1.0",
-                "hyperf/coordinator": "~3.1.0",
-                "hyperf/engine": "^2.8",
-                "hyperf/support": "~3.1.0",
-                "hyperf/tappable": "~3.1.0",
-                "php": ">=8.1",
-                "psr/container": "^1.0|^2.0",
-                "psr/event-dispatcher": "^1.0",
-                "psr/log": "^1.0|^2.0|^3.0",
-                "symfony/console": "^5.0|^6.0|^7.0"
-            },
-            "suggest": {
-                "hyperf/event": "Dump the info after server start.",
-                "hyperf/framework": "Dump the info after server start."
-            },
-            "time": "2024-05-23T03:43:58+00:00",
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "3.1-dev"
-                },
-                "hyperf": {
-                    "config": "Hyperf\\Server\\ConfigProvider"
-                }
-            },
-            "installation-source": "dist",
-            "autoload": {
-                "psr-4": {
-                    "Hyperf\\Server\\": "src/"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "description": "A base server library for Hyperf.",
-            "homepage": "https://hyperf.io",
-            "keywords": [
-                "hyperf",
-                "php",
-                "server",
-                "swoole"
-            ],
-            "support": {
-                "docs": "https://hyperf.wiki",
-                "issues": "https://github.com/hyperf/hyperf/issues",
-                "pull-request": "https://github.com/hyperf/hyperf/pulls",
-                "source": "https://github.com/hyperf/hyperf"
-            },
-            "funding": [
-                {
-                    "url": "https://hyperf.wiki/#/zh-cn/donate",
-                    "type": "custom"
-                },
-                {
-                    "url": "https://opencollective.com/hyperf",
-                    "type": "open_collective"
-                }
-            ],
-            "install-path": "../hyperf/server"
-        },
-        {
-            "name": "hyperf/service-governance",
-            "version": "v3.1.15",
-            "version_normalized": "3.1.15.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/hyperf/service-governance.git",
-                "reference": "e2d11bc91cc0ac5c32bf0ffa3a8c95ef3987b06a"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/hyperf/service-governance/zipball/e2d11bc91cc0ac5c32bf0ffa3a8c95ef3987b06a",
-                "reference": "e2d11bc91cc0ac5c32bf0ffa3a8c95ef3987b06a",
-                "shasum": ""
-            },
-            "require": {
-                "hyperf/contract": "~3.1.0",
-                "hyperf/support": "~3.1.0",
-                "jetbrains/phpstorm-attributes": "^1.0",
-                "php": ">=8.1"
-            },
-            "suggest": {
-                "hyperf/event": "Required to use RegisterServiceListener.",
-                "hyperf/framework": "Required to use RegisterServiceListener.",
-                "hyperf/service-governance-consul": "Required to use consul adapter.",
-                "hyperf/service-governance-nacos": "Required to use nacos adapter."
-            },
-            "time": "2024-03-23T11:28:51+00:00",
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "3.1-dev"
-                },
-                "hyperf": {
-                    "config": "Hyperf\\ServiceGovernance\\ConfigProvider"
-                }
-            },
-            "installation-source": "dist",
-            "autoload": {
-                "psr-4": {
-                    "Hyperf\\ServiceGovernance\\": "src/"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "description": "A service governance component for Hyperf.",
-            "homepage": "https://hyperf.io",
-            "keywords": [
-                "hyperf",
-                "php",
-                "service-governance",
-                "swoole"
-            ],
-            "support": {
-                "docs": "https://hyperf.wiki",
-                "issues": "https://github.com/hyperf/hyperf/issues",
-                "pull-request": "https://github.com/hyperf/hyperf/pulls",
-                "source": "https://github.com/hyperf/hyperf"
-            },
-            "funding": [
-                {
-                    "url": "https://hyperf.wiki/#/zh-cn/donate",
-                    "type": "custom"
-                },
-                {
-                    "url": "https://opencollective.com/hyperf",
-                    "type": "open_collective"
-                }
-            ],
-            "install-path": "../hyperf/service-governance"
-        },
-        {
-            "name": "hyperf/service-governance-consul",
-            "version": "v3.1.15",
-            "version_normalized": "3.1.15.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/hyperf/service-governance-consul.git",
-                "reference": "fba1aa56a3298559ff290de9640e6eb5cfcf9ce4"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/hyperf/service-governance-consul/zipball/fba1aa56a3298559ff290de9640e6eb5cfcf9ce4",
-                "reference": "fba1aa56a3298559ff290de9640e6eb5cfcf9ce4",
-                "shasum": ""
-            },
-            "require": {
-                "hyperf/consul": "~3.1.0",
-                "hyperf/contract": "~3.1.0",
-                "hyperf/service-governance": "~3.1.0",
-                "hyperf/support": "~3.1.0",
-                "hyperf/utils": "~3.1.0",
-                "php": ">=8.1"
-            },
-            "time": "2024-03-23T11:28:51+00:00",
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "3.1-dev"
-                },
-                "hyperf": {
-                    "config": "Hyperf\\ServiceGovernanceConsul\\ConfigProvider"
-                }
-            },
-            "installation-source": "dist",
-            "autoload": {
-                "psr-4": {
-                    "Hyperf\\ServiceGovernanceConsul\\": "src/"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "description": "A consul adapter for service governance.",
-            "homepage": "https://hyperf.io",
-            "keywords": [
-                "consul-adapter",
-                "hyperf",
-                "php",
-                "service-governance",
-                "swoole"
-            ],
-            "support": {
-                "docs": "https://hyperf.wiki",
-                "issues": "https://github.com/hyperf/hyperf/issues",
-                "pull-request": "https://github.com/hyperf/hyperf/pulls",
-                "source": "https://github.com/hyperf/hyperf"
-            },
-            "funding": [
-                {
-                    "url": "https://hyperf.wiki/#/zh-cn/donate",
-                    "type": "custom"
-                },
-                {
-                    "url": "https://opencollective.com/hyperf",
-                    "type": "open_collective"
-                }
-            ],
-            "install-path": "../hyperf/service-governance-consul"
-        },
-        {
-            "name": "hyperf/service-governance-nacos",
-            "version": "v3.1.15",
-            "version_normalized": "3.1.15.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/hyperf/service-governance-nacos.git",
-                "reference": "8f27ed823c17f55c88aa81ff31003f8995fa87cf"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/hyperf/service-governance-nacos/zipball/8f27ed823c17f55c88aa81ff31003f8995fa87cf",
-                "reference": "8f27ed823c17f55c88aa81ff31003f8995fa87cf",
-                "shasum": ""
-            },
-            "require": {
-                "hyperf/codec": "~3.1.0",
-                "hyperf/contract": "~3.1.0",
-                "hyperf/nacos": "~3.1.0",
-                "hyperf/service-governance": "~3.1.0",
-                "hyperf/support": "~3.1.0",
-                "hyperf/utils": "~3.1.0",
-                "php": ">=8.1"
-            },
-            "time": "2024-03-23T11:28:51+00:00",
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "3.1-dev"
-                },
-                "hyperf": {
-                    "config": "Hyperf\\ServiceGovernanceNacos\\ConfigProvider"
-                }
-            },
-            "installation-source": "dist",
-            "autoload": {
-                "psr-4": {
-                    "Hyperf\\ServiceGovernanceNacos\\": "src/"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "description": "A nacos adapter for service governance.",
-            "homepage": "https://hyperf.io",
-            "keywords": [
-                "hyperf",
-                "nacos-adapter",
-                "php",
-                "service-governance",
-                "swoole"
-            ],
-            "support": {
-                "docs": "https://hyperf.wiki",
-                "issues": "https://github.com/hyperf/hyperf/issues",
-                "pull-request": "https://github.com/hyperf/hyperf/pulls",
-                "source": "https://github.com/hyperf/hyperf"
-            },
-            "funding": [
-                {
-                    "url": "https://hyperf.wiki/#/zh-cn/donate",
-                    "type": "custom"
-                },
-                {
-                    "url": "https://opencollective.com/hyperf",
-                    "type": "open_collective"
-                }
-            ],
-            "install-path": "../hyperf/service-governance-nacos"
-        },
-        {
-            "name": "hyperf/stdlib",
-            "version": "v3.1.15",
-            "version_normalized": "3.1.15.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/hyperf/stdlib.git",
-                "reference": "636fdc1f15d9357b4747fa649874725f2276b118"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/hyperf/stdlib/zipball/636fdc1f15d9357b4747fa649874725f2276b118",
-                "reference": "636fdc1f15d9357b4747fa649874725f2276b118",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=8.1"
-            },
-            "time": "2024-03-23T11:28:51+00:00",
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "3.1-dev"
-                }
-            },
-            "installation-source": "dist",
-            "autoload": {
-                "psr-4": {
-                    "Hyperf\\Stdlib\\": "src/"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "description": "A stdlib component for Hyperf.",
-            "homepage": "https://hyperf.io",
-            "keywords": [
-                "hyperf",
-                "php",
-                "stdlib",
-                "swoole"
-            ],
-            "support": {
-                "docs": "https://hyperf.wiki",
-                "issues": "https://github.com/hyperf/hyperf/issues",
-                "pull-request": "https://github.com/hyperf/hyperf/pulls",
-                "source": "https://github.com/hyperf/hyperf"
-            },
-            "funding": [
-                {
-                    "url": "https://hyperf.wiki/#/zh-cn/donate",
-                    "type": "custom"
-                },
-                {
-                    "url": "https://opencollective.com/hyperf",
-                    "type": "open_collective"
-                }
-            ],
-            "install-path": "../hyperf/stdlib"
-        },
-        {
-            "name": "hyperf/stringable",
-            "version": "v3.1.24",
-            "version_normalized": "3.1.24.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/hyperf/stringable.git",
-                "reference": "ee6b1788489ddb0c06c8f12ed5ccfa70dfa7efbc"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/hyperf/stringable/zipball/ee6b1788489ddb0c06c8f12ed5ccfa70dfa7efbc",
-                "reference": "ee6b1788489ddb0c06c8f12ed5ccfa70dfa7efbc",
-                "shasum": ""
-            },
-            "require": {
-                "ext-mbstring": "*",
-                "hyperf/collection": "~3.1.0",
-                "hyperf/conditionable": "~3.1.0",
-                "hyperf/macroable": "~3.1.0",
-                "hyperf/tappable": "~3.1.0",
-                "php": ">=8.1"
-            },
-            "suggest": {
-                "doctrine/inflector": "Required to use plural and singular methods.(^2.0|^3.0)",
-                "ramsey/uuid": "Required to use uuid and orderedUuid methods.(^4.7|^5.0)",
-                "symfony/uid": "Required to use ulid method.(^5.0|^6.0)"
-            },
-            "time": "2024-05-27T03:20:24+00:00",
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "3.1-dev"
-                }
-            },
-            "installation-source": "dist",
-            "autoload": {
-                "files": [
-                    "src/Functions.php"
-                ],
-                "psr-4": {
-                    "Hyperf\\Stringable\\": "src/"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "description": "Hyperf Stringable package which come from illuminate/support",
-            "homepage": "https://hyperf.io",
-            "keywords": [
-                "hyperf",
-                "php",
-                "stringable",
-                "swoole"
-            ],
-            "support": {
-                "docs": "https://hyperf.wiki",
-                "issues": "https://github.com/hyperf/hyperf/issues",
-                "pull-request": "https://github.com/hyperf/hyperf/pulls",
-                "source": "https://github.com/hyperf/hyperf"
-            },
-            "funding": [
-                {
-                    "url": "https://hyperf.wiki/#/zh-cn/donate",
-                    "type": "custom"
-                },
-                {
-                    "url": "https://opencollective.com/hyperf",
-                    "type": "open_collective"
-                }
-            ],
-            "install-path": "../hyperf/stringable"
-        },
-        {
-            "name": "hyperf/support",
-            "version": "v3.1.15",
-            "version_normalized": "3.1.15.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/hyperf/support.git",
-                "reference": "3fb5c6c5a4f795cb0304a032f6f5b85f62a5f872"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/hyperf/support/zipball/3fb5c6c5a4f795cb0304a032f6f5b85f62a5f872",
-                "reference": "3fb5c6c5a4f795cb0304a032f6f5b85f62a5f872",
-                "shasum": ""
-            },
-            "require": {
-                "hyperf/collection": "~3.1.0",
-                "hyperf/context": "~3.1.0",
-                "hyperf/contract": "~3.1.0",
-                "hyperf/coroutine": "~3.1.0",
-                "hyperf/macroable": "~3.1.0",
-                "hyperf/stringable": "~3.1.0",
-                "php": ">=8.1"
-            },
-            "suggest": {
-                "nesbot/carbon": "Use Carbon as DateTime object.(^2.0)"
-            },
-            "time": "2024-03-23T11:28:51+00:00",
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "3.1-dev"
-                }
-            },
-            "installation-source": "dist",
-            "autoload": {
-                "files": [
-                    "src/Functions.php"
-                ],
-                "psr-4": {
-                    "Hyperf\\Support\\": "src/"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "description": "A support component for Hyperf.",
-            "homepage": "https://hyperf.io",
-            "keywords": [
-                "hyperf",
-                "php",
-                "support",
-                "swoole"
-            ],
-            "support": {
-                "docs": "https://hyperf.wiki",
-                "issues": "https://github.com/hyperf/hyperf/issues",
-                "pull-request": "https://github.com/hyperf/hyperf/pulls",
-                "source": "https://github.com/hyperf/hyperf"
-            },
-            "funding": [
-                {
-                    "url": "https://hyperf.wiki/#/zh-cn/donate",
-                    "type": "custom"
-                },
-                {
-                    "url": "https://opencollective.com/hyperf",
-                    "type": "open_collective"
-                }
-            ],
-            "install-path": "../hyperf/support"
-        },
-        {
-            "name": "hyperf/tappable",
-            "version": "v3.1.15",
-            "version_normalized": "3.1.15.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/hyperf/tappable.git",
-                "reference": "69f22bbc8ecb5b930cc95a49ae9bf0ca0efbfdf1"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/hyperf/tappable/zipball/69f22bbc8ecb5b930cc95a49ae9bf0ca0efbfdf1",
-                "reference": "69f22bbc8ecb5b930cc95a49ae9bf0ca0efbfdf1",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=8.1"
-            },
-            "time": "2024-03-23T11:28:51+00:00",
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "3.1-dev"
-                }
-            },
-            "installation-source": "dist",
-            "autoload": {
-                "files": [
-                    "src/Functions.php"
-                ],
-                "psr-4": {
-                    "Hyperf\\Tappable\\": "src/"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "description": "Hyperf Macroable package which come from illuminate/tappable",
-            "homepage": "https://hyperf.io",
-            "keywords": [
-                "hyperf",
-                "php",
-                "swoole",
-                "tappable"
-            ],
-            "support": {
-                "docs": "https://hyperf.wiki",
-                "issues": "https://github.com/hyperf/hyperf/issues",
-                "pull-request": "https://github.com/hyperf/hyperf/pulls",
-                "source": "https://github.com/hyperf/hyperf"
-            },
-            "funding": [
-                {
-                    "url": "https://hyperf.wiki/#/zh-cn/donate",
-                    "type": "custom"
-                },
-                {
-                    "url": "https://opencollective.com/hyperf",
-                    "type": "open_collective"
-                }
-            ],
-            "install-path": "../hyperf/tappable"
-        },
-        {
-            "name": "hyperf/testing",
-            "version": "v3.1.21",
-            "version_normalized": "3.1.21.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/hyperf/testing.git",
-                "reference": "923e862f9ccd5947baac4d4d1e09383c8ac75dc8"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/hyperf/testing/zipball/923e862f9ccd5947baac4d4d1e09383c8ac75dc8",
-                "reference": "923e862f9ccd5947baac4d4d1e09383c8ac75dc8",
-                "shasum": ""
-            },
-            "require": {
-                "hyperf/codec": "~3.1.0",
-                "hyperf/collection": "~3.1.0",
-                "hyperf/contract": "~3.1.0",
-                "hyperf/coroutine": "~3.1.0",
-                "hyperf/http-message": "~3.1.0",
-                "hyperf/http-server": "~3.1.0",
-                "hyperf/support": "~3.1.0",
-                "hyperf/utils": "~3.1.0",
-                "php": ">=8.1",
-                "phpunit/phpunit": "^10.0",
-                "psr/container": "^1.0|^2.0",
-                "symfony/http-foundation": "^5.4|^6.0"
-            },
-            "suggest": {
-                "fakerphp/faker": "Required to use Faker feature.(^1.23)"
-            },
-            "time": "2024-05-07T05:34:51+00:00",
-            "bin": [
-                "co-phpunit"
-            ],
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "3.1-dev"
-                }
-            },
-            "installation-source": "dist",
-            "autoload": {
-                "psr-4": {
-                    "Hyperf\\Testing\\": "src/"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "description": "Testing for hyperf",
-            "keywords": [
-                "dev",
-                "php",
-                "swoole",
-                "testing"
-            ],
-            "support": {
-                "source": "https://github.com/hyperf/testing/tree/v3.1.21"
-            },
-            "funding": [
-                {
-                    "url": "https://hyperf.wiki/#/zh-cn/donate",
-                    "type": "custom"
-                },
-                {
-                    "url": "https://opencollective.com/hyperf",
-                    "type": "open_collective"
-                }
-            ],
-            "install-path": "../hyperf/testing"
-        },
-        {
-            "name": "hyperf/utils",
-            "version": "v3.1.0",
-            "version_normalized": "3.1.0.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/hyperf/utils.git",
-                "reference": "10522904195eb5af9090bbd072589fb387c91041"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/hyperf/utils/zipball/10522904195eb5af9090bbd072589fb387c91041",
-                "reference": "10522904195eb5af9090bbd072589fb387c91041",
-                "shasum": ""
-            },
-            "require": {
-                "doctrine/inflector": "^2.0",
-                "hyperf/code-parser": "~3.1.0",
-                "hyperf/codec": "~3.1.0",
-                "hyperf/collection": "~3.1.0",
-                "hyperf/context": "~3.1.0",
-                "hyperf/contract": "~3.1.0",
-                "hyperf/coordinator": "~3.1.0",
-                "hyperf/coroutine": "~3.1.0",
-                "hyperf/engine": "^2.0",
-                "hyperf/macroable": "~3.1.0",
-                "hyperf/serializer": "~3.1.0",
-                "hyperf/stringable": "~3.1.0",
-                "hyperf/support": "~3.1.0",
-                "php": ">=8.1"
-            },
-            "time": "2023-11-24T03:10:53+00:00",
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "3.1-dev"
-                }
-            },
-            "installation-source": "dist",
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "description": "A tools package that could help developer solved the problem quickly.",
-            "homepage": "https://hyperf.io",
-            "keywords": [
-                "hyperf",
-                "php",
-                "swoole",
-                "utils"
-            ],
-            "support": {
-                "docs": "https://hyperf.wiki",
-                "issues": "https://github.com/hyperf/hyperf/issues",
-                "pull-request": "https://github.com/hyperf/hyperf/pulls",
-                "source": "https://github.com/hyperf/hyperf"
-            },
-            "funding": [
-                {
-                    "url": "https://hyperf.wiki/#/zh-cn/donate",
-                    "type": "custom"
-                },
-                {
-                    "url": "https://opencollective.com/hyperf",
-                    "type": "open_collective"
-                }
-            ],
-            "install-path": "../hyperf/utils"
-        },
-        {
-            "name": "hyperf/watcher",
-            "version": "v3.1.21",
-            "version_normalized": "3.1.21.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/hyperf/watcher.git",
-                "reference": "e95490f91a95ec9c7f52255aba563f59fd9b396c"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/hyperf/watcher/zipball/e95490f91a95ec9c7f52255aba563f59fd9b396c",
-                "reference": "e95490f91a95ec9c7f52255aba563f59fd9b396c",
-                "shasum": ""
-            },
-            "require": {
-                "ext-posix": "*",
-                "hyperf/codec": "~3.1.0",
-                "hyperf/command": "~3.1.0",
-                "hyperf/di": "~3.1.0",
-                "hyperf/framework": "~3.1.0",
-                "hyperf/support": "~3.1.0",
-                "php": ">=8.1"
-            },
-            "time": "2024-05-09T13:40:44+00:00",
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "3.1-dev"
-                },
-                "hyperf": {
-                    "config": "Hyperf\\Watcher\\ConfigProvider"
-                }
-            },
-            "installation-source": "dist",
-            "autoload": {
-                "files": [
-                    "src/Functions.php"
-                ],
-                "psr-4": {
-                    "Hyperf\\Watcher\\": "src/"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "description": "Hot reload watcher for Hyperf",
-            "keywords": [
-                "dev",
-                "hyperf",
-                "php"
-            ],
-            "support": {
-                "issues": "https://github.com/hyperf/watcher/issues",
-                "source": "https://github.com/hyperf/watcher/tree/v3.1.21"
-            },
-            "funding": [
-                {
-                    "url": "https://hyperf.wiki/#/zh-cn/donate",
-                    "type": "custom"
-                },
-                {
-                    "url": "https://opencollective.com/hyperf",
-                    "type": "open_collective"
-                }
-            ],
-            "install-path": "../hyperf/watcher"
-        },
-        {
-            "name": "jetbrains/phpstorm-attributes",
-            "version": "1.1",
-            "version_normalized": "1.1.0.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/JetBrains/phpstorm-attributes.git",
-                "reference": "22fb28d679deceedba8366dbae65cc8ebfc17e26"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/JetBrains/phpstorm-attributes/zipball/22fb28d679deceedba8366dbae65cc8ebfc17e26",
-                "reference": "22fb28d679deceedba8366dbae65cc8ebfc17e26",
-                "shasum": ""
-            },
-            "time": "2023-09-01T08:50:25+00:00",
-            "type": "library",
-            "installation-source": "dist",
-            "autoload": {
-                "psr-4": {
-                    "JetBrains\\PhpStorm\\": "src/"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "Apache-2.0"
-            ],
-            "authors": [
-                {
-                    "name": "JetBrains",
-                    "homepage": "https://www.jetbrains.com"
-                }
-            ],
-            "description": "PhpStorm specific attributes",
-            "keywords": [
-                "attributes",
-                "jetbrains",
-                "phpstorm"
-            ],
-            "support": {
-                "issues": "https://youtrack.jetbrains.com/newIssue?project=WI",
-                "source": "https://github.com/JetBrains/phpstorm-attributes/tree/1.1"
-            },
-            "install-path": "../jetbrains/phpstorm-attributes"
-        },
-        {
-            "name": "laminas/laminas-mime",
-            "version": "2.12.0",
-            "version_normalized": "2.12.0.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/laminas/laminas-mime.git",
-                "reference": "08cc544778829b7d68d27a097885bd6e7130135e"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/laminas/laminas-mime/zipball/08cc544778829b7d68d27a097885bd6e7130135e",
-                "reference": "08cc544778829b7d68d27a097885bd6e7130135e",
-                "shasum": ""
-            },
-            "require": {
-                "laminas/laminas-stdlib": "^2.7 || ^3.0",
-                "php": "~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0"
-            },
-            "conflict": {
-                "zendframework/zend-mime": "*"
-            },
-            "require-dev": {
-                "laminas/laminas-coding-standard": "~2.4.0",
-                "laminas/laminas-mail": "^2.19.0",
-                "phpunit/phpunit": "~9.5.25"
-            },
-            "suggest": {
-                "laminas/laminas-mail": "Laminas\\Mail component"
-            },
-            "time": "2023-11-02T16:47:19+00:00",
-            "type": "library",
-            "installation-source": "dist",
-            "autoload": {
-                "psr-4": {
-                    "Laminas\\Mime\\": "src/"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "BSD-3-Clause"
-            ],
-            "description": "Create and parse MIME messages and parts",
-            "homepage": "https://laminas.dev",
-            "keywords": [
-                "laminas",
-                "mime"
-            ],
-            "support": {
-                "chat": "https://laminas.dev/chat",
-                "docs": "https://docs.laminas.dev/laminas-mime/",
-                "forum": "https://discourse.laminas.dev",
-                "issues": "https://github.com/laminas/laminas-mime/issues",
-                "rss": "https://github.com/laminas/laminas-mime/releases.atom",
-                "source": "https://github.com/laminas/laminas-mime"
-            },
-            "funding": [
-                {
-                    "url": "https://funding.communitybridge.org/projects/laminas-project",
-                    "type": "community_bridge"
-                }
-            ],
-            "install-path": "../laminas/laminas-mime"
-        },
-        {
-            "name": "laminas/laminas-stdlib",
-            "version": "3.19.0",
-            "version_normalized": "3.19.0.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/laminas/laminas-stdlib.git",
-                "reference": "6a192dd0882b514e45506f533b833b623b78fff3"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/laminas/laminas-stdlib/zipball/6a192dd0882b514e45506f533b833b623b78fff3",
-                "reference": "6a192dd0882b514e45506f533b833b623b78fff3",
-                "shasum": ""
-            },
-            "require": {
-                "php": "~8.1.0 || ~8.2.0 || ~8.3.0"
-            },
-            "conflict": {
-                "zendframework/zend-stdlib": "*"
-            },
-            "require-dev": {
-                "laminas/laminas-coding-standard": "^2.5",
-                "phpbench/phpbench": "^1.2.15",
-                "phpunit/phpunit": "^10.5.8",
-                "psalm/plugin-phpunit": "^0.18.4",
-                "vimeo/psalm": "^5.20.0"
-            },
-            "time": "2024-01-19T12:39:49+00:00",
-            "type": "library",
-            "installation-source": "dist",
-            "autoload": {
-                "psr-4": {
-                    "Laminas\\Stdlib\\": "src/"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "BSD-3-Clause"
-            ],
-            "description": "SPL extensions, array utilities, error handlers, and more",
-            "homepage": "https://laminas.dev",
-            "keywords": [
-                "laminas",
-                "stdlib"
-            ],
-            "support": {
-                "chat": "https://laminas.dev/chat",
-                "docs": "https://docs.laminas.dev/laminas-stdlib/",
-                "forum": "https://discourse.laminas.dev",
-                "issues": "https://github.com/laminas/laminas-stdlib/issues",
-                "rss": "https://github.com/laminas/laminas-stdlib/releases.atom",
-                "source": "https://github.com/laminas/laminas-stdlib"
-            },
-            "funding": [
-                {
-                    "url": "https://funding.communitybridge.org/projects/laminas-project",
-                    "type": "community_bridge"
-                }
-            ],
-            "install-path": "../laminas/laminas-stdlib"
-        },
-        {
-            "name": "markrogoyski/math-php",
-            "version": "v2.10.0",
-            "version_normalized": "2.10.0.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/markrogoyski/math-php.git",
-                "reference": "e587bfe3aadddfba0f3a40f49d2ed91132f30c5a"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/markrogoyski/math-php/zipball/e587bfe3aadddfba0f3a40f49d2ed91132f30c5a",
-                "reference": "e587bfe3aadddfba0f3a40f49d2ed91132f30c5a",
-                "shasum": ""
-            },
-            "require": {
-                "ext-json": "*",
-                "php": ">=7.2.0"
-            },
-            "require-dev": {
-                "php-coveralls/php-coveralls": "^2.0",
-                "php-parallel-lint/php-parallel-lint": "^1.2",
-                "phploc/phploc": "*",
-                "phpmd/phpmd": "^2.6",
-                "phpstan/phpstan": "^1.10",
-                "phpunit/phpunit": "^8.5",
-                "squizlabs/php_codesniffer": "3.*"
-            },
-            "time": "2024-04-17T00:09:51+00:00",
-            "type": "library",
-            "installation-source": "dist",
-            "autoload": {
-                "psr-4": {
-                    "MathPHP\\": "src/"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "authors": [
-                {
-                    "name": "Mark Rogoyski",
-                    "email": "mark@rogoyski.com",
-                    "homepage": "https://github.com/markrogoyski",
-                    "role": "Lead developer"
-                },
-                {
-                    "name": "Kevin Nowaczyk",
-                    "homepage": "https://github.com/Beakerboy",
-                    "role": "Developer"
-                },
-                {
-                    "name": "MathPHP Community of Contributors",
-                    "homepage": "https://github.com/markrogoyski/math-php/graphs/contributors"
-                }
-            ],
-            "description": "Math Library for PHP. Features descriptive statistics and regressions; Continuous and discrete probability distributions; Linear algebra with matrices and vectors, Numerical analysis; special mathematical functions; Algebra",
-            "homepage": "https://github.com/markrogoyski/math-php/",
-            "keywords": [
-                "algebra",
-                "combinatorics",
-                "distributions",
-                "linear algebra",
-                "math",
-                "mathematics",
-                "matrix",
-                "numerical analysis",
-                "probability",
-                "regressions",
-                "statistics"
-            ],
-            "support": {
-                "issues": "https://github.com/markrogoyski/math-php/issues",
-                "source": "https://github.com/markrogoyski/math-php/tree/v2.10.0"
-            },
-            "install-path": "../markrogoyski/math-php"
-        },
-        {
-            "name": "mockery/mockery",
-            "version": "1.6.12",
-            "version_normalized": "1.6.12.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/mockery/mockery.git",
-                "reference": "1f4efdd7d3beafe9807b08156dfcb176d18f1699"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/mockery/mockery/zipball/1f4efdd7d3beafe9807b08156dfcb176d18f1699",
-                "reference": "1f4efdd7d3beafe9807b08156dfcb176d18f1699",
-                "shasum": ""
-            },
-            "require": {
-                "hamcrest/hamcrest-php": "^2.0.1",
-                "lib-pcre": ">=7.0",
-                "php": ">=7.3"
-            },
-            "conflict": {
-                "phpunit/phpunit": "<8.0"
-            },
-            "require-dev": {
-                "phpunit/phpunit": "^8.5 || ^9.6.17",
-                "symplify/easy-coding-standard": "^12.1.14"
-            },
-            "time": "2024-05-16T03:13:13+00:00",
-            "type": "library",
-            "installation-source": "dist",
-            "autoload": {
-                "files": [
-                    "library/helpers.php",
-                    "library/Mockery.php"
-                ],
-                "psr-4": {
-                    "Mockery\\": "library/Mockery"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "BSD-3-Clause"
-            ],
-            "authors": [
-                {
-                    "name": "Pádraic Brady",
-                    "email": "padraic.brady@gmail.com",
-                    "homepage": "https://github.com/padraic",
-                    "role": "Author"
-                },
-                {
-                    "name": "Dave Marshall",
-                    "email": "dave.marshall@atstsolutions.co.uk",
-                    "homepage": "https://davedevelopment.co.uk",
-                    "role": "Developer"
-                },
-                {
-                    "name": "Nathanael Esayeas",
-                    "email": "nathanael.esayeas@protonmail.com",
-                    "homepage": "https://github.com/ghostwriter",
-                    "role": "Lead Developer"
-                }
-            ],
-            "description": "Mockery is a simple yet flexible PHP mock object framework",
-            "homepage": "https://github.com/mockery/mockery",
-            "keywords": [
-                "BDD",
-                "TDD",
-                "library",
-                "mock",
-                "mock objects",
-                "mockery",
-                "stub",
-                "test",
-                "test double",
-                "testing"
-            ],
-            "support": {
-                "docs": "https://docs.mockery.io/",
-                "issues": "https://github.com/mockery/mockery/issues",
-                "rss": "https://github.com/mockery/mockery/releases.atom",
-                "security": "https://github.com/mockery/mockery/security/advisories",
-                "source": "https://github.com/mockery/mockery"
-            },
-            "install-path": "../mockery/mockery"
-        },
-        {
-            "name": "monolog/monolog",
-            "version": "3.6.0",
-            "version_normalized": "3.6.0.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/Seldaek/monolog.git",
-                "reference": "4b18b21a5527a3d5ffdac2fd35d3ab25a9597654"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/Seldaek/monolog/zipball/4b18b21a5527a3d5ffdac2fd35d3ab25a9597654",
-                "reference": "4b18b21a5527a3d5ffdac2fd35d3ab25a9597654",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=8.1",
-                "psr/log": "^2.0 || ^3.0"
-            },
-            "provide": {
-                "psr/log-implementation": "3.0.0"
-            },
-            "require-dev": {
-                "aws/aws-sdk-php": "^3.0",
-                "doctrine/couchdb": "~1.0@dev",
-                "elasticsearch/elasticsearch": "^7 || ^8",
-                "ext-json": "*",
-                "graylog2/gelf-php": "^1.4.2 || ^2.0",
-                "guzzlehttp/guzzle": "^7.4.5",
-                "guzzlehttp/psr7": "^2.2",
-                "mongodb/mongodb": "^1.8",
-                "php-amqplib/php-amqplib": "~2.4 || ^3",
-                "phpstan/phpstan": "^1.9",
-                "phpstan/phpstan-deprecation-rules": "^1.0",
-                "phpstan/phpstan-strict-rules": "^1.4",
-                "phpunit/phpunit": "^10.5.17",
-                "predis/predis": "^1.1 || ^2",
-                "ruflin/elastica": "^7",
-                "symfony/mailer": "^5.4 || ^6",
-                "symfony/mime": "^5.4 || ^6"
-            },
-            "suggest": {
-                "aws/aws-sdk-php": "Allow sending log messages to AWS services like DynamoDB",
-                "doctrine/couchdb": "Allow sending log messages to a CouchDB server",
-                "elasticsearch/elasticsearch": "Allow sending log messages to an Elasticsearch server via official client",
-                "ext-amqp": "Allow sending log messages to an AMQP server (1.0+ required)",
-                "ext-curl": "Required to send log messages using the IFTTTHandler, the LogglyHandler, the SendGridHandler, the SlackWebhookHandler or the TelegramBotHandler",
-                "ext-mbstring": "Allow to work properly with unicode symbols",
-                "ext-mongodb": "Allow sending log messages to a MongoDB server (via driver)",
-                "ext-openssl": "Required to send log messages using SSL",
-                "ext-sockets": "Allow sending log messages to a Syslog server (via UDP driver)",
-                "graylog2/gelf-php": "Allow sending log messages to a GrayLog2 server",
-                "mongodb/mongodb": "Allow sending log messages to a MongoDB server (via library)",
-                "php-amqplib/php-amqplib": "Allow sending log messages to an AMQP server using php-amqplib",
-                "rollbar/rollbar": "Allow sending log messages to Rollbar",
-                "ruflin/elastica": "Allow sending log messages to an Elastic Search server"
-            },
-            "time": "2024-04-12T21:02:21+00:00",
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-main": "3.x-dev"
-                }
-            },
-            "installation-source": "dist",
-            "autoload": {
-                "psr-4": {
-                    "Monolog\\": "src/Monolog"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "authors": [
-                {
-                    "name": "Jordi Boggiano",
-                    "email": "j.boggiano@seld.be",
-                    "homepage": "https://seld.be"
-                }
-            ],
-            "description": "Sends your logs to files, sockets, inboxes, databases and various web services",
-            "homepage": "https://github.com/Seldaek/monolog",
-            "keywords": [
-                "log",
-                "logging",
-                "psr-3"
-            ],
-            "support": {
-                "issues": "https://github.com/Seldaek/monolog/issues",
-                "source": "https://github.com/Seldaek/monolog/tree/3.6.0"
-            },
-            "funding": [
-                {
-                    "url": "https://github.com/Seldaek",
-                    "type": "github"
-                },
-                {
-                    "url": "https://tidelift.com/funding/github/packagist/monolog/monolog",
-                    "type": "tidelift"
-                }
-            ],
-            "install-path": "../monolog/monolog"
-        },
-        {
-            "name": "mtdowling/jmespath.php",
-            "version": "2.8.0",
-            "version_normalized": "2.8.0.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/jmespath/jmespath.php.git",
-                "reference": "a2a865e05d5f420b50cc2f85bb78d565db12a6bc"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/jmespath/jmespath.php/zipball/a2a865e05d5f420b50cc2f85bb78d565db12a6bc",
-                "reference": "a2a865e05d5f420b50cc2f85bb78d565db12a6bc",
-                "shasum": ""
-            },
-            "require": {
-                "php": "^7.2.5 || ^8.0",
-                "symfony/polyfill-mbstring": "^1.17"
-            },
-            "require-dev": {
-                "composer/xdebug-handler": "^3.0.3",
-                "phpunit/phpunit": "^8.5.33"
-            },
-            "time": "2024-09-04T18:46:31+00:00",
-            "bin": [
-                "bin/jp.php"
-            ],
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "2.8-dev"
-                }
-            },
-            "installation-source": "dist",
-            "autoload": {
-                "files": [
-                    "src/JmesPath.php"
-                ],
-                "psr-4": {
-                    "JmesPath\\": "src/"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "authors": [
-                {
-                    "name": "Graham Campbell",
-                    "email": "hello@gjcampbell.co.uk",
-                    "homepage": "https://github.com/GrahamCampbell"
-                },
-                {
-                    "name": "Michael Dowling",
-                    "email": "mtdowling@gmail.com",
-                    "homepage": "https://github.com/mtdowling"
-                }
-            ],
-            "description": "Declaratively specify how to extract elements from a JSON document",
-            "keywords": [
-                "json",
-                "jsonpath"
-            ],
-            "support": {
-                "issues": "https://github.com/jmespath/jmespath.php/issues",
-                "source": "https://github.com/jmespath/jmespath.php/tree/2.8.0"
-            },
-            "install-path": "../mtdowling/jmespath.php"
-        },
-        {
-            "name": "myclabs/deep-copy",
-            "version": "1.11.1",
-            "version_normalized": "1.11.1.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/myclabs/DeepCopy.git",
-                "reference": "7284c22080590fb39f2ffa3e9057f10a4ddd0e0c"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/7284c22080590fb39f2ffa3e9057f10a4ddd0e0c",
-                "reference": "7284c22080590fb39f2ffa3e9057f10a4ddd0e0c",
-                "shasum": ""
-            },
-            "require": {
-                "php": "^7.1 || ^8.0"
-            },
-            "conflict": {
-                "doctrine/collections": "<1.6.8",
-                "doctrine/common": "<2.13.3 || >=3,<3.2.2"
-            },
-            "require-dev": {
-                "doctrine/collections": "^1.6.8",
-                "doctrine/common": "^2.13.3 || ^3.2.2",
-                "phpunit/phpunit": "^7.5.20 || ^8.5.23 || ^9.5.13"
-            },
-            "time": "2023-03-08T13:26:56+00:00",
-            "type": "library",
-            "installation-source": "dist",
-            "autoload": {
-                "files": [
-                    "src/DeepCopy/deep_copy.php"
-                ],
-                "psr-4": {
-                    "DeepCopy\\": "src/DeepCopy/"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "description": "Create deep copies (clones) of your objects",
-            "keywords": [
-                "clone",
-                "copy",
-                "duplicate",
-                "object",
-                "object graph"
-            ],
-            "support": {
-                "issues": "https://github.com/myclabs/DeepCopy/issues",
-                "source": "https://github.com/myclabs/DeepCopy/tree/1.11.1"
-            },
-            "funding": [
-                {
-                    "url": "https://tidelift.com/funding/github/packagist/myclabs/deep-copy",
-                    "type": "tidelift"
-                }
-            ],
-            "install-path": "../myclabs/deep-copy"
-        },
-        {
-            "name": "nesbot/carbon",
-            "version": "2.72.5",
-            "version_normalized": "2.72.5.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/briannesbitt/Carbon.git",
-                "reference": "afd46589c216118ecd48ff2b95d77596af1e57ed"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/afd46589c216118ecd48ff2b95d77596af1e57ed",
-                "reference": "afd46589c216118ecd48ff2b95d77596af1e57ed",
-                "shasum": ""
-            },
-            "require": {
-                "carbonphp/carbon-doctrine-types": "*",
-                "ext-json": "*",
-                "php": "^7.1.8 || ^8.0",
-                "psr/clock": "^1.0",
-                "symfony/polyfill-mbstring": "^1.0",
-                "symfony/polyfill-php80": "^1.16",
-                "symfony/translation": "^3.4 || ^4.0 || ^5.0 || ^6.0"
-            },
-            "provide": {
-                "psr/clock-implementation": "1.0"
-            },
-            "require-dev": {
-                "doctrine/dbal": "^2.0 || ^3.1.4 || ^4.0",
-                "doctrine/orm": "^2.7 || ^3.0",
-                "friendsofphp/php-cs-fixer": "^3.0",
-                "kylekatarnls/multi-tester": "^2.0",
-                "ondrejmirtes/better-reflection": "*",
-                "phpmd/phpmd": "^2.9",
-                "phpstan/extension-installer": "^1.0",
-                "phpstan/phpstan": "^0.12.99 || ^1.7.14",
-                "phpunit/php-file-iterator": "^2.0.5 || ^3.0.6",
-                "phpunit/phpunit": "^7.5.20 || ^8.5.26 || ^9.5.20",
-                "squizlabs/php_codesniffer": "^3.4"
-            },
-            "time": "2024-06-03T19:18:41+00:00",
-            "bin": [
-                "bin/carbon"
-            ],
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "3.x-dev",
-                    "dev-2.x": "2.x-dev"
-                },
-                "laravel": {
-                    "providers": [
-                        "Carbon\\Laravel\\ServiceProvider"
-                    ]
-                },
-                "phpstan": {
-                    "includes": [
-                        "extension.neon"
-                    ]
-                }
-            },
-            "installation-source": "dist",
-            "autoload": {
-                "psr-4": {
-                    "Carbon\\": "src/Carbon/"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "authors": [
-                {
-                    "name": "Brian Nesbitt",
-                    "email": "brian@nesbot.com",
-                    "homepage": "https://markido.com"
-                },
-                {
-                    "name": "kylekatarnls",
-                    "homepage": "https://github.com/kylekatarnls"
-                }
-            ],
-            "description": "An API extension for DateTime that supports 281 different languages.",
-            "homepage": "https://carbon.nesbot.com",
-            "keywords": [
-                "date",
-                "datetime",
-                "time"
-            ],
-            "support": {
-                "docs": "https://carbon.nesbot.com/docs",
-                "issues": "https://github.com/briannesbitt/Carbon/issues",
-                "source": "https://github.com/briannesbitt/Carbon"
-            },
-            "funding": [
-                {
-                    "url": "https://github.com/sponsors/kylekatarnls",
-                    "type": "github"
-                },
-                {
-                    "url": "https://opencollective.com/Carbon#sponsor",
-                    "type": "opencollective"
-                },
-                {
-                    "url": "https://tidelift.com/subscription/pkg/packagist-nesbot-carbon?utm_source=packagist-nesbot-carbon&utm_medium=referral&utm_campaign=readme",
-                    "type": "tidelift"
-                }
-            ],
-            "install-path": "../nesbot/carbon"
-        },
-        {
-            "name": "nikic/fast-route",
-            "version": "v1.3.0",
-            "version_normalized": "1.3.0.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/nikic/FastRoute.git",
-                "reference": "181d480e08d9476e61381e04a71b34dc0432e812"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/nikic/FastRoute/zipball/181d480e08d9476e61381e04a71b34dc0432e812",
-                "reference": "181d480e08d9476e61381e04a71b34dc0432e812",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=5.4.0"
-            },
-            "require-dev": {
-                "phpunit/phpunit": "^4.8.35|~5.7"
-            },
-            "time": "2018-02-13T20:26:39+00:00",
-            "type": "library",
-            "installation-source": "dist",
-            "autoload": {
-                "files": [
-                    "src/functions.php"
-                ],
-                "psr-4": {
-                    "FastRoute\\": "src/"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "BSD-3-Clause"
-            ],
-            "authors": [
-                {
-                    "name": "Nikita Popov",
-                    "email": "nikic@php.net"
-                }
-            ],
-            "description": "Fast request router for PHP",
-            "keywords": [
-                "router",
-                "routing"
-            ],
-            "support": {
-                "issues": "https://github.com/nikic/FastRoute/issues",
-                "source": "https://github.com/nikic/FastRoute/tree/master"
-            },
-            "install-path": "../nikic/fast-route"
-        },
-        {
-            "name": "nikic/php-parser",
-            "version": "v4.19.1",
-            "version_normalized": "4.19.1.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/nikic/PHP-Parser.git",
-                "reference": "4e1b88d21c69391150ace211e9eaf05810858d0b"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/4e1b88d21c69391150ace211e9eaf05810858d0b",
-                "reference": "4e1b88d21c69391150ace211e9eaf05810858d0b",
-                "shasum": ""
-            },
-            "require": {
-                "ext-tokenizer": "*",
-                "php": ">=7.1"
-            },
-            "require-dev": {
-                "ircmaxell/php-yacc": "^0.0.7",
-                "phpunit/phpunit": "^6.5 || ^7.0 || ^8.0 || ^9.0"
-            },
-            "time": "2024-03-17T08:10:35+00:00",
-            "bin": [
-                "bin/php-parse"
-            ],
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "4.9-dev"
-                }
-            },
-            "installation-source": "dist",
-            "autoload": {
-                "psr-4": {
-                    "PhpParser\\": "lib/PhpParser"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "BSD-3-Clause"
-            ],
-            "authors": [
-                {
-                    "name": "Nikita Popov"
-                }
-            ],
-            "description": "A PHP parser written in PHP",
-            "keywords": [
-                "parser",
-                "php"
-            ],
-            "support": {
-                "issues": "https://github.com/nikic/PHP-Parser/issues",
-                "source": "https://github.com/nikic/PHP-Parser/tree/v4.19.1"
-            },
-            "install-path": "../nikic/php-parser"
-        },
-        {
-            "name": "phar-io/manifest",
-            "version": "2.0.4",
-            "version_normalized": "2.0.4.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/phar-io/manifest.git",
-                "reference": "54750ef60c58e43759730615a392c31c80e23176"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/phar-io/manifest/zipball/54750ef60c58e43759730615a392c31c80e23176",
-                "reference": "54750ef60c58e43759730615a392c31c80e23176",
-                "shasum": ""
-            },
-            "require": {
-                "ext-dom": "*",
-                "ext-libxml": "*",
-                "ext-phar": "*",
-                "ext-xmlwriter": "*",
-                "phar-io/version": "^3.0.1",
-                "php": "^7.2 || ^8.0"
-            },
-            "time": "2024-03-03T12:33:53+00:00",
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "2.0.x-dev"
-                }
-            },
-            "installation-source": "dist",
-            "autoload": {
-                "classmap": [
-                    "src/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "BSD-3-Clause"
-            ],
-            "authors": [
-                {
-                    "name": "Arne Blankerts",
-                    "email": "arne@blankerts.de",
-                    "role": "Developer"
-                },
-                {
-                    "name": "Sebastian Heuer",
-                    "email": "sebastian@phpeople.de",
-                    "role": "Developer"
-                },
-                {
-                    "name": "Sebastian Bergmann",
-                    "email": "sebastian@phpunit.de",
-                    "role": "Developer"
-                }
-            ],
-            "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)",
-            "support": {
-                "issues": "https://github.com/phar-io/manifest/issues",
-                "source": "https://github.com/phar-io/manifest/tree/2.0.4"
-            },
-            "funding": [
-                {
-                    "url": "https://github.com/theseer",
-                    "type": "github"
-                }
-            ],
-            "install-path": "../phar-io/manifest"
-        },
-        {
-            "name": "phar-io/version",
-            "version": "3.2.1",
-            "version_normalized": "3.2.1.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/phar-io/version.git",
-                "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/phar-io/version/zipball/4f7fd7836c6f332bb2933569e566a0d6c4cbed74",
-                "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74",
-                "shasum": ""
-            },
-            "require": {
-                "php": "^7.2 || ^8.0"
-            },
-            "time": "2022-02-21T01:04:05+00:00",
-            "type": "library",
-            "installation-source": "dist",
-            "autoload": {
-                "classmap": [
-                    "src/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "BSD-3-Clause"
-            ],
-            "authors": [
-                {
-                    "name": "Arne Blankerts",
-                    "email": "arne@blankerts.de",
-                    "role": "Developer"
-                },
-                {
-                    "name": "Sebastian Heuer",
-                    "email": "sebastian@phpeople.de",
-                    "role": "Developer"
-                },
-                {
-                    "name": "Sebastian Bergmann",
-                    "email": "sebastian@phpunit.de",
-                    "role": "Developer"
-                }
-            ],
-            "description": "Library for handling version information and constraints",
-            "support": {
-                "issues": "https://github.com/phar-io/version/issues",
-                "source": "https://github.com/phar-io/version/tree/3.2.1"
-            },
-            "install-path": "../phar-io/version"
-        },
-        {
-            "name": "php-di/phpdoc-reader",
-            "version": "2.2.1",
-            "version_normalized": "2.2.1.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/PHP-DI/PhpDocReader.git",
-                "reference": "66daff34cbd2627740ffec9469ffbac9f8c8185c"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/PHP-DI/PhpDocReader/zipball/66daff34cbd2627740ffec9469ffbac9f8c8185c",
-                "reference": "66daff34cbd2627740ffec9469ffbac9f8c8185c",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=7.2.0"
-            },
-            "require-dev": {
-                "mnapoli/hard-mode": "~0.3.0",
-                "phpunit/phpunit": "^8.5|^9.0"
-            },
-            "time": "2020-10-12T12:39:22+00:00",
-            "type": "library",
-            "installation-source": "dist",
-            "autoload": {
-                "psr-4": {
-                    "PhpDocReader\\": "src/PhpDocReader"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "description": "PhpDocReader parses @var and @param values in PHP docblocks (supports namespaced class names with the same resolution rules as PHP)",
-            "keywords": [
-                "phpdoc",
-                "reflection"
-            ],
-            "support": {
-                "issues": "https://github.com/PHP-DI/PhpDocReader/issues",
-                "source": "https://github.com/PHP-DI/PhpDocReader/tree/2.2.1"
-            },
-            "install-path": "../php-di/phpdoc-reader"
-        },
-        {
-            "name": "phpoption/phpoption",
-            "version": "1.9.2",
-            "version_normalized": "1.9.2.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/schmittjoh/php-option.git",
-                "reference": "80735db690fe4fc5c76dfa7f9b770634285fa820"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/schmittjoh/php-option/zipball/80735db690fe4fc5c76dfa7f9b770634285fa820",
-                "reference": "80735db690fe4fc5c76dfa7f9b770634285fa820",
-                "shasum": ""
-            },
-            "require": {
-                "php": "^7.2.5 || ^8.0"
-            },
-            "require-dev": {
-                "bamarni/composer-bin-plugin": "^1.8.2",
-                "phpunit/phpunit": "^8.5.34 || ^9.6.13 || ^10.4.2"
-            },
-            "time": "2023-11-12T21:59:55+00:00",
-            "type": "library",
-            "extra": {
-                "bamarni-bin": {
-                    "bin-links": true,
-                    "forward-command": true
-                },
-                "branch-alias": {
-                    "dev-master": "1.9-dev"
-                }
-            },
-            "installation-source": "dist",
-            "autoload": {
-                "psr-4": {
-                    "PhpOption\\": "src/PhpOption/"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "Apache-2.0"
-            ],
-            "authors": [
-                {
-                    "name": "Johannes M. Schmitt",
-                    "email": "schmittjoh@gmail.com",
-                    "homepage": "https://github.com/schmittjoh"
-                },
-                {
-                    "name": "Graham Campbell",
-                    "email": "hello@gjcampbell.co.uk",
-                    "homepage": "https://github.com/GrahamCampbell"
-                }
-            ],
-            "description": "Option Type for PHP",
-            "keywords": [
-                "language",
-                "option",
-                "php",
-                "type"
-            ],
-            "support": {
-                "issues": "https://github.com/schmittjoh/php-option/issues",
-                "source": "https://github.com/schmittjoh/php-option/tree/1.9.2"
-            },
-            "funding": [
-                {
-                    "url": "https://github.com/GrahamCampbell",
-                    "type": "github"
-                },
-                {
-                    "url": "https://tidelift.com/funding/github/packagist/phpoption/phpoption",
-                    "type": "tidelift"
-                }
-            ],
-            "install-path": "../phpoption/phpoption"
-        },
-        {
-            "name": "phpstan/phpstan",
-            "version": "1.11.3",
-            "version_normalized": "1.11.3.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/phpstan/phpstan.git",
-                "reference": "e64220a05c1209fc856d58e789c3b7a32c0bb9a5"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/phpstan/phpstan/zipball/e64220a05c1209fc856d58e789c3b7a32c0bb9a5",
-                "reference": "e64220a05c1209fc856d58e789c3b7a32c0bb9a5",
-                "shasum": ""
-            },
-            "require": {
-                "php": "^7.2|^8.0"
-            },
-            "conflict": {
-                "phpstan/phpstan-shim": "*"
-            },
-            "time": "2024-05-31T13:53:37+00:00",
-            "bin": [
-                "phpstan",
-                "phpstan.phar"
-            ],
-            "type": "library",
-            "installation-source": "dist",
-            "autoload": {
-                "files": [
-                    "bootstrap.php"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "description": "PHPStan - PHP Static Analysis Tool",
-            "keywords": [
-                "dev",
-                "static analysis"
-            ],
-            "support": {
-                "docs": "https://phpstan.org/user-guide/getting-started",
-                "forum": "https://github.com/phpstan/phpstan/discussions",
-                "issues": "https://github.com/phpstan/phpstan/issues",
-                "security": "https://github.com/phpstan/phpstan/security/policy",
-                "source": "https://github.com/phpstan/phpstan-src"
-            },
-            "funding": [
-                {
-                    "url": "https://github.com/ondrejmirtes",
-                    "type": "github"
-                },
-                {
-                    "url": "https://github.com/phpstan",
-                    "type": "github"
-                }
-            ],
-            "install-path": "../phpstan/phpstan"
-        },
-        {
-            "name": "phpunit/php-code-coverage",
-            "version": "10.1.14",
-            "version_normalized": "10.1.14.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/sebastianbergmann/php-code-coverage.git",
-                "reference": "e3f51450ebffe8e0efdf7346ae966a656f7d5e5b"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/e3f51450ebffe8e0efdf7346ae966a656f7d5e5b",
-                "reference": "e3f51450ebffe8e0efdf7346ae966a656f7d5e5b",
-                "shasum": ""
-            },
-            "require": {
-                "ext-dom": "*",
-                "ext-libxml": "*",
-                "ext-xmlwriter": "*",
-                "nikic/php-parser": "^4.18 || ^5.0",
-                "php": ">=8.1",
-                "phpunit/php-file-iterator": "^4.0",
-                "phpunit/php-text-template": "^3.0",
-                "sebastian/code-unit-reverse-lookup": "^3.0",
-                "sebastian/complexity": "^3.0",
-                "sebastian/environment": "^6.0",
-                "sebastian/lines-of-code": "^2.0",
-                "sebastian/version": "^4.0",
-                "theseer/tokenizer": "^1.2.0"
-            },
-            "require-dev": {
-                "phpunit/phpunit": "^10.1"
-            },
-            "suggest": {
-                "ext-pcov": "PHP extension that provides line coverage",
-                "ext-xdebug": "PHP extension that provides line coverage as well as branch and path coverage"
-            },
-            "time": "2024-03-12T15:33:41+00:00",
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-main": "10.1-dev"
-                }
-            },
-            "installation-source": "dist",
-            "autoload": {
-                "classmap": [
-                    "src/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "BSD-3-Clause"
-            ],
-            "authors": [
-                {
-                    "name": "Sebastian Bergmann",
-                    "email": "sebastian@phpunit.de",
-                    "role": "lead"
-                }
-            ],
-            "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.",
-            "homepage": "https://github.com/sebastianbergmann/php-code-coverage",
-            "keywords": [
-                "coverage",
-                "testing",
-                "xunit"
-            ],
-            "support": {
-                "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues",
-                "security": "https://github.com/sebastianbergmann/php-code-coverage/security/policy",
-                "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/10.1.14"
-            },
-            "funding": [
-                {
-                    "url": "https://github.com/sebastianbergmann",
-                    "type": "github"
-                }
-            ],
-            "install-path": "../phpunit/php-code-coverage"
-        },
-        {
-            "name": "phpunit/php-file-iterator",
-            "version": "4.1.0",
-            "version_normalized": "4.1.0.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/sebastianbergmann/php-file-iterator.git",
-                "reference": "a95037b6d9e608ba092da1b23931e537cadc3c3c"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/a95037b6d9e608ba092da1b23931e537cadc3c3c",
-                "reference": "a95037b6d9e608ba092da1b23931e537cadc3c3c",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=8.1"
-            },
-            "require-dev": {
-                "phpunit/phpunit": "^10.0"
-            },
-            "time": "2023-08-31T06:24:48+00:00",
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-main": "4.0-dev"
-                }
-            },
-            "installation-source": "dist",
-            "autoload": {
-                "classmap": [
-                    "src/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "BSD-3-Clause"
-            ],
-            "authors": [
-                {
-                    "name": "Sebastian Bergmann",
-                    "email": "sebastian@phpunit.de",
-                    "role": "lead"
-                }
-            ],
-            "description": "FilterIterator implementation that filters files based on a list of suffixes.",
-            "homepage": "https://github.com/sebastianbergmann/php-file-iterator/",
-            "keywords": [
-                "filesystem",
-                "iterator"
-            ],
-            "support": {
-                "issues": "https://github.com/sebastianbergmann/php-file-iterator/issues",
-                "security": "https://github.com/sebastianbergmann/php-file-iterator/security/policy",
-                "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/4.1.0"
-            },
-            "funding": [
-                {
-                    "url": "https://github.com/sebastianbergmann",
-                    "type": "github"
-                }
-            ],
-            "install-path": "../phpunit/php-file-iterator"
-        },
-        {
-            "name": "phpunit/php-invoker",
-            "version": "4.0.0",
-            "version_normalized": "4.0.0.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/sebastianbergmann/php-invoker.git",
-                "reference": "f5e568ba02fa5ba0ddd0f618391d5a9ea50b06d7"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/f5e568ba02fa5ba0ddd0f618391d5a9ea50b06d7",
-                "reference": "f5e568ba02fa5ba0ddd0f618391d5a9ea50b06d7",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=8.1"
-            },
-            "require-dev": {
-                "ext-pcntl": "*",
-                "phpunit/phpunit": "^10.0"
-            },
-            "suggest": {
-                "ext-pcntl": "*"
-            },
-            "time": "2023-02-03T06:56:09+00:00",
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-main": "4.0-dev"
-                }
-            },
-            "installation-source": "dist",
-            "autoload": {
-                "classmap": [
-                    "src/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "BSD-3-Clause"
-            ],
-            "authors": [
-                {
-                    "name": "Sebastian Bergmann",
-                    "email": "sebastian@phpunit.de",
-                    "role": "lead"
-                }
-            ],
-            "description": "Invoke callables with a timeout",
-            "homepage": "https://github.com/sebastianbergmann/php-invoker/",
-            "keywords": [
-                "process"
-            ],
-            "support": {
-                "issues": "https://github.com/sebastianbergmann/php-invoker/issues",
-                "source": "https://github.com/sebastianbergmann/php-invoker/tree/4.0.0"
-            },
-            "funding": [
-                {
-                    "url": "https://github.com/sebastianbergmann",
-                    "type": "github"
-                }
-            ],
-            "install-path": "../phpunit/php-invoker"
-        },
-        {
-            "name": "phpunit/php-text-template",
-            "version": "3.0.1",
-            "version_normalized": "3.0.1.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/sebastianbergmann/php-text-template.git",
-                "reference": "0c7b06ff49e3d5072f057eb1fa59258bf287a748"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/0c7b06ff49e3d5072f057eb1fa59258bf287a748",
-                "reference": "0c7b06ff49e3d5072f057eb1fa59258bf287a748",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=8.1"
-            },
-            "require-dev": {
-                "phpunit/phpunit": "^10.0"
-            },
-            "time": "2023-08-31T14:07:24+00:00",
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-main": "3.0-dev"
-                }
-            },
-            "installation-source": "dist",
-            "autoload": {
-                "classmap": [
-                    "src/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "BSD-3-Clause"
-            ],
-            "authors": [
-                {
-                    "name": "Sebastian Bergmann",
-                    "email": "sebastian@phpunit.de",
-                    "role": "lead"
-                }
-            ],
-            "description": "Simple template engine.",
-            "homepage": "https://github.com/sebastianbergmann/php-text-template/",
-            "keywords": [
-                "template"
-            ],
-            "support": {
-                "issues": "https://github.com/sebastianbergmann/php-text-template/issues",
-                "security": "https://github.com/sebastianbergmann/php-text-template/security/policy",
-                "source": "https://github.com/sebastianbergmann/php-text-template/tree/3.0.1"
-            },
-            "funding": [
-                {
-                    "url": "https://github.com/sebastianbergmann",
-                    "type": "github"
-                }
-            ],
-            "install-path": "../phpunit/php-text-template"
-        },
-        {
-            "name": "phpunit/php-timer",
-            "version": "6.0.0",
-            "version_normalized": "6.0.0.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/sebastianbergmann/php-timer.git",
-                "reference": "e2a2d67966e740530f4a3343fe2e030ffdc1161d"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/e2a2d67966e740530f4a3343fe2e030ffdc1161d",
-                "reference": "e2a2d67966e740530f4a3343fe2e030ffdc1161d",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=8.1"
-            },
-            "require-dev": {
-                "phpunit/phpunit": "^10.0"
-            },
-            "time": "2023-02-03T06:57:52+00:00",
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-main": "6.0-dev"
-                }
-            },
-            "installation-source": "dist",
-            "autoload": {
-                "classmap": [
-                    "src/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "BSD-3-Clause"
-            ],
-            "authors": [
-                {
-                    "name": "Sebastian Bergmann",
-                    "email": "sebastian@phpunit.de",
-                    "role": "lead"
-                }
-            ],
-            "description": "Utility class for timing",
-            "homepage": "https://github.com/sebastianbergmann/php-timer/",
-            "keywords": [
-                "timer"
-            ],
-            "support": {
-                "issues": "https://github.com/sebastianbergmann/php-timer/issues",
-                "source": "https://github.com/sebastianbergmann/php-timer/tree/6.0.0"
-            },
-            "funding": [
-                {
-                    "url": "https://github.com/sebastianbergmann",
-                    "type": "github"
-                }
-            ],
-            "install-path": "../phpunit/php-timer"
-        },
-        {
-            "name": "phpunit/phpunit",
-            "version": "10.5.20",
-            "version_normalized": "10.5.20.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/sebastianbergmann/phpunit.git",
-                "reference": "547d314dc24ec1e177720d45c6263fb226cc2ae3"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/547d314dc24ec1e177720d45c6263fb226cc2ae3",
-                "reference": "547d314dc24ec1e177720d45c6263fb226cc2ae3",
-                "shasum": ""
-            },
-            "require": {
-                "ext-dom": "*",
-                "ext-json": "*",
-                "ext-libxml": "*",
-                "ext-mbstring": "*",
-                "ext-xml": "*",
-                "ext-xmlwriter": "*",
-                "myclabs/deep-copy": "^1.10.1",
-                "phar-io/manifest": "^2.0.3",
-                "phar-io/version": "^3.0.2",
-                "php": ">=8.1",
-                "phpunit/php-code-coverage": "^10.1.5",
-                "phpunit/php-file-iterator": "^4.0",
-                "phpunit/php-invoker": "^4.0",
-                "phpunit/php-text-template": "^3.0",
-                "phpunit/php-timer": "^6.0",
-                "sebastian/cli-parser": "^2.0",
-                "sebastian/code-unit": "^2.0",
-                "sebastian/comparator": "^5.0",
-                "sebastian/diff": "^5.0",
-                "sebastian/environment": "^6.0",
-                "sebastian/exporter": "^5.1",
-                "sebastian/global-state": "^6.0.1",
-                "sebastian/object-enumerator": "^5.0",
-                "sebastian/recursion-context": "^5.0",
-                "sebastian/type": "^4.0",
-                "sebastian/version": "^4.0"
-            },
-            "suggest": {
-                "ext-soap": "To be able to generate mocks based on WSDL files"
-            },
-            "time": "2024-04-24T06:32:35+00:00",
-            "bin": [
-                "phpunit"
-            ],
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-main": "10.5-dev"
-                }
-            },
-            "installation-source": "dist",
-            "autoload": {
-                "files": [
-                    "src/Framework/Assert/Functions.php"
-                ],
-                "classmap": [
-                    "src/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "BSD-3-Clause"
-            ],
-            "authors": [
-                {
-                    "name": "Sebastian Bergmann",
-                    "email": "sebastian@phpunit.de",
-                    "role": "lead"
-                }
-            ],
-            "description": "The PHP Unit Testing framework.",
-            "homepage": "https://phpunit.de/",
-            "keywords": [
-                "phpunit",
-                "testing",
-                "xunit"
-            ],
-            "support": {
-                "issues": "https://github.com/sebastianbergmann/phpunit/issues",
-                "security": "https://github.com/sebastianbergmann/phpunit/security/policy",
-                "source": "https://github.com/sebastianbergmann/phpunit/tree/10.5.20"
-            },
-            "funding": [
-                {
-                    "url": "https://phpunit.de/sponsors.html",
-                    "type": "custom"
-                },
-                {
-                    "url": "https://github.com/sebastianbergmann",
-                    "type": "github"
-                },
-                {
-                    "url": "https://tidelift.com/funding/github/packagist/phpunit/phpunit",
-                    "type": "tidelift"
-                }
-            ],
-            "install-path": "../phpunit/phpunit"
-        },
-        {
-            "name": "psr/cache",
-            "version": "3.0.0",
-            "version_normalized": "3.0.0.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/php-fig/cache.git",
-                "reference": "aa5030cfa5405eccfdcb1083ce040c2cb8d253bf"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/php-fig/cache/zipball/aa5030cfa5405eccfdcb1083ce040c2cb8d253bf",
-                "reference": "aa5030cfa5405eccfdcb1083ce040c2cb8d253bf",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=8.0.0"
-            },
-            "time": "2021-02-03T23:26:27+00:00",
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "1.0.x-dev"
-                }
-            },
-            "installation-source": "dist",
-            "autoload": {
-                "psr-4": {
-                    "Psr\\Cache\\": "src/"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "authors": [
-                {
-                    "name": "PHP-FIG",
-                    "homepage": "https://www.php-fig.org/"
-                }
-            ],
-            "description": "Common interface for caching libraries",
-            "keywords": [
-                "cache",
-                "psr",
-                "psr-6"
-            ],
-            "support": {
-                "source": "https://github.com/php-fig/cache/tree/3.0.0"
-            },
-            "install-path": "../psr/cache"
-        },
-        {
-            "name": "psr/clock",
-            "version": "1.0.0",
-            "version_normalized": "1.0.0.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/php-fig/clock.git",
-                "reference": "e41a24703d4560fd0acb709162f73b8adfc3aa0d"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/php-fig/clock/zipball/e41a24703d4560fd0acb709162f73b8adfc3aa0d",
-                "reference": "e41a24703d4560fd0acb709162f73b8adfc3aa0d",
-                "shasum": ""
-            },
-            "require": {
-                "php": "^7.0 || ^8.0"
-            },
-            "time": "2022-11-25T14:36:26+00:00",
-            "type": "library",
-            "installation-source": "dist",
-            "autoload": {
-                "psr-4": {
-                    "Psr\\Clock\\": "src/"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "authors": [
-                {
-                    "name": "PHP-FIG",
-                    "homepage": "https://www.php-fig.org/"
-                }
-            ],
-            "description": "Common interface for reading the clock.",
-            "homepage": "https://github.com/php-fig/clock",
-            "keywords": [
-                "clock",
-                "now",
-                "psr",
-                "psr-20",
-                "time"
-            ],
-            "support": {
-                "issues": "https://github.com/php-fig/clock/issues",
-                "source": "https://github.com/php-fig/clock/tree/1.0.0"
-            },
-            "install-path": "../psr/clock"
-        },
-        {
-            "name": "psr/container",
-            "version": "2.0.2",
-            "version_normalized": "2.0.2.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/php-fig/container.git",
-                "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/php-fig/container/zipball/c71ecc56dfe541dbd90c5360474fbc405f8d5963",
-                "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=7.4.0"
-            },
-            "time": "2021-11-05T16:47:00+00:00",
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "2.0.x-dev"
-                }
-            },
-            "installation-source": "dist",
-            "autoload": {
-                "psr-4": {
-                    "Psr\\Container\\": "src/"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "authors": [
-                {
-                    "name": "PHP-FIG",
-                    "homepage": "https://www.php-fig.org/"
-                }
-            ],
-            "description": "Common Container Interface (PHP FIG PSR-11)",
-            "homepage": "https://github.com/php-fig/container",
-            "keywords": [
-                "PSR-11",
-                "container",
-                "container-interface",
-                "container-interop",
-                "psr"
-            ],
-            "support": {
-                "issues": "https://github.com/php-fig/container/issues",
-                "source": "https://github.com/php-fig/container/tree/2.0.2"
-            },
-            "install-path": "../psr/container"
-        },
-        {
-            "name": "psr/event-dispatcher",
-            "version": "1.0.0",
-            "version_normalized": "1.0.0.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/php-fig/event-dispatcher.git",
-                "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/php-fig/event-dispatcher/zipball/dbefd12671e8a14ec7f180cab83036ed26714bb0",
-                "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=7.2.0"
-            },
-            "time": "2019-01-08T18:20:26+00:00",
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "1.0.x-dev"
-                }
-            },
-            "installation-source": "dist",
-            "autoload": {
-                "psr-4": {
-                    "Psr\\EventDispatcher\\": "src/"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "authors": [
-                {
-                    "name": "PHP-FIG",
-                    "homepage": "http://www.php-fig.org/"
-                }
-            ],
-            "description": "Standard interfaces for event handling.",
-            "keywords": [
-                "events",
-                "psr",
-                "psr-14"
-            ],
-            "support": {
-                "issues": "https://github.com/php-fig/event-dispatcher/issues",
-                "source": "https://github.com/php-fig/event-dispatcher/tree/1.0.0"
-            },
-            "install-path": "../psr/event-dispatcher"
-        },
-        {
-            "name": "psr/http-client",
-            "version": "1.0.3",
-            "version_normalized": "1.0.3.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/php-fig/http-client.git",
-                "reference": "bb5906edc1c324c9a05aa0873d40117941e5fa90"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/php-fig/http-client/zipball/bb5906edc1c324c9a05aa0873d40117941e5fa90",
-                "reference": "bb5906edc1c324c9a05aa0873d40117941e5fa90",
-                "shasum": ""
-            },
-            "require": {
-                "php": "^7.0 || ^8.0",
-                "psr/http-message": "^1.0 || ^2.0"
-            },
-            "time": "2023-09-23T14:17:50+00:00",
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "1.0.x-dev"
-                }
-            },
-            "installation-source": "dist",
-            "autoload": {
-                "psr-4": {
-                    "Psr\\Http\\Client\\": "src/"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "authors": [
-                {
-                    "name": "PHP-FIG",
-                    "homepage": "https://www.php-fig.org/"
-                }
-            ],
-            "description": "Common interface for HTTP clients",
-            "homepage": "https://github.com/php-fig/http-client",
-            "keywords": [
-                "http",
-                "http-client",
-                "psr",
-                "psr-18"
-            ],
-            "support": {
-                "source": "https://github.com/php-fig/http-client"
-            },
-            "install-path": "../psr/http-client"
-        },
-        {
-            "name": "psr/http-factory",
-            "version": "1.1.0",
-            "version_normalized": "1.1.0.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/php-fig/http-factory.git",
-                "reference": "2b4765fddfe3b508ac62f829e852b1501d3f6e8a"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/php-fig/http-factory/zipball/2b4765fddfe3b508ac62f829e852b1501d3f6e8a",
-                "reference": "2b4765fddfe3b508ac62f829e852b1501d3f6e8a",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=7.1",
-                "psr/http-message": "^1.0 || ^2.0"
-            },
-            "time": "2024-04-15T12:06:14+00:00",
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "1.0.x-dev"
-                }
-            },
-            "installation-source": "dist",
-            "autoload": {
-                "psr-4": {
-                    "Psr\\Http\\Message\\": "src/"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "authors": [
-                {
-                    "name": "PHP-FIG",
-                    "homepage": "https://www.php-fig.org/"
-                }
-            ],
-            "description": "PSR-17: Common interfaces for PSR-7 HTTP message factories",
-            "keywords": [
-                "factory",
-                "http",
-                "message",
-                "psr",
-                "psr-17",
-                "psr-7",
-                "request",
-                "response"
-            ],
-            "support": {
-                "source": "https://github.com/php-fig/http-factory"
-            },
-            "install-path": "../psr/http-factory"
-        },
-        {
-            "name": "psr/http-message",
-            "version": "2.0",
-            "version_normalized": "2.0.0.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/php-fig/http-message.git",
-                "reference": "402d35bcb92c70c026d1a6a9883f06b2ead23d71"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/php-fig/http-message/zipball/402d35bcb92c70c026d1a6a9883f06b2ead23d71",
-                "reference": "402d35bcb92c70c026d1a6a9883f06b2ead23d71",
-                "shasum": ""
-            },
-            "require": {
-                "php": "^7.2 || ^8.0"
-            },
-            "time": "2023-04-04T09:54:51+00:00",
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "2.0.x-dev"
-                }
-            },
-            "installation-source": "dist",
-            "autoload": {
-                "psr-4": {
-                    "Psr\\Http\\Message\\": "src/"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "authors": [
-                {
-                    "name": "PHP-FIG",
-                    "homepage": "https://www.php-fig.org/"
-                }
-            ],
-            "description": "Common interface for HTTP messages",
-            "homepage": "https://github.com/php-fig/http-message",
-            "keywords": [
-                "http",
-                "http-message",
-                "psr",
-                "psr-7",
-                "request",
-                "response"
-            ],
-            "support": {
-                "source": "https://github.com/php-fig/http-message/tree/2.0"
-            },
-            "install-path": "../psr/http-message"
-        },
-        {
-            "name": "psr/http-server-handler",
-            "version": "1.0.2",
-            "version_normalized": "1.0.2.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/php-fig/http-server-handler.git",
-                "reference": "84c4fb66179be4caaf8e97bd239203245302e7d4"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/php-fig/http-server-handler/zipball/84c4fb66179be4caaf8e97bd239203245302e7d4",
-                "reference": "84c4fb66179be4caaf8e97bd239203245302e7d4",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=7.0",
-                "psr/http-message": "^1.0 || ^2.0"
-            },
-            "time": "2023-04-10T20:06:20+00:00",
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "1.0.x-dev"
-                }
-            },
-            "installation-source": "dist",
-            "autoload": {
-                "psr-4": {
-                    "Psr\\Http\\Server\\": "src/"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "authors": [
-                {
-                    "name": "PHP-FIG",
-                    "homepage": "https://www.php-fig.org/"
-                }
-            ],
-            "description": "Common interface for HTTP server-side request handler",
-            "keywords": [
-                "handler",
-                "http",
-                "http-interop",
-                "psr",
-                "psr-15",
-                "psr-7",
-                "request",
-                "response",
-                "server"
-            ],
-            "support": {
-                "source": "https://github.com/php-fig/http-server-handler/tree/1.0.2"
-            },
-            "install-path": "../psr/http-server-handler"
-        },
-        {
-            "name": "psr/http-server-middleware",
-            "version": "1.0.2",
-            "version_normalized": "1.0.2.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/php-fig/http-server-middleware.git",
-                "reference": "c1481f747daaa6a0782775cd6a8c26a1bf4a3829"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/php-fig/http-server-middleware/zipball/c1481f747daaa6a0782775cd6a8c26a1bf4a3829",
-                "reference": "c1481f747daaa6a0782775cd6a8c26a1bf4a3829",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=7.0",
-                "psr/http-message": "^1.0 || ^2.0",
-                "psr/http-server-handler": "^1.0"
-            },
-            "time": "2023-04-11T06:14:47+00:00",
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "1.0.x-dev"
-                }
-            },
-            "installation-source": "dist",
-            "autoload": {
-                "psr-4": {
-                    "Psr\\Http\\Server\\": "src/"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "authors": [
-                {
-                    "name": "PHP-FIG",
-                    "homepage": "https://www.php-fig.org/"
-                }
-            ],
-            "description": "Common interface for HTTP server-side middleware",
-            "keywords": [
-                "http",
-                "http-interop",
-                "middleware",
-                "psr",
-                "psr-15",
-                "psr-7",
-                "request",
-                "response"
-            ],
-            "support": {
-                "issues": "https://github.com/php-fig/http-server-middleware/issues",
-                "source": "https://github.com/php-fig/http-server-middleware/tree/1.0.2"
-            },
-            "install-path": "../psr/http-server-middleware"
-        },
-        {
-            "name": "psr/log",
-            "version": "3.0.0",
-            "version_normalized": "3.0.0.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/php-fig/log.git",
-                "reference": "fe5ea303b0887d5caefd3d431c3e61ad47037001"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/php-fig/log/zipball/fe5ea303b0887d5caefd3d431c3e61ad47037001",
-                "reference": "fe5ea303b0887d5caefd3d431c3e61ad47037001",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=8.0.0"
-            },
-            "time": "2021-07-14T16:46:02+00:00",
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "3.x-dev"
-                }
-            },
-            "installation-source": "dist",
-            "autoload": {
-                "psr-4": {
-                    "Psr\\Log\\": "src"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "authors": [
-                {
-                    "name": "PHP-FIG",
-                    "homepage": "https://www.php-fig.org/"
-                }
-            ],
-            "description": "Common interface for logging libraries",
-            "homepage": "https://github.com/php-fig/log",
-            "keywords": [
-                "log",
-                "psr",
-                "psr-3"
-            ],
-            "support": {
-                "source": "https://github.com/php-fig/log/tree/3.0.0"
-            },
-            "install-path": "../psr/log"
-        },
-        {
-            "name": "psr/simple-cache",
-            "version": "3.0.0",
-            "version_normalized": "3.0.0.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/php-fig/simple-cache.git",
-                "reference": "764e0b3939f5ca87cb904f570ef9be2d78a07865"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/php-fig/simple-cache/zipball/764e0b3939f5ca87cb904f570ef9be2d78a07865",
-                "reference": "764e0b3939f5ca87cb904f570ef9be2d78a07865",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=8.0.0"
-            },
-            "time": "2021-10-29T13:26:27+00:00",
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "3.0.x-dev"
-                }
-            },
-            "installation-source": "dist",
-            "autoload": {
-                "psr-4": {
-                    "Psr\\SimpleCache\\": "src/"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "authors": [
-                {
-                    "name": "PHP-FIG",
-                    "homepage": "https://www.php-fig.org/"
-                }
-            ],
-            "description": "Common interfaces for simple caching",
-            "keywords": [
-                "cache",
-                "caching",
-                "psr",
-                "psr-16",
-                "simple-cache"
-            ],
-            "support": {
-                "source": "https://github.com/php-fig/simple-cache/tree/3.0.0"
-            },
-            "install-path": "../psr/simple-cache"
-        },
-        {
-            "name": "ralouphie/getallheaders",
-            "version": "3.0.3",
-            "version_normalized": "3.0.3.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/ralouphie/getallheaders.git",
-                "reference": "120b605dfeb996808c31b6477290a714d356e822"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/ralouphie/getallheaders/zipball/120b605dfeb996808c31b6477290a714d356e822",
-                "reference": "120b605dfeb996808c31b6477290a714d356e822",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=5.6"
-            },
-            "require-dev": {
-                "php-coveralls/php-coveralls": "^2.1",
-                "phpunit/phpunit": "^5 || ^6.5"
-            },
-            "time": "2019-03-08T08:55:37+00:00",
-            "type": "library",
-            "installation-source": "dist",
-            "autoload": {
-                "files": [
-                    "src/getallheaders.php"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "authors": [
-                {
-                    "name": "Ralph Khattar",
-                    "email": "ralph.khattar@gmail.com"
-                }
-            ],
-            "description": "A polyfill for getallheaders.",
-            "support": {
-                "issues": "https://github.com/ralouphie/getallheaders/issues",
-                "source": "https://github.com/ralouphie/getallheaders/tree/develop"
-            },
-            "install-path": "../ralouphie/getallheaders"
-        },
-        {
-            "name": "react/cache",
-            "version": "v1.2.0",
-            "version_normalized": "1.2.0.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/reactphp/cache.git",
-                "reference": "d47c472b64aa5608225f47965a484b75c7817d5b"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/reactphp/cache/zipball/d47c472b64aa5608225f47965a484b75c7817d5b",
-                "reference": "d47c472b64aa5608225f47965a484b75c7817d5b",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=5.3.0",
-                "react/promise": "^3.0 || ^2.0 || ^1.1"
-            },
-            "require-dev": {
-                "phpunit/phpunit": "^9.5 || ^5.7 || ^4.8.35"
-            },
-            "time": "2022-11-30T15:59:55+00:00",
-            "type": "library",
-            "installation-source": "dist",
-            "autoload": {
-                "psr-4": {
-                    "React\\Cache\\": "src/"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "authors": [
-                {
-                    "name": "Christian Lück",
-                    "email": "christian@clue.engineering",
-                    "homepage": "https://clue.engineering/"
-                },
-                {
-                    "name": "Cees-Jan Kiewiet",
-                    "email": "reactphp@ceesjankiewiet.nl",
-                    "homepage": "https://wyrihaximus.net/"
-                },
-                {
-                    "name": "Jan Sorgalla",
-                    "email": "jsorgalla@gmail.com",
-                    "homepage": "https://sorgalla.com/"
-                },
-                {
-                    "name": "Chris Boden",
-                    "email": "cboden@gmail.com",
-                    "homepage": "https://cboden.dev/"
-                }
-            ],
-            "description": "Async, Promise-based cache interface for ReactPHP",
-            "keywords": [
-                "cache",
-                "caching",
-                "promise",
-                "reactphp"
-            ],
-            "support": {
-                "issues": "https://github.com/reactphp/cache/issues",
-                "source": "https://github.com/reactphp/cache/tree/v1.2.0"
-            },
-            "funding": [
-                {
-                    "url": "https://opencollective.com/reactphp",
-                    "type": "open_collective"
-                }
-            ],
-            "install-path": "../react/cache"
-        },
-        {
-            "name": "react/child-process",
-            "version": "v0.6.5",
-            "version_normalized": "0.6.5.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/reactphp/child-process.git",
-                "reference": "e71eb1aa55f057c7a4a0d08d06b0b0a484bead43"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/reactphp/child-process/zipball/e71eb1aa55f057c7a4a0d08d06b0b0a484bead43",
-                "reference": "e71eb1aa55f057c7a4a0d08d06b0b0a484bead43",
-                "shasum": ""
-            },
-            "require": {
-                "evenement/evenement": "^3.0 || ^2.0 || ^1.0",
-                "php": ">=5.3.0",
-                "react/event-loop": "^1.2",
-                "react/stream": "^1.2"
-            },
-            "require-dev": {
-                "phpunit/phpunit": "^9.3 || ^5.7 || ^4.8.35",
-                "react/socket": "^1.8",
-                "sebastian/environment": "^5.0 || ^3.0 || ^2.0 || ^1.0"
-            },
-            "time": "2022-09-16T13:41:56+00:00",
-            "type": "library",
-            "installation-source": "dist",
-            "autoload": {
-                "psr-4": {
-                    "React\\ChildProcess\\": "src"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "authors": [
-                {
-                    "name": "Christian Lück",
-                    "email": "christian@clue.engineering",
-                    "homepage": "https://clue.engineering/"
-                },
-                {
-                    "name": "Cees-Jan Kiewiet",
-                    "email": "reactphp@ceesjankiewiet.nl",
-                    "homepage": "https://wyrihaximus.net/"
-                },
-                {
-                    "name": "Jan Sorgalla",
-                    "email": "jsorgalla@gmail.com",
-                    "homepage": "https://sorgalla.com/"
-                },
-                {
-                    "name": "Chris Boden",
-                    "email": "cboden@gmail.com",
-                    "homepage": "https://cboden.dev/"
-                }
-            ],
-            "description": "Event-driven library for executing child processes with ReactPHP.",
-            "keywords": [
-                "event-driven",
-                "process",
-                "reactphp"
-            ],
-            "support": {
-                "issues": "https://github.com/reactphp/child-process/issues",
-                "source": "https://github.com/reactphp/child-process/tree/v0.6.5"
-            },
-            "funding": [
-                {
-                    "url": "https://github.com/WyriHaximus",
-                    "type": "github"
-                },
-                {
-                    "url": "https://github.com/clue",
-                    "type": "github"
-                }
-            ],
-            "install-path": "../react/child-process"
-        },
-        {
-            "name": "react/dns",
-            "version": "v1.12.0",
-            "version_normalized": "1.12.0.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/reactphp/dns.git",
-                "reference": "c134600642fa615b46b41237ef243daa65bb64ec"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/reactphp/dns/zipball/c134600642fa615b46b41237ef243daa65bb64ec",
-                "reference": "c134600642fa615b46b41237ef243daa65bb64ec",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=5.3.0",
-                "react/cache": "^1.0 || ^0.6 || ^0.5",
-                "react/event-loop": "^1.2",
-                "react/promise": "^3.0 || ^2.7 || ^1.2.1"
-            },
-            "require-dev": {
-                "phpunit/phpunit": "^9.6 || ^5.7 || ^4.8.36",
-                "react/async": "^4 || ^3 || ^2",
-                "react/promise-timer": "^1.9"
-            },
-            "time": "2023-11-29T12:41:06+00:00",
-            "type": "library",
-            "installation-source": "dist",
-            "autoload": {
-                "psr-4": {
-                    "React\\Dns\\": "src/"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "authors": [
-                {
-                    "name": "Christian Lück",
-                    "email": "christian@clue.engineering",
-                    "homepage": "https://clue.engineering/"
-                },
-                {
-                    "name": "Cees-Jan Kiewiet",
-                    "email": "reactphp@ceesjankiewiet.nl",
-                    "homepage": "https://wyrihaximus.net/"
-                },
-                {
-                    "name": "Jan Sorgalla",
-                    "email": "jsorgalla@gmail.com",
-                    "homepage": "https://sorgalla.com/"
-                },
-                {
-                    "name": "Chris Boden",
-                    "email": "cboden@gmail.com",
-                    "homepage": "https://cboden.dev/"
-                }
-            ],
-            "description": "Async DNS resolver for ReactPHP",
-            "keywords": [
-                "async",
-                "dns",
-                "dns-resolver",
-                "reactphp"
-            ],
-            "support": {
-                "issues": "https://github.com/reactphp/dns/issues",
-                "source": "https://github.com/reactphp/dns/tree/v1.12.0"
-            },
-            "funding": [
-                {
-                    "url": "https://opencollective.com/reactphp",
-                    "type": "open_collective"
-                }
-            ],
-            "install-path": "../react/dns"
-        },
-        {
-            "name": "react/event-loop",
-            "version": "v1.5.0",
-            "version_normalized": "1.5.0.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/reactphp/event-loop.git",
-                "reference": "bbe0bd8c51ffc05ee43f1729087ed3bdf7d53354"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/reactphp/event-loop/zipball/bbe0bd8c51ffc05ee43f1729087ed3bdf7d53354",
-                "reference": "bbe0bd8c51ffc05ee43f1729087ed3bdf7d53354",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=5.3.0"
-            },
-            "require-dev": {
-                "phpunit/phpunit": "^9.6 || ^5.7 || ^4.8.36"
-            },
-            "suggest": {
-                "ext-pcntl": "For signal handling support when using the StreamSelectLoop"
-            },
-            "time": "2023-11-13T13:48:05+00:00",
-            "type": "library",
-            "installation-source": "dist",
-            "autoload": {
-                "psr-4": {
-                    "React\\EventLoop\\": "src/"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "authors": [
-                {
-                    "name": "Christian Lück",
-                    "email": "christian@clue.engineering",
-                    "homepage": "https://clue.engineering/"
-                },
-                {
-                    "name": "Cees-Jan Kiewiet",
-                    "email": "reactphp@ceesjankiewiet.nl",
-                    "homepage": "https://wyrihaximus.net/"
-                },
-                {
-                    "name": "Jan Sorgalla",
-                    "email": "jsorgalla@gmail.com",
-                    "homepage": "https://sorgalla.com/"
-                },
-                {
-                    "name": "Chris Boden",
-                    "email": "cboden@gmail.com",
-                    "homepage": "https://cboden.dev/"
-                }
-            ],
-            "description": "ReactPHP's core reactor event loop that libraries can use for evented I/O.",
-            "keywords": [
-                "asynchronous",
-                "event-loop"
-            ],
-            "support": {
-                "issues": "https://github.com/reactphp/event-loop/issues",
-                "source": "https://github.com/reactphp/event-loop/tree/v1.5.0"
-            },
-            "funding": [
-                {
-                    "url": "https://opencollective.com/reactphp",
-                    "type": "open_collective"
-                }
-            ],
-            "install-path": "../react/event-loop"
-        },
-        {
-            "name": "react/promise",
-            "version": "v3.2.0",
-            "version_normalized": "3.2.0.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/reactphp/promise.git",
-                "reference": "8a164643313c71354582dc850b42b33fa12a4b63"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/reactphp/promise/zipball/8a164643313c71354582dc850b42b33fa12a4b63",
-                "reference": "8a164643313c71354582dc850b42b33fa12a4b63",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=7.1.0"
-            },
-            "require-dev": {
-                "phpstan/phpstan": "1.10.39 || 1.4.10",
-                "phpunit/phpunit": "^9.6 || ^7.5"
-            },
-            "time": "2024-05-24T10:39:05+00:00",
-            "type": "library",
-            "installation-source": "dist",
-            "autoload": {
-                "files": [
-                    "src/functions_include.php"
-                ],
-                "psr-4": {
-                    "React\\Promise\\": "src/"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "authors": [
-                {
-                    "name": "Jan Sorgalla",
-                    "email": "jsorgalla@gmail.com",
-                    "homepage": "https://sorgalla.com/"
-                },
-                {
-                    "name": "Christian Lück",
-                    "email": "christian@clue.engineering",
-                    "homepage": "https://clue.engineering/"
-                },
-                {
-                    "name": "Cees-Jan Kiewiet",
-                    "email": "reactphp@ceesjankiewiet.nl",
-                    "homepage": "https://wyrihaximus.net/"
-                },
-                {
-                    "name": "Chris Boden",
-                    "email": "cboden@gmail.com",
-                    "homepage": "https://cboden.dev/"
-                }
-            ],
-            "description": "A lightweight implementation of CommonJS Promises/A for PHP",
-            "keywords": [
-                "promise",
-                "promises"
-            ],
-            "support": {
-                "issues": "https://github.com/reactphp/promise/issues",
-                "source": "https://github.com/reactphp/promise/tree/v3.2.0"
-            },
-            "funding": [
-                {
-                    "url": "https://opencollective.com/reactphp",
-                    "type": "open_collective"
-                }
-            ],
-            "install-path": "../react/promise"
-        },
-        {
-            "name": "react/socket",
-            "version": "v1.15.0",
-            "version_normalized": "1.15.0.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/reactphp/socket.git",
-                "reference": "216d3aec0b87f04a40ca04f481e6af01bdd1d038"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/reactphp/socket/zipball/216d3aec0b87f04a40ca04f481e6af01bdd1d038",
-                "reference": "216d3aec0b87f04a40ca04f481e6af01bdd1d038",
-                "shasum": ""
-            },
-            "require": {
-                "evenement/evenement": "^3.0 || ^2.0 || ^1.0",
-                "php": ">=5.3.0",
-                "react/dns": "^1.11",
-                "react/event-loop": "^1.2",
-                "react/promise": "^3 || ^2.6 || ^1.2.1",
-                "react/stream": "^1.2"
-            },
-            "require-dev": {
-                "phpunit/phpunit": "^9.6 || ^5.7 || ^4.8.36",
-                "react/async": "^4 || ^3 || ^2",
-                "react/promise-stream": "^1.4",
-                "react/promise-timer": "^1.10"
-            },
-            "time": "2023-12-15T11:02:10+00:00",
-            "type": "library",
-            "installation-source": "dist",
-            "autoload": {
-                "psr-4": {
-                    "React\\Socket\\": "src/"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "authors": [
-                {
-                    "name": "Christian Lück",
-                    "email": "christian@clue.engineering",
-                    "homepage": "https://clue.engineering/"
-                },
-                {
-                    "name": "Cees-Jan Kiewiet",
-                    "email": "reactphp@ceesjankiewiet.nl",
-                    "homepage": "https://wyrihaximus.net/"
-                },
-                {
-                    "name": "Jan Sorgalla",
-                    "email": "jsorgalla@gmail.com",
-                    "homepage": "https://sorgalla.com/"
-                },
-                {
-                    "name": "Chris Boden",
-                    "email": "cboden@gmail.com",
-                    "homepage": "https://cboden.dev/"
-                }
-            ],
-            "description": "Async, streaming plaintext TCP/IP and secure TLS socket server and client connections for ReactPHP",
-            "keywords": [
-                "Connection",
-                "Socket",
-                "async",
-                "reactphp",
-                "stream"
-            ],
-            "support": {
-                "issues": "https://github.com/reactphp/socket/issues",
-                "source": "https://github.com/reactphp/socket/tree/v1.15.0"
-            },
-            "funding": [
-                {
-                    "url": "https://opencollective.com/reactphp",
-                    "type": "open_collective"
-                }
-            ],
-            "install-path": "../react/socket"
-        },
-        {
-            "name": "react/stream",
-            "version": "v1.3.0",
-            "version_normalized": "1.3.0.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/reactphp/stream.git",
-                "reference": "6fbc9672905c7d5a885f2da2fc696f65840f4a66"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/reactphp/stream/zipball/6fbc9672905c7d5a885f2da2fc696f65840f4a66",
-                "reference": "6fbc9672905c7d5a885f2da2fc696f65840f4a66",
-                "shasum": ""
-            },
-            "require": {
-                "evenement/evenement": "^3.0 || ^2.0 || ^1.0",
-                "php": ">=5.3.8",
-                "react/event-loop": "^1.2"
-            },
-            "require-dev": {
-                "clue/stream-filter": "~1.2",
-                "phpunit/phpunit": "^9.5 || ^5.7 || ^4.8.35"
-            },
-            "time": "2023-06-16T10:52:11+00:00",
-            "type": "library",
-            "installation-source": "dist",
-            "autoload": {
-                "psr-4": {
-                    "React\\Stream\\": "src/"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "authors": [
-                {
-                    "name": "Christian Lück",
-                    "email": "christian@clue.engineering",
-                    "homepage": "https://clue.engineering/"
-                },
-                {
-                    "name": "Cees-Jan Kiewiet",
-                    "email": "reactphp@ceesjankiewiet.nl",
-                    "homepage": "https://wyrihaximus.net/"
-                },
-                {
-                    "name": "Jan Sorgalla",
-                    "email": "jsorgalla@gmail.com",
-                    "homepage": "https://sorgalla.com/"
-                },
-                {
-                    "name": "Chris Boden",
-                    "email": "cboden@gmail.com",
-                    "homepage": "https://cboden.dev/"
-                }
-            ],
-            "description": "Event-driven readable and writable streams for non-blocking I/O in ReactPHP",
-            "keywords": [
-                "event-driven",
-                "io",
-                "non-blocking",
-                "pipe",
-                "reactphp",
-                "readable",
-                "stream",
-                "writable"
-            ],
-            "support": {
-                "issues": "https://github.com/reactphp/stream/issues",
-                "source": "https://github.com/reactphp/stream/tree/v1.3.0"
-            },
-            "funding": [
-                {
-                    "url": "https://opencollective.com/reactphp",
-                    "type": "open_collective"
-                }
-            ],
-            "install-path": "../react/stream"
-        },
-        {
-            "name": "sebastian/cli-parser",
-            "version": "2.0.1",
-            "version_normalized": "2.0.1.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/sebastianbergmann/cli-parser.git",
-                "reference": "c34583b87e7b7a8055bf6c450c2c77ce32a24084"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/c34583b87e7b7a8055bf6c450c2c77ce32a24084",
-                "reference": "c34583b87e7b7a8055bf6c450c2c77ce32a24084",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=8.1"
-            },
-            "require-dev": {
-                "phpunit/phpunit": "^10.0"
-            },
-            "time": "2024-03-02T07:12:49+00:00",
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-main": "2.0-dev"
-                }
-            },
-            "installation-source": "dist",
-            "autoload": {
-                "classmap": [
-                    "src/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "BSD-3-Clause"
-            ],
-            "authors": [
-                {
-                    "name": "Sebastian Bergmann",
-                    "email": "sebastian@phpunit.de",
-                    "role": "lead"
-                }
-            ],
-            "description": "Library for parsing CLI options",
-            "homepage": "https://github.com/sebastianbergmann/cli-parser",
-            "support": {
-                "issues": "https://github.com/sebastianbergmann/cli-parser/issues",
-                "security": "https://github.com/sebastianbergmann/cli-parser/security/policy",
-                "source": "https://github.com/sebastianbergmann/cli-parser/tree/2.0.1"
-            },
-            "funding": [
-                {
-                    "url": "https://github.com/sebastianbergmann",
-                    "type": "github"
-                }
-            ],
-            "install-path": "../sebastian/cli-parser"
-        },
-        {
-            "name": "sebastian/code-unit",
-            "version": "2.0.0",
-            "version_normalized": "2.0.0.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/sebastianbergmann/code-unit.git",
-                "reference": "a81fee9eef0b7a76af11d121767abc44c104e503"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/code-unit/zipball/a81fee9eef0b7a76af11d121767abc44c104e503",
-                "reference": "a81fee9eef0b7a76af11d121767abc44c104e503",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=8.1"
-            },
-            "require-dev": {
-                "phpunit/phpunit": "^10.0"
-            },
-            "time": "2023-02-03T06:58:43+00:00",
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-main": "2.0-dev"
-                }
-            },
-            "installation-source": "dist",
-            "autoload": {
-                "classmap": [
-                    "src/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "BSD-3-Clause"
-            ],
-            "authors": [
-                {
-                    "name": "Sebastian Bergmann",
-                    "email": "sebastian@phpunit.de",
-                    "role": "lead"
-                }
-            ],
-            "description": "Collection of value objects that represent the PHP code units",
-            "homepage": "https://github.com/sebastianbergmann/code-unit",
-            "support": {
-                "issues": "https://github.com/sebastianbergmann/code-unit/issues",
-                "source": "https://github.com/sebastianbergmann/code-unit/tree/2.0.0"
-            },
-            "funding": [
-                {
-                    "url": "https://github.com/sebastianbergmann",
-                    "type": "github"
-                }
-            ],
-            "install-path": "../sebastian/code-unit"
-        },
-        {
-            "name": "sebastian/code-unit-reverse-lookup",
-            "version": "3.0.0",
-            "version_normalized": "3.0.0.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git",
-                "reference": "5e3a687f7d8ae33fb362c5c0743794bbb2420a1d"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/5e3a687f7d8ae33fb362c5c0743794bbb2420a1d",
-                "reference": "5e3a687f7d8ae33fb362c5c0743794bbb2420a1d",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=8.1"
-            },
-            "require-dev": {
-                "phpunit/phpunit": "^10.0"
-            },
-            "time": "2023-02-03T06:59:15+00:00",
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-main": "3.0-dev"
-                }
-            },
-            "installation-source": "dist",
-            "autoload": {
-                "classmap": [
-                    "src/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "BSD-3-Clause"
-            ],
-            "authors": [
-                {
-                    "name": "Sebastian Bergmann",
-                    "email": "sebastian@phpunit.de"
-                }
-            ],
-            "description": "Looks up which function or method a line of code belongs to",
-            "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/",
-            "support": {
-                "issues": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/issues",
-                "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/3.0.0"
-            },
-            "funding": [
-                {
-                    "url": "https://github.com/sebastianbergmann",
-                    "type": "github"
-                }
-            ],
-            "install-path": "../sebastian/code-unit-reverse-lookup"
-        },
-        {
-            "name": "sebastian/comparator",
-            "version": "5.0.1",
-            "version_normalized": "5.0.1.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/sebastianbergmann/comparator.git",
-                "reference": "2db5010a484d53ebf536087a70b4a5423c102372"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/2db5010a484d53ebf536087a70b4a5423c102372",
-                "reference": "2db5010a484d53ebf536087a70b4a5423c102372",
-                "shasum": ""
-            },
-            "require": {
-                "ext-dom": "*",
-                "ext-mbstring": "*",
-                "php": ">=8.1",
-                "sebastian/diff": "^5.0",
-                "sebastian/exporter": "^5.0"
-            },
-            "require-dev": {
-                "phpunit/phpunit": "^10.3"
-            },
-            "time": "2023-08-14T13:18:12+00:00",
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-main": "5.0-dev"
-                }
-            },
-            "installation-source": "dist",
-            "autoload": {
-                "classmap": [
-                    "src/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "BSD-3-Clause"
-            ],
-            "authors": [
-                {
-                    "name": "Sebastian Bergmann",
-                    "email": "sebastian@phpunit.de"
-                },
-                {
-                    "name": "Jeff Welch",
-                    "email": "whatthejeff@gmail.com"
-                },
-                {
-                    "name": "Volker Dusch",
-                    "email": "github@wallbash.com"
-                },
-                {
-                    "name": "Bernhard Schussek",
-                    "email": "bschussek@2bepublished.at"
-                }
-            ],
-            "description": "Provides the functionality to compare PHP values for equality",
-            "homepage": "https://github.com/sebastianbergmann/comparator",
-            "keywords": [
-                "comparator",
-                "compare",
-                "equality"
-            ],
-            "support": {
-                "issues": "https://github.com/sebastianbergmann/comparator/issues",
-                "security": "https://github.com/sebastianbergmann/comparator/security/policy",
-                "source": "https://github.com/sebastianbergmann/comparator/tree/5.0.1"
-            },
-            "funding": [
-                {
-                    "url": "https://github.com/sebastianbergmann",
-                    "type": "github"
-                }
-            ],
-            "install-path": "../sebastian/comparator"
-        },
-        {
-            "name": "sebastian/complexity",
-            "version": "3.2.0",
-            "version_normalized": "3.2.0.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/sebastianbergmann/complexity.git",
-                "reference": "68ff824baeae169ec9f2137158ee529584553799"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/68ff824baeae169ec9f2137158ee529584553799",
-                "reference": "68ff824baeae169ec9f2137158ee529584553799",
-                "shasum": ""
-            },
-            "require": {
-                "nikic/php-parser": "^4.18 || ^5.0",
-                "php": ">=8.1"
-            },
-            "require-dev": {
-                "phpunit/phpunit": "^10.0"
-            },
-            "time": "2023-12-21T08:37:17+00:00",
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-main": "3.2-dev"
-                }
-            },
-            "installation-source": "dist",
-            "autoload": {
-                "classmap": [
-                    "src/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "BSD-3-Clause"
-            ],
-            "authors": [
-                {
-                    "name": "Sebastian Bergmann",
-                    "email": "sebastian@phpunit.de",
-                    "role": "lead"
-                }
-            ],
-            "description": "Library for calculating the complexity of PHP code units",
-            "homepage": "https://github.com/sebastianbergmann/complexity",
-            "support": {
-                "issues": "https://github.com/sebastianbergmann/complexity/issues",
-                "security": "https://github.com/sebastianbergmann/complexity/security/policy",
-                "source": "https://github.com/sebastianbergmann/complexity/tree/3.2.0"
-            },
-            "funding": [
-                {
-                    "url": "https://github.com/sebastianbergmann",
-                    "type": "github"
-                }
-            ],
-            "install-path": "../sebastian/complexity"
-        },
-        {
-            "name": "sebastian/diff",
-            "version": "5.1.1",
-            "version_normalized": "5.1.1.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/sebastianbergmann/diff.git",
-                "reference": "c41e007b4b62af48218231d6c2275e4c9b975b2e"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/c41e007b4b62af48218231d6c2275e4c9b975b2e",
-                "reference": "c41e007b4b62af48218231d6c2275e4c9b975b2e",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=8.1"
-            },
-            "require-dev": {
-                "phpunit/phpunit": "^10.0",
-                "symfony/process": "^6.4"
-            },
-            "time": "2024-03-02T07:15:17+00:00",
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-main": "5.1-dev"
-                }
-            },
-            "installation-source": "dist",
-            "autoload": {
-                "classmap": [
-                    "src/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "BSD-3-Clause"
-            ],
-            "authors": [
-                {
-                    "name": "Sebastian Bergmann",
-                    "email": "sebastian@phpunit.de"
-                },
-                {
-                    "name": "Kore Nordmann",
-                    "email": "mail@kore-nordmann.de"
-                }
-            ],
-            "description": "Diff implementation",
-            "homepage": "https://github.com/sebastianbergmann/diff",
-            "keywords": [
-                "diff",
-                "udiff",
-                "unidiff",
-                "unified diff"
-            ],
-            "support": {
-                "issues": "https://github.com/sebastianbergmann/diff/issues",
-                "security": "https://github.com/sebastianbergmann/diff/security/policy",
-                "source": "https://github.com/sebastianbergmann/diff/tree/5.1.1"
-            },
-            "funding": [
-                {
-                    "url": "https://github.com/sebastianbergmann",
-                    "type": "github"
-                }
-            ],
-            "install-path": "../sebastian/diff"
-        },
-        {
-            "name": "sebastian/environment",
-            "version": "6.1.0",
-            "version_normalized": "6.1.0.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/sebastianbergmann/environment.git",
-                "reference": "8074dbcd93529b357029f5cc5058fd3e43666984"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/8074dbcd93529b357029f5cc5058fd3e43666984",
-                "reference": "8074dbcd93529b357029f5cc5058fd3e43666984",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=8.1"
-            },
-            "require-dev": {
-                "phpunit/phpunit": "^10.0"
-            },
-            "suggest": {
-                "ext-posix": "*"
-            },
-            "time": "2024-03-23T08:47:14+00:00",
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-main": "6.1-dev"
-                }
-            },
-            "installation-source": "dist",
-            "autoload": {
-                "classmap": [
-                    "src/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "BSD-3-Clause"
-            ],
-            "authors": [
-                {
-                    "name": "Sebastian Bergmann",
-                    "email": "sebastian@phpunit.de"
-                }
-            ],
-            "description": "Provides functionality to handle HHVM/PHP environments",
-            "homepage": "https://github.com/sebastianbergmann/environment",
-            "keywords": [
-                "Xdebug",
-                "environment",
-                "hhvm"
-            ],
-            "support": {
-                "issues": "https://github.com/sebastianbergmann/environment/issues",
-                "security": "https://github.com/sebastianbergmann/environment/security/policy",
-                "source": "https://github.com/sebastianbergmann/environment/tree/6.1.0"
-            },
-            "funding": [
-                {
-                    "url": "https://github.com/sebastianbergmann",
-                    "type": "github"
-                }
-            ],
-            "install-path": "../sebastian/environment"
-        },
-        {
-            "name": "sebastian/exporter",
-            "version": "5.1.2",
-            "version_normalized": "5.1.2.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/sebastianbergmann/exporter.git",
-                "reference": "955288482d97c19a372d3f31006ab3f37da47adf"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/955288482d97c19a372d3f31006ab3f37da47adf",
-                "reference": "955288482d97c19a372d3f31006ab3f37da47adf",
-                "shasum": ""
-            },
-            "require": {
-                "ext-mbstring": "*",
-                "php": ">=8.1",
-                "sebastian/recursion-context": "^5.0"
-            },
-            "require-dev": {
-                "phpunit/phpunit": "^10.0"
-            },
-            "time": "2024-03-02T07:17:12+00:00",
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-main": "5.1-dev"
-                }
-            },
-            "installation-source": "dist",
-            "autoload": {
-                "classmap": [
-                    "src/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "BSD-3-Clause"
-            ],
-            "authors": [
-                {
-                    "name": "Sebastian Bergmann",
-                    "email": "sebastian@phpunit.de"
-                },
-                {
-                    "name": "Jeff Welch",
-                    "email": "whatthejeff@gmail.com"
-                },
-                {
-                    "name": "Volker Dusch",
-                    "email": "github@wallbash.com"
-                },
-                {
-                    "name": "Adam Harvey",
-                    "email": "aharvey@php.net"
-                },
-                {
-                    "name": "Bernhard Schussek",
-                    "email": "bschussek@gmail.com"
-                }
-            ],
-            "description": "Provides the functionality to export PHP variables for visualization",
-            "homepage": "https://www.github.com/sebastianbergmann/exporter",
-            "keywords": [
-                "export",
-                "exporter"
-            ],
-            "support": {
-                "issues": "https://github.com/sebastianbergmann/exporter/issues",
-                "security": "https://github.com/sebastianbergmann/exporter/security/policy",
-                "source": "https://github.com/sebastianbergmann/exporter/tree/5.1.2"
-            },
-            "funding": [
-                {
-                    "url": "https://github.com/sebastianbergmann",
-                    "type": "github"
-                }
-            ],
-            "install-path": "../sebastian/exporter"
-        },
-        {
-            "name": "sebastian/global-state",
-            "version": "6.0.2",
-            "version_normalized": "6.0.2.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/sebastianbergmann/global-state.git",
-                "reference": "987bafff24ecc4c9ac418cab1145b96dd6e9cbd9"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/987bafff24ecc4c9ac418cab1145b96dd6e9cbd9",
-                "reference": "987bafff24ecc4c9ac418cab1145b96dd6e9cbd9",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=8.1",
-                "sebastian/object-reflector": "^3.0",
-                "sebastian/recursion-context": "^5.0"
-            },
-            "require-dev": {
-                "ext-dom": "*",
-                "phpunit/phpunit": "^10.0"
-            },
-            "time": "2024-03-02T07:19:19+00:00",
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-main": "6.0-dev"
-                }
-            },
-            "installation-source": "dist",
-            "autoload": {
-                "classmap": [
-                    "src/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "BSD-3-Clause"
-            ],
-            "authors": [
-                {
-                    "name": "Sebastian Bergmann",
-                    "email": "sebastian@phpunit.de"
-                }
-            ],
-            "description": "Snapshotting of global state",
-            "homepage": "https://www.github.com/sebastianbergmann/global-state",
-            "keywords": [
-                "global state"
-            ],
-            "support": {
-                "issues": "https://github.com/sebastianbergmann/global-state/issues",
-                "security": "https://github.com/sebastianbergmann/global-state/security/policy",
-                "source": "https://github.com/sebastianbergmann/global-state/tree/6.0.2"
-            },
-            "funding": [
-                {
-                    "url": "https://github.com/sebastianbergmann",
-                    "type": "github"
-                }
-            ],
-            "install-path": "../sebastian/global-state"
-        },
-        {
-            "name": "sebastian/lines-of-code",
-            "version": "2.0.2",
-            "version_normalized": "2.0.2.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/sebastianbergmann/lines-of-code.git",
-                "reference": "856e7f6a75a84e339195d48c556f23be2ebf75d0"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/856e7f6a75a84e339195d48c556f23be2ebf75d0",
-                "reference": "856e7f6a75a84e339195d48c556f23be2ebf75d0",
-                "shasum": ""
-            },
-            "require": {
-                "nikic/php-parser": "^4.18 || ^5.0",
-                "php": ">=8.1"
-            },
-            "require-dev": {
-                "phpunit/phpunit": "^10.0"
-            },
-            "time": "2023-12-21T08:38:20+00:00",
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-main": "2.0-dev"
-                }
-            },
-            "installation-source": "dist",
-            "autoload": {
-                "classmap": [
-                    "src/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "BSD-3-Clause"
-            ],
-            "authors": [
-                {
-                    "name": "Sebastian Bergmann",
-                    "email": "sebastian@phpunit.de",
-                    "role": "lead"
-                }
-            ],
-            "description": "Library for counting the lines of code in PHP source code",
-            "homepage": "https://github.com/sebastianbergmann/lines-of-code",
-            "support": {
-                "issues": "https://github.com/sebastianbergmann/lines-of-code/issues",
-                "security": "https://github.com/sebastianbergmann/lines-of-code/security/policy",
-                "source": "https://github.com/sebastianbergmann/lines-of-code/tree/2.0.2"
-            },
-            "funding": [
-                {
-                    "url": "https://github.com/sebastianbergmann",
-                    "type": "github"
-                }
-            ],
-            "install-path": "../sebastian/lines-of-code"
-        },
-        {
-            "name": "sebastian/object-enumerator",
-            "version": "5.0.0",
-            "version_normalized": "5.0.0.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/sebastianbergmann/object-enumerator.git",
-                "reference": "202d0e344a580d7f7d04b3fafce6933e59dae906"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/202d0e344a580d7f7d04b3fafce6933e59dae906",
-                "reference": "202d0e344a580d7f7d04b3fafce6933e59dae906",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=8.1",
-                "sebastian/object-reflector": "^3.0",
-                "sebastian/recursion-context": "^5.0"
-            },
-            "require-dev": {
-                "phpunit/phpunit": "^10.0"
-            },
-            "time": "2023-02-03T07:08:32+00:00",
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-main": "5.0-dev"
-                }
-            },
-            "installation-source": "dist",
-            "autoload": {
-                "classmap": [
-                    "src/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "BSD-3-Clause"
-            ],
-            "authors": [
-                {
-                    "name": "Sebastian Bergmann",
-                    "email": "sebastian@phpunit.de"
-                }
-            ],
-            "description": "Traverses array structures and object graphs to enumerate all referenced objects",
-            "homepage": "https://github.com/sebastianbergmann/object-enumerator/",
-            "support": {
-                "issues": "https://github.com/sebastianbergmann/object-enumerator/issues",
-                "source": "https://github.com/sebastianbergmann/object-enumerator/tree/5.0.0"
-            },
-            "funding": [
-                {
-                    "url": "https://github.com/sebastianbergmann",
-                    "type": "github"
-                }
-            ],
-            "install-path": "../sebastian/object-enumerator"
-        },
-        {
-            "name": "sebastian/object-reflector",
-            "version": "3.0.0",
-            "version_normalized": "3.0.0.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/sebastianbergmann/object-reflector.git",
-                "reference": "24ed13d98130f0e7122df55d06c5c4942a577957"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/24ed13d98130f0e7122df55d06c5c4942a577957",
-                "reference": "24ed13d98130f0e7122df55d06c5c4942a577957",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=8.1"
-            },
-            "require-dev": {
-                "phpunit/phpunit": "^10.0"
-            },
-            "time": "2023-02-03T07:06:18+00:00",
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-main": "3.0-dev"
-                }
-            },
-            "installation-source": "dist",
-            "autoload": {
-                "classmap": [
-                    "src/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "BSD-3-Clause"
-            ],
-            "authors": [
-                {
-                    "name": "Sebastian Bergmann",
-                    "email": "sebastian@phpunit.de"
-                }
-            ],
-            "description": "Allows reflection of object attributes, including inherited and non-public ones",
-            "homepage": "https://github.com/sebastianbergmann/object-reflector/",
-            "support": {
-                "issues": "https://github.com/sebastianbergmann/object-reflector/issues",
-                "source": "https://github.com/sebastianbergmann/object-reflector/tree/3.0.0"
-            },
-            "funding": [
-                {
-                    "url": "https://github.com/sebastianbergmann",
-                    "type": "github"
-                }
-            ],
-            "install-path": "../sebastian/object-reflector"
-        },
-        {
-            "name": "sebastian/recursion-context",
-            "version": "5.0.0",
-            "version_normalized": "5.0.0.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/sebastianbergmann/recursion-context.git",
-                "reference": "05909fb5bc7df4c52992396d0116aed689f93712"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/05909fb5bc7df4c52992396d0116aed689f93712",
-                "reference": "05909fb5bc7df4c52992396d0116aed689f93712",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=8.1"
-            },
-            "require-dev": {
-                "phpunit/phpunit": "^10.0"
-            },
-            "time": "2023-02-03T07:05:40+00:00",
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-main": "5.0-dev"
-                }
-            },
-            "installation-source": "dist",
-            "autoload": {
-                "classmap": [
-                    "src/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "BSD-3-Clause"
-            ],
-            "authors": [
-                {
-                    "name": "Sebastian Bergmann",
-                    "email": "sebastian@phpunit.de"
-                },
-                {
-                    "name": "Jeff Welch",
-                    "email": "whatthejeff@gmail.com"
-                },
-                {
-                    "name": "Adam Harvey",
-                    "email": "aharvey@php.net"
-                }
-            ],
-            "description": "Provides functionality to recursively process PHP variables",
-            "homepage": "https://github.com/sebastianbergmann/recursion-context",
-            "support": {
-                "issues": "https://github.com/sebastianbergmann/recursion-context/issues",
-                "source": "https://github.com/sebastianbergmann/recursion-context/tree/5.0.0"
-            },
-            "funding": [
-                {
-                    "url": "https://github.com/sebastianbergmann",
-                    "type": "github"
-                }
-            ],
-            "install-path": "../sebastian/recursion-context"
-        },
-        {
-            "name": "sebastian/type",
-            "version": "4.0.0",
-            "version_normalized": "4.0.0.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/sebastianbergmann/type.git",
-                "reference": "462699a16464c3944eefc02ebdd77882bd3925bf"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/462699a16464c3944eefc02ebdd77882bd3925bf",
-                "reference": "462699a16464c3944eefc02ebdd77882bd3925bf",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=8.1"
-            },
-            "require-dev": {
-                "phpunit/phpunit": "^10.0"
-            },
-            "time": "2023-02-03T07:10:45+00:00",
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-main": "4.0-dev"
-                }
-            },
-            "installation-source": "dist",
-            "autoload": {
-                "classmap": [
-                    "src/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "BSD-3-Clause"
-            ],
-            "authors": [
-                {
-                    "name": "Sebastian Bergmann",
-                    "email": "sebastian@phpunit.de",
-                    "role": "lead"
-                }
-            ],
-            "description": "Collection of value objects that represent the types of the PHP type system",
-            "homepage": "https://github.com/sebastianbergmann/type",
-            "support": {
-                "issues": "https://github.com/sebastianbergmann/type/issues",
-                "source": "https://github.com/sebastianbergmann/type/tree/4.0.0"
-            },
-            "funding": [
-                {
-                    "url": "https://github.com/sebastianbergmann",
-                    "type": "github"
-                }
-            ],
-            "install-path": "../sebastian/type"
-        },
-        {
-            "name": "sebastian/version",
-            "version": "4.0.1",
-            "version_normalized": "4.0.1.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/sebastianbergmann/version.git",
-                "reference": "c51fa83a5d8f43f1402e3f32a005e6262244ef17"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/c51fa83a5d8f43f1402e3f32a005e6262244ef17",
-                "reference": "c51fa83a5d8f43f1402e3f32a005e6262244ef17",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=8.1"
-            },
-            "time": "2023-02-07T11:34:05+00:00",
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-main": "4.0-dev"
-                }
-            },
-            "installation-source": "dist",
-            "autoload": {
-                "classmap": [
-                    "src/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "BSD-3-Clause"
-            ],
-            "authors": [
-                {
-                    "name": "Sebastian Bergmann",
-                    "email": "sebastian@phpunit.de",
-                    "role": "lead"
-                }
-            ],
-            "description": "Library that helps with managing the version number of Git-hosted PHP projects",
-            "homepage": "https://github.com/sebastianbergmann/version",
-            "support": {
-                "issues": "https://github.com/sebastianbergmann/version/issues",
-                "source": "https://github.com/sebastianbergmann/version/tree/4.0.1"
-            },
-            "funding": [
-                {
-                    "url": "https://github.com/sebastianbergmann",
-                    "type": "github"
-                }
-            ],
-            "install-path": "../sebastian/version"
-        },
-        {
-            "name": "swoole/ide-helper",
-            "version": "5.1.2",
-            "version_normalized": "5.1.2.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/swoole/ide-helper.git",
-                "reference": "33ec7af9111b76d06a70dd31191cc74793551112"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/swoole/ide-helper/zipball/33ec7af9111b76d06a70dd31191cc74793551112",
-                "reference": "33ec7af9111b76d06a70dd31191cc74793551112",
-                "shasum": ""
-            },
-            "time": "2024-02-01T22:28:11+00:00",
-            "type": "library",
-            "installation-source": "dist",
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "Apache-2.0"
-            ],
-            "authors": [
-                {
-                    "name": "Team Swoole",
-                    "email": "team@swoole.com"
-                }
-            ],
-            "description": "IDE help files for Swoole.",
-            "support": {
-                "issues": "https://github.com/swoole/ide-helper/issues",
-                "source": "https://github.com/swoole/ide-helper/tree/5.1.2"
-            },
-            "install-path": "../swoole/ide-helper"
-        },
-        {
-            "name": "swow/psr7-plus",
-            "version": "v1.1.2",
-            "version_normalized": "1.1.2.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/swow/psr7-plus.git",
-                "reference": "7acc4924be907d2ff64edee5a2bd116620e56364"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/swow/psr7-plus/zipball/7acc4924be907d2ff64edee5a2bd116620e56364",
-                "reference": "7acc4924be907d2ff64edee5a2bd116620e56364",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=8.0",
-                "psr/http-client": "^1.0",
-                "psr/http-factory": "^1.0",
-                "psr/http-message": "^1.1|^2.0"
-            },
-            "time": "2023-06-15T09:18:11+00:00",
-            "type": "library",
-            "installation-source": "dist",
-            "autoload": {
-                "psr-4": {
-                    "Swow\\Psr7\\Message\\": "src/Message/"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "Apache-2.0"
-            ],
-            "authors": [
-                {
-                    "name": "twose",
-                    "email": "twosee@php.net"
-                }
-            ],
-            "description": "Modern strong-typed interfaces for Psr7, not only HTTP but also WebSocket",
-            "keywords": [
-                "http",
-                "psr17",
-                "psr7",
-                "swow",
-                "websocket"
-            ],
-            "support": {
-                "issues": "https://github.com/swow/swow",
-                "source": "https://github.com/swow/psr7-plus/tree/v1.1.2"
-            },
-            "install-path": "../swow/psr7-plus"
-        },
-        {
-            "name": "symfony/console",
-            "version": "v6.4.8",
-            "version_normalized": "6.4.8.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/symfony/console.git",
-                "reference": "be5854cee0e8c7b110f00d695d11debdfa1a2a91"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/symfony/console/zipball/be5854cee0e8c7b110f00d695d11debdfa1a2a91",
-                "reference": "be5854cee0e8c7b110f00d695d11debdfa1a2a91",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=8.1",
-                "symfony/deprecation-contracts": "^2.5|^3",
-                "symfony/polyfill-mbstring": "~1.0",
-                "symfony/service-contracts": "^2.5|^3",
-                "symfony/string": "^5.4|^6.0|^7.0"
-            },
-            "conflict": {
-                "symfony/dependency-injection": "<5.4",
-                "symfony/dotenv": "<5.4",
-                "symfony/event-dispatcher": "<5.4",
-                "symfony/lock": "<5.4",
-                "symfony/process": "<5.4"
-            },
-            "provide": {
-                "psr/log-implementation": "1.0|2.0|3.0"
-            },
-            "require-dev": {
-                "psr/log": "^1|^2|^3",
-                "symfony/config": "^5.4|^6.0|^7.0",
-                "symfony/dependency-injection": "^5.4|^6.0|^7.0",
-                "symfony/event-dispatcher": "^5.4|^6.0|^7.0",
-                "symfony/http-foundation": "^6.4|^7.0",
-                "symfony/http-kernel": "^6.4|^7.0",
-                "symfony/lock": "^5.4|^6.0|^7.0",
-                "symfony/messenger": "^5.4|^6.0|^7.0",
-                "symfony/process": "^5.4|^6.0|^7.0",
-                "symfony/stopwatch": "^5.4|^6.0|^7.0",
-                "symfony/var-dumper": "^5.4|^6.0|^7.0"
-            },
-            "time": "2024-05-31T14:49:08+00:00",
-            "type": "library",
-            "installation-source": "dist",
-            "autoload": {
-                "psr-4": {
-                    "Symfony\\Component\\Console\\": ""
-                },
-                "exclude-from-classmap": [
-                    "/Tests/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "authors": [
-                {
-                    "name": "Fabien Potencier",
-                    "email": "fabien@symfony.com"
-                },
-                {
-                    "name": "Symfony Community",
-                    "homepage": "https://symfony.com/contributors"
-                }
-            ],
-            "description": "Eases the creation of beautiful and testable command line interfaces",
-            "homepage": "https://symfony.com",
-            "keywords": [
-                "cli",
-                "command-line",
-                "console",
-                "terminal"
-            ],
-            "support": {
-                "source": "https://github.com/symfony/console/tree/v6.4.8"
-            },
-            "funding": [
-                {
-                    "url": "https://symfony.com/sponsor",
-                    "type": "custom"
-                },
-                {
-                    "url": "https://github.com/fabpot",
-                    "type": "github"
-                },
-                {
-                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
-                    "type": "tidelift"
-                }
-            ],
-            "install-path": "../symfony/console"
-        },
-        {
-            "name": "symfony/deprecation-contracts",
-            "version": "v3.5.0",
-            "version_normalized": "3.5.0.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/symfony/deprecation-contracts.git",
-                "reference": "0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1",
-                "reference": "0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=8.1"
-            },
-            "time": "2024-04-18T09:32:20+00:00",
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-main": "3.5-dev"
-                },
-                "thanks": {
-                    "name": "symfony/contracts",
-                    "url": "https://github.com/symfony/contracts"
-                }
-            },
-            "installation-source": "dist",
-            "autoload": {
-                "files": [
-                    "function.php"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "authors": [
-                {
-                    "name": "Nicolas Grekas",
-                    "email": "p@tchwork.com"
-                },
-                {
-                    "name": "Symfony Community",
-                    "homepage": "https://symfony.com/contributors"
-                }
-            ],
-            "description": "A generic function and convention to trigger deprecation notices",
-            "homepage": "https://symfony.com",
-            "support": {
-                "source": "https://github.com/symfony/deprecation-contracts/tree/v3.5.0"
-            },
-            "funding": [
-                {
-                    "url": "https://symfony.com/sponsor",
-                    "type": "custom"
-                },
-                {
-                    "url": "https://github.com/fabpot",
-                    "type": "github"
-                },
-                {
-                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
-                    "type": "tidelift"
-                }
-            ],
-            "install-path": "../symfony/deprecation-contracts"
-        },
-        {
-            "name": "symfony/event-dispatcher",
-            "version": "v6.4.8",
-            "version_normalized": "6.4.8.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/symfony/event-dispatcher.git",
-                "reference": "8d7507f02b06e06815e56bb39aa0128e3806208b"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/8d7507f02b06e06815e56bb39aa0128e3806208b",
-                "reference": "8d7507f02b06e06815e56bb39aa0128e3806208b",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=8.1",
-                "symfony/event-dispatcher-contracts": "^2.5|^3"
-            },
-            "conflict": {
-                "symfony/dependency-injection": "<5.4",
-                "symfony/service-contracts": "<2.5"
-            },
-            "provide": {
-                "psr/event-dispatcher-implementation": "1.0",
-                "symfony/event-dispatcher-implementation": "2.0|3.0"
-            },
-            "require-dev": {
-                "psr/log": "^1|^2|^3",
-                "symfony/config": "^5.4|^6.0|^7.0",
-                "symfony/dependency-injection": "^5.4|^6.0|^7.0",
-                "symfony/error-handler": "^5.4|^6.0|^7.0",
-                "symfony/expression-language": "^5.4|^6.0|^7.0",
-                "symfony/http-foundation": "^5.4|^6.0|^7.0",
-                "symfony/service-contracts": "^2.5|^3",
-                "symfony/stopwatch": "^5.4|^6.0|^7.0"
-            },
-            "time": "2024-05-31T14:49:08+00:00",
-            "type": "library",
-            "installation-source": "dist",
-            "autoload": {
-                "psr-4": {
-                    "Symfony\\Component\\EventDispatcher\\": ""
-                },
-                "exclude-from-classmap": [
-                    "/Tests/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "authors": [
-                {
-                    "name": "Fabien Potencier",
-                    "email": "fabien@symfony.com"
-                },
-                {
-                    "name": "Symfony Community",
-                    "homepage": "https://symfony.com/contributors"
-                }
-            ],
-            "description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them",
-            "homepage": "https://symfony.com",
-            "support": {
-                "source": "https://github.com/symfony/event-dispatcher/tree/v6.4.8"
-            },
-            "funding": [
-                {
-                    "url": "https://symfony.com/sponsor",
-                    "type": "custom"
-                },
-                {
-                    "url": "https://github.com/fabpot",
-                    "type": "github"
-                },
-                {
-                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
-                    "type": "tidelift"
-                }
-            ],
-            "install-path": "../symfony/event-dispatcher"
-        },
-        {
-            "name": "symfony/event-dispatcher-contracts",
-            "version": "v3.5.0",
-            "version_normalized": "3.5.0.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/symfony/event-dispatcher-contracts.git",
-                "reference": "8f93aec25d41b72493c6ddff14e916177c9efc50"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/8f93aec25d41b72493c6ddff14e916177c9efc50",
-                "reference": "8f93aec25d41b72493c6ddff14e916177c9efc50",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=8.1",
-                "psr/event-dispatcher": "^1"
-            },
-            "time": "2024-04-18T09:32:20+00:00",
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-main": "3.5-dev"
-                },
-                "thanks": {
-                    "name": "symfony/contracts",
-                    "url": "https://github.com/symfony/contracts"
-                }
-            },
-            "installation-source": "dist",
-            "autoload": {
-                "psr-4": {
-                    "Symfony\\Contracts\\EventDispatcher\\": ""
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "authors": [
-                {
-                    "name": "Nicolas Grekas",
-                    "email": "p@tchwork.com"
-                },
-                {
-                    "name": "Symfony Community",
-                    "homepage": "https://symfony.com/contributors"
-                }
-            ],
-            "description": "Generic abstractions related to dispatching event",
-            "homepage": "https://symfony.com",
-            "keywords": [
-                "abstractions",
-                "contracts",
-                "decoupling",
-                "interfaces",
-                "interoperability",
-                "standards"
-            ],
-            "support": {
-                "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.5.0"
-            },
-            "funding": [
-                {
-                    "url": "https://symfony.com/sponsor",
-                    "type": "custom"
-                },
-                {
-                    "url": "https://github.com/fabpot",
-                    "type": "github"
-                },
-                {
-                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
-                    "type": "tidelift"
-                }
-            ],
-            "install-path": "../symfony/event-dispatcher-contracts"
-        },
-        {
-            "name": "symfony/filesystem",
-            "version": "v6.4.8",
-            "version_normalized": "6.4.8.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/symfony/filesystem.git",
-                "reference": "4d37529150e7081c51b3c5d5718c55a04a9503f3"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/symfony/filesystem/zipball/4d37529150e7081c51b3c5d5718c55a04a9503f3",
-                "reference": "4d37529150e7081c51b3c5d5718c55a04a9503f3",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=8.1",
-                "symfony/polyfill-ctype": "~1.8",
-                "symfony/polyfill-mbstring": "~1.8"
-            },
-            "require-dev": {
-                "symfony/process": "^5.4|^6.4|^7.0"
-            },
-            "time": "2024-05-31T14:49:08+00:00",
-            "type": "library",
-            "installation-source": "dist",
-            "autoload": {
-                "psr-4": {
-                    "Symfony\\Component\\Filesystem\\": ""
-                },
-                "exclude-from-classmap": [
-                    "/Tests/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "authors": [
-                {
-                    "name": "Fabien Potencier",
-                    "email": "fabien@symfony.com"
-                },
-                {
-                    "name": "Symfony Community",
-                    "homepage": "https://symfony.com/contributors"
-                }
-            ],
-            "description": "Provides basic utilities for the filesystem",
-            "homepage": "https://symfony.com",
-            "support": {
-                "source": "https://github.com/symfony/filesystem/tree/v6.4.8"
-            },
-            "funding": [
-                {
-                    "url": "https://symfony.com/sponsor",
-                    "type": "custom"
-                },
-                {
-                    "url": "https://github.com/fabpot",
-                    "type": "github"
-                },
-                {
-                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
-                    "type": "tidelift"
-                }
-            ],
-            "install-path": "../symfony/filesystem"
-        },
-        {
-            "name": "symfony/finder",
-            "version": "v6.4.8",
-            "version_normalized": "6.4.8.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/symfony/finder.git",
-                "reference": "3ef977a43883215d560a2cecb82ec8e62131471c"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/symfony/finder/zipball/3ef977a43883215d560a2cecb82ec8e62131471c",
-                "reference": "3ef977a43883215d560a2cecb82ec8e62131471c",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=8.1"
-            },
-            "require-dev": {
-                "symfony/filesystem": "^6.0|^7.0"
-            },
-            "time": "2024-05-31T14:49:08+00:00",
-            "type": "library",
-            "installation-source": "dist",
-            "autoload": {
-                "psr-4": {
-                    "Symfony\\Component\\Finder\\": ""
-                },
-                "exclude-from-classmap": [
-                    "/Tests/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "authors": [
-                {
-                    "name": "Fabien Potencier",
-                    "email": "fabien@symfony.com"
-                },
-                {
-                    "name": "Symfony Community",
-                    "homepage": "https://symfony.com/contributors"
-                }
-            ],
-            "description": "Finds files and directories via an intuitive fluent interface",
-            "homepage": "https://symfony.com",
-            "support": {
-                "source": "https://github.com/symfony/finder/tree/v6.4.8"
-            },
-            "funding": [
-                {
-                    "url": "https://symfony.com/sponsor",
-                    "type": "custom"
-                },
-                {
-                    "url": "https://github.com/fabpot",
-                    "type": "github"
-                },
-                {
-                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
-                    "type": "tidelift"
-                }
-            ],
-            "install-path": "../symfony/finder"
-        },
-        {
-            "name": "symfony/http-foundation",
-            "version": "v6.4.8",
-            "version_normalized": "6.4.8.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/symfony/http-foundation.git",
-                "reference": "27de8cc95e11db7a50b027e71caaab9024545947"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/symfony/http-foundation/zipball/27de8cc95e11db7a50b027e71caaab9024545947",
-                "reference": "27de8cc95e11db7a50b027e71caaab9024545947",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=8.1",
-                "symfony/deprecation-contracts": "^2.5|^3",
-                "symfony/polyfill-mbstring": "~1.1",
-                "symfony/polyfill-php83": "^1.27"
-            },
-            "conflict": {
-                "symfony/cache": "<6.3"
-            },
-            "require-dev": {
-                "doctrine/dbal": "^2.13.1|^3|^4",
-                "predis/predis": "^1.1|^2.0",
-                "symfony/cache": "^6.3|^7.0",
-                "symfony/dependency-injection": "^5.4|^6.0|^7.0",
-                "symfony/expression-language": "^5.4|^6.0|^7.0",
-                "symfony/http-kernel": "^5.4.12|^6.0.12|^6.1.4|^7.0",
-                "symfony/mime": "^5.4|^6.0|^7.0",
-                "symfony/rate-limiter": "^5.4|^6.0|^7.0"
-            },
-            "time": "2024-05-31T14:49:08+00:00",
-            "type": "library",
-            "installation-source": "dist",
-            "autoload": {
-                "psr-4": {
-                    "Symfony\\Component\\HttpFoundation\\": ""
-                },
-                "exclude-from-classmap": [
-                    "/Tests/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "authors": [
-                {
-                    "name": "Fabien Potencier",
-                    "email": "fabien@symfony.com"
-                },
-                {
-                    "name": "Symfony Community",
-                    "homepage": "https://symfony.com/contributors"
-                }
-            ],
-            "description": "Defines an object-oriented layer for the HTTP specification",
-            "homepage": "https://symfony.com",
-            "support": {
-                "source": "https://github.com/symfony/http-foundation/tree/v6.4.8"
-            },
-            "funding": [
-                {
-                    "url": "https://symfony.com/sponsor",
-                    "type": "custom"
-                },
-                {
-                    "url": "https://github.com/fabpot",
-                    "type": "github"
-                },
-                {
-                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
-                    "type": "tidelift"
-                }
-            ],
-            "install-path": "../symfony/http-foundation"
-        },
-        {
-            "name": "symfony/options-resolver",
-            "version": "v6.4.8",
-            "version_normalized": "6.4.8.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/symfony/options-resolver.git",
-                "reference": "22ab9e9101ab18de37839074f8a1197f55590c1b"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/symfony/options-resolver/zipball/22ab9e9101ab18de37839074f8a1197f55590c1b",
-                "reference": "22ab9e9101ab18de37839074f8a1197f55590c1b",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=8.1",
-                "symfony/deprecation-contracts": "^2.5|^3"
-            },
-            "time": "2024-05-31T14:49:08+00:00",
-            "type": "library",
-            "installation-source": "dist",
-            "autoload": {
-                "psr-4": {
-                    "Symfony\\Component\\OptionsResolver\\": ""
-                },
-                "exclude-from-classmap": [
-                    "/Tests/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "authors": [
-                {
-                    "name": "Fabien Potencier",
-                    "email": "fabien@symfony.com"
-                },
-                {
-                    "name": "Symfony Community",
-                    "homepage": "https://symfony.com/contributors"
-                }
-            ],
-            "description": "Provides an improved replacement for the array_replace PHP function",
-            "homepage": "https://symfony.com",
-            "keywords": [
-                "config",
-                "configuration",
-                "options"
-            ],
-            "support": {
-                "source": "https://github.com/symfony/options-resolver/tree/v6.4.8"
-            },
-            "funding": [
-                {
-                    "url": "https://symfony.com/sponsor",
-                    "type": "custom"
-                },
-                {
-                    "url": "https://github.com/fabpot",
-                    "type": "github"
-                },
-                {
-                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
-                    "type": "tidelift"
-                }
-            ],
-            "install-path": "../symfony/options-resolver"
-        },
-        {
-            "name": "symfony/polyfill-ctype",
-            "version": "v1.29.0",
-            "version_normalized": "1.29.0.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/symfony/polyfill-ctype.git",
-                "reference": "ef4d7e442ca910c4764bce785146269b30cb5fc4"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/ef4d7e442ca910c4764bce785146269b30cb5fc4",
-                "reference": "ef4d7e442ca910c4764bce785146269b30cb5fc4",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=7.1"
-            },
-            "provide": {
-                "ext-ctype": "*"
-            },
-            "suggest": {
-                "ext-ctype": "For best performance"
-            },
-            "time": "2024-01-29T20:11:03+00:00",
-            "type": "library",
-            "extra": {
-                "thanks": {
-                    "name": "symfony/polyfill",
-                    "url": "https://github.com/symfony/polyfill"
-                }
-            },
-            "installation-source": "dist",
-            "autoload": {
-                "files": [
-                    "bootstrap.php"
-                ],
-                "psr-4": {
-                    "Symfony\\Polyfill\\Ctype\\": ""
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "authors": [
-                {
-                    "name": "Gert de Pagter",
-                    "email": "BackEndTea@gmail.com"
-                },
-                {
-                    "name": "Symfony Community",
-                    "homepage": "https://symfony.com/contributors"
-                }
-            ],
-            "description": "Symfony polyfill for ctype functions",
-            "homepage": "https://symfony.com",
-            "keywords": [
-                "compatibility",
-                "ctype",
-                "polyfill",
-                "portable"
-            ],
-            "support": {
-                "source": "https://github.com/symfony/polyfill-ctype/tree/v1.29.0"
-            },
-            "funding": [
-                {
-                    "url": "https://symfony.com/sponsor",
-                    "type": "custom"
-                },
-                {
-                    "url": "https://github.com/fabpot",
-                    "type": "github"
-                },
-                {
-                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
-                    "type": "tidelift"
-                }
-            ],
-            "install-path": "../symfony/polyfill-ctype"
-        },
-        {
-            "name": "symfony/polyfill-intl-grapheme",
-            "version": "v1.29.0",
-            "version_normalized": "1.29.0.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/symfony/polyfill-intl-grapheme.git",
-                "reference": "32a9da87d7b3245e09ac426c83d334ae9f06f80f"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/32a9da87d7b3245e09ac426c83d334ae9f06f80f",
-                "reference": "32a9da87d7b3245e09ac426c83d334ae9f06f80f",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=7.1"
-            },
-            "suggest": {
-                "ext-intl": "For best performance"
-            },
-            "time": "2024-01-29T20:11:03+00:00",
-            "type": "library",
-            "extra": {
-                "thanks": {
-                    "name": "symfony/polyfill",
-                    "url": "https://github.com/symfony/polyfill"
-                }
-            },
-            "installation-source": "dist",
-            "autoload": {
-                "files": [
-                    "bootstrap.php"
-                ],
-                "psr-4": {
-                    "Symfony\\Polyfill\\Intl\\Grapheme\\": ""
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "authors": [
-                {
-                    "name": "Nicolas Grekas",
-                    "email": "p@tchwork.com"
-                },
-                {
-                    "name": "Symfony Community",
-                    "homepage": "https://symfony.com/contributors"
-                }
-            ],
-            "description": "Symfony polyfill for intl's grapheme_* functions",
-            "homepage": "https://symfony.com",
-            "keywords": [
-                "compatibility",
-                "grapheme",
-                "intl",
-                "polyfill",
-                "portable",
-                "shim"
-            ],
-            "support": {
-                "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.29.0"
-            },
-            "funding": [
-                {
-                    "url": "https://symfony.com/sponsor",
-                    "type": "custom"
-                },
-                {
-                    "url": "https://github.com/fabpot",
-                    "type": "github"
-                },
-                {
-                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
-                    "type": "tidelift"
-                }
-            ],
-            "install-path": "../symfony/polyfill-intl-grapheme"
-        },
-        {
-            "name": "symfony/polyfill-intl-normalizer",
-            "version": "v1.29.0",
-            "version_normalized": "1.29.0.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/symfony/polyfill-intl-normalizer.git",
-                "reference": "bc45c394692b948b4d383a08d7753968bed9a83d"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/bc45c394692b948b4d383a08d7753968bed9a83d",
-                "reference": "bc45c394692b948b4d383a08d7753968bed9a83d",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=7.1"
-            },
-            "suggest": {
-                "ext-intl": "For best performance"
-            },
-            "time": "2024-01-29T20:11:03+00:00",
-            "type": "library",
-            "extra": {
-                "thanks": {
-                    "name": "symfony/polyfill",
-                    "url": "https://github.com/symfony/polyfill"
-                }
-            },
-            "installation-source": "dist",
-            "autoload": {
-                "files": [
-                    "bootstrap.php"
-                ],
-                "psr-4": {
-                    "Symfony\\Polyfill\\Intl\\Normalizer\\": ""
-                },
-                "classmap": [
-                    "Resources/stubs"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "authors": [
-                {
-                    "name": "Nicolas Grekas",
-                    "email": "p@tchwork.com"
-                },
-                {
-                    "name": "Symfony Community",
-                    "homepage": "https://symfony.com/contributors"
-                }
-            ],
-            "description": "Symfony polyfill for intl's Normalizer class and related functions",
-            "homepage": "https://symfony.com",
-            "keywords": [
-                "compatibility",
-                "intl",
-                "normalizer",
-                "polyfill",
-                "portable",
-                "shim"
-            ],
-            "support": {
-                "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.29.0"
-            },
-            "funding": [
-                {
-                    "url": "https://symfony.com/sponsor",
-                    "type": "custom"
-                },
-                {
-                    "url": "https://github.com/fabpot",
-                    "type": "github"
-                },
-                {
-                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
-                    "type": "tidelift"
-                }
-            ],
-            "install-path": "../symfony/polyfill-intl-normalizer"
-        },
-        {
-            "name": "symfony/polyfill-mbstring",
-            "version": "v1.29.0",
-            "version_normalized": "1.29.0.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/symfony/polyfill-mbstring.git",
-                "reference": "9773676c8a1bb1f8d4340a62efe641cf76eda7ec"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/9773676c8a1bb1f8d4340a62efe641cf76eda7ec",
-                "reference": "9773676c8a1bb1f8d4340a62efe641cf76eda7ec",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=7.1"
-            },
-            "provide": {
-                "ext-mbstring": "*"
-            },
-            "suggest": {
-                "ext-mbstring": "For best performance"
-            },
-            "time": "2024-01-29T20:11:03+00:00",
-            "type": "library",
-            "extra": {
-                "thanks": {
-                    "name": "symfony/polyfill",
-                    "url": "https://github.com/symfony/polyfill"
-                }
-            },
-            "installation-source": "dist",
-            "autoload": {
-                "files": [
-                    "bootstrap.php"
-                ],
-                "psr-4": {
-                    "Symfony\\Polyfill\\Mbstring\\": ""
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "authors": [
-                {
-                    "name": "Nicolas Grekas",
-                    "email": "p@tchwork.com"
-                },
-                {
-                    "name": "Symfony Community",
-                    "homepage": "https://symfony.com/contributors"
-                }
-            ],
-            "description": "Symfony polyfill for the Mbstring extension",
-            "homepage": "https://symfony.com",
-            "keywords": [
-                "compatibility",
-                "mbstring",
-                "polyfill",
-                "portable",
-                "shim"
-            ],
-            "support": {
-                "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.29.0"
-            },
-            "funding": [
-                {
-                    "url": "https://symfony.com/sponsor",
-                    "type": "custom"
-                },
-                {
-                    "url": "https://github.com/fabpot",
-                    "type": "github"
-                },
-                {
-                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
-                    "type": "tidelift"
-                }
-            ],
-            "install-path": "../symfony/polyfill-mbstring"
-        },
-        {
-            "name": "symfony/polyfill-php80",
-            "version": "v1.29.0",
-            "version_normalized": "1.29.0.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/symfony/polyfill-php80.git",
-                "reference": "87b68208d5c1188808dd7839ee1e6c8ec3b02f1b"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/87b68208d5c1188808dd7839ee1e6c8ec3b02f1b",
-                "reference": "87b68208d5c1188808dd7839ee1e6c8ec3b02f1b",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=7.1"
-            },
-            "time": "2024-01-29T20:11:03+00:00",
-            "type": "library",
-            "extra": {
-                "thanks": {
-                    "name": "symfony/polyfill",
-                    "url": "https://github.com/symfony/polyfill"
-                }
-            },
-            "installation-source": "dist",
-            "autoload": {
-                "files": [
-                    "bootstrap.php"
-                ],
-                "psr-4": {
-                    "Symfony\\Polyfill\\Php80\\": ""
-                },
-                "classmap": [
-                    "Resources/stubs"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "authors": [
-                {
-                    "name": "Ion Bazan",
-                    "email": "ion.bazan@gmail.com"
-                },
-                {
-                    "name": "Nicolas Grekas",
-                    "email": "p@tchwork.com"
-                },
-                {
-                    "name": "Symfony Community",
-                    "homepage": "https://symfony.com/contributors"
-                }
-            ],
-            "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions",
-            "homepage": "https://symfony.com",
-            "keywords": [
-                "compatibility",
-                "polyfill",
-                "portable",
-                "shim"
-            ],
-            "support": {
-                "source": "https://github.com/symfony/polyfill-php80/tree/v1.29.0"
-            },
-            "funding": [
-                {
-                    "url": "https://symfony.com/sponsor",
-                    "type": "custom"
-                },
-                {
-                    "url": "https://github.com/fabpot",
-                    "type": "github"
-                },
-                {
-                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
-                    "type": "tidelift"
-                }
-            ],
-            "install-path": "../symfony/polyfill-php80"
-        },
-        {
-            "name": "symfony/polyfill-php81",
-            "version": "v1.29.0",
-            "version_normalized": "1.29.0.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/symfony/polyfill-php81.git",
-                "reference": "c565ad1e63f30e7477fc40738343c62b40bc672d"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/c565ad1e63f30e7477fc40738343c62b40bc672d",
-                "reference": "c565ad1e63f30e7477fc40738343c62b40bc672d",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=7.1"
-            },
-            "time": "2024-01-29T20:11:03+00:00",
-            "type": "library",
-            "extra": {
-                "thanks": {
-                    "name": "symfony/polyfill",
-                    "url": "https://github.com/symfony/polyfill"
-                }
-            },
-            "installation-source": "dist",
-            "autoload": {
-                "files": [
-                    "bootstrap.php"
-                ],
-                "psr-4": {
-                    "Symfony\\Polyfill\\Php81\\": ""
-                },
-                "classmap": [
-                    "Resources/stubs"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "authors": [
-                {
-                    "name": "Nicolas Grekas",
-                    "email": "p@tchwork.com"
-                },
-                {
-                    "name": "Symfony Community",
-                    "homepage": "https://symfony.com/contributors"
-                }
-            ],
-            "description": "Symfony polyfill backporting some PHP 8.1+ features to lower PHP versions",
-            "homepage": "https://symfony.com",
-            "keywords": [
-                "compatibility",
-                "polyfill",
-                "portable",
-                "shim"
-            ],
-            "support": {
-                "source": "https://github.com/symfony/polyfill-php81/tree/v1.29.0"
-            },
-            "funding": [
-                {
-                    "url": "https://symfony.com/sponsor",
-                    "type": "custom"
-                },
-                {
-                    "url": "https://github.com/fabpot",
-                    "type": "github"
-                },
-                {
-                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
-                    "type": "tidelift"
-                }
-            ],
-            "install-path": "../symfony/polyfill-php81"
-        },
-        {
-            "name": "symfony/polyfill-php83",
-            "version": "v1.29.0",
-            "version_normalized": "1.29.0.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/symfony/polyfill-php83.git",
-                "reference": "86fcae159633351e5fd145d1c47de6c528f8caff"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/symfony/polyfill-php83/zipball/86fcae159633351e5fd145d1c47de6c528f8caff",
-                "reference": "86fcae159633351e5fd145d1c47de6c528f8caff",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=7.1",
-                "symfony/polyfill-php80": "^1.14"
-            },
-            "time": "2024-01-29T20:11:03+00:00",
-            "type": "library",
-            "extra": {
-                "thanks": {
-                    "name": "symfony/polyfill",
-                    "url": "https://github.com/symfony/polyfill"
-                }
-            },
-            "installation-source": "dist",
-            "autoload": {
-                "files": [
-                    "bootstrap.php"
-                ],
-                "psr-4": {
-                    "Symfony\\Polyfill\\Php83\\": ""
-                },
-                "classmap": [
-                    "Resources/stubs"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "authors": [
-                {
-                    "name": "Nicolas Grekas",
-                    "email": "p@tchwork.com"
-                },
-                {
-                    "name": "Symfony Community",
-                    "homepage": "https://symfony.com/contributors"
-                }
-            ],
-            "description": "Symfony polyfill backporting some PHP 8.3+ features to lower PHP versions",
-            "homepage": "https://symfony.com",
-            "keywords": [
-                "compatibility",
-                "polyfill",
-                "portable",
-                "shim"
-            ],
-            "support": {
-                "source": "https://github.com/symfony/polyfill-php83/tree/v1.29.0"
-            },
-            "funding": [
-                {
-                    "url": "https://symfony.com/sponsor",
-                    "type": "custom"
-                },
-                {
-                    "url": "https://github.com/fabpot",
-                    "type": "github"
-                },
-                {
-                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
-                    "type": "tidelift"
-                }
-            ],
-            "install-path": "../symfony/polyfill-php83"
-        },
-        {
-            "name": "symfony/process",
-            "version": "v6.4.8",
-            "version_normalized": "6.4.8.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/symfony/process.git",
-                "reference": "8d92dd79149f29e89ee0f480254db595f6a6a2c5"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/symfony/process/zipball/8d92dd79149f29e89ee0f480254db595f6a6a2c5",
-                "reference": "8d92dd79149f29e89ee0f480254db595f6a6a2c5",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=8.1"
-            },
-            "time": "2024-05-31T14:49:08+00:00",
-            "type": "library",
-            "installation-source": "dist",
-            "autoload": {
-                "psr-4": {
-                    "Symfony\\Component\\Process\\": ""
-                },
-                "exclude-from-classmap": [
-                    "/Tests/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "authors": [
-                {
-                    "name": "Fabien Potencier",
-                    "email": "fabien@symfony.com"
-                },
-                {
-                    "name": "Symfony Community",
-                    "homepage": "https://symfony.com/contributors"
-                }
-            ],
-            "description": "Executes commands in sub-processes",
-            "homepage": "https://symfony.com",
-            "support": {
-                "source": "https://github.com/symfony/process/tree/v6.4.8"
-            },
-            "funding": [
-                {
-                    "url": "https://symfony.com/sponsor",
-                    "type": "custom"
-                },
-                {
-                    "url": "https://github.com/fabpot",
-                    "type": "github"
-                },
-                {
-                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
-                    "type": "tidelift"
-                }
-            ],
-            "install-path": "../symfony/process"
-        },
-        {
-            "name": "symfony/service-contracts",
-            "version": "v3.5.0",
-            "version_normalized": "3.5.0.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/symfony/service-contracts.git",
-                "reference": "bd1d9e59a81d8fa4acdcea3f617c581f7475a80f"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/symfony/service-contracts/zipball/bd1d9e59a81d8fa4acdcea3f617c581f7475a80f",
-                "reference": "bd1d9e59a81d8fa4acdcea3f617c581f7475a80f",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=8.1",
-                "psr/container": "^1.1|^2.0",
-                "symfony/deprecation-contracts": "^2.5|^3"
-            },
-            "conflict": {
-                "ext-psr": "<1.1|>=2"
-            },
-            "time": "2024-04-18T09:32:20+00:00",
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-main": "3.5-dev"
-                },
-                "thanks": {
-                    "name": "symfony/contracts",
-                    "url": "https://github.com/symfony/contracts"
-                }
-            },
-            "installation-source": "dist",
-            "autoload": {
-                "psr-4": {
-                    "Symfony\\Contracts\\Service\\": ""
-                },
-                "exclude-from-classmap": [
-                    "/Test/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "authors": [
-                {
-                    "name": "Nicolas Grekas",
-                    "email": "p@tchwork.com"
-                },
-                {
-                    "name": "Symfony Community",
-                    "homepage": "https://symfony.com/contributors"
-                }
-            ],
-            "description": "Generic abstractions related to writing services",
-            "homepage": "https://symfony.com",
-            "keywords": [
-                "abstractions",
-                "contracts",
-                "decoupling",
-                "interfaces",
-                "interoperability",
-                "standards"
-            ],
-            "support": {
-                "source": "https://github.com/symfony/service-contracts/tree/v3.5.0"
-            },
-            "funding": [
-                {
-                    "url": "https://symfony.com/sponsor",
-                    "type": "custom"
-                },
-                {
-                    "url": "https://github.com/fabpot",
-                    "type": "github"
-                },
-                {
-                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
-                    "type": "tidelift"
-                }
-            ],
-            "install-path": "../symfony/service-contracts"
-        },
-        {
-            "name": "symfony/stopwatch",
-            "version": "v6.4.8",
-            "version_normalized": "6.4.8.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/symfony/stopwatch.git",
-                "reference": "63e069eb616049632cde9674c46957819454b8aa"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/symfony/stopwatch/zipball/63e069eb616049632cde9674c46957819454b8aa",
-                "reference": "63e069eb616049632cde9674c46957819454b8aa",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=8.1",
-                "symfony/service-contracts": "^2.5|^3"
-            },
-            "time": "2024-05-31T14:49:08+00:00",
-            "type": "library",
-            "installation-source": "dist",
-            "autoload": {
-                "psr-4": {
-                    "Symfony\\Component\\Stopwatch\\": ""
-                },
-                "exclude-from-classmap": [
-                    "/Tests/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "authors": [
-                {
-                    "name": "Fabien Potencier",
-                    "email": "fabien@symfony.com"
-                },
-                {
-                    "name": "Symfony Community",
-                    "homepage": "https://symfony.com/contributors"
-                }
-            ],
-            "description": "Provides a way to profile code",
-            "homepage": "https://symfony.com",
-            "support": {
-                "source": "https://github.com/symfony/stopwatch/tree/v6.4.8"
-            },
-            "funding": [
-                {
-                    "url": "https://symfony.com/sponsor",
-                    "type": "custom"
-                },
-                {
-                    "url": "https://github.com/fabpot",
-                    "type": "github"
-                },
-                {
-                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
-                    "type": "tidelift"
-                }
-            ],
-            "install-path": "../symfony/stopwatch"
-        },
-        {
-            "name": "symfony/string",
-            "version": "v6.4.8",
-            "version_normalized": "6.4.8.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/symfony/string.git",
-                "reference": "a147c0f826c4a1f3afb763ab8e009e37c877a44d"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/symfony/string/zipball/a147c0f826c4a1f3afb763ab8e009e37c877a44d",
-                "reference": "a147c0f826c4a1f3afb763ab8e009e37c877a44d",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=8.1",
-                "symfony/polyfill-ctype": "~1.8",
-                "symfony/polyfill-intl-grapheme": "~1.0",
-                "symfony/polyfill-intl-normalizer": "~1.0",
-                "symfony/polyfill-mbstring": "~1.0"
-            },
-            "conflict": {
-                "symfony/translation-contracts": "<2.5"
-            },
-            "require-dev": {
-                "symfony/error-handler": "^5.4|^6.0|^7.0",
-                "symfony/http-client": "^5.4|^6.0|^7.0",
-                "symfony/intl": "^6.2|^7.0",
-                "symfony/translation-contracts": "^2.5|^3.0",
-                "symfony/var-exporter": "^5.4|^6.0|^7.0"
-            },
-            "time": "2024-05-31T14:49:08+00:00",
-            "type": "library",
-            "installation-source": "dist",
-            "autoload": {
-                "files": [
-                    "Resources/functions.php"
-                ],
-                "psr-4": {
-                    "Symfony\\Component\\String\\": ""
-                },
-                "exclude-from-classmap": [
-                    "/Tests/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "authors": [
-                {
-                    "name": "Nicolas Grekas",
-                    "email": "p@tchwork.com"
-                },
-                {
-                    "name": "Symfony Community",
-                    "homepage": "https://symfony.com/contributors"
-                }
-            ],
-            "description": "Provides an object-oriented API to strings and deals with bytes, UTF-8 code points and grapheme clusters in a unified way",
-            "homepage": "https://symfony.com",
-            "keywords": [
-                "grapheme",
-                "i18n",
-                "string",
-                "unicode",
-                "utf-8",
-                "utf8"
-            ],
-            "support": {
-                "source": "https://github.com/symfony/string/tree/v6.4.8"
-            },
-            "funding": [
-                {
-                    "url": "https://symfony.com/sponsor",
-                    "type": "custom"
-                },
-                {
-                    "url": "https://github.com/fabpot",
-                    "type": "github"
-                },
-                {
-                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
-                    "type": "tidelift"
-                }
-            ],
-            "install-path": "../symfony/string"
-        },
-        {
-            "name": "symfony/translation",
-            "version": "v6.4.8",
-            "version_normalized": "6.4.8.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/symfony/translation.git",
-                "reference": "a002933b13989fc4bd0b58e04bf7eec5210e438a"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/symfony/translation/zipball/a002933b13989fc4bd0b58e04bf7eec5210e438a",
-                "reference": "a002933b13989fc4bd0b58e04bf7eec5210e438a",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=8.1",
-                "symfony/deprecation-contracts": "^2.5|^3",
-                "symfony/polyfill-mbstring": "~1.0",
-                "symfony/translation-contracts": "^2.5|^3.0"
-            },
-            "conflict": {
-                "symfony/config": "<5.4",
-                "symfony/console": "<5.4",
-                "symfony/dependency-injection": "<5.4",
-                "symfony/http-client-contracts": "<2.5",
-                "symfony/http-kernel": "<5.4",
-                "symfony/service-contracts": "<2.5",
-                "symfony/twig-bundle": "<5.4",
-                "symfony/yaml": "<5.4"
-            },
-            "provide": {
-                "symfony/translation-implementation": "2.3|3.0"
-            },
-            "require-dev": {
-                "nikic/php-parser": "^4.18|^5.0",
-                "psr/log": "^1|^2|^3",
-                "symfony/config": "^5.4|^6.0|^7.0",
-                "symfony/console": "^5.4|^6.0|^7.0",
-                "symfony/dependency-injection": "^5.4|^6.0|^7.0",
-                "symfony/finder": "^5.4|^6.0|^7.0",
-                "symfony/http-client-contracts": "^2.5|^3.0",
-                "symfony/http-kernel": "^5.4|^6.0|^7.0",
-                "symfony/intl": "^5.4|^6.0|^7.0",
-                "symfony/polyfill-intl-icu": "^1.21",
-                "symfony/routing": "^5.4|^6.0|^7.0",
-                "symfony/service-contracts": "^2.5|^3",
-                "symfony/yaml": "^5.4|^6.0|^7.0"
-            },
-            "time": "2024-05-31T14:49:08+00:00",
-            "type": "library",
-            "installation-source": "dist",
-            "autoload": {
-                "files": [
-                    "Resources/functions.php"
-                ],
-                "psr-4": {
-                    "Symfony\\Component\\Translation\\": ""
-                },
-                "exclude-from-classmap": [
-                    "/Tests/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "authors": [
-                {
-                    "name": "Fabien Potencier",
-                    "email": "fabien@symfony.com"
-                },
-                {
-                    "name": "Symfony Community",
-                    "homepage": "https://symfony.com/contributors"
-                }
-            ],
-            "description": "Provides tools to internationalize your application",
-            "homepage": "https://symfony.com",
-            "support": {
-                "source": "https://github.com/symfony/translation/tree/v6.4.8"
-            },
-            "funding": [
-                {
-                    "url": "https://symfony.com/sponsor",
-                    "type": "custom"
-                },
-                {
-                    "url": "https://github.com/fabpot",
-                    "type": "github"
-                },
-                {
-                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
-                    "type": "tidelift"
-                }
-            ],
-            "install-path": "../symfony/translation"
-        },
-        {
-            "name": "symfony/translation-contracts",
-            "version": "v3.5.0",
-            "version_normalized": "3.5.0.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/symfony/translation-contracts.git",
-                "reference": "b9d2189887bb6b2e0367a9fc7136c5239ab9b05a"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/b9d2189887bb6b2e0367a9fc7136c5239ab9b05a",
-                "reference": "b9d2189887bb6b2e0367a9fc7136c5239ab9b05a",
-                "shasum": ""
-            },
-            "require": {
-                "php": ">=8.1"
-            },
-            "time": "2024-04-18T09:32:20+00:00",
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-main": "3.5-dev"
-                },
-                "thanks": {
-                    "name": "symfony/contracts",
-                    "url": "https://github.com/symfony/contracts"
-                }
-            },
-            "installation-source": "dist",
-            "autoload": {
-                "psr-4": {
-                    "Symfony\\Contracts\\Translation\\": ""
-                },
-                "exclude-from-classmap": [
-                    "/Test/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "authors": [
-                {
-                    "name": "Nicolas Grekas",
-                    "email": "p@tchwork.com"
-                },
-                {
-                    "name": "Symfony Community",
-                    "homepage": "https://symfony.com/contributors"
-                }
-            ],
-            "description": "Generic abstractions related to translation",
-            "homepage": "https://symfony.com",
-            "keywords": [
-                "abstractions",
-                "contracts",
-                "decoupling",
-                "interfaces",
-                "interoperability",
-                "standards"
-            ],
-            "support": {
-                "source": "https://github.com/symfony/translation-contracts/tree/v3.5.0"
-            },
-            "funding": [
-                {
-                    "url": "https://symfony.com/sponsor",
-                    "type": "custom"
-                },
-                {
-                    "url": "https://github.com/fabpot",
-                    "type": "github"
-                },
-                {
-                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
-                    "type": "tidelift"
-                }
-            ],
-            "install-path": "../symfony/translation-contracts"
-        },
-        {
-            "name": "theseer/tokenizer",
-            "version": "1.2.3",
-            "version_normalized": "1.2.3.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/theseer/tokenizer.git",
-                "reference": "737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/theseer/tokenizer/zipball/737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2",
-                "reference": "737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2",
-                "shasum": ""
-            },
-            "require": {
-                "ext-dom": "*",
-                "ext-tokenizer": "*",
-                "ext-xmlwriter": "*",
-                "php": "^7.2 || ^8.0"
-            },
-            "time": "2024-03-03T12:36:25+00:00",
-            "type": "library",
-            "installation-source": "dist",
-            "autoload": {
-                "classmap": [
-                    "src/"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "BSD-3-Clause"
-            ],
-            "authors": [
-                {
-                    "name": "Arne Blankerts",
-                    "email": "arne@blankerts.de",
-                    "role": "Developer"
-                }
-            ],
-            "description": "A small library for converting tokenized PHP source code into XML and potentially other formats",
-            "support": {
-                "issues": "https://github.com/theseer/tokenizer/issues",
-                "source": "https://github.com/theseer/tokenizer/tree/1.2.3"
-            },
-            "funding": [
-                {
-                    "url": "https://github.com/theseer",
-                    "type": "github"
-                }
-            ],
-            "install-path": "../theseer/tokenizer"
-        },
-        {
-            "name": "vlucas/phpdotenv",
-            "version": "v5.6.0",
-            "version_normalized": "5.6.0.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/vlucas/phpdotenv.git",
-                "reference": "2cf9fb6054c2bb1d59d1f3817706ecdb9d2934c4"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/2cf9fb6054c2bb1d59d1f3817706ecdb9d2934c4",
-                "reference": "2cf9fb6054c2bb1d59d1f3817706ecdb9d2934c4",
-                "shasum": ""
-            },
-            "require": {
-                "ext-pcre": "*",
-                "graham-campbell/result-type": "^1.1.2",
-                "php": "^7.2.5 || ^8.0",
-                "phpoption/phpoption": "^1.9.2",
-                "symfony/polyfill-ctype": "^1.24",
-                "symfony/polyfill-mbstring": "^1.24",
-                "symfony/polyfill-php80": "^1.24"
-            },
-            "require-dev": {
-                "bamarni/composer-bin-plugin": "^1.8.2",
-                "ext-filter": "*",
-                "phpunit/phpunit": "^8.5.34 || ^9.6.13 || ^10.4.2"
-            },
-            "suggest": {
-                "ext-filter": "Required to use the boolean validator."
-            },
-            "time": "2023-11-12T22:43:29+00:00",
-            "type": "library",
-            "extra": {
-                "bamarni-bin": {
-                    "bin-links": true,
-                    "forward-command": true
-                },
-                "branch-alias": {
-                    "dev-master": "5.6-dev"
-                }
-            },
-            "installation-source": "dist",
-            "autoload": {
-                "psr-4": {
-                    "Dotenv\\": "src/"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "BSD-3-Clause"
-            ],
-            "authors": [
-                {
-                    "name": "Graham Campbell",
-                    "email": "hello@gjcampbell.co.uk",
-                    "homepage": "https://github.com/GrahamCampbell"
-                },
-                {
-                    "name": "Vance Lucas",
-                    "email": "vance@vancelucas.com",
-                    "homepage": "https://github.com/vlucas"
-                }
-            ],
-            "description": "Loads environment variables from `.env` to `getenv()`, `$_ENV` and `$_SERVER` automagically.",
-            "keywords": [
-                "dotenv",
-                "env",
-                "environment"
-            ],
-            "support": {
-                "issues": "https://github.com/vlucas/phpdotenv/issues",
-                "source": "https://github.com/vlucas/phpdotenv/tree/v5.6.0"
-            },
-            "funding": [
-                {
-                    "url": "https://github.com/GrahamCampbell",
-                    "type": "github"
-                },
-                {
-                    "url": "https://tidelift.com/funding/github/packagist/vlucas/phpdotenv",
-                    "type": "tidelift"
-                }
-            ],
-            "install-path": "../vlucas/phpdotenv"
-        }
-    ],
-    "dev": true,
-    "dev-package-names": [
-        "clue/ndjson-react",
-        "composer/pcre",
-        "composer/semver",
-        "composer/xdebug-handler",
-        "evenement/evenement",
-        "fidry/cpu-core-counter",
-        "friendsofphp/php-cs-fixer",
-        "hamcrest/hamcrest-php",
-        "hyperf/devtool",
-        "hyperf/testing",
-        "hyperf/watcher",
-        "mockery/mockery",
-        "myclabs/deep-copy",
-        "phar-io/manifest",
-        "phar-io/version",
-        "phpstan/phpstan",
-        "phpunit/php-code-coverage",
-        "phpunit/php-file-iterator",
-        "phpunit/php-invoker",
-        "phpunit/php-text-template",
-        "phpunit/php-timer",
-        "phpunit/phpunit",
-        "react/cache",
-        "react/child-process",
-        "react/dns",
-        "react/event-loop",
-        "react/promise",
-        "react/socket",
-        "react/stream",
-        "sebastian/cli-parser",
-        "sebastian/code-unit",
-        "sebastian/code-unit-reverse-lookup",
-        "sebastian/comparator",
-        "sebastian/complexity",
-        "sebastian/diff",
-        "sebastian/environment",
-        "sebastian/exporter",
-        "sebastian/global-state",
-        "sebastian/lines-of-code",
-        "sebastian/object-enumerator",
-        "sebastian/object-reflector",
-        "sebastian/recursion-context",
-        "sebastian/type",
-        "sebastian/version",
-        "swoole/ide-helper",
-        "symfony/event-dispatcher",
-        "symfony/event-dispatcher-contracts",
-        "symfony/filesystem",
-        "symfony/http-foundation",
-        "symfony/options-resolver",
-        "symfony/polyfill-php81",
-        "symfony/polyfill-php83",
-        "symfony/process",
-        "symfony/stopwatch",
-        "theseer/tokenizer"
-    ]
-}

+ 0 - 1485
vendor/composer/installed.php

@@ -1,1485 +0,0 @@
-<?php return array(
-    'root' => array(
-        'name' => 'hyperf/hyperf-skeleton',
-        'pretty_version' => 'dev-master',
-        'version' => 'dev-master',
-        'reference' => '28f209543fede32d85f136062cf524d01cb6f478',
-        'type' => 'project',
-        'install_path' => __DIR__ . '/../../',
-        'aliases' => array(),
-        'dev' => true,
-    ),
-    'versions' => array(
-        'aws/aws-crt-php' => array(
-            'pretty_version' => 'v1.2.7',
-            'version' => '1.2.7.0',
-            'reference' => 'd71d9906c7bb63a28295447ba12e74723bd3730e',
-            'type' => 'library',
-            'install_path' => __DIR__ . '/../aws/aws-crt-php',
-            'aliases' => array(),
-            'dev_requirement' => false,
-        ),
-        'aws/aws-sdk-php' => array(
-            'pretty_version' => '3.336.6',
-            'version' => '3.336.6.0',
-            'reference' => '0a99dab427f0a1c082775301141aeac3558691ad',
-            'type' => 'library',
-            'install_path' => __DIR__ . '/../aws/aws-sdk-php',
-            'aliases' => array(),
-            'dev_requirement' => false,
-        ),
-        'carbonphp/carbon-doctrine-types' => array(
-            'pretty_version' => '3.2.0',
-            'version' => '3.2.0.0',
-            'reference' => '18ba5ddfec8976260ead6e866180bd5d2f71aa1d',
-            'type' => 'library',
-            'install_path' => __DIR__ . '/../carbonphp/carbon-doctrine-types',
-            'aliases' => array(),
-            'dev_requirement' => false,
-        ),
-        'clue/ndjson-react' => array(
-            'pretty_version' => 'v1.3.0',
-            'version' => '1.3.0.0',
-            'reference' => '392dc165fce93b5bb5c637b67e59619223c931b0',
-            'type' => 'library',
-            'install_path' => __DIR__ . '/../clue/ndjson-react',
-            'aliases' => array(),
-            'dev_requirement' => true,
-        ),
-        'composer/pcre' => array(
-            'pretty_version' => '3.1.4',
-            'version' => '3.1.4.0',
-            'reference' => '04229f163664973f68f38f6f73d917799168ef24',
-            'type' => 'library',
-            'install_path' => __DIR__ . '/./pcre',
-            'aliases' => array(),
-            'dev_requirement' => true,
-        ),
-        'composer/semver' => array(
-            'pretty_version' => '3.4.0',
-            'version' => '3.4.0.0',
-            'reference' => '35e8d0af4486141bc745f23a29cc2091eb624a32',
-            'type' => 'library',
-            'install_path' => __DIR__ . '/./semver',
-            'aliases' => array(),
-            'dev_requirement' => true,
-        ),
-        'composer/xdebug-handler' => array(
-            'pretty_version' => '3.0.5',
-            'version' => '3.0.5.0',
-            'reference' => '6c1925561632e83d60a44492e0b344cf48ab85ef',
-            'type' => 'library',
-            'install_path' => __DIR__ . '/./xdebug-handler',
-            'aliases' => array(),
-            'dev_requirement' => true,
-        ),
-        'cordoval/hamcrest-php' => array(
-            'dev_requirement' => true,
-            'replaced' => array(
-                0 => '*',
-            ),
-        ),
-        'davedevelopment/hamcrest-php' => array(
-            'dev_requirement' => true,
-            'replaced' => array(
-                0 => '*',
-            ),
-        ),
-        'doctrine/annotations' => array(
-            'pretty_version' => '2.0.1',
-            'version' => '2.0.1.0',
-            'reference' => 'e157ef3f3124bbf6fe7ce0ffd109e8a8ef284e7f',
-            'type' => 'library',
-            'install_path' => __DIR__ . '/../doctrine/annotations',
-            'aliases' => array(),
-            'dev_requirement' => false,
-        ),
-        'doctrine/inflector' => array(
-            'pretty_version' => '2.0.10',
-            'version' => '2.0.10.0',
-            'reference' => '5817d0659c5b50c9b950feb9af7b9668e2c436bc',
-            'type' => 'library',
-            'install_path' => __DIR__ . '/../doctrine/inflector',
-            'aliases' => array(),
-            'dev_requirement' => false,
-        ),
-        'doctrine/instantiator' => array(
-            'pretty_version' => '1.5.0',
-            'version' => '1.5.0.0',
-            'reference' => '0a0fa9780f5d4e507415a065172d26a98d02047b',
-            'type' => 'library',
-            'install_path' => __DIR__ . '/../doctrine/instantiator',
-            'aliases' => array(),
-            'dev_requirement' => false,
-        ),
-        'doctrine/lexer' => array(
-            'pretty_version' => '3.0.1',
-            'version' => '3.0.1.0',
-            'reference' => '31ad66abc0fc9e1a1f2d9bc6a42668d2fbbcd6dd',
-            'type' => 'library',
-            'install_path' => __DIR__ . '/../doctrine/lexer',
-            'aliases' => array(),
-            'dev_requirement' => false,
-        ),
-        'evenement/evenement' => array(
-            'pretty_version' => 'v3.0.2',
-            'version' => '3.0.2.0',
-            'reference' => '0a16b0d71ab13284339abb99d9d2bd813640efbc',
-            'type' => 'library',
-            'install_path' => __DIR__ . '/../evenement/evenement',
-            'aliases' => array(),
-            'dev_requirement' => true,
-        ),
-        'fidry/cpu-core-counter' => array(
-            'pretty_version' => '1.1.0',
-            'version' => '1.1.0.0',
-            'reference' => 'f92996c4d5c1a696a6a970e20f7c4216200fcc42',
-            'type' => 'library',
-            'install_path' => __DIR__ . '/../fidry/cpu-core-counter',
-            'aliases' => array(),
-            'dev_requirement' => true,
-        ),
-        'fig/http-message-util' => array(
-            'pretty_version' => '1.1.5',
-            'version' => '1.1.5.0',
-            'reference' => '9d94dc0154230ac39e5bf89398b324a86f63f765',
-            'type' => 'library',
-            'install_path' => __DIR__ . '/../fig/http-message-util',
-            'aliases' => array(),
-            'dev_requirement' => false,
-        ),
-        'friendsofphp/php-cs-fixer' => array(
-            'pretty_version' => 'v3.58.1',
-            'version' => '3.58.1.0',
-            'reference' => '04e9424025677a86914b9a4944dbbf4060bb0aff',
-            'type' => 'application',
-            'install_path' => __DIR__ . '/../friendsofphp/php-cs-fixer',
-            'aliases' => array(),
-            'dev_requirement' => true,
-        ),
-        'graham-campbell/result-type' => array(
-            'pretty_version' => 'v1.1.2',
-            'version' => '1.1.2.0',
-            'reference' => 'fbd48bce38f73f8a4ec8583362e732e4095e5862',
-            'type' => 'library',
-            'install_path' => __DIR__ . '/../graham-campbell/result-type',
-            'aliases' => array(),
-            'dev_requirement' => false,
-        ),
-        'guzzlehttp/guzzle' => array(
-            'pretty_version' => '7.8.1',
-            'version' => '7.8.1.0',
-            'reference' => '41042bc7ab002487b876a0683fc8dce04ddce104',
-            'type' => 'library',
-            'install_path' => __DIR__ . '/../guzzlehttp/guzzle',
-            'aliases' => array(),
-            'dev_requirement' => false,
-        ),
-        'guzzlehttp/promises' => array(
-            'pretty_version' => '2.0.2',
-            'version' => '2.0.2.0',
-            'reference' => 'bbff78d96034045e58e13dedd6ad91b5d1253223',
-            'type' => 'library',
-            'install_path' => __DIR__ . '/../guzzlehttp/promises',
-            'aliases' => array(),
-            'dev_requirement' => false,
-        ),
-        'guzzlehttp/psr7' => array(
-            'pretty_version' => '2.6.2',
-            'version' => '2.6.2.0',
-            'reference' => '45b30f99ac27b5ca93cb4831afe16285f57b8221',
-            'type' => 'library',
-            'install_path' => __DIR__ . '/../guzzlehttp/psr7',
-            'aliases' => array(),
-            'dev_requirement' => false,
-        ),
-        'hamcrest/hamcrest-php' => array(
-            'pretty_version' => 'v2.0.1',
-            'version' => '2.0.1.0',
-            'reference' => '8c3d0a3f6af734494ad8f6fbbee0ba92422859f3',
-            'type' => 'library',
-            'install_path' => __DIR__ . '/../hamcrest/hamcrest-php',
-            'aliases' => array(),
-            'dev_requirement' => true,
-        ),
-        'hyperf/cache' => array(
-            'pretty_version' => 'v3.1.23',
-            'version' => '3.1.23.0',
-            'reference' => '7783e220b984b26409d621da49b853340f788a6d',
-            'type' => 'library',
-            'install_path' => __DIR__ . '/../hyperf/cache',
-            'aliases' => array(),
-            'dev_requirement' => false,
-        ),
-        'hyperf/code-parser' => array(
-            'pretty_version' => 'v3.1.15',
-            'version' => '3.1.15.0',
-            'reference' => '820e8e6680f0d04e4187a3037a2a3eaf7141913d',
-            'type' => 'library',
-            'install_path' => __DIR__ . '/../hyperf/code-parser',
-            'aliases' => array(),
-            'dev_requirement' => false,
-        ),
-        'hyperf/codec' => array(
-            'pretty_version' => 'v3.1.15',
-            'version' => '3.1.15.0',
-            'reference' => '198c364ad8eadda13f1a0decdbb9221ac9c4c260',
-            'type' => 'library',
-            'install_path' => __DIR__ . '/../hyperf/codec',
-            'aliases' => array(),
-            'dev_requirement' => false,
-        ),
-        'hyperf/collection' => array(
-            'pretty_version' => 'v3.1.23.2',
-            'version' => '3.1.23.2',
-            'reference' => '8d10ca88228ee47c9cee578ac3699e795f468ada',
-            'type' => 'library',
-            'install_path' => __DIR__ . '/../hyperf/collection',
-            'aliases' => array(),
-            'dev_requirement' => false,
-        ),
-        'hyperf/command' => array(
-            'pretty_version' => 'v3.1.24',
-            'version' => '3.1.24.0',
-            'reference' => 'b1ca85876f35f85fe3f52b0cc75bcc3da418769d',
-            'type' => 'library',
-            'install_path' => __DIR__ . '/../hyperf/command',
-            'aliases' => array(),
-            'dev_requirement' => false,
-        ),
-        'hyperf/conditionable' => array(
-            'pretty_version' => 'v3.1.15',
-            'version' => '3.1.15.0',
-            'reference' => '2c1555891d136904b890ba6d812d9ff50ca13ae3',
-            'type' => 'library',
-            'install_path' => __DIR__ . '/../hyperf/conditionable',
-            'aliases' => array(),
-            'dev_requirement' => false,
-        ),
-        'hyperf/config' => array(
-            'pretty_version' => 'v3.1.15',
-            'version' => '3.1.15.0',
-            'reference' => '5a92774d6db6bc02fc511c005c01f99d922aa292',
-            'type' => 'library',
-            'install_path' => __DIR__ . '/../hyperf/config',
-            'aliases' => array(),
-            'dev_requirement' => false,
-        ),
-        'hyperf/config-center' => array(
-            'pretty_version' => 'v3.1.15',
-            'version' => '3.1.15.0',
-            'reference' => 'a47acc3279ca173fa393b81175b6807859cd144e',
-            'type' => 'library',
-            'install_path' => __DIR__ . '/../hyperf/config-center',
-            'aliases' => array(),
-            'dev_requirement' => false,
-        ),
-        'hyperf/config-nacos' => array(
-            'pretty_version' => 'v3.1.15',
-            'version' => '3.1.15.0',
-            'reference' => 'e66bd614a5bc789f6ca28152a206218f77bc8dd2',
-            'type' => 'library',
-            'install_path' => __DIR__ . '/../hyperf/config-nacos',
-            'aliases' => array(),
-            'dev_requirement' => false,
-        ),
-        'hyperf/constants' => array(
-            'pretty_version' => 'v3.1.16',
-            'version' => '3.1.16.0',
-            'reference' => '55d46901660e4540195145d0e4066296cf0dc130',
-            'type' => 'library',
-            'install_path' => __DIR__ . '/../hyperf/constants',
-            'aliases' => array(),
-            'dev_requirement' => false,
-        ),
-        'hyperf/consul' => array(
-            'pretty_version' => 'v3.1.22',
-            'version' => '3.1.22.0',
-            'reference' => '6e5e6936513c76812d6c1a066530543b15aec5e8',
-            'type' => 'library',
-            'install_path' => __DIR__ . '/../hyperf/consul',
-            'aliases' => array(),
-            'dev_requirement' => false,
-        ),
-        'hyperf/context' => array(
-            'pretty_version' => 'v3.1.15',
-            'version' => '3.1.15.0',
-            'reference' => 'ad913fd50eb5f738c038e172c120bc6956c0da69',
-            'type' => 'library',
-            'install_path' => __DIR__ . '/../hyperf/context',
-            'aliases' => array(),
-            'dev_requirement' => false,
-        ),
-        'hyperf/contract' => array(
-            'pretty_version' => 'v3.1.15',
-            'version' => '3.1.15.0',
-            'reference' => '9950abe963cc6b30c6d3506fa5b3adbd58cb1945',
-            'type' => 'library',
-            'install_path' => __DIR__ . '/../hyperf/contract',
-            'aliases' => array(),
-            'dev_requirement' => false,
-        ),
-        'hyperf/coordinator' => array(
-            'pretty_version' => 'v3.1.21',
-            'version' => '3.1.21.0',
-            'reference' => 'caf5a70f96b7f22950e1caa3ba74f72c8382493c',
-            'type' => 'library',
-            'install_path' => __DIR__ . '/../hyperf/coordinator',
-            'aliases' => array(),
-            'dev_requirement' => false,
-        ),
-        'hyperf/coroutine' => array(
-            'pretty_version' => 'v3.1.15',
-            'version' => '3.1.15.0',
-            'reference' => '8f4c573a9457646db3e629dacabe064eebaf8cc1',
-            'type' => 'library',
-            'install_path' => __DIR__ . '/../hyperf/coroutine',
-            'aliases' => array(),
-            'dev_requirement' => false,
-        ),
-        'hyperf/database' => array(
-            'pretty_version' => 'v3.1.24',
-            'version' => '3.1.24.0',
-            'reference' => '9897c211ada78b0603f4249466f0c1b3e2d6d938',
-            'type' => 'library',
-            'install_path' => __DIR__ . '/../hyperf/database',
-            'aliases' => array(),
-            'dev_requirement' => false,
-        ),
-        'hyperf/db-connection' => array(
-            'pretty_version' => 'v3.1.15',
-            'version' => '3.1.15.0',
-            'reference' => 'bfe44b0365a555fb4b947df37b662fce26b905c0',
-            'type' => 'library',
-            'install_path' => __DIR__ . '/../hyperf/db-connection',
-            'aliases' => array(),
-            'dev_requirement' => false,
-        ),
-        'hyperf/devtool' => array(
-            'pretty_version' => 'v3.1.19',
-            'version' => '3.1.19.0',
-            'reference' => 'cdce9f26c3a18d5d0302acdf83d26d4686223476',
-            'type' => 'library',
-            'install_path' => __DIR__ . '/../hyperf/devtool',
-            'aliases' => array(),
-            'dev_requirement' => true,
-        ),
-        'hyperf/di' => array(
-            'pretty_version' => 'v3.1.28',
-            'version' => '3.1.28.0',
-            'reference' => '6ffef4c7ff0d59380fa1d894ec278054b87c17cb',
-            'type' => 'library',
-            'install_path' => __DIR__ . '/../hyperf/di',
-            'aliases' => array(),
-            'dev_requirement' => false,
-        ),
-        'hyperf/dispatcher' => array(
-            'pretty_version' => 'v3.1.15',
-            'version' => '3.1.15.0',
-            'reference' => '6a6f0f149081291664ff14bf34aecf2c01f89328',
-            'type' => 'library',
-            'install_path' => __DIR__ . '/../hyperf/dispatcher',
-            'aliases' => array(),
-            'dev_requirement' => false,
-        ),
-        'hyperf/engine' => array(
-            'pretty_version' => 'v2.11.0',
-            'version' => '2.11.0.0',
-            'reference' => '26e0b65fc2a63a00266e7124e221c6f3fb2c8e95',
-            'type' => 'library',
-            'install_path' => __DIR__ . '/../hyperf/engine',
-            'aliases' => array(),
-            'dev_requirement' => false,
-        ),
-        'hyperf/engine-contract' => array(
-            'pretty_version' => 'v1.10.1',
-            'version' => '1.10.1.0',
-            'reference' => '2714a8ba6d6b916e5bd373ff680df9569a4c9eef',
-            'type' => 'library',
-            'install_path' => __DIR__ . '/../hyperf/engine-contract',
-            'aliases' => array(),
-            'dev_requirement' => false,
-        ),
-        'hyperf/event' => array(
-            'pretty_version' => 'v3.1.15',
-            'version' => '3.1.15.0',
-            'reference' => '8d008682c028e958197589e90232bb2a1d3c77d9',
-            'type' => 'library',
-            'install_path' => __DIR__ . '/../hyperf/event',
-            'aliases' => array(),
-            'dev_requirement' => false,
-        ),
-        'hyperf/exception-handler' => array(
-            'pretty_version' => 'v3.1.22',
-            'version' => '3.1.22.0',
-            'reference' => '6eefe07081ffaa0d6534273caa96722c606da6a8',
-            'type' => 'library',
-            'install_path' => __DIR__ . '/../hyperf/exception-handler',
-            'aliases' => array(),
-            'dev_requirement' => false,
-        ),
-        'hyperf/framework' => array(
-            'pretty_version' => 'v3.1.23',
-            'version' => '3.1.23.0',
-            'reference' => 'c40d529fafc197c67a64e9ca918498d417d4102c',
-            'type' => 'library',
-            'install_path' => __DIR__ . '/../hyperf/framework',
-            'aliases' => array(),
-            'dev_requirement' => false,
-        ),
-        'hyperf/guzzle' => array(
-            'pretty_version' => 'v3.1.15',
-            'version' => '3.1.15.0',
-            'reference' => '1281abe876925b8ef64a7372d53701fdb9a519cf',
-            'type' => 'library',
-            'install_path' => __DIR__ . '/../hyperf/guzzle',
-            'aliases' => array(),
-            'dev_requirement' => false,
-        ),
-        'hyperf/http-message' => array(
-            'pretty_version' => 'v3.1.19',
-            'version' => '3.1.19.0',
-            'reference' => 'f96e372203bd6109bc1f6c15ee8eee3a76c8f92e',
-            'type' => 'library',
-            'install_path' => __DIR__ . '/../hyperf/http-message',
-            'aliases' => array(),
-            'dev_requirement' => false,
-        ),
-        'hyperf/http-server' => array(
-            'pretty_version' => 'v3.1.17',
-            'version' => '3.1.17.0',
-            'reference' => 'd2c633123dd8e7d5b2bcd1b24b7047fe3adc6424',
-            'type' => 'library',
-            'install_path' => __DIR__ . '/../hyperf/http-server',
-            'aliases' => array(),
-            'dev_requirement' => false,
-        ),
-        'hyperf/hyperf-skeleton' => array(
-            'pretty_version' => 'dev-master',
-            'version' => 'dev-master',
-            'reference' => '28f209543fede32d85f136062cf524d01cb6f478',
-            'type' => 'project',
-            'install_path' => __DIR__ . '/../../',
-            'aliases' => array(),
-            'dev_requirement' => false,
-        ),
-        'hyperf/json-rpc' => array(
-            'pretty_version' => 'v3.1.23',
-            'version' => '3.1.23.0',
-            'reference' => '234a3d8f9873a3d391cf9229fc5033638c5c9a93',
-            'type' => 'library',
-            'install_path' => __DIR__ . '/../hyperf/json-rpc',
-            'aliases' => array(),
-            'dev_requirement' => false,
-        ),
-        'hyperf/load-balancer' => array(
-            'pretty_version' => 'v3.1.15',
-            'version' => '3.1.15.0',
-            'reference' => 'f4bfecb7e6ef7c7cca008c90510a9e2c7f0c8f5a',
-            'type' => 'library',
-            'install_path' => __DIR__ . '/../hyperf/load-balancer',
-            'aliases' => array(),
-            'dev_requirement' => false,
-        ),
-        'hyperf/logger' => array(
-            'pretty_version' => 'v3.1.15',
-            'version' => '3.1.15.0',
-            'reference' => '014f511449f84f6dea0cf368531ac07f31408496',
-            'type' => 'library',
-            'install_path' => __DIR__ . '/../hyperf/logger',
-            'aliases' => array(),
-            'dev_requirement' => false,
-        ),
-        'hyperf/macroable' => array(
-            'pretty_version' => 'v3.1.23',
-            'version' => '3.1.23.0',
-            'reference' => '5f555c40bfec6aaab46f1bb1cac9ef556fbfbe72',
-            'type' => 'library',
-            'install_path' => __DIR__ . '/../hyperf/macroable',
-            'aliases' => array(),
-            'dev_requirement' => false,
-        ),
-        'hyperf/memory' => array(
-            'pretty_version' => 'v3.1.15',
-            'version' => '3.1.15.0',
-            'reference' => '1ad9df27b0817e74bb31b000735072c75fb41943',
-            'type' => 'library',
-            'install_path' => __DIR__ . '/../hyperf/memory',
-            'aliases' => array(),
-            'dev_requirement' => false,
-        ),
-        'hyperf/model-listener' => array(
-            'pretty_version' => 'v3.1.15',
-            'version' => '3.1.15.0',
-            'reference' => 'a65804ea8cac4e383d275a1fff7f79cd6f387da6',
-            'type' => 'library',
-            'install_path' => __DIR__ . '/../hyperf/model-listener',
-            'aliases' => array(),
-            'dev_requirement' => false,
-        ),
-        'hyperf/nacos' => array(
-            'pretty_version' => 'v3.1.15',
-            'version' => '3.1.15.0',
-            'reference' => 'b0dbfdf67f12740faab73a9496269f230c7459be',
-            'type' => 'library',
-            'install_path' => __DIR__ . '/../hyperf/nacos',
-            'aliases' => array(),
-            'dev_requirement' => false,
-        ),
-        'hyperf/paginator' => array(
-            'pretty_version' => 'v3.1.42',
-            'version' => '3.1.42.0',
-            'reference' => 'b637a3deeee69f4a3e5a6d62ab8214244b98412a',
-            'type' => 'library',
-            'install_path' => __DIR__ . '/../hyperf/paginator',
-            'aliases' => array(),
-            'dev_requirement' => false,
-        ),
-        'hyperf/pipeline' => array(
-            'pretty_version' => 'v3.1.15',
-            'version' => '3.1.15.0',
-            'reference' => 'ad4dbaeea2dc1166bb02e3ac5572f4eb773315a8',
-            'type' => 'library',
-            'install_path' => __DIR__ . '/../hyperf/pipeline',
-            'aliases' => array(),
-            'dev_requirement' => false,
-        ),
-        'hyperf/pool' => array(
-            'pretty_version' => 'v3.1.15',
-            'version' => '3.1.15.0',
-            'reference' => '34d907adf5bb2727160bfcdeafe0e98cab00d6c7',
-            'type' => 'library',
-            'install_path' => __DIR__ . '/../hyperf/pool',
-            'aliases' => array(),
-            'dev_requirement' => false,
-        ),
-        'hyperf/process' => array(
-            'pretty_version' => 'v3.1.15',
-            'version' => '3.1.15.0',
-            'reference' => '2d45d4002a64f23406e3c36d3edf5da42147156b',
-            'type' => 'library',
-            'install_path' => __DIR__ . '/../hyperf/process',
-            'aliases' => array(),
-            'dev_requirement' => false,
-        ),
-        'hyperf/redis' => array(
-            'pretty_version' => 'v3.1.18',
-            'version' => '3.1.18.0',
-            'reference' => '85bea22b580bc32dd1d8e8750936b1d386e8deca',
-            'type' => 'library',
-            'install_path' => __DIR__ . '/../hyperf/redis',
-            'aliases' => array(),
-            'dev_requirement' => false,
-        ),
-        'hyperf/rpc' => array(
-            'pretty_version' => 'v3.1.15',
-            'version' => '3.1.15.0',
-            'reference' => 'f5b0109aec760272357270662ad0914c4848b8c0',
-            'type' => 'library',
-            'install_path' => __DIR__ . '/../hyperf/rpc',
-            'aliases' => array(),
-            'dev_requirement' => false,
-        ),
-        'hyperf/rpc-server' => array(
-            'pretty_version' => 'v3.1.20',
-            'version' => '3.1.20.0',
-            'reference' => '9c820dc51893c6443c01fd0f2f534fc4bcc8a4f1',
-            'type' => 'library',
-            'install_path' => __DIR__ . '/../hyperf/rpc-server',
-            'aliases' => array(),
-            'dev_requirement' => false,
-        ),
-        'hyperf/serializer' => array(
-            'pretty_version' => 'v3.1.23',
-            'version' => '3.1.23.0',
-            'reference' => 'd9b4f012565c90176c7cc117043c5907ea3795bb',
-            'type' => 'library',
-            'install_path' => __DIR__ . '/../hyperf/serializer',
-            'aliases' => array(),
-            'dev_requirement' => false,
-        ),
-        'hyperf/server' => array(
-            'pretty_version' => 'v3.1.23',
-            'version' => '3.1.23.0',
-            'reference' => '56c34b808df8f1e85991c26ee47c17025a29581c',
-            'type' => 'library',
-            'install_path' => __DIR__ . '/../hyperf/server',
-            'aliases' => array(),
-            'dev_requirement' => false,
-        ),
-        'hyperf/service-governance' => array(
-            'pretty_version' => 'v3.1.15',
-            'version' => '3.1.15.0',
-            'reference' => 'e2d11bc91cc0ac5c32bf0ffa3a8c95ef3987b06a',
-            'type' => 'library',
-            'install_path' => __DIR__ . '/../hyperf/service-governance',
-            'aliases' => array(),
-            'dev_requirement' => false,
-        ),
-        'hyperf/service-governance-consul' => array(
-            'pretty_version' => 'v3.1.15',
-            'version' => '3.1.15.0',
-            'reference' => 'fba1aa56a3298559ff290de9640e6eb5cfcf9ce4',
-            'type' => 'library',
-            'install_path' => __DIR__ . '/../hyperf/service-governance-consul',
-            'aliases' => array(),
-            'dev_requirement' => false,
-        ),
-        'hyperf/service-governance-nacos' => array(
-            'pretty_version' => 'v3.1.15',
-            'version' => '3.1.15.0',
-            'reference' => '8f27ed823c17f55c88aa81ff31003f8995fa87cf',
-            'type' => 'library',
-            'install_path' => __DIR__ . '/../hyperf/service-governance-nacos',
-            'aliases' => array(),
-            'dev_requirement' => false,
-        ),
-        'hyperf/stdlib' => array(
-            'pretty_version' => 'v3.1.15',
-            'version' => '3.1.15.0',
-            'reference' => '636fdc1f15d9357b4747fa649874725f2276b118',
-            'type' => 'library',
-            'install_path' => __DIR__ . '/../hyperf/stdlib',
-            'aliases' => array(),
-            'dev_requirement' => false,
-        ),
-        'hyperf/stringable' => array(
-            'pretty_version' => 'v3.1.24',
-            'version' => '3.1.24.0',
-            'reference' => 'ee6b1788489ddb0c06c8f12ed5ccfa70dfa7efbc',
-            'type' => 'library',
-            'install_path' => __DIR__ . '/../hyperf/stringable',
-            'aliases' => array(),
-            'dev_requirement' => false,
-        ),
-        'hyperf/support' => array(
-            'pretty_version' => 'v3.1.15',
-            'version' => '3.1.15.0',
-            'reference' => '3fb5c6c5a4f795cb0304a032f6f5b85f62a5f872',
-            'type' => 'library',
-            'install_path' => __DIR__ . '/../hyperf/support',
-            'aliases' => array(),
-            'dev_requirement' => false,
-        ),
-        'hyperf/tappable' => array(
-            'pretty_version' => 'v3.1.15',
-            'version' => '3.1.15.0',
-            'reference' => '69f22bbc8ecb5b930cc95a49ae9bf0ca0efbfdf1',
-            'type' => 'library',
-            'install_path' => __DIR__ . '/../hyperf/tappable',
-            'aliases' => array(),
-            'dev_requirement' => false,
-        ),
-        'hyperf/testing' => array(
-            'pretty_version' => 'v3.1.21',
-            'version' => '3.1.21.0',
-            'reference' => '923e862f9ccd5947baac4d4d1e09383c8ac75dc8',
-            'type' => 'library',
-            'install_path' => __DIR__ . '/../hyperf/testing',
-            'aliases' => array(),
-            'dev_requirement' => true,
-        ),
-        'hyperf/utils' => array(
-            'pretty_version' => 'v3.1.0',
-            'version' => '3.1.0.0',
-            'reference' => '10522904195eb5af9090bbd072589fb387c91041',
-            'type' => 'library',
-            'install_path' => __DIR__ . '/../hyperf/utils',
-            'aliases' => array(),
-            'dev_requirement' => false,
-        ),
-        'hyperf/watcher' => array(
-            'pretty_version' => 'v3.1.21',
-            'version' => '3.1.21.0',
-            'reference' => 'e95490f91a95ec9c7f52255aba563f59fd9b396c',
-            'type' => 'library',
-            'install_path' => __DIR__ . '/../hyperf/watcher',
-            'aliases' => array(),
-            'dev_requirement' => true,
-        ),
-        'jetbrains/phpstorm-attributes' => array(
-            'pretty_version' => '1.1',
-            'version' => '1.1.0.0',
-            'reference' => '22fb28d679deceedba8366dbae65cc8ebfc17e26',
-            'type' => 'library',
-            'install_path' => __DIR__ . '/../jetbrains/phpstorm-attributes',
-            'aliases' => array(),
-            'dev_requirement' => false,
-        ),
-        'kodova/hamcrest-php' => array(
-            'dev_requirement' => true,
-            'replaced' => array(
-                0 => '*',
-            ),
-        ),
-        'laminas/laminas-mime' => array(
-            'pretty_version' => '2.12.0',
-            'version' => '2.12.0.0',
-            'reference' => '08cc544778829b7d68d27a097885bd6e7130135e',
-            'type' => 'library',
-            'install_path' => __DIR__ . '/../laminas/laminas-mime',
-            'aliases' => array(),
-            'dev_requirement' => false,
-        ),
-        'laminas/laminas-stdlib' => array(
-            'pretty_version' => '3.19.0',
-            'version' => '3.19.0.0',
-            'reference' => '6a192dd0882b514e45506f533b833b623b78fff3',
-            'type' => 'library',
-            'install_path' => __DIR__ . '/../laminas/laminas-stdlib',
-            'aliases' => array(),
-            'dev_requirement' => false,
-        ),
-        'markrogoyski/math-php' => array(
-            'pretty_version' => 'v2.10.0',
-            'version' => '2.10.0.0',
-            'reference' => 'e587bfe3aadddfba0f3a40f49d2ed91132f30c5a',
-            'type' => 'library',
-            'install_path' => __DIR__ . '/../markrogoyski/math-php',
-            'aliases' => array(),
-            'dev_requirement' => false,
-        ),
-        'mockery/mockery' => array(
-            'pretty_version' => '1.6.12',
-            'version' => '1.6.12.0',
-            'reference' => '1f4efdd7d3beafe9807b08156dfcb176d18f1699',
-            'type' => 'library',
-            'install_path' => __DIR__ . '/../mockery/mockery',
-            'aliases' => array(),
-            'dev_requirement' => true,
-        ),
-        'monolog/monolog' => array(
-            'pretty_version' => '3.6.0',
-            'version' => '3.6.0.0',
-            'reference' => '4b18b21a5527a3d5ffdac2fd35d3ab25a9597654',
-            'type' => 'library',
-            'install_path' => __DIR__ . '/../monolog/monolog',
-            'aliases' => array(),
-            'dev_requirement' => false,
-        ),
-        'mtdowling/jmespath.php' => array(
-            'pretty_version' => '2.8.0',
-            'version' => '2.8.0.0',
-            'reference' => 'a2a865e05d5f420b50cc2f85bb78d565db12a6bc',
-            'type' => 'library',
-            'install_path' => __DIR__ . '/../mtdowling/jmespath.php',
-            'aliases' => array(),
-            'dev_requirement' => false,
-        ),
-        'myclabs/deep-copy' => array(
-            'pretty_version' => '1.11.1',
-            'version' => '1.11.1.0',
-            'reference' => '7284c22080590fb39f2ffa3e9057f10a4ddd0e0c',
-            'type' => 'library',
-            'install_path' => __DIR__ . '/../myclabs/deep-copy',
-            'aliases' => array(),
-            'dev_requirement' => true,
-        ),
-        'nesbot/carbon' => array(
-            'pretty_version' => '2.72.5',
-            'version' => '2.72.5.0',
-            'reference' => 'afd46589c216118ecd48ff2b95d77596af1e57ed',
-            'type' => 'library',
-            'install_path' => __DIR__ . '/../nesbot/carbon',
-            'aliases' => array(),
-            'dev_requirement' => false,
-        ),
-        'nikic/fast-route' => array(
-            'pretty_version' => 'v1.3.0',
-            'version' => '1.3.0.0',
-            'reference' => '181d480e08d9476e61381e04a71b34dc0432e812',
-            'type' => 'library',
-            'install_path' => __DIR__ . '/../nikic/fast-route',
-            'aliases' => array(),
-            'dev_requirement' => false,
-        ),
-        'nikic/php-parser' => array(
-            'pretty_version' => 'v4.19.1',
-            'version' => '4.19.1.0',
-            'reference' => '4e1b88d21c69391150ace211e9eaf05810858d0b',
-            'type' => 'library',
-            'install_path' => __DIR__ . '/../nikic/php-parser',
-            'aliases' => array(),
-            'dev_requirement' => false,
-        ),
-        'phar-io/manifest' => array(
-            'pretty_version' => '2.0.4',
-            'version' => '2.0.4.0',
-            'reference' => '54750ef60c58e43759730615a392c31c80e23176',
-            'type' => 'library',
-            'install_path' => __DIR__ . '/../phar-io/manifest',
-            'aliases' => array(),
-            'dev_requirement' => true,
-        ),
-        'phar-io/version' => array(
-            'pretty_version' => '3.2.1',
-            'version' => '3.2.1.0',
-            'reference' => '4f7fd7836c6f332bb2933569e566a0d6c4cbed74',
-            'type' => 'library',
-            'install_path' => __DIR__ . '/../phar-io/version',
-            'aliases' => array(),
-            'dev_requirement' => true,
-        ),
-        'php-di/phpdoc-reader' => array(
-            'pretty_version' => '2.2.1',
-            'version' => '2.2.1.0',
-            'reference' => '66daff34cbd2627740ffec9469ffbac9f8c8185c',
-            'type' => 'library',
-            'install_path' => __DIR__ . '/../php-di/phpdoc-reader',
-            'aliases' => array(),
-            'dev_requirement' => false,
-        ),
-        'phpoption/phpoption' => array(
-            'pretty_version' => '1.9.2',
-            'version' => '1.9.2.0',
-            'reference' => '80735db690fe4fc5c76dfa7f9b770634285fa820',
-            'type' => 'library',
-            'install_path' => __DIR__ . '/../phpoption/phpoption',
-            'aliases' => array(),
-            'dev_requirement' => false,
-        ),
-        'phpstan/phpstan' => array(
-            'pretty_version' => '1.11.3',
-            'version' => '1.11.3.0',
-            'reference' => 'e64220a05c1209fc856d58e789c3b7a32c0bb9a5',
-            'type' => 'library',
-            'install_path' => __DIR__ . '/../phpstan/phpstan',
-            'aliases' => array(),
-            'dev_requirement' => true,
-        ),
-        'phpunit/php-code-coverage' => array(
-            'pretty_version' => '10.1.14',
-            'version' => '10.1.14.0',
-            'reference' => 'e3f51450ebffe8e0efdf7346ae966a656f7d5e5b',
-            'type' => 'library',
-            'install_path' => __DIR__ . '/../phpunit/php-code-coverage',
-            'aliases' => array(),
-            'dev_requirement' => true,
-        ),
-        'phpunit/php-file-iterator' => array(
-            'pretty_version' => '4.1.0',
-            'version' => '4.1.0.0',
-            'reference' => 'a95037b6d9e608ba092da1b23931e537cadc3c3c',
-            'type' => 'library',
-            'install_path' => __DIR__ . '/../phpunit/php-file-iterator',
-            'aliases' => array(),
-            'dev_requirement' => true,
-        ),
-        'phpunit/php-invoker' => array(
-            'pretty_version' => '4.0.0',
-            'version' => '4.0.0.0',
-            'reference' => 'f5e568ba02fa5ba0ddd0f618391d5a9ea50b06d7',
-            'type' => 'library',
-            'install_path' => __DIR__ . '/../phpunit/php-invoker',
-            'aliases' => array(),
-            'dev_requirement' => true,
-        ),
-        'phpunit/php-text-template' => array(
-            'pretty_version' => '3.0.1',
-            'version' => '3.0.1.0',
-            'reference' => '0c7b06ff49e3d5072f057eb1fa59258bf287a748',
-            'type' => 'library',
-            'install_path' => __DIR__ . '/../phpunit/php-text-template',
-            'aliases' => array(),
-            'dev_requirement' => true,
-        ),
-        'phpunit/php-timer' => array(
-            'pretty_version' => '6.0.0',
-            'version' => '6.0.0.0',
-            'reference' => 'e2a2d67966e740530f4a3343fe2e030ffdc1161d',
-            'type' => 'library',
-            'install_path' => __DIR__ . '/../phpunit/php-timer',
-            'aliases' => array(),
-            'dev_requirement' => true,
-        ),
-        'phpunit/phpunit' => array(
-            'pretty_version' => '10.5.20',
-            'version' => '10.5.20.0',
-            'reference' => '547d314dc24ec1e177720d45c6263fb226cc2ae3',
-            'type' => 'library',
-            'install_path' => __DIR__ . '/../phpunit/phpunit',
-            'aliases' => array(),
-            'dev_requirement' => true,
-        ),
-        'psr/cache' => array(
-            'pretty_version' => '3.0.0',
-            'version' => '3.0.0.0',
-            'reference' => 'aa5030cfa5405eccfdcb1083ce040c2cb8d253bf',
-            'type' => 'library',
-            'install_path' => __DIR__ . '/../psr/cache',
-            'aliases' => array(),
-            'dev_requirement' => false,
-        ),
-        'psr/clock' => array(
-            'pretty_version' => '1.0.0',
-            'version' => '1.0.0.0',
-            'reference' => 'e41a24703d4560fd0acb709162f73b8adfc3aa0d',
-            'type' => 'library',
-            'install_path' => __DIR__ . '/../psr/clock',
-            'aliases' => array(),
-            'dev_requirement' => false,
-        ),
-        'psr/clock-implementation' => array(
-            'dev_requirement' => false,
-            'provided' => array(
-                0 => '1.0',
-            ),
-        ),
-        'psr/container' => array(
-            'pretty_version' => '2.0.2',
-            'version' => '2.0.2.0',
-            'reference' => 'c71ecc56dfe541dbd90c5360474fbc405f8d5963',
-            'type' => 'library',
-            'install_path' => __DIR__ . '/../psr/container',
-            'aliases' => array(),
-            'dev_requirement' => false,
-        ),
-        'psr/event-dispatcher' => array(
-            'pretty_version' => '1.0.0',
-            'version' => '1.0.0.0',
-            'reference' => 'dbefd12671e8a14ec7f180cab83036ed26714bb0',
-            'type' => 'library',
-            'install_path' => __DIR__ . '/../psr/event-dispatcher',
-            'aliases' => array(),
-            'dev_requirement' => false,
-        ),
-        'psr/event-dispatcher-implementation' => array(
-            'dev_requirement' => true,
-            'provided' => array(
-                0 => '1.0',
-            ),
-        ),
-        'psr/http-client' => array(
-            'pretty_version' => '1.0.3',
-            'version' => '1.0.3.0',
-            'reference' => 'bb5906edc1c324c9a05aa0873d40117941e5fa90',
-            'type' => 'library',
-            'install_path' => __DIR__ . '/../psr/http-client',
-            'aliases' => array(),
-            'dev_requirement' => false,
-        ),
-        'psr/http-client-implementation' => array(
-            'dev_requirement' => false,
-            'provided' => array(
-                0 => '1.0',
-            ),
-        ),
-        'psr/http-factory' => array(
-            'pretty_version' => '1.1.0',
-            'version' => '1.1.0.0',
-            'reference' => '2b4765fddfe3b508ac62f829e852b1501d3f6e8a',
-            'type' => 'library',
-            'install_path' => __DIR__ . '/../psr/http-factory',
-            'aliases' => array(),
-            'dev_requirement' => false,
-        ),
-        'psr/http-factory-implementation' => array(
-            'dev_requirement' => false,
-            'provided' => array(
-                0 => '1.0',
-            ),
-        ),
-        'psr/http-message' => array(
-            'pretty_version' => '2.0',
-            'version' => '2.0.0.0',
-            'reference' => '402d35bcb92c70c026d1a6a9883f06b2ead23d71',
-            'type' => 'library',
-            'install_path' => __DIR__ . '/../psr/http-message',
-            'aliases' => array(),
-            'dev_requirement' => false,
-        ),
-        'psr/http-message-implementation' => array(
-            'dev_requirement' => false,
-            'provided' => array(
-                0 => '1.0',
-            ),
-        ),
-        'psr/http-server-handler' => array(
-            'pretty_version' => '1.0.2',
-            'version' => '1.0.2.0',
-            'reference' => '84c4fb66179be4caaf8e97bd239203245302e7d4',
-            'type' => 'library',
-            'install_path' => __DIR__ . '/../psr/http-server-handler',
-            'aliases' => array(),
-            'dev_requirement' => false,
-        ),
-        'psr/http-server-middleware' => array(
-            'pretty_version' => '1.0.2',
-            'version' => '1.0.2.0',
-            'reference' => 'c1481f747daaa6a0782775cd6a8c26a1bf4a3829',
-            'type' => 'library',
-            'install_path' => __DIR__ . '/../psr/http-server-middleware',
-            'aliases' => array(),
-            'dev_requirement' => false,
-        ),
-        'psr/log' => array(
-            'pretty_version' => '3.0.0',
-            'version' => '3.0.0.0',
-            'reference' => 'fe5ea303b0887d5caefd3d431c3e61ad47037001',
-            'type' => 'library',
-            'install_path' => __DIR__ . '/../psr/log',
-            'aliases' => array(),
-            'dev_requirement' => false,
-        ),
-        'psr/log-implementation' => array(
-            'dev_requirement' => false,
-            'provided' => array(
-                0 => '3.0.0',
-                1 => '1.0|2.0|3.0',
-            ),
-        ),
-        'psr/simple-cache' => array(
-            'pretty_version' => '3.0.0',
-            'version' => '3.0.0.0',
-            'reference' => '764e0b3939f5ca87cb904f570ef9be2d78a07865',
-            'type' => 'library',
-            'install_path' => __DIR__ . '/../psr/simple-cache',
-            'aliases' => array(),
-            'dev_requirement' => false,
-        ),
-        'ralouphie/getallheaders' => array(
-            'pretty_version' => '3.0.3',
-            'version' => '3.0.3.0',
-            'reference' => '120b605dfeb996808c31b6477290a714d356e822',
-            'type' => 'library',
-            'install_path' => __DIR__ . '/../ralouphie/getallheaders',
-            'aliases' => array(),
-            'dev_requirement' => false,
-        ),
-        'react/cache' => array(
-            'pretty_version' => 'v1.2.0',
-            'version' => '1.2.0.0',
-            'reference' => 'd47c472b64aa5608225f47965a484b75c7817d5b',
-            'type' => 'library',
-            'install_path' => __DIR__ . '/../react/cache',
-            'aliases' => array(),
-            'dev_requirement' => true,
-        ),
-        'react/child-process' => array(
-            'pretty_version' => 'v0.6.5',
-            'version' => '0.6.5.0',
-            'reference' => 'e71eb1aa55f057c7a4a0d08d06b0b0a484bead43',
-            'type' => 'library',
-            'install_path' => __DIR__ . '/../react/child-process',
-            'aliases' => array(),
-            'dev_requirement' => true,
-        ),
-        'react/dns' => array(
-            'pretty_version' => 'v1.12.0',
-            'version' => '1.12.0.0',
-            'reference' => 'c134600642fa615b46b41237ef243daa65bb64ec',
-            'type' => 'library',
-            'install_path' => __DIR__ . '/../react/dns',
-            'aliases' => array(),
-            'dev_requirement' => true,
-        ),
-        'react/event-loop' => array(
-            'pretty_version' => 'v1.5.0',
-            'version' => '1.5.0.0',
-            'reference' => 'bbe0bd8c51ffc05ee43f1729087ed3bdf7d53354',
-            'type' => 'library',
-            'install_path' => __DIR__ . '/../react/event-loop',
-            'aliases' => array(),
-            'dev_requirement' => true,
-        ),
-        'react/promise' => array(
-            'pretty_version' => 'v3.2.0',
-            'version' => '3.2.0.0',
-            'reference' => '8a164643313c71354582dc850b42b33fa12a4b63',
-            'type' => 'library',
-            'install_path' => __DIR__ . '/../react/promise',
-            'aliases' => array(),
-            'dev_requirement' => true,
-        ),
-        'react/socket' => array(
-            'pretty_version' => 'v1.15.0',
-            'version' => '1.15.0.0',
-            'reference' => '216d3aec0b87f04a40ca04f481e6af01bdd1d038',
-            'type' => 'library',
-            'install_path' => __DIR__ . '/../react/socket',
-            'aliases' => array(),
-            'dev_requirement' => true,
-        ),
-        'react/stream' => array(
-            'pretty_version' => 'v1.3.0',
-            'version' => '1.3.0.0',
-            'reference' => '6fbc9672905c7d5a885f2da2fc696f65840f4a66',
-            'type' => 'library',
-            'install_path' => __DIR__ . '/../react/stream',
-            'aliases' => array(),
-            'dev_requirement' => true,
-        ),
-        'sebastian/cli-parser' => array(
-            'pretty_version' => '2.0.1',
-            'version' => '2.0.1.0',
-            'reference' => 'c34583b87e7b7a8055bf6c450c2c77ce32a24084',
-            'type' => 'library',
-            'install_path' => __DIR__ . '/../sebastian/cli-parser',
-            'aliases' => array(),
-            'dev_requirement' => true,
-        ),
-        'sebastian/code-unit' => array(
-            'pretty_version' => '2.0.0',
-            'version' => '2.0.0.0',
-            'reference' => 'a81fee9eef0b7a76af11d121767abc44c104e503',
-            'type' => 'library',
-            'install_path' => __DIR__ . '/../sebastian/code-unit',
-            'aliases' => array(),
-            'dev_requirement' => true,
-        ),
-        'sebastian/code-unit-reverse-lookup' => array(
-            'pretty_version' => '3.0.0',
-            'version' => '3.0.0.0',
-            'reference' => '5e3a687f7d8ae33fb362c5c0743794bbb2420a1d',
-            'type' => 'library',
-            'install_path' => __DIR__ . '/../sebastian/code-unit-reverse-lookup',
-            'aliases' => array(),
-            'dev_requirement' => true,
-        ),
-        'sebastian/comparator' => array(
-            'pretty_version' => '5.0.1',
-            'version' => '5.0.1.0',
-            'reference' => '2db5010a484d53ebf536087a70b4a5423c102372',
-            'type' => 'library',
-            'install_path' => __DIR__ . '/../sebastian/comparator',
-            'aliases' => array(),
-            'dev_requirement' => true,
-        ),
-        'sebastian/complexity' => array(
-            'pretty_version' => '3.2.0',
-            'version' => '3.2.0.0',
-            'reference' => '68ff824baeae169ec9f2137158ee529584553799',
-            'type' => 'library',
-            'install_path' => __DIR__ . '/../sebastian/complexity',
-            'aliases' => array(),
-            'dev_requirement' => true,
-        ),
-        'sebastian/diff' => array(
-            'pretty_version' => '5.1.1',
-            'version' => '5.1.1.0',
-            'reference' => 'c41e007b4b62af48218231d6c2275e4c9b975b2e',
-            'type' => 'library',
-            'install_path' => __DIR__ . '/../sebastian/diff',
-            'aliases' => array(),
-            'dev_requirement' => true,
-        ),
-        'sebastian/environment' => array(
-            'pretty_version' => '6.1.0',
-            'version' => '6.1.0.0',
-            'reference' => '8074dbcd93529b357029f5cc5058fd3e43666984',
-            'type' => 'library',
-            'install_path' => __DIR__ . '/../sebastian/environment',
-            'aliases' => array(),
-            'dev_requirement' => true,
-        ),
-        'sebastian/exporter' => array(
-            'pretty_version' => '5.1.2',
-            'version' => '5.1.2.0',
-            'reference' => '955288482d97c19a372d3f31006ab3f37da47adf',
-            'type' => 'library',
-            'install_path' => __DIR__ . '/../sebastian/exporter',
-            'aliases' => array(),
-            'dev_requirement' => true,
-        ),
-        'sebastian/global-state' => array(
-            'pretty_version' => '6.0.2',
-            'version' => '6.0.2.0',
-            'reference' => '987bafff24ecc4c9ac418cab1145b96dd6e9cbd9',
-            'type' => 'library',
-            'install_path' => __DIR__ . '/../sebastian/global-state',
-            'aliases' => array(),
-            'dev_requirement' => true,
-        ),
-        'sebastian/lines-of-code' => array(
-            'pretty_version' => '2.0.2',
-            'version' => '2.0.2.0',
-            'reference' => '856e7f6a75a84e339195d48c556f23be2ebf75d0',
-            'type' => 'library',
-            'install_path' => __DIR__ . '/../sebastian/lines-of-code',
-            'aliases' => array(),
-            'dev_requirement' => true,
-        ),
-        'sebastian/object-enumerator' => array(
-            'pretty_version' => '5.0.0',
-            'version' => '5.0.0.0',
-            'reference' => '202d0e344a580d7f7d04b3fafce6933e59dae906',
-            'type' => 'library',
-            'install_path' => __DIR__ . '/../sebastian/object-enumerator',
-            'aliases' => array(),
-            'dev_requirement' => true,
-        ),
-        'sebastian/object-reflector' => array(
-            'pretty_version' => '3.0.0',
-            'version' => '3.0.0.0',
-            'reference' => '24ed13d98130f0e7122df55d06c5c4942a577957',
-            'type' => 'library',
-            'install_path' => __DIR__ . '/../sebastian/object-reflector',
-            'aliases' => array(),
-            'dev_requirement' => true,
-        ),
-        'sebastian/recursion-context' => array(
-            'pretty_version' => '5.0.0',
-            'version' => '5.0.0.0',
-            'reference' => '05909fb5bc7df4c52992396d0116aed689f93712',
-            'type' => 'library',
-            'install_path' => __DIR__ . '/../sebastian/recursion-context',
-            'aliases' => array(),
-            'dev_requirement' => true,
-        ),
-        'sebastian/type' => array(
-            'pretty_version' => '4.0.0',
-            'version' => '4.0.0.0',
-            'reference' => '462699a16464c3944eefc02ebdd77882bd3925bf',
-            'type' => 'library',
-            'install_path' => __DIR__ . '/../sebastian/type',
-            'aliases' => array(),
-            'dev_requirement' => true,
-        ),
-        'sebastian/version' => array(
-            'pretty_version' => '4.0.1',
-            'version' => '4.0.1.0',
-            'reference' => 'c51fa83a5d8f43f1402e3f32a005e6262244ef17',
-            'type' => 'library',
-            'install_path' => __DIR__ . '/../sebastian/version',
-            'aliases' => array(),
-            'dev_requirement' => true,
-        ),
-        'swoole/ide-helper' => array(
-            'pretty_version' => '5.1.2',
-            'version' => '5.1.2.0',
-            'reference' => '33ec7af9111b76d06a70dd31191cc74793551112',
-            'type' => 'library',
-            'install_path' => __DIR__ . '/../swoole/ide-helper',
-            'aliases' => array(),
-            'dev_requirement' => true,
-        ),
-        'swow/psr7-plus' => array(
-            'pretty_version' => 'v1.1.2',
-            'version' => '1.1.2.0',
-            'reference' => '7acc4924be907d2ff64edee5a2bd116620e56364',
-            'type' => 'library',
-            'install_path' => __DIR__ . '/../swow/psr7-plus',
-            'aliases' => array(),
-            'dev_requirement' => false,
-        ),
-        'symfony/console' => array(
-            'pretty_version' => 'v6.4.8',
-            'version' => '6.4.8.0',
-            'reference' => 'be5854cee0e8c7b110f00d695d11debdfa1a2a91',
-            'type' => 'library',
-            'install_path' => __DIR__ . '/../symfony/console',
-            'aliases' => array(),
-            'dev_requirement' => false,
-        ),
-        'symfony/deprecation-contracts' => array(
-            'pretty_version' => 'v3.5.0',
-            'version' => '3.5.0.0',
-            'reference' => '0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1',
-            'type' => 'library',
-            'install_path' => __DIR__ . '/../symfony/deprecation-contracts',
-            'aliases' => array(),
-            'dev_requirement' => false,
-        ),
-        'symfony/event-dispatcher' => array(
-            'pretty_version' => 'v6.4.8',
-            'version' => '6.4.8.0',
-            'reference' => '8d7507f02b06e06815e56bb39aa0128e3806208b',
-            'type' => 'library',
-            'install_path' => __DIR__ . '/../symfony/event-dispatcher',
-            'aliases' => array(),
-            'dev_requirement' => true,
-        ),
-        'symfony/event-dispatcher-contracts' => array(
-            'pretty_version' => 'v3.5.0',
-            'version' => '3.5.0.0',
-            'reference' => '8f93aec25d41b72493c6ddff14e916177c9efc50',
-            'type' => 'library',
-            'install_path' => __DIR__ . '/../symfony/event-dispatcher-contracts',
-            'aliases' => array(),
-            'dev_requirement' => true,
-        ),
-        'symfony/event-dispatcher-implementation' => array(
-            'dev_requirement' => true,
-            'provided' => array(
-                0 => '2.0|3.0',
-            ),
-        ),
-        'symfony/filesystem' => array(
-            'pretty_version' => 'v6.4.8',
-            'version' => '6.4.8.0',
-            'reference' => '4d37529150e7081c51b3c5d5718c55a04a9503f3',
-            'type' => 'library',
-            'install_path' => __DIR__ . '/../symfony/filesystem',
-            'aliases' => array(),
-            'dev_requirement' => true,
-        ),
-        'symfony/finder' => array(
-            'pretty_version' => 'v6.4.8',
-            'version' => '6.4.8.0',
-            'reference' => '3ef977a43883215d560a2cecb82ec8e62131471c',
-            'type' => 'library',
-            'install_path' => __DIR__ . '/../symfony/finder',
-            'aliases' => array(),
-            'dev_requirement' => false,
-        ),
-        'symfony/http-foundation' => array(
-            'pretty_version' => 'v6.4.8',
-            'version' => '6.4.8.0',
-            'reference' => '27de8cc95e11db7a50b027e71caaab9024545947',
-            'type' => 'library',
-            'install_path' => __DIR__ . '/../symfony/http-foundation',
-            'aliases' => array(),
-            'dev_requirement' => true,
-        ),
-        'symfony/options-resolver' => array(
-            'pretty_version' => 'v6.4.8',
-            'version' => '6.4.8.0',
-            'reference' => '22ab9e9101ab18de37839074f8a1197f55590c1b',
-            'type' => 'library',
-            'install_path' => __DIR__ . '/../symfony/options-resolver',
-            'aliases' => array(),
-            'dev_requirement' => true,
-        ),
-        'symfony/polyfill-ctype' => array(
-            'pretty_version' => 'v1.29.0',
-            'version' => '1.29.0.0',
-            'reference' => 'ef4d7e442ca910c4764bce785146269b30cb5fc4',
-            'type' => 'library',
-            'install_path' => __DIR__ . '/../symfony/polyfill-ctype',
-            'aliases' => array(),
-            'dev_requirement' => false,
-        ),
-        'symfony/polyfill-intl-grapheme' => array(
-            'pretty_version' => 'v1.29.0',
-            'version' => '1.29.0.0',
-            'reference' => '32a9da87d7b3245e09ac426c83d334ae9f06f80f',
-            'type' => 'library',
-            'install_path' => __DIR__ . '/../symfony/polyfill-intl-grapheme',
-            'aliases' => array(),
-            'dev_requirement' => false,
-        ),
-        'symfony/polyfill-intl-normalizer' => array(
-            'pretty_version' => 'v1.29.0',
-            'version' => '1.29.0.0',
-            'reference' => 'bc45c394692b948b4d383a08d7753968bed9a83d',
-            'type' => 'library',
-            'install_path' => __DIR__ . '/../symfony/polyfill-intl-normalizer',
-            'aliases' => array(),
-            'dev_requirement' => false,
-        ),
-        'symfony/polyfill-mbstring' => array(
-            'pretty_version' => 'v1.29.0',
-            'version' => '1.29.0.0',
-            'reference' => '9773676c8a1bb1f8d4340a62efe641cf76eda7ec',
-            'type' => 'library',
-            'install_path' => __DIR__ . '/../symfony/polyfill-mbstring',
-            'aliases' => array(),
-            'dev_requirement' => false,
-        ),
-        'symfony/polyfill-php80' => array(
-            'pretty_version' => 'v1.29.0',
-            'version' => '1.29.0.0',
-            'reference' => '87b68208d5c1188808dd7839ee1e6c8ec3b02f1b',
-            'type' => 'library',
-            'install_path' => __DIR__ . '/../symfony/polyfill-php80',
-            'aliases' => array(),
-            'dev_requirement' => false,
-        ),
-        'symfony/polyfill-php81' => array(
-            'pretty_version' => 'v1.29.0',
-            'version' => '1.29.0.0',
-            'reference' => 'c565ad1e63f30e7477fc40738343c62b40bc672d',
-            'type' => 'library',
-            'install_path' => __DIR__ . '/../symfony/polyfill-php81',
-            'aliases' => array(),
-            'dev_requirement' => true,
-        ),
-        'symfony/polyfill-php83' => array(
-            'pretty_version' => 'v1.29.0',
-            'version' => '1.29.0.0',
-            'reference' => '86fcae159633351e5fd145d1c47de6c528f8caff',
-            'type' => 'library',
-            'install_path' => __DIR__ . '/../symfony/polyfill-php83',
-            'aliases' => array(),
-            'dev_requirement' => true,
-        ),
-        'symfony/process' => array(
-            'pretty_version' => 'v6.4.8',
-            'version' => '6.4.8.0',
-            'reference' => '8d92dd79149f29e89ee0f480254db595f6a6a2c5',
-            'type' => 'library',
-            'install_path' => __DIR__ . '/../symfony/process',
-            'aliases' => array(),
-            'dev_requirement' => true,
-        ),
-        'symfony/service-contracts' => array(
-            'pretty_version' => 'v3.5.0',
-            'version' => '3.5.0.0',
-            'reference' => 'bd1d9e59a81d8fa4acdcea3f617c581f7475a80f',
-            'type' => 'library',
-            'install_path' => __DIR__ . '/../symfony/service-contracts',
-            'aliases' => array(),
-            'dev_requirement' => false,
-        ),
-        'symfony/stopwatch' => array(
-            'pretty_version' => 'v6.4.8',
-            'version' => '6.4.8.0',
-            'reference' => '63e069eb616049632cde9674c46957819454b8aa',
-            'type' => 'library',
-            'install_path' => __DIR__ . '/../symfony/stopwatch',
-            'aliases' => array(),
-            'dev_requirement' => true,
-        ),
-        'symfony/string' => array(
-            'pretty_version' => 'v6.4.8',
-            'version' => '6.4.8.0',
-            'reference' => 'a147c0f826c4a1f3afb763ab8e009e37c877a44d',
-            'type' => 'library',
-            'install_path' => __DIR__ . '/../symfony/string',
-            'aliases' => array(),
-            'dev_requirement' => false,
-        ),
-        'symfony/translation' => array(
-            'pretty_version' => 'v6.4.8',
-            'version' => '6.4.8.0',
-            'reference' => 'a002933b13989fc4bd0b58e04bf7eec5210e438a',
-            'type' => 'library',
-            'install_path' => __DIR__ . '/../symfony/translation',
-            'aliases' => array(),
-            'dev_requirement' => false,
-        ),
-        'symfony/translation-contracts' => array(
-            'pretty_version' => 'v3.5.0',
-            'version' => '3.5.0.0',
-            'reference' => 'b9d2189887bb6b2e0367a9fc7136c5239ab9b05a',
-            'type' => 'library',
-            'install_path' => __DIR__ . '/../symfony/translation-contracts',
-            'aliases' => array(),
-            'dev_requirement' => false,
-        ),
-        'symfony/translation-implementation' => array(
-            'dev_requirement' => false,
-            'provided' => array(
-                0 => '2.3|3.0',
-            ),
-        ),
-        'theseer/tokenizer' => array(
-            'pretty_version' => '1.2.3',
-            'version' => '1.2.3.0',
-            'reference' => '737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2',
-            'type' => 'library',
-            'install_path' => __DIR__ . '/../theseer/tokenizer',
-            'aliases' => array(),
-            'dev_requirement' => true,
-        ),
-        'vlucas/phpdotenv' => array(
-            'pretty_version' => 'v5.6.0',
-            'version' => '5.6.0.0',
-            'reference' => '2cf9fb6054c2bb1d59d1f3817706ecdb9d2934c4',
-            'type' => 'library',
-            'install_path' => __DIR__ . '/../vlucas/phpdotenv',
-            'aliases' => array(),
-            'dev_requirement' => false,
-        ),
-    ),
-);

+ 0 - 19
vendor/composer/pcre/LICENSE

@@ -1,19 +0,0 @@
-Copyright (C) 2021 Composer
-
-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.

+ 0 - 181
vendor/composer/pcre/README.md

@@ -1,181 +0,0 @@
-composer/pcre
-=============
-
-PCRE wrapping library that offers type-safe `preg_*` replacements.
-
-This library gives you a way to ensure `preg_*` functions do not fail silently, returning
-unexpected `null`s that may not be handled.
-
-As of 3.0 this library enforces [`PREG_UNMATCHED_AS_NULL`](#preg_unmatched_as_null) usage
-for all matching and replaceCallback functions, [read more below](#preg_unmatched_as_null)
-to understand the implications.
-
-It thus makes it easier to work with static analysis tools like PHPStan or Psalm as it
-simplifies and reduces the possible return values from all the `preg_*` functions which
-are quite packed with edge cases.
-
-This library is a thin wrapper around `preg_*` functions with [some limitations](#restrictions--limitations).
-If you are looking for a richer API to handle regular expressions have a look at
-[rawr/t-regx](https://packagist.org/packages/rawr/t-regx) instead.
-
-[![Continuous Integration](https://github.com/composer/pcre/workflows/Continuous%20Integration/badge.svg?branch=main)](https://github.com/composer/pcre/actions)
-
-
-Installation
-------------
-
-Install the latest version with:
-
-```bash
-$ composer require composer/pcre
-```
-
-
-Requirements
-------------
-
-* PHP 7.4.0 is required for 3.x versions
-* PHP 7.2.0 is required for 2.x versions
-* PHP 5.3.2 is required for 1.x versions
-
-
-Basic usage
------------
-
-Instead of:
-
-```php
-if (preg_match('{fo+}', $string, $matches)) { ... }
-if (preg_match('{fo+}', $string, $matches, PREG_OFFSET_CAPTURE)) { ... }
-if (preg_match_all('{fo+}', $string, $matches)) { ... }
-$newString = preg_replace('{fo+}', 'bar', $string);
-$newString = preg_replace_callback('{fo+}', function ($match) { return strtoupper($match[0]); }, $string);
-$newString = preg_replace_callback_array(['{fo+}' => fn ($match) => strtoupper($match[0])], $string);
-$filtered = preg_grep('{[a-z]}', $elements);
-$array = preg_split('{[a-z]+}', $string);
-```
-
-You can now call these on the `Preg` class:
-
-```php
-use Composer\Pcre\Preg;
-
-if (Preg::match('{fo+}', $string, $matches)) { ... }
-if (Preg::matchWithOffsets('{fo+}', $string, $matches)) { ... }
-if (Preg::matchAll('{fo+}', $string, $matches)) { ... }
-$newString = Preg::replace('{fo+}', 'bar', $string);
-$newString = Preg::replaceCallback('{fo+}', function ($match) { return strtoupper($match[0]); }, $string);
-$newString = Preg::replaceCallbackArray(['{fo+}' => fn ($match) => strtoupper($match[0])], $string);
-$filtered = Preg::grep('{[a-z]}', $elements);
-$array = Preg::split('{[a-z]+}', $string);
-```
-
-The main difference is if anything fails to match/replace/.., it will throw a `Composer\Pcre\PcreException`
-instead of returning `null` (or false in some cases), so you can now use the return values safely relying on
-the fact that they can only be strings (for replace), ints (for match) or arrays (for grep/split).
-
-Additionally the `Preg` class provides match methods that return `bool` rather than `int`, for stricter type safety
-when the number of pattern matches is not useful:
-
-```php
-use Composer\Pcre\Preg;
-
-if (Preg::isMatch('{fo+}', $string, $matches)) // bool
-if (Preg::isMatchAll('{fo+}', $string, $matches)) // bool
-```
-
-Finally the `Preg` class provides a few `*StrictGroups` method variants that ensure match groups
-are always present and thus non-nullable, making it easier to write type-safe code:
-
-```php
-use Composer\Pcre\Preg;
-
-// $matches is guaranteed to be an array of strings, if a subpattern does not match and produces a null it will throw
-if (Preg::matchStrictGroups('{fo+}', $string, $matches))
-if (Preg::matchAllStrictGroups('{fo+}', $string, $matches))
-```
-
-**Note:** This is generally safe to use as long as you do not have optional subpatterns (i.e. `(something)?`
-or `(something)*` or branches with a `|` that result in some groups not being matched at all).
-A subpattern that can match an empty string like `(.*)` is **not** optional, it will be present as an
-empty string in the matches. A non-matching subpattern, even if optional like `(?:foo)?` will anyway not be present in
-matches so it is also not a problem to use these with `*StrictGroups` methods.
-
-If you would prefer a slightly more verbose usage, replacing by-ref arguments by result objects, you can use the `Regex` class:
-
-```php
-use Composer\Pcre\Regex;
-
-// this is useful when you are just interested in knowing if something matched
-// as it returns a bool instead of int(1/0) for match
-$bool = Regex::isMatch('{fo+}', $string);
-
-$result = Regex::match('{fo+}', $string);
-if ($result->matched) { something($result->matches); }
-
-$result = Regex::matchWithOffsets('{fo+}', $string);
-if ($result->matched) { something($result->matches); }
-
-$result = Regex::matchAll('{fo+}', $string);
-if ($result->matched && $result->count > 3) { something($result->matches); }
-
-$newString = Regex::replace('{fo+}', 'bar', $string)->result;
-$newString = Regex::replaceCallback('{fo+}', function ($match) { return strtoupper($match[0]); }, $string)->result;
-$newString = Regex::replaceCallbackArray(['{fo+}' => fn ($match) => strtoupper($match[0])], $string)->result;
-```
-
-Note that `preg_grep` and `preg_split` are only callable via the `Preg` class as they do not have
-complex return types warranting a specific result object.
-
-See the [MatchResult](src/MatchResult.php), [MatchWithOffsetsResult](src/MatchWithOffsetsResult.php), [MatchAllResult](src/MatchAllResult.php),
-[MatchAllWithOffsetsResult](src/MatchAllWithOffsetsResult.php), and [ReplaceResult](src/ReplaceResult.php) class sources for more details.
-
-Restrictions / Limitations
---------------------------
-
-Due to type safety requirements a few restrictions are in place.
-
-- matching using `PREG_OFFSET_CAPTURE` is made available via `matchWithOffsets` and `matchAllWithOffsets`.
-  You cannot pass the flag to `match`/`matchAll`.
-- `Preg::split` will also reject `PREG_SPLIT_OFFSET_CAPTURE` and you should use `splitWithOffsets`
-  instead.
-- `matchAll` rejects `PREG_SET_ORDER` as it also changes the shape of the returned matches. There
-  is no alternative provided as you can fairly easily code around it.
-- `preg_filter` is not supported as it has a rather crazy API, most likely you should rather
-  use `Preg::grep` in combination with some loop and `Preg::replace`.
-- `replace`, `replaceCallback` and `replaceCallbackArray` do not support an array `$subject`,
-  only simple strings.
-- As of 2.0, the library always uses `PREG_UNMATCHED_AS_NULL` for matching, which offers [much
-  saner/more predictable results](#preg_unmatched_as_null). As of 3.0 the flag is also set for
-  `replaceCallback` and `replaceCallbackArray`.
-
-#### PREG_UNMATCHED_AS_NULL
-
-As of 2.0, this library always uses PREG_UNMATCHED_AS_NULL for all `match*` and `isMatch*`
-functions. As of 3.0 it is also done for `replaceCallback` and `replaceCallbackArray`.
-
-This means your matches will always contain all matching groups, either as null if unmatched
-or as string if it matched.
-
-The advantages in clarity and predictability are clearer if you compare the two outputs of
-running this with and without PREG_UNMATCHED_AS_NULL in $flags:
-
-```php
-preg_match('/(a)(b)*(c)(d)*/', 'ac', $matches, $flags);
-```
-
-| no flag | PREG_UNMATCHED_AS_NULL |
-| --- | --- |
-| array (size=4)              | array (size=5) |
-| 0 => string 'ac' (length=2) |   0 => string 'ac' (length=2) |
-| 1 => string 'a' (length=1)  |   1 => string 'a' (length=1) |
-| 2 => string '' (length=0)   |   2 => null |
-| 3 => string 'c' (length=1)  |   3 => string 'c' (length=1) |
-|                             |   4 => null |
-| group 2 (any unmatched group preceding one that matched) is set to `''`. You cannot tell if it matched an empty string or did not match at all | group 2 is `null` when unmatched and a string if it matched, easy to check for |
-| group 4 (any optional group without a matching one following) is missing altogether. So you have to check with `isset()`, but really you want `isset($m[4]) && $m[4] !== ''` for safety unless you are very careful to check that a non-optional group follows it | group 4 is always set, and null in this case as there was no match, easy to check for with `$m[4] !== null` |
-
-License
--------
-
-composer/pcre is licensed under the MIT License, see the LICENSE file for details.

+ 0 - 46
vendor/composer/pcre/composer.json

@@ -1,46 +0,0 @@
-{
-    "name": "composer/pcre",
-    "description": "PCRE wrapping library that offers type-safe preg_* replacements.",
-    "type": "library",
-    "license": "MIT",
-    "keywords": [
-        "pcre",
-        "regex",
-        "preg",
-        "regular expression"
-    ],
-    "authors": [
-        {
-            "name": "Jordi Boggiano",
-            "email": "j.boggiano@seld.be",
-            "homepage": "http://seld.be"
-        }
-    ],
-    "require": {
-        "php": "^7.4 || ^8.0"
-    },
-    "require-dev": {
-        "symfony/phpunit-bridge": "^5",
-        "phpstan/phpstan": "^1.3",
-        "phpstan/phpstan-strict-rules": "^1.1"
-    },
-    "autoload": {
-        "psr-4": {
-            "Composer\\Pcre\\": "src"
-        }
-    },
-    "autoload-dev": {
-        "psr-4": {
-            "Composer\\Pcre\\": "tests"
-        }
-    },
-    "extra": {
-        "branch-alias": {
-            "dev-main": "3.x-dev"
-        }
-    },
-    "scripts": {
-        "test": "vendor/bin/simple-phpunit",
-        "phpstan": "phpstan analyse"
-    }
-}

+ 0 - 46
vendor/composer/pcre/src/MatchAllResult.php

@@ -1,46 +0,0 @@
-<?php
-
-/*
- * This file is part of composer/pcre.
- *
- * (c) Composer <https://github.com/composer>
- *
- * For the full copyright and license information, please view
- * the LICENSE file that was distributed with this source code.
- */
-
-namespace Composer\Pcre;
-
-final class MatchAllResult
-{
-    /**
-     * An array of match group => list of matched strings
-     *
-     * @readonly
-     * @var array<int|string, list<string|null>>
-     */
-    public $matches;
-
-    /**
-     * @readonly
-     * @var 0|positive-int
-     */
-    public $count;
-
-    /**
-     * @readonly
-     * @var bool
-     */
-    public $matched;
-
-    /**
-     * @param 0|positive-int $count
-     * @param array<int|string, list<string|null>> $matches
-     */
-    public function __construct(int $count, array $matches)
-    {
-        $this->matches = $matches;
-        $this->matched = (bool) $count;
-        $this->count = $count;
-    }
-}

+ 0 - 46
vendor/composer/pcre/src/MatchAllStrictGroupsResult.php

@@ -1,46 +0,0 @@
-<?php
-
-/*
- * This file is part of composer/pcre.
- *
- * (c) Composer <https://github.com/composer>
- *
- * For the full copyright and license information, please view
- * the LICENSE file that was distributed with this source code.
- */
-
-namespace Composer\Pcre;
-
-final class MatchAllStrictGroupsResult
-{
-    /**
-     * An array of match group => list of matched strings
-     *
-     * @readonly
-     * @var array<int|string, list<string>>
-     */
-    public $matches;
-
-    /**
-     * @readonly
-     * @var 0|positive-int
-     */
-    public $count;
-
-    /**
-     * @readonly
-     * @var bool
-     */
-    public $matched;
-
-    /**
-     * @param 0|positive-int $count
-     * @param array<list<string>> $matches
-     */
-    public function __construct(int $count, array $matches)
-    {
-        $this->matches = $matches;
-        $this->matched = (bool) $count;
-        $this->count = $count;
-    }
-}

+ 0 - 48
vendor/composer/pcre/src/MatchAllWithOffsetsResult.php

@@ -1,48 +0,0 @@
-<?php
-
-/*
- * This file is part of composer/pcre.
- *
- * (c) Composer <https://github.com/composer>
- *
- * For the full copyright and license information, please view
- * the LICENSE file that was distributed with this source code.
- */
-
-namespace Composer\Pcre;
-
-final class MatchAllWithOffsetsResult
-{
-    /**
-     * An array of match group => list of matches, every match being a pair of string matched + offset in bytes (or -1 if no match)
-     *
-     * @readonly
-     * @var array<int|string, list<array{string|null, int}>>
-     * @phpstan-var array<int|string, list<array{string|null, int<-1, max>}>>
-     */
-    public $matches;
-
-    /**
-     * @readonly
-     * @var 0|positive-int
-     */
-    public $count;
-
-    /**
-     * @readonly
-     * @var bool
-     */
-    public $matched;
-
-    /**
-     * @param 0|positive-int $count
-     * @param array<int|string, list<array{string|null, int}>> $matches
-     * @phpstan-param array<int|string, list<array{string|null, int<-1, max>}>> $matches
-     */
-    public function __construct(int $count, array $matches)
-    {
-        $this->matches = $matches;
-        $this->matched = (bool) $count;
-        $this->count = $count;
-    }
-}

+ 0 - 39
vendor/composer/pcre/src/MatchResult.php

@@ -1,39 +0,0 @@
-<?php
-
-/*
- * This file is part of composer/pcre.
- *
- * (c) Composer <https://github.com/composer>
- *
- * For the full copyright and license information, please view
- * the LICENSE file that was distributed with this source code.
- */
-
-namespace Composer\Pcre;
-
-final class MatchResult
-{
-    /**
-     * An array of match group => string matched
-     *
-     * @readonly
-     * @var array<int|string, string|null>
-     */
-    public $matches;
-
-    /**
-     * @readonly
-     * @var bool
-     */
-    public $matched;
-
-    /**
-     * @param 0|positive-int $count
-     * @param array<string|null> $matches
-     */
-    public function __construct(int $count, array $matches)
-    {
-        $this->matches = $matches;
-        $this->matched = (bool) $count;
-    }
-}

+ 0 - 39
vendor/composer/pcre/src/MatchStrictGroupsResult.php

@@ -1,39 +0,0 @@
-<?php
-
-/*
- * This file is part of composer/pcre.
- *
- * (c) Composer <https://github.com/composer>
- *
- * For the full copyright and license information, please view
- * the LICENSE file that was distributed with this source code.
- */
-
-namespace Composer\Pcre;
-
-final class MatchStrictGroupsResult
-{
-    /**
-     * An array of match group => string matched
-     *
-     * @readonly
-     * @var array<int|string, string>
-     */
-    public $matches;
-
-    /**
-     * @readonly
-     * @var bool
-     */
-    public $matched;
-
-    /**
-     * @param 0|positive-int $count
-     * @param array<string> $matches
-     */
-    public function __construct(int $count, array $matches)
-    {
-        $this->matches = $matches;
-        $this->matched = (bool) $count;
-    }
-}

+ 0 - 41
vendor/composer/pcre/src/MatchWithOffsetsResult.php

@@ -1,41 +0,0 @@
-<?php
-
-/*
- * This file is part of composer/pcre.
- *
- * (c) Composer <https://github.com/composer>
- *
- * For the full copyright and license information, please view
- * the LICENSE file that was distributed with this source code.
- */
-
-namespace Composer\Pcre;
-
-final class MatchWithOffsetsResult
-{
-    /**
-     * An array of match group => pair of string matched + offset in bytes (or -1 if no match)
-     *
-     * @readonly
-     * @var array<int|string, array{string|null, int}>
-     * @phpstan-var array<int|string, array{string|null, int<-1, max>}>
-     */
-    public $matches;
-
-    /**
-     * @readonly
-     * @var bool
-     */
-    public $matched;
-
-    /**
-     * @param 0|positive-int $count
-     * @param array<array{string|null, int}> $matches
-     * @phpstan-param array<int|string, array{string|null, int<-1, max>}> $matches
-     */
-    public function __construct(int $count, array $matches)
-    {
-        $this->matches = $matches;
-        $this->matched = (bool) $count;
-    }
-}

+ 0 - 60
vendor/composer/pcre/src/PcreException.php

@@ -1,60 +0,0 @@
-<?php
-
-/*
- * This file is part of composer/pcre.
- *
- * (c) Composer <https://github.com/composer>
- *
- * For the full copyright and license information, please view
- * the LICENSE file that was distributed with this source code.
- */
-
-namespace Composer\Pcre;
-
-class PcreException extends \RuntimeException
-{
-    /**
-     * @param  string $function
-     * @param  string|string[] $pattern
-     * @return self
-     */
-    public static function fromFunction($function, $pattern)
-    {
-        $code = preg_last_error();
-
-        if (is_array($pattern)) {
-            $pattern = implode(', ', $pattern);
-        }
-
-        return new PcreException($function.'(): failed executing "'.$pattern.'": '.self::pcreLastErrorMessage($code), $code);
-    }
-
-    /**
-     * @param  int $code
-     * @return string
-     */
-    private static function pcreLastErrorMessage($code)
-    {
-        if (function_exists('preg_last_error_msg')) {
-            return preg_last_error_msg();
-        }
-
-        // older php versions did not set the code properly in all cases
-        if (PHP_VERSION_ID < 70201 && $code === 0) {
-            return 'UNDEFINED_ERROR';
-        }
-
-        $constants = get_defined_constants(true);
-        if (!isset($constants['pcre'])) {
-            return 'UNDEFINED_ERROR';
-        }
-
-        foreach ($constants['pcre'] as $const => $val) {
-            if ($val === $code && substr($const, -6) === '_ERROR') {
-                return $const;
-            }
-        }
-
-        return 'UNDEFINED_ERROR';
-    }
-}

+ 0 - 430
vendor/composer/pcre/src/Preg.php

@@ -1,430 +0,0 @@
-<?php
-
-/*
- * This file is part of composer/pcre.
- *
- * (c) Composer <https://github.com/composer>
- *
- * For the full copyright and license information, please view
- * the LICENSE file that was distributed with this source code.
- */
-
-namespace Composer\Pcre;
-
-class Preg
-{
-    /** @internal */
-    public const ARRAY_MSG = '$subject as an array is not supported. You can use \'foreach\' instead.';
-    /** @internal */
-    public const INVALID_TYPE_MSG = '$subject must be a string, %s given.';
-
-    /**
-     * @param non-empty-string   $pattern
-     * @param array<mixed> $matches Set by method
-     * @param int-mask<PREG_UNMATCHED_AS_NULL> $flags PREG_UNMATCHED_AS_NULL is always set, no other flags are supported
-     * @return 0|1
-     *
-     * @param-out array<int|string, string|null> $matches
-     */
-    public static function match(string $pattern, string $subject, ?array &$matches = null, int $flags = 0, int $offset = 0): int
-    {
-        self::checkOffsetCapture($flags, 'matchWithOffsets');
-
-        $result = preg_match($pattern, $subject, $matches, $flags | PREG_UNMATCHED_AS_NULL, $offset);
-        if ($result === false) {
-            throw PcreException::fromFunction('preg_match', $pattern);
-        }
-
-        return $result;
-    }
-
-    /**
-     * Variant of `match()` which outputs non-null matches (or throws)
-     *
-     * @param non-empty-string $pattern
-     * @param array<mixed> $matches Set by method
-     * @param int-mask<PREG_UNMATCHED_AS_NULL> $flags PREG_UNMATCHED_AS_NULL is always set, no other flags are supported
-     * @return 0|1
-     * @throws UnexpectedNullMatchException
-     *
-     * @param-out array<int|string, string> $matches
-     */
-    public static function matchStrictGroups(string $pattern, string $subject, ?array &$matches = null, int $flags = 0, int $offset = 0): int
-    {
-        $result = self::match($pattern, $subject, $matchesInternal, $flags, $offset);
-        $matches = self::enforceNonNullMatches($pattern, $matchesInternal, 'match');
-
-        return $result;
-    }
-
-    /**
-     * Runs preg_match with PREG_OFFSET_CAPTURE
-     *
-     * @param non-empty-string   $pattern
-     * @param array<mixed> $matches Set by method
-     * @param int-mask<PREG_UNMATCHED_AS_NULL|PREG_OFFSET_CAPTURE> $flags PREG_UNMATCHED_AS_NULL and PREG_OFFSET_CAPTURE are always set, no other flags are supported
-     * @return 0|1
-     *
-     * @param-out array<int|string, array{string|null, int<-1, max>}> $matches
-     */
-    public static function matchWithOffsets(string $pattern, string $subject, ?array &$matches, int $flags = 0, int $offset = 0): int
-    {
-        $result = preg_match($pattern, $subject, $matches, $flags | PREG_UNMATCHED_AS_NULL | PREG_OFFSET_CAPTURE, $offset);
-        if ($result === false) {
-            throw PcreException::fromFunction('preg_match', $pattern);
-        }
-
-        return $result;
-    }
-
-    /**
-     * @param non-empty-string   $pattern
-     * @param array<mixed> $matches Set by method
-     * @param int-mask<PREG_UNMATCHED_AS_NULL> $flags PREG_UNMATCHED_AS_NULL is always set, no other flags are supported
-     * @return 0|positive-int
-     *
-     * @param-out array<int|string, list<string|null>> $matches
-     */
-    public static function matchAll(string $pattern, string $subject, ?array &$matches = null, int $flags = 0, int $offset = 0): int
-    {
-        self::checkOffsetCapture($flags, 'matchAllWithOffsets');
-        self::checkSetOrder($flags);
-
-        $result = preg_match_all($pattern, $subject, $matches, $flags | PREG_UNMATCHED_AS_NULL, $offset);
-        if (!is_int($result)) { // PHP < 8 may return null, 8+ returns int|false
-            throw PcreException::fromFunction('preg_match_all', $pattern);
-        }
-
-        return $result;
-    }
-
-    /**
-     * Variant of `match()` which outputs non-null matches (or throws)
-     *
-     * @param non-empty-string   $pattern
-     * @param array<mixed> $matches Set by method
-     * @param int-mask<PREG_UNMATCHED_AS_NULL> $flags PREG_UNMATCHED_AS_NULL is always set, no other flags are supported
-     * @return 0|positive-int
-     * @throws UnexpectedNullMatchException
-     *
-     * @param-out array<int|string, list<string>> $matches
-     */
-    public static function matchAllStrictGroups(string $pattern, string $subject, ?array &$matches = null, int $flags = 0, int $offset = 0): int
-    {
-        $result = self::matchAll($pattern, $subject, $matchesInternal, $flags, $offset);
-        $matches = self::enforceNonNullMatchAll($pattern, $matchesInternal, 'matchAll');
-
-        return $result;
-    }
-
-    /**
-     * Runs preg_match_all with PREG_OFFSET_CAPTURE
-     *
-     * @param non-empty-string   $pattern
-     * @param array<mixed> $matches Set by method
-     * @param int-mask<PREG_UNMATCHED_AS_NULL|PREG_OFFSET_CAPTURE> $flags PREG_UNMATCHED_AS_NULL and PREG_MATCH_OFFSET are always set, no other flags are supported
-     * @return 0|positive-int
-     *
-     * @param-out array<int|string, list<array{string|null, int<-1, max>}>> $matches
-     */
-    public static function matchAllWithOffsets(string $pattern, string $subject, ?array &$matches, int $flags = 0, int $offset = 0): int
-    {
-        self::checkSetOrder($flags);
-
-        $result = preg_match_all($pattern, $subject, $matches, $flags | PREG_UNMATCHED_AS_NULL | PREG_OFFSET_CAPTURE, $offset);
-        if (!is_int($result)) { // PHP < 8 may return null, 8+ returns int|false
-            throw PcreException::fromFunction('preg_match_all', $pattern);
-        }
-
-        return $result;
-    }
-
-    /**
-     * @param string|string[] $pattern
-     * @param string|string[] $replacement
-     * @param string $subject
-     * @param int             $count Set by method
-     *
-     * @param-out int<0, max> $count
-     */
-    public static function replace($pattern, $replacement, $subject, int $limit = -1, ?int &$count = null): string
-    {
-        if (!is_scalar($subject)) {
-            if (is_array($subject)) {
-                throw new \InvalidArgumentException(static::ARRAY_MSG);
-            }
-
-            throw new \TypeError(sprintf(static::INVALID_TYPE_MSG, gettype($subject)));
-        }
-
-        $result = preg_replace($pattern, $replacement, $subject, $limit, $count);
-        if ($result === null) {
-            throw PcreException::fromFunction('preg_replace', $pattern);
-        }
-
-        return $result;
-    }
-
-    /**
-     * @param string|string[] $pattern
-     * @param ($flags is PREG_OFFSET_CAPTURE ? (callable(array<int|string, array{string|null, int<-1, max>}>): string) : callable(array<int|string, string|null>): string) $replacement
-     * @param string $subject
-     * @param int             $count Set by method
-     * @param int-mask<PREG_UNMATCHED_AS_NULL|PREG_OFFSET_CAPTURE> $flags PREG_OFFSET_CAPTURE is supported, PREG_UNMATCHED_AS_NULL is always set
-     *
-     * @param-out int<0, max> $count
-     */
-    public static function replaceCallback($pattern, callable $replacement, $subject, int $limit = -1, ?int &$count = null, int $flags = 0): string
-    {
-        if (!is_scalar($subject)) {
-            if (is_array($subject)) {
-                throw new \InvalidArgumentException(static::ARRAY_MSG);
-            }
-
-            throw new \TypeError(sprintf(static::INVALID_TYPE_MSG, gettype($subject)));
-        }
-
-        $result = preg_replace_callback($pattern, $replacement, $subject, $limit, $count, $flags | PREG_UNMATCHED_AS_NULL);
-        if ($result === null) {
-            throw PcreException::fromFunction('preg_replace_callback', $pattern);
-        }
-
-        return $result;
-    }
-
-    /**
-     * Variant of `replaceCallback()` which outputs non-null matches (or throws)
-     *
-     * @param string $pattern
-     * @param ($flags is PREG_OFFSET_CAPTURE ? (callable(array<int|string, array{string, int<0, max>}>): string) : callable(array<int|string, string>): string) $replacement
-     * @param string $subject
-     * @param int $count Set by method
-     * @param int-mask<PREG_UNMATCHED_AS_NULL|PREG_OFFSET_CAPTURE> $flags PREG_OFFSET_CAPTURE is supported, PREG_UNMATCHED_AS_NULL is always set
-     *
-     * @param-out int<0, max> $count
-     */
-    public static function replaceCallbackStrictGroups(string $pattern, callable $replacement, $subject, int $limit = -1, ?int &$count = null, int $flags = 0): string
-    {
-        return self::replaceCallback($pattern, function (array $matches) use ($pattern, $replacement) {
-            return $replacement(self::enforceNonNullMatches($pattern, $matches, 'replaceCallback'));
-        }, $subject, $limit, $count, $flags);
-    }
-
-    /**
-     * @param ($flags is PREG_OFFSET_CAPTURE ? (array<string, callable(array<int|string, array{string|null, int<-1, max>}>): string>) : array<string, callable(array<int|string, string|null>): string>) $pattern
-     * @param string $subject
-     * @param int    $count Set by method
-     * @param int-mask<PREG_UNMATCHED_AS_NULL|PREG_OFFSET_CAPTURE> $flags PREG_OFFSET_CAPTURE is supported, PREG_UNMATCHED_AS_NULL is always set
-     *
-     * @param-out int<0, max> $count
-     */
-    public static function replaceCallbackArray(array $pattern, $subject, int $limit = -1, ?int &$count = null, int $flags = 0): string
-    {
-        if (!is_scalar($subject)) {
-            if (is_array($subject)) {
-                throw new \InvalidArgumentException(static::ARRAY_MSG);
-            }
-
-            throw new \TypeError(sprintf(static::INVALID_TYPE_MSG, gettype($subject)));
-        }
-
-        $result = preg_replace_callback_array($pattern, $subject, $limit, $count, $flags | PREG_UNMATCHED_AS_NULL);
-        if ($result === null) {
-            $pattern = array_keys($pattern);
-            throw PcreException::fromFunction('preg_replace_callback_array', $pattern);
-        }
-
-        return $result;
-    }
-
-    /**
-     * @param int-mask<PREG_SPLIT_NO_EMPTY|PREG_SPLIT_DELIM_CAPTURE|PREG_SPLIT_OFFSET_CAPTURE> $flags PREG_SPLIT_NO_EMPTY or PREG_SPLIT_DELIM_CAPTURE
-     * @return list<string>
-     */
-    public static function split(string $pattern, string $subject, int $limit = -1, int $flags = 0): array
-    {
-        if (($flags & PREG_SPLIT_OFFSET_CAPTURE) !== 0) {
-            throw new \InvalidArgumentException('PREG_SPLIT_OFFSET_CAPTURE is not supported as it changes the type of $matches, use splitWithOffsets() instead');
-        }
-
-        $result = preg_split($pattern, $subject, $limit, $flags);
-        if ($result === false) {
-            throw PcreException::fromFunction('preg_split', $pattern);
-        }
-
-        return $result;
-    }
-
-    /**
-     * @param int-mask<PREG_SPLIT_NO_EMPTY|PREG_SPLIT_DELIM_CAPTURE|PREG_SPLIT_OFFSET_CAPTURE> $flags PREG_SPLIT_NO_EMPTY or PREG_SPLIT_DELIM_CAPTURE, PREG_SPLIT_OFFSET_CAPTURE is always set
-     * @return list<array{string, int}>
-     * @phpstan-return list<array{string, int<0, max>}>
-     */
-    public static function splitWithOffsets(string $pattern, string $subject, int $limit = -1, int $flags = 0): array
-    {
-        $result = preg_split($pattern, $subject, $limit, $flags | PREG_SPLIT_OFFSET_CAPTURE);
-        if ($result === false) {
-            throw PcreException::fromFunction('preg_split', $pattern);
-        }
-
-        return $result;
-    }
-
-    /**
-     * @template T of string|\Stringable
-     * @param string   $pattern
-     * @param array<T> $array
-     * @param int-mask<PREG_GREP_INVERT> $flags PREG_GREP_INVERT
-     * @return array<T>
-     */
-    public static function grep(string $pattern, array $array, int $flags = 0): array
-    {
-        $result = preg_grep($pattern, $array, $flags);
-        if ($result === false) {
-            throw PcreException::fromFunction('preg_grep', $pattern);
-        }
-
-        return $result;
-    }
-
-    /**
-     * Variant of match() which returns a bool instead of int
-     *
-     * @param non-empty-string   $pattern
-     * @param array<mixed> $matches Set by method
-     * @param int-mask<PREG_UNMATCHED_AS_NULL> $flags PREG_UNMATCHED_AS_NULL is always set, no other flags are supported
-     *
-     * @param-out array<int|string, string|null> $matches
-     */
-    public static function isMatch(string $pattern, string $subject, ?array &$matches = null, int $flags = 0, int $offset = 0): bool
-    {
-        return (bool) static::match($pattern, $subject, $matches, $flags, $offset);
-    }
-
-    /**
-     * Variant of `isMatch()` which outputs non-null matches (or throws)
-     *
-     * @param non-empty-string $pattern
-     * @param array<mixed> $matches Set by method
-     * @param int-mask<PREG_UNMATCHED_AS_NULL> $flags PREG_UNMATCHED_AS_NULL is always set, no other flags are supported
-     * @throws UnexpectedNullMatchException
-     *
-     * @param-out array<int|string, string> $matches
-     */
-    public static function isMatchStrictGroups(string $pattern, string $subject, ?array &$matches = null, int $flags = 0, int $offset = 0): bool
-    {
-        return (bool) self::matchStrictGroups($pattern, $subject, $matches, $flags, $offset);
-    }
-
-    /**
-     * Variant of matchAll() which returns a bool instead of int
-     *
-     * @param non-empty-string   $pattern
-     * @param array<mixed> $matches Set by method
-     * @param int-mask<PREG_UNMATCHED_AS_NULL> $flags PREG_UNMATCHED_AS_NULL is always set, no other flags are supported
-     *
-     * @param-out array<int|string, list<string|null>> $matches
-     */
-    public static function isMatchAll(string $pattern, string $subject, ?array &$matches = null, int $flags = 0, int $offset = 0): bool
-    {
-        return (bool) static::matchAll($pattern, $subject, $matches, $flags, $offset);
-    }
-
-    /**
-     * Variant of `isMatchAll()` which outputs non-null matches (or throws)
-     *
-     * @param non-empty-string $pattern
-     * @param array<mixed> $matches Set by method
-     * @param int-mask<PREG_UNMATCHED_AS_NULL> $flags PREG_UNMATCHED_AS_NULL is always set, no other flags are supported
-     *
-     * @param-out array<int|string, list<string>> $matches
-     */
-    public static function isMatchAllStrictGroups(string $pattern, string $subject, ?array &$matches = null, int $flags = 0, int $offset = 0): bool
-    {
-        return (bool) self::matchAllStrictGroups($pattern, $subject, $matches, $flags, $offset);
-    }
-
-    /**
-     * Variant of matchWithOffsets() which returns a bool instead of int
-     *
-     * Runs preg_match with PREG_OFFSET_CAPTURE
-     *
-     * @param non-empty-string   $pattern
-     * @param array<mixed> $matches Set by method
-     * @param int-mask<PREG_UNMATCHED_AS_NULL> $flags PREG_UNMATCHED_AS_NULL is always set, no other flags are supported
-     *
-     * @param-out array<int|string, array{string|null, int<-1, max>}> $matches
-     */
-    public static function isMatchWithOffsets(string $pattern, string $subject, ?array &$matches, int $flags = 0, int $offset = 0): bool
-    {
-        return (bool) static::matchWithOffsets($pattern, $subject, $matches, $flags, $offset);
-    }
-
-    /**
-     * Variant of matchAllWithOffsets() which returns a bool instead of int
-     *
-     * Runs preg_match_all with PREG_OFFSET_CAPTURE
-     *
-     * @param non-empty-string   $pattern
-     * @param array<mixed> $matches Set by method
-     * @param int-mask<PREG_UNMATCHED_AS_NULL> $flags PREG_UNMATCHED_AS_NULL is always set, no other flags are supported
-     *
-     * @param-out array<int|string, list<array{string|null, int<-1, max>}>> $matches
-     */
-    public static function isMatchAllWithOffsets(string $pattern, string $subject, ?array &$matches, int $flags = 0, int $offset = 0): bool
-    {
-        return (bool) static::matchAllWithOffsets($pattern, $subject, $matches, $flags, $offset);
-    }
-
-    private static function checkOffsetCapture(int $flags, string $useFunctionName): void
-    {
-        if (($flags & PREG_OFFSET_CAPTURE) !== 0) {
-            throw new \InvalidArgumentException('PREG_OFFSET_CAPTURE is not supported as it changes the type of $matches, use ' . $useFunctionName . '() instead');
-        }
-    }
-
-    private static function checkSetOrder(int $flags): void
-    {
-        if (($flags & PREG_SET_ORDER) !== 0) {
-            throw new \InvalidArgumentException('PREG_SET_ORDER is not supported as it changes the type of $matches');
-        }
-    }
-
-    /**
-     * @param array<int|string, string|null|array{string|null, int}> $matches
-     * @return array<int|string, string>
-     * @throws UnexpectedNullMatchException
-     */
-    private static function enforceNonNullMatches(string $pattern, array $matches, string $variantMethod)
-    {
-        foreach ($matches as $group => $match) {
-            if (is_string($match) || (is_array($match) && is_string($match[0]))) {
-                continue;
-            }
-
-            throw new UnexpectedNullMatchException('Pattern "'.$pattern.'" had an unexpected unmatched group "'.$group.'", make sure the pattern always matches or use '.$variantMethod.'() instead.');
-        }
-
-        /** @var array<string> */
-        return $matches;
-    }
-
-    /**
-     * @param array<int|string, list<string|null>> $matches
-     * @return array<int|string, list<string>>
-     * @throws UnexpectedNullMatchException
-     */
-    private static function enforceNonNullMatchAll(string $pattern, array $matches, string $variantMethod)
-    {
-        foreach ($matches as $group => $groupMatches) {
-            foreach ($groupMatches as $match) {
-                if (null === $match) {
-                    throw new UnexpectedNullMatchException('Pattern "'.$pattern.'" had an unexpected unmatched group "'.$group.'", make sure the pattern always matches or use '.$variantMethod.'() instead.');
-                }
-            }
-        }
-
-        /** @var array<int|string, list<string>> */
-        return $matches;
-    }
-}

+ 0 - 174
vendor/composer/pcre/src/Regex.php

@@ -1,174 +0,0 @@
-<?php
-
-/*
- * This file is part of composer/pcre.
- *
- * (c) Composer <https://github.com/composer>
- *
- * For the full copyright and license information, please view
- * the LICENSE file that was distributed with this source code.
- */
-
-namespace Composer\Pcre;
-
-class Regex
-{
-    /**
-     * @param non-empty-string $pattern
-     */
-    public static function isMatch(string $pattern, string $subject, int $offset = 0): bool
-    {
-        return (bool) Preg::match($pattern, $subject, $matches, 0, $offset);
-    }
-
-    /**
-     * @param non-empty-string $pattern
-     * @param int-mask<PREG_UNMATCHED_AS_NULL> $flags PREG_UNMATCHED_AS_NULL is always set, no other flags are supported
-     */
-    public static function match(string $pattern, string $subject, int $flags = 0, int $offset = 0): MatchResult
-    {
-        self::checkOffsetCapture($flags, 'matchWithOffsets');
-
-        $count = Preg::match($pattern, $subject, $matches, $flags, $offset);
-
-        return new MatchResult($count, $matches);
-    }
-
-    /**
-     * Variant of `match()` which returns non-null matches (or throws)
-     *
-     * @param non-empty-string $pattern
-     * @param int-mask<PREG_UNMATCHED_AS_NULL> $flags PREG_UNMATCHED_AS_NULL is always set, no other flags are supported
-     * @throws UnexpectedNullMatchException
-     */
-    public static function matchStrictGroups(string $pattern, string $subject, int $flags = 0, int $offset = 0): MatchStrictGroupsResult
-    {
-        $count = Preg::matchStrictGroups($pattern, $subject, $matches, $flags, $offset);
-
-        return new MatchStrictGroupsResult($count, $matches);
-    }
-
-    /**
-     * Runs preg_match with PREG_OFFSET_CAPTURE
-     *
-     * @param non-empty-string $pattern
-     * @param int-mask<PREG_UNMATCHED_AS_NULL|PREG_OFFSET_CAPTURE> $flags PREG_UNMATCHED_AS_NULL and PREG_MATCH_OFFSET are always set, no other flags are supported
-     */
-    public static function matchWithOffsets(string $pattern, string $subject, int $flags = 0, int $offset = 0): MatchWithOffsetsResult
-    {
-        $count = Preg::matchWithOffsets($pattern, $subject, $matches, $flags, $offset);
-
-        return new MatchWithOffsetsResult($count, $matches);
-    }
-
-    /**
-     * @param non-empty-string $pattern
-     * @param int-mask<PREG_UNMATCHED_AS_NULL> $flags PREG_UNMATCHED_AS_NULL is always set, no other flags are supported
-     */
-    public static function matchAll(string $pattern, string $subject, int $flags = 0, int $offset = 0): MatchAllResult
-    {
-        self::checkOffsetCapture($flags, 'matchAllWithOffsets');
-        self::checkSetOrder($flags);
-
-        $count = Preg::matchAll($pattern, $subject, $matches, $flags, $offset);
-
-        return new MatchAllResult($count, $matches);
-    }
-
-    /**
-     * Variant of `matchAll()` which returns non-null matches (or throws)
-     *
-     * @param non-empty-string $pattern
-     * @param int-mask<PREG_UNMATCHED_AS_NULL> $flags PREG_UNMATCHED_AS_NULL is always set, no other flags are supported
-     * @throws UnexpectedNullMatchException
-     */
-    public static function matchAllStrictGroups(string $pattern, string $subject, int $flags = 0, int $offset = 0): MatchAllStrictGroupsResult
-    {
-        self::checkOffsetCapture($flags, 'matchAllWithOffsets');
-        self::checkSetOrder($flags);
-
-        $count = Preg::matchAllStrictGroups($pattern, $subject, $matches, $flags, $offset);
-
-        return new MatchAllStrictGroupsResult($count, $matches);
-    }
-
-    /**
-     * Runs preg_match_all with PREG_OFFSET_CAPTURE
-     *
-     * @param non-empty-string $pattern
-     * @param int-mask<PREG_UNMATCHED_AS_NULL|PREG_OFFSET_CAPTURE> $flags PREG_UNMATCHED_AS_NULL and PREG_MATCH_OFFSET are always set, no other flags are supported
-     */
-    public static function matchAllWithOffsets(string $pattern, string $subject, int $flags = 0, int $offset = 0): MatchAllWithOffsetsResult
-    {
-        self::checkSetOrder($flags);
-
-        $count = Preg::matchAllWithOffsets($pattern, $subject, $matches, $flags, $offset);
-
-        return new MatchAllWithOffsetsResult($count, $matches);
-    }
-    /**
-     * @param string|string[] $pattern
-     * @param string|string[] $replacement
-     * @param string          $subject
-     */
-    public static function replace($pattern, $replacement, $subject, int $limit = -1): ReplaceResult
-    {
-        $result = Preg::replace($pattern, $replacement, $subject, $limit, $count);
-
-        return new ReplaceResult($count, $result);
-    }
-
-    /**
-     * @param string|string[] $pattern
-     * @param ($flags is PREG_OFFSET_CAPTURE ? (callable(array<int|string, array{string|null, int<-1, max>}>): string) : callable(array<int|string, string|null>): string) $replacement
-     * @param string          $subject
-     * @param int-mask<PREG_UNMATCHED_AS_NULL|PREG_OFFSET_CAPTURE> $flags PREG_OFFSET_CAPTURE is supported, PREG_UNMATCHED_AS_NULL is always set
-     */
-    public static function replaceCallback($pattern, callable $replacement, $subject, int $limit = -1, int $flags = 0): ReplaceResult
-    {
-        $result = Preg::replaceCallback($pattern, $replacement, $subject, $limit, $count, $flags);
-
-        return new ReplaceResult($count, $result);
-    }
-
-    /**
-     * Variant of `replaceCallback()` which outputs non-null matches (or throws)
-     *
-     * @param string $pattern
-     * @param ($flags is PREG_OFFSET_CAPTURE ? (callable(array<int|string, array{string, int<0, max>}>): string) : callable(array<int|string, string>): string) $replacement
-     * @param string          $subject
-     * @param int-mask<PREG_UNMATCHED_AS_NULL|PREG_OFFSET_CAPTURE> $flags PREG_OFFSET_CAPTURE is supported, PREG_UNMATCHED_AS_NULL is always set
-     */
-    public static function replaceCallbackStrictGroups($pattern, callable $replacement, $subject, int $limit = -1, int $flags = 0): ReplaceResult
-    {
-        $result = Preg::replaceCallbackStrictGroups($pattern, $replacement, $subject, $limit, $count, $flags);
-
-        return new ReplaceResult($count, $result);
-    }
-
-    /**
-     * @param ($flags is PREG_OFFSET_CAPTURE ? (array<string, callable(array<int|string, array{string|null, int<-1, max>}>): string>) : array<string, callable(array<int|string, string|null>): string>) $pattern
-     * @param string $subject
-     * @param int-mask<PREG_UNMATCHED_AS_NULL|PREG_OFFSET_CAPTURE> $flags PREG_OFFSET_CAPTURE is supported, PREG_UNMATCHED_AS_NULL is always set
-     */
-    public static function replaceCallbackArray(array $pattern, $subject, int $limit = -1, int $flags = 0): ReplaceResult
-    {
-        $result = Preg::replaceCallbackArray($pattern, $subject, $limit, $count, $flags);
-
-        return new ReplaceResult($count, $result);
-    }
-
-    private static function checkOffsetCapture(int $flags, string $useFunctionName): void
-    {
-        if (($flags & PREG_OFFSET_CAPTURE) !== 0) {
-            throw new \InvalidArgumentException('PREG_OFFSET_CAPTURE is not supported as it changes the return type, use '.$useFunctionName.'() instead');
-        }
-    }
-
-    private static function checkSetOrder(int $flags): void
-    {
-        if (($flags & PREG_SET_ORDER) !== 0) {
-            throw new \InvalidArgumentException('PREG_SET_ORDER is not supported as it changes the return type');
-        }
-    }
-}

+ 0 - 43
vendor/composer/pcre/src/ReplaceResult.php

@@ -1,43 +0,0 @@
-<?php
-
-/*
- * This file is part of composer/pcre.
- *
- * (c) Composer <https://github.com/composer>
- *
- * For the full copyright and license information, please view
- * the LICENSE file that was distributed with this source code.
- */
-
-namespace Composer\Pcre;
-
-final class ReplaceResult
-{
-    /**
-     * @readonly
-     * @var string
-     */
-    public $result;
-
-    /**
-     * @readonly
-     * @var 0|positive-int
-     */
-    public $count;
-
-    /**
-     * @readonly
-     * @var bool
-     */
-    public $matched;
-
-    /**
-     * @param 0|positive-int $count
-     */
-    public function __construct(int $count, string $result)
-    {
-        $this->count = $count;
-        $this->matched = (bool) $count;
-        $this->result = $result;
-    }
-}

+ 0 - 20
vendor/composer/pcre/src/UnexpectedNullMatchException.php

@@ -1,20 +0,0 @@
-<?php
-
-/*
- * This file is part of composer/pcre.
- *
- * (c) Composer <https://github.com/composer>
- *
- * For the full copyright and license information, please view
- * the LICENSE file that was distributed with this source code.
- */
-
-namespace Composer\Pcre;
-
-class UnexpectedNullMatchException extends PcreException
-{
-    public static function fromFunction($function, $pattern)
-    {
-        throw new \LogicException('fromFunction should not be called on '.self::class.', use '.PcreException::class);
-    }
-}

+ 0 - 26
vendor/composer/platform_check.php

@@ -1,26 +0,0 @@
-<?php
-
-// platform_check.php @generated by Composer
-
-$issues = array();
-
-if (!(PHP_VERSION_ID >= 80100)) {
-    $issues[] = 'Your Composer dependencies require a PHP version ">= 8.1.0". You are running ' . PHP_VERSION . '.';
-}
-
-if ($issues) {
-    if (!headers_sent()) {
-        header('HTTP/1.1 500 Internal Server Error');
-    }
-    if (!ini_get('display_errors')) {
-        if (PHP_SAPI === 'cli' || PHP_SAPI === 'phpdbg') {
-            fwrite(STDERR, 'Composer detected issues in your platform:' . PHP_EOL.PHP_EOL . implode(PHP_EOL, $issues) . PHP_EOL.PHP_EOL);
-        } elseif (!headers_sent()) {
-            echo 'Composer detected issues in your platform:' . PHP_EOL.PHP_EOL . str_replace('You are running '.PHP_VERSION.'.', '', implode(PHP_EOL, $issues)) . PHP_EOL.PHP_EOL;
-        }
-    }
-    trigger_error(
-        'Composer detected issues in your platform: ' . implode(' ', $issues),
-        E_USER_ERROR
-    );
-}

+ 0 - 214
vendor/composer/semver/CHANGELOG.md

@@ -1,214 +0,0 @@
-# Change Log
-
-All notable changes to this project will be documented in this file.
-This project adheres to [Semantic Versioning](http://semver.org/).
-
-### [3.4.0] 2023-08-31
-
-  * Support larger major version numbers (#149)
-
-### [3.3.2] 2022-04-01
-
-  * Fixed handling of non-string values (#134)
-
-### [3.3.1] 2022-03-16
-
-  * Fixed possible cache key clash in the CompilingMatcher memoization (#132)
-
-### [3.3.0] 2022-03-15
-
-  * Improved performance of CompilingMatcher by memoizing more (#131)
-  * Added CompilingMatcher::clear to clear all memoization caches
-
-### [3.2.9] 2022-02-04
-
-  * Revert #129 (Fixed MultiConstraint with MatchAllConstraint) which caused regressions
-
-### [3.2.8] 2022-02-04
-
-  * Updates to latest phpstan / CI by @Seldaek in https://github.com/composer/semver/pull/130
-  * Fixed MultiConstraint with MatchAllConstraint by @Toflar in https://github.com/composer/semver/pull/129
-
-### [3.2.7] 2022-01-04
-
-  * Fixed: typo in type definition of Intervals class causing issues with Psalm scanning vendors
-
-### [3.2.6] 2021-10-25
-
-  * Fixed: type improvements to parseStability
-
-### [3.2.5] 2021-05-24
-
-  * Fixed: issue comparing disjunctive MultiConstraints to conjunctive ones (#127)
-  * Fixed: added complete type information using phpstan annotations
-
-### [3.2.4] 2020-11-13
-
-  * Fixed: code clean-up
-
-### [3.2.3] 2020-11-12
-
-  * Fixed: constraints in the form of `X || Y, >=Y.1` and other such complex constructs were in some cases being optimized into a more restrictive constraint
-
-### [3.2.2] 2020-10-14
-
-  * Fixed: internal code cleanups
-
-### [3.2.1] 2020-09-27
-
-  * Fixed: accidental validation of broken constraints combining ^/~ and wildcards, and -dev suffix allowing weird cases
-  * Fixed: normalization of beta0 and such which was dropping the 0
-
-### [3.2.0] 2020-09-09
-
-  * Added: support for `x || @dev`, not very useful but seen in the wild and failed to validate with 1.5.2/1.6.0
-  * Added: support for `foobar-dev` being equal to `dev-foobar`, dev-foobar is the official way to write it but we need to support the other for BC and convenience
-
-### [3.1.0] 2020-09-08
-
-  * Added: support for constraints like `^2.x-dev` and `~2.x-dev`, not very useful but seen in the wild and failed to validate with 3.0.1
-  * Fixed: invalid aliases will no longer throw, unless explicitly validated by Composer in the root package
-
-### [3.0.1] 2020-09-08
-
-  * Fixed: handling of some invalid -dev versions which were seen as valid
-
-### [3.0.0] 2020-05-26
-
-  * Break: Renamed `EmptyConstraint`, replace it with `MatchAllConstraint`
-  * Break: Unlikely to affect anyone but strictly speaking a breaking change, `*.*` and such variants will not match all `dev-*` versions anymore, only `*` does
-  * Break: ConstraintInterface is now considered internal/private and not meant to be implemented by third parties anymore
-  * Added `Intervals` class to check if a constraint is a subsets of another one, and allow compacting complex MultiConstraints into simpler ones
-  * Added `CompilingMatcher` class to speed up constraint matching against simple Constraint instances
-  * Added `MatchAllConstraint` and `MatchNoneConstraint` which match everything and nothing
-  * Added more advanced optimization of contiguous constraints inside MultiConstraint
-  * Added tentative support for PHP 8
-  * Fixed ConstraintInterface::matches to be commutative in all cases
-
-### [2.0.0] 2020-04-21
-
-  * Break: `dev-master`, `dev-trunk` and `dev-default` now normalize to `dev-master`, `dev-trunk` and `dev-default` instead of `9999999-dev` in 1.x
-  * Break: Removed the deprecated `AbstractConstraint`
-  * Added `getUpperBound` and `getLowerBound` to ConstraintInterface. They return `Composer\Semver\Constraint\Bound` instances
-  * Added `MultiConstraint::create` to create the most-optimal form of ConstraintInterface from an array of constraint strings
-
-### [1.7.2] 2020-12-03
-
-  * Fixed: Allow installing on php 8
-
-### [1.7.1] 2020-09-27
-
-  * Fixed: accidental validation of broken constraints combining ^/~ and wildcards, and -dev suffix allowing weird cases
-  * Fixed: normalization of beta0 and such which was dropping the 0
-
-### [1.7.0] 2020-09-09
-
-  * Added: support for `x || @dev`, not very useful but seen in the wild and failed to validate with 1.5.2/1.6.0
-  * Added: support for `foobar-dev` being equal to `dev-foobar`, dev-foobar is the official way to write it but we need to support the other for BC and convenience
-
-### [1.6.0] 2020-09-08
-
-  * Added: support for constraints like `^2.x-dev` and `~2.x-dev`, not very useful but seen in the wild and failed to validate with 1.5.2
-  * Fixed: invalid aliases will no longer throw, unless explicitly validated by Composer in the root package
-
-### [1.5.2] 2020-09-08
-
-  * Fixed: handling of some invalid -dev versions which were seen as valid
-  * Fixed: some doctypes
-
-### [1.5.1] 2020-01-13
-
-  * Fixed: Parsing of aliased version was not validating the alias to be a valid version
-
-### [1.5.0] 2019-03-19
-
-  * Added: some support for date versions (e.g. 201903) in `~` operator
-  * Fixed: support for stabilities in `~` operator was inconsistent
-
-### [1.4.2] 2016-08-30
-
-  * Fixed: collapsing of complex constraints lead to buggy constraints
-
-### [1.4.1] 2016-06-02
-
-  * Changed: branch-like requirements no longer strip build metadata - [composer/semver#38](https://github.com/composer/semver/pull/38).
-
-### [1.4.0] 2016-03-30
-
-  * Added: getters on MultiConstraint - [composer/semver#35](https://github.com/composer/semver/pull/35).
-
-### [1.3.0] 2016-02-25
-
-  * Fixed: stability parsing - [composer/composer#1234](https://github.com/composer/composer/issues/4889).
-  * Changed: collapse contiguous constraints when possible.
-
-### [1.2.0] 2015-11-10
-
-  * Changed: allow multiple numerical identifiers in 'pre-release' version part.
-  * Changed: add more 'v' prefix support.
-
-### [1.1.0] 2015-11-03
-
-  * Changed: dropped redundant `test` namespace.
-  * Changed: minor adjustment in datetime parsing normalization.
-  * Changed: `ConstraintInterface` relaxed, setPrettyString is not required anymore.
-  * Changed: `AbstractConstraint` marked deprecated, will be removed in 2.0.
-  * Changed: `Constraint` is now extensible.
-
-### [1.0.0] 2015-09-21
-
-  * Break: `VersionConstraint` renamed to `Constraint`.
-  * Break: `SpecificConstraint` renamed to `AbstractConstraint`.
-  * Break: `LinkConstraintInterface` renamed to `ConstraintInterface`.
-  * Break: `VersionParser::parseNameVersionPairs` was removed.
-  * Changed: `VersionParser::parseConstraints` allows (but ignores) build metadata now.
-  * Changed: `VersionParser::parseConstraints` allows (but ignores) prefixing numeric versions with a 'v' now.
-  * Changed: Fixed namespace(s) of test files.
-  * Changed: `Comparator::compare` no longer throws `InvalidArgumentException`.
-  * Changed: `Constraint` now throws `InvalidArgumentException`.
-
-### [0.1.0] 2015-07-23
-
-  * Added: `Composer\Semver\Comparator`, various methods to compare versions.
-  * Added: various documents such as README.md, LICENSE, etc.
-  * Added: configuration files for Git, Travis, php-cs-fixer, phpunit.
-  * Break: the following namespaces were renamed:
-    - Namespace: `Composer\Package\Version` -> `Composer\Semver`
-    - Namespace: `Composer\Package\LinkConstraint` -> `Composer\Semver\Constraint`
-    - Namespace: `Composer\Test\Package\Version` -> `Composer\Test\Semver`
-    - Namespace: `Composer\Test\Package\LinkConstraint` -> `Composer\Test\Semver\Constraint`
-  * Changed: code style using php-cs-fixer.
-
-[3.4.0]: https://github.com/composer/semver/compare/3.3.2...3.4.0
-[3.3.2]: https://github.com/composer/semver/compare/3.3.1...3.3.2
-[3.3.1]: https://github.com/composer/semver/compare/3.3.0...3.3.1
-[3.3.0]: https://github.com/composer/semver/compare/3.2.9...3.3.0
-[3.2.9]: https://github.com/composer/semver/compare/3.2.8...3.2.9
-[3.2.8]: https://github.com/composer/semver/compare/3.2.7...3.2.8
-[3.2.7]: https://github.com/composer/semver/compare/3.2.6...3.2.7
-[3.2.6]: https://github.com/composer/semver/compare/3.2.5...3.2.6
-[3.2.5]: https://github.com/composer/semver/compare/3.2.4...3.2.5
-[3.2.4]: https://github.com/composer/semver/compare/3.2.3...3.2.4
-[3.2.3]: https://github.com/composer/semver/compare/3.2.2...3.2.3
-[3.2.2]: https://github.com/composer/semver/compare/3.2.1...3.2.2
-[3.2.1]: https://github.com/composer/semver/compare/3.2.0...3.2.1
-[3.2.0]: https://github.com/composer/semver/compare/3.1.0...3.2.0
-[3.1.0]: https://github.com/composer/semver/compare/3.0.1...3.1.0
-[3.0.1]: https://github.com/composer/semver/compare/3.0.0...3.0.1
-[3.0.0]: https://github.com/composer/semver/compare/2.0.0...3.0.0
-[2.0.0]: https://github.com/composer/semver/compare/1.5.1...2.0.0
-[1.7.2]: https://github.com/composer/semver/compare/1.7.1...1.7.2
-[1.7.1]: https://github.com/composer/semver/compare/1.7.0...1.7.1
-[1.7.0]: https://github.com/composer/semver/compare/1.6.0...1.7.0
-[1.6.0]: https://github.com/composer/semver/compare/1.5.2...1.6.0
-[1.5.2]: https://github.com/composer/semver/compare/1.5.1...1.5.2
-[1.5.1]: https://github.com/composer/semver/compare/1.5.0...1.5.1
-[1.5.0]: https://github.com/composer/semver/compare/1.4.2...1.5.0
-[1.4.2]: https://github.com/composer/semver/compare/1.4.1...1.4.2
-[1.4.1]: https://github.com/composer/semver/compare/1.4.0...1.4.1
-[1.4.0]: https://github.com/composer/semver/compare/1.3.0...1.4.0
-[1.3.0]: https://github.com/composer/semver/compare/1.2.0...1.3.0
-[1.2.0]: https://github.com/composer/semver/compare/1.1.0...1.2.0
-[1.1.0]: https://github.com/composer/semver/compare/1.0.0...1.1.0
-[1.0.0]: https://github.com/composer/semver/compare/0.1.0...1.0.0
-[0.1.0]: https://github.com/composer/semver/compare/5e0b9a4da...0.1.0

+ 0 - 19
vendor/composer/semver/LICENSE

@@ -1,19 +0,0 @@
-Copyright (C) 2015 Composer
-
-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.

+ 0 - 99
vendor/composer/semver/README.md

@@ -1,99 +0,0 @@
-composer/semver
-===============
-
-Semver (Semantic Versioning) library that offers utilities, version constraint parsing and validation.
-
-Originally written as part of [composer/composer](https://github.com/composer/composer),
-now extracted and made available as a stand-alone library.
-
-[![Continuous Integration](https://github.com/composer/semver/actions/workflows/continuous-integration.yml/badge.svg?branch=main)](https://github.com/composer/semver/actions/workflows/continuous-integration.yml)
-[![PHP Lint](https://github.com/composer/semver/actions/workflows/lint.yml/badge.svg?branch=main)](https://github.com/composer/semver/actions/workflows/lint.yml)
-[![PHPStan](https://github.com/composer/semver/actions/workflows/phpstan.yml/badge.svg?branch=main)](https://github.com/composer/semver/actions/workflows/phpstan.yml)
-
-Installation
-------------
-
-Install the latest version with:
-
-```bash
-composer require composer/semver
-```
-
-
-Requirements
-------------
-
-* PHP 5.3.2 is required but using the latest version of PHP is highly recommended.
-
-
-Version Comparison
-------------------
-
-For details on how versions are compared, refer to the [Versions](https://getcomposer.org/doc/articles/versions.md)
-article in the documentation section of the [getcomposer.org](https://getcomposer.org) website.
-
-
-Basic usage
------------
-
-### Comparator
-
-The [`Composer\Semver\Comparator`](https://github.com/composer/semver/blob/main/src/Comparator.php) class provides the following methods for comparing versions:
-
-* greaterThan($v1, $v2)
-* greaterThanOrEqualTo($v1, $v2)
-* lessThan($v1, $v2)
-* lessThanOrEqualTo($v1, $v2)
-* equalTo($v1, $v2)
-* notEqualTo($v1, $v2)
-
-Each function takes two version strings as arguments and returns a boolean. For example:
-
-```php
-use Composer\Semver\Comparator;
-
-Comparator::greaterThan('1.25.0', '1.24.0'); // 1.25.0 > 1.24.0
-```
-
-### Semver
-
-The [`Composer\Semver\Semver`](https://github.com/composer/semver/blob/main/src/Semver.php) class provides the following methods:
-
-* satisfies($version, $constraints)
-* satisfiedBy(array $versions, $constraint)
-* sort($versions)
-* rsort($versions)
-
-### Intervals
-
-The [`Composer\Semver\Intervals`](https://github.com/composer/semver/blob/main/src/Intervals.php) static class provides
-a few utilities to work with complex constraints or read version intervals from a constraint:
-
-```php
-use Composer\Semver\Intervals;
-
-// Checks whether $candidate is a subset of $constraint
-Intervals::isSubsetOf(ConstraintInterface $candidate, ConstraintInterface $constraint);
-
-// Checks whether $a and $b have any intersection, equivalent to $a->matches($b)
-Intervals::haveIntersections(ConstraintInterface $a, ConstraintInterface $b);
-
-// Optimizes a complex multi constraint by merging all intervals down to the smallest
-// possible multi constraint. The drawbacks are this is not very fast, and the resulting
-// multi constraint will have no human readable prettyConstraint configured on it
-Intervals::compactConstraint(ConstraintInterface $constraint);
-
-// Creates an array of numeric intervals and branch constraints representing a given constraint
-Intervals::get(ConstraintInterface $constraint);
-
-// Clears the memoization cache when you are done processing constraints
-Intervals::clear()
-```
-
-See the class docblocks for more details.
-
-
-License
--------
-
-composer/semver is licensed under the MIT License, see the LICENSE file for details.

+ 0 - 59
vendor/composer/semver/composer.json

@@ -1,59 +0,0 @@
-{
-    "name": "composer/semver",
-    "description": "Semver library that offers utilities, version constraint parsing and validation.",
-    "type": "library",
-    "license": "MIT",
-    "keywords": [
-        "semver",
-        "semantic",
-        "versioning",
-        "validation"
-    ],
-    "authors": [
-        {
-            "name": "Nils Adermann",
-            "email": "naderman@naderman.de",
-            "homepage": "http://www.naderman.de"
-        },
-        {
-            "name": "Jordi Boggiano",
-            "email": "j.boggiano@seld.be",
-            "homepage": "http://seld.be"
-        },
-        {
-            "name": "Rob Bast",
-            "email": "rob.bast@gmail.com",
-            "homepage": "http://robbast.nl"
-        }
-    ],
-    "support": {
-        "irc": "ircs://irc.libera.chat:6697/composer",
-        "issues": "https://github.com/composer/semver/issues"
-    },
-    "require": {
-        "php": "^5.3.2 || ^7.0 || ^8.0"
-    },
-    "require-dev": {
-        "symfony/phpunit-bridge": "^4.2 || ^5",
-        "phpstan/phpstan": "^1.4"
-    },
-    "autoload": {
-        "psr-4": {
-            "Composer\\Semver\\": "src"
-        }
-    },
-    "autoload-dev": {
-        "psr-4": {
-            "Composer\\Semver\\": "tests"
-        }
-    },
-    "extra": {
-        "branch-alias": {
-            "dev-main": "3.x-dev"
-        }
-    },
-    "scripts": {
-        "test": "SYMFONY_PHPUNIT_REMOVE_RETURN_TYPEHINT=1 vendor/bin/simple-phpunit",
-        "phpstan": "@php vendor/bin/phpstan analyse"
-    }
-}

+ 0 - 11
vendor/composer/semver/phpstan-baseline.neon

@@ -1,11 +0,0 @@
-parameters:
-	ignoreErrors:
-		-
-			message: "#^Parameter \\#1 \\$operator of class Composer\\\\Semver\\\\Constraint\\\\Constraint constructor expects '\\!\\='\\|'\\<'\\|'\\<\\='\\|'\\<\\>'\\|'\\='\\|'\\=\\='\\|'\\>'\\|'\\>\\=', non\\-falsy\\-string given\\.$#"
-			count: 1
-			path: src/VersionParser.php
-
-		-
-			message: "#^Strict comparison using \\=\\=\\= between null and non\\-empty\\-string will always evaluate to false\\.$#"
-			count: 2
-			path: src/VersionParser.php

+ 0 - 113
vendor/composer/semver/src/Comparator.php

@@ -1,113 +0,0 @@
-<?php
-
-/*
- * This file is part of composer/semver.
- *
- * (c) Composer <https://github.com/composer>
- *
- * For the full copyright and license information, please view
- * the LICENSE file that was distributed with this source code.
- */
-
-namespace Composer\Semver;
-
-use Composer\Semver\Constraint\Constraint;
-
-class Comparator
-{
-    /**
-     * Evaluates the expression: $version1 > $version2.
-     *
-     * @param string $version1
-     * @param string $version2
-     *
-     * @return bool
-     */
-    public static function greaterThan($version1, $version2)
-    {
-        return self::compare($version1, '>', $version2);
-    }
-
-    /**
-     * Evaluates the expression: $version1 >= $version2.
-     *
-     * @param string $version1
-     * @param string $version2
-     *
-     * @return bool
-     */
-    public static function greaterThanOrEqualTo($version1, $version2)
-    {
-        return self::compare($version1, '>=', $version2);
-    }
-
-    /**
-     * Evaluates the expression: $version1 < $version2.
-     *
-     * @param string $version1
-     * @param string $version2
-     *
-     * @return bool
-     */
-    public static function lessThan($version1, $version2)
-    {
-        return self::compare($version1, '<', $version2);
-    }
-
-    /**
-     * Evaluates the expression: $version1 <= $version2.
-     *
-     * @param string $version1
-     * @param string $version2
-     *
-     * @return bool
-     */
-    public static function lessThanOrEqualTo($version1, $version2)
-    {
-        return self::compare($version1, '<=', $version2);
-    }
-
-    /**
-     * Evaluates the expression: $version1 == $version2.
-     *
-     * @param string $version1
-     * @param string $version2
-     *
-     * @return bool
-     */
-    public static function equalTo($version1, $version2)
-    {
-        return self::compare($version1, '==', $version2);
-    }
-
-    /**
-     * Evaluates the expression: $version1 != $version2.
-     *
-     * @param string $version1
-     * @param string $version2
-     *
-     * @return bool
-     */
-    public static function notEqualTo($version1, $version2)
-    {
-        return self::compare($version1, '!=', $version2);
-    }
-
-    /**
-     * Evaluates the expression: $version1 $operator $version2.
-     *
-     * @param string $version1
-     * @param string $operator
-     * @param string $version2
-     *
-     * @return bool
-     *
-     * @phpstan-param Constraint::STR_OP_*  $operator
-     */
-    public static function compare($version1, $operator, $version2)
-    {
-        $constraint = new Constraint($operator, $version2);
-
-        return $constraint->matchSpecific(new Constraint('==', $version1), true);
-    }
-}

Some files were not shown because too many files changed in this diff