diff --git a/.dockerignore b/.dockerignore
index 4a53375..fe29058 100644
--- a/.dockerignore
+++ b/.dockerignore
@@ -3,6 +3,7 @@
.github
docs
tests
+var
vendor
.gitattributes
.gitignore
diff --git a/.env b/.env
new file mode 100644
index 0000000..7f52f8f
--- /dev/null
+++ b/.env
@@ -0,0 +1,25 @@
+# In all environments, the following files are loaded if they exist,
+# the latter taking precedence over the former:
+#
+# * .env contains default values for the environment variables needed by the app
+# * .env.local uncommitted file with local overrides
+# * .env.$APP_ENV committed environment-specific defaults
+# * .env.$APP_ENV.local uncommitted environment-specific overrides
+#
+# Real environment variables win over .env files.
+#
+# DO NOT DEFINE PRODUCTION SECRETS IN THIS FILE NOR IN ANY OTHER COMMITTED FILES.
+#
+# Run "composer dump-env prod" to compile .env files for production use (requires symfony/flex >=1.2).
+# https://symfony.com/doc/current/best_practices.html#use-environment-variables-for-infrastructure-configuration
+
+###> symfony/framework-bundle ###
+APP_ENV=dev
+APP_SECRET=7c227fa2152043dfcff04a2ffe103321
+#TRUSTED_PROXIES=127.0.0.0/8,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16
+#TRUSTED_HOSTS='^(localhost|example\.com)$'
+###< symfony/framework-bundle ###
+
+###> app ###
+API_TOKEN=abcxyz
+###> app ###
\ No newline at end of file
diff --git a/.env.test b/.env.test
new file mode 100644
index 0000000..757e607
--- /dev/null
+++ b/.env.test
@@ -0,0 +1,8 @@
+# define your env variables for the test env here
+KERNEL_CLASS='App\Tests\Kernel'
+APP_SECRET='$ecretf0rt3st'
+SYMFONY_DEPRECATIONS_HELPER=999999
+PANTHER_APP_ENV=panther
+
+# App env
+API_TOKEN=abcxyz
diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml
index b409a5e..e65267a 100644
--- a/.github/workflows/main.yml
+++ b/.github/workflows/main.yml
@@ -7,14 +7,15 @@ jobs:
name: PHP Tests
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v1
+ - uses: actions/checkout@v2
with:
fetch-depth: 1
- name: Setup PHP
- uses: shivammathur/setup-php@1.1.1
+ uses: shivammathur/setup-php@v2
with:
- php-version: 7.1
+ php-version: 7.3
+ extensions: pcntl
- run: composer install
- - run: vendor/bin/phpunit
+ - run: php bin/phpunit
env:
MOCK_URL: ${{ secrets.MockServer }}
diff --git a/.gitignore b/.gitignore
index 7170313..65b8433 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,6 +1,21 @@
+
+###> symfony/framework-bundle ###
+/.env.local
+/.env.local.php
+/.env.*.local
+/config/secrets/prod/prod.decrypt.private.php
+/public/bundles/
+/var/
/vendor/
-/logs/*
-!/logs/README.md
-/.php_cs.cache
+###< symfony/framework-bundle ###
+
+###> symfony/phpunit-bridge ###
+.phpunit
+.phpunit.result.cache
+/phpunit.xml
+###< symfony/phpunit-bridge ###
+
+###> App ###
/.idea/
-/phpunit.xml
\ No newline at end of file
+/.php_cs.cache
+###< App ###
\ No newline at end of file
diff --git a/Dockerfile b/Dockerfile
index 5480314..f4cdbfc 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,4 +1,4 @@
-FROM php:7.3-alpine AS build-env
+FROM php:7.4-alpine AS build-env
LABEL owner="Giancarlos Salas"
LABEL maintainer="giansalex@gmail.com"
@@ -13,28 +13,25 @@ RUN apk update && apk add --no-cache \
COPY . .
-RUN cp -f docker/.htaccess . && \
- cp -f docker/settings.php src/ && \
- rm -rf docker
-
RUN composer install --no-interaction --no-dev --optimize-autoloader --ignore-platform-reqs && \
- composer dump-autoload --optimize --no-dev --classmap-authoritative && \
- find vendor/ -type f ! -name "*.php" -delete
+ composer dump-autoload --optimize --no-dev --classmap-authoritative
-FROM php:7.3-apache
+FROM php:7.4-alpine
+ENV APP_ENV prod
ENV API_TOKEN abcxyz
+EXPOSE 8080
+WORKDIR /var/www
-RUN apt-get update && \
+RUN apk update && \
docker-php-ext-configure opcache --enable-opcache && \
docker-php-ext-install opcache && \
- apt-get clean && \
- rm -rf /var/lib/apt/lists/*
+ docker-php-ext-install pcntl
# Copy configuration
COPY docker/config/opcache.ini $PHP_INI_DIR/conf.d/
-RUN a2enmod rewrite
+COPY docker/docker-entrypoint.sh .
-COPY --from=build-env /app /var/www/html
+COPY --from=build-env /app .
-VOLUME /var/www/html/logs
\ No newline at end of file
+CMD ["sh", "./docker-entrypoint.sh"]
\ No newline at end of file
diff --git a/README.md b/README.md
index 0bdef4f..4cb62a0 100644
--- a/README.md
+++ b/README.md
@@ -9,8 +9,8 @@ API para consultar el DNI y RUC - Perú, empleando [peru-consult](https://github
## Requerimientos
-- PHP 7.1 o superior.
-- ext-dom
+- PHP 7.3 o superior.
+- `ext-pcntl`
## Instalar
@@ -18,7 +18,7 @@ API para consultar el DNI y RUC - Perú, empleando [peru-consult](https://github
Usar la imagen desde [Docker Hub](https://hub.docker.com/r/giansalex/peru-consult-api/)
```bash
-docker pull giansalex/peru-consult-api
+docker run -d -p 8080:8080 --name peru-consult -e API_TOKEN=your_key giansalex/peru-consult-api
```
### Clonar Repositorio
@@ -27,7 +27,7 @@ docker pull giansalex/peru-consult-api
git clone https://github.com/giansalex/peru-consult-api.git
cd peru-consult-api
composer install
-php -S 127.0.0.1:8090 -t public
+vendor/bin/server watch 0.0.0.0:8080 --adapter=App\\AppKernelAdapter
```
### Desplegar en Heroku
@@ -74,7 +74,7 @@ Respuesta:
### DNI
Ejecutar usando Curl.
```bash
-curl -H "Accept: application/json" http://localhost:8090/api/v1/dni/48004836?token=abcxyz
+curl -H "Accept: application/json" http://localhost:8080/api/v1/dni/48004836?token=abcxyz
```
Respuesta:
@@ -92,7 +92,7 @@ Respuesta:
### RUC
Ejecutar usando Curl.
```bash
-curl -H "Accept: application/json" http://localhost:8090/api/v1/ruc/20131312955?token=abcxyz
+curl -H "Accept: application/json" http://localhost:8080/api/v1/ruc/20131312955?token=abcxyz
```
Respuesta:
@@ -151,7 +151,7 @@ Respuesta:
### Consulta Validez Usuario SOL
Ejecutar usando Curl.
```bash
-curl http://localhost:8090/api/v1/user-sol/20000000001/GMABCI?token=abcxyz
+curl http://localhost:8080/api/v1/user-sol/20000000001/GMABCI?token=abcxyz
```
Respuesta:
diff --git a/bin/console b/bin/console
new file mode 100644
index 0000000..5de0e1c
--- /dev/null
+++ b/bin/console
@@ -0,0 +1,42 @@
+#!/usr/bin/env php
+getParameterOption(['--env', '-e'], null, true)) {
+ putenv('APP_ENV='.$_SERVER['APP_ENV'] = $_ENV['APP_ENV'] = $env);
+}
+
+if ($input->hasParameterOption('--no-debug', true)) {
+ putenv('APP_DEBUG='.$_SERVER['APP_DEBUG'] = $_ENV['APP_DEBUG'] = '0');
+}
+
+require dirname(__DIR__).'/config/bootstrap.php';
+
+if ($_SERVER['APP_DEBUG']) {
+ umask(0000);
+
+ if (class_exists(Debug::class)) {
+ Debug::enable();
+ }
+}
+
+$kernel = new Kernel($_SERVER['APP_ENV'], (bool) $_SERVER['APP_DEBUG']);
+$application = new Application($kernel);
+$application->run($input);
diff --git a/bin/phpunit b/bin/phpunit
new file mode 100644
index 0000000..4d1ed05
--- /dev/null
+++ b/bin/phpunit
@@ -0,0 +1,13 @@
+#!/usr/bin/env php
+=7.2"
+ },
+ "require-dev": {
+ "nunomaduro/collision": "^3.0",
+ "phpunit/phpunit": "^8.0",
+ "react/event-loop": "^1.1",
+ "symfony/var-dumper": "^4.2"
},
"type": "library",
"autoload": {
"psr-4": {
- "Interop\\Container\\": "src/Interop/Container/"
+ "AlecRabbit\\Snake\\": "src\\Snake"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
- "description": "Promoting the interoperability of container objects (DIC, SL, etc.)",
- "homepage": "https://github.com/container-interop/container-interop",
- "time": "2017-02-14T19:40:03+00:00"
+ "description": "Lightweight cli spinner with zero dependencies",
+ "keywords": [
+ "256color",
+ "8bit",
+ "ansi",
+ "cli",
+ "color",
+ "colorful",
+ "console",
+ "php",
+ "snake",
+ "spinner"
+ ],
+ "time": "2019-11-01T19:34:36+00:00"
},
{
- "name": "evenement/evenement",
- "version": "v3.0.1",
+ "name": "cakephp/core",
+ "version": "3.8.11",
"source": {
"type": "git",
- "url": "https://github.com/igorw/evenement.git",
- "reference": "531bfb9d15f8aa57454f5f0285b18bec903b8fb7"
+ "url": "https://github.com/cakephp/core.git",
+ "reference": "16249fa6771663e6649cbdb832f7ff25bf568b84"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/igorw/evenement/zipball/531bfb9d15f8aa57454f5f0285b18bec903b8fb7",
- "reference": "531bfb9d15f8aa57454f5f0285b18bec903b8fb7",
+ "url": "https://api.github.com/repos/cakephp/core/zipball/16249fa6771663e6649cbdb832f7ff25bf568b84",
+ "reference": "16249fa6771663e6649cbdb832f7ff25bf568b84",
"shasum": ""
},
"require": {
- "php": ">=7.0"
+ "cakephp/utility": "^3.6.0",
+ "php": ">=5.6.0"
},
- "require-dev": {
- "phpunit/phpunit": "^6.0"
+ "suggest": {
+ "cakephp/cache": "To use Configure::store() and restore().",
+ "cakephp/event": "To use PluginApplicationInterface or plugin applications."
},
"type": "library",
"autoload": {
- "psr-0": {
- "Evenement": "src"
- }
+ "psr-4": {
+ "Cake\\Core\\": "."
+ },
+ "files": [
+ "functions.php"
+ ]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
@@ -69,49 +91,49 @@
],
"authors": [
{
- "name": "Igor Wiedler",
- "email": "igor@wiedler.ch"
+ "name": "CakePHP Community",
+ "homepage": "https://github.com/cakephp/core/graphs/contributors"
}
],
- "description": "Événement is a very simple event dispatching library for PHP",
+ "description": "CakePHP Framework Core classes",
+ "homepage": "https://cakephp.org",
"keywords": [
- "event-dispatcher",
- "event-emitter"
+ "cakephp",
+ "core",
+ "framework"
],
- "time": "2017-07-23T21:35:13+00:00"
+ "time": "2020-01-10T15:24:40+00:00"
},
{
- "name": "giansalex/peru-consult",
- "version": "v4.1.0",
+ "name": "cakephp/utility",
+ "version": "3.8.11",
"source": {
"type": "git",
- "url": "https://github.com/giansalex/peru-consult.git",
- "reference": "48d00e709dc9995060c1a8321f18a00134c958e4"
+ "url": "https://github.com/cakephp/utility.git",
+ "reference": "9f121defbff4b5f3691b33de8cb203b8923fc2a4"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/giansalex/peru-consult/zipball/48d00e709dc9995060c1a8321f18a00134c958e4",
- "reference": "48d00e709dc9995060c1a8321f18a00134c958e4",
+ "url": "https://api.github.com/repos/cakephp/utility/zipball/9f121defbff4b5f3691b33de8cb203b8923fc2a4",
+ "reference": "9f121defbff4b5f3691b33de8cb203b8923fc2a4",
"shasum": ""
},
"require": {
- "ext-dom": "*",
- "ext-json": "*",
- "ext-libxml": "*",
- "php": "^7.1",
- "react/http-client": "^0.5.9"
+ "cakephp/core": "^3.6.0",
+ "php": ">=5.6.0"
},
- "require-dev": {
- "behat/behat": "^3.5",
- "clue/block-react": "^1.3",
- "phpstan/phpstan": "^0.11.15",
- "phpunit/phpunit": "^7"
+ "suggest": {
+ "ext-intl": "To use Text::transliterate() or Text::slug()",
+ "lib-ICU": "To use Text::transliterate() or Text::slug()"
},
"type": "library",
"autoload": {
"psr-4": {
- "Peru\\": "src/Peru/"
- }
+ "Cake\\Utility\\": "."
+ },
+ "files": [
+ "bootstrap.php"
+ ]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
@@ -119,50 +141,49 @@
],
"authors": [
{
- "name": "Giancarlos Salas",
- "email": "giansalex@gmail.com"
+ "name": "CakePHP Community",
+ "homepage": "https://github.com/cakephp/utility/graphs/contributors"
}
],
- "description": "Consultas gratuita de RUC y DNI en Perú",
- "homepage": "https://github.com/giansalex/peru-consult",
+ "description": "CakePHP Utility classes such as Inflector, String, Hash, and Security",
+ "homepage": "https://cakephp.org",
"keywords": [
- "DNI",
- "clave-sol",
- "peru",
- "reniec",
- "ruc",
- "sunat"
- ],
- "time": "2019-10-19T03:28:25+00:00"
+ "cakephp",
+ "hash",
+ "inflector",
+ "security",
+ "string",
+ "utility"
+ ],
+ "time": "2020-02-18T01:57:35+00:00"
},
{
- "name": "katzgrau/klogger",
- "version": "1.2.1",
+ "name": "clue/block-react",
+ "version": "v1.3.1",
"source": {
"type": "git",
- "url": "https://github.com/katzgrau/KLogger.git",
- "reference": "a4ed373fa8a214aa4ae7aa4f221fe2c6ce862ef1"
+ "url": "https://github.com/clue/reactphp-block.git",
+ "reference": "2f516b28259c203d67c4c963772dd7e9db652737"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/katzgrau/KLogger/zipball/a4ed373fa8a214aa4ae7aa4f221fe2c6ce862ef1",
- "reference": "a4ed373fa8a214aa4ae7aa4f221fe2c6ce862ef1",
+ "url": "https://api.github.com/repos/clue/reactphp-block/zipball/2f516b28259c203d67c4c963772dd7e9db652737",
+ "reference": "2f516b28259c203d67c4c963772dd7e9db652737",
"shasum": ""
},
"require": {
"php": ">=5.3",
- "psr/log": "^1.0.0"
+ "react/event-loop": "^1.0 || ^0.5 || ^0.4 || ^0.3.5",
+ "react/promise": "^2.7 || ^1.2.1",
+ "react/promise-timer": "^1.5"
},
"require-dev": {
- "phpunit/phpunit": "4.0.*"
+ "phpunit/phpunit": "^6.4 || ^5.7 || ^4.8.35"
},
"type": "library",
"autoload": {
- "psr-4": {
- "Katzgrau\\KLogger\\": "src/"
- },
- "classmap": [
- "src/"
+ "files": [
+ "src/functions_include.php"
]
},
"notification-url": "https://packagist.org/downloads/",
@@ -171,151 +192,174 @@
],
"authors": [
{
- "name": "Kenny Katzgrau",
- "email": "katzgrau@gmail.com"
- },
- {
- "name": "Dan Horrigan",
- "email": "dan@dhorrigan.com"
+ "name": "Christian Lück",
+ "email": "christian@lueck.tv"
}
],
- "description": "A Simple Logging Class",
+ "description": "Lightweight library that eases integrating async components built for ReactPHP in a traditional, blocking environment.",
+ "homepage": "https://github.com/clue/reactphp-block",
"keywords": [
- "logging"
+ "async",
+ "await",
+ "blocking",
+ "event loop",
+ "promise",
+ "reactphp",
+ "sleep",
+ "synchronous"
],
- "time": "2016-11-07T19:29:14+00:00"
+ "time": "2019-04-09T11:45:04+00:00"
},
{
- "name": "neomerx/cors-psr7",
- "version": "v1.0.13",
+ "name": "clue/stream-filter",
+ "version": "v1.4.1",
"source": {
"type": "git",
- "url": "https://github.com/neomerx/cors-psr7.git",
- "reference": "2556e2013f16a55532c95928455257d5b6bbc6e2"
+ "url": "https://github.com/clue/php-stream-filter.git",
+ "reference": "5a58cc30a8bd6a4eb8f856adf61dd3e013f53f71"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/neomerx/cors-psr7/zipball/2556e2013f16a55532c95928455257d5b6bbc6e2",
- "reference": "2556e2013f16a55532c95928455257d5b6bbc6e2",
+ "url": "https://api.github.com/repos/clue/php-stream-filter/zipball/5a58cc30a8bd6a4eb8f856adf61dd3e013f53f71",
+ "reference": "5a58cc30a8bd6a4eb8f856adf61dd3e013f53f71",
"shasum": ""
},
"require": {
- "php": ">=5.6.0",
- "psr/http-message": "^1.0",
- "psr/log": "^1.0"
+ "php": ">=5.3"
},
"require-dev": {
- "mockery/mockery": "^1.0",
- "phpunit/phpunit": "^5.7",
- "scrutinizer/ocular": "^1.1",
- "squizlabs/php_codesniffer": "^3.0"
+ "phpunit/phpunit": "^5.0 || ^4.8"
},
"type": "library",
"autoload": {
"psr-4": {
- "Neomerx\\Cors\\": "src/"
- }
+ "Clue\\StreamFilter\\": "src/"
+ },
+ "files": [
+ "src/functions_include.php"
+ ]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
- "Apache-2.0"
+ "MIT"
],
"authors": [
{
- "name": "neomerx",
- "email": "info@neomerx.com"
+ "name": "Christian Lück",
+ "email": "christian@lueck.tv"
}
],
- "description": "Framework agnostic (PSR-7) CORS implementation (www.w3.org/TR/cors/)",
- "homepage": "https://github.com/neomerx/cors-psr7",
+ "description": "A simple and modern approach to stream filtering in PHP",
+ "homepage": "https://github.com/clue/php-stream-filter",
"keywords": [
- "Cross Origin Resource Sharing",
- "Cross-Origin Resource Sharing",
- "cors",
- "neomerx",
- "psr-7",
- "psr7",
- "w3.org",
- "www.w3.org"
+ "bucket brigade",
+ "callback",
+ "filter",
+ "php_user_filter",
+ "stream",
+ "stream_filter_append",
+ "stream_filter_register"
],
- "time": "2018-05-23T16:10:11+00:00"
+ "time": "2019-04-09T12:31:48+00:00"
},
{
- "name": "nikic/fast-route",
- "version": "v1.3.0",
+ "name": "clue/zlib-react",
+ "version": "v0.2.2",
"source": {
"type": "git",
- "url": "https://github.com/nikic/FastRoute.git",
- "reference": "181d480e08d9476e61381e04a71b34dc0432e812"
+ "url": "https://github.com/clue/reactphp-zlib.git",
+ "reference": "e6a77eee88d8fbf22d1a90530dd0c810fa2d3ad3"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/nikic/FastRoute/zipball/181d480e08d9476e61381e04a71b34dc0432e812",
- "reference": "181d480e08d9476e61381e04a71b34dc0432e812",
+ "url": "https://api.github.com/repos/clue/reactphp-zlib/zipball/e6a77eee88d8fbf22d1a90530dd0c810fa2d3ad3",
+ "reference": "e6a77eee88d8fbf22d1a90530dd0c810fa2d3ad3",
"shasum": ""
},
"require": {
- "php": ">=5.4.0"
+ "clue/stream-filter": "~1.3",
+ "php": ">=5.3",
+ "react/stream": "^1.0 || ^0.7 || ^0.6"
},
"require-dev": {
- "phpunit/phpunit": "^4.8.35|~5.7"
+ "phpunit/phpunit": "^5.0 || ^4.8",
+ "react/event-loop": "^1.0 || ^0.5 || ^0.4 || ^0.3"
+ },
+ "suggest": {
+ "ext-zlib": "Requires ext-zlib extension"
},
"type": "library",
"autoload": {
"psr-4": {
- "FastRoute\\": "src/"
- },
- "files": [
- "src/functions.php"
- ]
+ "Clue\\React\\Zlib\\": "src/"
+ }
},
"notification-url": "https://packagist.org/downloads/",
"license": [
- "BSD-3-Clause"
+ "MIT"
],
"authors": [
{
- "name": "Nikita Popov",
- "email": "nikic@php.net"
+ "name": "Christian Lück",
+ "email": "christian@clue.engineering"
}
],
- "description": "Fast request router for PHP",
+ "description": "Streaming zlib compressor and decompressor for ReactPHP, supporting compression and decompression of GZIP, ZLIB and raw DEFLATE formats.",
+ "homepage": "https://github.com/clue/reactphp-zlib",
"keywords": [
- "router",
- "routing"
+ "RFC 1950",
+ "RFC 1951",
+ "RFC 1952",
+ "compression",
+ "decompression",
+ "deflate",
+ "gz",
+ "gzip",
+ "inflate",
+ "reactphp",
+ "zlib"
+ ],
+ "funding": [
+ {
+ "url": "https://clue.engineering/support",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/clue",
+ "type": "github"
+ }
],
- "time": "2018-02-13T20:26:39+00:00"
+ "time": "2020-04-20T11:34:29+00:00"
},
{
- "name": "pimple/pimple",
- "version": "v3.2.3",
+ "name": "doctrine/inflector",
+ "version": "1.3.1",
"source": {
"type": "git",
- "url": "https://github.com/silexphp/Pimple.git",
- "reference": "9e403941ef9d65d20cba7d54e29fe906db42cf32"
+ "url": "https://github.com/doctrine/inflector.git",
+ "reference": "ec3a55242203ffa6a4b27c58176da97ff0a7aec1"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/silexphp/Pimple/zipball/9e403941ef9d65d20cba7d54e29fe906db42cf32",
- "reference": "9e403941ef9d65d20cba7d54e29fe906db42cf32",
+ "url": "https://api.github.com/repos/doctrine/inflector/zipball/ec3a55242203ffa6a4b27c58176da97ff0a7aec1",
+ "reference": "ec3a55242203ffa6a4b27c58176da97ff0a7aec1",
"shasum": ""
},
"require": {
- "php": ">=5.3.0",
- "psr/container": "^1.0"
+ "php": "^7.1"
},
"require-dev": {
- "symfony/phpunit-bridge": "^3.2"
+ "phpunit/phpunit": "^6.2"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "3.2.x-dev"
+ "dev-master": "1.3.x-dev"
}
},
"autoload": {
- "psr-0": {
- "Pimple": "src/"
+ "psr-4": {
+ "Doctrine\\Common\\Inflector\\": "lib/Doctrine/Common/Inflector"
}
},
"notification-url": "https://packagist.org/downloads/",
@@ -324,44 +368,71 @@
],
"authors": [
{
- "name": "Fabien Potencier",
- "email": "fabien@symfony.com"
+ "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": "Pimple, a simple Dependency Injection Container",
- "homepage": "http://pimple.sensiolabs.org",
+ "description": "Common String Manipulations with regard to casing and singular/plural rules.",
+ "homepage": "http://www.doctrine-project.org",
"keywords": [
- "container",
- "dependency injection"
+ "inflection",
+ "pluralize",
+ "singularize",
+ "string"
],
- "time": "2018-01-21T07:42:36+00:00"
+ "time": "2019-10-30T19:59:35+00:00"
},
{
- "name": "psr/container",
- "version": "1.0.0",
+ "name": "doctrine/instantiator",
+ "version": "1.3.0",
"source": {
"type": "git",
- "url": "https://github.com/php-fig/container.git",
- "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f"
+ "url": "https://github.com/doctrine/instantiator.git",
+ "reference": "ae466f726242e637cebdd526a7d991b9433bacf1"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/php-fig/container/zipball/b7ce3b176482dbbc1245ebf52b181af44c2cf55f",
- "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f",
+ "url": "https://api.github.com/repos/doctrine/instantiator/zipball/ae466f726242e637cebdd526a7d991b9433bacf1",
+ "reference": "ae466f726242e637cebdd526a7d991b9433bacf1",
"shasum": ""
},
"require": {
- "php": ">=5.3.0"
+ "php": "^7.1"
+ },
+ "require-dev": {
+ "doctrine/coding-standard": "^6.0",
+ "ext-pdo": "*",
+ "ext-phar": "*",
+ "phpbench/phpbench": "^0.13",
+ "phpstan/phpstan-phpunit": "^0.11",
+ "phpstan/phpstan-shim": "^0.11",
+ "phpunit/phpunit": "^7.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "1.0.x-dev"
+ "dev-master": "1.2.x-dev"
}
},
"autoload": {
"psr-4": {
- "Psr\\Container\\": "src/"
+ "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/"
}
},
"notification-url": "https://packagist.org/downloads/",
@@ -370,48 +441,41 @@
],
"authors": [
{
- "name": "PHP-FIG",
- "homepage": "http://www.php-fig.org/"
+ "name": "Marco Pivetta",
+ "email": "ocramius@gmail.com",
+ "homepage": "http://ocramius.github.com/"
}
],
- "description": "Common Container Interface (PHP FIG PSR-11)",
- "homepage": "https://github.com/php-fig/container",
+ "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors",
+ "homepage": "https://www.doctrine-project.org/projects/instantiator.html",
"keywords": [
- "PSR-11",
- "container",
- "container-interface",
- "container-interop",
- "psr"
+ "constructor",
+ "instantiate"
],
- "time": "2017-02-14T16:28:37+00:00"
+ "time": "2019-10-21T16:45:58+00:00"
},
{
- "name": "psr/http-factory",
- "version": "1.0.1",
+ "name": "drift/console-bridge",
+ "version": "0.1.0",
"source": {
"type": "git",
- "url": "https://github.com/php-fig/http-factory.git",
- "reference": "12ac7fcd07e5b077433f5f2bee95b3a771bf61be"
+ "url": "https://github.com/driftphp/console-bridge.git",
+ "reference": "3070d4d2686e483b14f7784021e08c408a230b9a"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/php-fig/http-factory/zipball/12ac7fcd07e5b077433f5f2bee95b3a771bf61be",
- "reference": "12ac7fcd07e5b077433f5f2bee95b3a771bf61be",
+ "url": "https://api.github.com/repos/driftphp/console-bridge/zipball/3070d4d2686e483b14f7784021e08c408a230b9a",
+ "reference": "3070d4d2686e483b14f7784021e08c408a230b9a",
"shasum": ""
},
"require": {
- "php": ">=7.0.0",
- "psr/http-message": "^1.0"
+ "php": ">=7.3",
+ "symfony/console": "^5.0"
},
"type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.0.x-dev"
- }
- },
"autoload": {
"psr-4": {
- "Psr\\Http\\Message\\": "src/"
+ "Drift\\Console\\": "."
}
},
"notification-url": "https://packagist.org/downloads/",
@@ -420,49 +484,40 @@
],
"authors": [
{
- "name": "PHP-FIG",
- "homepage": "http://www.php-fig.org/"
+ "name": "Marc Morera",
+ "email": "yuhu@mmoreram.com"
}
],
- "description": "Common interfaces for PSR-7 HTTP message factories",
- "keywords": [
- "factory",
- "http",
- "message",
- "psr",
- "psr-17",
- "psr-7",
- "request",
- "response"
- ],
- "time": "2019-04-30T12:38:16+00:00"
+ "description": "Console bridge for DriftPHP",
+ "time": "2019-12-30T19:58:08+00:00"
},
{
- "name": "psr/http-message",
- "version": "1.0.1",
+ "name": "drift/event-loop-utils",
+ "version": "0.1.0",
"source": {
"type": "git",
- "url": "https://github.com/php-fig/http-message.git",
- "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363"
+ "url": "https://github.com/driftphp/event-loop-utils.git",
+ "reference": "aeb7bf0b5cf397798fc6e872f808bc7325f77d90"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/php-fig/http-message/zipball/f6561bf28d520154e4b0ec72be95418abe6d9363",
- "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363",
+ "url": "https://api.github.com/repos/driftphp/event-loop-utils/zipball/aeb7bf0b5cf397798fc6e872f808bc7325f77d90",
+ "reference": "aeb7bf0b5cf397798fc6e872f808bc7325f77d90",
"shasum": ""
},
"require": {
- "php": ">=5.3.0"
+ "clue/block-react": "^1.3",
+ "php": "^7.3",
+ "react/event-loop": "^1.1",
+ "react/promise": "^2.7"
},
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.0.x-dev"
- }
+ "require-dev": {
+ "phpunit/phpunit": "7.5.17"
},
+ "type": "library",
"autoload": {
"psr-4": {
- "Psr\\Http\\Message\\": "src/"
+ "Drift\\EventLoop\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
@@ -471,50 +526,51 @@
],
"authors": [
{
- "name": "PHP-FIG",
- "homepage": "http://www.php-fig.org/"
+ "name": "Marc Morera",
+ "email": "yuhu@mmoreram.com"
}
],
- "description": "Common interface for HTTP messages",
- "homepage": "https://github.com/php-fig/http-message",
- "keywords": [
- "http",
- "http-message",
- "psr",
- "psr-7",
- "request",
- "response"
- ],
- "time": "2016-08-06T14:39:51+00:00"
+ "description": "Event loop utils for Drift",
+ "time": "2020-03-09T19:23:16+00:00"
},
{
- "name": "psr/http-server-handler",
- "version": "1.0.1",
+ "name": "drift/http-kernel",
+ "version": "0.1.10",
"source": {
"type": "git",
- "url": "https://github.com/php-fig/http-server-handler.git",
- "reference": "aff2f80e33b7f026ec96bb42f63242dc50ffcae7"
+ "url": "https://github.com/driftphp/http-kernel.git",
+ "reference": "b6f243673dbc088f576619264074613e75990aa2"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/php-fig/http-server-handler/zipball/aff2f80e33b7f026ec96bb42f63242dc50ffcae7",
- "reference": "aff2f80e33b7f026ec96bb42f63242dc50ffcae7",
+ "url": "https://api.github.com/repos/driftphp/http-kernel/zipball/b6f243673dbc088f576619264074613e75990aa2",
+ "reference": "b6f243673dbc088f576619264074613e75990aa2",
"shasum": ""
},
"require": {
- "php": ">=7.0",
- "psr/http-message": "^1.0"
+ "clue/block-react": "^1.3",
+ "php": "^7.3",
+ "react/filesystem": "^0.1",
+ "react/http": "^0.8",
+ "react/promise": "^2.7",
+ "symfony/dependency-injection": "^5.0",
+ "symfony/event-dispatcher-contracts": "^2.0",
+ "symfony/http-kernel": "^5.0"
},
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.0.x-dev"
- }
+ "require-dev": {
+ "mmoreram/base-bundle": "^2.1.0",
+ "phpunit/phpunit": "7.5.17",
+ "symfony/console": "^5.0",
+ "symfony/yaml": "^5.0"
},
+ "type": "library",
"autoload": {
"psr-4": {
- "Psr\\Http\\Server\\": "src/"
- }
+ "Drift\\HttpKernel\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
@@ -522,52 +578,344 @@
],
"authors": [
{
- "name": "PHP-FIG",
- "homepage": "http://www.php-fig.org/"
+ "name": "Marc Morera",
+ "email": "yuhu@mmoreram.com"
}
],
- "description": "Common interface for HTTP server-side request handler",
- "keywords": [
- "handler",
- "http",
- "http-interop",
- "psr",
- "psr-15",
- "psr-7",
- "request",
- "response",
- "server"
- ],
- "time": "2018-10-30T16:46:14+00:00"
+ "description": "Http Kernel component for Drift, based on Symfony Http Kernel component",
+ "time": "2020-05-02T01:17:16+00:00"
},
{
- "name": "psr/http-server-middleware",
- "version": "1.0.1",
+ "name": "drift/server",
+ "version": "0.1.12",
"source": {
"type": "git",
- "url": "https://github.com/php-fig/http-server-middleware.git",
- "reference": "2296f45510945530b9dceb8bcedb5cb84d40c5f5"
+ "url": "https://github.com/driftphp/server.git",
+ "reference": "c0331c101a2b038e8adade2a8952271822217463"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/php-fig/http-server-middleware/zipball/2296f45510945530b9dceb8bcedb5cb84d40c5f5",
- "reference": "2296f45510945530b9dceb8bcedb5cb84d40c5f5",
+ "url": "https://api.github.com/repos/driftphp/server/zipball/c0331c101a2b038e8adade2a8952271822217463",
+ "reference": "c0331c101a2b038e8adade2a8952271822217463",
"shasum": ""
},
"require": {
- "php": ">=7.0",
- "psr/http-message": "^1.0",
- "psr/http-server-handler": "^1.0"
+ "clue/zlib-react": "^0.2.2",
+ "drift/console-bridge": "0.1.*",
+ "drift/event-loop-utils": "0.1.*",
+ "drift/http-kernel": "0.1.*, >=0.1.3",
+ "ext-pcntl": "*",
+ "php": ">=7.3",
+ "react/event-loop": "^1.0",
+ "react/filesystem": "^0.1",
+ "react/http": "^0.8",
+ "react/promise": "^2.7",
+ "react/socket": "^1.0",
+ "seregazhuk/php-watcher": "^0.5.2",
+ "symfony/console": "^5.0",
+ "symfony/finder": "^4.4 || ^5.0",
+ "symfony/http-kernel": "^5.0"
},
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.0.x-dev"
- }
+ "require-dev": {
+ "drift/event-bus-bundle": "0.1.*, >=0.1.2",
+ "ext-fileinfo": "*",
+ "phpunit/phpunit": "7.5.17",
+ "symfony/config": "^5.0",
+ "symfony/framework-bundle": "^5.0",
+ "symfony/process": "^5.0"
},
+ "bin": [
+ "bin/server"
+ ],
+ "type": "library",
"autoload": {
"psr-4": {
- "Psr\\Http\\Server\\": "src/"
+ "Drift\\Server\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Marc Morera",
+ "email": "yuhu@mmoreram.com"
+ }
+ ],
+ "description": "ReactPHP based server for DriftPHP",
+ "time": "2020-05-02T00:06:42+00:00"
+ },
+ {
+ "name": "evenement/evenement",
+ "version": "v3.0.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/igorw/evenement.git",
+ "reference": "531bfb9d15f8aa57454f5f0285b18bec903b8fb7"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/igorw/evenement/zipball/531bfb9d15f8aa57454f5f0285b18bec903b8fb7",
+ "reference": "531bfb9d15f8aa57454f5f0285b18bec903b8fb7",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^6.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-0": {
+ "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"
+ ],
+ "time": "2017-07-23T21:35:13+00:00"
+ },
+ {
+ "name": "giansalex/peru-consult",
+ "version": "v4.1.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/giansalex/peru-consult.git",
+ "reference": "48d00e709dc9995060c1a8321f18a00134c958e4"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/giansalex/peru-consult/zipball/48d00e709dc9995060c1a8321f18a00134c958e4",
+ "reference": "48d00e709dc9995060c1a8321f18a00134c958e4",
+ "shasum": ""
+ },
+ "require": {
+ "ext-dom": "*",
+ "ext-json": "*",
+ "ext-libxml": "*",
+ "php": "^7.1",
+ "react/http-client": "^0.5.9"
+ },
+ "require-dev": {
+ "behat/behat": "^3.5",
+ "clue/block-react": "^1.3",
+ "phpstan/phpstan": "^0.11.15",
+ "phpunit/phpunit": "^7"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Peru\\": "src/Peru/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Giancarlos Salas",
+ "email": "giansalex@gmail.com"
+ }
+ ],
+ "description": "Consultas gratuita de RUC y DNI en Perú",
+ "homepage": "https://github.com/giansalex/peru-consult",
+ "keywords": [
+ "DNI",
+ "clave-sol",
+ "peru",
+ "reniec",
+ "ruc",
+ "sunat"
+ ],
+ "time": "2019-10-19T03:28:25+00:00"
+ },
+ {
+ "name": "indigophp/hash-compat",
+ "version": "v1.1.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/indigophp/hash-compat.git",
+ "reference": "43a19f42093a0cd2d11874dff9d891027fc42214"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/indigophp/hash-compat/zipball/43a19f42093a0cd2d11874dff9d891027fc42214",
+ "reference": "43a19f42093a0cd2d11874dff9d891027fc42214",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "~4.4"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.2-dev"
+ }
+ },
+ "autoload": {
+ "files": [
+ "src/hash_equals.php",
+ "src/hash_pbkdf2.php"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Márk Sági-Kazár",
+ "email": "mark.sagikazar@gmail.com"
+ }
+ ],
+ "description": "Backports hash_* functionality to older PHP versions",
+ "homepage": "https://indigophp.com",
+ "keywords": [
+ "hash",
+ "hash_equals",
+ "hash_pbkdf2"
+ ],
+ "time": "2015-08-22T07:03:35+00:00"
+ },
+ {
+ "name": "psr/cache",
+ "version": "1.0.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-fig/cache.git",
+ "reference": "d11b50ad223250cf17b86e38383413f5a6764bf8"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-fig/cache/zipball/d11b50ad223250cf17b86e38383413f5a6764bf8",
+ "reference": "d11b50ad223250cf17b86e38383413f5a6764bf8",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Psr\\Cache\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "PHP-FIG",
+ "homepage": "http://www.php-fig.org/"
+ }
+ ],
+ "description": "Common interface for caching libraries",
+ "keywords": [
+ "cache",
+ "psr",
+ "psr-6"
+ ],
+ "time": "2016-08-06T20:24:11+00:00"
+ },
+ {
+ "name": "psr/container",
+ "version": "1.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-fig/container.git",
+ "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-fig/container/zipball/b7ce3b176482dbbc1245ebf52b181af44c2cf55f",
+ "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Psr\\Container\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "PHP-FIG",
+ "homepage": "http://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"
+ ],
+ "time": "2017-02-14T16:28:37+00:00"
+ },
+ {
+ "name": "psr/event-dispatcher",
+ "version": "1.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"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Psr\\EventDispatcher\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
@@ -580,46 +928,508 @@
"homepage": "http://www.php-fig.org/"
}
],
- "description": "Common interface for HTTP server-side middleware",
+ "description": "Standard interfaces for event handling.",
+ "keywords": [
+ "events",
+ "psr",
+ "psr-14"
+ ],
+ "time": "2019-01-08T18:20:26+00:00"
+ },
+ {
+ "name": "psr/http-message",
+ "version": "1.0.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-fig/http-message.git",
+ "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-fig/http-message/zipball/f6561bf28d520154e4b0ec72be95418abe6d9363",
+ "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Psr\\Http\\Message\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "PHP-FIG",
+ "homepage": "http://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"
+ ],
+ "time": "2016-08-06T14:39:51+00:00"
+ },
+ {
+ "name": "psr/log",
+ "version": "1.1.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-fig/log.git",
+ "reference": "0f73288fd15629204f9d42b7055f72dacbe811fc"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-fig/log/zipball/0f73288fd15629204f9d42b7055f72dacbe811fc",
+ "reference": "0f73288fd15629204f9d42b7055f72dacbe811fc",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.1.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Psr\\Log\\": "Psr/Log/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "PHP-FIG",
+ "homepage": "http://www.php-fig.org/"
+ }
+ ],
+ "description": "Common interface for logging libraries",
+ "homepage": "https://github.com/php-fig/log",
+ "keywords": [
+ "log",
+ "psr",
+ "psr-3"
+ ],
+ "time": "2020-03-23T09:12:05+00:00"
+ },
+ {
+ "name": "react/cache",
+ "version": "v1.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/reactphp/cache.git",
+ "reference": "aa10d63a1b40a36a486bdf527f28bac607ee6466"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/reactphp/cache/zipball/aa10d63a1b40a36a486bdf527f28bac607ee6466",
+ "reference": "aa10d63a1b40a36a486bdf527f28bac607ee6466",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.0",
+ "react/promise": "~2.0|~1.1"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^6.4 || ^5.7 || ^4.8.35"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "React\\Cache\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "description": "Async, Promise-based cache interface for ReactPHP",
+ "keywords": [
+ "cache",
+ "caching",
+ "promise",
+ "reactphp"
+ ],
+ "time": "2019-07-11T13:45:28+00:00"
+ },
+ {
+ "name": "react/child-process",
+ "version": "v0.6.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/reactphp/child-process.git",
+ "reference": "6895afa583d51dc10a4b9e93cd3bce17b3b77ac3"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/reactphp/child-process/zipball/6895afa583d51dc10a4b9e93cd3bce17b3b77ac3",
+ "reference": "6895afa583d51dc10a4b9e93cd3bce17b3b77ac3",
+ "shasum": ""
+ },
+ "require": {
+ "evenement/evenement": "^3.0 || ^2.0 || ^1.0",
+ "php": ">=5.3.0",
+ "react/event-loop": "^1.0 || ^0.5 || ^0.4 || ^0.3.5",
+ "react/stream": "^1.0 || ^0.7.6"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^7.0 || ^6.4 || ^5.7 || ^4.8.35",
+ "react/socket": "^1.0",
+ "sebastian/environment": "^3.0 || ^2.0 || ^1.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "React\\ChildProcess\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "description": "Event-driven library for executing child processes with ReactPHP.",
+ "keywords": [
+ "event-driven",
+ "process",
+ "reactphp"
+ ],
+ "time": "2019-02-15T13:48:16+00:00"
+ },
+ {
+ "name": "react/dns",
+ "version": "v1.2.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/reactphp/dns.git",
+ "reference": "a214d90c2884dac18d0cac6176202f247b66d762"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/reactphp/dns/zipball/a214d90c2884dac18d0cac6176202f247b66d762",
+ "reference": "a214d90c2884dac18d0cac6176202f247b66d762",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.0",
+ "react/cache": "^1.0 || ^0.6 || ^0.5",
+ "react/event-loop": "^1.0 || ^0.5",
+ "react/promise": "^2.7 || ^1.2.1",
+ "react/promise-timer": "^1.2"
+ },
+ "require-dev": {
+ "clue/block-react": "^1.2",
+ "phpunit/phpunit": "^7.0 || ^6.4 || ^5.7 || ^4.8.35"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "React\\Dns\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "description": "Async DNS resolver for ReactPHP",
+ "keywords": [
+ "async",
+ "dns",
+ "dns-resolver",
+ "reactphp"
+ ],
+ "time": "2019-08-15T09:06:31+00:00"
+ },
+ {
+ "name": "react/event-loop",
+ "version": "v1.1.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/reactphp/event-loop.git",
+ "reference": "6d24de090cd59cfc830263cfba965be77b563c13"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/reactphp/event-loop/zipball/6d24de090cd59cfc830263cfba965be77b563c13",
+ "reference": "6d24de090cd59cfc830263cfba965be77b563c13",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^7.0 || ^6.4 || ^5.7 || ^4.8.35"
+ },
+ "suggest": {
+ "ext-event": "~1.0 for ExtEventLoop",
+ "ext-pcntl": "For signal handling support when using the StreamSelectLoop",
+ "ext-uv": "* for ExtUvLoop"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "React\\EventLoop\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "description": "ReactPHP's core reactor event loop that libraries can use for evented I/O.",
+ "keywords": [
+ "asynchronous",
+ "event-loop"
+ ],
+ "time": "2020-01-01T18:39:52+00:00"
+ },
+ {
+ "name": "react/filesystem",
+ "version": "v0.1.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/reactphp/filesystem.git",
+ "reference": "766cdef9ba806367114f0c5ba36ea2a6eec8ccd2"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/reactphp/filesystem/zipball/766cdef9ba806367114f0c5ba36ea2a6eec8ccd2",
+ "reference": "766cdef9ba806367114f0c5ba36ea2a6eec8ccd2",
+ "shasum": ""
+ },
+ "require": {
+ "evenement/evenement": "^3.0 || ^2.0",
+ "php": ">=5.4.0",
+ "react/event-loop": "^1.0 || ^0.5 || ^0.4",
+ "react/promise": "~2.2",
+ "react/promise-stream": "^1.1",
+ "react/stream": "^1.0 || ^0.7 || ^0.6 || ^0.5 || ^0.4",
+ "wyrihaximus/react-child-process-pool": "^1.3"
+ },
+ "require-dev": {
+ "clue/block-react": "^1.1",
+ "phpunit/phpunit": "^6.0 || ^5.0 || ^4.8"
+ },
+ "suggest": {
+ "ext-eio": "^1.2"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "React\\Filesystem\\": "src/"
+ },
+ "files": [
+ "src/functions_include.php"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Cees-Jan Kiewiet",
+ "email": "ceesjank@gmail.com"
+ }
+ ],
+ "description": "Asynchronous filesystem abstraction.",
+ "keywords": [
+ "asynchronous",
+ "eio",
+ "filesystem"
+ ],
+ "time": "2018-10-22T12:10:29+00:00"
+ },
+ {
+ "name": "react/http",
+ "version": "v0.8.6",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/reactphp/http.git",
+ "reference": "248202e57195d06a4375f6d2f5c5b9ff9da3ea9e"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/reactphp/http/zipball/248202e57195d06a4375f6d2f5c5b9ff9da3ea9e",
+ "reference": "248202e57195d06a4375f6d2f5c5b9ff9da3ea9e",
+ "shasum": ""
+ },
+ "require": {
+ "evenement/evenement": "^3.0 || ^2.0 || ^1.0",
+ "php": ">=5.3.0",
+ "react/promise": "^2.3 || ^1.2.1",
+ "react/promise-stream": "^1.1",
+ "react/socket": "^1.0 || ^0.8.3",
+ "react/stream": "^1.0 || ^0.7.1",
+ "ringcentral/psr7": "^1.2"
+ },
+ "require-dev": {
+ "clue/block-react": "^1.1",
+ "phpunit/phpunit": "^7.0 || ^6.4 || ^5.7 || ^4.8.35"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "React\\Http\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "description": "Event-driven, streaming plaintext HTTP and secure HTTPS server for ReactPHP",
+ "keywords": [
+ "event-driven",
+ "http",
+ "https",
+ "reactphp",
+ "server",
+ "streaming"
+ ],
+ "time": "2020-01-12T13:15:06+00:00"
+ },
+ {
+ "name": "react/http-client",
+ "version": "v0.5.10",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/reactphp/http-client.git",
+ "reference": "f16ab55150ec369f8f9b5db64972f248691093b0"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/reactphp/http-client/zipball/f16ab55150ec369f8f9b5db64972f248691093b0",
+ "reference": "f16ab55150ec369f8f9b5db64972f248691093b0",
+ "shasum": ""
+ },
+ "require": {
+ "evenement/evenement": "^3.0 || ^2.0 || ^1.0",
+ "php": ">=5.3.0",
+ "react/event-loop": "^1.0 || ^0.5 || ^0.4 || ^0.3",
+ "react/promise": "^2.1 || ^1.2.1",
+ "react/socket": "^1.0 || ^0.8.4",
+ "react/stream": "^1.0 || ^0.7.1",
+ "ringcentral/psr7": "^1.2"
+ },
+ "require-dev": {
+ "clue/block-react": "^1.2",
+ "phpunit/phpunit": "^7.0 || ^6.4 || ^5.7 || ^4.8.35",
+ "react/promise-stream": "^1.1"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "React\\HttpClient\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "description": "Event-driven, streaming HTTP client for ReactPHP",
+ "keywords": [
+ "http"
+ ],
+ "time": "2020-01-14T08:36:16+00:00"
+ },
+ {
+ "name": "react/promise",
+ "version": "v2.7.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/reactphp/promise.git",
+ "reference": "31ffa96f8d2ed0341a57848cbb84d88b89dd664d"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/reactphp/promise/zipball/31ffa96f8d2ed0341a57848cbb84d88b89dd664d",
+ "reference": "31ffa96f8d2ed0341a57848cbb84d88b89dd664d",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.4.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "~4.8"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "React\\Promise\\": "src/"
+ },
+ "files": [
+ "src/functions_include.php"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Jan Sorgalla",
+ "email": "jsorgalla@gmail.com"
+ }
+ ],
+ "description": "A lightweight implementation of CommonJS Promises/A for PHP",
"keywords": [
- "http",
- "http-interop",
- "middleware",
- "psr",
- "psr-15",
- "psr-7",
- "request",
- "response"
+ "promise",
+ "promises"
],
- "time": "2018-10-30T17:12:04+00:00"
+ "time": "2019-01-07T21:25:54+00:00"
},
{
- "name": "psr/log",
- "version": "1.1.0",
+ "name": "react/promise-stream",
+ "version": "v1.2.0",
"source": {
"type": "git",
- "url": "https://github.com/php-fig/log.git",
- "reference": "6c001f1daafa3a3ac1d8ff69ee4db8e799a654dd"
+ "url": "https://github.com/reactphp/promise-stream.git",
+ "reference": "6384d8b76cf7dcc44b0bf3343fb2b2928412d1fe"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/php-fig/log/zipball/6c001f1daafa3a3ac1d8ff69ee4db8e799a654dd",
- "reference": "6c001f1daafa3a3ac1d8ff69ee4db8e799a654dd",
+ "url": "https://api.github.com/repos/reactphp/promise-stream/zipball/6384d8b76cf7dcc44b0bf3343fb2b2928412d1fe",
+ "reference": "6384d8b76cf7dcc44b0bf3343fb2b2928412d1fe",
"shasum": ""
},
"require": {
- "php": ">=5.3.0"
+ "php": ">=5.3",
+ "react/promise": "^2.1 || ^1.2",
+ "react/stream": "^1.0 || ^0.7 || ^0.6 || ^0.5 || ^0.4.6"
},
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.0.x-dev"
- }
+ "require-dev": {
+ "clue/block-react": "^1.0",
+ "phpunit/phpunit": "^7.0 || ^6.4 || ^5.7 || ^4.8.35",
+ "react/event-loop": "^1.0 || ^0.5 || ^0.4 || ^0.3",
+ "react/promise-timer": "^1.0"
},
+ "type": "library",
"autoload": {
"psr-4": {
- "Psr\\Log\\": "Psr/Log/"
- }
+ "React\\Promise\\Stream\\": "src/"
+ },
+ "files": [
+ "src/functions_include.php"
+ ]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
@@ -627,36 +1437,40 @@
],
"authors": [
{
- "name": "PHP-FIG",
- "homepage": "http://www.php-fig.org/"
+ "name": "Christian Lück",
+ "email": "christian@lueck.tv"
}
],
- "description": "Common interface for logging libraries",
- "homepage": "https://github.com/php-fig/log",
+ "description": "The missing link between Promise-land and Stream-land for ReactPHP",
+ "homepage": "https://github.com/reactphp/promise-stream",
"keywords": [
- "log",
- "psr",
- "psr-3"
+ "Buffer",
+ "async",
+ "promise",
+ "reactphp",
+ "stream",
+ "unwrap"
],
- "time": "2018-11-20T15:27:04+00:00"
+ "time": "2019-07-03T12:29:10+00:00"
},
{
- "name": "react/cache",
- "version": "v1.0.0",
+ "name": "react/promise-timer",
+ "version": "v1.5.1",
"source": {
"type": "git",
- "url": "https://github.com/reactphp/cache.git",
- "reference": "aa10d63a1b40a36a486bdf527f28bac607ee6466"
+ "url": "https://github.com/reactphp/promise-timer.git",
+ "reference": "35fb910604fd86b00023fc5cda477c8074ad0abc"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/reactphp/cache/zipball/aa10d63a1b40a36a486bdf527f28bac607ee6466",
- "reference": "aa10d63a1b40a36a486bdf527f28bac607ee6466",
+ "url": "https://api.github.com/repos/reactphp/promise-timer/zipball/35fb910604fd86b00023fc5cda477c8074ad0abc",
+ "reference": "35fb910604fd86b00023fc5cda477c8074ad0abc",
"shasum": ""
},
"require": {
- "php": ">=5.3.0",
- "react/promise": "~2.0|~1.1"
+ "php": ">=5.3",
+ "react/event-loop": "^1.0 || ^0.5 || ^0.4 || ^0.3.5",
+ "react/promise": "^2.7.0 || ^1.2.1"
},
"require-dev": {
"phpunit/phpunit": "^6.4 || ^5.7 || ^4.8.35"
@@ -664,180 +1478,226 @@
"type": "library",
"autoload": {
"psr-4": {
- "React\\Cache\\": "src/"
- }
+ "React\\Promise\\Timer\\": "src/"
+ },
+ "files": [
+ "src/functions_include.php"
+ ]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
- "description": "Async, Promise-based cache interface for ReactPHP",
+ "authors": [
+ {
+ "name": "Christian Lück",
+ "email": "christian@lueck.tv"
+ }
+ ],
+ "description": "A trivial implementation of timeouts for Promises, built on top of ReactPHP.",
+ "homepage": "https://github.com/reactphp/promise-timer",
"keywords": [
- "cache",
- "caching",
+ "async",
+ "event-loop",
"promise",
- "reactphp"
+ "reactphp",
+ "timeout",
+ "timer"
],
- "time": "2019-07-11T13:45:28+00:00"
+ "time": "2019-03-27T18:10:32+00:00"
},
{
- "name": "react/dns",
- "version": "v1.2.0",
+ "name": "react/socket",
+ "version": "v1.4.0",
"source": {
"type": "git",
- "url": "https://github.com/reactphp/dns.git",
- "reference": "a214d90c2884dac18d0cac6176202f247b66d762"
+ "url": "https://github.com/reactphp/socket.git",
+ "reference": "97522e24987365e1ed873f0f4884900747a668e0"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/reactphp/dns/zipball/a214d90c2884dac18d0cac6176202f247b66d762",
- "reference": "a214d90c2884dac18d0cac6176202f247b66d762",
+ "url": "https://api.github.com/repos/reactphp/socket/zipball/97522e24987365e1ed873f0f4884900747a668e0",
+ "reference": "97522e24987365e1ed873f0f4884900747a668e0",
"shasum": ""
},
"require": {
+ "evenement/evenement": "^3.0 || ^2.0 || ^1.0",
"php": ">=5.3.0",
- "react/cache": "^1.0 || ^0.6 || ^0.5",
+ "react/dns": "^1.1",
"react/event-loop": "^1.0 || ^0.5",
- "react/promise": "^2.7 || ^1.2.1",
- "react/promise-timer": "^1.2"
+ "react/promise": "^2.6.0 || ^1.2.1",
+ "react/promise-timer": "^1.4.0",
+ "react/stream": "^1.1"
},
"require-dev": {
"clue/block-react": "^1.2",
- "phpunit/phpunit": "^7.0 || ^6.4 || ^5.7 || ^4.8.35"
+ "phpunit/phpunit": "^7.5 || ^6.4 || ^5.7 || ^4.8.35",
+ "react/promise-stream": "^1.2"
},
"type": "library",
"autoload": {
"psr-4": {
- "React\\Dns\\": "src"
+ "React\\Socket\\": "src"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
- "description": "Async DNS resolver for ReactPHP",
+ "description": "Async, streaming plaintext TCP/IP and secure TLS socket server and client connections for ReactPHP",
"keywords": [
+ "Connection",
+ "Socket",
"async",
- "dns",
- "dns-resolver",
- "reactphp"
+ "reactphp",
+ "stream"
],
- "time": "2019-08-15T09:06:31+00:00"
+ "time": "2020-03-12T12:15:14+00:00"
},
{
- "name": "react/event-loop",
+ "name": "react/stream",
"version": "v1.1.0",
"source": {
"type": "git",
- "url": "https://github.com/reactphp/event-loop.git",
- "reference": "a0ecac955c67b57c40fe4a1b88a7cca1b58c982d"
+ "url": "https://github.com/reactphp/stream.git",
+ "reference": "50426855f7a77ddf43b9266c22320df5bf6c6ce6"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/reactphp/event-loop/zipball/a0ecac955c67b57c40fe4a1b88a7cca1b58c982d",
- "reference": "a0ecac955c67b57c40fe4a1b88a7cca1b58c982d",
+ "url": "https://api.github.com/repos/reactphp/stream/zipball/50426855f7a77ddf43b9266c22320df5bf6c6ce6",
+ "reference": "50426855f7a77ddf43b9266c22320df5bf6c6ce6",
"shasum": ""
},
"require": {
- "php": ">=5.3.0"
+ "evenement/evenement": "^3.0 || ^2.0 || ^1.0",
+ "php": ">=5.3.8",
+ "react/event-loop": "^1.0 || ^0.5 || ^0.4 || ^0.3.5"
},
"require-dev": {
- "phpunit/phpunit": "^7.0 || ^6.4 || ^5.7 || ^4.8.35"
- },
- "suggest": {
- "ext-event": "~1.0 for ExtEventLoop",
- "ext-pcntl": "For signal handling support when using the StreamSelectLoop",
- "ext-uv": "* for ExtUvLoop"
+ "clue/stream-filter": "~1.2",
+ "phpunit/phpunit": "^6.4 || ^5.7 || ^4.8.35"
},
"type": "library",
"autoload": {
"psr-4": {
- "React\\EventLoop\\": "src"
+ "React\\Stream\\": "src"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
- "description": "ReactPHP's core reactor event loop that libraries can use for evented I/O.",
+ "description": "Event-driven readable and writable streams for non-blocking I/O in ReactPHP",
"keywords": [
- "asynchronous",
- "event-loop"
+ "event-driven",
+ "io",
+ "non-blocking",
+ "pipe",
+ "reactphp",
+ "readable",
+ "stream",
+ "writable"
],
- "time": "2019-02-07T16:19:49+00:00"
+ "time": "2019-01-01T16:15:09+00:00"
},
{
- "name": "react/http-client",
- "version": "v0.5.9",
+ "name": "ringcentral/psr7",
+ "version": "1.2.2",
"source": {
"type": "git",
- "url": "https://github.com/reactphp/http-client.git",
- "reference": "f8e81a022b61938e0b37c94c6351fc170b7d87f6"
+ "url": "https://github.com/ringcentral/psr7.git",
+ "reference": "dcd84bbb49b96c616d1dcc8bfb9bef3f2cd53d1c"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/reactphp/http-client/zipball/f8e81a022b61938e0b37c94c6351fc170b7d87f6",
- "reference": "f8e81a022b61938e0b37c94c6351fc170b7d87f6",
+ "url": "https://api.github.com/repos/ringcentral/psr7/zipball/dcd84bbb49b96c616d1dcc8bfb9bef3f2cd53d1c",
+ "reference": "dcd84bbb49b96c616d1dcc8bfb9bef3f2cd53d1c",
"shasum": ""
},
"require": {
- "evenement/evenement": "^3.0 || ^2.0 || ^1.0",
- "php": ">=5.3.0",
- "react/event-loop": "^1.0 || ^0.5 || ^0.4 || ^0.3",
- "react/promise": "^2.1 || ^1.2.1",
- "react/socket": "^1.0 || ^0.8.4",
- "react/stream": "^1.0 || ^0.7.1",
- "ringcentral/psr7": "^1.2"
+ "php": ">=5.3",
+ "psr/http-message": "~1.0"
+ },
+ "provide": {
+ "psr/http-message-implementation": "1.0"
},
"require-dev": {
- "clue/block-react": "^1.2",
- "phpunit/phpunit": "^6.4 || ^5.7 || ^4.8.35",
- "react/promise-stream": "^1.1"
+ "phpunit/phpunit": "~4.0"
},
"type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0-dev"
+ }
+ },
"autoload": {
"psr-4": {
- "React\\HttpClient\\": "src"
- }
+ "RingCentral\\Psr7\\": "src/"
+ },
+ "files": [
+ "src/functions_include.php"
+ ]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
- "description": "Event-driven, streaming HTTP client for ReactPHP",
+ "authors": [
+ {
+ "name": "Michael Dowling",
+ "email": "mtdowling@gmail.com",
+ "homepage": "https://github.com/mtdowling"
+ }
+ ],
+ "description": "PSR-7 message implementation",
"keywords": [
- "http"
+ "http",
+ "message",
+ "stream",
+ "uri"
],
- "time": "2018-04-10T11:38:54+00:00"
+ "time": "2018-01-15T21:00:49+00:00"
},
{
- "name": "react/promise",
- "version": "v2.7.1",
+ "name": "seregazhuk/php-watcher",
+ "version": "v0.5.2",
"source": {
"type": "git",
- "url": "https://github.com/reactphp/promise.git",
- "reference": "31ffa96f8d2ed0341a57848cbb84d88b89dd664d"
+ "url": "https://github.com/seregazhuk/php-watcher.git",
+ "reference": "b1ad89f5df17c50118731cf121469cefa13ff553"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/reactphp/promise/zipball/31ffa96f8d2ed0341a57848cbb84d88b89dd664d",
- "reference": "31ffa96f8d2ed0341a57848cbb84d88b89dd664d",
+ "url": "https://api.github.com/repos/seregazhuk/php-watcher/zipball/b1ad89f5df17c50118731cf121469cefa13ff553",
+ "reference": "b1ad89f5df17c50118731cf121469cefa13ff553",
"shasum": ""
},
"require": {
- "php": ">=5.4.0"
+ "alecrabbit/php-cli-snake": "^0.5",
+ "ext-json": "*",
+ "ext-pcntl": "*",
+ "php": "^7.2",
+ "react/child-process": "^0.6.1",
+ "react/event-loop": "^1.1",
+ "react/stream": "^1.0.0",
+ "symfony/console": "^4.3 || ^5.0",
+ "symfony/finder": "^4.3 || ^5.0",
+ "symfony/yaml": "^4.3 || ^5.0",
+ "yosymfony/resource-watcher": "^2.0"
},
"require-dev": {
- "phpunit/phpunit": "~4.8"
+ "clue/block-react": "^1.3",
+ "phpunit/phpunit": "^8.0",
+ "symfony/process": "^4.3"
},
+ "bin": [
+ "php-watcher"
+ ],
"type": "library",
"autoload": {
"psr-4": {
- "React\\Promise\\": "src/"
- },
- "files": [
- "src/functions_include.php"
- ]
+ "seregazhuk\\PhpWatcher\\": "src"
+ }
},
"notification-url": "https://packagist.org/downloads/",
"license": [
@@ -845,46 +1705,82 @@
],
"authors": [
{
- "name": "Jan Sorgalla",
- "email": "jsorgalla@gmail.com"
+ "name": "Sergey Zhuk",
+ "email": "seregazhuk88@gmail.com",
+ "homepage": "http://sergeyzhuk.me",
+ "role": "Developer"
}
],
- "description": "A lightweight implementation of CommonJS Promises/A for PHP",
+ "description": "Automatically restart PHP application once the source code changes",
"keywords": [
- "promise",
- "promises"
+ "asynchronous",
+ "bash",
+ "cli",
+ "clock",
+ "console",
+ "php",
+ "php-watcher",
+ "scripts",
+ "shell",
+ "watcher"
],
- "time": "2019-01-07T21:25:54+00:00"
+ "time": "2019-12-07T08:45:28+00:00"
},
{
- "name": "react/promise-timer",
- "version": "v1.5.1",
+ "name": "symfony/cache",
+ "version": "v5.0.8",
"source": {
"type": "git",
- "url": "https://github.com/reactphp/promise-timer.git",
- "reference": "35fb910604fd86b00023fc5cda477c8074ad0abc"
+ "url": "https://github.com/symfony/cache.git",
+ "reference": "0c5f5b1882dc82b255a4bdead4ed3c7738cddc04"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/reactphp/promise-timer/zipball/35fb910604fd86b00023fc5cda477c8074ad0abc",
- "reference": "35fb910604fd86b00023fc5cda477c8074ad0abc",
+ "url": "https://api.github.com/repos/symfony/cache/zipball/0c5f5b1882dc82b255a4bdead4ed3c7738cddc04",
+ "reference": "0c5f5b1882dc82b255a4bdead4ed3c7738cddc04",
"shasum": ""
},
- "require": {
- "php": ">=5.3",
- "react/event-loop": "^1.0 || ^0.5 || ^0.4 || ^0.3.5",
- "react/promise": "^2.7.0 || ^1.2.1"
+ "require": {
+ "php": "^7.2.5",
+ "psr/cache": "~1.0",
+ "psr/log": "~1.0",
+ "symfony/cache-contracts": "^1.1.7|^2",
+ "symfony/service-contracts": "^1.1|^2",
+ "symfony/var-exporter": "^4.4|^5.0"
+ },
+ "conflict": {
+ "doctrine/dbal": "<2.5",
+ "symfony/dependency-injection": "<4.4",
+ "symfony/http-kernel": "<4.4",
+ "symfony/var-dumper": "<4.4"
+ },
+ "provide": {
+ "psr/cache-implementation": "1.0",
+ "psr/simple-cache-implementation": "1.0",
+ "symfony/cache-implementation": "1.0"
},
"require-dev": {
- "phpunit/phpunit": "^6.4 || ^5.7 || ^4.8.35"
+ "cache/integration-tests": "dev-master",
+ "doctrine/cache": "~1.6",
+ "doctrine/dbal": "~2.5",
+ "predis/predis": "~1.1",
+ "psr/simple-cache": "^1.0",
+ "symfony/config": "^4.4|^5.0",
+ "symfony/dependency-injection": "^4.4|^5.0",
+ "symfony/var-dumper": "^4.4|^5.0"
},
"type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "5.0-dev"
+ }
+ },
"autoload": {
"psr-4": {
- "React\\Promise\\Timer\\": "src/"
+ "Symfony\\Component\\Cache\\": ""
},
- "files": [
- "src/functions_include.php"
+ "exclude-from-classmap": [
+ "/Tests/"
]
},
"notification-url": "https://packagist.org/downloads/",
@@ -893,151 +1789,228 @@
],
"authors": [
{
- "name": "Christian Lück",
- "email": "christian@lueck.tv"
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
}
],
- "description": "A trivial implementation of timeouts for Promises, built on top of ReactPHP.",
- "homepage": "https://github.com/reactphp/promise-timer",
+ "description": "Symfony Cache component with PSR-6, PSR-16, and tags",
+ "homepage": "https://symfony.com",
"keywords": [
- "async",
- "event-loop",
- "promise",
- "reactphp",
- "timeout",
- "timer"
+ "caching",
+ "psr6"
],
- "time": "2019-03-27T18:10:32+00:00"
+ "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"
+ }
+ ],
+ "time": "2020-04-28T17:58:55+00:00"
},
{
- "name": "react/socket",
- "version": "v1.3.0",
+ "name": "symfony/cache-contracts",
+ "version": "v2.0.1",
"source": {
"type": "git",
- "url": "https://github.com/reactphp/socket.git",
- "reference": "10f0629ec83ea0fa22597f348623f554227e3ca0"
+ "url": "https://github.com/symfony/cache-contracts.git",
+ "reference": "23ed8bfc1a4115feca942cb5f1aacdf3dcdf3c16"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/reactphp/socket/zipball/10f0629ec83ea0fa22597f348623f554227e3ca0",
- "reference": "10f0629ec83ea0fa22597f348623f554227e3ca0",
+ "url": "https://api.github.com/repos/symfony/cache-contracts/zipball/23ed8bfc1a4115feca942cb5f1aacdf3dcdf3c16",
+ "reference": "23ed8bfc1a4115feca942cb5f1aacdf3dcdf3c16",
"shasum": ""
},
"require": {
- "evenement/evenement": "^3.0 || ^2.0 || ^1.0",
- "php": ">=5.3.0",
- "react/dns": "^1.0 || ^0.4.13",
- "react/event-loop": "^1.0 || ^0.5 || ^0.4 || ^0.3.5",
- "react/promise": "^2.6.0 || ^1.2.1",
- "react/promise-timer": "^1.4.0",
- "react/stream": "^1.1"
+ "php": "^7.2.5",
+ "psr/cache": "^1.0"
},
- "require-dev": {
- "clue/block-react": "^1.2",
- "phpunit/phpunit": "^6.4 || ^5.7 || ^4.8.35"
+ "suggest": {
+ "symfony/cache-implementation": ""
},
"type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.0-dev"
+ }
+ },
"autoload": {
"psr-4": {
- "React\\Socket\\": "src"
+ "Symfony\\Contracts\\Cache\\": ""
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
- "description": "Async, streaming plaintext TCP/IP and secure TLS socket server and client connections for ReactPHP",
- "keywords": [
- "Connection",
- "Socket",
- "async",
- "reactphp",
- "stream"
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
],
- "time": "2019-07-10T10:11:14+00:00"
+ "description": "Generic abstractions related to caching",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "abstractions",
+ "contracts",
+ "decoupling",
+ "interfaces",
+ "interoperability",
+ "standards"
+ ],
+ "time": "2019-11-18T17:27:11+00:00"
},
{
- "name": "react/stream",
- "version": "v1.1.0",
+ "name": "symfony/config",
+ "version": "v5.0.8",
"source": {
"type": "git",
- "url": "https://github.com/reactphp/stream.git",
- "reference": "50426855f7a77ddf43b9266c22320df5bf6c6ce6"
+ "url": "https://github.com/symfony/config.git",
+ "reference": "db1674e1a261148429f123871f30d211992294e7"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/reactphp/stream/zipball/50426855f7a77ddf43b9266c22320df5bf6c6ce6",
- "reference": "50426855f7a77ddf43b9266c22320df5bf6c6ce6",
+ "url": "https://api.github.com/repos/symfony/config/zipball/db1674e1a261148429f123871f30d211992294e7",
+ "reference": "db1674e1a261148429f123871f30d211992294e7",
"shasum": ""
},
"require": {
- "evenement/evenement": "^3.0 || ^2.0 || ^1.0",
- "php": ">=5.3.8",
- "react/event-loop": "^1.0 || ^0.5 || ^0.4 || ^0.3.5"
+ "php": "^7.2.5",
+ "symfony/filesystem": "^4.4|^5.0",
+ "symfony/polyfill-ctype": "~1.8"
+ },
+ "conflict": {
+ "symfony/finder": "<4.4"
},
"require-dev": {
- "clue/stream-filter": "~1.2",
- "phpunit/phpunit": "^6.4 || ^5.7 || ^4.8.35"
+ "symfony/event-dispatcher": "^4.4|^5.0",
+ "symfony/finder": "^4.4|^5.0",
+ "symfony/messenger": "^4.4|^5.0",
+ "symfony/service-contracts": "^1.1|^2",
+ "symfony/yaml": "^4.4|^5.0"
+ },
+ "suggest": {
+ "symfony/yaml": "To use the yaml reference dumper"
},
"type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "5.0-dev"
+ }
+ },
"autoload": {
"psr-4": {
- "React\\Stream\\": "src"
- }
+ "Symfony\\Component\\Config\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
- "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"
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
],
- "time": "2019-01-01T16:15:09+00:00"
+ "description": "Symfony Config Component",
+ "homepage": "https://symfony.com",
+ "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"
+ }
+ ],
+ "time": "2020-04-15T15:59:10+00:00"
},
{
- "name": "ringcentral/psr7",
- "version": "1.2.2",
+ "name": "symfony/console",
+ "version": "v5.0.8",
"source": {
"type": "git",
- "url": "https://github.com/ringcentral/psr7.git",
- "reference": "dcd84bbb49b96c616d1dcc8bfb9bef3f2cd53d1c"
+ "url": "https://github.com/symfony/console.git",
+ "reference": "5fa1caadc8cdaa17bcfb25219f3b53fe294a9935"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/ringcentral/psr7/zipball/dcd84bbb49b96c616d1dcc8bfb9bef3f2cd53d1c",
- "reference": "dcd84bbb49b96c616d1dcc8bfb9bef3f2cd53d1c",
+ "url": "https://api.github.com/repos/symfony/console/zipball/5fa1caadc8cdaa17bcfb25219f3b53fe294a9935",
+ "reference": "5fa1caadc8cdaa17bcfb25219f3b53fe294a9935",
"shasum": ""
},
"require": {
- "php": ">=5.3",
- "psr/http-message": "~1.0"
+ "php": "^7.2.5",
+ "symfony/polyfill-mbstring": "~1.0",
+ "symfony/polyfill-php73": "^1.8",
+ "symfony/service-contracts": "^1.1|^2"
+ },
+ "conflict": {
+ "symfony/dependency-injection": "<4.4",
+ "symfony/event-dispatcher": "<4.4",
+ "symfony/lock": "<4.4",
+ "symfony/process": "<4.4"
},
"provide": {
- "psr/http-message-implementation": "1.0"
+ "psr/log-implementation": "1.0"
},
"require-dev": {
- "phpunit/phpunit": "~4.0"
+ "psr/log": "~1.0",
+ "symfony/config": "^4.4|^5.0",
+ "symfony/dependency-injection": "^4.4|^5.0",
+ "symfony/event-dispatcher": "^4.4|^5.0",
+ "symfony/lock": "^4.4|^5.0",
+ "symfony/process": "^4.4|^5.0",
+ "symfony/var-dumper": "^4.4|^5.0"
+ },
+ "suggest": {
+ "psr/log": "For using the console logger",
+ "symfony/event-dispatcher": "",
+ "symfony/lock": "",
+ "symfony/process": ""
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "1.0-dev"
+ "dev-master": "5.0-dev"
}
},
"autoload": {
"psr-4": {
- "RingCentral\\Psr7\\": "src/"
+ "Symfony\\Component\\Console\\": ""
},
- "files": [
- "src/functions_include.php"
+ "exclude-from-classmap": [
+ "/Tests/"
]
},
"notification-url": "https://packagist.org/downloads/",
@@ -1046,46 +2019,86 @@
],
"authors": [
{
- "name": "Michael Dowling",
- "email": "mtdowling@gmail.com",
- "homepage": "https://github.com/mtdowling"
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
}
],
- "description": "PSR-7 message implementation",
- "keywords": [
- "http",
- "message",
- "stream",
- "uri"
+ "description": "Symfony Console Component",
+ "homepage": "https://symfony.com",
+ "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"
+ }
],
- "time": "2018-01-15T21:00:49+00:00"
+ "time": "2020-03-30T11:42:42+00:00"
},
{
- "name": "slim/php-view",
- "version": "2.2.1",
+ "name": "symfony/dependency-injection",
+ "version": "v5.0.8",
"source": {
"type": "git",
- "url": "https://github.com/slimphp/PHP-View.git",
- "reference": "a13ada9d7962ca1b48799c0d9ffbca4c33245aed"
+ "url": "https://github.com/symfony/dependency-injection.git",
+ "reference": "92d8b3bd896a87cdd8aba0a3dd041bc072e8cfba"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/slimphp/PHP-View/zipball/a13ada9d7962ca1b48799c0d9ffbca4c33245aed",
- "reference": "a13ada9d7962ca1b48799c0d9ffbca4c33245aed",
+ "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/92d8b3bd896a87cdd8aba0a3dd041bc072e8cfba",
+ "reference": "92d8b3bd896a87cdd8aba0a3dd041bc072e8cfba",
"shasum": ""
},
"require": {
- "psr/http-message": "^1.0"
+ "php": "^7.2.5",
+ "psr/container": "^1.0",
+ "symfony/service-contracts": "^1.1.6|^2"
+ },
+ "conflict": {
+ "symfony/config": "<5.0",
+ "symfony/finder": "<4.4",
+ "symfony/proxy-manager-bridge": "<4.4",
+ "symfony/yaml": "<4.4"
+ },
+ "provide": {
+ "psr/container-implementation": "1.0",
+ "symfony/service-implementation": "1.0"
},
"require-dev": {
- "phpunit/phpunit": "^4.8",
- "slim/slim": "^3.0"
+ "symfony/config": "^5.0",
+ "symfony/expression-language": "^4.4|^5.0",
+ "symfony/yaml": "^4.4|^5.0"
+ },
+ "suggest": {
+ "symfony/config": "",
+ "symfony/expression-language": "For using expressions in service container configuration",
+ "symfony/finder": "For using double-star glob patterns or when GLOB_BRACE portability is required",
+ "symfony/proxy-manager-bridge": "Generate service proxies to lazy load them",
+ "symfony/yaml": ""
},
"type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "5.0-dev"
+ }
+ },
"autoload": {
"psr-4": {
- "Slim\\Views\\": "src"
- }
+ "Symfony\\Component\\DependencyInjection\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
@@ -1093,59 +2106,65 @@
],
"authors": [
{
- "name": "Glenn Eggleton",
- "email": "geggleto@gmail.com"
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
}
],
- "description": "Render PHP view scripts into a PSR-7 Response object.",
- "keywords": [
- "framework",
- "php",
- "phtml",
- "renderer",
- "slim",
- "template",
- "view"
+ "description": "Symfony DependencyInjection Component",
+ "homepage": "https://symfony.com",
+ "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"
+ }
],
- "time": "2019-04-15T20:43:28+00:00"
+ "time": "2020-04-28T17:58:55+00:00"
},
{
- "name": "slim/slim",
- "version": "3.12.2",
+ "name": "symfony/dotenv",
+ "version": "v5.0.8",
"source": {
"type": "git",
- "url": "https://github.com/slimphp/Slim.git",
- "reference": "200c6143f15baa477601879b64ab2326847aac0b"
+ "url": "https://github.com/symfony/dotenv.git",
+ "reference": "28658ee990ea643c8111bac242d6ee5f3a15ef72"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/slimphp/Slim/zipball/200c6143f15baa477601879b64ab2326847aac0b",
- "reference": "200c6143f15baa477601879b64ab2326847aac0b",
+ "url": "https://api.github.com/repos/symfony/dotenv/zipball/28658ee990ea643c8111bac242d6ee5f3a15ef72",
+ "reference": "28658ee990ea643c8111bac242d6ee5f3a15ef72",
"shasum": ""
},
"require": {
- "container-interop/container-interop": "^1.2",
- "ext-json": "*",
- "ext-libxml": "*",
- "ext-simplexml": "*",
- "nikic/fast-route": "^1.0",
- "php": ">=5.5.0",
- "pimple/pimple": "^3.0",
- "psr/container": "^1.0",
- "psr/http-message": "^1.0"
- },
- "provide": {
- "psr/http-message-implementation": "1.0"
+ "php": "^7.2.5"
},
"require-dev": {
- "phpunit/phpunit": "^4.0",
- "squizlabs/php_codesniffer": "^2.5"
+ "symfony/process": "^4.4|^5.0"
},
"type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "5.0-dev"
+ }
+ },
"autoload": {
"psr-4": {
- "Slim\\": "Slim"
- }
+ "Symfony\\Component\\Dotenv\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
@@ -1153,67 +2172,73 @@
],
"authors": [
{
- "name": "Josh Lockhart",
- "email": "hello@joshlockhart.com",
- "homepage": "https://joshlockhart.com"
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
},
{
- "name": "Andrew Smith",
- "email": "a.smith@silentworks.co.uk",
- "homepage": "http://silentworks.co.uk"
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Registers environment variables from a .env file",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "dotenv",
+ "env",
+ "environment"
+ ],
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
},
{
- "name": "Rob Allen",
- "email": "rob@akrabat.com",
- "homepage": "http://akrabat.com"
+ "url": "https://github.com/fabpot",
+ "type": "github"
},
{
- "name": "Gabriel Manricks",
- "email": "gmanricks@me.com",
- "homepage": "http://gabrielmanricks.com"
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
}
],
- "description": "Slim is a PHP micro framework that helps you quickly write simple yet powerful web applications and APIs",
- "homepage": "https://slimframework.com",
- "keywords": [
- "api",
- "framework",
- "micro",
- "router"
- ],
- "time": "2019-08-20T18:46:05+00:00"
+ "time": "2020-03-27T16:56:45+00:00"
},
{
- "name": "tuupola/callable-handler",
- "version": "1.0.0",
+ "name": "symfony/error-handler",
+ "version": "v5.0.8",
"source": {
"type": "git",
- "url": "https://github.com/tuupola/callable-handler.git",
- "reference": "8b9d87f88056d4234af317d65612d7b6307a747a"
+ "url": "https://github.com/symfony/error-handler.git",
+ "reference": "949ffc17c3ac3a9f8e6232220e2da33913c04ea4"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/tuupola/callable-handler/zipball/8b9d87f88056d4234af317d65612d7b6307a747a",
- "reference": "8b9d87f88056d4234af317d65612d7b6307a747a",
+ "url": "https://api.github.com/repos/symfony/error-handler/zipball/949ffc17c3ac3a9f8e6232220e2da33913c04ea4",
+ "reference": "949ffc17c3ac3a9f8e6232220e2da33913c04ea4",
"shasum": ""
},
"require": {
- "php": "^7.1",
- "psr/http-server-middleware": "^1.0"
+ "php": "^7.2.5",
+ "psr/log": "^1.0",
+ "symfony/var-dumper": "^4.4|^5.0"
},
"require-dev": {
- "codedungeon/phpunit-result-printer": "^0.4.4",
- "overtrue/phplint": "^1.0",
- "phpunit/phpunit": "^6.5",
- "squizlabs/php_codesniffer": "^3.2",
- "tuupola/http-factory": "^0.4.0|^1.0",
- "zendframework/zend-diactoros": "^1.6.0|^2.0"
+ "symfony/http-kernel": "^4.4|^5.0",
+ "symfony/serializer": "^4.4|^5.0"
},
"type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "5.0-dev"
+ }
+ },
"autoload": {
"psr-4": {
- "Tuupola\\Middleware\\": "src"
- }
+ "Symfony\\Component\\ErrorHandler\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
@@ -1221,57 +2246,83 @@
],
"authors": [
{
- "name": "Mika Tuupola",
- "email": "tuupola@appelsiini.net",
- "homepage": "https://appelsiini.net/",
- "role": "Developer"
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
}
],
- "description": "Compatibility layer for PSR-7 double pass and PSR-15 middlewares.",
- "homepage": "https://github.com/tuupola/callable-handler",
- "keywords": [
- "middleware",
- "psr-15",
- "psr-7"
+ "description": "Symfony ErrorHandler Component",
+ "homepage": "https://symfony.com",
+ "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"
+ }
],
- "time": "2018-10-12T09:59:35+00:00"
+ "time": "2020-03-30T14:14:32+00:00"
},
{
- "name": "tuupola/cors-middleware",
- "version": "0.9.4",
+ "name": "symfony/event-dispatcher",
+ "version": "v5.0.8",
"source": {
"type": "git",
- "url": "https://github.com/tuupola/cors-middleware.git",
- "reference": "1b6d9927d7a643659cd0eb7ebeb8675b26df0a05"
+ "url": "https://github.com/symfony/event-dispatcher.git",
+ "reference": "24f40d95385774ed5c71dbf014edd047e2f2f3dc"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/tuupola/cors-middleware/zipball/1b6d9927d7a643659cd0eb7ebeb8675b26df0a05",
- "reference": "1b6d9927d7a643659cd0eb7ebeb8675b26df0a05",
+ "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/24f40d95385774ed5c71dbf014edd047e2f2f3dc",
+ "reference": "24f40d95385774ed5c71dbf014edd047e2f2f3dc",
"shasum": ""
},
"require": {
- "neomerx/cors-psr7": "^1.0.4",
- "php": "^7.1",
- "psr/http-message": "^1.0.1",
- "psr/http-server-middleware": "^1.0",
- "tuupola/callable-handler": "^0.3.0|^0.4.0|^1.0",
- "tuupola/http-factory": "^0.4.0|^1.0"
+ "php": "^7.2.5",
+ "symfony/event-dispatcher-contracts": "^2"
+ },
+ "conflict": {
+ "symfony/dependency-injection": "<4.4"
+ },
+ "provide": {
+ "psr/event-dispatcher-implementation": "1.0",
+ "symfony/event-dispatcher-implementation": "2.0"
},
"require-dev": {
- "codedungeon/phpunit-result-printer": "^0.23.2",
- "equip/dispatch": "^2.0",
- "overtrue/phplint": "^1.0",
- "phpstan/phpstan": "^0.11.4",
- "phpunit/phpunit": "^7.4",
- "squizlabs/php_codesniffer": "^3.3.1",
- "zendframework/zend-diactoros": "^1.0|^2.0"
+ "psr/log": "~1.0",
+ "symfony/config": "^4.4|^5.0",
+ "symfony/dependency-injection": "^4.4|^5.0",
+ "symfony/expression-language": "^4.4|^5.0",
+ "symfony/http-foundation": "^4.4|^5.0",
+ "symfony/service-contracts": "^1.1|^2",
+ "symfony/stopwatch": "^4.4|^5.0"
+ },
+ "suggest": {
+ "symfony/dependency-injection": "",
+ "symfony/http-kernel": ""
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "5.0-dev"
+ }
},
- "type": "library",
"autoload": {
"psr-4": {
- "Tuupola\\Middleware\\": "src"
- }
+ "Symfony\\Component\\EventDispatcher\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
@@ -1279,56 +2330,62 @@
],
"authors": [
{
- "name": "Mika Tuupola",
- "email": "tuupola@appelsiini.net",
- "homepage": "https://appelsiini.net/",
- "role": "Developer"
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
}
],
- "description": "PSR-7 and PSR-15 CORS middleware",
- "homepage": "https://github.com/tuupola/cors-middleware",
- "keywords": [
- "cors",
- "middleware",
- "psr-15",
- "psr-7"
+ "description": "Symfony EventDispatcher Component",
+ "homepage": "https://symfony.com",
+ "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"
+ }
],
- "time": "2019-03-24T08:53:13+00:00"
+ "time": "2020-03-27T16:56:45+00:00"
},
{
- "name": "tuupola/http-factory",
- "version": "1.1.0",
+ "name": "symfony/event-dispatcher-contracts",
+ "version": "v2.0.1",
"source": {
"type": "git",
- "url": "https://github.com/tuupola/http-factory.git",
- "reference": "5fbde4c65a10d09a85652684a6e569542265a749"
+ "url": "https://github.com/symfony/event-dispatcher-contracts.git",
+ "reference": "af23c2584d4577d54661c434446fb8fbed6025dd"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/tuupola/http-factory/zipball/5fbde4c65a10d09a85652684a6e569542265a749",
- "reference": "5fbde4c65a10d09a85652684a6e569542265a749",
+ "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/af23c2584d4577d54661c434446fb8fbed6025dd",
+ "reference": "af23c2584d4577d54661c434446fb8fbed6025dd",
"shasum": ""
},
"require": {
- "php": "^7.1",
- "psr/http-factory": "^1.0"
- },
- "conflict": {
- "nyholm/psr7": "<1.0"
- },
- "provide": {
- "psr/http-factory-implementation": "^1.0"
+ "php": "^7.2.5",
+ "psr/event-dispatcher": "^1"
},
- "require-dev": {
- "http-interop/http-factory-tests": "^0.5.0",
- "overtrue/phplint": "^1.0",
- "phpunit/phpunit": "^6.0|^7.0",
- "squizlabs/php_codesniffer": "^3.0"
+ "suggest": {
+ "symfony/event-dispatcher-implementation": ""
},
"type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.0-dev"
+ }
+ },
"autoload": {
"psr-4": {
- "Tuupola\\Http\\Factory\\": "src"
+ "Symfony\\Contracts\\EventDispatcher\\": ""
}
},
"notification-url": "https://packagist.org/downloads/",
@@ -1337,102 +2394,119 @@
],
"authors": [
{
- "name": "Mika Tuupola",
- "email": "tuupola@appelsiini.net",
- "homepage": "https://appelsiini.net/",
- "role": "Developer"
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
}
],
- "description": "Lightweight autodiscovering PSR-17 HTTP factories",
- "homepage": "https://github.com/tuupola/http-factory",
+ "description": "Generic abstractions related to dispatching event",
+ "homepage": "https://symfony.com",
"keywords": [
- "http",
- "psr-17",
- "psr-7"
- ],
- "time": "2019-08-07T07:10:58+00:00"
+ "abstractions",
+ "contracts",
+ "decoupling",
+ "interfaces",
+ "interoperability",
+ "standards"
+ ],
+ "time": "2019-11-18T17:27:11+00:00"
},
{
- "name": "webonyx/graphql-php",
- "version": "v0.13.8",
+ "name": "symfony/filesystem",
+ "version": "v5.0.8",
"source": {
"type": "git",
- "url": "https://github.com/webonyx/graphql-php.git",
- "reference": "6829ae58f4c59121df1f86915fb9917a2ec595e8"
+ "url": "https://github.com/symfony/filesystem.git",
+ "reference": "7cd0dafc4353a0f62e307df90b48466379c8cc91"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/webonyx/graphql-php/zipball/6829ae58f4c59121df1f86915fb9917a2ec595e8",
- "reference": "6829ae58f4c59121df1f86915fb9917a2ec595e8",
+ "url": "https://api.github.com/repos/symfony/filesystem/zipball/7cd0dafc4353a0f62e307df90b48466379c8cc91",
+ "reference": "7cd0dafc4353a0f62e307df90b48466379c8cc91",
"shasum": ""
},
"require": {
- "ext-json": "*",
- "ext-mbstring": "*",
- "php": "^7.1||^8.0"
- },
- "require-dev": {
- "doctrine/coding-standard": "^6.0",
- "phpbench/phpbench": "^0.14.0",
- "phpstan/phpstan": "^0.11.4",
- "phpstan/phpstan-phpunit": "^0.11.0",
- "phpstan/phpstan-strict-rules": "^0.11.0",
- "phpunit/phpcov": "^5.0",
- "phpunit/phpunit": "^7.2",
- "psr/http-message": "^1.0",
- "react/promise": "2.*"
- },
- "suggest": {
- "psr/http-message": "To use standard GraphQL server",
- "react/promise": "To leverage async resolving on React PHP platform"
+ "php": "^7.2.5",
+ "symfony/polyfill-ctype": "~1.8"
},
"type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "5.0-dev"
+ }
+ },
"autoload": {
"psr-4": {
- "GraphQL\\": "src/"
- }
+ "Symfony\\Component\\Filesystem\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
- "description": "A PHP port of GraphQL reference implementation",
- "homepage": "https://github.com/webonyx/graphql-php",
- "keywords": [
- "api",
- "graphql"
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
],
- "time": "2019-08-25T10:32:47+00:00"
- }
- ],
- "packages-dev": [
+ "description": "Symfony Filesystem Component",
+ "homepage": "https://symfony.com",
+ "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"
+ }
+ ],
+ "time": "2020-04-12T14:40:17+00:00"
+ },
{
- "name": "clue/block-react",
- "version": "v1.3.1",
+ "name": "symfony/finder",
+ "version": "v5.0.8",
"source": {
"type": "git",
- "url": "https://github.com/clue/reactphp-block.git",
- "reference": "2f516b28259c203d67c4c963772dd7e9db652737"
+ "url": "https://github.com/symfony/finder.git",
+ "reference": "600a52c29afc0d1caa74acbec8d3095ca7e9910d"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/clue/reactphp-block/zipball/2f516b28259c203d67c4c963772dd7e9db652737",
- "reference": "2f516b28259c203d67c4c963772dd7e9db652737",
+ "url": "https://api.github.com/repos/symfony/finder/zipball/600a52c29afc0d1caa74acbec8d3095ca7e9910d",
+ "reference": "600a52c29afc0d1caa74acbec8d3095ca7e9910d",
"shasum": ""
},
"require": {
- "php": ">=5.3",
- "react/event-loop": "^1.0 || ^0.5 || ^0.4 || ^0.3.5",
- "react/promise": "^2.7 || ^1.2.1",
- "react/promise-timer": "^1.5"
- },
- "require-dev": {
- "phpunit/phpunit": "^6.4 || ^5.7 || ^4.8.35"
+ "php": "^7.2.5"
},
"type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "5.0-dev"
+ }
+ },
"autoload": {
- "files": [
- "src/functions_include.php"
+ "psr-4": {
+ "Symfony\\Component\\Finder\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
]
},
"notification-url": "https://packagist.org/downloads/",
@@ -1441,59 +2515,66 @@
],
"authors": [
{
- "name": "Christian Lück",
- "email": "christian@lueck.tv"
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
}
],
- "description": "Lightweight library that eases integrating async components built for ReactPHP in a traditional, blocking environment.",
- "homepage": "https://github.com/clue/reactphp-block",
- "keywords": [
- "async",
- "await",
- "blocking",
- "event loop",
- "promise",
- "reactphp",
- "sleep",
- "synchronous"
+ "description": "Symfony Finder Component",
+ "homepage": "https://symfony.com",
+ "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"
+ }
],
- "time": "2019-04-09T11:45:04+00:00"
+ "time": "2020-03-27T16:56:45+00:00"
},
{
- "name": "doctrine/instantiator",
- "version": "1.2.0",
+ "name": "symfony/flex",
+ "version": "v1.6.2",
"source": {
"type": "git",
- "url": "https://github.com/doctrine/instantiator.git",
- "reference": "a2c590166b2133a4633738648b6b064edae0814a"
+ "url": "https://github.com/symfony/flex.git",
+ "reference": "e4f5a2653ca503782a31486198bd1dd1c9a47f83"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/doctrine/instantiator/zipball/a2c590166b2133a4633738648b6b064edae0814a",
- "reference": "a2c590166b2133a4633738648b6b064edae0814a",
+ "url": "https://api.github.com/repos/symfony/flex/zipball/e4f5a2653ca503782a31486198bd1dd1c9a47f83",
+ "reference": "e4f5a2653ca503782a31486198bd1dd1c9a47f83",
"shasum": ""
},
"require": {
- "php": "^7.1"
+ "composer-plugin-api": "^1.0",
+ "php": "^7.0"
},
"require-dev": {
- "doctrine/coding-standard": "^6.0",
- "ext-pdo": "*",
- "ext-phar": "*",
- "phpbench/phpbench": "^0.13",
- "phpstan/phpstan-phpunit": "^0.11",
- "phpstan/phpstan-shim": "^0.11",
- "phpunit/phpunit": "^7.0"
+ "composer/composer": "^1.0.2",
+ "symfony/dotenv": "^3.4|^4.0|^5.0",
+ "symfony/phpunit-bridge": "^3.4.19|^4.1.8|^5.0",
+ "symfony/process": "^2.7|^3.0|^4.0|^5.0"
},
- "type": "library",
+ "type": "composer-plugin",
"extra": {
"branch-alias": {
- "dev-master": "1.2.x-dev"
- }
+ "dev-master": "1.5-dev"
+ },
+ "class": "Symfony\\Flex\\Flex"
},
"autoload": {
"psr-4": {
- "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/"
+ "Symfony\\Flex\\": "src"
}
},
"notification-url": "https://packagist.org/downloads/",
@@ -1502,201 +2583,376 @@
],
"authors": [
{
- "name": "Marco Pivetta",
- "email": "ocramius@gmail.com",
- "homepage": "http://ocramius.github.com/"
+ "name": "Fabien Potencier",
+ "email": "fabien.potencier@gmail.com"
}
],
- "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"
- ],
- "time": "2019-03-17T17:37:11+00:00"
+ "description": "Composer plugin for Symfony",
+ "time": "2020-01-30T12:06:45+00:00"
},
{
- "name": "myclabs/deep-copy",
- "version": "1.9.3",
+ "name": "symfony/framework-bundle",
+ "version": "v5.0.8",
"source": {
"type": "git",
- "url": "https://github.com/myclabs/DeepCopy.git",
- "reference": "007c053ae6f31bba39dfa19a7726f56e9763bbea"
+ "url": "https://github.com/symfony/framework-bundle.git",
+ "reference": "3fd5aec4bc84750752ba1f039829362fa071e037"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/007c053ae6f31bba39dfa19a7726f56e9763bbea",
- "reference": "007c053ae6f31bba39dfa19a7726f56e9763bbea",
+ "url": "https://api.github.com/repos/symfony/framework-bundle/zipball/3fd5aec4bc84750752ba1f039829362fa071e037",
+ "reference": "3fd5aec4bc84750752ba1f039829362fa071e037",
"shasum": ""
},
"require": {
- "php": "^7.1"
+ "ext-xml": "*",
+ "php": "^7.2.5",
+ "symfony/cache": "^4.4|^5.0",
+ "symfony/config": "^5.0",
+ "symfony/dependency-injection": "^5.0.1",
+ "symfony/error-handler": "^4.4.1|^5.0.1",
+ "symfony/filesystem": "^4.4|^5.0",
+ "symfony/finder": "^4.4|^5.0",
+ "symfony/http-foundation": "^4.4|^5.0",
+ "symfony/http-kernel": "^5.0",
+ "symfony/polyfill-mbstring": "~1.0",
+ "symfony/routing": "^5.0"
},
- "replace": {
- "myclabs/deep-copy": "self.version"
+ "conflict": {
+ "doctrine/persistence": "<1.3",
+ "phpdocumentor/reflection-docblock": "<3.0",
+ "phpdocumentor/type-resolver": "<0.2.1",
+ "phpunit/phpunit": "<5.4.3",
+ "symfony/asset": "<4.4",
+ "symfony/browser-kit": "<4.4",
+ "symfony/console": "<4.4",
+ "symfony/dom-crawler": "<4.4",
+ "symfony/dotenv": "<4.4",
+ "symfony/form": "<4.4",
+ "symfony/http-client": "<4.4",
+ "symfony/lock": "<4.4",
+ "symfony/mailer": "<4.4",
+ "symfony/messenger": "<4.4",
+ "symfony/mime": "<4.4",
+ "symfony/property-info": "<4.4",
+ "symfony/serializer": "<4.4",
+ "symfony/stopwatch": "<4.4",
+ "symfony/translation": "<5.0",
+ "symfony/twig-bridge": "<4.4",
+ "symfony/twig-bundle": "<4.4",
+ "symfony/validator": "<4.4",
+ "symfony/web-profiler-bundle": "<4.4",
+ "symfony/workflow": "<4.4"
},
"require-dev": {
- "doctrine/collections": "^1.0",
- "doctrine/common": "^2.6",
- "phpunit/phpunit": "^7.1"
+ "doctrine/annotations": "~1.7",
+ "doctrine/cache": "~1.0",
+ "paragonie/sodium_compat": "^1.8",
+ "phpdocumentor/reflection-docblock": "^3.0|^4.0",
+ "symfony/asset": "^4.4|^5.0",
+ "symfony/browser-kit": "^4.4|^5.0",
+ "symfony/console": "^4.4|^5.0",
+ "symfony/css-selector": "^4.4|^5.0",
+ "symfony/dom-crawler": "^4.4|^5.0",
+ "symfony/dotenv": "^4.4|^5.0",
+ "symfony/expression-language": "^4.4|^5.0",
+ "symfony/form": "^4.4|^5.0",
+ "symfony/http-client": "^4.4|^5.0",
+ "symfony/lock": "^4.4|^5.0",
+ "symfony/mailer": "^4.4|^5.0",
+ "symfony/messenger": "^4.4|^5.0",
+ "symfony/mime": "^4.4|^5.0",
+ "symfony/polyfill-intl-icu": "~1.0",
+ "symfony/process": "^4.4|^5.0",
+ "symfony/property-info": "^4.4|^5.0",
+ "symfony/security-csrf": "^4.4|^5.0",
+ "symfony/security-http": "^4.4|^5.0",
+ "symfony/serializer": "^4.4|^5.0",
+ "symfony/stopwatch": "^4.4|^5.0",
+ "symfony/string": "~5.0.0",
+ "symfony/translation": "^5.0",
+ "symfony/twig-bundle": "^4.4|^5.0",
+ "symfony/validator": "^4.4|^5.0",
+ "symfony/web-link": "^4.4|^5.0",
+ "symfony/workflow": "^4.4|^5.0",
+ "symfony/yaml": "^4.4|^5.0",
+ "twig/twig": "^2.10|^3.0"
+ },
+ "suggest": {
+ "ext-apcu": "For best performance of the system caches",
+ "symfony/console": "For using the console commands",
+ "symfony/form": "For using forms",
+ "symfony/property-info": "For using the property_info service",
+ "symfony/serializer": "For using the serializer service",
+ "symfony/validator": "For using validation",
+ "symfony/web-link": "For using web links, features such as preloading, prefetching or prerendering",
+ "symfony/yaml": "For using the debug:config and lint:yaml commands"
+ },
+ "type": "symfony-bundle",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "5.0-dev"
+ }
},
- "type": "library",
"autoload": {
"psr-4": {
- "DeepCopy\\": "src/DeepCopy/"
+ "Symfony\\Bundle\\FrameworkBundle\\": ""
},
- "files": [
- "src/DeepCopy/deep_copy.php"
+ "exclude-from-classmap": [
+ "/Tests/"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
- "description": "Create deep copies (clones) of your objects",
- "keywords": [
- "clone",
- "copy",
- "duplicate",
- "object",
- "object graph"
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony FrameworkBundle",
+ "homepage": "https://symfony.com",
+ "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"
+ }
],
- "time": "2019-08-09T12:45:53+00:00"
+ "time": "2020-04-28T17:58:55+00:00"
},
{
- "name": "phar-io/manifest",
- "version": "1.0.3",
+ "name": "symfony/http-foundation",
+ "version": "v5.0.8",
"source": {
"type": "git",
- "url": "https://github.com/phar-io/manifest.git",
- "reference": "7761fcacf03b4d4f16e7ccb606d4879ca431fcf4"
+ "url": "https://github.com/symfony/http-foundation.git",
+ "reference": "e47fdf8b24edc12022ba52923150ec6484d7f57d"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/phar-io/manifest/zipball/7761fcacf03b4d4f16e7ccb606d4879ca431fcf4",
- "reference": "7761fcacf03b4d4f16e7ccb606d4879ca431fcf4",
+ "url": "https://api.github.com/repos/symfony/http-foundation/zipball/e47fdf8b24edc12022ba52923150ec6484d7f57d",
+ "reference": "e47fdf8b24edc12022ba52923150ec6484d7f57d",
"shasum": ""
},
"require": {
- "ext-dom": "*",
- "ext-phar": "*",
- "phar-io/version": "^2.0",
- "php": "^5.6 || ^7.0"
+ "php": "^7.2.5",
+ "symfony/mime": "^4.4|^5.0",
+ "symfony/polyfill-mbstring": "~1.1"
+ },
+ "require-dev": {
+ "predis/predis": "~1.0",
+ "symfony/expression-language": "^4.4|^5.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "1.0.x-dev"
+ "dev-master": "5.0-dev"
}
},
"autoload": {
- "classmap": [
- "src/"
+ "psr-4": {
+ "Symfony\\Component\\HttpFoundation\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
- "BSD-3-Clause"
+ "MIT"
],
"authors": [
{
- "name": "Arne Blankerts",
- "email": "arne@blankerts.de",
- "role": "Developer"
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
},
{
- "name": "Sebastian Heuer",
- "email": "sebastian@phpeople.de",
- "role": "Developer"
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony HttpFoundation Component",
+ "homepage": "https://symfony.com",
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
},
{
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de",
- "role": "Developer"
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
}
],
- "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)",
- "time": "2018-07-08T19:23:20+00:00"
+ "time": "2020-04-18T20:50:06+00:00"
},
{
- "name": "phar-io/version",
- "version": "2.0.1",
+ "name": "symfony/http-kernel",
+ "version": "v5.0.8",
"source": {
"type": "git",
- "url": "https://github.com/phar-io/version.git",
- "reference": "45a2ec53a73c70ce41d55cedef9063630abaf1b6"
+ "url": "https://github.com/symfony/http-kernel.git",
+ "reference": "3565e51eecd06106304baba5ccb7ba89db2d7d2b"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/phar-io/version/zipball/45a2ec53a73c70ce41d55cedef9063630abaf1b6",
- "reference": "45a2ec53a73c70ce41d55cedef9063630abaf1b6",
+ "url": "https://api.github.com/repos/symfony/http-kernel/zipball/3565e51eecd06106304baba5ccb7ba89db2d7d2b",
+ "reference": "3565e51eecd06106304baba5ccb7ba89db2d7d2b",
"shasum": ""
},
"require": {
- "php": "^5.6 || ^7.0"
+ "php": "^7.2.5",
+ "psr/log": "~1.0",
+ "symfony/error-handler": "^4.4|^5.0",
+ "symfony/event-dispatcher": "^5.0",
+ "symfony/http-foundation": "^4.4|^5.0",
+ "symfony/polyfill-ctype": "^1.8",
+ "symfony/polyfill-php73": "^1.9"
+ },
+ "conflict": {
+ "symfony/browser-kit": "<4.4",
+ "symfony/cache": "<5.0",
+ "symfony/config": "<5.0",
+ "symfony/console": "<4.4",
+ "symfony/dependency-injection": "<4.4",
+ "symfony/doctrine-bridge": "<5.0",
+ "symfony/form": "<5.0",
+ "symfony/http-client": "<5.0",
+ "symfony/mailer": "<5.0",
+ "symfony/messenger": "<5.0",
+ "symfony/translation": "<5.0",
+ "symfony/twig-bridge": "<5.0",
+ "symfony/validator": "<5.0",
+ "twig/twig": "<2.4"
+ },
+ "provide": {
+ "psr/log-implementation": "1.0"
+ },
+ "require-dev": {
+ "psr/cache": "~1.0",
+ "symfony/browser-kit": "^4.4|^5.0",
+ "symfony/config": "^5.0",
+ "symfony/console": "^4.4|^5.0",
+ "symfony/css-selector": "^4.4|^5.0",
+ "symfony/dependency-injection": "^4.4|^5.0",
+ "symfony/dom-crawler": "^4.4|^5.0",
+ "symfony/expression-language": "^4.4|^5.0",
+ "symfony/finder": "^4.4|^5.0",
+ "symfony/process": "^4.4|^5.0",
+ "symfony/routing": "^4.4|^5.0",
+ "symfony/stopwatch": "^4.4|^5.0",
+ "symfony/translation": "^4.4|^5.0",
+ "symfony/translation-contracts": "^1.1|^2",
+ "twig/twig": "^2.4|^3.0"
+ },
+ "suggest": {
+ "symfony/browser-kit": "",
+ "symfony/config": "",
+ "symfony/console": "",
+ "symfony/dependency-injection": ""
},
"type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "5.0-dev"
+ }
+ },
"autoload": {
- "classmap": [
- "src/"
+ "psr-4": {
+ "Symfony\\Component\\HttpKernel\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
- "BSD-3-Clause"
+ "MIT"
],
"authors": [
{
- "name": "Arne Blankerts",
- "email": "arne@blankerts.de",
- "role": "Developer"
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
},
{
- "name": "Sebastian Heuer",
- "email": "sebastian@phpeople.de",
- "role": "Developer"
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony HttpKernel Component",
+ "homepage": "https://symfony.com",
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
},
{
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de",
- "role": "Developer"
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
}
],
- "description": "Library for handling version information and constraints",
- "time": "2018-07-08T19:19:57+00:00"
+ "time": "2020-04-28T18:53:25+00:00"
},
{
- "name": "phpdocumentor/reflection-common",
- "version": "1.0.1",
+ "name": "symfony/mime",
+ "version": "v5.0.8",
"source": {
"type": "git",
- "url": "https://github.com/phpDocumentor/ReflectionCommon.git",
- "reference": "21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6"
+ "url": "https://github.com/symfony/mime.git",
+ "reference": "5d6c81c39225a750f3f43bee15f03093fb9aaa0b"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6",
- "reference": "21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6",
+ "url": "https://api.github.com/repos/symfony/mime/zipball/5d6c81c39225a750f3f43bee15f03093fb9aaa0b",
+ "reference": "5d6c81c39225a750f3f43bee15f03093fb9aaa0b",
"shasum": ""
},
"require": {
- "php": ">=5.5"
+ "php": "^7.2.5",
+ "symfony/polyfill-intl-idn": "^1.10",
+ "symfony/polyfill-mbstring": "^1.0"
+ },
+ "conflict": {
+ "symfony/mailer": "<4.4"
},
"require-dev": {
- "phpunit/phpunit": "^4.6"
+ "egulias/email-validator": "^2.1.10",
+ "symfony/dependency-injection": "^4.4|^5.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "1.0.x-dev"
+ "dev-master": "5.0-dev"
}
},
"autoload": {
"psr-4": {
- "phpDocumentor\\Reflection\\": [
- "src"
- ]
- }
+ "Symfony\\Component\\Mime\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
@@ -1704,58 +2960,71 @@
],
"authors": [
{
- "name": "Jaap van Otterdijk",
- "email": "opensource@ijaap.nl"
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
}
],
- "description": "Common reflection classes used by phpdocumentor to reflect the code structure",
- "homepage": "http://www.phpdoc.org",
+ "description": "A library to manipulate MIME messages",
+ "homepage": "https://symfony.com",
"keywords": [
- "FQSEN",
- "phpDocumentor",
- "phpdoc",
- "reflection",
- "static analysis"
+ "mime",
+ "mime-type"
+ ],
+ "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"
+ }
],
- "time": "2017-09-11T18:02:19+00:00"
+ "time": "2020-04-17T03:29:44+00:00"
},
{
- "name": "phpdocumentor/reflection-docblock",
- "version": "4.3.1",
+ "name": "symfony/polyfill-intl-idn",
+ "version": "v1.15.0",
"source": {
"type": "git",
- "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git",
- "reference": "bdd9f737ebc2a01c06ea7ff4308ec6697db9b53c"
+ "url": "https://github.com/symfony/polyfill-intl-idn.git",
+ "reference": "47bd6aa45beb1cd7c6a16b7d1810133b728bdfcf"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/bdd9f737ebc2a01c06ea7ff4308ec6697db9b53c",
- "reference": "bdd9f737ebc2a01c06ea7ff4308ec6697db9b53c",
+ "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/47bd6aa45beb1cd7c6a16b7d1810133b728bdfcf",
+ "reference": "47bd6aa45beb1cd7c6a16b7d1810133b728bdfcf",
"shasum": ""
},
"require": {
- "php": "^7.0",
- "phpdocumentor/reflection-common": "^1.0.0",
- "phpdocumentor/type-resolver": "^0.4.0",
- "webmozart/assert": "^1.0"
+ "php": ">=5.3.3",
+ "symfony/polyfill-mbstring": "^1.3",
+ "symfony/polyfill-php72": "^1.10"
},
- "require-dev": {
- "doctrine/instantiator": "~1.0.5",
- "mockery/mockery": "^1.0",
- "phpunit/phpunit": "^6.4"
+ "suggest": {
+ "ext-intl": "For best performance"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "4.x-dev"
+ "dev-master": "1.15-dev"
}
},
"autoload": {
"psr-4": {
- "phpDocumentor\\Reflection\\": [
- "src/"
- ]
- }
+ "Symfony\\Polyfill\\Intl\\Idn\\": ""
+ },
+ "files": [
+ "bootstrap.php"
+ ]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
@@ -1763,47 +3032,73 @@
],
"authors": [
{
- "name": "Mike van Riel",
- "email": "me@mikevanriel.com"
+ "name": "Laurent Bassin",
+ "email": "laurent@bassin.info"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony polyfill for intl's idn_to_ascii and idn_to_utf8 functions",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "compatibility",
+ "idn",
+ "intl",
+ "polyfill",
+ "portable",
+ "shim"
+ ],
+ "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"
}
],
- "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.",
- "time": "2019-04-30T17:48:53+00:00"
+ "time": "2020-03-09T19:04:49+00:00"
},
{
- "name": "phpdocumentor/type-resolver",
- "version": "0.4.0",
+ "name": "symfony/polyfill-mbstring",
+ "version": "v1.15.0",
"source": {
"type": "git",
- "url": "https://github.com/phpDocumentor/TypeResolver.git",
- "reference": "9c977708995954784726e25d0cd1dddf4e65b0f7"
+ "url": "https://github.com/symfony/polyfill-mbstring.git",
+ "reference": "81ffd3a9c6d707be22e3012b827de1c9775fc5ac"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/9c977708995954784726e25d0cd1dddf4e65b0f7",
- "reference": "9c977708995954784726e25d0cd1dddf4e65b0f7",
+ "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/81ffd3a9c6d707be22e3012b827de1c9775fc5ac",
+ "reference": "81ffd3a9c6d707be22e3012b827de1c9775fc5ac",
"shasum": ""
},
"require": {
- "php": "^5.5 || ^7.0",
- "phpdocumentor/reflection-common": "^1.0"
+ "php": ">=5.3.3"
},
- "require-dev": {
- "mockery/mockery": "^0.9.4",
- "phpunit/phpunit": "^5.2||^4.8.24"
+ "suggest": {
+ "ext-mbstring": "For best performance"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "1.0.x-dev"
+ "dev-master": "1.15-dev"
}
},
"autoload": {
"psr-4": {
- "phpDocumentor\\Reflection\\": [
- "src/"
- ]
- }
+ "Symfony\\Polyfill\\Mbstring\\": ""
+ },
+ "files": [
+ "bootstrap.php"
+ ]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
@@ -1811,47 +3106,72 @@
],
"authors": [
{
- "name": "Mike van Riel",
- "email": "me@mikevanriel.com"
+ "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"
+ ],
+ "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"
}
],
- "time": "2017-07-14T14:27:02+00:00"
+ "time": "2020-03-09T19:04:49+00:00"
},
{
- "name": "phpspec/prophecy",
- "version": "1.8.1",
+ "name": "symfony/polyfill-php73",
+ "version": "v1.15.0",
"source": {
"type": "git",
- "url": "https://github.com/phpspec/prophecy.git",
- "reference": "1927e75f4ed19131ec9bcc3b002e07fb1173ee76"
+ "url": "https://github.com/symfony/polyfill-php73.git",
+ "reference": "0f27e9f464ea3da33cbe7ca3bdf4eb66def9d0f7"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/phpspec/prophecy/zipball/1927e75f4ed19131ec9bcc3b002e07fb1173ee76",
- "reference": "1927e75f4ed19131ec9bcc3b002e07fb1173ee76",
+ "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/0f27e9f464ea3da33cbe7ca3bdf4eb66def9d0f7",
+ "reference": "0f27e9f464ea3da33cbe7ca3bdf4eb66def9d0f7",
"shasum": ""
},
"require": {
- "doctrine/instantiator": "^1.0.2",
- "php": "^5.3|^7.0",
- "phpdocumentor/reflection-docblock": "^2.0|^3.0.2|^4.0",
- "sebastian/comparator": "^1.1|^2.0|^3.0",
- "sebastian/recursion-context": "^1.0|^2.0|^3.0"
- },
- "require-dev": {
- "phpspec/phpspec": "^2.5|^3.2",
- "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.5 || ^7.1"
+ "php": ">=5.3.3"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "1.8.x-dev"
+ "dev-master": "1.15-dev"
}
},
"autoload": {
"psr-4": {
- "Prophecy\\": "src/Prophecy"
- }
+ "Symfony\\Polyfill\\Php73\\": ""
+ },
+ "files": [
+ "bootstrap.php"
+ ],
+ "classmap": [
+ "Resources/stubs"
+ ]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
@@ -1859,860 +3179,930 @@
],
"authors": [
{
- "name": "Konstantin Kudryashov",
- "email": "ever.zet@gmail.com",
- "homepage": "http://everzet.com"
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
},
{
- "name": "Marcello Duarte",
- "email": "marcello.duarte@gmail.com"
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
}
],
- "description": "Highly opinionated mocking framework for PHP 5.3+",
- "homepage": "https://github.com/phpspec/prophecy",
+ "description": "Symfony polyfill backporting some PHP 7.3+ features to lower PHP versions",
+ "homepage": "https://symfony.com",
"keywords": [
- "Double",
- "Dummy",
- "fake",
- "mock",
- "spy",
- "stub"
+ "compatibility",
+ "polyfill",
+ "portable",
+ "shim"
+ ],
+ "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"
+ }
],
- "time": "2019-06-13T12:50:23+00:00"
+ "time": "2020-02-27T09:26:54+00:00"
},
{
- "name": "phpunit/php-code-coverage",
- "version": "6.1.4",
+ "name": "symfony/routing",
+ "version": "v5.0.8",
"source": {
"type": "git",
- "url": "https://github.com/sebastianbergmann/php-code-coverage.git",
- "reference": "807e6013b00af69b6c5d9ceb4282d0393dbb9d8d"
+ "url": "https://github.com/symfony/routing.git",
+ "reference": "9b18480a6e101f8d9ab7c483ace7c19441be5111"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/807e6013b00af69b6c5d9ceb4282d0393dbb9d8d",
- "reference": "807e6013b00af69b6c5d9ceb4282d0393dbb9d8d",
+ "url": "https://api.github.com/repos/symfony/routing/zipball/9b18480a6e101f8d9ab7c483ace7c19441be5111",
+ "reference": "9b18480a6e101f8d9ab7c483ace7c19441be5111",
"shasum": ""
},
"require": {
- "ext-dom": "*",
- "ext-xmlwriter": "*",
- "php": "^7.1",
- "phpunit/php-file-iterator": "^2.0",
- "phpunit/php-text-template": "^1.2.1",
- "phpunit/php-token-stream": "^3.0",
- "sebastian/code-unit-reverse-lookup": "^1.0.1",
- "sebastian/environment": "^3.1 || ^4.0",
- "sebastian/version": "^2.0.1",
- "theseer/tokenizer": "^1.1"
+ "php": "^7.2.5"
+ },
+ "conflict": {
+ "symfony/config": "<5.0",
+ "symfony/dependency-injection": "<4.4",
+ "symfony/yaml": "<4.4"
},
"require-dev": {
- "phpunit/phpunit": "^7.0"
+ "doctrine/annotations": "~1.2",
+ "psr/log": "~1.0",
+ "symfony/config": "^5.0",
+ "symfony/dependency-injection": "^4.4|^5.0",
+ "symfony/expression-language": "^4.4|^5.0",
+ "symfony/http-foundation": "^4.4|^5.0",
+ "symfony/yaml": "^4.4|^5.0"
},
"suggest": {
- "ext-xdebug": "^2.6.0"
+ "doctrine/annotations": "For using the annotation loader",
+ "symfony/config": "For using the all-in-one router or any loader",
+ "symfony/expression-language": "For using expression matching",
+ "symfony/http-foundation": "For using a Symfony Request object",
+ "symfony/yaml": "For using the YAML loader"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "6.1-dev"
+ "dev-master": "5.0-dev"
}
},
"autoload": {
- "classmap": [
- "src/"
+ "psr-4": {
+ "Symfony\\Component\\Routing\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
- "BSD-3-Clause"
+ "MIT"
],
"authors": [
{
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de",
- "role": "lead"
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
}
],
- "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.",
- "homepage": "https://github.com/sebastianbergmann/php-code-coverage",
+ "description": "Symfony Routing Component",
+ "homepage": "https://symfony.com",
"keywords": [
- "coverage",
- "testing",
- "xunit"
+ "router",
+ "routing",
+ "uri",
+ "url"
+ ],
+ "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"
+ }
],
- "time": "2018-10-31T16:06:48+00:00"
+ "time": "2020-04-21T21:02:50+00:00"
},
{
- "name": "phpunit/php-file-iterator",
- "version": "2.0.2",
+ "name": "symfony/service-contracts",
+ "version": "v2.0.1",
"source": {
"type": "git",
- "url": "https://github.com/sebastianbergmann/php-file-iterator.git",
- "reference": "050bedf145a257b1ff02746c31894800e5122946"
+ "url": "https://github.com/symfony/service-contracts.git",
+ "reference": "144c5e51266b281231e947b51223ba14acf1a749"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/050bedf145a257b1ff02746c31894800e5122946",
- "reference": "050bedf145a257b1ff02746c31894800e5122946",
+ "url": "https://api.github.com/repos/symfony/service-contracts/zipball/144c5e51266b281231e947b51223ba14acf1a749",
+ "reference": "144c5e51266b281231e947b51223ba14acf1a749",
"shasum": ""
},
"require": {
- "php": "^7.1"
+ "php": "^7.2.5",
+ "psr/container": "^1.0"
},
- "require-dev": {
- "phpunit/phpunit": "^7.1"
+ "suggest": {
+ "symfony/service-implementation": ""
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "2.0.x-dev"
+ "dev-master": "2.0-dev"
}
},
"autoload": {
- "classmap": [
- "src/"
- ]
+ "psr-4": {
+ "Symfony\\Contracts\\Service\\": ""
+ }
},
"notification-url": "https://packagist.org/downloads/",
"license": [
- "BSD-3-Clause"
+ "MIT"
],
"authors": [
{
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de",
- "role": "lead"
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
}
],
- "description": "FilterIterator implementation that filters files based on a list of suffixes.",
- "homepage": "https://github.com/sebastianbergmann/php-file-iterator/",
+ "description": "Generic abstractions related to writing services",
+ "homepage": "https://symfony.com",
"keywords": [
- "filesystem",
- "iterator"
- ],
- "time": "2018-09-13T20:33:42+00:00"
+ "abstractions",
+ "contracts",
+ "decoupling",
+ "interfaces",
+ "interoperability",
+ "standards"
+ ],
+ "time": "2019-11-18T17:27:11+00:00"
},
{
- "name": "phpunit/php-text-template",
- "version": "1.2.1",
+ "name": "symfony/var-dumper",
+ "version": "v5.0.8",
"source": {
"type": "git",
- "url": "https://github.com/sebastianbergmann/php-text-template.git",
- "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686"
+ "url": "https://github.com/symfony/var-dumper.git",
+ "reference": "09de28632f16f81058a85fcf318397218272a07b"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/31f8b717e51d9a2afca6c9f046f5d69fc27c8686",
- "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686",
+ "url": "https://api.github.com/repos/symfony/var-dumper/zipball/09de28632f16f81058a85fcf318397218272a07b",
+ "reference": "09de28632f16f81058a85fcf318397218272a07b",
"shasum": ""
},
"require": {
- "php": ">=5.3.3"
+ "php": "^7.2.5",
+ "symfony/polyfill-mbstring": "~1.0"
+ },
+ "conflict": {
+ "phpunit/phpunit": "<5.4.3",
+ "symfony/console": "<4.4"
+ },
+ "require-dev": {
+ "ext-iconv": "*",
+ "symfony/console": "^4.4|^5.0",
+ "symfony/process": "^4.4|^5.0",
+ "twig/twig": "^2.4|^3.0"
+ },
+ "suggest": {
+ "ext-iconv": "To convert non-UTF-8 strings to UTF-8 (or symfony/polyfill-iconv in case ext-iconv cannot be used).",
+ "ext-intl": "To show region name in time zone dump",
+ "symfony/console": "To use the ServerDumpCommand and/or the bin/var-dump-server script"
},
+ "bin": [
+ "Resources/bin/var-dump-server"
+ ],
"type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "5.0-dev"
+ }
+ },
"autoload": {
- "classmap": [
- "src/"
+ "files": [
+ "Resources/functions/dump.php"
+ ],
+ "psr-4": {
+ "Symfony\\Component\\VarDumper\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
- "BSD-3-Clause"
+ "MIT"
],
"authors": [
{
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de",
- "role": "lead"
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
}
],
- "description": "Simple template engine.",
- "homepage": "https://github.com/sebastianbergmann/php-text-template/",
+ "description": "Symfony mechanism for exploring and dumping PHP variables",
+ "homepage": "https://symfony.com",
"keywords": [
- "template"
+ "debug",
+ "dump"
],
- "time": "2015-06-21T13:50:34+00:00"
+ "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"
+ }
+ ],
+ "time": "2020-04-12T16:45:47+00:00"
},
{
- "name": "phpunit/php-timer",
- "version": "2.1.2",
+ "name": "symfony/var-exporter",
+ "version": "v5.0.8",
"source": {
"type": "git",
- "url": "https://github.com/sebastianbergmann/php-timer.git",
- "reference": "1038454804406b0b5f5f520358e78c1c2f71501e"
+ "url": "https://github.com/symfony/var-exporter.git",
+ "reference": "5d18811da9e1ae2bb86b0a97fb2d784e27ffd59f"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/1038454804406b0b5f5f520358e78c1c2f71501e",
- "reference": "1038454804406b0b5f5f520358e78c1c2f71501e",
+ "url": "https://api.github.com/repos/symfony/var-exporter/zipball/5d18811da9e1ae2bb86b0a97fb2d784e27ffd59f",
+ "reference": "5d18811da9e1ae2bb86b0a97fb2d784e27ffd59f",
"shasum": ""
},
"require": {
- "php": "^7.1"
+ "php": "^7.2.5"
},
"require-dev": {
- "phpunit/phpunit": "^7.0"
+ "symfony/var-dumper": "^4.4|^5.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "2.1-dev"
+ "dev-master": "5.0-dev"
}
},
"autoload": {
- "classmap": [
- "src/"
+ "psr-4": {
+ "Symfony\\Component\\VarExporter\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
- "BSD-3-Clause"
+ "MIT"
],
"authors": [
{
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de",
- "role": "lead"
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
}
],
- "description": "Utility class for timing",
- "homepage": "https://github.com/sebastianbergmann/php-timer/",
+ "description": "A blend of var_export() + serialize() to turn any serializable data structure to plain PHP code",
+ "homepage": "https://symfony.com",
"keywords": [
- "timer"
+ "clone",
+ "construct",
+ "export",
+ "hydrate",
+ "instantiate",
+ "serialize"
+ ],
+ "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"
+ }
],
- "time": "2019-06-07T04:22:29+00:00"
+ "time": "2020-04-15T15:59:10+00:00"
},
{
- "name": "phpunit/php-token-stream",
- "version": "3.1.0",
+ "name": "symfony/yaml",
+ "version": "v5.0.8",
"source": {
"type": "git",
- "url": "https://github.com/sebastianbergmann/php-token-stream.git",
- "reference": "e899757bb3df5ff6e95089132f32cd59aac2220a"
+ "url": "https://github.com/symfony/yaml.git",
+ "reference": "482fb4e710e5af3e0e78015f19aa716ad953392f"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/e899757bb3df5ff6e95089132f32cd59aac2220a",
- "reference": "e899757bb3df5ff6e95089132f32cd59aac2220a",
+ "url": "https://api.github.com/repos/symfony/yaml/zipball/482fb4e710e5af3e0e78015f19aa716ad953392f",
+ "reference": "482fb4e710e5af3e0e78015f19aa716ad953392f",
"shasum": ""
},
"require": {
- "ext-tokenizer": "*",
- "php": "^7.1"
+ "php": "^7.2.5",
+ "symfony/polyfill-ctype": "~1.8"
+ },
+ "conflict": {
+ "symfony/console": "<4.4"
},
"require-dev": {
- "phpunit/phpunit": "^7.0"
+ "symfony/console": "^4.4|^5.0"
+ },
+ "suggest": {
+ "symfony/console": "For validating YAML files using the lint command"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "3.1-dev"
+ "dev-master": "5.0-dev"
}
},
"autoload": {
- "classmap": [
- "src/"
+ "psr-4": {
+ "Symfony\\Component\\Yaml\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
- "BSD-3-Clause"
+ "MIT"
],
"authors": [
{
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de"
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
}
],
- "description": "Wrapper around PHP's tokenizer extension.",
- "homepage": "https://github.com/sebastianbergmann/php-token-stream/",
- "keywords": [
- "tokenizer"
+ "description": "Symfony Yaml Component",
+ "homepage": "https://symfony.com",
+ "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"
+ }
],
- "time": "2019-07-25T05:29:42+00:00"
+ "time": "2020-04-28T17:58:55+00:00"
},
{
- "name": "phpunit/phpunit",
- "version": "7.5.15",
+ "name": "tivie/php-os-detector",
+ "version": "1.1.0",
"source": {
"type": "git",
- "url": "https://github.com/sebastianbergmann/phpunit.git",
- "reference": "d79c053d972856b8b941bb233e39dc521a5093f0"
+ "url": "https://github.com/tivie/php-os-detector.git",
+ "reference": "9461dcd85c00e03842264f2fc8ccdc8d46867321"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/d79c053d972856b8b941bb233e39dc521a5093f0",
- "reference": "d79c053d972856b8b941bb233e39dc521a5093f0",
+ "url": "https://api.github.com/repos/tivie/php-os-detector/zipball/9461dcd85c00e03842264f2fc8ccdc8d46867321",
+ "reference": "9461dcd85c00e03842264f2fc8ccdc8d46867321",
"shasum": ""
},
"require": {
- "doctrine/instantiator": "^1.1",
- "ext-dom": "*",
- "ext-json": "*",
- "ext-libxml": "*",
- "ext-mbstring": "*",
- "ext-xml": "*",
- "myclabs/deep-copy": "^1.7",
- "phar-io/manifest": "^1.0.2",
- "phar-io/version": "^2.0",
- "php": "^7.1",
- "phpspec/prophecy": "^1.7",
- "phpunit/php-code-coverage": "^6.0.7",
- "phpunit/php-file-iterator": "^2.0.1",
- "phpunit/php-text-template": "^1.2.1",
- "phpunit/php-timer": "^2.1",
- "sebastian/comparator": "^3.0",
- "sebastian/diff": "^3.0",
- "sebastian/environment": "^4.0",
- "sebastian/exporter": "^3.1",
- "sebastian/global-state": "^2.0",
- "sebastian/object-enumerator": "^3.0.3",
- "sebastian/resource-operations": "^2.0",
- "sebastian/version": "^2.0.1"
- },
- "conflict": {
- "phpunit/phpunit-mock-objects": "*"
+ "php": ">=5.3.0"
},
"require-dev": {
- "ext-pdo": "*"
- },
- "suggest": {
- "ext-soap": "*",
- "ext-xdebug": "*",
- "phpunit/php-invoker": "^2.0"
+ "phpunit/phpunit": "4.3.*"
},
- "bin": [
- "phpunit"
- ],
"type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "7.5-dev"
- }
- },
"autoload": {
- "classmap": [
- "src/"
- ]
+ "psr-4": {
+ "Tivie\\OS\\": "src/"
+ }
},
"notification-url": "https://packagist.org/downloads/",
"license": [
- "BSD-3-Clause"
+ "APACHE 2.0"
],
"authors": [
{
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de",
- "role": "lead"
+ "name": "Estevão Soares dos Santos",
+ "email": "estevao@soares-dos-santos.com"
}
],
- "description": "The PHP Unit Testing framework.",
- "homepage": "https://phpunit.de/",
+ "description": "A small utility library that detects the OS the server is running on",
+ "homepage": "http://tivie.github.com/php-os-detector/",
"keywords": [
- "phpunit",
- "testing",
- "xunit"
- ],
- "time": "2019-08-21T07:05:16+00:00"
+ "detection",
+ "detector",
+ "identification",
+ "operating system",
+ "os",
+ "os detection"
+ ],
+ "time": "2017-10-21T03:33:59+00:00"
},
{
- "name": "sebastian/code-unit-reverse-lookup",
- "version": "1.0.1",
+ "name": "webonyx/graphql-php",
+ "version": "v0.13.8",
"source": {
"type": "git",
- "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git",
- "reference": "4419fcdb5eabb9caa61a27c7a1db532a6b55dd18"
+ "url": "https://github.com/webonyx/graphql-php.git",
+ "reference": "6829ae58f4c59121df1f86915fb9917a2ec595e8"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/4419fcdb5eabb9caa61a27c7a1db532a6b55dd18",
- "reference": "4419fcdb5eabb9caa61a27c7a1db532a6b55dd18",
+ "url": "https://api.github.com/repos/webonyx/graphql-php/zipball/6829ae58f4c59121df1f86915fb9917a2ec595e8",
+ "reference": "6829ae58f4c59121df1f86915fb9917a2ec595e8",
"shasum": ""
},
"require": {
- "php": "^5.6 || ^7.0"
+ "ext-json": "*",
+ "ext-mbstring": "*",
+ "php": "^7.1||^8.0"
},
"require-dev": {
- "phpunit/phpunit": "^5.7 || ^6.0"
+ "doctrine/coding-standard": "^6.0",
+ "phpbench/phpbench": "^0.14.0",
+ "phpstan/phpstan": "^0.11.4",
+ "phpstan/phpstan-phpunit": "^0.11.0",
+ "phpstan/phpstan-strict-rules": "^0.11.0",
+ "phpunit/phpcov": "^5.0",
+ "phpunit/phpunit": "^7.2",
+ "psr/http-message": "^1.0",
+ "react/promise": "2.*"
+ },
+ "suggest": {
+ "psr/http-message": "To use standard GraphQL server",
+ "react/promise": "To leverage async resolving on React PHP platform"
},
"type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.0.x-dev"
+ "autoload": {
+ "psr-4": {
+ "GraphQL\\": "src/"
}
},
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
"notification-url": "https://packagist.org/downloads/",
"license": [
- "BSD-3-Clause"
+ "MIT"
],
- "authors": [
- {
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de"
- }
+ "description": "A PHP port of GraphQL reference implementation",
+ "homepage": "https://github.com/webonyx/graphql-php",
+ "keywords": [
+ "api",
+ "graphql"
],
- "description": "Looks up which function or method a line of code belongs to",
- "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/",
- "time": "2017-03-04T06:30:41+00:00"
+ "time": "2019-08-25T10:32:47+00:00"
},
{
- "name": "sebastian/comparator",
- "version": "3.0.2",
+ "name": "wyrihaximus/cpu-core-detector",
+ "version": "1.0.2",
"source": {
"type": "git",
- "url": "https://github.com/sebastianbergmann/comparator.git",
- "reference": "5de4fc177adf9bce8df98d8d141a7559d7ccf6da"
+ "url": "https://github.com/WyriHaximus/php-cpu-core-detector.git",
+ "reference": "fff4194540a8111c298e5e707bcfc778c4c9ddbb"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/5de4fc177adf9bce8df98d8d141a7559d7ccf6da",
- "reference": "5de4fc177adf9bce8df98d8d141a7559d7ccf6da",
+ "url": "https://api.github.com/repos/WyriHaximus/php-cpu-core-detector/zipball/fff4194540a8111c298e5e707bcfc778c4c9ddbb",
+ "reference": "fff4194540a8111c298e5e707bcfc778c4c9ddbb",
"shasum": ""
},
"require": {
- "php": "^7.1",
- "sebastian/diff": "^3.0",
- "sebastian/exporter": "^3.1"
+ "php": "^5.4||^7.0",
+ "react/child-process": "^0.6 || ^0.5 || ^0.4",
+ "react/socket": "^1.2",
+ "tivie/php-os-detector": "^1.1",
+ "wyrihaximus/file-descriptors": "^1.0 || ^0.1",
+ "wyrihaximus/react-child-process-promise": "^2.0.2",
+ "wyrihaximus/ticking-promise": "^1.5"
},
"require-dev": {
- "phpunit/phpunit": "^7.1"
+ "phake/phake": "~1.0.6",
+ "phpunit/phpunit": "^4.0||^5.0",
+ "squizlabs/php_codesniffer": "^1.5.6",
+ "vectorface/dunit": "~2.0"
},
"type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "3.0-dev"
- }
- },
"autoload": {
- "classmap": [
- "src/"
+ "psr-4": {
+ "WyriHaximus\\CpuCoreDetector\\": "src/"
+ },
+ "files": [
+ "src/functions_include.php"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
- "BSD-3-Clause"
+ "MIT"
],
"authors": [
{
- "name": "Jeff Welch",
- "email": "whatthejeff@gmail.com"
- },
- {
- "name": "Volker Dusch",
- "email": "github@wallbash.com"
- },
- {
- "name": "Bernhard Schussek",
- "email": "bschussek@2bepublished.at"
- },
- {
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de"
+ "name": "Cees-Jan Kiewiet",
+ "email": "ceesjank@gmail.com"
}
],
- "description": "Provides the functionality to compare PHP values for equality",
- "homepage": "https://github.com/sebastianbergmann/comparator",
- "keywords": [
- "comparator",
- "compare",
- "equality"
- ],
- "time": "2018-07-12T15:12:46+00:00"
+ "description": "Detect CPU core count and assign tasks to a specific code",
+ "time": "2019-01-19T21:54:34+00:00"
},
{
- "name": "sebastian/diff",
- "version": "3.0.2",
+ "name": "wyrihaximus/file-descriptors",
+ "version": "1.0.0",
"source": {
"type": "git",
- "url": "https://github.com/sebastianbergmann/diff.git",
- "reference": "720fcc7e9b5cf384ea68d9d930d480907a0c1a29"
+ "url": "https://github.com/WyriHaximus/php-file-descriptors.git",
+ "reference": "6b3073409b94912354cc9b6bde600797940c4edf"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/720fcc7e9b5cf384ea68d9d930d480907a0c1a29",
- "reference": "720fcc7e9b5cf384ea68d9d930d480907a0c1a29",
+ "url": "https://api.github.com/repos/WyriHaximus/php-file-descriptors/zipball/6b3073409b94912354cc9b6bde600797940c4edf",
+ "reference": "6b3073409b94912354cc9b6bde600797940c4edf",
"shasum": ""
},
"require": {
- "php": "^7.1"
+ "php": "^7.2",
+ "tivie/php-os-detector": "^1.1"
},
"require-dev": {
- "phpunit/phpunit": "^7.5 || ^8.0",
- "symfony/process": "^2 || ^3.3 || ^4"
+ "api-clients/cs-fixer-config": "^1.1",
+ "api-clients/test-utilities": "^5.4",
+ "wyrihaximus/iterator-or-array-to-array": "^1.0"
},
"type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "3.0-dev"
- }
- },
"autoload": {
- "classmap": [
- "src/"
- ]
+ "psr-4": {
+ "WyriHaximus\\FileDescriptors\\": "src/"
+ }
},
"notification-url": "https://packagist.org/downloads/",
"license": [
- "BSD-3-Clause"
+ "MIT"
],
"authors": [
{
- "name": "Kore Nordmann",
- "email": "mail@kore-nordmann.de"
- },
- {
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de"
+ "name": "Cees-Jan Kiewiet",
+ "email": "ceesjank@gmail.com"
}
],
- "description": "Diff implementation",
- "homepage": "https://github.com/sebastianbergmann/diff",
- "keywords": [
- "diff",
- "udiff",
- "unidiff",
- "unified diff"
- ],
- "time": "2019-02-04T06:01:07+00:00"
+ "description": "List open file descriptors for the current process cross platform",
+ "time": "2019-01-15T16:08:10+00:00"
},
{
- "name": "sebastian/environment",
- "version": "4.2.2",
+ "name": "wyrihaximus/json-throwable",
+ "version": "2.0.0",
"source": {
"type": "git",
- "url": "https://github.com/sebastianbergmann/environment.git",
- "reference": "f2a2c8e1c97c11ace607a7a667d73d47c19fe404"
+ "url": "https://github.com/WyriHaximus/php-json-throwable.git",
+ "reference": "8b11703f5974492f4c4e0b313836d0aed2eef01d"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/f2a2c8e1c97c11ace607a7a667d73d47c19fe404",
- "reference": "f2a2c8e1c97c11ace607a7a667d73d47c19fe404",
+ "url": "https://api.github.com/repos/WyriHaximus/php-json-throwable/zipball/8b11703f5974492f4c4e0b313836d0aed2eef01d",
+ "reference": "8b11703f5974492f4c4e0b313836d0aed2eef01d",
"shasum": ""
},
"require": {
- "php": "^7.1"
+ "doctrine/instantiator": "^1.0.5",
+ "php": "^7.0",
+ "wyrihaximus/json-utilities": "^1.0"
},
"require-dev": {
- "phpunit/phpunit": "^7.5"
- },
- "suggest": {
- "ext-posix": "*"
+ "api-clients/test-utilities": "^4.3"
},
"type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "4.2-dev"
- }
- },
"autoload": {
- "classmap": [
- "src/"
+ "psr-4": {
+ "WyriHaximus\\": "src/"
+ },
+ "files": [
+ "src/functions_include.php"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
- "BSD-3-Clause"
+ "MIT"
],
"authors": [
{
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de"
+ "name": "Cees-Jan Kiewiet",
+ "email": "ceesjank@gmail.com"
}
],
- "description": "Provides functionality to handle HHVM/PHP environments",
- "homepage": "http://www.github.com/sebastianbergmann/environment",
- "keywords": [
- "Xdebug",
- "environment",
- "hhvm"
- ],
- "time": "2019-05-05T09:05:15+00:00"
+ "description": "JSON encode and decode throwables and exceptions",
+ "time": "2018-03-15T13:05:59+00:00"
},
{
- "name": "sebastian/exporter",
- "version": "3.1.1",
+ "name": "wyrihaximus/json-utilities",
+ "version": "1.1.0",
"source": {
"type": "git",
- "url": "https://github.com/sebastianbergmann/exporter.git",
- "reference": "06a9a5947f47b3029d76118eb5c22802e5869687"
+ "url": "https://github.com/WyriHaximus/php-json-utilities.git",
+ "reference": "f0f5007df750f8e44c8ba8ce9ee8e701472ea4c7"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/06a9a5947f47b3029d76118eb5c22802e5869687",
- "reference": "06a9a5947f47b3029d76118eb5c22802e5869687",
+ "url": "https://api.github.com/repos/WyriHaximus/php-json-utilities/zipball/f0f5007df750f8e44c8ba8ce9ee8e701472ea4c7",
+ "reference": "f0f5007df750f8e44c8ba8ce9ee8e701472ea4c7",
"shasum": ""
},
"require": {
- "php": "^7.0",
- "sebastian/recursion-context": "^3.0"
+ "php": "^7.2"
},
"require-dev": {
- "ext-mbstring": "*",
- "phpunit/phpunit": "^6.0"
+ "api-clients/cs-fixer-config": "^1.1",
+ "api-clients/test-utilities": "^5.2"
},
"type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "3.1.x-dev"
- }
- },
"autoload": {
- "classmap": [
- "src/"
+ "psr-4": {
+ "WyriHaximus\\": "src/"
+ },
+ "files": [
+ "src/functions_include.php"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
- "BSD-3-Clause"
+ "MIT"
],
"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"
+ "name": "Cees-Jan Kiewiet",
+ "email": "ceesjank@gmail.com"
}
],
- "description": "Provides the functionality to export PHP variables for visualization",
- "homepage": "http://www.github.com/sebastianbergmann/exporter",
- "keywords": [
- "export",
- "exporter"
- ],
- "time": "2019-08-11T12:43:14+00:00"
+ "description": "Utilities for php-json-* packages",
+ "time": "2018-12-25T10:58:17+00:00"
},
{
- "name": "sebastian/global-state",
- "version": "2.0.0",
+ "name": "wyrihaximus/react-child-process-messenger",
+ "version": "2.10.0",
"source": {
"type": "git",
- "url": "https://github.com/sebastianbergmann/global-state.git",
- "reference": "e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4"
+ "url": "https://github.com/WyriHaximus/reactphp-child-process-messenger.git",
+ "reference": "813bd47c69935edc1a054438f47622b629430e13"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4",
- "reference": "e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4",
+ "url": "https://api.github.com/repos/WyriHaximus/reactphp-child-process-messenger/zipball/813bd47c69935edc1a054438f47622b629430e13",
+ "reference": "813bd47c69935edc1a054438f47622b629430e13",
"shasum": ""
},
"require": {
- "php": "^7.0"
+ "cakephp/utility": "^3.4",
+ "doctrine/inflector": "^1.0",
+ "evenement/evenement": "^3.0 || ^2.0 || ^1.0",
+ "indigophp/hash-compat": "^1.0",
+ "paragonie/random_compat": "^9.0 || ^2.0",
+ "php": "^7.0 || ^5.4",
+ "react/child-process": "^0.6 || ^0.5 | ^0.4",
+ "react/promise": "^2.2",
+ "react/promise-stream": "^1.1",
+ "react/promise-timer": "^1.5",
+ "react/socket": "^1.0 || ^0.8.1",
+ "wyrihaximus/file-descriptors": "^1.0 || ^0.1",
+ "wyrihaximus/json-throwable": "^2.0 || ^1.1.1",
+ "wyrihaximus/ticking-promise": "^1.4"
},
"require-dev": {
- "phpunit/phpunit": "^6.0"
- },
- "suggest": {
- "ext-uopz": "*"
+ "clue/block-react": "^1.2",
+ "friendsofphp/php-cs-fixer": "^2.2",
+ "jakub-onderka/php-console-highlighter": "^0.4",
+ "jakub-onderka/php-parallel-lint": "^1.0.0",
+ "phpunit/phpunit": "^4.8.35||^5.0||^6.0"
},
"type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "2.0-dev"
- }
- },
"autoload": {
- "classmap": [
- "src/"
- ]
+ "psr-4": {
+ "WyriHaximus\\React\\ChildProcess\\Messenger\\": "src/"
+ }
},
"notification-url": "https://packagist.org/downloads/",
"license": [
- "BSD-3-Clause"
+ "MIT"
],
"authors": [
{
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de"
+ "name": "Cees-Jan Kiewiet",
+ "email": "ceesjank@gmail.com",
+ "homepage": "http://wyrihaximus.net/"
}
],
- "description": "Snapshotting of global state",
- "homepage": "http://www.github.com/sebastianbergmann/global-state",
- "keywords": [
- "global state"
- ],
- "time": "2017-04-27T15:39:26+00:00"
+ "description": "Messenger decorator for react/child-process",
+ "time": "2019-08-28T15:10:40+00:00"
},
{
- "name": "sebastian/object-enumerator",
- "version": "3.0.3",
+ "name": "wyrihaximus/react-child-process-pool",
+ "version": "1.6.0",
"source": {
"type": "git",
- "url": "https://github.com/sebastianbergmann/object-enumerator.git",
- "reference": "7cfd9e65d11ffb5af41198476395774d4c8a84c5"
+ "url": "https://github.com/WyriHaximus/reactphp-child-process-pool.git",
+ "reference": "c5063e10d12894e20f17eb1aadf2437232450c08"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/7cfd9e65d11ffb5af41198476395774d4c8a84c5",
- "reference": "7cfd9e65d11ffb5af41198476395774d4c8a84c5",
+ "url": "https://api.github.com/repos/WyriHaximus/reactphp-child-process-pool/zipball/c5063e10d12894e20f17eb1aadf2437232450c08",
+ "reference": "c5063e10d12894e20f17eb1aadf2437232450c08",
"shasum": ""
},
"require": {
- "php": "^7.0",
- "sebastian/object-reflector": "^1.1.1",
- "sebastian/recursion-context": "^3.0"
+ "evenement/evenement": "^3.0 || ^2.0",
+ "php": "^7.0 || ^5.4",
+ "react/event-loop": "^1.1",
+ "wyrihaximus/cpu-core-detector": "^1.0.2",
+ "wyrihaximus/file-descriptors": "^1.0 || ^0.1",
+ "wyrihaximus/react-child-process-messenger": "^2.10",
+ "wyrihaximus/ticking-promise": "^1.5"
},
"require-dev": {
- "phpunit/phpunit": "^6.0"
+ "clue/block-react": "^1.3",
+ "phake/phake": "^2.2.1",
+ "phpunit/phpunit": "^4.8.35||^5.0",
+ "squizlabs/php_codesniffer": "^3.3.2",
+ "vectorface/dunit": "~2.0"
},
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "3.0.x-dev"
- }
+ "suggest": {
+ "wyrihaximus/react-child-process-pool-redis-queue": "Redis RPC queue"
},
+ "type": "library",
"autoload": {
- "classmap": [
- "src/"
+ "psr-4": {
+ "WyriHaximus\\React\\ChildProcess\\Pool\\": "src/"
+ },
+ "files": [
+ "src/functions_include.php"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
- "BSD-3-Clause"
+ "MIT"
],
"authors": [
{
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de"
+ "name": "Cees-Jan Kiewiet",
+ "email": "ceesjank@gmail.com"
}
],
- "description": "Traverses array structures and object graphs to enumerate all referenced objects",
- "homepage": "https://github.com/sebastianbergmann/object-enumerator/",
- "time": "2017-08-03T12:35:26+00:00"
+ "description": "Pool wyrihaximus/react-child-process-messenger processes",
+ "time": "2019-08-28T16:54:46+00:00"
},
{
- "name": "sebastian/object-reflector",
- "version": "1.1.1",
+ "name": "wyrihaximus/react-child-process-promise",
+ "version": "2.0.2",
"source": {
"type": "git",
- "url": "https://github.com/sebastianbergmann/object-reflector.git",
- "reference": "773f97c67f28de00d397be301821b06708fca0be"
+ "url": "https://github.com/WyriHaximus/reactphp-child-process-promise.git",
+ "reference": "206fe3d5180c7b6f757e8aaa9fef687f42d43164"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/773f97c67f28de00d397be301821b06708fca0be",
- "reference": "773f97c67f28de00d397be301821b06708fca0be",
+ "url": "https://api.github.com/repos/WyriHaximus/reactphp-child-process-promise/zipball/206fe3d5180c7b6f757e8aaa9fef687f42d43164",
+ "reference": "206fe3d5180c7b6f757e8aaa9fef687f42d43164",
"shasum": ""
},
"require": {
- "php": "^7.0"
+ "php": "^5.4||^7.0",
+ "react/child-process": "^0.6 || ^0.5 || ^0.4",
+ "react/promise": "^2.7",
+ "wyrihaximus/ticking-promise": "^1.5.2"
},
"require-dev": {
- "phpunit/phpunit": "^6.0"
+ "phpunit/phpunit": "^4.4||^5.0",
+ "squizlabs/php_codesniffer": "^3.3.2",
+ "vectorface/dunit": "^2.0"
},
"type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.1-dev"
- }
- },
"autoload": {
- "classmap": [
- "src/"
+ "psr-4": {
+ "WyriHaximus\\React\\": "src/"
+ },
+ "files": [
+ "src/functions_include.php"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
- "BSD-3-Clause"
+ "MIT"
],
"authors": [
{
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de"
+ "name": "Cees-Jan Kiewiet",
+ "email": "ceesjank@gmail.com",
+ "homepage": "http://wyrihaximus.net/"
}
],
- "description": "Allows reflection of object attributes, including inherited and non-public ones",
- "homepage": "https://github.com/sebastianbergmann/object-reflector/",
- "time": "2017-03-29T09:07:27+00:00"
+ "description": "Wrapping ticks into a promise",
+ "time": "2019-01-18T21:42:17+00:00"
},
{
- "name": "sebastian/recursion-context",
- "version": "3.0.0",
+ "name": "wyrihaximus/ticking-promise",
+ "version": "1.6.3",
"source": {
"type": "git",
- "url": "https://github.com/sebastianbergmann/recursion-context.git",
- "reference": "5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8"
+ "url": "https://github.com/WyriHaximus/TickingPromise.git",
+ "reference": "4bb99024402bb7526de8880f3dab0c1f0858def5"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8",
- "reference": "5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8",
+ "url": "https://api.github.com/repos/WyriHaximus/TickingPromise/zipball/4bb99024402bb7526de8880f3dab0c1f0858def5",
+ "reference": "4bb99024402bb7526de8880f3dab0c1f0858def5",
"shasum": ""
},
"require": {
- "php": "^7.0"
+ "php": "^7.0 || ^5.4",
+ "react/event-loop": "^1.0 || ^0.5 || ^0.4",
+ "react/promise": "~2.1"
},
"require-dev": {
- "phpunit/phpunit": "^6.0"
+ "phpunit/phpunit": "~4.4",
+ "squizlabs/php_codesniffer": "^1.5.6",
+ "vectorface/dunit": "~1.4"
},
"type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "3.0.x-dev"
- }
- },
"autoload": {
- "classmap": [
- "src/"
+ "psr-4": {
+ "WyriHaximus\\React\\": "src/"
+ },
+ "files": [
+ "src/functions_include.php"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
- "BSD-3-Clause"
+ "MIT"
],
"authors": [
{
- "name": "Jeff Welch",
- "email": "whatthejeff@gmail.com"
- },
- {
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de"
- },
- {
- "name": "Adam Harvey",
- "email": "aharvey@php.net"
+ "name": "Cees-Jan Kiewiet",
+ "email": "ceesjank@gmail.com",
+ "homepage": "http://wyrihaximus.net/"
}
],
- "description": "Provides functionality to recursively process PHP variables",
- "homepage": "http://www.github.com/sebastianbergmann/recursion-context",
- "time": "2017-03-03T06:23:57+00:00"
+ "description": "Wrapping ticks into a promise",
+ "time": "2018-04-05T12:36:50+00:00"
},
{
- "name": "sebastian/resource-operations",
- "version": "2.0.1",
+ "name": "yosymfony/resource-watcher",
+ "version": "v2.0.1",
"source": {
"type": "git",
- "url": "https://github.com/sebastianbergmann/resource-operations.git",
- "reference": "4d7a795d35b889bf80a0cc04e08d77cedfa917a9"
+ "url": "https://github.com/yosymfony/resource-watcher.git",
+ "reference": "a8c34f704e6bd4f786c97f3c0ba65bd86cb2bd73"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/4d7a795d35b889bf80a0cc04e08d77cedfa917a9",
- "reference": "4d7a795d35b889bf80a0cc04e08d77cedfa917a9",
+ "url": "https://api.github.com/repos/yosymfony/resource-watcher/zipball/a8c34f704e6bd4f786c97f3c0ba65bd86cb2bd73",
+ "reference": "a8c34f704e6bd4f786c97f3c0ba65bd86cb2bd73",
"shasum": ""
},
"require": {
- "php": "^7.1"
+ "php": ">=5.6",
+ "symfony/finder": "^2.7|^3.0|^4.0|^5.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^5.7",
+ "symfony/filesystem": "^2.7|^3.0|^4.0|^5.0"
},
"type": "library",
"extra": {
@@ -2721,99 +4111,146 @@
}
},
"autoload": {
- "classmap": [
- "src/"
- ]
+ "psr-4": {
+ "Yosymfony\\ResourceWatcher\\": "src/"
+ }
},
"notification-url": "https://packagist.org/downloads/",
"license": [
- "BSD-3-Clause"
+ "MIT"
],
"authors": [
{
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de"
+ "name": "Victor Puertas",
+ "email": "vpgugr@gmail.com"
}
],
- "description": "Provides a list of PHP built-in functions that operate on resources",
- "homepage": "https://www.github.com/sebastianbergmann/resource-operations",
- "time": "2018-10-04T04:07:39+00:00"
- },
+ "description": "A simple resource watcher using Symfony Finder",
+ "homepage": "http://yosymfony.com",
+ "keywords": [
+ "finder",
+ "resources",
+ "symfony",
+ "watcher"
+ ],
+ "time": "2020-01-04T15:36:55+00:00"
+ }
+ ],
+ "packages-dev": [
{
- "name": "sebastian/version",
- "version": "2.0.1",
+ "name": "symfony/browser-kit",
+ "version": "v5.0.8",
"source": {
"type": "git",
- "url": "https://github.com/sebastianbergmann/version.git",
- "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019"
+ "url": "https://github.com/symfony/browser-kit.git",
+ "reference": "0fa03cfaf1155eedbef871eef1a64c427e624c56"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/99732be0ddb3361e16ad77b68ba41efc8e979019",
- "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019",
+ "url": "https://api.github.com/repos/symfony/browser-kit/zipball/0fa03cfaf1155eedbef871eef1a64c427e624c56",
+ "reference": "0fa03cfaf1155eedbef871eef1a64c427e624c56",
"shasum": ""
},
"require": {
- "php": ">=5.6"
+ "php": "^7.2.5",
+ "symfony/dom-crawler": "^4.4|^5.0"
+ },
+ "require-dev": {
+ "symfony/css-selector": "^4.4|^5.0",
+ "symfony/http-client": "^4.4|^5.0",
+ "symfony/mime": "^4.4|^5.0",
+ "symfony/process": "^4.4|^5.0"
+ },
+ "suggest": {
+ "symfony/process": ""
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "2.0.x-dev"
+ "dev-master": "5.0-dev"
}
},
"autoload": {
- "classmap": [
- "src/"
+ "psr-4": {
+ "Symfony\\Component\\BrowserKit\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
- "BSD-3-Clause"
+ "MIT"
],
"authors": [
{
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de",
- "role": "lead"
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony BrowserKit Component",
+ "homepage": "https://symfony.com",
+ "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"
}
],
- "description": "Library that helps with managing the version number of Git-hosted PHP projects",
- "homepage": "https://github.com/sebastianbergmann/version",
- "time": "2016-10-03T07:35:21+00:00"
+ "time": "2020-03-30T11:42:42+00:00"
},
{
- "name": "symfony/polyfill-ctype",
- "version": "v1.12.0",
+ "name": "symfony/dom-crawler",
+ "version": "v5.0.8",
"source": {
"type": "git",
- "url": "https://github.com/symfony/polyfill-ctype.git",
- "reference": "550ebaac289296ce228a706d0867afc34687e3f4"
+ "url": "https://github.com/symfony/dom-crawler.git",
+ "reference": "892311d23066844a267ac1a903d8a9d79968a1a7"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/550ebaac289296ce228a706d0867afc34687e3f4",
- "reference": "550ebaac289296ce228a706d0867afc34687e3f4",
+ "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/892311d23066844a267ac1a903d8a9d79968a1a7",
+ "reference": "892311d23066844a267ac1a903d8a9d79968a1a7",
"shasum": ""
},
"require": {
- "php": ">=5.3.3"
+ "php": "^7.2.5",
+ "symfony/polyfill-ctype": "~1.8",
+ "symfony/polyfill-mbstring": "~1.0"
+ },
+ "conflict": {
+ "masterminds/html5": "<2.6"
+ },
+ "require-dev": {
+ "masterminds/html5": "^2.6",
+ "symfony/css-selector": "^4.4|^5.0"
},
"suggest": {
- "ext-ctype": "For best performance"
+ "symfony/css-selector": ""
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "1.12-dev"
+ "dev-master": "5.0-dev"
}
},
"autoload": {
"psr-4": {
- "Symfony\\Polyfill\\Ctype\\": ""
+ "Symfony\\Component\\DomCrawler\\": ""
},
- "files": [
- "bootstrap.php"
+ "exclude-from-classmap": [
+ "/Tests/"
]
},
"notification-url": "https://packagist.org/downloads/",
@@ -2822,95 +4259,78 @@
],
"authors": [
{
- "name": "Gert de Pagter",
- "email": "BackEndTea@gmail.com"
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
},
{
"name": "Symfony Community",
"homepage": "https://symfony.com/contributors"
}
],
- "description": "Symfony polyfill for ctype functions",
+ "description": "Symfony DomCrawler Component",
"homepage": "https://symfony.com",
- "keywords": [
- "compatibility",
- "ctype",
- "polyfill",
- "portable"
- ],
- "time": "2019-08-06T08:03:45+00:00"
- },
- {
- "name": "theseer/tokenizer",
- "version": "1.1.3",
- "source": {
- "type": "git",
- "url": "https://github.com/theseer/tokenizer.git",
- "reference": "11336f6f84e16a720dae9d8e6ed5019efa85a0f9"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/theseer/tokenizer/zipball/11336f6f84e16a720dae9d8e6ed5019efa85a0f9",
- "reference": "11336f6f84e16a720dae9d8e6ed5019efa85a0f9",
- "shasum": ""
- },
- "require": {
- "ext-dom": "*",
- "ext-tokenizer": "*",
- "ext-xmlwriter": "*",
- "php": "^7.0"
- },
- "type": "library",
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
+ "funding": [
{
- "name": "Arne Blankerts",
- "email": "arne@blankerts.de",
- "role": "Developer"
+ "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"
}
],
- "description": "A small library for converting tokenized PHP source code into XML and potentially other formats",
- "time": "2019-06-13T22:48:21+00:00"
+ "time": "2020-03-30T11:42:42+00:00"
},
{
- "name": "webmozart/assert",
- "version": "1.5.0",
+ "name": "symfony/phpunit-bridge",
+ "version": "v5.0.8",
"source": {
"type": "git",
- "url": "https://github.com/webmozart/assert.git",
- "reference": "88e6d84706d09a236046d686bbea96f07b3a34f4"
+ "url": "https://github.com/symfony/phpunit-bridge.git",
+ "reference": "00b8da18a52fa842b7a39613fb0a63720a354e74"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/webmozart/assert/zipball/88e6d84706d09a236046d686bbea96f07b3a34f4",
- "reference": "88e6d84706d09a236046d686bbea96f07b3a34f4",
+ "url": "https://api.github.com/repos/symfony/phpunit-bridge/zipball/00b8da18a52fa842b7a39613fb0a63720a354e74",
+ "reference": "00b8da18a52fa842b7a39613fb0a63720a354e74",
"shasum": ""
},
"require": {
- "php": "^5.3.3 || ^7.0",
- "symfony/polyfill-ctype": "^1.8"
+ "php": ">=5.5.9"
},
- "require-dev": {
- "phpunit/phpunit": "^4.8.36 || ^7.5.13"
+ "conflict": {
+ "phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0|<6.4,>=6.0|9.1.2"
},
- "type": "library",
+ "suggest": {
+ "symfony/error-handler": "For tracking deprecated interfaces usages at runtime with DebugClassLoader"
+ },
+ "bin": [
+ "bin/simple-phpunit"
+ ],
+ "type": "symfony-bridge",
"extra": {
"branch-alias": {
- "dev-master": "1.3-dev"
+ "dev-master": "5.0-dev"
+ },
+ "thanks": {
+ "name": "phpunit/phpunit",
+ "url": "https://github.com/sebastianbergmann/phpunit"
}
},
"autoload": {
+ "files": [
+ "bootstrap.php"
+ ],
"psr-4": {
- "Webmozart\\Assert\\": "src/"
- }
+ "Symfony\\Bridge\\PhpUnit\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
@@ -2918,17 +4338,31 @@
],
"authors": [
{
- "name": "Bernhard Schussek",
- "email": "bschussek@gmail.com"
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
}
],
- "description": "Assertions to validate method input/output with nice error messages.",
- "keywords": [
- "assert",
- "check",
- "validate"
+ "description": "Symfony PHPUnit Bridge",
+ "homepage": "https://symfony.com",
+ "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"
+ }
],
- "time": "2019-08-24T08:43:50+00:00"
+ "time": "2020-04-28T17:58:55+00:00"
}
],
"aliases": [],
@@ -2937,7 +4371,11 @@
"prefer-stable": false,
"prefer-lowest": false,
"platform": {
- "php": "^7.1"
+ "php": "^7.3",
+ "ext-ctype": "*",
+ "ext-iconv": "*",
+ "ext-json": "*"
},
- "platform-dev": []
+ "platform-dev": [],
+ "plugin-api-version": "1.1.0"
}
diff --git a/config/bootstrap.php b/config/bootstrap.php
new file mode 100644
index 0000000..55560fb
--- /dev/null
+++ b/config/bootstrap.php
@@ -0,0 +1,23 @@
+=1.2)
+if (is_array($env = @include dirname(__DIR__).'/.env.local.php') && (!isset($env['APP_ENV']) || ($_SERVER['APP_ENV'] ?? $_ENV['APP_ENV'] ?? $env['APP_ENV']) === $env['APP_ENV'])) {
+ (new Dotenv(false))->populate($env);
+} else {
+ // load all the .env files
+ (new Dotenv(false))->loadEnv(dirname(__DIR__).'/.env');
+}
+
+$_SERVER += $_ENV;
+$_SERVER['APP_ENV'] = $_ENV['APP_ENV'] = ($_SERVER['APP_ENV'] ?? $_ENV['APP_ENV'] ?? null) ?: 'dev';
+$_SERVER['APP_DEBUG'] = $_SERVER['APP_DEBUG'] ?? $_ENV['APP_DEBUG'] ?? 'prod' !== $_SERVER['APP_ENV'];
+$_SERVER['APP_DEBUG'] = $_ENV['APP_DEBUG'] = (int) $_SERVER['APP_DEBUG'] || filter_var($_SERVER['APP_DEBUG'], FILTER_VALIDATE_BOOLEAN) ? '1' : '0';
diff --git a/config/bundles.php b/config/bundles.php
new file mode 100644
index 0000000..49d3fb6
--- /dev/null
+++ b/config/bundles.php
@@ -0,0 +1,5 @@
+ ['all' => true],
+];
diff --git a/config/packages/cache.yaml b/config/packages/cache.yaml
new file mode 100644
index 0000000..6899b72
--- /dev/null
+++ b/config/packages/cache.yaml
@@ -0,0 +1,19 @@
+framework:
+ cache:
+ # Unique name of your app: used to compute stable namespaces for cache keys.
+ #prefix_seed: your_vendor_name/app_name
+
+ # The "app" cache stores to the filesystem by default.
+ # The data in this cache should persist between deploys.
+ # Other options include:
+
+ # Redis
+ #app: cache.adapter.redis
+ #default_redis_provider: redis://localhost
+
+ # APCu (not recommended with heavy random-write workloads as memory fragmentation can cause perf issues)
+ #app: cache.adapter.apcu
+
+ # Namespaced pools use the above "app" backend by default
+ #pools:
+ #my.dedicated.cache: null
diff --git a/config/packages/framework.yaml b/config/packages/framework.yaml
new file mode 100644
index 0000000..6089f4b
--- /dev/null
+++ b/config/packages/framework.yaml
@@ -0,0 +1,16 @@
+framework:
+ secret: '%env(APP_SECRET)%'
+ #csrf_protection: true
+ #http_method_override: true
+
+ # Enables session support. Note that the session will ONLY be started if you read or write from it.
+ # Remove or comment this section to explicitly disable session support.
+ session:
+ handler_id: null
+ cookie_secure: auto
+ cookie_samesite: lax
+
+ #esi: true
+ #fragments: true
+ php_errors:
+ log: true
diff --git a/config/packages/prod/routing.yaml b/config/packages/prod/routing.yaml
new file mode 100644
index 0000000..b3e6a0a
--- /dev/null
+++ b/config/packages/prod/routing.yaml
@@ -0,0 +1,3 @@
+framework:
+ router:
+ strict_requirements: null
diff --git a/config/packages/routing.yaml b/config/packages/routing.yaml
new file mode 100644
index 0000000..7e97762
--- /dev/null
+++ b/config/packages/routing.yaml
@@ -0,0 +1,3 @@
+framework:
+ router:
+ utf8: true
diff --git a/config/packages/test/framework.yaml b/config/packages/test/framework.yaml
new file mode 100644
index 0000000..d051c84
--- /dev/null
+++ b/config/packages/test/framework.yaml
@@ -0,0 +1,4 @@
+framework:
+ test: true
+ session:
+ storage_id: session.storage.mock_file
diff --git a/config/routes.yaml b/config/routes.yaml
new file mode 100644
index 0000000..2eef6da
--- /dev/null
+++ b/config/routes.yaml
@@ -0,0 +1,30 @@
+app_index:
+ path: /
+ controller: App\Controller\HomeController::index
+
+app_ruc_individual:
+ path: /api/v1/ruc/{ruc<\d{11}>}
+ controller: App\Controller\ConsultController::ruc
+
+app_userSol:
+ path: /api/v1/user-sol/{ruc<\d{11}>}/{user}
+ controller: App\Controller\ConsultController::userSol
+
+app_dni_individual:
+ path: /api/v1/dni/{dni<\d{8}>}
+ controller: App\Controller\ConsultController::dni
+
+app_ruc_multiple:
+ path: /api/v1/ruc
+ controller: App\Controller\ConsultMultipleController::ruc
+ methods: POST
+
+app_dni_multiple:
+ path: /api/v1/dni
+ controller: App\Controller\ConsultMultipleController::dni
+ methods: POST
+
+app_graphql:
+ path: /api/graph
+ controller: App\Controller\GraphController::query
+ methods: POST
\ No newline at end of file
diff --git a/config/routes/dev/framework.yaml b/config/routes/dev/framework.yaml
new file mode 100644
index 0000000..bcbbf13
--- /dev/null
+++ b/config/routes/dev/framework.yaml
@@ -0,0 +1,3 @@
+_errors:
+ resource: '@FrameworkBundle/Resources/config/routing/errors.xml'
+ prefix: /_error
diff --git a/config/services.yaml b/config/services.yaml
new file mode 100644
index 0000000..d8c0124
--- /dev/null
+++ b/config/services.yaml
@@ -0,0 +1,62 @@
+# This file is the entry point to configure your own services.
+# Files in the packages/ subdirectory configure your dependencies.
+
+# Put parameters here that don't need to change on each machine where the app is deployed
+# https://symfony.com/doc/current/best_practices/configuration.html#application-related-configuration
+parameters:
+ token: '%env(API_TOKEN)%'
+
+services:
+ # default configuration for services in *this* file
+ _defaults:
+ autowire: true # Automatically injects dependencies in your services.
+ autoconfigure: true # Automatically registers your services as commands, event subscribers, etc.
+
+ # makes classes in src/ available to be used as services
+ # this creates a service per class whose id is the fully-qualified class name
+ App\:
+ resource: '../src/*'
+ exclude: '../src/{DependencyInjection,Entity,Migrations,Tests,Kernel.php}'
+
+ # controllers are imported separately to make sure services can be injected
+ # as action arguments even if you don't extend any base controller class
+ App\Controller\:
+ resource: '../src/Controller'
+ tags: ['controller.service_arguments']
+
+ App\Resolver\:
+ resource: '../src/Resolver'
+ public: true
+ App\Service\:
+ resource: '../src/Service'
+ public: true
+ App\Types\:
+ resource: '../src/Types'
+ public: true
+
+ Peru\Http\ContextClient:
+ Peru\Http\ClientInterface: '@Peru\Http\ContextClient'
+ Peru\Http\Async\HttpClient:
+ Peru\Http\Async\ClientInterface: '@Peru\Http\Async\HttpClient'
+
+ Peru\Sunat\RucParser:
+ Peru\Sunat\HtmlParser:
+ Peru\Sunat\Ruc:
+ Peru\Services\RucInterface: '@Peru\Sunat\Ruc'
+ Peru\Sunat\Async\Ruc:
+ public: true
+ Peru\Sunat\UserValidator:
+ public: true
+
+ Peru\Jne\DniParser:
+ Peru\Jne\Dni:
+ Peru\Services\DniInterface: '@Peru\Jne\Dni'
+ Peru\Jne\Async\Dni:
+ public: true
+
+ GraphQL\Type\Schema:
+ factory: ['@App\Factory\GraphqlSchemaFactory', 'create']
+
+ App\EventSubscriber\TokenSubscriber:
+ arguments:
+ $token: '%token%'
\ No newline at end of file
diff --git a/config/services_test.yaml b/config/services_test.yaml
new file mode 100644
index 0000000..47d6f81
--- /dev/null
+++ b/config/services_test.yaml
@@ -0,0 +1,15 @@
+services:
+ React\EventLoop\StreamSelectLoop: ~
+ reactphp.event_loop:
+ alias: 'React\EventLoop\StreamSelectLoop'
+ public: true
+
+ App\Tests\Stub\HttpClientStub:
+ arguments:
+ - '@Peru\Http\Async\HttpClient'
+ App\Tests\Stub\ClientStubDecorator:
+ arguments:
+ - '@Peru\Http\ContextClient'
+ Peru\Http\Async\ClientInterface:
+ alias: 'App\Tests\Stub\HttpClientStub'
+ Peru\Http\ClientInterface: '@App\Tests\Stub\ClientStubDecorator'
\ No newline at end of file
diff --git a/docker-compose.yml b/docker-compose.yml
index 9d1cc0d..bdfb4cb 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -1,18 +1,11 @@
-version: '2'
-
-volumes:
- logs:
- driver: local
+version: '3'
services:
- slim:
- image: php:7.1-alpine
+ symfony:
+ image: php:7.4-alpine
working_dir: /var/www
- command: php -S 0.0.0.0:8080 -t public public/index.php
- environment:
- docker: "true"
+ command: vendor/bin/server watch 0.0.0.0:8080 --adapter=App\\AppKernelAdapter
ports:
- 8080:8080
volumes:
- .:/var/www
- - logs:/var/www/logs
diff --git a/docker/.htaccess b/docker/.htaccess
deleted file mode 100644
index bff1cb6..0000000
--- a/docker/.htaccess
+++ /dev/null
@@ -1,5 +0,0 @@
-
- RewriteEngine on
- RewriteRule ^$ public/ [L]
- RewriteRule (.*) public/$1 [L]
-
\ No newline at end of file
diff --git a/docker/config/opcache.ini b/docker/config/opcache.ini
index 9ca9f70..89fad7f 100644
--- a/docker/config/opcache.ini
+++ b/docker/config/opcache.ini
@@ -1,6 +1,6 @@
-opcache.memory_consumption=128
+opcache.memory_consumption=256
opcache.interned_strings_buffer=8
-opcache.max_accelerated_files=4000
+opcache.max_accelerated_files=20000
;opcache.revalidate_freq=60
opcache.validate_timestamps=0
opcache.fast_shutdown=1
diff --git a/docker/config/symfony.ini b/docker/config/symfony.ini
new file mode 100644
index 0000000..94607a9
--- /dev/null
+++ b/docker/config/symfony.ini
@@ -0,0 +1,5 @@
+; maximum memory allocated to store the results
+realpath_cache_size=4096K
+
+; save the results for 10 minutes (600 seconds)
+realpath_cache_ttl=600
\ No newline at end of file
diff --git a/docker/docker-entrypoint.sh b/docker/docker-entrypoint.sh
new file mode 100644
index 0000000..145e639
--- /dev/null
+++ b/docker/docker-entrypoint.sh
@@ -0,0 +1,4 @@
+#!/usr/bin/env sh
+
+vendor/bin/server run 0.0.0.0:8080 --adapter=App\\AppKernelAdapter
+
diff --git a/docker/settings.php b/docker/settings.php
deleted file mode 100644
index 7180913..0000000
--- a/docker/settings.php
+++ /dev/null
@@ -1,26 +0,0 @@
- [
- 'displayErrorDetails' => false, // set to false in production
- 'addContentLengthHeader' => false, // Allow the web server to send the content-length header
-
- // Renderer settings
- 'renderer' => [
- 'template_path' => __DIR__.'/../templates/',
- ],
-
- 'auth' => [
- 'token' => isset($_ENV['API_TOKEN']) ? getenv('API_TOKEN') : '',
- ],
-
- 'swagger_path' => __DIR__.'/../public/openapi.json',
-
- // Monolog settings
- 'logger' => [
- 'name' => 'slim-app',
- 'path' => 'php://stdout',
- 'level' => Psr\Log\LogLevel::INFO,
- ],
- ],
-];
diff --git a/logs/README.md b/logs/README.md
deleted file mode 100644
index d4a602e..0000000
--- a/logs/README.md
+++ /dev/null
@@ -1 +0,0 @@
-Your Slim Framework application's log files will be written to this directory.
diff --git a/phpunit.xml.dist b/phpunit.xml.dist
index adde9e6..d0b6a05 100644
--- a/phpunit.xml.dist
+++ b/phpunit.xml.dist
@@ -1,10 +1,34 @@
-
+
+
+
+
+
+
+
+
+
+
+
-
+
tests
+
+
+
+ src
+
+
+
+
+
+
\ No newline at end of file
diff --git a/public/.htaccess b/public/.htaccess
deleted file mode 100644
index f5d1969..0000000
--- a/public/.htaccess
+++ /dev/null
@@ -1,21 +0,0 @@
-
- RewriteEngine On
-
- # Some hosts may require you to use the `RewriteBase` directive.
- # Determine the RewriteBase automatically and set it as environment variable.
- # If you are using Apache aliases to do mass virtual hosting or installed the
- # project in a subdirectory, the base path will be prepended to allow proper
- # resolution of the index.php file and to redirect to the correct URI. It will
- # work in environments without path prefix as well, providing a safe, one-size
- # fits all solution. But as you do not need it in this case, you can comment
- # the following 2 lines to eliminate the overhead.
- RewriteCond %{REQUEST_URI}::$1 ^(/.+)/(.*)::\2$
- RewriteRule ^(.*) - [E=BASE:%1]
-
- # If the above doesn't work you might need to set the `RewriteBase` directive manually, it should be the
- # absolute physical path to the directory that contains this htaccess file.
- # RewriteBase /
-
- RewriteCond %{REQUEST_FILENAME} !-f
- RewriteRule ^ index.php [QSA,L]
-
diff --git a/public/favicon.ico b/public/favicon.ico
deleted file mode 100644
index f956ab8..0000000
Binary files a/public/favicon.ico and /dev/null differ
diff --git a/public/index.php b/public/index.php
index 44b1e21..0e30370 100644
--- a/public/index.php
+++ b/public/index.php
@@ -1,24 +1,27 @@
run(true);
+if ($trustedProxies = $_SERVER['TRUSTED_PROXIES'] ?? false) {
+ Request::setTrustedProxies(explode(',', $trustedProxies), Request::HEADER_X_FORWARDED_ALL ^ Request::HEADER_X_FORWARDED_HOST);
+}
-if ($response instanceof AppResponse) {
- $app->getContainer()->get(ResponseWriter::class)->process($app, $response);
- return;
+if ($trustedHosts = $_SERVER['TRUSTED_HOSTS'] ?? false) {
+ Request::setTrustedHosts([$trustedHosts]);
}
-$app->respond($response);
\ No newline at end of file
+$kernel = new Kernel($_SERVER['APP_ENV'], (bool) $_SERVER['APP_DEBUG']);
+$request = Request::createFromGlobals();
+$response = $kernel->handle($request);
+$response->send();
+$kernel->terminate($request, $response);
diff --git a/src/AppKernelAdapter.php b/src/AppKernelAdapter.php
new file mode 100644
index 0000000..fa693c6
--- /dev/null
+++ b/src/AppKernelAdapter.php
@@ -0,0 +1,66 @@
+container = $container;
+ }
+
+ /**
+ * @param string $ruc
+ *
+ * @return PromiseInterface
+ */
+ public function ruc($ruc)
+ {
+ $service = $this->container->get(Ruc::class);
+
+ return $service->get($ruc)
+ ->then(function (?Company $company) {
+ if (!$company) {
+ throw new BadRequestHttpException();
+ }
+
+ return new JsonResponse($company);
+ });
+ }
+
+ /**
+ * @param string $ruc
+ * @param string $user
+ *
+ * @return JsonResponse
+ */
+ public function userSol($ruc, $user)
+ {
+ $user = strtoupper($user);
+
+ $service = $this->container->get(UserValidator::class);
+ $valid = $service->valid($ruc, $user);
+
+ return new JsonResponse($valid);
+ }
+
+ /**
+ * @param string $dni
+ *
+ * @return PromiseInterface
+ */
+ public function dni($dni)
+ {
+ $service = $this->container->get(Dni::class);
+
+ return $service->get($dni)
+ ->then(function (?Person $person) {
+ if (!$person) {
+ throw new BadRequestHttpException();
+ }
+
+ return new JsonResponse($person);
+ });
+ }
+}
diff --git a/src/Controller/ConsultMultipleController.php b/src/Controller/ConsultMultipleController.php
new file mode 100644
index 0000000..e9f91f6
--- /dev/null
+++ b/src/Controller/ConsultMultipleController.php
@@ -0,0 +1,64 @@
+container = $container;
+ }
+
+ /**
+ * @return PromiseInterface
+ */
+ public function ruc(Request $request)
+ {
+ $rucs = json_decode($request->getContent());
+ if (!is_array($rucs)) {
+ throw new BadRequestHttpException();
+ }
+
+ $service = $this->container->get(RucMultiple::class);
+
+ return $service->get($rucs)
+ ->then(function ($companies) {
+ return new JsonResponse($companies);
+ });
+ }
+
+ /**
+ * @return PromiseInterface
+ */
+ public function dni(Request $request)
+ {
+ $dnis = json_decode($request->getContent());
+ if (!is_array($dnis)) {
+ throw new BadRequestHttpException();
+ }
+
+ $service = $this->container->get(DniMultiple::class);
+
+ return $service->get($dnis)
+ ->then(function ($persons) {
+ return new JsonResponse($persons);
+ });
+ }
+}
diff --git a/src/Controller/GraphController.php b/src/Controller/GraphController.php
new file mode 100644
index 0000000..5d36db2
--- /dev/null
+++ b/src/Controller/GraphController.php
@@ -0,0 +1,43 @@
+graph = $graph;
+ }
+
+ /**
+ * @return JsonResponse
+ *
+ * @throws \Throwable
+ */
+ public function query(Request $request)
+ {
+ $data = json_decode($request->getContent(), true);
+ if (!isset($data['query'])) {
+ throw new BadRequestHttpException();
+ }
+
+ $result = $this->graph->execute($data['query'], isset($data['variables']) ? $data['variables'] : null);
+
+ return $this->json($result);
+ }
+}
diff --git a/src/Controller/HomeController.php b/src/Controller/HomeController.php
new file mode 100644
index 0000000..03b4aed
--- /dev/null
+++ b/src/Controller/HomeController.php
@@ -0,0 +1,17 @@
+ 'Peru Consult API',
+ ]);
+ }
+}
diff --git a/src/EventSubscriber/TokenSubscriber.php b/src/EventSubscriber/TokenSubscriber.php
new file mode 100644
index 0000000..67b2422
--- /dev/null
+++ b/src/EventSubscriber/TokenSubscriber.php
@@ -0,0 +1,48 @@
+token = $token;
+ }
+
+ public function onKernelController(ControllerEvent $event)
+ {
+ $path = $event->getRequest()->getPathInfo();
+
+ $isApi = substr($path, 0, 4) === '/api';
+ if (!$isApi) {
+ return;
+ }
+
+ $token = $event->getRequest()->query->get('token');
+ if ($token !== $this->token) {
+ throw new AccessDeniedHttpException('This action needs a valid token!');
+ }
+ }
+
+ /**
+ * {@inheritdoc}
+ */
+ public static function getSubscribedEvents()
+ {
+ return [
+ KernelEvents::CONTROLLER => 'onKernelController',
+ ];
+ }
+}
diff --git a/src/Factory/GraphqlSchemaFactory.php b/src/Factory/GraphqlSchemaFactory.php
new file mode 100644
index 0000000..eabba34
--- /dev/null
+++ b/src/Factory/GraphqlSchemaFactory.php
@@ -0,0 +1,29 @@
+root = $root;
+ }
+
+ public function create()
+ {
+ return new Schema([
+ 'query' => $this->root,
+ ]);
+ }
+}
diff --git a/src/Kernel.php b/src/Kernel.php
new file mode 100644
index 0000000..fee7e32
--- /dev/null
+++ b/src/Kernel.php
@@ -0,0 +1,54 @@
+getProjectDir().'/config/bundles.php';
+ foreach ($contents as $class => $envs) {
+ if ($envs[$this->environment] ?? $envs['all'] ?? false) {
+ yield new $class();
+ }
+ }
+ }
+
+ public function getProjectDir(): string
+ {
+ return \dirname(__DIR__);
+ }
+
+ protected function configureContainer(ContainerBuilder $container, LoaderInterface $loader): void
+ {
+ $container->addResource(new FileResource($this->getProjectDir().'/config/bundles.php'));
+ $container->setParameter('container.dumper.inline_class_loader', \PHP_VERSION_ID < 70400 || $this->debug);
+ $container->setParameter('container.dumper.inline_factories', true);
+ $confDir = $this->getProjectDir().'/config';
+
+ $loader->load($confDir.'/{packages}/*'.self::CONFIG_EXTS, 'glob');
+ $loader->load($confDir.'/{packages}/'.$this->environment.'/*'.self::CONFIG_EXTS, 'glob');
+ $loader->load($confDir.'/{services}'.self::CONFIG_EXTS, 'glob');
+ $loader->load($confDir.'/{services}_'.$this->environment.self::CONFIG_EXTS, 'glob');
+ }
+
+ protected function configureRoutes(RouteCollectionBuilder $routes): void
+ {
+ $confDir = $this->getProjectDir().'/config';
+
+ $routes->import($confDir.'/{routes}/'.$this->environment.'/*'.self::CONFIG_EXTS, '/', 'glob');
+ $routes->import($confDir.'/{routes}/*'.self::CONFIG_EXTS, '/', 'glob');
+ $routes->import($confDir.'/{routes}'.self::CONFIG_EXTS, '/', 'glob');
+ }
+}
diff --git a/src/app/Resolver/DniResolver.php b/src/Resolver/DniResolver.php
similarity index 92%
rename from src/app/Resolver/DniResolver.php
rename to src/Resolver/DniResolver.php
index ad1baed..155eb11 100644
--- a/src/app/Resolver/DniResolver.php
+++ b/src/Resolver/DniResolver.php
@@ -2,7 +2,7 @@
declare(strict_types=1);
-namespace Peru\Api\Resolver;
+namespace App\Resolver;
use Peru\Services\DniInterface;
@@ -22,4 +22,4 @@ public function __invoke($root, $args)
{
return $this->service->get($args['dni']);
}
-}
\ No newline at end of file
+}
diff --git a/src/app/Resolver/RucResolver.php b/src/Resolver/RucResolver.php
similarity index 92%
rename from src/app/Resolver/RucResolver.php
rename to src/Resolver/RucResolver.php
index 4f66108..a6937d1 100644
--- a/src/app/Resolver/RucResolver.php
+++ b/src/Resolver/RucResolver.php
@@ -2,7 +2,7 @@
declare(strict_types=1);
-namespace Peru\Api\Resolver;
+namespace App\Resolver;
use Peru\Services\RucInterface;
diff --git a/src/app/Service/DniMultiple.php b/src/Service/DniMultiple.php
similarity index 88%
rename from src/app/Service/DniMultiple.php
rename to src/Service/DniMultiple.php
index f0b793a..8e6532a 100644
--- a/src/app/Service/DniMultiple.php
+++ b/src/Service/DniMultiple.php
@@ -8,7 +8,7 @@
declare(strict_types=1);
-namespace Peru\Api\Service;
+namespace App\Service;
use Peru\Jne\Async\Dni;
use function React\Promise\all;
@@ -23,8 +23,6 @@ class DniMultiple
/**
* DniMultiple constructor.
- *
- * @param Dni $service
*/
public function __construct(Dni $service)
{
@@ -32,8 +30,6 @@ public function __construct(Dni $service)
}
/**
- * @param array $dnis
- *
* @return PromiseInterface
*/
public function get(array $dnis): PromiseInterface
diff --git a/src/app/Service/GraphRunner.php b/src/Service/GraphRunner.php
similarity index 92%
rename from src/app/Service/GraphRunner.php
rename to src/Service/GraphRunner.php
index 1641bd7..992f03f 100644
--- a/src/app/Service/GraphRunner.php
+++ b/src/Service/GraphRunner.php
@@ -8,11 +8,11 @@
declare(strict_types=1);
-namespace Peru\Api\Service;
+namespace App\Service;
+use GraphQL\Error\FormattedError;
use GraphQL\GraphQL;
use GraphQL\Type\Schema;
-use GraphQL\Error\FormattedError;
use Psr\Log\LoggerInterface;
class GraphRunner
@@ -28,8 +28,6 @@ class GraphRunner
/**
* GraphRunner constructor.
- * @param Schema $schema
- * @param LoggerInterface $logger
*/
public function __construct(Schema $schema, LoggerInterface $logger)
{
diff --git a/src/app/Service/RucMultiple.php b/src/Service/RucMultiple.php
similarity index 88%
rename from src/app/Service/RucMultiple.php
rename to src/Service/RucMultiple.php
index 851def8..38bdc93 100644
--- a/src/app/Service/RucMultiple.php
+++ b/src/Service/RucMultiple.php
@@ -8,7 +8,7 @@
declare(strict_types=1);
-namespace Peru\Api\Service;
+namespace App\Service;
use Peru\Sunat\Async\Ruc;
use function React\Promise\all;
@@ -23,8 +23,6 @@ class RucMultiple
/**
* RucMultiple constructor.
- *
- * @param Ruc $service
*/
public function __construct(Ruc $service)
{
@@ -32,8 +30,6 @@ public function __construct(Ruc $service)
}
/**
- * @param array $rucs
- *
* @return PromiseInterface
*/
public function get(array $rucs): PromiseInterface
diff --git a/src/app/Repository/CompanyType.php b/src/Types/CompanyType.php
similarity index 96%
rename from src/app/Repository/CompanyType.php
rename to src/Types/CompanyType.php
index 433c182..8ca9420 100644
--- a/src/app/Repository/CompanyType.php
+++ b/src/Types/CompanyType.php
@@ -8,10 +8,9 @@
declare(strict_types=1);
-namespace Peru\Api\Repository;
+namespace App\Types;
-use GraphQL\Type\Definition\ObjectType;
-use GraphQL\Type\Definition\Type;
+use GraphQL\Type\Definition\{ObjectType, Type};
class CompanyType extends ObjectType
{
diff --git a/src/app/Repository/PersonType.php b/src/Types/PersonType.php
similarity index 91%
rename from src/app/Repository/PersonType.php
rename to src/Types/PersonType.php
index a26993d..beeda2d 100644
--- a/src/app/Repository/PersonType.php
+++ b/src/Types/PersonType.php
@@ -8,10 +8,9 @@
declare(strict_types=1);
-namespace Peru\Api\Repository;
+namespace App\Types;
-use GraphQL\Type\Definition\ObjectType;
-use GraphQL\Type\Definition\Type;
+use GraphQL\Type\Definition\{ObjectType, Type};
class PersonType extends ObjectType
{
diff --git a/src/app/Repository/RootType.php b/src/Types/RootType.php
similarity index 85%
rename from src/app/Repository/RootType.php
rename to src/Types/RootType.php
index 77792b3..38893f2 100644
--- a/src/app/Repository/RootType.php
+++ b/src/Types/RootType.php
@@ -8,12 +8,10 @@
declare(strict_types=1);
-namespace Peru\Api\Repository;
+namespace App\Types;
-use GraphQL\Type\Definition\ObjectType;
-use GraphQL\Type\Definition\Type;
-use Peru\Api\Resolver\DniResolver;
-use Peru\Api\Resolver\RucResolver;
+use GraphQL\Type\Definition\{ObjectType, Type};
+use App\Resolver\{DniResolver, RucResolver};
use Psr\Container\ContainerInterface;
class RootType extends ObjectType
@@ -21,8 +19,6 @@ class RootType extends ObjectType
/**
* RootType constructor.
*
- * @param ContainerInterface $container
- *
* @throws \Psr\Container\ContainerExceptionInterface
* @throws \Psr\Container\NotFoundExceptionInterface
*/
diff --git a/src/app/Controller/ConsultController.php b/src/app/Controller/ConsultController.php
deleted file mode 100644
index d2808ec..0000000
--- a/src/app/Controller/ConsultController.php
+++ /dev/null
@@ -1,110 +0,0 @@
-container = $container;
- }
-
- /**
- * @param Request $request
- * @param Response $response
- * @param array $args
- *
- * @return Response
- *
- * @throws \Psr\Container\ContainerExceptionInterface
- * @throws \Psr\Container\NotFoundExceptionInterface
- */
- public function ruc($request, $response, array $args)
- {
- $ruc = $args['ruc'];
- $service = $this->container->get(Ruc::class);
- $promise = $service->get($ruc)
- ->then(function (?Company $company) use ($response) {
- if (!$company) {
- return $response->withStatus(400);
- }
-
- return $response->withJson($company);
- });
-
- return (new AppResponse())->withPromise($promise);
- }
-
- /**
- * @param Request $request
- * @param Response $response
- * @param array $args
- *
- * @return Response
- *
- * @throws \Psr\Container\ContainerExceptionInterface
- * @throws \Psr\Container\NotFoundExceptionInterface
- */
- public function userSol($request, $response, array $args)
- {
- $ruc = $args['ruc'];
- $user = strtoupper($args['user']);
-
- $service = $this->container->get(UserValidator::class);
- $valid = $service->valid($ruc, $user);
-
- return $response->withJson($valid);
- }
-
- /**
- * @param Request $request
- * @param Response $response
- * @param array $args
- *
- * @return Response
- *
- * @throws \Psr\Container\ContainerExceptionInterface
- * @throws \Psr\Container\NotFoundExceptionInterface
- */
- public function dni($request, $response, array $args)
- {
- $dni = $args['dni'];
- $service = $this->container->get(Dni::class);
- $promise = $service->get($dni)
- ->then(function (?Person $person) use ($response) {
- if (!$person) {
- return $response->withStatus(400);
- }
-
- return $response->withJson($person);
- });
-
- return (new AppResponse())->withPromise($promise);
- }
-}
diff --git a/src/app/Controller/ConsultMultipleController.php b/src/app/Controller/ConsultMultipleController.php
deleted file mode 100644
index 76316f2..0000000
--- a/src/app/Controller/ConsultMultipleController.php
+++ /dev/null
@@ -1,86 +0,0 @@
-container = $container;
- }
-
- /**
- * @param Request $request
- * @param Response $response
- * @param array $args
- *
- * @return Response
- *
- * @throws \Psr\Container\ContainerExceptionInterface
- * @throws \Psr\Container\NotFoundExceptionInterface
- */
- public function ruc($request, $response, array $args)
- {
- $rucs = $request->getParsedBody();
- if (!is_array($rucs)) {
- return $response->withStatus(400);
- }
-
- $service = $this->container->get(RucMultiple::class);
- $promise = $service->get($rucs)
- ->then(function ($companies) use ($response) {
- return $response->withJson($companies);
- });
-
- return (new AppResponse())->withPromise($promise);
- }
-
- /**
- * @param Request $request
- * @param Response $response
- * @param array $args
- *
- * @return Response
- *
- * @throws \Psr\Container\ContainerExceptionInterface
- * @throws \Psr\Container\NotFoundExceptionInterface
- */
- public function dni($request, $response, array $args)
- {
- $dnis = $request->getParsedBody();
- if (!is_array($dnis)) {
- return $response->withStatus(400);
- }
-
- $service = $this->container->get(DniMultiple::class);
- $promise = $service->get($dnis)
- ->then(function ($persons) use ($response) {
- return $response->withJson($persons);
- });
-
- return (new AppResponse())->withPromise($promise);
- }
-}
diff --git a/src/app/Controller/GraphController.php b/src/app/Controller/GraphController.php
deleted file mode 100644
index 1fcd3fc..0000000
--- a/src/app/Controller/GraphController.php
+++ /dev/null
@@ -1,50 +0,0 @@
-graph = $graph;
- }
-
- /**
- * @param Request $request
- * @param Response $response
- * @param array $args
- *
- * @return Response
- *
- * @throws \Psr\Container\ContainerExceptionInterface
- * @throws \Psr\Container\NotFoundExceptionInterface
- * @throws \Throwable
- */
- public function query($request, $response, array $args)
- {
- $data = $request->getParsedBody();
- if (!isset($data['query'])) {
- return $response->withStatus(400);
- }
-
- $result = $this->graph->execute($data['query'], isset($data['variables']) ? $data['variables'] : null);
-
- return $response->withJson($result);
- }
-}
diff --git a/src/app/Controller/HomeController.php b/src/app/Controller/HomeController.php
deleted file mode 100644
index d770963..0000000
--- a/src/app/Controller/HomeController.php
+++ /dev/null
@@ -1,91 +0,0 @@
-container = $container;
- }
-
- /**
- * @param Request $request
- * @param Response $response
- * @param array $args
- *
- * @return ResponseInterface
- *
- * @throws \Psr\Container\ContainerExceptionInterface
- * @throws \Psr\Container\NotFoundExceptionInterface
- */
- public function index($request, $response, array $args)
- {
- /** @var $uri \Slim\Http\Uri */
- $uri = $request->getUri();
- /** @var $router \Slim\Router */
- $router = $this->container->get('router');
- /** @var $renderer PhpRenderer */
- $renderer = $this->container->get('renderer');
-
- return $renderer->render($response, 'index.phtml', [
- 'url' => $uri->getBasePath(),
- 'json' => $router->pathFor('swagger'),
- ]);
- }
-
- /**
- * @param Request $request
- * @param Response $response
- * @param array $args
- *
- * @return Response
- *
- * @throws \Psr\Container\ContainerExceptionInterface
- * @throws \Psr\Container\NotFoundExceptionInterface
- */
- public function swagger($request, $response, array $args)
- {
- $filename = $this->container->get('settings')['swagger_path'];
- if (!file_exists($filename)) {
- return $response->withStatus(404);
- }
-
- $uri = $request->getUri();
- $url = $uri->getHost();
- if ($uri->getPort() && $uri->getPort() !== 80) {
- $url .= ':'.$uri->getPort();
- }
- /** @var $uri \Slim\Http\Uri */
- $url .= $uri->getBasePath();
-
- $jsonContent = file_get_contents($filename);
- $response->getBody()->write(str_replace('consult.api', $url, $jsonContent));
-
- return $response->withHeader('Content-Type', 'application/json; charset=utf8');
- }
-}
diff --git a/src/app/Handler/CustomError.php b/src/app/Handler/CustomError.php
deleted file mode 100644
index fb09be1..0000000
--- a/src/app/Handler/CustomError.php
+++ /dev/null
@@ -1,40 +0,0 @@
-determineContentType($request);
- $output = 'Ocurrió un Error';
- switch ($contentType) {
- case 'application/json':
- $output = '{"message":"'.$output.'"}';
- break;
-
- case 'text/xml':
- case 'application/xml':
- $output = "\n $output\n";
- break;
- }
-
- $this->writeToErrorLog($exception);
-
- return $response
- ->withStatus(500)
- ->withHeader('Content-Type', $contentType)
- ->write($output);
- }
-}
\ No newline at end of file
diff --git a/src/app/Handler/ResponseWriter.php b/src/app/Handler/ResponseWriter.php
deleted file mode 100644
index fe59c25..0000000
--- a/src/app/Handler/ResponseWriter.php
+++ /dev/null
@@ -1,50 +0,0 @@
-container = $container;
- }
-
- public function process(App $app, AppResponse $appResponse)
- {
- $appResponse->getPromise()
- ->then(function ($response) use ($appResponse, $app) {
- $app->respond($this->fromCopyHeaders($appResponse, $response));
- }, function (Exception $e) use ($app) {
- $this->container->get('errorHandler')($this->container->get('request'), new Response(500), $e);
- });
-
- $this->container->get(LoopInterface::class)
- ->run();
- }
-
- private function fromCopyHeaders(Response $source, Response $target)
- {
- foreach ($source->getHeaders() as $header => $value) {
- $target = $target->withHeader($header, $value);
- }
-
- return $target;
- }
-}
diff --git a/src/app/Http/AppResponse.php b/src/app/Http/AppResponse.php
deleted file mode 100644
index 10a74f9..0000000
--- a/src/app/Http/AppResponse.php
+++ /dev/null
@@ -1,30 +0,0 @@
-promise = $promise;
-
- return $clone;
- }
-
- /**
- * @return PromiseInterface
- */
- public function getPromise(): PromiseInterface
- {
- return $this->promise;
- }
-}
\ No newline at end of file
diff --git a/src/app/Middleware/TokenMiddleware.php b/src/app/Middleware/TokenMiddleware.php
deleted file mode 100644
index af246f0..0000000
--- a/src/app/Middleware/TokenMiddleware.php
+++ /dev/null
@@ -1,53 +0,0 @@
-token = $token;
- }
-
- /**
- * Auth middleware invokable class.
- *
- * @param Request $request PSR7 request
- * @param Response $response PSR7 response
- * @param callable $next Next middleware
- *
- * @return \Psr\Http\Message\ResponseInterface
- */
- public function __invoke($request, $response, $next)
- {
- $token = $request->getQueryParam('token');
-
- if ($token !== $this->token) {
- return $response->withJson(['message' => 'Token Inválido'], 401);
- }
-
- $response = $next($request, $response);
-
- return $response;
- }
-}
diff --git a/src/app/Service/ArrayConverter.php b/src/app/Service/ArrayConverter.php
deleted file mode 100644
index 9326a79..0000000
--- a/src/app/Service/ArrayConverter.php
+++ /dev/null
@@ -1,33 +0,0 @@
-getContainer();
-
-// view renderer
-$container['renderer'] = function ($c) {
- $settings = $c->get('settings')['renderer'];
-
- return new Slim\Views\PhpRenderer($settings['template_path']);
-};
-
-// monolog
-$container['logger'] = function ($c) {
- $settings = $c->get('settings')['logger'];
- $logger = new Katzgrau\KLogger\Logger($settings['path'], $settings['level'], ['extension' => 'log']);
-
- return $logger;
-};
-
-$container[ClientInterface::class] = function () {
- return new EmptyResponseDecorator(new ContextClient());
-};
-
-$container[RucInterface::class] = function ($c) {
- return new Ruc($c->get(ClientInterface::class), new RucParser(new HtmlParser()));
-};
-
-$container[DniInterface::class] = function ($c) {
- return new Dni($c->get(ClientInterface::class), new DniParser());
-};
-
-$container[UserValidator::class] = function ($c) {
- return new UserValidator($c->get(ClientInterface::class));
-};
-
-$container[RucMultiple::class] = function ($c) {
- return new RucMultiple($c->get(\Peru\Sunat\Async\Ruc::class));
-};
-
-$container[DniMultiple::class] = function ($c) {
- return new DniMultiple($c->get(\Peru\Jne\Async\Dni::class));
-};
-
-$container[ArrayConverter::class] = function () {
- return new ArrayConverter();
-};
-
-$container[DniResolver::class] = function ($c) {
- return new DniResolver($c->get(DniInterface::class));
-};
-
-$container[RucResolver::class] = function ($c) {
- return new RucResolver($c->get(RucInterface::class));
-};
-
-$container[PersonType::class] = function () {
- return new PersonType();
-};
-
-$container[CompanyType::class] = function () {
- return new CompanyType();
-};
-
-$container[RootType::class] = function ($c) {
- return new RootType($c);
-};
-
-$container[Schema::class] = function ($c) {
- return new Schema([
- 'query' => $c->get(RootType::class),
- ]);
-};
-
-$container[GraphRunner::class] = function ($c) {
- return new GraphRunner($c->get(Schema::class), $c->get('logger'));
-};
-
-$container[GraphController::class] = function ($c) {
- return new GraphController($c->get(GraphRunner::class));
-};
-
-$container['errorHandler'] = function ($container) {
- $showErrors = $container->get('settings')['displayErrorDetails'];
- if ($showErrors) {
- return new Slim\Handlers\Error(true);
- }
-
- return new CustomError($showErrors);
-};
-
-$container[LoopInterface::class] = function () {
- return Factory::create();
-};
-
-$container[\Peru\Http\Async\ClientInterface::class] = function ($c) {
- return new HttpClient($c->get(LoopInterface::class));
-};
-
-$container[\Peru\Sunat\Async\Ruc::class] = function ($c) {
- return new \Peru\Sunat\Async\Ruc($c->get(\Peru\Http\Async\ClientInterface::class), new RucParser(new HtmlParser()));
-};
-
-$container[\Peru\Jne\Async\Dni::class] = function ($c) {
- return new \Peru\Jne\Async\Dni($c->get(\Peru\Http\Async\ClientInterface::class), new DniParser());
-};
-
-$container[ResponseWriter::class] = function ($c) {
- return new ResponseWriter($c);
-};
\ No newline at end of file
diff --git a/src/middleware.php b/src/middleware.php
deleted file mode 100644
index 57f7098..0000000
--- a/src/middleware.php
+++ /dev/null
@@ -1,13 +0,0 @@
-add(new \Tuupola\Middleware\CorsMiddleware([
- 'origin' => ['*'],
- 'methods' => ['GET', 'POST'],
- 'headers.allow' => ['Authorization', 'Accept', 'Content-Type'],
- 'headers.expose' => [],
- 'credentials' => false,
- 'cache' => 0,
-]));
diff --git a/src/routes.php b/src/routes.php
deleted file mode 100644
index 049e8f5..0000000
--- a/src/routes.php
+++ /dev/null
@@ -1,23 +0,0 @@
-getContainer();
-$auth = new TokenMiddleware($container['settings']['auth']['token']);
-
-// Routes
-$app->group('/api', function () {
- /* @var $this Slim\App */
- $this->group('/v1', function () {
- $this->get('/ruc/{ruc:\d{11}}', 'Peru\Api\Controller\ConsultController:ruc');
- $this->get('/dni/{dni:\d{8}}', 'Peru\Api\Controller\ConsultController:dni');
- $this->post('/ruc', 'Peru\Api\Controller\ConsultMultipleController:ruc');
- $this->post('/dni', 'Peru\Api\Controller\ConsultMultipleController:dni');
- $this->get('/user-sol/{ruc}/{user}', 'Peru\Api\Controller\ConsultController:userSol');
- });
- $this->post('/graph', 'Peru\Api\Controller\GraphController:query');
-
-})->add($auth);
-
-$app->get('/', 'Peru\Api\Controller\HomeController:index');
-$app->get('/swagger', 'Peru\Api\Controller\HomeController:swagger')->setName('swagger');
diff --git a/src/settings.php b/src/settings.php
deleted file mode 100644
index 202e178..0000000
--- a/src/settings.php
+++ /dev/null
@@ -1,26 +0,0 @@
- [
- 'displayErrorDetails' => true, // set to false in production
- 'addContentLengthHeader' => false, // Allow the web server to send the content-length header
-
- // Renderer settings
- 'renderer' => [
- 'template_path' => __DIR__.'/../templates/',
- ],
-
- 'auth' => [
- 'token' => 'abcxyz'
- ],
-
- 'swagger_path' => __DIR__.'/../public/openapi.json',
-
- // Monolog settings
- 'logger' => [
- 'name' => 'slim-app',
- 'path' => __DIR__.'/../logs',
- 'level' => Psr\Log\LogLevel::DEBUG,
- ],
- ],
-];
diff --git a/symfony.lock b/symfony.lock
new file mode 100644
index 0000000..4e4b4f8
--- /dev/null
+++ b/symfony.lock
@@ -0,0 +1,280 @@
+{
+ "alecrabbit/php-cli-snake": {
+ "version": "0.5.0"
+ },
+ "cakephp/core": {
+ "version": "3.8.11"
+ },
+ "cakephp/utility": {
+ "version": "3.8.11"
+ },
+ "clue/block-react": {
+ "version": "v1.3.1"
+ },
+ "clue/stream-filter": {
+ "version": "v1.4.1"
+ },
+ "clue/zlib-react": {
+ "version": "v0.2.2"
+ },
+ "doctrine/inflector": {
+ "version": "1.3.1"
+ },
+ "doctrine/instantiator": {
+ "version": "1.3.0"
+ },
+ "drift/console-bridge": {
+ "version": "0.1.0"
+ },
+ "drift/event-loop-utils": {
+ "version": "0.1.0"
+ },
+ "drift/http-kernel": {
+ "version": "0.1.10"
+ },
+ "drift/server": {
+ "version": "0.1.12"
+ },
+ "evenement/evenement": {
+ "version": "v3.0.1"
+ },
+ "giansalex/peru-consult": {
+ "version": "v4.1.0"
+ },
+ "indigophp/hash-compat": {
+ "version": "v1.1.0"
+ },
+ "php": {
+ "version": "7.3"
+ },
+ "psr/cache": {
+ "version": "1.0.1"
+ },
+ "psr/container": {
+ "version": "1.0.0"
+ },
+ "psr/event-dispatcher": {
+ "version": "1.0.0"
+ },
+ "psr/http-message": {
+ "version": "1.0.1"
+ },
+ "psr/log": {
+ "version": "1.1.3"
+ },
+ "react/cache": {
+ "version": "v1.0.0"
+ },
+ "react/child-process": {
+ "version": "v0.6.1"
+ },
+ "react/dns": {
+ "version": "v1.2.0"
+ },
+ "react/event-loop": {
+ "version": "v1.1.1"
+ },
+ "react/filesystem": {
+ "version": "v0.1.2"
+ },
+ "react/http": {
+ "version": "v0.8.6"
+ },
+ "react/http-client": {
+ "version": "v0.5.10"
+ },
+ "react/promise": {
+ "version": "v2.7.1"
+ },
+ "react/promise-stream": {
+ "version": "v1.2.0"
+ },
+ "react/promise-timer": {
+ "version": "v1.5.1"
+ },
+ "react/socket": {
+ "version": "v1.4.0"
+ },
+ "react/stream": {
+ "version": "v1.1.0"
+ },
+ "ringcentral/psr7": {
+ "version": "1.2.2"
+ },
+ "seregazhuk/php-watcher": {
+ "version": "v0.5.2"
+ },
+ "symfony/browser-kit": {
+ "version": "v5.0.8"
+ },
+ "symfony/cache": {
+ "version": "v5.0.8"
+ },
+ "symfony/cache-contracts": {
+ "version": "v2.0.1"
+ },
+ "symfony/config": {
+ "version": "v5.0.8"
+ },
+ "symfony/console": {
+ "version": "4.4",
+ "recipe": {
+ "repo": "github.com/symfony/recipes",
+ "branch": "master",
+ "version": "4.4",
+ "ref": "ea8c0eda34fda57e7d5cd8cbd889e2a387e3472c"
+ },
+ "files": [
+ "./bin/console",
+ "./config/bootstrap.php"
+ ]
+ },
+ "symfony/dependency-injection": {
+ "version": "v5.0.8"
+ },
+ "symfony/dom-crawler": {
+ "version": "v5.0.8"
+ },
+ "symfony/dotenv": {
+ "version": "v5.0.8"
+ },
+ "symfony/error-handler": {
+ "version": "v5.0.8"
+ },
+ "symfony/event-dispatcher": {
+ "version": "v5.0.8"
+ },
+ "symfony/event-dispatcher-contracts": {
+ "version": "v2.0.1"
+ },
+ "symfony/filesystem": {
+ "version": "v5.0.8"
+ },
+ "symfony/finder": {
+ "version": "v5.0.8"
+ },
+ "symfony/flex": {
+ "version": "1.0",
+ "recipe": {
+ "repo": "github.com/symfony/recipes",
+ "branch": "master",
+ "version": "1.0",
+ "ref": "c0eeb50665f0f77226616b6038a9b06c03752d8e"
+ },
+ "files": [
+ "./.env"
+ ]
+ },
+ "symfony/framework-bundle": {
+ "version": "4.4",
+ "recipe": {
+ "repo": "github.com/symfony/recipes",
+ "branch": "master",
+ "version": "4.4",
+ "ref": "36d3075b2b8e0c4de0e82356a86e4c4a4eb6681b"
+ },
+ "files": [
+ "./config/bootstrap.php",
+ "./config/packages/cache.yaml",
+ "./config/packages/framework.yaml",
+ "./config/packages/test/framework.yaml",
+ "./config/routes/dev/framework.yaml",
+ "./config/services.yaml",
+ "./public/index.php",
+ "./src/Controller/.gitignore",
+ "./src/Kernel.php"
+ ]
+ },
+ "symfony/http-foundation": {
+ "version": "v5.0.8"
+ },
+ "symfony/http-kernel": {
+ "version": "v5.0.8"
+ },
+ "symfony/mime": {
+ "version": "v5.0.8"
+ },
+ "symfony/phpunit-bridge": {
+ "version": "4.3",
+ "recipe": {
+ "repo": "github.com/symfony/recipes",
+ "branch": "master",
+ "version": "4.3",
+ "ref": "6d0e35f749d5f4bfe1f011762875275cd3f9874f"
+ },
+ "files": [
+ "./.env.test",
+ "./bin/phpunit",
+ "./phpunit.xml.dist",
+ "./tests/bootstrap.php"
+ ]
+ },
+ "symfony/polyfill-intl-idn": {
+ "version": "v1.15.0"
+ },
+ "symfony/polyfill-mbstring": {
+ "version": "v1.15.0"
+ },
+ "symfony/polyfill-php73": {
+ "version": "v1.15.0"
+ },
+ "symfony/routing": {
+ "version": "4.2",
+ "recipe": {
+ "repo": "github.com/symfony/recipes",
+ "branch": "master",
+ "version": "4.2",
+ "ref": "683dcb08707ba8d41b7e34adb0344bfd68d248a7"
+ },
+ "files": [
+ "./config/packages/prod/routing.yaml",
+ "./config/packages/routing.yaml",
+ "./config/routes.yaml"
+ ]
+ },
+ "symfony/service-contracts": {
+ "version": "v2.0.1"
+ },
+ "symfony/var-dumper": {
+ "version": "v5.0.8"
+ },
+ "symfony/var-exporter": {
+ "version": "v5.0.8"
+ },
+ "symfony/yaml": {
+ "version": "v5.0.8"
+ },
+ "tivie/php-os-detector": {
+ "version": "1.1.0"
+ },
+ "webonyx/graphql-php": {
+ "version": "v0.13.8"
+ },
+ "wyrihaximus/cpu-core-detector": {
+ "version": "1.0.2"
+ },
+ "wyrihaximus/file-descriptors": {
+ "version": "1.0.0"
+ },
+ "wyrihaximus/json-throwable": {
+ "version": "2.0.0"
+ },
+ "wyrihaximus/json-utilities": {
+ "version": "1.1.0"
+ },
+ "wyrihaximus/react-child-process-messenger": {
+ "version": "2.10.0"
+ },
+ "wyrihaximus/react-child-process-pool": {
+ "version": "1.6.0"
+ },
+ "wyrihaximus/react-child-process-promise": {
+ "version": "2.0.2"
+ },
+ "wyrihaximus/ticking-promise": {
+ "version": "1.6.3"
+ },
+ "yosymfony/resource-watcher": {
+ "version": "v2.0.1"
+ }
+}
diff --git a/templates/index.phtml b/templates/index.phtml
deleted file mode 100644
index 60cb039..0000000
--- a/templates/index.phtml
+++ /dev/null
@@ -1,104 +0,0 @@
-
-
-
-
- API Consulta Perú
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/tests/Controller/ConsultControllerTest.php b/tests/Controller/ConsultControllerTest.php
new file mode 100644
index 0000000..61c241a
--- /dev/null
+++ b/tests/Controller/ConsultControllerTest.php
@@ -0,0 +1,50 @@
+request('GET', '/api/v1/ruc/20550263948?token=abcxyz');
+
+ $this->assertEquals(200, $client->getResponse()->getStatusCode());
+
+ /** @var $company Company */
+ $company = json_decode($client->getResponse()->getContent());
+
+ $this->assertStringContainsString('SOCIEDAD COMERCIAL', $company->razonSocial);
+ $this->assertEquals('HABIDO', $company->condicion);
+ $this->assertEquals('BAJA DE OFICIO', $company->estado);
+ }
+
+ public function testConsultDni()
+ {
+ $client = static::createClient();
+
+ $client->request('GET', '/api/v1/dni/48004836?token=abcxyz');
+
+ $this->assertEquals(200, $client->getResponse()->getStatusCode());
+ /** @var $person Person */
+ $person = json_decode($client->getResponse()->getContent());
+ $this->assertEquals('NOMBRES', $person->nombres);
+ }
+
+ public function testConsultUserSol()
+ {
+ $client = static::createClient();
+
+ $client->request('GET', '/api/v1/user-sol/20000000001/HUAFDSMU?token=abcxyz');
+
+ $this->assertEquals(200, $client->getResponse()->getStatusCode());
+ $this->assertTrue(in_array($client->getResponse()->getContent(), ['true', 'false']));
+ }
+}
diff --git a/tests/Controller/ConsultMultipleControllerTest.php b/tests/Controller/ConsultMultipleControllerTest.php
new file mode 100644
index 0000000..68fe03e
--- /dev/null
+++ b/tests/Controller/ConsultMultipleControllerTest.php
@@ -0,0 +1,63 @@
+request(
+ 'POST',
+ '/api/v1/ruc?token=abcxyz',
+ [],
+ [],
+ ['CONTENT_TYPE' => 'application/json'],
+ json_encode($array)
+ );
+
+ $this->assertEquals(200, $client->getResponse()->getStatusCode());
+
+ /** @var $companies Company[] */
+ $companies = json_decode($client->getResponse()->getContent());
+
+ $this->assertEquals(3, count($companies));
+
+ foreach ($companies as $company) {
+ $this->assertTrue(in_array($company->ruc, $array));
+ $this->assertNotEmpty($company->razonSocial);
+ }
+ }
+
+ public function testConsultDni()
+ {
+ $array = ['48004836'];
+ $client = static::createClient();
+
+ $client->request(
+ 'POST',
+ '/api/v1/dni?token=abcxyz',
+ [],
+ [],
+ ['CONTENT_TYPE' => 'application/json'],
+ json_encode($array)
+ );
+
+ $this->assertEquals(200, $client->getResponse()->getStatusCode());
+ /** @var $persons Person[] */
+ $persons = json_decode($client->getResponse()->getContent());
+ $this->assertEquals(1, count($persons));
+ foreach ($persons as $person) {
+ $this->assertTrue(in_array($person->dni, $array));
+ $this->assertNotEmpty($person->nombres);
+ }
+ }
+}
diff --git a/tests/Functional/GraphApiTest.php b/tests/Controller/GraphControllerTest.php
similarity index 53%
rename from tests/Functional/GraphApiTest.php
rename to tests/Controller/GraphControllerTest.php
index d240b2e..1ade7ca 100644
--- a/tests/Functional/GraphApiTest.php
+++ b/tests/Controller/GraphControllerTest.php
@@ -1,11 +1,14 @@
runApp('POST', '/api/graph', ['query' => $q]);
+ $client->request(
+ 'POST',
+ '/api/graph?token=abcxyz',
+ [],
+ [],
+ ['CONTENT_TYPE' => 'application/json'],
+ json_encode(['query' => $q])
+ );
- $this->assertEquals(200, $response->getStatusCode());
- $obj = json_decode((string)$response->getBody());
+ $this->assertEquals(200, $client->getResponse()->getStatusCode());
+ $obj = json_decode($client->getResponse()->getContent());
- /**@var $company Company */
+ /** @var $company Company */
$company = $obj->data->company;
+ /** @var $person Person */
+ $person = $obj->data->person;
$this->assertFalse(isset($obj->errors));
- $this->assertContains('EMPRESA CONSTRUCTORA', $company->razonSocial);
+ $this->assertStringContainsString('EMPRESA CONSTRUCTORA', $company->razonSocial);
$this->assertEquals('NO HABIDO', $company->condicion);
$this->assertEquals('SUSPENSION TEMPORAL', $company->estado);
$this->assertNotEmpty($company->direccion);
@@ -58,5 +75,8 @@ public function testConsultGraph()
$this->assertNotEmpty($company->provincia);
$this->assertNotEmpty($company->distrito);
$this->assertNotEmpty($company->fechaInscripcion);
+ $this->assertNotEmpty($person->dni);
+ $this->assertNotEmpty($person->nombres);
+ $this->assertStringContainsString('NOMBRES', $person->nombres);
}
-}
\ No newline at end of file
+}
diff --git a/tests/Controller/HomeControllerTest.php b/tests/Controller/HomeControllerTest.php
new file mode 100644
index 0000000..f55d8be
--- /dev/null
+++ b/tests/Controller/HomeControllerTest.php
@@ -0,0 +1,22 @@
+request('GET', '/');
+
+ $this->assertEquals(200, $client->getResponse()->getStatusCode());
+ }
+}
diff --git a/tests/Functional/BaseTestCase.php b/tests/Functional/BaseTestCase.php
deleted file mode 100644
index 70689f6..0000000
--- a/tests/Functional/BaseTestCase.php
+++ /dev/null
@@ -1,106 +0,0 @@
- $requestMethod,
- 'REQUEST_URI' => $requestUri.'?token='.$settings['settings']['auth']['token'],
- ]
- );
-
- // Set up a request object based on the environment
- $request = Request::createFromEnvironment($environment);
-
- // Add request data, if it exists
- if (isset($requestData)) {
- if (is_string($requestData)) {
- $request->getBody()->write($requestData);
- $request->getBody()->rewind();
- } else {
- $request = $request->withParsedBody($requestData);
- }
- }
-
- // Set up a response object
- $response = new Response();
-
- // Use the application settings
-
- // Instantiate the application
- $app = new App($settings);
-
- // Set up dependencies
- require __DIR__ . '/../../src/dependencies.php';
- $container = $app->getContainer();
- $this->loadDevDependencies($container);
-
- // Register middleware
- if ($this->withMiddleware) {
- require __DIR__ . '/../../src/middleware.php';
- }
-
- // Register routes
- require __DIR__ . '/../../src/routes.php';
-
- // Process the application
- $response = $app->process($request, $response);
- if ($response instanceof AppResponse) {
- $loop = $container->get(LoopInterface::class);
- $response = await($response->getPromise(), $loop);
- }
-
- // Return the response
- return $response;
- }
-
- private function loadDevDependencies(ContainerInterface $container)
- {
- $container[\Peru\Sunat\Async\Ruc::class] = function ($c) {
- return new \Peru\Sunat\Async\Ruc(new HttpClientStub($c->get(\Peru\Http\Async\ClientInterface::class)), new RucParser(new HtmlParser()));
- };
-
- $container[Ruc::class] = function ($c) {
- return new Ruc(new ClientStubDecorator($c->get(ClientInterface::class)), new RucParser(new HtmlParser()));
- };
- }
-}
diff --git a/tests/Functional/ConsultApiTest.php b/tests/Functional/ConsultApiTest.php
deleted file mode 100644
index 1c1bf1e..0000000
--- a/tests/Functional/ConsultApiTest.php
+++ /dev/null
@@ -1,59 +0,0 @@
-runApp('GET', '/api/v1/ruc/12312');
-
- $this->assertEquals(404, $response->getStatusCode());
- }
-
- public function testConsultRuc()
- {
- $response = $this->runApp('GET', '/api/v1/ruc/20550263948');
-
- $this->assertEquals(200, $response->getStatusCode());
-
- /**@var $company Company */
- $company = json_decode((string)$response->getBody());
-
- $this->assertContains('SOCIEDAD COMERCIAL', $company->razonSocial);
- $this->assertEquals('HABIDO', $company->condicion);
- $this->assertEquals('BAJA DE OFICIO', $company->estado);
- }
-
- public function testConsult()
- {
- $response = $this->runApp('GET', '/api/v1/dni/123456788');
- $this->assertEquals(404, $response->getStatusCode());
- }
- public function testConsultDni()
- {
- $response = $this->runApp('GET', '/api/v1/dni/48004836');
-
- $this->assertEquals(200, $response->getStatusCode());
- /**@var $person Person*/
- $person = json_decode((string)$response->getBody());
- $this->assertEquals('ROBERTO CARLOS', $person->nombres);
- }
-
- public function testConsultUserSol()
- {
- $response = $this->runApp('GET', '/api/v1/user-sol/20000000001/HUAFDSMU');
-
- $this->assertEquals(200, $response->getStatusCode());
- $this->assertTrue(in_array((string)$response->getBody(), ['true', 'false']));
- }
-}
\ No newline at end of file
diff --git a/tests/Functional/ConsultMultipleApiTest.php b/tests/Functional/ConsultMultipleApiTest.php
deleted file mode 100644
index 080e495..0000000
--- a/tests/Functional/ConsultMultipleApiTest.php
+++ /dev/null
@@ -1,75 +0,0 @@
-runApp('GET', '/api/v1/ruc');
-
- $this->assertEquals(405, $response->getStatusCode());
- }
-
- public function testConsultRucInvalid()
- {
- $response = $this->runApp('POST', '/api/v1/ruc');
-
- $this->assertEquals(400, $response->getStatusCode());
- }
-
- public function testConsultRuc()
- {
- $arr = ['20440374248', '20550263948', '20493919271'];
- $response = $this->runApp('POST', '/api/v1/ruc', $arr);
-
- $this->assertEquals(200, $response->getStatusCode());
-
- /**@var $companies Company[] */
- $companies = json_decode((string)$response->getBody());
-
- $this->assertEquals(3, count($companies));
-
- foreach ($companies as $company) {
- $this->assertTrue(in_array($company->ruc, $arr));
- $this->assertNotEmpty($company->razonSocial);
- }
- }
-
- public function testConsultDniNotAllowed()
- {
- $response = $this->runApp('GET', '/api/v1/dni');
- $this->assertEquals(405, $response->getStatusCode());
- }
-
- public function testConsultDniNotValid()
- {
- $response = $this->runApp('POST', '/api/v1/dni');
- $this->assertEquals(400, $response->getStatusCode());
- }
-
- public function testConsultDni()
- {
- $arr = ['00000012', '00000005', '46658592'];
- $response = $this->runApp('POST', '/api/v1/dni', $arr);
-
- $this->assertEquals(200, $response->getStatusCode());
- /**@var $persons Person[] */
- $persons = json_decode((string)$response->getBody());
- $this->assertEquals(3, count($persons));
- foreach ($persons as $person) {
- $this->assertTrue(in_array($person->dni, $arr));
- $this->assertNotEmpty($person->nombres);
- }
- }
-}
\ No newline at end of file
diff --git a/tests/Functional/HomepageTest.php b/tests/Functional/HomepageTest.php
deleted file mode 100644
index 5f00ffe..0000000
--- a/tests/Functional/HomepageTest.php
+++ /dev/null
@@ -1,54 +0,0 @@
-runApp('GET', '/');
-
- $this->assertEquals(200, $response->getStatusCode());
- $this->assertContains('API Consult', (string)$response->getBody());
- }
-
- /**
- * Test that the index route won't accept a post request
- */
- public function testPostHomepageNotAllowed()
- {
- $response = $this->runApp('POST', '/', ['test']);
-
- $this->assertEquals(405, $response->getStatusCode());
- $this->assertContains('Method not allowed', (string)$response->getBody());
- }
-
- /**
- * Test that the swagger route returns a json response
- */
- public function testGetSwaggerpage()
- {
- $response = $this->runApp('GET', '/swagger');
-
- $this->assertEquals(200, $response->getStatusCode());
- $obj = json_decode((string)$response->getBody());
- $this->assertEquals(0, json_last_error());
- $this->assertTrue(isset($obj->openapi));
- $this->assertTrue(isset($obj->servers));
- $this->assertTrue(isset($obj->paths));
- }
-
- /**
- * Test that the index route won't accept a post request
- */
- public function testPostSwaggerpageNotAllowed()
- {
- $response = $this->runApp('POST', '/swagger');
-
- $this->assertEquals(405, $response->getStatusCode());
- $this->assertContains('Method not allowed', (string)$response->getBody());
- }
-}
\ No newline at end of file
diff --git a/tests/Kernel.php b/tests/Kernel.php
new file mode 100644
index 0000000..00fdf6b
--- /dev/null
+++ b/tests/Kernel.php
@@ -0,0 +1,28 @@
+boot();
+ $loop = $this->getContainer()->get('reactphp.event_loop');
+ $promise = $this->handleAsync($request);
+ $response = null;
+ $promise->then(function ($result) use (&$response) {
+ $response = $result;
+ });
+ $loop->run();
+
+ return $response;
+ }
+}
diff --git a/tests/Functional/ClientStubDecorator.php b/tests/Stub/ClientStubDecorator.php
similarity index 83%
rename from tests/Functional/ClientStubDecorator.php
rename to tests/Stub/ClientStubDecorator.php
index 337b262..286474d 100644
--- a/tests/Functional/ClientStubDecorator.php
+++ b/tests/Stub/ClientStubDecorator.php
@@ -2,7 +2,7 @@
declare(strict_types=1);
-namespace Tests\Functional;
+namespace App\Tests\Stub;
use Peru\Http\ClientInterface;
@@ -20,8 +20,6 @@ class ClientStubDecorator implements ClientInterface
/**
* ClientStubDecorator constructor.
- *
- * @param ClientInterface $client
*/
public function __construct(ClientInterface $client)
{
@@ -31,9 +29,6 @@ public function __construct(ClientInterface $client)
/**
* Get Request.
*
- * @param string $url
- * @param array $headers
- *
* @return string|false
*/
public function get(string $url, array $headers = [])
@@ -44,9 +39,7 @@ public function get(string $url, array $headers = [])
/**
* Post Request.
*
- * @param string $url
- * @param mixed $data
- * @param array $headers
+ * @param mixed $data
*
* @return string|false
*/
diff --git a/tests/Functional/HttpClientStub.php b/tests/Stub/HttpClientStub.php
similarity index 83%
rename from tests/Functional/HttpClientStub.php
rename to tests/Stub/HttpClientStub.php
index ae27995..a40016d 100644
--- a/tests/Functional/HttpClientStub.php
+++ b/tests/Stub/HttpClientStub.php
@@ -2,7 +2,7 @@
declare(strict_types=1);
-namespace Tests\Functional;
+namespace App\Tests\Stub;
use Peru\Http\Async\ClientInterface;
use React\Promise\PromiseInterface;
@@ -16,7 +16,6 @@ class HttpClientStub implements ClientInterface
/**
* HttpClientStub constructor.
- * @param ClientInterface $client
*/
public function __construct(ClientInterface $client)
{
@@ -26,9 +25,6 @@ public function __construct(ClientInterface $client)
/**
* Make GET Request.
*
- * @param string $url
- * @param array $headers
- *
* @return PromiseInterface
*/
public function getAsync(string $url, array $headers = []): PromiseInterface
@@ -39,9 +35,7 @@ public function getAsync(string $url, array $headers = []): PromiseInterface
/**
* Post Request.
*
- * @param string $url
* @param mixed $data
- * @param array $headers
*
* @return PromiseInterface
*/
@@ -49,4 +43,4 @@ public function postAsync(string $url, $data, array $headers = []): PromiseInter
{
return $this->client->postAsync(ClientStubDecorator::getNewUrl($url), $data, $headers);
}
-}
\ No newline at end of file
+}
diff --git a/tests/bootstrap.php b/tests/bootstrap.php
new file mode 100644
index 0000000..469dcce
--- /dev/null
+++ b/tests/bootstrap.php
@@ -0,0 +1,11 @@
+bootEnv(dirname(__DIR__).'/.env');
+}