From 3affc5b54631f01018d83ec2c930fc606e3e0aec Mon Sep 17 00:00:00 2001 From: Sam Jordan Date: Tue, 18 May 2021 14:41:50 +0100 Subject: [PATCH 01/26] Initial commit --- .dockerignore | 1 + Dockerfile | 58 + composer.json | 8 +- composer.lock | 3796 ++++++++++++++++++++++++++++----------- docker-support/netsells | 39 + hooks/build | 3 + 6 files changed, 2846 insertions(+), 1059 deletions(-) create mode 100644 .dockerignore create mode 100644 Dockerfile create mode 100755 docker-support/netsells create mode 100644 hooks/build diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..48b8bf9 --- /dev/null +++ b/.dockerignore @@ -0,0 +1 @@ +vendor/ diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..5d1bc8e --- /dev/null +++ b/Dockerfile @@ -0,0 +1,58 @@ +## +# Composer +## +FROM composer:latest as composer + +## +# PHP Builder +## +FROM php:7.4-cli as build + +ARG DOCKER_TAG + +# Deps +RUN apt-get update && apt-get install -y \ + unzip \ + git + +# Grab composer +COPY --from=composer /usr/bin/composer /usr/bin/composer + +COPY . /app +WORKDIR /app + +# Install CLI deps +RUN composer install --ansi --no-interaction --no-progress --prefer-dist + +# Build the phar +RUN php netsells app:build --build-version=$DOCKER_TAG + +## +# PHP Runtime +## +FROM php:7.4-cli as runtime + +# Grab built phar from the builder +COPY --from=build /app/builds/netsells /usr/local/bin/netsells + +# Copy the wrapper from source +COPY ./docker-support/netsells /usr/local/bin/netsells-wrapper + +# Deps +RUN apt-get update && apt-get install -y \ + unzip \ + git \ + docker.io \ + docker-compose +# docker-compose is now in docker binary, but we'll install it for now until netsells CLI is updated + +# AWS CLI +RUN curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip" && unzip awscliv2.zip && ./aws/install && rm awscliv2.zip + +# Session Manager +RUN curl "https://s3.amazonaws.com/session-manager-downloads/plugin/latest/ubuntu_64bit/session-manager-plugin.deb" -o "session-manager-plugin.deb" && dpkg -i session-manager-plugin.deb && rm session-manager-plugin.deb + +RUN mkdir /app +WORKDIR /app + +ENTRYPOINT ["netsells"] diff --git a/composer.json b/composer.json index 6a2ba89..7d8cbb4 100644 --- a/composer.json +++ b/composer.json @@ -11,17 +11,17 @@ } ], "require": { - "php": "^7.3", + "php": "^7.4 | ^8.0", "laminas/laminas-text": "^2.7", - "laravel-zero/framework": "^7.0", - "nunomaduro/laravel-console-menu": "^3.0", + "laravel-zero/framework": "^8.0", + "nunomaduro/laravel-console-menu": "^3.1", "padraic/phar-updater": "^1.0.6", "symfony/yaml": "^5.0" }, "require-dev": { "fzaninotto/faker": "^1.9", "mockery/mockery": "^1.3.1", - "phpunit/phpunit": "^8.5" + "phpunit/phpunit": "^9.3" }, "autoload": { "psr-4": { diff --git a/composer.lock b/composer.lock index 5331a4c..336b57a 100644 --- a/composer.lock +++ b/composer.lock @@ -4,20 +4,20 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "a5f748b793ea3465f9abb719777bdd46", + "content-hash": "8a3fe468ffe0a2fc423ff0710e2d842c", "packages": [ { "name": "beberlei/assert", - "version": "v3.2.7", + "version": "v3.3.1", "source": { "type": "git", "url": "https://github.com/beberlei/assert.git", - "reference": "d63a6943fc4fd1a2aedb65994e3548715105abcf" + "reference": "5e721d7e937ca3ba2cdec1e1adf195f9e5188372" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/beberlei/assert/zipball/d63a6943fc4fd1a2aedb65994e3548715105abcf", - "reference": "d63a6943fc4fd1a2aedb65994e3548715105abcf", + "url": "https://api.github.com/repos/beberlei/assert/zipball/5e721d7e937ca3ba2cdec1e1adf195f9e5188372", + "reference": "5e721d7e937ca3ba2cdec1e1adf195f9e5188372", "shasum": "" }, "require": { @@ -25,12 +25,13 @@ "ext-json": "*", "ext-mbstring": "*", "ext-simplexml": "*", - "php": "^7" + "php": "^7.0 || ^8.0" }, "require-dev": { "friendsofphp/php-cs-fixer": "*", - "phpstan/phpstan-shim": "*", - "phpunit/phpunit": ">=6.0.0 <8" + "phpstan/phpstan": "*", + "phpunit/phpunit": ">=6.0.0", + "yoast/phpunit-polyfills": "^0.1.0" }, "suggest": { "ext-intl": "Needed to allow Assertion::count(), Assertion::isCountable(), Assertion::minCount(), and Assertion::maxCount() to operate on ResourceBundles" @@ -66,20 +67,80 @@ "assertion", "validation" ], - "time": "2019-12-19T17:51:41+00:00" + "support": { + "issues": "https://github.com/beberlei/assert/issues", + "source": "https://github.com/beberlei/assert/tree/v3.3.1" + }, + "time": "2021-04-18T20:11:03+00:00" + }, + { + "name": "brick/math", + "version": "0.9.2", + "source": { + "type": "git", + "url": "https://github.com/brick/math.git", + "reference": "dff976c2f3487d42c1db75a3b180e2b9f0e72ce0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/brick/math/zipball/dff976c2f3487d42c1db75a3b180e2b9f0e72ce0", + "reference": "dff976c2f3487d42c1db75a3b180e2b9f0e72ce0", + "shasum": "" + }, + "require": { + "ext-json": "*", + "php": "^7.1 || ^8.0" + }, + "require-dev": { + "php-coveralls/php-coveralls": "^2.2", + "phpunit/phpunit": "^7.5.15 || ^8.5 || ^9.0", + "vimeo/psalm": "4.3.2" + }, + "type": "library", + "autoload": { + "psr-4": { + "Brick\\Math\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "Arbitrary-precision arithmetic library", + "keywords": [ + "Arbitrary-precision", + "BigInteger", + "BigRational", + "arithmetic", + "bigdecimal", + "bignum", + "brick", + "math" + ], + "support": { + "issues": "https://github.com/brick/math/issues", + "source": "https://github.com/brick/math/tree/0.9.2" + }, + "funding": [ + { + "url": "https://tidelift.com/funding/github/packagist/brick/math", + "type": "tidelift" + } + ], + "time": "2021-01-20T22:51:39+00:00" }, { "name": "composer/ca-bundle", - "version": "1.2.7", + "version": "1.2.9", "source": { "type": "git", "url": "https://github.com/composer/ca-bundle.git", - "reference": "95c63ab2117a72f48f5a55da9740a3273d45b7fd" + "reference": "78a0e288fdcebf92aa2318a8d3656168da6ac1a5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/ca-bundle/zipball/95c63ab2117a72f48f5a55da9740a3273d45b7fd", - "reference": "95c63ab2117a72f48f5a55da9740a3273d45b7fd", + "url": "https://api.github.com/repos/composer/ca-bundle/zipball/78a0e288fdcebf92aa2318a8d3656168da6ac1a5", + "reference": "78a0e288fdcebf92aa2318a8d3656168da6ac1a5", "shasum": "" }, "require": { @@ -88,14 +149,15 @@ "php": "^5.3.2 || ^7.0 || ^8.0" }, "require-dev": { - "phpunit/phpunit": "^4.8.35 || ^5.7 || 6.5 - 8", + "phpstan/phpstan": "^0.12.55", "psr/log": "^1.0", + "symfony/phpunit-bridge": "^4.2 || ^5", "symfony/process": "^2.5 || ^3.0 || ^4.0 || ^5.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.x-dev" + "dev-main": "1.x-dev" } }, "autoload": { @@ -122,17 +184,26 @@ "ssl", "tls" ], + "support": { + "irc": "irc://irc.freenode.org/composer", + "issues": "https://github.com/composer/ca-bundle/issues", + "source": "https://github.com/composer/ca-bundle/tree/1.2.9" + }, "funding": [ { "url": "https://packagist.com", "type": "custom" }, + { + "url": "https://github.com/composer", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/composer/composer", "type": "tidelift" } ], - "time": "2020-04-08T08:27:21+00:00" + "time": "2021-01-12T12:10:35+00:00" }, { "name": "container-interop/container-interop", @@ -163,25 +234,29 @@ ], "description": "Promoting the interoperability of container objects (DIC, SL, etc.)", "homepage": "https://github.com/container-interop/container-interop", + "support": { + "issues": "https://github.com/container-interop/container-interop/issues", + "source": "https://github.com/container-interop/container-interop/tree/master" + }, "abandoned": "psr/container", "time": "2017-02-14T19:40:03+00:00" }, { "name": "doctrine/inflector", - "version": "2.0.1", + "version": "2.0.3", "source": { "type": "git", "url": "https://github.com/doctrine/inflector.git", - "reference": "18b995743e7ec8b15fd6efc594f0fa3de4bfe6d7" + "reference": "9cf661f4eb38f7c881cac67c75ea9b00bf97b210" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/inflector/zipball/18b995743e7ec8b15fd6efc594f0fa3de4bfe6d7", - "reference": "18b995743e7ec8b15fd6efc594f0fa3de4bfe6d7", + "url": "https://api.github.com/repos/doctrine/inflector/zipball/9cf661f4eb38f7c881cac67c75ea9b00bf97b210", + "reference": "9cf661f4eb38f7c881cac67c75ea9b00bf97b210", "shasum": "" }, "require": { - "php": "^7.2" + "php": "^7.2 || ^8.0" }, "require-dev": { "doctrine/coding-standard": "^7.0", @@ -241,6 +316,10 @@ "uppercase", "words" ], + "support": { + "issues": "https://github.com/doctrine/inflector/issues", + "source": "https://github.com/doctrine/inflector/tree/2.0.x" + }, "funding": [ { "url": "https://www.doctrine-project.org/sponsorship.html", @@ -255,34 +334,36 @@ "type": "tidelift" } ], - "time": "2020-05-11T11:25:59+00:00" + "time": "2020-05-29T15:13:26+00:00" }, { "name": "dragonmantank/cron-expression", - "version": "v2.3.0", + "version": "v3.1.0", "source": { "type": "git", "url": "https://github.com/dragonmantank/cron-expression.git", - "reference": "72b6fbf76adb3cf5bc0db68559b33d41219aba27" + "reference": "7a8c6e56ab3ffcc538d05e8155bb42269abf1a0c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/dragonmantank/cron-expression/zipball/72b6fbf76adb3cf5bc0db68559b33d41219aba27", - "reference": "72b6fbf76adb3cf5bc0db68559b33d41219aba27", + "url": "https://api.github.com/repos/dragonmantank/cron-expression/zipball/7a8c6e56ab3ffcc538d05e8155bb42269abf1a0c", + "reference": "7a8c6e56ab3ffcc538d05e8155bb42269abf1a0c", "shasum": "" }, "require": { - "php": "^7.0" + "php": "^7.2|^8.0", + "webmozart/assert": "^1.7.0" + }, + "replace": { + "mtdowling/cron-expression": "^1.0" }, "require-dev": { - "phpunit/phpunit": "^6.4|^7.0" + "phpstan/extension-installer": "^1.0", + "phpstan/phpstan": "^0.12", + "phpstan/phpstan-webmozart-assert": "^0.12.7", + "phpunit/phpunit": "^7.0|^8.0|^9.0" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.3-dev" - } - }, "autoload": { "psr-4": { "Cron\\": "src/Cron/" @@ -293,11 +374,6 @@ "MIT" ], "authors": [ - { - "name": "Michael Dowling", - "email": "mtdowling@gmail.com", - "homepage": "https://github.com/mtdowling" - }, { "name": "Chris Tankersley", "email": "chris@ctankersley.com", @@ -309,24 +385,39 @@ "cron", "schedule" ], - "time": "2019-03-31T00:38:28+00:00" + "support": { + "issues": "https://github.com/dragonmantank/cron-expression/issues", + "source": "https://github.com/dragonmantank/cron-expression/tree/v3.1.0" + }, + "funding": [ + { + "url": "https://github.com/dragonmantank", + "type": "github" + } + ], + "time": "2020-11-24T19:55:57+00:00" }, { "name": "facade/ignition-contracts", - "version": "1.0.0", + "version": "1.0.2", "source": { "type": "git", "url": "https://github.com/facade/ignition-contracts.git", - "reference": "f445db0fb86f48e205787b2592840dd9c80ded28" + "reference": "3c921a1cdba35b68a7f0ccffc6dffc1995b18267" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/facade/ignition-contracts/zipball/f445db0fb86f48e205787b2592840dd9c80ded28", - "reference": "f445db0fb86f48e205787b2592840dd9c80ded28", + "url": "https://api.github.com/repos/facade/ignition-contracts/zipball/3c921a1cdba35b68a7f0ccffc6dffc1995b18267", + "reference": "3c921a1cdba35b68a7f0ccffc6dffc1995b18267", "shasum": "" }, "require": { - "php": "^7.1" + "php": "^7.3|^8.0" + }, + "require-dev": { + "friendsofphp/php-cs-fixer": "^v2.15.8", + "phpunit/phpunit": "^9.3.11", + "vimeo/psalm": "^3.17.1" }, "type": "library", "autoload": { @@ -353,29 +444,33 @@ "flare", "ignition" ], - "time": "2019-08-30T14:06:08+00:00" + "support": { + "issues": "https://github.com/facade/ignition-contracts/issues", + "source": "https://github.com/facade/ignition-contracts/tree/1.0.2" + }, + "time": "2020-10-16T08:27:54+00:00" }, { "name": "filp/whoops", - "version": "2.7.2", + "version": "2.12.1", "source": { "type": "git", "url": "https://github.com/filp/whoops.git", - "reference": "17d0d3f266c8f925ebd035cd36f83cf802b47d4a" + "reference": "c13c0be93cff50f88bbd70827d993026821914dd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/filp/whoops/zipball/17d0d3f266c8f925ebd035cd36f83cf802b47d4a", - "reference": "17d0d3f266c8f925ebd035cd36f83cf802b47d4a", + "url": "https://api.github.com/repos/filp/whoops/zipball/c13c0be93cff50f88bbd70827d993026821914dd", + "reference": "c13c0be93cff50f88bbd70827d993026821914dd", "shasum": "" }, "require": { - "php": "^5.5.9 || ^7.0", + "php": "^5.5.9 || ^7.0 || ^8.0", "psr/log": "^1.0.1" }, "require-dev": { "mockery/mockery": "^0.9 || ^1.0", - "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0", + "phpunit/phpunit": "^4.8.36 || ^5.7.27 || ^6.5.14 || ^7.5.20 || ^8.5.8 || ^9.3.3", "symfony/var-dumper": "^2.6 || ^3.0 || ^4.0 || ^5.0" }, "suggest": { @@ -385,7 +480,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.6-dev" + "dev-master": "2.7-dev" } }, "autoload": { @@ -414,38 +509,169 @@ "throwable", "whoops" ], - "time": "2020-05-05T12:28:07+00:00" + "support": { + "issues": "https://github.com/filp/whoops/issues", + "source": "https://github.com/filp/whoops/tree/2.12.1" + }, + "funding": [ + { + "url": "https://github.com/denis-sokolov", + "type": "github" + } + ], + "time": "2021-04-25T12:00:00+00:00" + }, + { + "name": "graham-campbell/result-type", + "version": "v1.0.1", + "source": { + "type": "git", + "url": "https://github.com/GrahamCampbell/Result-Type.git", + "reference": "7e279d2cd5d7fbb156ce46daada972355cea27bb" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/GrahamCampbell/Result-Type/zipball/7e279d2cd5d7fbb156ce46daada972355cea27bb", + "reference": "7e279d2cd5d7fbb156ce46daada972355cea27bb", + "shasum": "" + }, + "require": { + "php": "^7.0|^8.0", + "phpoption/phpoption": "^1.7.3" + }, + "require-dev": { + "phpunit/phpunit": "^6.5|^7.5|^8.5|^9.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "autoload": { + "psr-4": { + "GrahamCampbell\\ResultType\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Graham Campbell", + "email": "graham@alt-three.com" + } + ], + "description": "An Implementation Of The Result Type", + "keywords": [ + "Graham Campbell", + "GrahamCampbell", + "Result Type", + "Result-Type", + "result" + ], + "support": { + "issues": "https://github.com/GrahamCampbell/Result-Type/issues", + "source": "https://github.com/GrahamCampbell/Result-Type/tree/v1.0.1" + }, + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/graham-campbell/result-type", + "type": "tidelift" + } + ], + "time": "2020-04-13T13:17:36+00:00" + }, + { + "name": "illuminate/bus", + "version": "v8.41.0", + "source": { + "type": "git", + "url": "https://github.com/illuminate/bus.git", + "reference": "7b5c0f1aa52cc70259352ff6b7adb67c7d46bcc5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/illuminate/bus/zipball/7b5c0f1aa52cc70259352ff6b7adb67c7d46bcc5", + "reference": "7b5c0f1aa52cc70259352ff6b7adb67c7d46bcc5", + "shasum": "" + }, + "require": { + "illuminate/collections": "^8.0", + "illuminate/contracts": "^8.0", + "illuminate/pipeline": "^8.0", + "illuminate/support": "^8.0", + "php": "^7.3|^8.0" + }, + "suggest": { + "illuminate/queue": "Required to use closures when chaining jobs (^7.0)." + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "8.x-dev" + } + }, + "autoload": { + "psr-4": { + "Illuminate\\Bus\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Taylor Otwell", + "email": "taylor@laravel.com" + } + ], + "description": "The Illuminate Bus package.", + "homepage": "https://laravel.com", + "support": { + "issues": "https://github.com/laravel/framework/issues", + "source": "https://github.com/laravel/framework" + }, + "time": "2021-04-28T12:55:54+00:00" }, { "name": "illuminate/cache", - "version": "v7.11.0", + "version": "v8.41.0", "source": { "type": "git", "url": "https://github.com/illuminate/cache.git", - "reference": "88ba9ccf6c9373ecf4cf39f43b4e6f3f313d8bab" + "reference": "267a541171a375d56622117fbd0a60515402f2ef" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/illuminate/cache/zipball/88ba9ccf6c9373ecf4cf39f43b4e6f3f313d8bab", - "reference": "88ba9ccf6c9373ecf4cf39f43b4e6f3f313d8bab", + "url": "https://api.github.com/repos/illuminate/cache/zipball/267a541171a375d56622117fbd0a60515402f2ef", + "reference": "267a541171a375d56622117fbd0a60515402f2ef", "shasum": "" }, "require": { - "illuminate/contracts": "^7.0", - "illuminate/support": "^7.0", - "php": "^7.2.5" + "illuminate/collections": "^8.0", + "illuminate/contracts": "^8.0", + "illuminate/macroable": "^8.0", + "illuminate/support": "^8.0", + "php": "^7.3|^8.0" }, "suggest": { "ext-memcached": "Required to use the memcache cache driver.", - "illuminate/database": "Required to use the database cache driver (^7.0).", - "illuminate/filesystem": "Required to use the file cache driver (^7.0).", - "illuminate/redis": "Required to use the redis cache driver (^7.0).", - "symfony/cache": "Required to PSR-6 cache bridge (^5.0)." + "illuminate/database": "Required to use the database cache driver (^8.0).", + "illuminate/filesystem": "Required to use the file cache driver (^8.0).", + "illuminate/redis": "Required to use the redis cache driver (^8.0).", + "symfony/cache": "Required to PSR-6 cache bridge (^5.1.4)." }, "type": "library", "extra": { "branch-alias": { - "dev-master": "7.x-dev" + "dev-master": "8.x-dev" } }, "autoload": { @@ -465,31 +691,89 @@ ], "description": "The Illuminate Cache package.", "homepage": "https://laravel.com", - "time": "2020-05-08T20:55:59+00:00" + "support": { + "issues": "https://github.com/laravel/framework/issues", + "source": "https://github.com/laravel/framework" + }, + "time": "2021-04-27T20:56:51+00:00" + }, + { + "name": "illuminate/collections", + "version": "v8.41.0", + "source": { + "type": "git", + "url": "https://github.com/illuminate/collections.git", + "reference": "deccb956d38710f3f8baf36dd876c3fa1585ec22" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/illuminate/collections/zipball/deccb956d38710f3f8baf36dd876c3fa1585ec22", + "reference": "deccb956d38710f3f8baf36dd876c3fa1585ec22", + "shasum": "" + }, + "require": { + "illuminate/contracts": "^8.0", + "illuminate/macroable": "^8.0", + "php": "^7.3|^8.0" + }, + "suggest": { + "symfony/var-dumper": "Required to use the dump method (^5.1.4)." + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "8.x-dev" + } + }, + "autoload": { + "psr-4": { + "Illuminate\\Support\\": "" + }, + "files": [ + "helpers.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Taylor Otwell", + "email": "taylor@laravel.com" + } + ], + "description": "The Illuminate Collections package.", + "homepage": "https://laravel.com", + "support": { + "issues": "https://github.com/laravel/framework/issues", + "source": "https://github.com/laravel/framework" + }, + "time": "2021-04-22T21:08:09+00:00" }, { "name": "illuminate/config", - "version": "v7.11.0", + "version": "v8.41.0", "source": { "type": "git", "url": "https://github.com/illuminate/config.git", - "reference": "d1e898de7a0cefe9ce2c94dede6679839e6a7b39" + "reference": "8441c542312b4d57220b1f942b947b6517c05008" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/illuminate/config/zipball/d1e898de7a0cefe9ce2c94dede6679839e6a7b39", - "reference": "d1e898de7a0cefe9ce2c94dede6679839e6a7b39", + "url": "https://api.github.com/repos/illuminate/config/zipball/8441c542312b4d57220b1f942b947b6517c05008", + "reference": "8441c542312b4d57220b1f942b947b6517c05008", "shasum": "" }, "require": { - "illuminate/contracts": "^7.0", - "illuminate/support": "^7.0", - "php": "^7.2.5" + "illuminate/collections": "^8.0", + "illuminate/contracts": "^8.0", + "php": "^7.3|^8.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "7.x-dev" + "dev-master": "8.x-dev" } }, "autoload": { @@ -509,41 +793,47 @@ ], "description": "The Illuminate Config package.", "homepage": "https://laravel.com", - "time": "2020-01-07T13:49:44+00:00" + "support": { + "issues": "https://github.com/laravel/framework/issues", + "source": "https://github.com/laravel/framework" + }, + "time": "2020-10-27T15:20:30+00:00" }, { "name": "illuminate/console", - "version": "v7.11.0", + "version": "v8.41.0", "source": { "type": "git", "url": "https://github.com/illuminate/console.git", - "reference": "7d6f2543a50609ad059316fda93fddc0d728fdf1" + "reference": "395002ac2d4ec404c42e6e97997f4236dc8ab2b6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/illuminate/console/zipball/7d6f2543a50609ad059316fda93fddc0d728fdf1", - "reference": "7d6f2543a50609ad059316fda93fddc0d728fdf1", + "url": "https://api.github.com/repos/illuminate/console/zipball/395002ac2d4ec404c42e6e97997f4236dc8ab2b6", + "reference": "395002ac2d4ec404c42e6e97997f4236dc8ab2b6", "shasum": "" }, "require": { - "illuminate/contracts": "^7.0", - "illuminate/support": "^7.0", - "php": "^7.2.5", - "symfony/console": "^5.0", - "symfony/process": "^5.0" + "illuminate/collections": "^8.0", + "illuminate/contracts": "^8.0", + "illuminate/macroable": "^8.0", + "illuminate/support": "^8.0", + "php": "^7.3|^8.0", + "symfony/console": "^5.1.4", + "symfony/process": "^5.1.4" }, "suggest": { - "dragonmantank/cron-expression": "Required to use scheduler (^2.0).", - "guzzlehttp/guzzle": "Required to use the ping methods on schedules (^6.3.1|^7.0).", - "illuminate/bus": "Required to use the scheduled job dispatcher (^7.0)", - "illuminate/container": "Required to use the scheduler (^7.0)", - "illuminate/filesystem": "Required to use the generator command (^7.0)", - "illuminate/queue": "Required to use closures for scheduled jobs (^7.0)" + "dragonmantank/cron-expression": "Required to use scheduler (^3.0.2).", + "guzzlehttp/guzzle": "Required to use the ping methods on schedules (^6.5.5|^7.0.1).", + "illuminate/bus": "Required to use the scheduled job dispatcher (^8.0).", + "illuminate/container": "Required to use the scheduler (^8.0).", + "illuminate/filesystem": "Required to use the generator command (^8.0).", + "illuminate/queue": "Required to use closures for scheduled jobs (^8.0)." }, "type": "library", "extra": { "branch-alias": { - "dev-master": "7.x-dev" + "dev-master": "8.x-dev" } }, "autoload": { @@ -563,31 +853,38 @@ ], "description": "The Illuminate Console package.", "homepage": "https://laravel.com", - "time": "2020-05-03T16:42:53+00:00" + "support": { + "issues": "https://github.com/laravel/framework/issues", + "source": "https://github.com/laravel/framework" + }, + "time": "2021-04-26T12:39:58+00:00" }, { "name": "illuminate/container", - "version": "v7.11.0", + "version": "v8.41.0", "source": { "type": "git", "url": "https://github.com/illuminate/container.git", - "reference": "78a134ab5bcf6e6e50321dfb0d602b698898698d" + "reference": "0e38ee1632d470e56aece0079e6e22d13e6bea8e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/illuminate/container/zipball/78a134ab5bcf6e6e50321dfb0d602b698898698d", - "reference": "78a134ab5bcf6e6e50321dfb0d602b698898698d", + "url": "https://api.github.com/repos/illuminate/container/zipball/0e38ee1632d470e56aece0079e6e22d13e6bea8e", + "reference": "0e38ee1632d470e56aece0079e6e22d13e6bea8e", "shasum": "" }, "require": { - "illuminate/contracts": "^7.0", - "php": "^7.2.5", + "illuminate/contracts": "^8.0", + "php": "^7.3|^8.0", "psr/container": "^1.0" }, + "provide": { + "psr/container-implementation": "1.0" + }, "type": "library", "extra": { "branch-alias": { - "dev-master": "7.x-dev" + "dev-master": "8.x-dev" } }, "autoload": { @@ -607,31 +904,35 @@ ], "description": "The Illuminate Container package.", "homepage": "https://laravel.com", - "time": "2020-04-23T13:57:26+00:00" + "support": { + "issues": "https://github.com/laravel/framework/issues", + "source": "https://github.com/laravel/framework" + }, + "time": "2021-03-16T19:42:20+00:00" }, { "name": "illuminate/contracts", - "version": "v7.11.0", + "version": "v8.41.0", "source": { "type": "git", "url": "https://github.com/illuminate/contracts.git", - "reference": "5681c90368ffafaaa2e12c42112e344281466f23" + "reference": "64abbe2aeee0855a11cfce49d0ea08a0aa967cd2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/illuminate/contracts/zipball/5681c90368ffafaaa2e12c42112e344281466f23", - "reference": "5681c90368ffafaaa2e12c42112e344281466f23", + "url": "https://api.github.com/repos/illuminate/contracts/zipball/64abbe2aeee0855a11cfce49d0ea08a0aa967cd2", + "reference": "64abbe2aeee0855a11cfce49d0ea08a0aa967cd2", "shasum": "" }, "require": { - "php": "^7.2.5", + "php": "^7.3|^8.0", "psr/container": "^1.0", "psr/simple-cache": "^1.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "7.x-dev" + "dev-master": "8.x-dev" } }, "autoload": { @@ -651,38 +952,48 @@ ], "description": "The Illuminate Contracts package.", "homepage": "https://laravel.com", - "time": "2020-05-06T13:37:50+00:00" + "support": { + "issues": "https://github.com/laravel/framework/issues", + "source": "https://github.com/laravel/framework" + }, + "time": "2021-05-06T14:58:48+00:00" }, { "name": "illuminate/events", - "version": "v7.11.0", + "version": "v8.41.0", "source": { "type": "git", "url": "https://github.com/illuminate/events.git", - "reference": "59f6074ff6b14b475c7c97021dcbcd2e2bce2ebd" + "reference": "bd2941d4d55f5d357b203dc2ed81ac5c138593dc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/illuminate/events/zipball/59f6074ff6b14b475c7c97021dcbcd2e2bce2ebd", - "reference": "59f6074ff6b14b475c7c97021dcbcd2e2bce2ebd", + "url": "https://api.github.com/repos/illuminate/events/zipball/bd2941d4d55f5d357b203dc2ed81ac5c138593dc", + "reference": "bd2941d4d55f5d357b203dc2ed81ac5c138593dc", "shasum": "" }, "require": { - "illuminate/container": "^7.0", - "illuminate/contracts": "^7.0", - "illuminate/support": "^7.0", - "php": "^7.2.5" + "illuminate/bus": "^8.0", + "illuminate/collections": "^8.0", + "illuminate/container": "^8.0", + "illuminate/contracts": "^8.0", + "illuminate/macroable": "^8.0", + "illuminate/support": "^8.0", + "php": "^7.3|^8.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "7.x-dev" + "dev-master": "8.x-dev" } }, "autoload": { "psr-4": { "Illuminate\\Events\\": "" - } + }, + "files": [ + "functions.php" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -696,40 +1007,49 @@ ], "description": "The Illuminate Events package.", "homepage": "https://laravel.com", - "time": "2020-04-14T13:14:16+00:00" + "support": { + "issues": "https://github.com/laravel/framework/issues", + "source": "https://github.com/laravel/framework" + }, + "time": "2021-04-06T19:21:57+00:00" }, { "name": "illuminate/filesystem", - "version": "v7.11.0", + "version": "v8.41.0", "source": { "type": "git", "url": "https://github.com/illuminate/filesystem.git", - "reference": "43d0aafb620151b9c88331e13e1660564fc56244" + "reference": "8ef5902052c5b3bb4a6c1c3afc399f30e7723cb8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/illuminate/filesystem/zipball/43d0aafb620151b9c88331e13e1660564fc56244", - "reference": "43d0aafb620151b9c88331e13e1660564fc56244", + "url": "https://api.github.com/repos/illuminate/filesystem/zipball/8ef5902052c5b3bb4a6c1c3afc399f30e7723cb8", + "reference": "8ef5902052c5b3bb4a6c1c3afc399f30e7723cb8", "shasum": "" }, "require": { - "illuminate/contracts": "^7.0", - "illuminate/support": "^7.0", - "php": "^7.2.5", - "symfony/finder": "^5.0" + "illuminate/collections": "^8.0", + "illuminate/contracts": "^8.0", + "illuminate/macroable": "^8.0", + "illuminate/support": "^8.0", + "php": "^7.3|^8.0", + "symfony/finder": "^5.1.4" }, "suggest": { - "illuminate/http": "Required for handling uploaded files (^7.0)", - "league/flysystem": "Required to use the Flysystem local and FTP drivers (^1.0).", + "ext-ftp": "Required to use the Flysystem FTP driver.", + "illuminate/http": "Required for handling uploaded files (^7.0).", + "league/flysystem": "Required to use the Flysystem local and FTP drivers (^1.1).", "league/flysystem-aws-s3-v3": "Required to use the Flysystem S3 driver (^1.0).", "league/flysystem-cached-adapter": "Required to use the Flysystem cache (^1.0).", "league/flysystem-sftp": "Required to use the Flysystem SFTP driver (^1.0).", - "psr/http-message": "Required to allow Storage::put to accept a StreamInterface (^1.0)" + "psr/http-message": "Required to allow Storage::put to accept a StreamInterface (^1.0).", + "symfony/filesystem": "Required to enable support for relative symbolic links (^5.1.4).", + "symfony/mime": "Required to enable support for guessing extensions (^5.1.4)." }, "type": "library", "extra": { "branch-alias": { - "dev-master": "7.x-dev" + "dev-master": "8.x-dev" } }, "autoload": { @@ -749,55 +1069,39 @@ ], "description": "The Illuminate Filesystem package.", "homepage": "https://laravel.com", - "time": "2020-03-26T19:53:03+00:00" + "support": { + "issues": "https://github.com/laravel/framework/issues", + "source": "https://github.com/laravel/framework" + }, + "time": "2021-04-05T18:45:36+00:00" }, { - "name": "illuminate/support", - "version": "v7.11.0", + "name": "illuminate/macroable", + "version": "v8.41.0", "source": { "type": "git", - "url": "https://github.com/illuminate/support.git", - "reference": "5458d0d0048f185b3d4a911e5d21d2bb2fb336ca" + "url": "https://github.com/illuminate/macroable.git", + "reference": "300aa13c086f25116b5f3cde3ca54ff5c822fb05" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/illuminate/support/zipball/5458d0d0048f185b3d4a911e5d21d2bb2fb336ca", - "reference": "5458d0d0048f185b3d4a911e5d21d2bb2fb336ca", + "url": "https://api.github.com/repos/illuminate/macroable/zipball/300aa13c086f25116b5f3cde3ca54ff5c822fb05", + "reference": "300aa13c086f25116b5f3cde3ca54ff5c822fb05", "shasum": "" }, "require": { - "doctrine/inflector": "^1.4|^2.0", - "ext-json": "*", - "ext-mbstring": "*", - "illuminate/contracts": "^7.0", - "nesbot/carbon": "^2.17", - "php": "^7.2.5", - "voku/portable-ascii": "^1.4.8" - }, - "conflict": { - "tightenco/collect": "<5.5.33" - }, - "suggest": { - "illuminate/filesystem": "Required to use the composer class (^7.0).", - "moontoast/math": "Required to use ordered UUIDs (^1.1).", - "ramsey/uuid": "Required to use Str::uuid() (^3.7|^4.0).", - "symfony/process": "Required to use the composer class (^5.0).", - "symfony/var-dumper": "Required to use the dd function (^5.0).", - "vlucas/phpdotenv": "Required to use the Env class and env helper (^4.0)." + "php": "^7.3|^8.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "7.x-dev" + "dev-master": "8.x-dev" } }, "autoload": { "psr-4": { "Illuminate\\Support\\": "" - }, - "files": [ - "helpers.php" - ] + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -809,45 +1113,42 @@ "email": "taylor@laravel.com" } ], - "description": "The Illuminate Support package.", + "description": "The Illuminate Macroable package.", "homepage": "https://laravel.com", - "time": "2020-05-12T14:31:35+00:00" + "support": { + "issues": "https://github.com/laravel/framework/issues", + "source": "https://github.com/laravel/framework" + }, + "time": "2020-10-27T15:20:30+00:00" }, { - "name": "illuminate/testing", - "version": "v7.11.0", + "name": "illuminate/pipeline", + "version": "v8.41.0", "source": { "type": "git", - "url": "https://github.com/illuminate/testing.git", - "reference": "b155126294326f0178d13321a99a018287992061" + "url": "https://github.com/illuminate/pipeline.git", + "reference": "23aeff5b26ae4aee3f370835c76bd0f4e93f71d2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/illuminate/testing/zipball/b155126294326f0178d13321a99a018287992061", - "reference": "b155126294326f0178d13321a99a018287992061", + "url": "https://api.github.com/repos/illuminate/pipeline/zipball/23aeff5b26ae4aee3f370835c76bd0f4e93f71d2", + "reference": "23aeff5b26ae4aee3f370835c76bd0f4e93f71d2", "shasum": "" }, "require": { - "illuminate/contracts": "^7.0", - "illuminate/support": "^7.0", - "php": "^7.2.5" - }, - "suggest": { - "illuminate/console": "Required to assert console commands (^7.0).", - "illuminate/database": "Required to assert databases (^7.0).", - "illuminate/http": "Required to assert responses (^7.0).", - "mockery/mockery": "Required to use mocking (^1.3.1).", - "phpunit/phpunit": "Required to use assertions and run tests (^8.4|^9.0)." + "illuminate/contracts": "^8.0", + "illuminate/support": "^8.0", + "php": "^7.3|^8.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "7.x-dev" + "dev-master": "8.x-dev" } }, "autoload": { "psr-4": { - "Illuminate\\Testing\\": "" + "Illuminate\\Pipeline\\": "" } }, "notification-url": "https://packagist.org/downloads/", @@ -860,46 +1161,63 @@ "email": "taylor@laravel.com" } ], - "description": "The Illuminate Testing package.", + "description": "The Illuminate Pipeline package.", "homepage": "https://laravel.com", - "time": "2020-05-11T14:22:05+00:00" + "support": { + "issues": "https://github.com/laravel/framework/issues", + "source": "https://github.com/laravel/framework" + }, + "time": "2021-03-26T18:39:16+00:00" }, { - "name": "jolicode/jolinotif", - "version": "v2.1.0", + "name": "illuminate/support", + "version": "v8.41.0", "source": { "type": "git", - "url": "https://github.com/jolicode/JoliNotif.git", - "reference": "b1a7ccfeb13f1daa12a5188531863b739e388e13" + "url": "https://github.com/illuminate/support.git", + "reference": "31e91a12f0aac770d02a05b5d5771829132213b4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/jolicode/JoliNotif/zipball/b1a7ccfeb13f1daa12a5188531863b739e388e13", - "reference": "b1a7ccfeb13f1daa12a5188531863b739e388e13", + "url": "https://api.github.com/repos/illuminate/support/zipball/31e91a12f0aac770d02a05b5d5771829132213b4", + "reference": "31e91a12f0aac770d02a05b5d5771829132213b4", "shasum": "" }, "require": { - "php": ">=7.0", - "symfony/process": "^3.3|^4.0|^5.0" + "doctrine/inflector": "^1.4|^2.0", + "ext-json": "*", + "ext-mbstring": "*", + "illuminate/collections": "^8.0", + "illuminate/contracts": "^8.0", + "illuminate/macroable": "^8.0", + "nesbot/carbon": "^2.31", + "php": "^7.3|^8.0", + "voku/portable-ascii": "^1.4.8" }, - "require-dev": { - "friendsofphp/php-cs-fixer": "^2.0", - "symfony/finder": "^3.3|^4.0|^5.0", - "symfony/phpunit-bridge": "^3.4.26|^4.0|^5.0" + "conflict": { + "tightenco/collect": "<5.5.33" + }, + "suggest": { + "illuminate/filesystem": "Required to use the composer class (^8.0).", + "league/commonmark": "Required to use Str::markdown() and Stringable::markdown() (^1.3).", + "ramsey/uuid": "Required to use Str::uuid() (^4.0).", + "symfony/process": "Required to use the composer class (^5.1.4).", + "symfony/var-dumper": "Required to use the dd function (^5.1.4).", + "vlucas/phpdotenv": "Required to use the Env class and env helper (^5.2)." }, - "bin": [ - "jolinotif" - ], "type": "library", "extra": { "branch-alias": { - "dev-master": "2.1.x-dev" + "dev-master": "8.x-dev" } }, "autoload": { "psr-4": { - "Joli\\JoliNotif\\": "src/" - } + "Illuminate\\Support\\": "" + }, + "files": [ + "helpers.php" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -907,41 +1225,168 @@ ], "authors": [ { - "name": "Loïck Piera", - "email": "pyrech@gmail.com" + "name": "Taylor Otwell", + "email": "taylor@laravel.com" } ], - "description": "Send desktop notifications on Windows, Linux, MacOS.", - "keywords": [ - "MAC", - "growl", + "description": "The Illuminate Support package.", + "homepage": "https://laravel.com", + "support": { + "issues": "https://github.com/laravel/framework/issues", + "source": "https://github.com/laravel/framework" + }, + "time": "2021-05-10T13:42:57+00:00" + }, + { + "name": "illuminate/testing", + "version": "v8.41.0", + "source": { + "type": "git", + "url": "https://github.com/illuminate/testing.git", + "reference": "b45e4be3d74ecb48c8f466c23929021f75df7ecf" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/illuminate/testing/zipball/b45e4be3d74ecb48c8f466c23929021f75df7ecf", + "reference": "b45e4be3d74ecb48c8f466c23929021f75df7ecf", + "shasum": "" + }, + "require": { + "illuminate/collections": "^8.0", + "illuminate/contracts": "^8.0", + "illuminate/macroable": "^8.0", + "illuminate/support": "^8.0", + "php": "^7.3|^8.0" + }, + "suggest": { + "brianium/paratest": "Required to run tests in parallel (^6.0).", + "illuminate/console": "Required to assert console commands (^8.0).", + "illuminate/database": "Required to assert databases (^8.0).", + "illuminate/http": "Required to assert responses (^8.0).", + "mockery/mockery": "Required to use mocking (^1.4.2).", + "phpunit/phpunit": "Required to use assertions and run tests (^8.5.8|^9.3.3)." + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "8.x-dev" + } + }, + "autoload": { + "psr-4": { + "Illuminate\\Testing\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Taylor Otwell", + "email": "taylor@laravel.com" + } + ], + "description": "The Illuminate Testing package.", + "homepage": "https://laravel.com", + "support": { + "issues": "https://github.com/laravel/framework/issues", + "source": "https://github.com/laravel/framework" + }, + "time": "2021-05-02T20:04:03+00:00" + }, + { + "name": "jolicode/jolinotif", + "version": "v2.3.0", + "source": { + "type": "git", + "url": "https://github.com/jolicode/JoliNotif.git", + "reference": "9cca717bbc47aa2ffeca51d77daa13b824a489ee" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/jolicode/JoliNotif/zipball/9cca717bbc47aa2ffeca51d77daa13b824a489ee", + "reference": "9cca717bbc47aa2ffeca51d77daa13b824a489ee", + "shasum": "" + }, + "require": { + "php": ">=7.0", + "symfony/process": "^3.3|^4.0|^5.0" + }, + "require-dev": { + "friendsofphp/php-cs-fixer": "^2.0", + "symfony/finder": "^3.3|^4.0|^5.0", + "symfony/phpunit-bridge": "^3.4.26|^4.0|^5.0" + }, + "bin": [ + "jolinotif" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.3.x-dev" + } + }, + "autoload": { + "psr-4": { + "Joli\\JoliNotif\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Loïck Piera", + "email": "pyrech@gmail.com" + } + ], + "description": "Send desktop notifications on Windows, Linux, MacOS.", + "keywords": [ + "MAC", + "growl", "linux", "notification", "windows" ], - "time": "2020-01-10T15:37:00+00:00" + "support": { + "issues": "https://github.com/jolicode/JoliNotif/issues", + "source": "https://github.com/jolicode/JoliNotif/tree/v2.3.0" + }, + "funding": [ + { + "url": "https://tidelift.com/funding/github/packagist/jolicode/jolinotif", + "type": "tidelift" + } + ], + "time": "2021-03-07T12:30:00+00:00" }, { "name": "laminas/laminas-servicemanager", - "version": "3.4.1", + "version": "3.6.4", "source": { "type": "git", "url": "https://github.com/laminas/laminas-servicemanager.git", - "reference": "0d4c8628a71fae9f7bd0b1b74b76382e5e9a04b1" + "reference": "b1445e1a7077c21b0fad0974a1b7a11b9dbe0828" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laminas/laminas-servicemanager/zipball/0d4c8628a71fae9f7bd0b1b74b76382e5e9a04b1", - "reference": "0d4c8628a71fae9f7bd0b1b74b76382e5e9a04b1", + "url": "https://api.github.com/repos/laminas/laminas-servicemanager/zipball/b1445e1a7077c21b0fad0974a1b7a11b9dbe0828", + "reference": "b1445e1a7077c21b0fad0974a1b7a11b9dbe0828", "shasum": "" }, "require": { "container-interop/container-interop": "^1.2", "laminas/laminas-stdlib": "^3.2.1", "laminas/laminas-zendframework-bridge": "^1.0", - "php": "^5.6 || ^7.0", + "php": "^7.3 || ~8.0.0", "psr/container": "^1.0" }, + "conflict": { + "laminas/laminas-code": "<3.3.1", + "zendframework/zend-code": "<3.3.1" + }, "provide": { "container-interop/container-interop-implementation": "^1.2", "psr/container-implementation": "^1.0" @@ -950,27 +1395,24 @@ "zendframework/zend-servicemanager": "^3.4.0" }, "require-dev": { + "composer/package-versions-deprecated": "^1.0", "laminas/laminas-coding-standard": "~1.0.0", - "mikey179/vfsstream": "^1.6.5", - "ocramius/proxy-manager": "^1.0 || ^2.0", - "phpbench/phpbench": "^0.13.0", - "phpunit/phpunit": "^5.7.25 || ^6.4.4" + "laminas/laminas-container-config-test": "^0.3", + "laminas/laminas-dependency-plugin": "^2.1", + "mikey179/vfsstream": "^1.6.8", + "ocramius/proxy-manager": "^2.2.3", + "phpbench/phpbench": "^1.0.0-alpha3", + "phpspec/prophecy-phpunit": "^2.0", + "phpunit/phpunit": "^9.4" }, "suggest": { - "laminas/laminas-stdlib": "laminas-stdlib ^2.5 if you wish to use the MergeReplaceKey or MergeRemoveKey features in Config instances", - "ocramius/proxy-manager": "ProxyManager 1.* to handle lazy initialization of services" + "ocramius/proxy-manager": "ProxyManager ^2.1.1 to handle lazy initialization of services" }, "bin": [ "bin/generate-deps-for-config-factory", "bin/generate-factory-for-class" ], "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.3-dev", - "dev-develop": "4.0-dev" - } - }, "autoload": { "psr-4": { "Laminas\\ServiceManager\\": "src/" @@ -991,47 +1433,49 @@ "service-manager", "servicemanager" ], + "support": { + "chat": "https://laminas.dev/chat", + "docs": "https://docs.laminas.dev/laminas-servicemanager/", + "forum": "https://discourse.laminas.dev", + "issues": "https://github.com/laminas/laminas-servicemanager/issues", + "rss": "https://github.com/laminas/laminas-servicemanager/releases.atom", + "source": "https://github.com/laminas/laminas-servicemanager" + }, "funding": [ { "url": "https://funding.communitybridge.org/projects/laminas-project", "type": "community_bridge" } ], - "time": "2020-05-11T14:43:22+00:00" + "time": "2021-02-03T08:44:41+00:00" }, { "name": "laminas/laminas-stdlib", - "version": "3.2.1", + "version": "3.3.1", "source": { "type": "git", "url": "https://github.com/laminas/laminas-stdlib.git", - "reference": "2b18347625a2f06a1a485acfbc870f699dbe51c6" + "reference": "d81c7ffe602ed0e6ecb18691019111c0f4bf1efe" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laminas/laminas-stdlib/zipball/2b18347625a2f06a1a485acfbc870f699dbe51c6", - "reference": "2b18347625a2f06a1a485acfbc870f699dbe51c6", + "url": "https://api.github.com/repos/laminas/laminas-stdlib/zipball/d81c7ffe602ed0e6ecb18691019111c0f4bf1efe", + "reference": "d81c7ffe602ed0e6ecb18691019111c0f4bf1efe", "shasum": "" }, "require": { "laminas/laminas-zendframework-bridge": "^1.0", - "php": "^5.6 || ^7.0" + "php": "^7.3 || ^8.0" }, "replace": { - "zendframework/zend-stdlib": "self.version" + "zendframework/zend-stdlib": "^3.2.1" }, "require-dev": { "laminas/laminas-coding-standard": "~1.0.0", - "phpbench/phpbench": "^0.13", - "phpunit/phpunit": "^5.7.27 || ^6.5.8 || ^7.1.2" + "phpbench/phpbench": "^0.17.1", + "phpunit/phpunit": "~9.3.7" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.2.x-dev", - "dev-develop": "3.3.x-dev" - } - }, "autoload": { "psr-4": { "Laminas\\Stdlib\\": "src/" @@ -1047,43 +1491,51 @@ "laminas", "stdlib" ], - "time": "2019-12-31T17:51:15+00:00" + "support": { + "chat": "https://laminas.dev/chat", + "docs": "https://docs.laminas.dev/laminas-stdlib/", + "forum": "https://discourse.laminas.dev", + "issues": "https://github.com/laminas/laminas-stdlib/issues", + "rss": "https://github.com/laminas/laminas-stdlib/releases.atom", + "source": "https://github.com/laminas/laminas-stdlib" + }, + "funding": [ + { + "url": "https://funding.communitybridge.org/projects/laminas-project", + "type": "community_bridge" + } + ], + "time": "2020-11-19T20:18:59+00:00" }, { "name": "laminas/laminas-text", - "version": "2.7.1", + "version": "2.8.1", "source": { "type": "git", "url": "https://github.com/laminas/laminas-text.git", - "reference": "3601b5eacb06ed0a12f658df860cc0f9613cf4db" + "reference": "d696fa1fb3880b9b8f02c08be58685013b421608" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laminas/laminas-text/zipball/3601b5eacb06ed0a12f658df860cc0f9613cf4db", - "reference": "3601b5eacb06ed0a12f658df860cc0f9613cf4db", + "url": "https://api.github.com/repos/laminas/laminas-text/zipball/d696fa1fb3880b9b8f02c08be58685013b421608", + "reference": "d696fa1fb3880b9b8f02c08be58685013b421608", "shasum": "" }, "require": { - "laminas/laminas-servicemanager": "^2.7.5 || ^3.0.3", - "laminas/laminas-stdlib": "^2.7 || ^3.0", + "laminas/laminas-servicemanager": "^3.4", + "laminas/laminas-stdlib": "^3.1", "laminas/laminas-zendframework-bridge": "^1.0", - "php": "^5.6 || ^7.0" + "php": "^7.3 || ~8.0.0" }, "replace": { - "zendframework/zend-text": "self.version" + "zendframework/zend-text": "^2.7.1" }, "require-dev": { "laminas/laminas-coding-standard": "~1.0.0", - "laminas/laminas-config": "^2.6", - "phpunit/phpunit": "^5.7.27 || ^6.5.8 || ^7.1.4" + "laminas/laminas-config": "^3.4", + "phpunit/phpunit": "^9.3" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.7.x-dev", - "dev-develop": "2.8.x-dev" - } - }, "autoload": { "psr-4": { "Laminas\\Text\\": "src/" @@ -1099,35 +1551,47 @@ "laminas", "text" ], - "time": "2019-12-31T17:54:52+00:00" + "support": { + "chat": "https://laminas.dev/chat", + "docs": "https://docs.laminas.dev/laminas-text/", + "forum": "https://discourse.laminas.dev", + "issues": "https://github.com/laminas/laminas-text/issues", + "rss": "https://github.com/laminas/laminas-text/releases.atom", + "source": "https://github.com/laminas/laminas-text" + }, + "funding": [ + { + "url": "https://funding.communitybridge.org/projects/laminas-project", + "type": "community_bridge" + } + ], + "time": "2021-02-17T21:24:58+00:00" }, { "name": "laminas/laminas-zendframework-bridge", - "version": "1.0.3", + "version": "1.2.0", "source": { "type": "git", "url": "https://github.com/laminas/laminas-zendframework-bridge.git", - "reference": "bfbbdb6c998d50dbf69d2187cb78a5f1fa36e1e9" + "reference": "6cccbddfcfc742eb02158d6137ca5687d92cee32" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laminas/laminas-zendframework-bridge/zipball/bfbbdb6c998d50dbf69d2187cb78a5f1fa36e1e9", - "reference": "bfbbdb6c998d50dbf69d2187cb78a5f1fa36e1e9", + "url": "https://api.github.com/repos/laminas/laminas-zendframework-bridge/zipball/6cccbddfcfc742eb02158d6137ca5687d92cee32", + "reference": "6cccbddfcfc742eb02158d6137ca5687d92cee32", "shasum": "" }, "require": { - "php": "^5.6 || ^7.0" + "php": "^7.3 || ^8.0" }, "require-dev": { - "phpunit/phpunit": "^5.7 || ^6.5 || ^7.5 || ^8.1", - "squizlabs/php_codesniffer": "^3.5" + "phpunit/phpunit": "^5.7 || ^6.5 || ^7.5 || ^8.1 || ^9.3", + "psalm/plugin-phpunit": "^0.15.1", + "squizlabs/php_codesniffer": "^3.5", + "vimeo/psalm": "^4.6" }, "type": "library", "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev", - "dev-develop": "1.1.x-dev" - }, "laminas": { "module": "Laminas\\ZendFrameworkBridge" } @@ -1151,35 +1615,41 @@ "laminas", "zf" ], + "support": { + "forum": "https://discourse.laminas.dev/", + "issues": "https://github.com/laminas/laminas-zendframework-bridge/issues", + "rss": "https://github.com/laminas/laminas-zendframework-bridge/releases.atom", + "source": "https://github.com/laminas/laminas-zendframework-bridge" + }, "funding": [ { "url": "https://funding.communitybridge.org/projects/laminas-project", "type": "community_bridge" } ], - "time": "2020-04-03T16:01:00+00:00" + "time": "2021-02-25T21:54:58+00:00" }, { "name": "laravel-zero/foundation", - "version": "v7.10.3", + "version": "v8.41.0", "source": { "type": "git", "url": "https://github.com/laravel-zero/foundation.git", - "reference": "1147725c094f8d0ea13fd2f474d7a8111b9bcb02" + "reference": "0ef2bca2367f13e5febdc707fa2a2bc2c6a80908" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel-zero/foundation/zipball/1147725c094f8d0ea13fd2f474d7a8111b9bcb02", - "reference": "1147725c094f8d0ea13fd2f474d7a8111b9bcb02", + "url": "https://api.github.com/repos/laravel-zero/foundation/zipball/0ef2bca2367f13e5febdc707fa2a2bc2c6a80908", + "reference": "0ef2bca2367f13e5febdc707fa2a2bc2c6a80908", "shasum": "" }, "require": { - "php": "^7.2.5" + "php": "^7.3|^8.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "7.x-dev" + "dev-main": "8.x-dev" } }, "autoload": { @@ -1199,63 +1669,67 @@ "framework", "laravel" ], - "time": "2020-05-11T08:18:27+00:00" + "support": { + "source": "https://github.com/laravel-zero/foundation/tree/v8.41.0" + }, + "time": "2021-05-12T08:28:30+00:00" }, { "name": "laravel-zero/framework", - "version": "v7.2.0", + "version": "v8.7.0", "source": { "type": "git", "url": "https://github.com/laravel-zero/framework.git", - "reference": "652fcc7753e335fc53b020fdbd93e0f40229ebf6" + "reference": "548a5ab0b06c0afc29d2b33fc24da292fb1bea42" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel-zero/framework/zipball/652fcc7753e335fc53b020fdbd93e0f40229ebf6", - "reference": "652fcc7753e335fc53b020fdbd93e0f40229ebf6", + "url": "https://api.github.com/repos/laravel-zero/framework/zipball/548a5ab0b06c0afc29d2b33fc24da292fb1bea42", + "reference": "548a5ab0b06c0afc29d2b33fc24da292fb1bea42", "shasum": "" }, "require": { - "dragonmantank/cron-expression": "^2.0", + "dragonmantank/cron-expression": "^3.0.2", "ext-json": "*", - "illuminate/cache": "^7.0", - "illuminate/config": "^7.0", - "illuminate/console": "^7.0", - "illuminate/container": "^7.0", - "illuminate/contracts": "^7.0", - "illuminate/events": "^7.0", - "illuminate/filesystem": "^7.0", - "illuminate/support": "^7.0", - "illuminate/testing": "^7.0", - "laravel-zero/foundation": "^7.0", - "league/flysystem": "^1.0.8", - "nunomaduro/collision": "^4.1", - "nunomaduro/laravel-console-summary": "^1.4", - "nunomaduro/laravel-console-task": "^1.4", - "nunomaduro/laravel-desktop-notifier": "^2.3", - "php": "^7.2.5", + "illuminate/cache": "^8.0", + "illuminate/config": "^8.0", + "illuminate/console": "^8.0", + "illuminate/container": "^8.0", + "illuminate/contracts": "^8.0", + "illuminate/events": "^8.0", + "illuminate/filesystem": "^8.0", + "illuminate/support": "^8.0", + "illuminate/testing": "^8.0", + "laravel-zero/foundation": "^8.0", + "league/flysystem": "^1.1.3", + "nunomaduro/collision": "^5.1", + "nunomaduro/laravel-console-summary": "^1.7", + "nunomaduro/laravel-console-task": "^1.6", + "nunomaduro/laravel-desktop-notifier": "^2.5.1", + "php": "^7.3 || ^8.0", "psr/log": "^1.1", - "ramsey/uuid": "^3.7", - "symfony/console": "^5.0", - "symfony/error-handler": "^5.0", - "symfony/process": "^5.0", - "symfony/var-dumper": "^5.0", - "vlucas/phpdotenv": "^4.0" + "ramsey/uuid": "^4.0", + "symfony/console": "^5.1", + "symfony/error-handler": "^5.1", + "symfony/process": "^5.1", + "symfony/var-dumper": "^5.1", + "vlucas/phpdotenv": "^5.0" }, "require-dev": { - "guzzlehttp/guzzle": "^6.3.1", - "hmazter/laravel-schedule-list": "^2.1", - "illuminate/bus": "^7.0", - "illuminate/database": "^7.0", - "illuminate/http": "^7.0", - "illuminate/log": "^7.0", - "illuminate/queue": "^7.0", - "laminas/laminas-text": "^2.7", - "nunomaduro/laravel-console-dusk": "^1.6", - "nunomaduro/laravel-console-menu": "^2.3", + "guzzlehttp/guzzle": "^6.5.5|^7.0", + "hmazter/laravel-schedule-list": "^2.2.1", + "illuminate/bus": "^8.0", + "illuminate/database": "^8.0", + "illuminate/http": "^8.0", + "illuminate/log": "^8.0", + "illuminate/queue": "^8.0", + "illuminate/redis": "^8.0", + "laminas/laminas-text": "^2.8", + "nunomaduro/laravel-console-dusk": "^1.8", + "nunomaduro/laravel-console-menu": "^3.2", "padraic/phar-updater": "^1.0.6", - "phpstan/phpstan": "^0.12", - "phpunit/phpunit": "^8.5" + "pestphp/pest": "^1.0", + "phpstan/phpstan": "^0.12.65" }, "suggest": { "ext-pcntl": "Required to ensure that data is cleared when cancelling the build process." @@ -1285,32 +1759,37 @@ "framework", "laravel" ], - "time": "2020-05-04T10:29:34+00:00" + "support": { + "issues": "https://github.com/laravel-zero/laravel-zero/issues", + "source": "https://github.com/laravel-zero/laravel-zero" + }, + "time": "2021-04-15T09:30:58+00:00" }, { "name": "league/flysystem", - "version": "1.0.68", + "version": "1.1.3", "source": { "type": "git", "url": "https://github.com/thephpleague/flysystem.git", - "reference": "3e4198372276ec99ac3409a21d7c9d1ced9026e4" + "reference": "9be3b16c877d477357c015cec057548cf9b2a14a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/3e4198372276ec99ac3409a21d7c9d1ced9026e4", - "reference": "3e4198372276ec99ac3409a21d7c9d1ced9026e4", + "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/9be3b16c877d477357c015cec057548cf9b2a14a", + "reference": "9be3b16c877d477357c015cec057548cf9b2a14a", "shasum": "" }, "require": { "ext-fileinfo": "*", - "php": ">=5.5.9" + "league/mime-type-detection": "^1.3", + "php": "^7.2.5 || ^8.0" }, "conflict": { "league/flysystem-sftp": "<1.0.6" }, "require-dev": { - "phpspec/phpspec": "^3.4", - "phpunit/phpunit": "^5.7.26" + "phpspec/prophecy": "^1.11.1", + "phpunit/phpunit": "^8.5.8" }, "suggest": { "ext-fileinfo": "Required for MimeType", @@ -1369,26 +1848,86 @@ "sftp", "storage" ], + "support": { + "issues": "https://github.com/thephpleague/flysystem/issues", + "source": "https://github.com/thephpleague/flysystem/tree/1.x" + }, "funding": [ { "url": "https://offset.earth/frankdejonge", "type": "other" } ], - "time": "2020-05-12T20:33:44+00:00" + "time": "2020-08-23T07:39:11+00:00" + }, + { + "name": "league/mime-type-detection", + "version": "1.7.0", + "source": { + "type": "git", + "url": "https://github.com/thephpleague/mime-type-detection.git", + "reference": "3b9dff8aaf7323590c1d2e443db701eb1f9aa0d3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/thephpleague/mime-type-detection/zipball/3b9dff8aaf7323590c1d2e443db701eb1f9aa0d3", + "reference": "3b9dff8aaf7323590c1d2e443db701eb1f9aa0d3", + "shasum": "" + }, + "require": { + "ext-fileinfo": "*", + "php": "^7.2 || ^8.0" + }, + "require-dev": { + "friendsofphp/php-cs-fixer": "^2.18", + "phpstan/phpstan": "^0.12.68", + "phpunit/phpunit": "^8.5.8 || ^9.3" + }, + "type": "library", + "autoload": { + "psr-4": { + "League\\MimeTypeDetection\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Frank de Jonge", + "email": "info@frankdejonge.nl" + } + ], + "description": "Mime-type detection for Flysystem", + "support": { + "issues": "https://github.com/thephpleague/mime-type-detection/issues", + "source": "https://github.com/thephpleague/mime-type-detection/tree/1.7.0" + }, + "funding": [ + { + "url": "https://github.com/frankdejonge", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/league/flysystem", + "type": "tidelift" + } + ], + "time": "2021-01-18T20:58:21+00:00" }, { "name": "nesbot/carbon", - "version": "2.34.0", + "version": "2.48.0", "source": { "type": "git", "url": "https://github.com/briannesbitt/Carbon.git", - "reference": "52ea68aebbad8a3b27b5d24e4c66ebe1933f8399" + "reference": "d3c447f21072766cddec3522f9468a5849a76147" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/52ea68aebbad8a3b27b5d24e4c66ebe1933f8399", - "reference": "52ea68aebbad8a3b27b5d24e4c66ebe1933f8399", + "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/d3c447f21072766cddec3522f9468a5849a76147", + "reference": "d3c447f21072766cddec3522f9468a5849a76147", "shasum": "" }, "require": { @@ -1400,10 +1939,11 @@ "require-dev": { "doctrine/orm": "^2.7", "friendsofphp/php-cs-fixer": "^2.14 || ^3.0", - "kylekatarnls/multi-tester": "^1.1", - "phpmd/phpmd": "^2.8", - "phpstan/phpstan": "^0.11", - "phpunit/phpunit": "^7.5 || ^8.0", + "kylekatarnls/multi-tester": "^2.0", + "phpmd/phpmd": "^2.9", + "phpstan/extension-installer": "^1.0", + "phpstan/phpstan": "^0.12.54", + "phpunit/phpunit": "^7.5.20 || ^8.5.14", "squizlabs/php_codesniffer": "^3.4" }, "bin": [ @@ -1419,6 +1959,11 @@ "providers": [ "Carbon\\Laravel\\ServiceProvider" ] + }, + "phpstan": { + "includes": [ + "extension.neon" + ] } }, "autoload": { @@ -1448,6 +1993,10 @@ "datetime", "time" ], + "support": { + "issues": "https://github.com/briannesbitt/Carbon/issues", + "source": "https://github.com/briannesbitt/Carbon" + }, "funding": [ { "url": "https://opencollective.com/Carbon", @@ -1458,39 +2007,39 @@ "type": "tidelift" } ], - "time": "2020-05-12T19:53:34+00:00" + "time": "2021-05-07T10:08:30+00:00" }, { "name": "nunomaduro/collision", - "version": "v4.2.0", + "version": "v5.4.0", "source": { "type": "git", "url": "https://github.com/nunomaduro/collision.git", - "reference": "d50490417eded97be300a92cd7df7badc37a9018" + "reference": "41b7e9999133d5082700d31a1d0977161df8322a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nunomaduro/collision/zipball/d50490417eded97be300a92cd7df7badc37a9018", - "reference": "d50490417eded97be300a92cd7df7badc37a9018", + "url": "https://api.github.com/repos/nunomaduro/collision/zipball/41b7e9999133d5082700d31a1d0977161df8322a", + "reference": "41b7e9999133d5082700d31a1d0977161df8322a", "shasum": "" }, "require": { "facade/ignition-contracts": "^1.0", - "filp/whoops": "^2.4", - "php": "^7.2.5", + "filp/whoops": "^2.7.2", + "php": "^7.3 || ^8.0", "symfony/console": "^5.0" }, "require-dev": { - "facade/ignition": "^2.0", - "fideloper/proxy": "^4.2", - "friendsofphp/php-cs-fixer": "^2.16", - "fruitcake/laravel-cors": "^1.0", - "laravel/framework": "^7.0", - "laravel/tinker": "^2.0", - "nunomaduro/larastan": "^0.5", - "orchestra/testbench": "^5.0", - "phpstan/phpstan": "^0.12.3", - "phpunit/phpunit": "^8.5.1 || ^9.0" + "brianium/paratest": "^6.1", + "fideloper/proxy": "^4.4.1", + "friendsofphp/php-cs-fixer": "^2.17.3", + "fruitcake/laravel-cors": "^2.0.3", + "laravel/framework": "^9.0", + "nunomaduro/larastan": "^0.6.2", + "nunomaduro/mock-final-classes": "^1.0", + "orchestra/testbench": "^7.0", + "phpstan/phpstan": "^0.12.64", + "phpunit/phpunit": "^9.5.0" }, "type": "library", "extra": { @@ -1528,6 +2077,10 @@ "php", "symfony" ], + "support": { + "issues": "https://github.com/nunomaduro/collision/issues", + "source": "https://github.com/nunomaduro/collision" + }, "funding": [ { "url": "https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66BYDWAT92N6L", @@ -1542,26 +2095,26 @@ "type": "patreon" } ], - "time": "2020-04-04T19:56:08+00:00" + "time": "2021-04-09T13:38:32+00:00" }, { "name": "nunomaduro/laravel-console-menu", - "version": "v3.0.0", + "version": "v3.2.0", "source": { "type": "git", "url": "https://github.com/nunomaduro/laravel-console-menu.git", - "reference": "dae1558868b8723ed3d9bc278b01617edb0dfd34" + "reference": "90d656f6f91986b0339db7c7640cc74dbe78c6a0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nunomaduro/laravel-console-menu/zipball/dae1558868b8723ed3d9bc278b01617edb0dfd34", - "reference": "dae1558868b8723ed3d9bc278b01617edb0dfd34", + "url": "https://api.github.com/repos/nunomaduro/laravel-console-menu/zipball/90d656f6f91986b0339db7c7640cc74dbe78c6a0", + "reference": "90d656f6f91986b0339db7c7640cc74dbe78c6a0", "shasum": "" }, "require": { - "illuminate/console": "5.6.*|5.7.*|5.8.*|^6.0|^7.0", - "illuminate/support": "5.6.*|5.7.*|5.8.*|^6.0|^7.0", - "php": "^7.1.3", + "illuminate/console": "^6.0|^7.0|^8.0", + "illuminate/support": "^6.0|^7.0|^8.0", + "php": "^7.2.5|^8.0", "php-school/cli-menu": "^4.0" }, "type": "library", @@ -1598,6 +2151,10 @@ "php", "symfony" ], + "support": { + "issues": "https://github.com/nunomaduro/laravel-console-menu/issues", + "source": "https://github.com/nunomaduro/laravel-console-menu" + }, "funding": [ { "url": "https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66BYDWAT92N6L", @@ -1612,26 +2169,26 @@ "type": "patreon" } ], - "time": "2020-03-06T10:04:44+00:00" + "time": "2020-10-30T15:08:40+00:00" }, { "name": "nunomaduro/laravel-console-summary", - "version": "v1.4.0", + "version": "v1.7.1", "source": { "type": "git", "url": "https://github.com/nunomaduro/laravel-console-summary.git", - "reference": "1338b803ffd0fa7d8c497c300e751d819d3a5410" + "reference": "b5a6b856aeaa2a0f69feb61a279ab4af4d6fecb1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nunomaduro/laravel-console-summary/zipball/1338b803ffd0fa7d8c497c300e751d819d3a5410", - "reference": "1338b803ffd0fa7d8c497c300e751d819d3a5410", + "url": "https://api.github.com/repos/nunomaduro/laravel-console-summary/zipball/b5a6b856aeaa2a0f69feb61a279ab4af4d6fecb1", + "reference": "b5a6b856aeaa2a0f69feb61a279ab4af4d6fecb1", "shasum": "" }, "require": { - "illuminate/console": "^7.0", - "illuminate/support": "^7.0", - "php": "^7.2.5" + "illuminate/console": "^7.0|^8.0", + "illuminate/support": "^7.0|^8.0", + "php": "^7.2.5|^8.0" }, "type": "library", "extra": { @@ -1667,29 +2224,33 @@ "php", "symfony" ], - "time": "2020-01-28T17:42:52+00:00" + "support": { + "issues": "https://github.com/nunomaduro/laravel-console-summary/issues", + "source": "https://github.com/nunomaduro/laravel-console-summary" + }, + "time": "2020-12-14T10:21:43+00:00" }, { "name": "nunomaduro/laravel-console-task", - "version": "v1.4.0", + "version": "v1.6.0", "source": { "type": "git", "url": "https://github.com/nunomaduro/laravel-console-task.git", - "reference": "513746f6809485121898e21c8a5da1ad72dca8aa" + "reference": "c49ffbb33d9a750e60a1f8649f2f6dcc4114990a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nunomaduro/laravel-console-task/zipball/513746f6809485121898e21c8a5da1ad72dca8aa", - "reference": "513746f6809485121898e21c8a5da1ad72dca8aa", + "url": "https://api.github.com/repos/nunomaduro/laravel-console-task/zipball/c49ffbb33d9a750e60a1f8649f2f6dcc4114990a", + "reference": "c49ffbb33d9a750e60a1f8649f2f6dcc4114990a", "shasum": "" }, "require": { - "illuminate/console": "~5.5.26|5.6.*|5.7.*|5.8.*|^6.0|^7.0", - "illuminate/support": "~5.5.26|5.6.*|5.7.*|5.8.*|^6.0|^7.0", - "php": "^7.0" + "illuminate/console": "^6.0|^7.0|^8.0", + "illuminate/support": "^6.0|^7.0|^8.0", + "php": "^7.2.5|^8.0" }, "require-dev": { - "phpunit/phpunit": "^8.2" + "phpunit/phpunit": "^8.5.8|^9.0" }, "type": "library", "extra": { @@ -1725,31 +2286,35 @@ "php", "symfony" ], - "time": "2020-01-02T23:29:26+00:00" + "support": { + "issues": "https://github.com/nunomaduro/laravel-console-task/issues", + "source": "https://github.com/nunomaduro/laravel-console-task" + }, + "time": "2020-10-30T14:47:00+00:00" }, { "name": "nunomaduro/laravel-desktop-notifier", - "version": "v2.3.0", + "version": "v2.5.1", "source": { "type": "git", "url": "https://github.com/nunomaduro/laravel-desktop-notifier.git", - "reference": "a1cb05575ad195fee3e0cf1ae6f1e88f832f16d2" + "reference": "ce17d71c934c42f2e53c308184ac1edf2d17a51a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nunomaduro/laravel-desktop-notifier/zipball/a1cb05575ad195fee3e0cf1ae6f1e88f832f16d2", - "reference": "a1cb05575ad195fee3e0cf1ae6f1e88f832f16d2", + "url": "https://api.github.com/repos/nunomaduro/laravel-desktop-notifier/zipball/ce17d71c934c42f2e53c308184ac1edf2d17a51a", + "reference": "ce17d71c934c42f2e53c308184ac1edf2d17a51a", "shasum": "" }, "require": { - "illuminate/console": "5.6.*|5.7.*|5.8.*|^6.0|^7.0", - "illuminate/support": "5.6.*|5.7.*|5.8.*|^6.0|^7.0", + "illuminate/console": "^6.20|^7.29|^8.12", + "illuminate/support": "^6.20|^7.29|^8.12", "jolicode/jolinotif": "^2.0", - "php": "^7.1.3" + "php": "^7.2.5|^8.0" }, "require-dev": { - "graham-campbell/testbench": "dev-master", - "phpunit/phpunit": "^7.0" + "graham-campbell/testbench": "^5.5", + "phpunit/phpunit": "^8.5.8|^9.0" }, "type": "library", "extra": { @@ -1791,7 +2356,11 @@ "php", "wrapper" ], - "time": "2020-01-15T13:26:31+00:00" + "support": { + "issues": "https://github.com/nunomaduro/laravel-desktop-notifier/issues", + "source": "https://github.com/nunomaduro/laravel-desktop-notifier/tree/v2.5.1" + }, + "time": "2020-10-30T15:41:03+00:00" }, { "name": "padraic/humbug_get_contents", @@ -1860,6 +2429,10 @@ "ssl", "tls" ], + "support": { + "issues": "https://github.com/humbug/file_get_contents/issues", + "source": "https://github.com/humbug/file_get_contents/tree/master" + }, "time": "2018-02-12T18:47:17+00:00" }, { @@ -1912,76 +2485,37 @@ "self-update", "update" ], - "time": "2018-03-30T12:52:15+00:00" - }, - { - "name": "paragonie/random_compat", - "version": "v9.99.99", - "source": { - "type": "git", - "url": "https://github.com/paragonie/random_compat.git", - "reference": "84b4dfb120c6f9b4ff7b3685f9b8f1aa365a0c95" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/paragonie/random_compat/zipball/84b4dfb120c6f9b4ff7b3685f9b8f1aa365a0c95", - "reference": "84b4dfb120c6f9b4ff7b3685f9b8f1aa365a0c95", - "shasum": "" - }, - "require": { - "php": "^7" - }, - "require-dev": { - "phpunit/phpunit": "4.*|5.*", - "vimeo/psalm": "^1" - }, - "suggest": { - "ext-libsodium": "Provides a modern crypto API that can be used to generate random bytes." + "support": { + "issues": "https://github.com/humbug/phar-updater/issues", + "source": "https://github.com/humbug/phar-updater/tree/1.0" }, - "type": "library", - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Paragon Initiative Enterprises", - "email": "security@paragonie.com", - "homepage": "https://paragonie.com" - } - ], - "description": "PHP 5.x polyfill for random_bytes() and random_int() from PHP 7", - "keywords": [ - "csprng", - "polyfill", - "pseudorandom", - "random" - ], - "time": "2018-07-02T15:55:56+00:00" + "abandoned": true, + "time": "2018-03-30T12:52:15+00:00" }, { "name": "php-school/cli-menu", - "version": "4.0.0", + "version": "4.1.0", "source": { "type": "git", "url": "https://github.com/php-school/cli-menu.git", - "reference": "8354cc4ca0d36f6b1dcc2d54fafe38157f58d45f" + "reference": "d25ae866d86b1ac95f026e7147c0e30ef4996dcd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-school/cli-menu/zipball/8354cc4ca0d36f6b1dcc2d54fafe38157f58d45f", - "reference": "8354cc4ca0d36f6b1dcc2d54fafe38157f58d45f", + "url": "https://api.github.com/repos/php-school/cli-menu/zipball/d25ae866d86b1ac95f026e7147c0e30ef4996dcd", + "reference": "d25ae866d86b1ac95f026e7147c0e30ef4996dcd", "shasum": "" }, "require": { "beberlei/assert": "^2.4 | ^3", + "ext-mbstring": "*", "ext-posix": "*", "php": ">=7.1", "php-school/terminal": "^0.2.1" }, "require-dev": { "phpstan/phpstan": "^0.12", - "phpunit/phpunit": "^8.0", + "phpunit/phpunit": "^8.0 | ^9.0", "squizlabs/php_codesniffer": "^3.2" }, "type": "library", @@ -2016,7 +2550,11 @@ "phpschool", "terminal" ], - "time": "2020-02-16T13:50:49+00:00" + "support": { + "issues": "https://github.com/php-school/cli-menu/issues", + "source": "https://github.com/php-school/cli-menu/tree/4.1.0" + }, + "time": "2020-10-24T09:18:48+00:00" }, { "name": "php-school/terminal", @@ -2069,28 +2607,32 @@ "phpschool", "terminal" ], + "support": { + "issues": "https://github.com/php-school/terminal/issues", + "source": "https://github.com/php-school/terminal/tree/0.2.1" + }, "time": "2019-12-17T21:56:06+00:00" }, { "name": "phpoption/phpoption", - "version": "1.7.3", + "version": "1.7.5", "source": { "type": "git", "url": "https://github.com/schmittjoh/php-option.git", - "reference": "4acfd6a4b33a509d8c88f50e5222f734b6aeebae" + "reference": "994ecccd8f3283ecf5ac33254543eb0ac946d525" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/schmittjoh/php-option/zipball/4acfd6a4b33a509d8c88f50e5222f734b6aeebae", - "reference": "4acfd6a4b33a509d8c88f50e5222f734b6aeebae", + "url": "https://api.github.com/repos/schmittjoh/php-option/zipball/994ecccd8f3283ecf5ac33254543eb0ac946d525", + "reference": "994ecccd8f3283ecf5ac33254543eb0ac946d525", "shasum": "" }, "require": { "php": "^5.5.9 || ^7.0 || ^8.0" }, "require-dev": { - "bamarni/composer-bin-plugin": "^1.3", - "phpunit/phpunit": "^4.8.35 || ^5.0 || ^6.0 || ^7.0" + "bamarni/composer-bin-plugin": "^1.4.1", + "phpunit/phpunit": "^4.8.35 || ^5.7.27 || ^6.5.6 || ^7.0 || ^8.0 || ^9.0" }, "type": "library", "extra": { @@ -2124,31 +2666,40 @@ "php", "type" ], - "time": "2020-03-21T18:07:53+00:00" + "support": { + "issues": "https://github.com/schmittjoh/php-option/issues", + "source": "https://github.com/schmittjoh/php-option/tree/1.7.5" + }, + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/phpoption/phpoption", + "type": "tidelift" + } + ], + "time": "2020-07-20T17:29:33+00:00" }, { "name": "psr/container", - "version": "1.0.0", + "version": "1.1.1", "source": { "type": "git", "url": "https://github.com/php-fig/container.git", - "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f" + "reference": "8622567409010282b7aeebe4bb841fe98b58dcaf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/container/zipball/b7ce3b176482dbbc1245ebf52b181af44c2cf55f", - "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f", + "url": "https://api.github.com/repos/php-fig/container/zipball/8622567409010282b7aeebe4bb841fe98b58dcaf", + "reference": "8622567409010282b7aeebe4bb841fe98b58dcaf", "shasum": "" }, "require": { - "php": ">=5.3.0" + "php": ">=7.2.0" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, "autoload": { "psr-4": { "Psr\\Container\\": "src/" @@ -2161,7 +2712,7 @@ "authors": [ { "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" + "homepage": "https://www.php-fig.org/" } ], "description": "Common Container Interface (PHP FIG PSR-11)", @@ -2173,20 +2724,24 @@ "container-interop", "psr" ], - "time": "2017-02-14T16:28:37+00:00" + "support": { + "issues": "https://github.com/php-fig/container/issues", + "source": "https://github.com/php-fig/container/tree/1.1.1" + }, + "time": "2021-03-05T17:36:06+00:00" }, { "name": "psr/log", - "version": "1.1.3", + "version": "1.1.4", "source": { "type": "git", "url": "https://github.com/php-fig/log.git", - "reference": "0f73288fd15629204f9d42b7055f72dacbe811fc" + "reference": "d49695b909c3b7628b6289db5479a1c204601f11" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/log/zipball/0f73288fd15629204f9d42b7055f72dacbe811fc", - "reference": "0f73288fd15629204f9d42b7055f72dacbe811fc", + "url": "https://api.github.com/repos/php-fig/log/zipball/d49695b909c3b7628b6289db5479a1c204601f11", + "reference": "d49695b909c3b7628b6289db5479a1c204601f11", "shasum": "" }, "require": { @@ -2210,7 +2765,7 @@ "authors": [ { "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" + "homepage": "https://www.php-fig.org/" } ], "description": "Common interface for logging libraries", @@ -2220,7 +2775,10 @@ "psr", "psr-3" ], - "time": "2020-03-23T09:12:05+00:00" + "support": { + "source": "https://github.com/php-fig/log/tree/1.1.4" + }, + "time": "2021-05-03T11:20:27+00:00" }, { "name": "psr/simple-cache", @@ -2268,66 +2826,51 @@ "psr-16", "simple-cache" ], + "support": { + "source": "https://github.com/php-fig/simple-cache/tree/master" + }, "time": "2017-10-23T01:57:42+00:00" }, { - "name": "ramsey/uuid", - "version": "3.9.3", + "name": "ramsey/collection", + "version": "1.1.3", "source": { "type": "git", - "url": "https://github.com/ramsey/uuid.git", - "reference": "7e1633a6964b48589b142d60542f9ed31bd37a92" + "url": "https://github.com/ramsey/collection.git", + "reference": "28a5c4ab2f5111db6a60b2b4ec84057e0f43b9c1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ramsey/uuid/zipball/7e1633a6964b48589b142d60542f9ed31bd37a92", - "reference": "7e1633a6964b48589b142d60542f9ed31bd37a92", + "url": "https://api.github.com/repos/ramsey/collection/zipball/28a5c4ab2f5111db6a60b2b4ec84057e0f43b9c1", + "reference": "28a5c4ab2f5111db6a60b2b4ec84057e0f43b9c1", "shasum": "" }, "require": { - "ext-json": "*", - "paragonie/random_compat": "^1 | ^2 | 9.99.99", - "php": "^5.4 | ^7 | ^8", - "symfony/polyfill-ctype": "^1.8" - }, - "replace": { - "rhumsaa/uuid": "self.version" + "php": "^7.2 || ^8" }, "require-dev": { - "codeception/aspect-mock": "^1 | ^2", - "doctrine/annotations": "^1.2", - "goaop/framework": "1.0.0-alpha.2 | ^1 | ^2.1", - "jakub-onderka/php-parallel-lint": "^1", - "mockery/mockery": "^0.9.11 | ^1", - "moontoast/math": "^1.1", - "paragonie/random-lib": "^2", - "php-mock/php-mock-phpunit": "^0.3 | ^1.1", - "phpunit/phpunit": "^4.8 | ^5.4 | ^6.5", - "squizlabs/php_codesniffer": "^3.5" - }, - "suggest": { - "ext-ctype": "Provides support for PHP Ctype functions", - "ext-libsodium": "Provides the PECL libsodium extension for use with the SodiumRandomGenerator", - "ext-openssl": "Provides the OpenSSL extension for use with the OpenSslGenerator", - "ext-uuid": "Provides the PECL UUID extension for use with the PeclUuidTimeGenerator and PeclUuidRandomGenerator", - "moontoast/math": "Provides support for converting UUID to 128-bit integer (in string form).", - "paragonie/random-lib": "Provides RandomLib for use with the RandomLibAdapter", - "ramsey/uuid-console": "A console application for generating UUIDs with ramsey/uuid", - "ramsey/uuid-doctrine": "Allows the use of Ramsey\\Uuid\\Uuid as Doctrine field type." + "captainhook/captainhook": "^5.3", + "dealerdirect/phpcodesniffer-composer-installer": "^0.7.0", + "ergebnis/composer-normalize": "^2.6", + "fakerphp/faker": "^1.5", + "hamcrest/hamcrest-php": "^2", + "jangregor/phpstan-prophecy": "^0.8", + "mockery/mockery": "^1.3", + "phpstan/extension-installer": "^1", + "phpstan/phpstan": "^0.12.32", + "phpstan/phpstan-mockery": "^0.12.5", + "phpstan/phpstan-phpunit": "^0.12.11", + "phpunit/phpunit": "^8.5 || ^9", + "psy/psysh": "^0.10.4", + "slevomat/coding-standard": "^6.3", + "squizlabs/php_codesniffer": "^3.5", + "vimeo/psalm": "^4.4" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.x-dev" - } - }, "autoload": { "psr-4": { - "Ramsey\\Uuid\\": "src/" - }, - "files": [ - "src/functions.php" - ] + "Ramsey\\Collection\\": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -2338,47 +2881,150 @@ "name": "Ben Ramsey", "email": "ben@benramsey.com", "homepage": "https://benramsey.com" - }, + } + ], + "description": "A PHP 7.2+ library for representing and manipulating collections.", + "keywords": [ + "array", + "collection", + "hash", + "map", + "queue", + "set" + ], + "support": { + "issues": "https://github.com/ramsey/collection/issues", + "source": "https://github.com/ramsey/collection/tree/1.1.3" + }, + "funding": [ { - "name": "Marijn Huizendveld", - "email": "marijn.huizendveld@gmail.com" + "url": "https://github.com/ramsey", + "type": "github" }, { - "name": "Thibaud Fabre", - "email": "thibaud@aztech.io" + "url": "https://tidelift.com/funding/github/packagist/ramsey/collection", + "type": "tidelift" + } + ], + "time": "2021-01-21T17:40:04+00:00" + }, + { + "name": "ramsey/uuid", + "version": "4.1.1", + "source": { + "type": "git", + "url": "https://github.com/ramsey/uuid.git", + "reference": "cd4032040a750077205918c86049aa0f43d22947" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/ramsey/uuid/zipball/cd4032040a750077205918c86049aa0f43d22947", + "reference": "cd4032040a750077205918c86049aa0f43d22947", + "shasum": "" + }, + "require": { + "brick/math": "^0.8 || ^0.9", + "ext-json": "*", + "php": "^7.2 || ^8", + "ramsey/collection": "^1.0", + "symfony/polyfill-ctype": "^1.8" + }, + "replace": { + "rhumsaa/uuid": "self.version" + }, + "require-dev": { + "codeception/aspect-mock": "^3", + "dealerdirect/phpcodesniffer-composer-installer": "^0.6.2 || ^0.7.0", + "doctrine/annotations": "^1.8", + "goaop/framework": "^2", + "mockery/mockery": "^1.3", + "moontoast/math": "^1.1", + "paragonie/random-lib": "^2", + "php-mock/php-mock-mockery": "^1.3", + "php-mock/php-mock-phpunit": "^2.5", + "php-parallel-lint/php-parallel-lint": "^1.1", + "phpbench/phpbench": "^0.17.1", + "phpstan/extension-installer": "^1.0", + "phpstan/phpstan": "^0.12", + "phpstan/phpstan-mockery": "^0.12", + "phpstan/phpstan-phpunit": "^0.12", + "phpunit/phpunit": "^8.5", + "psy/psysh": "^0.10.0", + "slevomat/coding-standard": "^6.0", + "squizlabs/php_codesniffer": "^3.5", + "vimeo/psalm": "3.9.4" + }, + "suggest": { + "ext-bcmath": "Enables faster math with arbitrary-precision integers using BCMath.", + "ext-ctype": "Enables faster processing of character classification using ctype functions.", + "ext-gmp": "Enables faster math with arbitrary-precision integers using GMP.", + "ext-uuid": "Enables the use of PeclUuidTimeGenerator and PeclUuidRandomGenerator.", + "paragonie/random-lib": "Provides RandomLib for use with the RandomLibAdapter", + "ramsey/uuid-doctrine": "Allows the use of Ramsey\\Uuid\\Uuid as Doctrine field type." + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.x-dev" } + }, + "autoload": { + "psr-4": { + "Ramsey\\Uuid\\": "src/" + }, + "files": [ + "src/functions.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" ], - "description": "Formerly rhumsaa/uuid. A PHP 5.4+ library for generating RFC 4122 version 1, 3, 4, and 5 universally unique identifiers (UUID).", + "description": "A PHP library for generating and working with universally unique identifiers (UUIDs).", "homepage": "https://github.com/ramsey/uuid", "keywords": [ "guid", "identifier", "uuid" ], - "time": "2020-02-21T04:36:14+00:00" + "support": { + "issues": "https://github.com/ramsey/uuid/issues", + "rss": "https://github.com/ramsey/uuid/releases.atom", + "source": "https://github.com/ramsey/uuid" + }, + "funding": [ + { + "url": "https://github.com/ramsey", + "type": "github" + } + ], + "time": "2020-08-18T17:17:46+00:00" }, { "name": "symfony/console", - "version": "v5.0.8", + "version": "v5.2.8", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "5fa1caadc8cdaa17bcfb25219f3b53fe294a9935" + "reference": "864568fdc0208b3eba3638b6000b69d2386e6768" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/5fa1caadc8cdaa17bcfb25219f3b53fe294a9935", - "reference": "5fa1caadc8cdaa17bcfb25219f3b53fe294a9935", + "url": "https://api.github.com/repos/symfony/console/zipball/864568fdc0208b3eba3638b6000b69d2386e6768", + "reference": "864568fdc0208b3eba3638b6000b69d2386e6768", "shasum": "" }, "require": { - "php": "^7.2.5", + "php": ">=7.2.5", "symfony/polyfill-mbstring": "~1.0", "symfony/polyfill-php73": "^1.8", - "symfony/service-contracts": "^1.1|^2" + "symfony/polyfill-php80": "^1.15", + "symfony/service-contracts": "^1.1|^2", + "symfony/string": "^5.1" }, "conflict": { "symfony/dependency-injection": "<4.4", + "symfony/dotenv": "<5.1", "symfony/event-dispatcher": "<4.4", "symfony/lock": "<4.4", "symfony/process": "<4.4" @@ -2402,11 +3048,6 @@ "symfony/process": "" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.0-dev" - } - }, "autoload": { "psr-4": { "Symfony\\Component\\Console\\": "" @@ -2429,8 +3070,17 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony Console Component", + "description": "Eases the creation of beautiful and testable command line interfaces", "homepage": "https://symfony.com", + "keywords": [ + "cli", + "command line", + "console", + "terminal" + ], + "support": { + "source": "https://github.com/symfony/console/tree/v5.2.8" + }, "funding": [ { "url": "https://symfony.com/sponsor", @@ -2445,37 +3095,101 @@ "type": "tidelift" } ], - "time": "2020-03-30T11:42:42+00:00" + "time": "2021-05-11T15:45:21+00:00" + }, + { + "name": "symfony/deprecation-contracts", + "version": "v2.4.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/deprecation-contracts.git", + "reference": "5f38c8804a9e97d23e0c8d63341088cd8a22d627" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/5f38c8804a9e97d23e0c8d63341088cd8a22d627", + "reference": "5f38c8804a9e97d23e0c8d63341088cd8a22d627", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "2.4-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, + "autoload": { + "files": [ + "function.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "A generic function and convention to trigger deprecation notices", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/deprecation-contracts/tree/v2.4.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-03-23T23:28:01+00:00" }, { "name": "symfony/error-handler", - "version": "v5.0.8", + "version": "v5.2.8", "source": { "type": "git", "url": "https://github.com/symfony/error-handler.git", - "reference": "949ffc17c3ac3a9f8e6232220e2da33913c04ea4" + "reference": "1416bc16317a8188aabde251afef7618bf4687ac" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/error-handler/zipball/949ffc17c3ac3a9f8e6232220e2da33913c04ea4", - "reference": "949ffc17c3ac3a9f8e6232220e2da33913c04ea4", + "url": "https://api.github.com/repos/symfony/error-handler/zipball/1416bc16317a8188aabde251afef7618bf4687ac", + "reference": "1416bc16317a8188aabde251afef7618bf4687ac", "shasum": "" }, "require": { - "php": "^7.2.5", + "php": ">=7.2.5", "psr/log": "^1.0", + "symfony/polyfill-php80": "^1.15", "symfony/var-dumper": "^4.4|^5.0" }, "require-dev": { + "symfony/deprecation-contracts": "^2.1", "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": { "Symfony\\Component\\ErrorHandler\\": "" @@ -2498,8 +3212,11 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony ErrorHandler Component", + "description": "Provides tools to manage errors and ease debugging PHP code", "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/error-handler/tree/v5.2.8" + }, "funding": [ { "url": "https://symfony.com/sponsor", @@ -2514,31 +3231,26 @@ "type": "tidelift" } ], - "time": "2020-03-30T14:14:32+00:00" + "time": "2021-05-07T13:42:21+00:00" }, { "name": "symfony/finder", - "version": "v5.0.8", + "version": "v5.2.8", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "600a52c29afc0d1caa74acbec8d3095ca7e9910d" + "reference": "eccb8be70d7a6a2230d05f6ecede40f3fdd9e252" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/600a52c29afc0d1caa74acbec8d3095ca7e9910d", - "reference": "600a52c29afc0d1caa74acbec8d3095ca7e9910d", + "url": "https://api.github.com/repos/symfony/finder/zipball/eccb8be70d7a6a2230d05f6ecede40f3fdd9e252", + "reference": "eccb8be70d7a6a2230d05f6ecede40f3fdd9e252", "shasum": "" }, "require": { - "php": "^7.2.5" + "php": ">=7.2.5" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.0-dev" - } - }, "autoload": { "psr-4": { "Symfony\\Component\\Finder\\": "" @@ -2561,8 +3273,11 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony Finder Component", + "description": "Finds files and directories via an intuitive fluent interface", "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/finder/tree/v5.2.8" + }, "funding": [ { "url": "https://symfony.com/sponsor", @@ -2577,24 +3292,24 @@ "type": "tidelift" } ], - "time": "2020-03-27T16:56:45+00:00" + "time": "2021-05-10T14:39:23+00:00" }, { "name": "symfony/polyfill-ctype", - "version": "v1.17.0", + "version": "v1.22.1", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-ctype.git", - "reference": "e94c8b1bbe2bc77507a1056cdb06451c75b427f9" + "reference": "c6c942b1ac76c82448322025e084cadc56048b4e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/e94c8b1bbe2bc77507a1056cdb06451c75b427f9", - "reference": "e94c8b1bbe2bc77507a1056cdb06451c75b427f9", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/c6c942b1ac76c82448322025e084cadc56048b4e", + "reference": "c6c942b1ac76c82448322025e084cadc56048b4e", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": ">=7.1" }, "suggest": { "ext-ctype": "For best performance" @@ -2602,7 +3317,11 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.17-dev" + "dev-main": "1.22-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" } }, "autoload": { @@ -2635,6 +3354,9 @@ "polyfill", "portable" ], + "support": { + "source": "https://github.com/symfony/polyfill-ctype/tree/v1.22.1" + }, "funding": [ { "url": "https://symfony.com/sponsor", @@ -2649,24 +3371,189 @@ "type": "tidelift" } ], - "time": "2020-05-12T16:14:59+00:00" + "time": "2021-01-07T16:49:33+00:00" + }, + { + "name": "symfony/polyfill-intl-grapheme", + "version": "v1.22.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-intl-grapheme.git", + "reference": "5601e09b69f26c1828b13b6bb87cb07cddba3170" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/5601e09b69f26c1828b13b6bb87cb07cddba3170", + "reference": "5601e09b69f26c1828b13b6bb87cb07cddba3170", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "suggest": { + "ext-intl": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.22-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Polyfill\\Intl\\Grapheme\\": "" + }, + "files": [ + "bootstrap.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for intl's grapheme_* functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "grapheme", + "intl", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.22.1" + }, + "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": "2021-01-22T09:19:47+00:00" + }, + { + "name": "symfony/polyfill-intl-normalizer", + "version": "v1.22.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-intl-normalizer.git", + "reference": "43a0283138253ed1d48d352ab6d0bdb3f809f248" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/43a0283138253ed1d48d352ab6d0bdb3f809f248", + "reference": "43a0283138253ed1d48d352ab6d0bdb3f809f248", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "suggest": { + "ext-intl": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.22-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Polyfill\\Intl\\Normalizer\\": "" + }, + "files": [ + "bootstrap.php" + ], + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for intl's Normalizer class and related functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "intl", + "normalizer", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.22.1" + }, + "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": "2021-01-22T09:19:47+00:00" }, { "name": "symfony/polyfill-mbstring", - "version": "v1.17.0", + "version": "v1.22.1", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "fa79b11539418b02fc5e1897267673ba2c19419c" + "reference": "5232de97ee3b75b0360528dae24e73db49566ab1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/fa79b11539418b02fc5e1897267673ba2c19419c", - "reference": "fa79b11539418b02fc5e1897267673ba2c19419c", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/5232de97ee3b75b0360528dae24e73db49566ab1", + "reference": "5232de97ee3b75b0360528dae24e73db49566ab1", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": ">=7.1" }, "suggest": { "ext-mbstring": "For best performance" @@ -2674,7 +3561,11 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.17-dev" + "dev-main": "1.22-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" } }, "autoload": { @@ -2708,6 +3599,9 @@ "portable", "shim" ], + "support": { + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.22.1" + }, "funding": [ { "url": "https://symfony.com/sponsor", @@ -2722,34 +3616,117 @@ "type": "tidelift" } ], - "time": "2020-05-12T16:47:27+00:00" + "time": "2021-01-22T09:19:47+00:00" }, { "name": "symfony/polyfill-php73", - "version": "v1.17.0", + "version": "v1.22.1", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php73.git", - "reference": "a760d8964ff79ab9bf057613a5808284ec852ccc" + "reference": "a678b42e92f86eca04b7fa4c0f6f19d097fb69e2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/a678b42e92f86eca04b7fa4c0f6f19d097fb69e2", + "reference": "a678b42e92f86eca04b7fa4c0f6f19d097fb69e2", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.22-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Polyfill\\Php73\\": "" + }, + "files": [ + "bootstrap.php" + ], + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 7.3+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php73/tree/v1.22.1" + }, + "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": "2021-01-07T16:49:33+00:00" + }, + { + "name": "symfony/polyfill-php80", + "version": "v1.22.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php80.git", + "reference": "dc3063ba22c2a1fd2f45ed856374d79114998f91" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/a760d8964ff79ab9bf057613a5808284ec852ccc", - "reference": "a760d8964ff79ab9bf057613a5808284ec852ccc", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/dc3063ba22c2a1fd2f45ed856374d79114998f91", + "reference": "dc3063ba22c2a1fd2f45ed856374d79114998f91", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": ">=7.1" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.17-dev" + "dev-main": "1.22-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" } }, "autoload": { "psr-4": { - "Symfony\\Polyfill\\Php73\\": "" + "Symfony\\Polyfill\\Php80\\": "" }, "files": [ "bootstrap.php" @@ -2763,6 +3740,10 @@ "MIT" ], "authors": [ + { + "name": "Ion Bazan", + "email": "ion.bazan@gmail.com" + }, { "name": "Nicolas Grekas", "email": "p@tchwork.com" @@ -2772,7 +3753,7 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony polyfill backporting some PHP 7.3+ features to lower PHP versions", + "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions", "homepage": "https://symfony.com", "keywords": [ "compatibility", @@ -2780,6 +3761,9 @@ "portable", "shim" ], + "support": { + "source": "https://github.com/symfony/polyfill-php80/tree/v1.22.1" + }, "funding": [ { "url": "https://symfony.com/sponsor", @@ -2794,31 +3778,27 @@ "type": "tidelift" } ], - "time": "2020-05-12T16:47:27+00:00" + "time": "2021-01-07T16:49:33+00:00" }, { "name": "symfony/process", - "version": "v5.0.8", + "version": "v5.2.7", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "3179f68dff5bad14d38c4114a1dab98030801fd7" + "reference": "98cb8eeb72e55d4196dd1e36f1f16e7b3a9a088e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/3179f68dff5bad14d38c4114a1dab98030801fd7", - "reference": "3179f68dff5bad14d38c4114a1dab98030801fd7", + "url": "https://api.github.com/repos/symfony/process/zipball/98cb8eeb72e55d4196dd1e36f1f16e7b3a9a088e", + "reference": "98cb8eeb72e55d4196dd1e36f1f16e7b3a9a088e", "shasum": "" }, "require": { - "php": "^7.2.5" + "php": ">=7.2.5", + "symfony/polyfill-php80": "^1.15" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.0-dev" - } - }, "autoload": { "psr-4": { "Symfony\\Component\\Process\\": "" @@ -2841,8 +3821,11 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony Process Component", + "description": "Executes commands in sub-processes", "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/process/tree/v5.3.0-BETA1" + }, "funding": [ { "url": "https://symfony.com/sponsor", @@ -2857,25 +3840,25 @@ "type": "tidelift" } ], - "time": "2020-04-15T15:59:10+00:00" + "time": "2021-04-08T10:27:02+00:00" }, { "name": "symfony/service-contracts", - "version": "v2.0.1", + "version": "v2.4.0", "source": { "type": "git", "url": "https://github.com/symfony/service-contracts.git", - "reference": "144c5e51266b281231e947b51223ba14acf1a749" + "reference": "f040a30e04b57fbcc9c6cbcf4dbaa96bd318b9bb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/service-contracts/zipball/144c5e51266b281231e947b51223ba14acf1a749", - "reference": "144c5e51266b281231e947b51223ba14acf1a749", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/f040a30e04b57fbcc9c6cbcf4dbaa96bd318b9bb", + "reference": "f040a30e04b57fbcc9c6cbcf4dbaa96bd318b9bb", "shasum": "" }, "require": { - "php": "^7.2.5", - "psr/container": "^1.0" + "php": ">=7.2.5", + "psr/container": "^1.1" }, "suggest": { "symfony/service-implementation": "" @@ -2883,7 +3866,11 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0-dev" + "dev-main": "2.4-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" } }, "autoload": { @@ -2915,26 +3902,127 @@ "interoperability", "standards" ], - "time": "2019-11-18T17:27:11+00:00" + "support": { + "source": "https://github.com/symfony/service-contracts/tree/v2.4.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-04-01T10:43:52+00:00" + }, + { + "name": "symfony/string", + "version": "v5.2.8", + "source": { + "type": "git", + "url": "https://github.com/symfony/string.git", + "reference": "01b35eb64cac8467c3f94cd0ce2d0d376bb7d1db" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/string/zipball/01b35eb64cac8467c3f94cd0ce2d0d376bb7d1db", + "reference": "01b35eb64cac8467c3f94cd0ce2d0d376bb7d1db", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-intl-grapheme": "~1.0", + "symfony/polyfill-intl-normalizer": "~1.0", + "symfony/polyfill-mbstring": "~1.0", + "symfony/polyfill-php80": "~1.15" + }, + "require-dev": { + "symfony/error-handler": "^4.4|^5.0", + "symfony/http-client": "^4.4|^5.0", + "symfony/translation-contracts": "^1.1|^2", + "symfony/var-exporter": "^4.4|^5.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\String\\": "" + }, + "files": [ + "Resources/functions.php" + ], + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides an object-oriented API to strings and deals with bytes, UTF-8 code points and grapheme clusters in a unified way", + "homepage": "https://symfony.com", + "keywords": [ + "grapheme", + "i18n", + "string", + "unicode", + "utf-8", + "utf8" + ], + "support": { + "source": "https://github.com/symfony/string/tree/v5.2.8" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-05-10T14:56:10+00:00" }, { "name": "symfony/translation", - "version": "v5.0.8", + "version": "v5.2.8", "source": { "type": "git", "url": "https://github.com/symfony/translation.git", - "reference": "c3879db7a68fe3e12b41263b05879412c87b27fd" + "reference": "445caa74a5986f1cc9dd91a2975ef68fa7cb2068" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation/zipball/c3879db7a68fe3e12b41263b05879412c87b27fd", - "reference": "c3879db7a68fe3e12b41263b05879412c87b27fd", + "url": "https://api.github.com/repos/symfony/translation/zipball/445caa74a5986f1cc9dd91a2975ef68fa7cb2068", + "reference": "445caa74a5986f1cc9dd91a2975ef68fa7cb2068", "shasum": "" }, "require": { - "php": "^7.2.5", + "php": ">=7.2.5", "symfony/polyfill-mbstring": "~1.0", - "symfony/translation-contracts": "^2" + "symfony/polyfill-php80": "^1.15", + "symfony/translation-contracts": "^2.3" }, "conflict": { "symfony/config": "<4.4", @@ -2944,7 +4032,7 @@ "symfony/yaml": "<4.4" }, "provide": { - "symfony/translation-implementation": "2.0" + "symfony/translation-implementation": "2.3" }, "require-dev": { "psr/log": "~1.0", @@ -2963,12 +4051,10 @@ "symfony/yaml": "" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.0-dev" - } - }, "autoload": { + "files": [ + "Resources/functions.php" + ], "psr-4": { "Symfony\\Component\\Translation\\": "" }, @@ -2990,8 +4076,11 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony Translation Component", + "description": "Provides tools to internationalize your application", "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/translation/tree/v5.2.8" + }, "funding": [ { "url": "https://symfony.com/sponsor", @@ -3006,24 +4095,24 @@ "type": "tidelift" } ], - "time": "2020-04-12T16:45:47+00:00" + "time": "2021-05-07T13:41:16+00:00" }, { "name": "symfony/translation-contracts", - "version": "v2.0.1", + "version": "v2.4.0", "source": { "type": "git", "url": "https://github.com/symfony/translation-contracts.git", - "reference": "8cc682ac458d75557203b2f2f14b0b92e1c744ed" + "reference": "95c812666f3e91db75385749fe219c5e494c7f95" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/8cc682ac458d75557203b2f2f14b0b92e1c744ed", - "reference": "8cc682ac458d75557203b2f2f14b0b92e1c744ed", + "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/95c812666f3e91db75385749fe219c5e494c7f95", + "reference": "95c812666f3e91db75385749fe219c5e494c7f95", "shasum": "" }, "require": { - "php": "^7.2.5" + "php": ">=7.2.5" }, "suggest": { "symfony/translation-implementation": "" @@ -3031,7 +4120,11 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0-dev" + "dev-main": "2.4-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" } }, "autoload": { @@ -3063,25 +4156,43 @@ "interoperability", "standards" ], - "time": "2019-11-18T17:27:11+00:00" + "support": { + "source": "https://github.com/symfony/translation-contracts/tree/v2.4.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-03-23T23:28:01+00:00" }, { "name": "symfony/var-dumper", - "version": "v5.0.8", + "version": "v5.2.8", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "09de28632f16f81058a85fcf318397218272a07b" + "reference": "d693200a73fae179d27f8f1b16b4faf3e8569eba" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/09de28632f16f81058a85fcf318397218272a07b", - "reference": "09de28632f16f81058a85fcf318397218272a07b", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/d693200a73fae179d27f8f1b16b4faf3e8569eba", + "reference": "d693200a73fae179d27f8f1b16b4faf3e8569eba", "shasum": "" }, "require": { - "php": "^7.2.5", - "symfony/polyfill-mbstring": "~1.0" + "php": ">=7.2.5", + "symfony/polyfill-mbstring": "~1.0", + "symfony/polyfill-php80": "^1.15" }, "conflict": { "phpunit/phpunit": "<5.4.3", @@ -3091,7 +4202,7 @@ "ext-iconv": "*", "symfony/console": "^4.4|^5.0", "symfony/process": "^4.4|^5.0", - "twig/twig": "^2.4|^3.0" + "twig/twig": "^2.13|^3.0.4" }, "suggest": { "ext-iconv": "To convert non-UTF-8 strings to UTF-8 (or symfony/polyfill-iconv in case ext-iconv cannot be used).", @@ -3102,11 +4213,6 @@ "Resources/bin/var-dump-server" ], "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.0-dev" - } - }, "autoload": { "files": [ "Resources/functions/dump.php" @@ -3132,12 +4238,15 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony mechanism for exploring and dumping PHP variables", + "description": "Provides mechanisms for walking through any arbitrary PHP variable", "homepage": "https://symfony.com", "keywords": [ "debug", "dump" ], + "support": { + "source": "https://github.com/symfony/var-dumper/tree/v5.2.8" + }, "funding": [ { "url": "https://symfony.com/sponsor", @@ -3152,24 +4261,25 @@ "type": "tidelift" } ], - "time": "2020-04-12T16:45:47+00:00" + "time": "2021-05-07T13:42:21+00:00" }, { "name": "symfony/yaml", - "version": "v5.0.8", + "version": "v5.2.7", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "482fb4e710e5af3e0e78015f19aa716ad953392f" + "reference": "76546cbeddd0a9540b4e4e57eddeec3e9bb444a5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/482fb4e710e5af3e0e78015f19aa716ad953392f", - "reference": "482fb4e710e5af3e0e78015f19aa716ad953392f", + "url": "https://api.github.com/repos/symfony/yaml/zipball/76546cbeddd0a9540b4e4e57eddeec3e9bb444a5", + "reference": "76546cbeddd0a9540b4e4e57eddeec3e9bb444a5", "shasum": "" }, "require": { - "php": "^7.2.5", + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1", "symfony/polyfill-ctype": "~1.8" }, "conflict": { @@ -3181,12 +4291,10 @@ "suggest": { "symfony/console": "For validating YAML files using the lint command" }, + "bin": [ + "Resources/bin/yaml-lint" + ], "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.0-dev" - } - }, "autoload": { "psr-4": { "Symfony\\Component\\Yaml\\": "" @@ -3209,8 +4317,11 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony Yaml Component", + "description": "Loads and dumps YAML files", "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/yaml/tree/v5.2.7" + }, "funding": [ { "url": "https://symfony.com/sponsor", @@ -3225,41 +4336,43 @@ "type": "tidelift" } ], - "time": "2020-04-28T17:58:55+00:00" + "time": "2021-04-29T20:47:09+00:00" }, { "name": "vlucas/phpdotenv", - "version": "v4.1.5", + "version": "v5.3.0", "source": { "type": "git", "url": "https://github.com/vlucas/phpdotenv.git", - "reference": "539bb6927c101a5605d31d11a2d17185a2ce2bf1" + "reference": "b3eac5c7ac896e52deab4a99068e3f4ab12d9e56" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/539bb6927c101a5605d31d11a2d17185a2ce2bf1", - "reference": "539bb6927c101a5605d31d11a2d17185a2ce2bf1", + "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/b3eac5c7ac896e52deab4a99068e3f4ab12d9e56", + "reference": "b3eac5c7ac896e52deab4a99068e3f4ab12d9e56", "shasum": "" }, "require": { - "php": "^5.5.9 || ^7.0 || ^8.0", - "phpoption/phpoption": "^1.7.2", - "symfony/polyfill-ctype": "^1.9" + "ext-pcre": "*", + "graham-campbell/result-type": "^1.0.1", + "php": "^7.1.3 || ^8.0", + "phpoption/phpoption": "^1.7.4", + "symfony/polyfill-ctype": "^1.17", + "symfony/polyfill-mbstring": "^1.17", + "symfony/polyfill-php80": "^1.17" }, "require-dev": { - "bamarni/composer-bin-plugin": "^1.3", + "bamarni/composer-bin-plugin": "^1.4.1", "ext-filter": "*", - "ext-pcre": "*", - "phpunit/phpunit": "^4.8.35 || ^5.0 || ^6.0 || ^7.0" + "phpunit/phpunit": "^7.5.20 || ^8.5.14 || ^9.5.1" }, "suggest": { - "ext-filter": "Required to use the boolean validator.", - "ext-pcre": "Required to use most of the library." + "ext-filter": "Required to use the boolean validator." }, "type": "library", "extra": { "branch-alias": { - "dev-master": "4.1-dev" + "dev-master": "5.3-dev" } }, "autoload": { @@ -3289,6 +4402,10 @@ "env", "environment" ], + "support": { + "issues": "https://github.com/vlucas/phpdotenv/issues", + "source": "https://github.com/vlucas/phpdotenv/tree/v5.3.0" + }, "funding": [ { "url": "https://github.com/GrahamCampbell", @@ -3299,27 +4416,27 @@ "type": "tidelift" } ], - "time": "2020-05-02T14:08:57+00:00" + "time": "2021-01-20T15:23:13+00:00" }, { "name": "voku/portable-ascii", - "version": "1.4.10", + "version": "1.5.6", "source": { "type": "git", "url": "https://github.com/voku/portable-ascii.git", - "reference": "240e93829a5f985fab0984a6e55ae5e26b78a334" + "reference": "80953678b19901e5165c56752d087fc11526017c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/voku/portable-ascii/zipball/240e93829a5f985fab0984a6e55ae5e26b78a334", - "reference": "240e93829a5f985fab0984a6e55ae5e26b78a334", + "url": "https://api.github.com/repos/voku/portable-ascii/zipball/80953678b19901e5165c56752d087fc11526017c", + "reference": "80953678b19901e5165c56752d087fc11526017c", "shasum": "" }, "require": { "php": ">=7.0.0" }, "require-dev": { - "phpunit/phpunit": "~6.0 || ~7.0" + "phpunit/phpunit": "~6.0 || ~7.0 || ~9.0" }, "suggest": { "ext-intl": "Use Intl for transliterator_transliterate() support" @@ -3327,8 +4444,7 @@ "type": "library", "autoload": { "psr-4": { - "voku\\": "src/voku/", - "voku\\tests\\": "tests/" + "voku\\": "src/voku/" } }, "notification-url": "https://packagist.org/downloads/", @@ -3348,6 +4464,10 @@ "clean", "php" ], + "support": { + "issues": "https://github.com/voku/portable-ascii/issues", + "source": "https://github.com/voku/portable-ascii/tree/1.5.6" + }, "funding": [ { "url": "https://www.paypal.me/moelleken", @@ -3357,6 +4477,10 @@ "url": "https://github.com/voku", "type": "github" }, + { + "url": "https://opencollective.com/portable-ascii", + "type": "open_collective" + }, { "url": "https://www.patreon.com/voku", "type": "patreon" @@ -3366,42 +4490,95 @@ "type": "tidelift" } ], - "time": "2020-03-13T01:23:26+00:00" + "time": "2020-11-12T00:07:28+00:00" + }, + { + "name": "webmozart/assert", + "version": "1.10.0", + "source": { + "type": "git", + "url": "https://github.com/webmozarts/assert.git", + "reference": "6964c76c7804814a842473e0c8fd15bab0f18e25" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/webmozarts/assert/zipball/6964c76c7804814a842473e0c8fd15bab0f18e25", + "reference": "6964c76c7804814a842473e0c8fd15bab0f18e25", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0", + "symfony/polyfill-ctype": "^1.8" + }, + "conflict": { + "phpstan/phpstan": "<0.12.20", + "vimeo/psalm": "<4.6.1 || 4.6.2" + }, + "require-dev": { + "phpunit/phpunit": "^8.5.13" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.10-dev" + } + }, + "autoload": { + "psr-4": { + "Webmozart\\Assert\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Bernhard Schussek", + "email": "bschussek@gmail.com" + } + ], + "description": "Assertions to validate method input/output with nice error messages.", + "keywords": [ + "assert", + "check", + "validate" + ], + "support": { + "issues": "https://github.com/webmozarts/assert/issues", + "source": "https://github.com/webmozarts/assert/tree/1.10.0" + }, + "time": "2021-03-09T10:59:23+00:00" } ], "packages-dev": [ { "name": "doctrine/instantiator", - "version": "1.3.0", + "version": "1.4.0", "source": { "type": "git", "url": "https://github.com/doctrine/instantiator.git", - "reference": "ae466f726242e637cebdd526a7d991b9433bacf1" + "reference": "d56bf6102915de5702778fe20f2de3b2fe570b5b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/instantiator/zipball/ae466f726242e637cebdd526a7d991b9433bacf1", - "reference": "ae466f726242e637cebdd526a7d991b9433bacf1", + "url": "https://api.github.com/repos/doctrine/instantiator/zipball/d56bf6102915de5702778fe20f2de3b2fe570b5b", + "reference": "d56bf6102915de5702778fe20f2de3b2fe570b5b", "shasum": "" }, "require": { - "php": "^7.1" + "php": "^7.1 || ^8.0" }, "require-dev": { - "doctrine/coding-standard": "^6.0", + "doctrine/coding-standard": "^8.0", "ext-pdo": "*", "ext-phar": "*", - "phpbench/phpbench": "^0.13", - "phpstan/phpstan-phpunit": "^0.11", - "phpstan/phpstan-shim": "^0.11", - "phpunit/phpunit": "^7.0" + "phpbench/phpbench": "^0.13 || 1.0.0-alpha2", + "phpstan/phpstan": "^0.12", + "phpstan/phpstan-phpunit": "^0.12", + "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.2.x-dev" - } - }, "autoload": { "psr-4": { "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/" @@ -3415,7 +4592,7 @@ { "name": "Marco Pivetta", "email": "ocramius@gmail.com", - "homepage": "http://ocramius.github.com/" + "homepage": "https://ocramius.github.io/" } ], "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors", @@ -3424,20 +4601,38 @@ "constructor", "instantiate" ], - "time": "2019-10-21T16:45:58+00:00" + "support": { + "issues": "https://github.com/doctrine/instantiator/issues", + "source": "https://github.com/doctrine/instantiator/tree/1.4.0" + }, + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Finstantiator", + "type": "tidelift" + } + ], + "time": "2020-11-10T18:47:58+00:00" }, { "name": "fzaninotto/faker", - "version": "v1.9.1", + "version": "v1.9.2", "source": { "type": "git", "url": "https://github.com/fzaninotto/Faker.git", - "reference": "fc10d778e4b84d5bd315dad194661e091d307c6f" + "reference": "848d8125239d7dbf8ab25cb7f054f1a630e68c2e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/fzaninotto/Faker/zipball/fc10d778e4b84d5bd315dad194661e091d307c6f", - "reference": "fc10d778e4b84d5bd315dad194661e091d307c6f", + "url": "https://api.github.com/repos/fzaninotto/Faker/zipball/848d8125239d7dbf8ab25cb7f054f1a630e68c2e", + "reference": "848d8125239d7dbf8ab25cb7f054f1a630e68c2e", "shasum": "" }, "require": { @@ -3474,24 +4669,29 @@ "faker", "fixtures" ], - "time": "2019-12-12T13:22:17+00:00" + "support": { + "issues": "https://github.com/fzaninotto/Faker/issues", + "source": "https://github.com/fzaninotto/Faker/tree/v1.9.2" + }, + "abandoned": true, + "time": "2020-12-11T09:56:16+00:00" }, { "name": "hamcrest/hamcrest-php", - "version": "v2.0.0", + "version": "v2.0.1", "source": { "type": "git", "url": "https://github.com/hamcrest/hamcrest-php.git", - "reference": "776503d3a8e85d4f9a1148614f95b7a608b046ad" + "reference": "8c3d0a3f6af734494ad8f6fbbee0ba92422859f3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/hamcrest/hamcrest-php/zipball/776503d3a8e85d4f9a1148614f95b7a608b046ad", - "reference": "776503d3a8e85d4f9a1148614f95b7a608b046ad", + "url": "https://api.github.com/repos/hamcrest/hamcrest-php/zipball/8c3d0a3f6af734494ad8f6fbbee0ba92422859f3", + "reference": "8c3d0a3f6af734494ad8f6fbbee0ba92422859f3", "shasum": "" }, "require": { - "php": "^5.3|^7.0" + "php": "^5.3|^7.0|^8.0" }, "replace": { "cordoval/hamcrest-php": "*", @@ -3499,14 +4699,13 @@ "kodova/hamcrest-php": "*" }, "require-dev": { - "phpunit/php-file-iterator": "1.3.3", - "phpunit/phpunit": "~4.0", - "satooshi/php-coveralls": "^1.0" + "phpunit/php-file-iterator": "^1.4 || ^2.0", + "phpunit/phpunit": "^4.8.36 || ^5.7 || ^6.5 || ^7.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0-dev" + "dev-master": "2.1-dev" } }, "autoload": { @@ -3516,40 +4715,47 @@ }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD" + "BSD-3-Clause" ], "description": "This is the PHP port of Hamcrest Matchers", "keywords": [ "test" ], - "time": "2016-01-20T08:20:44+00:00" + "support": { + "issues": "https://github.com/hamcrest/hamcrest-php/issues", + "source": "https://github.com/hamcrest/hamcrest-php/tree/v2.0.1" + }, + "time": "2020-07-09T08:09:16+00:00" }, { "name": "mockery/mockery", - "version": "1.3.1", + "version": "1.4.3", "source": { "type": "git", "url": "https://github.com/mockery/mockery.git", - "reference": "f69bbde7d7a75d6b2862d9ca8fab1cd28014b4be" + "reference": "d1339f64479af1bee0e82a0413813fe5345a54ea" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/mockery/mockery/zipball/f69bbde7d7a75d6b2862d9ca8fab1cd28014b4be", - "reference": "f69bbde7d7a75d6b2862d9ca8fab1cd28014b4be", + "url": "https://api.github.com/repos/mockery/mockery/zipball/d1339f64479af1bee0e82a0413813fe5345a54ea", + "reference": "d1339f64479af1bee0e82a0413813fe5345a54ea", "shasum": "" }, "require": { - "hamcrest/hamcrest-php": "~2.0", + "hamcrest/hamcrest-php": "^2.0.1", "lib-pcre": ">=7.0", - "php": ">=5.6.0" + "php": "^7.3 || ^8.0" + }, + "conflict": { + "phpunit/phpunit": "<8.0" }, "require-dev": { - "phpunit/phpunit": "~5.7.10|~6.5|~7.0|~8.0" + "phpunit/phpunit": "^8.5 || ^9.3" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.3.x-dev" + "dev-master": "1.4.x-dev" } }, "autoload": { @@ -3587,80 +4793,151 @@ "test double", "testing" ], - "time": "2019-12-26T09:49:15+00:00" + "support": { + "issues": "https://github.com/mockery/mockery/issues", + "source": "https://github.com/mockery/mockery/tree/1.4.3" + }, + "time": "2021-02-24T09:51:49+00:00" }, { "name": "myclabs/deep-copy", - "version": "1.9.5", + "version": "1.10.2", "source": { "type": "git", "url": "https://github.com/myclabs/DeepCopy.git", - "reference": "b2c28789e80a97badd14145fda39b545d83ca3ef" + "reference": "776f831124e9c62e1a2c601ecc52e776d8bb7220" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/b2c28789e80a97badd14145fda39b545d83ca3ef", - "reference": "b2c28789e80a97badd14145fda39b545d83ca3ef", + "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/776f831124e9c62e1a2c601ecc52e776d8bb7220", + "reference": "776f831124e9c62e1a2c601ecc52e776d8bb7220", "shasum": "" }, "require": { - "php": "^7.1" + "php": "^7.1 || ^8.0" }, "replace": { "myclabs/deep-copy": "self.version" }, "require-dev": { - "doctrine/collections": "^1.0", - "doctrine/common": "^2.6", - "phpunit/phpunit": "^7.1" + "doctrine/collections": "^1.0", + "doctrine/common": "^2.6", + "phpunit/phpunit": "^7.1" + }, + "type": "library", + "autoload": { + "psr-4": { + "DeepCopy\\": "src/DeepCopy/" + }, + "files": [ + "src/DeepCopy/deep_copy.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "Create deep copies (clones) of your objects", + "keywords": [ + "clone", + "copy", + "duplicate", + "object", + "object graph" + ], + "support": { + "issues": "https://github.com/myclabs/DeepCopy/issues", + "source": "https://github.com/myclabs/DeepCopy/tree/1.10.2" + }, + "funding": [ + { + "url": "https://tidelift.com/funding/github/packagist/myclabs/deep-copy", + "type": "tidelift" + } + ], + "time": "2020-11-13T09:40:50+00:00" + }, + { + "name": "nikic/php-parser", + "version": "v4.10.5", + "source": { + "type": "git", + "url": "https://github.com/nikic/PHP-Parser.git", + "reference": "4432ba399e47c66624bc73c8c0f811e5c109576f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/4432ba399e47c66624bc73c8c0f811e5c109576f", + "reference": "4432ba399e47c66624bc73c8c0f811e5c109576f", + "shasum": "" + }, + "require": { + "ext-tokenizer": "*", + "php": ">=7.0" + }, + "require-dev": { + "ircmaxell/php-yacc": "^0.0.7", + "phpunit/phpunit": "^6.5 || ^7.0 || ^8.0 || ^9.0" }, + "bin": [ + "bin/php-parse" + ], "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.9-dev" + } + }, "autoload": { "psr-4": { - "DeepCopy\\": "src/DeepCopy/" - }, - "files": [ - "src/DeepCopy/deep_copy.php" - ] + "PhpParser\\": "lib/PhpParser" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], - "description": "Create deep copies (clones) of your objects", + "authors": [ + { + "name": "Nikita Popov" + } + ], + "description": "A PHP parser written in PHP", "keywords": [ - "clone", - "copy", - "duplicate", - "object", - "object graph" + "parser", + "php" ], - "time": "2020-01-17T21:11:47+00:00" + "support": { + "issues": "https://github.com/nikic/PHP-Parser/issues", + "source": "https://github.com/nikic/PHP-Parser/tree/v4.10.5" + }, + "time": "2021-05-03T19:11:20+00:00" }, { "name": "phar-io/manifest", - "version": "1.0.3", + "version": "2.0.1", "source": { "type": "git", "url": "https://github.com/phar-io/manifest.git", - "reference": "7761fcacf03b4d4f16e7ccb606d4879ca431fcf4" + "reference": "85265efd3af7ba3ca4b2a2c34dbfc5788dd29133" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phar-io/manifest/zipball/7761fcacf03b4d4f16e7ccb606d4879ca431fcf4", - "reference": "7761fcacf03b4d4f16e7ccb606d4879ca431fcf4", + "url": "https://api.github.com/repos/phar-io/manifest/zipball/85265efd3af7ba3ca4b2a2c34dbfc5788dd29133", + "reference": "85265efd3af7ba3ca4b2a2c34dbfc5788dd29133", "shasum": "" }, "require": { "ext-dom": "*", "ext-phar": "*", - "phar-io/version": "^2.0", - "php": "^5.6 || ^7.0" + "ext-xmlwriter": "*", + "phar-io/version": "^3.0.1", + "php": "^7.2 || ^8.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-master": "2.0.x-dev" } }, "autoload": { @@ -3690,24 +4967,28 @@ } ], "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)", - "time": "2018-07-08T19:23:20+00:00" + "support": { + "issues": "https://github.com/phar-io/manifest/issues", + "source": "https://github.com/phar-io/manifest/tree/master" + }, + "time": "2020-06-27T14:33:11+00:00" }, { "name": "phar-io/version", - "version": "2.0.1", + "version": "3.1.0", "source": { "type": "git", "url": "https://github.com/phar-io/version.git", - "reference": "45a2ec53a73c70ce41d55cedef9063630abaf1b6" + "reference": "bae7c545bef187884426f042434e561ab1ddb182" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phar-io/version/zipball/45a2ec53a73c70ce41d55cedef9063630abaf1b6", - "reference": "45a2ec53a73c70ce41d55cedef9063630abaf1b6", + "url": "https://api.github.com/repos/phar-io/version/zipball/bae7c545bef187884426f042434e561ab1ddb182", + "reference": "bae7c545bef187884426f042434e561ab1ddb182", "shasum": "" }, "require": { - "php": "^5.6 || ^7.0" + "php": "^7.2 || ^8.0" }, "type": "library", "autoload": { @@ -3737,29 +5018,33 @@ } ], "description": "Library for handling version information and constraints", - "time": "2018-07-08T19:19:57+00:00" + "support": { + "issues": "https://github.com/phar-io/version/issues", + "source": "https://github.com/phar-io/version/tree/3.1.0" + }, + "time": "2021-02-23T14:00:09+00:00" }, { "name": "phpdocumentor/reflection-common", - "version": "2.1.0", + "version": "2.2.0", "source": { "type": "git", "url": "https://github.com/phpDocumentor/ReflectionCommon.git", - "reference": "6568f4687e5b41b054365f9ae03fcb1ed5f2069b" + "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/6568f4687e5b41b054365f9ae03fcb1ed5f2069b", - "reference": "6568f4687e5b41b054365f9ae03fcb1ed5f2069b", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/1d01c49d4ed62f25aa84a747ad35d5a16924662b", + "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b", "shasum": "" }, "require": { - "php": ">=7.1" + "php": "^7.2 || ^8.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.x-dev" + "dev-2.x": "2.x-dev" } }, "autoload": { @@ -3786,32 +5071,35 @@ "reflection", "static analysis" ], - "time": "2020-04-27T09:25:28+00:00" + "support": { + "issues": "https://github.com/phpDocumentor/ReflectionCommon/issues", + "source": "https://github.com/phpDocumentor/ReflectionCommon/tree/2.x" + }, + "time": "2020-06-27T09:03:43+00:00" }, { "name": "phpdocumentor/reflection-docblock", - "version": "5.1.0", + "version": "5.2.2", "source": { "type": "git", "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", - "reference": "cd72d394ca794d3466a3b2fc09d5a6c1dc86b47e" + "reference": "069a785b2141f5bcf49f3e353548dc1cce6df556" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/cd72d394ca794d3466a3b2fc09d5a6c1dc86b47e", - "reference": "cd72d394ca794d3466a3b2fc09d5a6c1dc86b47e", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/069a785b2141f5bcf49f3e353548dc1cce6df556", + "reference": "069a785b2141f5bcf49f3e353548dc1cce6df556", "shasum": "" }, "require": { - "ext-filter": "^7.1", - "php": "^7.2", - "phpdocumentor/reflection-common": "^2.0", - "phpdocumentor/type-resolver": "^1.0", - "webmozart/assert": "^1" + "ext-filter": "*", + "php": "^7.2 || ^8.0", + "phpdocumentor/reflection-common": "^2.2", + "phpdocumentor/type-resolver": "^1.3", + "webmozart/assert": "^1.9.1" }, "require-dev": { - "doctrine/instantiator": "^1", - "mockery/mockery": "^1" + "mockery/mockery": "~1.3.2" }, "type": "library", "extra": { @@ -3839,34 +5127,37 @@ } ], "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", - "time": "2020-02-22T12:28:44+00:00" + "support": { + "issues": "https://github.com/phpDocumentor/ReflectionDocBlock/issues", + "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/master" + }, + "time": "2020-09-03T19:13:55+00:00" }, { "name": "phpdocumentor/type-resolver", - "version": "1.1.0", + "version": "1.4.0", "source": { "type": "git", "url": "https://github.com/phpDocumentor/TypeResolver.git", - "reference": "7462d5f123dfc080dfdf26897032a6513644fc95" + "reference": "6a467b8989322d92aa1c8bf2bebcc6e5c2ba55c0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/7462d5f123dfc080dfdf26897032a6513644fc95", - "reference": "7462d5f123dfc080dfdf26897032a6513644fc95", + "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/6a467b8989322d92aa1c8bf2bebcc6e5c2ba55c0", + "reference": "6a467b8989322d92aa1c8bf2bebcc6e5c2ba55c0", "shasum": "" }, "require": { - "php": "^7.2", + "php": "^7.2 || ^8.0", "phpdocumentor/reflection-common": "^2.0" }, "require-dev": { - "ext-tokenizer": "^7.2", - "mockery/mockery": "~1" + "ext-tokenizer": "*" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.x-dev" + "dev-1.x": "1.x-dev" } }, "autoload": { @@ -3885,37 +5176,41 @@ } ], "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names", - "time": "2020-02-18T18:59:58+00:00" + "support": { + "issues": "https://github.com/phpDocumentor/TypeResolver/issues", + "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.4.0" + }, + "time": "2020-09-17T18:55:26+00:00" }, { "name": "phpspec/prophecy", - "version": "v1.10.3", + "version": "1.13.0", "source": { "type": "git", "url": "https://github.com/phpspec/prophecy.git", - "reference": "451c3cd1418cf640de218914901e51b064abb093" + "reference": "be1996ed8adc35c3fd795488a653f4b518be70ea" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpspec/prophecy/zipball/451c3cd1418cf640de218914901e51b064abb093", - "reference": "451c3cd1418cf640de218914901e51b064abb093", + "url": "https://api.github.com/repos/phpspec/prophecy/zipball/be1996ed8adc35c3fd795488a653f4b518be70ea", + "reference": "be1996ed8adc35c3fd795488a653f4b518be70ea", "shasum": "" }, "require": { - "doctrine/instantiator": "^1.0.2", - "php": "^5.3|^7.0", - "phpdocumentor/reflection-docblock": "^2.0|^3.0.2|^4.0|^5.0", - "sebastian/comparator": "^1.2.3|^2.0|^3.0|^4.0", - "sebastian/recursion-context": "^1.0|^2.0|^3.0|^4.0" + "doctrine/instantiator": "^1.2", + "php": "^7.2 || ~8.0, <8.1", + "phpdocumentor/reflection-docblock": "^5.2", + "sebastian/comparator": "^3.0 || ^4.0", + "sebastian/recursion-context": "^3.0 || ^4.0" }, "require-dev": { - "phpspec/phpspec": "^2.5 || ^3.2", - "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.5 || ^7.1" + "phpspec/phpspec": "^6.0", + "phpunit/phpunit": "^8.0 || ^9.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.10.x-dev" + "dev-master": "1.11.x-dev" } }, "autoload": { @@ -3948,44 +5243,52 @@ "spy", "stub" ], - "time": "2020-03-05T15:02:03+00:00" + "support": { + "issues": "https://github.com/phpspec/prophecy/issues", + "source": "https://github.com/phpspec/prophecy/tree/1.13.0" + }, + "time": "2021-03-17T13:42:18+00:00" }, { "name": "phpunit/php-code-coverage", - "version": "7.0.10", + "version": "9.2.6", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "f1884187926fbb755a9aaf0b3836ad3165b478bf" + "reference": "f6293e1b30a2354e8428e004689671b83871edde" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/f1884187926fbb755a9aaf0b3836ad3165b478bf", - "reference": "f1884187926fbb755a9aaf0b3836ad3165b478bf", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/f6293e1b30a2354e8428e004689671b83871edde", + "reference": "f6293e1b30a2354e8428e004689671b83871edde", "shasum": "" }, "require": { "ext-dom": "*", + "ext-libxml": "*", "ext-xmlwriter": "*", - "php": "^7.2", - "phpunit/php-file-iterator": "^2.0.2", - "phpunit/php-text-template": "^1.2.1", - "phpunit/php-token-stream": "^3.1.1", - "sebastian/code-unit-reverse-lookup": "^1.0.1", - "sebastian/environment": "^4.2.2", - "sebastian/version": "^2.0.1", - "theseer/tokenizer": "^1.1.3" + "nikic/php-parser": "^4.10.2", + "php": ">=7.3", + "phpunit/php-file-iterator": "^3.0.3", + "phpunit/php-text-template": "^2.0.2", + "sebastian/code-unit-reverse-lookup": "^2.0.2", + "sebastian/complexity": "^2.0", + "sebastian/environment": "^5.1.2", + "sebastian/lines-of-code": "^1.0.3", + "sebastian/version": "^3.0.1", + "theseer/tokenizer": "^1.2.0" }, "require-dev": { - "phpunit/phpunit": "^8.2.2" + "phpunit/phpunit": "^9.3" }, "suggest": { - "ext-xdebug": "^2.7.2" + "ext-pcov": "*", + "ext-xdebug": "*" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "7.0-dev" + "dev-master": "9.2-dev" } }, "autoload": { @@ -4011,32 +5314,42 @@ "testing", "xunit" ], - "time": "2019-11-20T13:55:58+00:00" + "support": { + "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", + "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.6" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2021-03-28T07:26:59+00:00" }, { "name": "phpunit/php-file-iterator", - "version": "2.0.2", + "version": "3.0.5", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-file-iterator.git", - "reference": "050bedf145a257b1ff02746c31894800e5122946" + "reference": "aa4be8575f26070b100fccb67faabb28f21f66f8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/050bedf145a257b1ff02746c31894800e5122946", - "reference": "050bedf145a257b1ff02746c31894800e5122946", + "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/aa4be8575f26070b100fccb67faabb28f21f66f8", + "reference": "aa4be8575f26070b100fccb67faabb28f21f66f8", "shasum": "" }, "require": { - "php": "^7.1" + "php": ">=7.3" }, "require-dev": { - "phpunit/phpunit": "^7.1" + "phpunit/phpunit": "^9.3" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0.x-dev" + "dev-master": "3.0-dev" } }, "autoload": { @@ -4061,26 +5374,48 @@ "filesystem", "iterator" ], - "time": "2018-09-13T20:33:42+00:00" + "support": { + "issues": "https://github.com/sebastianbergmann/php-file-iterator/issues", + "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/3.0.5" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-09-28T05:57:25+00:00" }, { - "name": "phpunit/php-text-template", - "version": "1.2.1", + "name": "phpunit/php-invoker", + "version": "3.1.1", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/php-text-template.git", - "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686" + "url": "https://github.com/sebastianbergmann/php-invoker.git", + "reference": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/31f8b717e51d9a2afca6c9f046f5d69fc27c8686", - "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686", + "url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/5a10147d0aaf65b58940a0b72f71c9ac0423cc67", + "reference": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": ">=7.3" + }, + "require-dev": { + "ext-pcntl": "*", + "phpunit/phpunit": "^9.3" + }, + "suggest": { + "ext-pcntl": "*" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.1-dev" + } + }, "autoload": { "classmap": [ "src/" @@ -4097,37 +5432,47 @@ "role": "lead" } ], - "description": "Simple template engine.", - "homepage": "https://github.com/sebastianbergmann/php-text-template/", + "description": "Invoke callables with a timeout", + "homepage": "https://github.com/sebastianbergmann/php-invoker/", "keywords": [ - "template" + "process" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-invoker/issues", + "source": "https://github.com/sebastianbergmann/php-invoker/tree/3.1.1" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } ], - "time": "2015-06-21T13:50:34+00:00" + "time": "2020-09-28T05:58:55+00:00" }, { - "name": "phpunit/php-timer", - "version": "2.1.2", + "name": "phpunit/php-text-template", + "version": "2.0.4", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/php-timer.git", - "reference": "1038454804406b0b5f5f520358e78c1c2f71501e" + "url": "https://github.com/sebastianbergmann/php-text-template.git", + "reference": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/1038454804406b0b5f5f520358e78c1c2f71501e", - "reference": "1038454804406b0b5f5f520358e78c1c2f71501e", + "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28", + "reference": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28", "shasum": "" }, "require": { - "php": "^7.1" + "php": ">=7.3" }, "require-dev": { - "phpunit/phpunit": "^7.0" + "phpunit/phpunit": "^9.3" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.1-dev" + "dev-master": "2.0-dev" } }, "autoload": { @@ -4146,38 +5491,47 @@ "role": "lead" } ], - "description": "Utility class for timing", - "homepage": "https://github.com/sebastianbergmann/php-timer/", + "description": "Simple template engine.", + "homepage": "https://github.com/sebastianbergmann/php-text-template/", "keywords": [ - "timer" + "template" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-text-template/issues", + "source": "https://github.com/sebastianbergmann/php-text-template/tree/2.0.4" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } ], - "time": "2019-06-07T04:22:29+00:00" + "time": "2020-10-26T05:33:50+00:00" }, { - "name": "phpunit/php-token-stream", - "version": "3.1.1", + "name": "phpunit/php-timer", + "version": "5.0.3", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/php-token-stream.git", - "reference": "995192df77f63a59e47f025390d2d1fdf8f425ff" + "url": "https://github.com/sebastianbergmann/php-timer.git", + "reference": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/995192df77f63a59e47f025390d2d1fdf8f425ff", - "reference": "995192df77f63a59e47f025390d2d1fdf8f425ff", + "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2", + "reference": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2", "shasum": "" }, "require": { - "ext-tokenizer": "*", - "php": "^7.1" + "php": ">=7.3" }, "require-dev": { - "phpunit/phpunit": "^7.0" + "phpunit/phpunit": "^9.3" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.1-dev" + "dev-master": "5.0-dev" } }, "autoload": { @@ -4192,64 +5546,78 @@ "authors": [ { "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" + "email": "sebastian@phpunit.de", + "role": "lead" } ], - "description": "Wrapper around PHP's tokenizer extension.", - "homepage": "https://github.com/sebastianbergmann/php-token-stream/", + "description": "Utility class for timing", + "homepage": "https://github.com/sebastianbergmann/php-timer/", "keywords": [ - "tokenizer" + "timer" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-timer/issues", + "source": "https://github.com/sebastianbergmann/php-timer/tree/5.0.3" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } ], - "time": "2019-09-17T06:23:10+00:00" + "time": "2020-10-26T13:16:10+00:00" }, { "name": "phpunit/phpunit", - "version": "8.5.4", + "version": "9.5.4", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "8474e22d7d642f665084ba5ec780626cbd1efd23" + "reference": "c73c6737305e779771147af66c96ca6a7ed8a741" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/8474e22d7d642f665084ba5ec780626cbd1efd23", - "reference": "8474e22d7d642f665084ba5ec780626cbd1efd23", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/c73c6737305e779771147af66c96ca6a7ed8a741", + "reference": "c73c6737305e779771147af66c96ca6a7ed8a741", "shasum": "" }, "require": { - "doctrine/instantiator": "^1.2.0", + "doctrine/instantiator": "^1.3.1", "ext-dom": "*", "ext-json": "*", "ext-libxml": "*", "ext-mbstring": "*", "ext-xml": "*", "ext-xmlwriter": "*", - "myclabs/deep-copy": "^1.9.1", - "phar-io/manifest": "^1.0.3", - "phar-io/version": "^2.0.1", - "php": "^7.2", - "phpspec/prophecy": "^1.8.1", - "phpunit/php-code-coverage": "^7.0.7", - "phpunit/php-file-iterator": "^2.0.2", - "phpunit/php-text-template": "^1.2.1", - "phpunit/php-timer": "^2.1.2", - "sebastian/comparator": "^3.0.2", - "sebastian/diff": "^3.0.2", - "sebastian/environment": "^4.2.2", - "sebastian/exporter": "^3.1.1", - "sebastian/global-state": "^3.0.0", - "sebastian/object-enumerator": "^3.0.3", - "sebastian/resource-operations": "^2.0.1", - "sebastian/type": "^1.1.3", - "sebastian/version": "^2.0.1" + "myclabs/deep-copy": "^1.10.1", + "phar-io/manifest": "^2.0.1", + "phar-io/version": "^3.0.2", + "php": ">=7.3", + "phpspec/prophecy": "^1.12.1", + "phpunit/php-code-coverage": "^9.2.3", + "phpunit/php-file-iterator": "^3.0.5", + "phpunit/php-invoker": "^3.1.1", + "phpunit/php-text-template": "^2.0.3", + "phpunit/php-timer": "^5.0.2", + "sebastian/cli-parser": "^1.0.1", + "sebastian/code-unit": "^1.0.6", + "sebastian/comparator": "^4.0.5", + "sebastian/diff": "^4.0.3", + "sebastian/environment": "^5.1.3", + "sebastian/exporter": "^4.0.3", + "sebastian/global-state": "^5.0.1", + "sebastian/object-enumerator": "^4.0.3", + "sebastian/resource-operations": "^3.0.3", + "sebastian/type": "^2.3", + "sebastian/version": "^3.0.2" }, "require-dev": { - "ext-pdo": "*" + "ext-pdo": "*", + "phpspec/prophecy-phpunit": "^2.0.1" }, "suggest": { "ext-soap": "*", - "ext-xdebug": "*", - "phpunit/php-invoker": "^2.0.0" + "ext-xdebug": "*" }, "bin": [ "phpunit" @@ -4257,12 +5625,15 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "8.5-dev" + "dev-master": "9.5-dev" } }, "autoload": { "classmap": [ "src/" + ], + "files": [ + "src/Framework/Assert/Functions.php" ] }, "notification-url": "https://packagist.org/downloads/", @@ -4283,6 +5654,10 @@ "testing", "xunit" ], + "support": { + "issues": "https://github.com/sebastianbergmann/phpunit/issues", + "source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.4" + }, "funding": [ { "url": "https://phpunit.de/donate.html", @@ -4293,32 +5668,201 @@ "type": "github" } ], - "time": "2020-04-23T04:39:42+00:00" + "time": "2021-03-23T07:16:29+00:00" }, { - "name": "sebastian/code-unit-reverse-lookup", + "name": "sebastian/cli-parser", "version": "1.0.1", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git", - "reference": "4419fcdb5eabb9caa61a27c7a1db532a6b55dd18" + "url": "https://github.com/sebastianbergmann/cli-parser.git", + "reference": "442e7c7e687e42adc03470c7b668bc4b2402c0b2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/442e7c7e687e42adc03470c7b668bc4b2402c0b2", + "reference": "442e7c7e687e42adc03470c7b668bc4b2402c0b2", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library for parsing CLI options", + "homepage": "https://github.com/sebastianbergmann/cli-parser", + "support": { + "issues": "https://github.com/sebastianbergmann/cli-parser/issues", + "source": "https://github.com/sebastianbergmann/cli-parser/tree/1.0.1" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-09-28T06:08:49+00:00" + }, + { + "name": "sebastian/code-unit", + "version": "1.0.8", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/code-unit.git", + "reference": "1fc9f64c0927627ef78ba436c9b17d967e68e120" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/code-unit/zipball/1fc9f64c0927627ef78ba436c9b17d967e68e120", + "reference": "1fc9f64c0927627ef78ba436c9b17d967e68e120", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Collection of value objects that represent the PHP code units", + "homepage": "https://github.com/sebastianbergmann/code-unit", + "support": { + "issues": "https://github.com/sebastianbergmann/code-unit/issues", + "source": "https://github.com/sebastianbergmann/code-unit/tree/1.0.8" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T13:08:54+00:00" + }, + { + "name": "sebastian/code-unit-reverse-lookup", + "version": "2.0.3", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git", + "reference": "ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5", + "reference": "ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Looks up which function or method a line of code belongs to", + "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/", + "support": { + "issues": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/issues", + "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/2.0.3" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-09-28T05:30:19+00:00" + }, + { + "name": "sebastian/comparator", + "version": "4.0.6", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/comparator.git", + "reference": "55f4261989e546dc112258c7a75935a81a7ce382" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/4419fcdb5eabb9caa61a27c7a1db532a6b55dd18", - "reference": "4419fcdb5eabb9caa61a27c7a1db532a6b55dd18", + "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/55f4261989e546dc112258c7a75935a81a7ce382", + "reference": "55f4261989e546dc112258c7a75935a81a7ce382", "shasum": "" }, "require": { - "php": "^5.6 || ^7.0" + "php": ">=7.3", + "sebastian/diff": "^4.0", + "sebastian/exporter": "^4.0" }, "require-dev": { - "phpunit/phpunit": "^5.7 || ^6.0" + "phpunit/phpunit": "^9.3" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-master": "4.0-dev" } }, "autoload": { @@ -4334,38 +5878,64 @@ { "name": "Sebastian Bergmann", "email": "sebastian@phpunit.de" + }, + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Volker Dusch", + "email": "github@wallbash.com" + }, + { + "name": "Bernhard Schussek", + "email": "bschussek@2bepublished.at" } ], - "description": "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" + "description": "Provides the functionality to compare PHP values for equality", + "homepage": "https://github.com/sebastianbergmann/comparator", + "keywords": [ + "comparator", + "compare", + "equality" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/comparator/issues", + "source": "https://github.com/sebastianbergmann/comparator/tree/4.0.6" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T15:49:45+00:00" }, { - "name": "sebastian/comparator", - "version": "3.0.2", + "name": "sebastian/complexity", + "version": "2.0.2", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/comparator.git", - "reference": "5de4fc177adf9bce8df98d8d141a7559d7ccf6da" + "url": "https://github.com/sebastianbergmann/complexity.git", + "reference": "739b35e53379900cc9ac327b2147867b8b6efd88" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/5de4fc177adf9bce8df98d8d141a7559d7ccf6da", - "reference": "5de4fc177adf9bce8df98d8d141a7559d7ccf6da", + "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/739b35e53379900cc9ac327b2147867b8b6efd88", + "reference": "739b35e53379900cc9ac327b2147867b8b6efd88", "shasum": "" }, "require": { - "php": "^7.1", - "sebastian/diff": "^3.0", - "sebastian/exporter": "^3.1" + "nikic/php-parser": "^4.7", + "php": ">=7.3" }, "require-dev": { - "phpunit/phpunit": "^7.1" + "phpunit/phpunit": "^9.3" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0-dev" + "dev-master": "2.0-dev" } }, "autoload": { @@ -4378,57 +5948,51 @@ "BSD-3-Clause" ], "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" + "email": "sebastian@phpunit.de", + "role": "lead" } ], - "description": "Provides the functionality to compare PHP values for equality", - "homepage": "https://github.com/sebastianbergmann/comparator", - "keywords": [ - "comparator", - "compare", - "equality" + "description": "Library for calculating the complexity of PHP code units", + "homepage": "https://github.com/sebastianbergmann/complexity", + "support": { + "issues": "https://github.com/sebastianbergmann/complexity/issues", + "source": "https://github.com/sebastianbergmann/complexity/tree/2.0.2" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } ], - "time": "2018-07-12T15:12:46+00:00" + "time": "2020-10-26T15:52:27+00:00" }, { "name": "sebastian/diff", - "version": "3.0.2", + "version": "4.0.4", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/diff.git", - "reference": "720fcc7e9b5cf384ea68d9d930d480907a0c1a29" + "reference": "3461e3fccc7cfdfc2720be910d3bd73c69be590d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/720fcc7e9b5cf384ea68d9d930d480907a0c1a29", - "reference": "720fcc7e9b5cf384ea68d9d930d480907a0c1a29", + "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/3461e3fccc7cfdfc2720be910d3bd73c69be590d", + "reference": "3461e3fccc7cfdfc2720be910d3bd73c69be590d", "shasum": "" }, "require": { - "php": "^7.1" + "php": ">=7.3" }, "require-dev": { - "phpunit/phpunit": "^7.5 || ^8.0", - "symfony/process": "^2 || ^3.3 || ^4" + "phpunit/phpunit": "^9.3", + "symfony/process": "^4.2 || ^5" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0-dev" + "dev-master": "4.0-dev" } }, "autoload": { @@ -4441,13 +6005,13 @@ "BSD-3-Clause" ], "authors": [ - { - "name": "Kore Nordmann", - "email": "mail@kore-nordmann.de" - }, { "name": "Sebastian Bergmann", "email": "sebastian@phpunit.de" + }, + { + "name": "Kore Nordmann", + "email": "mail@kore-nordmann.de" } ], "description": "Diff implementation", @@ -4458,27 +6022,37 @@ "unidiff", "unified diff" ], - "time": "2019-02-04T06:01:07+00:00" + "support": { + "issues": "https://github.com/sebastianbergmann/diff/issues", + "source": "https://github.com/sebastianbergmann/diff/tree/4.0.4" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T13:10:38+00:00" }, { "name": "sebastian/environment", - "version": "4.2.3", + "version": "5.1.3", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/environment.git", - "reference": "464c90d7bdf5ad4e8a6aea15c091fec0603d4368" + "reference": "388b6ced16caa751030f6a69e588299fa09200ac" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/464c90d7bdf5ad4e8a6aea15c091fec0603d4368", - "reference": "464c90d7bdf5ad4e8a6aea15c091fec0603d4368", + "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/388b6ced16caa751030f6a69e588299fa09200ac", + "reference": "388b6ced16caa751030f6a69e588299fa09200ac", "shasum": "" }, "require": { - "php": "^7.1" + "php": ">=7.3" }, "require-dev": { - "phpunit/phpunit": "^7.5" + "phpunit/phpunit": "^9.3" }, "suggest": { "ext-posix": "*" @@ -4486,7 +6060,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "4.2-dev" + "dev-master": "5.1-dev" } }, "autoload": { @@ -4511,34 +6085,44 @@ "environment", "hhvm" ], - "time": "2019-11-20T08:46:58+00:00" + "support": { + "issues": "https://github.com/sebastianbergmann/environment/issues", + "source": "https://github.com/sebastianbergmann/environment/tree/5.1.3" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-09-28T05:52:38+00:00" }, { "name": "sebastian/exporter", - "version": "3.1.2", + "version": "4.0.3", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/exporter.git", - "reference": "68609e1261d215ea5b21b7987539cbfbe156ec3e" + "reference": "d89cc98761b8cb5a1a235a6b703ae50d34080e65" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/68609e1261d215ea5b21b7987539cbfbe156ec3e", - "reference": "68609e1261d215ea5b21b7987539cbfbe156ec3e", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/d89cc98761b8cb5a1a235a6b703ae50d34080e65", + "reference": "d89cc98761b8cb5a1a235a6b703ae50d34080e65", "shasum": "" }, "require": { - "php": "^7.0", - "sebastian/recursion-context": "^3.0" + "php": ">=7.3", + "sebastian/recursion-context": "^4.0" }, "require-dev": { "ext-mbstring": "*", - "phpunit/phpunit": "^6.0" + "phpunit/phpunit": "^9.3" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.1.x-dev" + "dev-master": "4.0-dev" } }, "autoload": { @@ -4578,30 +6162,40 @@ "export", "exporter" ], - "time": "2019-09-14T09:02:43+00:00" + "support": { + "issues": "https://github.com/sebastianbergmann/exporter/issues", + "source": "https://github.com/sebastianbergmann/exporter/tree/4.0.3" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-09-28T05:24:23+00:00" }, { "name": "sebastian/global-state", - "version": "3.0.0", + "version": "5.0.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/global-state.git", - "reference": "edf8a461cf1d4005f19fb0b6b8b95a9f7fa0adc4" + "reference": "a90ccbddffa067b51f574dea6eb25d5680839455" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/edf8a461cf1d4005f19fb0b6b8b95a9f7fa0adc4", - "reference": "edf8a461cf1d4005f19fb0b6b8b95a9f7fa0adc4", + "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/a90ccbddffa067b51f574dea6eb25d5680839455", + "reference": "a90ccbddffa067b51f574dea6eb25d5680839455", "shasum": "" }, "require": { - "php": "^7.2", - "sebastian/object-reflector": "^1.1.1", - "sebastian/recursion-context": "^3.0" + "php": ">=7.3", + "sebastian/object-reflector": "^2.0", + "sebastian/recursion-context": "^4.0" }, "require-dev": { "ext-dom": "*", - "phpunit/phpunit": "^8.0" + "phpunit/phpunit": "^9.3" }, "suggest": { "ext-uopz": "*" @@ -4609,7 +6203,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0-dev" + "dev-master": "5.0-dev" } }, "autoload": { @@ -4632,34 +6226,101 @@ "keywords": [ "global state" ], - "time": "2019-02-01T05:30:01+00:00" + "support": { + "issues": "https://github.com/sebastianbergmann/global-state/issues", + "source": "https://github.com/sebastianbergmann/global-state/tree/5.0.2" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T15:55:19+00:00" + }, + { + "name": "sebastian/lines-of-code", + "version": "1.0.3", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/lines-of-code.git", + "reference": "c1c2e997aa3146983ed888ad08b15470a2e22ecc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/c1c2e997aa3146983ed888ad08b15470a2e22ecc", + "reference": "c1c2e997aa3146983ed888ad08b15470a2e22ecc", + "shasum": "" + }, + "require": { + "nikic/php-parser": "^4.6", + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library for counting the lines of code in PHP source code", + "homepage": "https://github.com/sebastianbergmann/lines-of-code", + "support": { + "issues": "https://github.com/sebastianbergmann/lines-of-code/issues", + "source": "https://github.com/sebastianbergmann/lines-of-code/tree/1.0.3" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-11-28T06:42:11+00:00" }, { "name": "sebastian/object-enumerator", - "version": "3.0.3", + "version": "4.0.4", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/object-enumerator.git", - "reference": "7cfd9e65d11ffb5af41198476395774d4c8a84c5" + "reference": "5c9eeac41b290a3712d88851518825ad78f45c71" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/7cfd9e65d11ffb5af41198476395774d4c8a84c5", - "reference": "7cfd9e65d11ffb5af41198476395774d4c8a84c5", + "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/5c9eeac41b290a3712d88851518825ad78f45c71", + "reference": "5c9eeac41b290a3712d88851518825ad78f45c71", "shasum": "" }, "require": { - "php": "^7.0", - "sebastian/object-reflector": "^1.1.1", - "sebastian/recursion-context": "^3.0" + "php": ">=7.3", + "sebastian/object-reflector": "^2.0", + "sebastian/recursion-context": "^4.0" }, "require-dev": { - "phpunit/phpunit": "^6.0" + "phpunit/phpunit": "^9.3" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0.x-dev" + "dev-master": "4.0-dev" } }, "autoload": { @@ -4679,32 +6340,42 @@ ], "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" + "support": { + "issues": "https://github.com/sebastianbergmann/object-enumerator/issues", + "source": "https://github.com/sebastianbergmann/object-enumerator/tree/4.0.4" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T13:12:34+00:00" }, { "name": "sebastian/object-reflector", - "version": "1.1.1", + "version": "2.0.4", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/object-reflector.git", - "reference": "773f97c67f28de00d397be301821b06708fca0be" + "reference": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/773f97c67f28de00d397be301821b06708fca0be", - "reference": "773f97c67f28de00d397be301821b06708fca0be", + "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/b4f479ebdbf63ac605d183ece17d8d7fe49c15c7", + "reference": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7", "shasum": "" }, "require": { - "php": "^7.0" + "php": ">=7.3" }, "require-dev": { - "phpunit/phpunit": "^6.0" + "phpunit/phpunit": "^9.3" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.1-dev" + "dev-master": "2.0-dev" } }, "autoload": { @@ -4724,32 +6395,42 @@ ], "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" + "support": { + "issues": "https://github.com/sebastianbergmann/object-reflector/issues", + "source": "https://github.com/sebastianbergmann/object-reflector/tree/2.0.4" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T13:14:26+00:00" }, { "name": "sebastian/recursion-context", - "version": "3.0.0", + "version": "4.0.4", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/recursion-context.git", - "reference": "5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8" + "reference": "cd9d8cf3c5804de4341c283ed787f099f5506172" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8", - "reference": "5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8", + "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/cd9d8cf3c5804de4341c283ed787f099f5506172", + "reference": "cd9d8cf3c5804de4341c283ed787f099f5506172", "shasum": "" }, "require": { - "php": "^7.0" + "php": ">=7.3" }, "require-dev": { - "phpunit/phpunit": "^6.0" + "phpunit/phpunit": "^9.3" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0.x-dev" + "dev-master": "4.0-dev" } }, "autoload": { @@ -4762,14 +6443,14 @@ "BSD-3-Clause" ], "authors": [ - { - "name": "Jeff Welch", - "email": "whatthejeff@gmail.com" - }, { "name": "Sebastian Bergmann", "email": "sebastian@phpunit.de" }, + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, { "name": "Adam Harvey", "email": "aharvey@php.net" @@ -4777,29 +6458,42 @@ ], "description": "Provides functionality to recursively process PHP variables", "homepage": "http://www.github.com/sebastianbergmann/recursion-context", - "time": "2017-03-03T06:23:57+00:00" + "support": { + "issues": "https://github.com/sebastianbergmann/recursion-context/issues", + "source": "https://github.com/sebastianbergmann/recursion-context/tree/4.0.4" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T13:17:30+00:00" }, { "name": "sebastian/resource-operations", - "version": "2.0.1", + "version": "3.0.3", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/resource-operations.git", - "reference": "4d7a795d35b889bf80a0cc04e08d77cedfa917a9" + "reference": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/4d7a795d35b889bf80a0cc04e08d77cedfa917a9", - "reference": "4d7a795d35b889bf80a0cc04e08d77cedfa917a9", + "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8", + "reference": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8", "shasum": "" }, "require": { - "php": "^7.1" + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0-dev" + "dev-master": "3.0-dev" } }, "autoload": { @@ -4819,32 +6513,42 @@ ], "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" + "support": { + "issues": "https://github.com/sebastianbergmann/resource-operations/issues", + "source": "https://github.com/sebastianbergmann/resource-operations/tree/3.0.3" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-09-28T06:45:17+00:00" }, { "name": "sebastian/type", - "version": "1.1.3", + "version": "2.3.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/type.git", - "reference": "3aaaa15fa71d27650d62a948be022fe3b48541a3" + "reference": "81cd61ab7bbf2de744aba0ea61fae32f721df3d2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/3aaaa15fa71d27650d62a948be022fe3b48541a3", - "reference": "3aaaa15fa71d27650d62a948be022fe3b48541a3", + "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/81cd61ab7bbf2de744aba0ea61fae32f721df3d2", + "reference": "81cd61ab7bbf2de744aba0ea61fae32f721df3d2", "shasum": "" }, "require": { - "php": "^7.2" + "php": ">=7.3" }, "require-dev": { - "phpunit/phpunit": "^8.2" + "phpunit/phpunit": "^9.3" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.1-dev" + "dev-master": "2.3-dev" } }, "autoload": { @@ -4865,29 +6569,39 @@ ], "description": "Collection of value objects that represent the types of the PHP type system", "homepage": "https://github.com/sebastianbergmann/type", - "time": "2019-07-02T08:10:15+00:00" + "support": { + "issues": "https://github.com/sebastianbergmann/type/issues", + "source": "https://github.com/sebastianbergmann/type/tree/2.3.1" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T13:18:59+00:00" }, { "name": "sebastian/version", - "version": "2.0.1", + "version": "3.0.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/version.git", - "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019" + "reference": "c6c1022351a901512170118436c764e473f6de8c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/99732be0ddb3361e16ad77b68ba41efc8e979019", - "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019", + "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/c6c1022351a901512170118436c764e473f6de8c", + "reference": "c6c1022351a901512170118436c764e473f6de8c", "shasum": "" }, "require": { - "php": ">=5.6" + "php": ">=7.3" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0.x-dev" + "dev-master": "3.0-dev" } }, "autoload": { @@ -4908,27 +6622,37 @@ ], "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" + "support": { + "issues": "https://github.com/sebastianbergmann/version/issues", + "source": "https://github.com/sebastianbergmann/version/tree/3.0.2" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-09-28T06:39:44+00:00" }, { "name": "theseer/tokenizer", - "version": "1.1.3", + "version": "1.2.0", "source": { "type": "git", "url": "https://github.com/theseer/tokenizer.git", - "reference": "11336f6f84e16a720dae9d8e6ed5019efa85a0f9" + "reference": "75a63c33a8577608444246075ea0af0d052e452a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/theseer/tokenizer/zipball/11336f6f84e16a720dae9d8e6ed5019efa85a0f9", - "reference": "11336f6f84e16a720dae9d8e6ed5019efa85a0f9", + "url": "https://api.github.com/repos/theseer/tokenizer/zipball/75a63c33a8577608444246075ea0af0d052e452a", + "reference": "75a63c33a8577608444246075ea0af0d052e452a", "shasum": "" }, "require": { "ext-dom": "*", "ext-tokenizer": "*", "ext-xmlwriter": "*", - "php": "^7.0" + "php": "^7.2 || ^8.0" }, "type": "library", "autoload": { @@ -4948,55 +6672,17 @@ } ], "description": "A small library for converting tokenized PHP source code into XML and potentially other formats", - "time": "2019-06-13T22:48:21+00:00" - }, - { - "name": "webmozart/assert", - "version": "1.8.0", - "source": { - "type": "git", - "url": "https://github.com/webmozart/assert.git", - "reference": "ab2cb0b3b559010b75981b1bdce728da3ee90ad6" + "support": { + "issues": "https://github.com/theseer/tokenizer/issues", + "source": "https://github.com/theseer/tokenizer/tree/master" }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/webmozart/assert/zipball/ab2cb0b3b559010b75981b1bdce728da3ee90ad6", - "reference": "ab2cb0b3b559010b75981b1bdce728da3ee90ad6", - "shasum": "" - }, - "require": { - "php": "^5.3.3 || ^7.0", - "symfony/polyfill-ctype": "^1.8" - }, - "conflict": { - "vimeo/psalm": "<3.9.1" - }, - "require-dev": { - "phpunit/phpunit": "^4.8.36 || ^7.5.13" - }, - "type": "library", - "autoload": { - "psr-4": { - "Webmozart\\Assert\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ + "funding": [ { - "name": "Bernhard Schussek", - "email": "bschussek@gmail.com" + "url": "https://github.com/theseer", + "type": "github" } ], - "description": "Assertions to validate method input/output with nice error messages.", - "keywords": [ - "assert", - "check", - "validate" - ], - "time": "2020-04-18T12:12:48+00:00" + "time": "2020-07-12T23:59:07+00:00" } ], "aliases": [], @@ -5005,8 +6691,8 @@ "prefer-stable": true, "prefer-lowest": false, "platform": { - "php": "^7.2.5" + "php": "^7.4" }, "platform-dev": [], - "plugin-api-version": "1.1.0" + "plugin-api-version": "2.0.0" } diff --git a/docker-support/netsells b/docker-support/netsells new file mode 100755 index 0000000..d0cda19 --- /dev/null +++ b/docker-support/netsells @@ -0,0 +1,39 @@ +#!/usr/bin/env bash + +IMAGE="netsells-cli" +VERSION="1" + +DOCKER_IMAGE="$IMAGE:$VERSION" + +error(){ + error_code=$1 + echo "ERROR: $2" >&2 + exit $1 +} + +# Check for docker +which docker > /dev/null 2>&1 || error 1 "docker not found!" + +if [[ $1 == "self-update" ]] +then + docker pull $DOCKER_IMAGE + + docker run \ + --rm \ + --init \ + --entrypoint=/bin/cat \ + $DOCKER_IMAGE \ + /usr/local/bin/netsells-wrapper > $0 + + exit 0 +fi + +exec docker run \ + --rm \ + --init \ + -it \ + -v $(pwd):/app \ + -v ~/.ssh:/root/.ssh \ + -v ~/.aws:/root/.aws \ + -v /var/run/docker.sock:/var/run/docker.sock \ + $DOCKER_IMAGE "$@" diff --git a/hooks/build b/hooks/build new file mode 100644 index 0000000..c6ea0c2 --- /dev/null +++ b/hooks/build @@ -0,0 +1,3 @@ +#!/bin/bash + +docker build --build-arg DOCKER_TAG=$DOCKER_TAG -f $DOCKERFILE_PATH -t $IMAGE_NAME . From ab75c70f82d5d872f6c86aa02b4e07f61034ab42 Mon Sep 17 00:00:00 2001 From: Sam Jordan Date: Tue, 18 May 2021 15:15:00 +0100 Subject: [PATCH 02/26] Pointing CLI to docker wrapper --- docker-support/netsells | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docker-support/netsells b/docker-support/netsells index d0cda19..a1ba07e 100755 --- a/docker-support/netsells +++ b/docker-support/netsells @@ -1,7 +1,7 @@ #!/usr/bin/env bash -IMAGE="netsells-cli" -VERSION="1" +IMAGE="netsells/cli" +VERSION="dev-docker-wrapper" DOCKER_IMAGE="$IMAGE:$VERSION" From d6579ab10982b3b0dbebf477dfb8281a2133c7d1 Mon Sep 17 00:00:00 2001 From: Sam Jordan Date: Thu, 20 May 2021 10:59:26 +0100 Subject: [PATCH 03/26] Fixes bug introduced by pulling docker compose in --- Dockerfile | 4 +--- app/Commands/AwsSsmConnect.php | 5 ++--- app/Commands/DeployEcsServiceUpdate.php | 6 +++--- app/Commands/DockerBuildCommand.php | 5 +++-- app/Commands/DockerPushCommand.php | 15 ++++++++++++--- hooks/build | 0 6 files changed, 21 insertions(+), 14 deletions(-) mode change 100644 => 100755 hooks/build diff --git a/Dockerfile b/Dockerfile index 5d1bc8e..2775f48 100644 --- a/Dockerfile +++ b/Dockerfile @@ -42,9 +42,7 @@ COPY ./docker-support/netsells /usr/local/bin/netsells-wrapper RUN apt-get update && apt-get install -y \ unzip \ git \ - docker.io \ - docker-compose -# docker-compose is now in docker binary, but we'll install it for now until netsells CLI is updated + docker.io # AWS CLI RUN curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip" && unzip awscliv2.zip && ./aws/install && rm awscliv2.zip diff --git a/app/Commands/AwsSsmConnect.php b/app/Commands/AwsSsmConnect.php index 1cd2808..9e059d6 100644 --- a/app/Commands/AwsSsmConnect.php +++ b/app/Commands/AwsSsmConnect.php @@ -95,7 +95,7 @@ public function handle() $sessionCommandString = implode(' ', $sessionCommand->getArguments()); $options = [ - '-o', 'IdentityFile ~/.ssh/netsells-cli-ssm-ssh-tmp', + '-o', 'IdentityFile /root/netsells-cli-ssm-ssh-tmp', '-o', 'IdentitiesOnly yes', '-o', 'GSSAPIAuthentication no', '-o', 'PasswordAuthentication no', @@ -215,8 +215,7 @@ private function generateTempSshKey() return 1; } - $sshDir = $_SERVER['HOME'] . '/.ssh/'; - $keyName = $sshDir . $this->tempKeyName; + $keyName = '/root/' . $this->tempKeyName; $pubKeyName = "{$keyName}.pub"; if (file_exists($keyName)) { diff --git a/app/Commands/DeployEcsServiceUpdate.php b/app/Commands/DeployEcsServiceUpdate.php index fafc21f..6ad7f1c 100644 --- a/app/Commands/DeployEcsServiceUpdate.php +++ b/app/Commands/DeployEcsServiceUpdate.php @@ -60,7 +60,7 @@ public function configure() */ public function handle() { - $requiredBinaries = ['aws', 'docker-compose']; + $requiredBinaries = ['aws', 'docker']; if ($this->helpers->checks()->checkAndReportMissingBinaries($this, $requiredBinaries)) { return 1; @@ -230,7 +230,7 @@ protected function gatherTargetImages(): array try { $dockerComposeConfig = Yaml::parse($dockerComposeYml); } catch (ParseException $exception) { - $this->error("Failed to parse yml from docker-compose output."); + $this->error("Failed to parse yml from docker compose output."); return []; } @@ -272,7 +272,7 @@ protected function getDockerComposeConfigYml(): ?string { try { return $this->helpers->process()->withCommand([ - 'docker-compose', + 'docker', 'compose', '-f', 'docker-compose.yml', '-f', 'docker-compose.prod.yml', '--log-level', 'ERROR', diff --git a/app/Commands/DockerBuildCommand.php b/app/Commands/DockerBuildCommand.php index aabc8b8..cac6506 100644 --- a/app/Commands/DockerBuildCommand.php +++ b/app/Commands/DockerBuildCommand.php @@ -39,6 +39,7 @@ public function configure() $this->setDefinition(array_merge([ new InputOption('tag', null, InputOption::VALUE_OPTIONAL, 'The tag that should be built with the images. Defaults to the current commit SHA'), new InputOption('service', null, InputOption::VALUE_OPTIONAL | InputOption::VALUE_IS_ARRAY, 'The service that should be built. Not defining this will push all services'), + new InputOption('environment', null, InputOption::VALUE_OPTIONAL, 'The environment to look for the image urls', 'prod'), ], $this->helpers->aws()->commonConsoleOptions())); } @@ -49,7 +50,7 @@ public function configure() */ public function handle() { - $requiredBinaries = ['docker', 'docker-compose']; + $requiredBinaries = ['docker']; if ($this->helpers->checks()->checkAndReportMissingBinaries($this, $requiredBinaries)) { return 1; @@ -96,7 +97,7 @@ protected function callBuild(string $tag, string $service = null): bool { try { $this->helpers->process()->withCommand([ - 'docker-compose', + 'docker', 'compose', '-f', 'docker-compose.yml', '-f', 'docker-compose.prod.yml', 'build', '--no-cache', $service diff --git a/app/Commands/DockerPushCommand.php b/app/Commands/DockerPushCommand.php index 2b4021a..a097ffe 100644 --- a/app/Commands/DockerPushCommand.php +++ b/app/Commands/DockerPushCommand.php @@ -39,6 +39,7 @@ public function configure() $this->setDefinition(array_merge([ new InputOption('tag', null, InputOption::VALUE_OPTIONAL, 'The tag that should be built with the images. Defaults to the current commit SHA'), new InputOption('service', null, InputOption::VALUE_OPTIONAL | InputOption::VALUE_IS_ARRAY, 'The service that should be pushed. Not defining this will push all services'), + new InputOption('environment', null, InputOption::VALUE_OPTIONAL, 'The environment to look for the image urls', 'prod'), ], $this->helpers->aws()->commonConsoleOptions())); } @@ -49,13 +50,16 @@ public function configure() */ public function handle() { - $requiredBinaries = ['docker', 'docker-compose', 'aws']; + $requiredBinaries = ['docker', 'aws']; if ($this->helpers->checks()->checkAndReportMissingBinaries($this, $requiredBinaries)) { return 1; } - $requiredFiles = ['docker-compose.yml', 'docker-compose.prod.yml']; + $environmentFile = $this->envDockerComposeFileName($this->option('environment')); + + $this->line("Taking docker repository URLs from {$environmentFile}"); + $requiredFiles = ['docker-compose.yml', $environmentFile]; if ($this->helpers->checks()->checkAndReportMissingFiles($this, $requiredFiles)) { return 1; @@ -96,7 +100,7 @@ protected function callPush(string $tag, string $service = null): bool { try { $this->helpers->process()->withCommand([ - 'docker-compose', + 'docker', 'compose', '-f', 'docker-compose.yml', '-f', 'docker-compose.prod.yml', 'push', $service @@ -112,4 +116,9 @@ protected function callPush(string $tag, string $service = null): bool return true; } + + protected function envDockerComposeFileName(string $environment): string + { + return "docker-compose.{$environment}.yml"; + } } diff --git a/hooks/build b/hooks/build old mode 100644 new mode 100755 From 5891bd911a6532f9b9047c095933c7c8f84c85a8 Mon Sep 17 00:00:00 2001 From: Sam Jordan Date: Thu, 20 May 2021 11:24:23 +0100 Subject: [PATCH 04/26] Improves shell script to allow for better updating --- docker-support/netsells | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docker-support/netsells b/docker-support/netsells index a1ba07e..1959673 100755 --- a/docker-support/netsells +++ b/docker-support/netsells @@ -7,23 +7,23 @@ DOCKER_IMAGE="$IMAGE:$VERSION" error(){ error_code=$1 - echo "ERROR: $2" >&2 + echo "We had a problem! $2" >&2 exit $1 } # Check for docker -which docker > /dev/null 2>&1 || error 1 "docker not found!" +which docker > /dev/null 2>&1 || error 1 "🐳 Docker was not found! Please install it and try again." if [[ $1 == "self-update" ]] then docker pull $DOCKER_IMAGE - docker run \ + sudo sh -c "docker run \ --rm \ --init \ --entrypoint=/bin/cat \ $DOCKER_IMAGE \ - /usr/local/bin/netsells-wrapper > $0 + /usr/local/bin/netsells-wrapper > $0" exit 0 fi From 5a0333569012b95b961bcd3028bd67d379cf5b55 Mon Sep 17 00:00:00 2001 From: Sam Jordan Date: Thu, 20 May 2021 11:27:34 +0100 Subject: [PATCH 05/26] Better self-update text --- docker-support/netsells | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docker-support/netsells b/docker-support/netsells index 1959673..d588538 100755 --- a/docker-support/netsells +++ b/docker-support/netsells @@ -16,8 +16,10 @@ which docker > /dev/null 2>&1 || error 1 "🐳 Docker was not found! Please inst if [[ $1 == "self-update" ]] then + echo -e "\033[0;31mUpdating CLI docker image...\033[0m" docker pull $DOCKER_IMAGE + echo -e "\033[0;31mUpdating CLI wrapper...\033[0m" sudo sh -c "docker run \ --rm \ --init \ @@ -25,6 +27,8 @@ then $DOCKER_IMAGE \ /usr/local/bin/netsells-wrapper > $0" + echo -e "\033[0;31mDone!\033[0m" + exit 0 fi From 25a6ea5eb658aa0660e29a4e8f216eec725ad138 Mon Sep 17 00:00:00 2001 From: Sam Jordan Date: Thu, 20 May 2021 11:30:08 +0100 Subject: [PATCH 06/26] Moving aws to readonly and removes ssh --- docker-support/netsells | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/docker-support/netsells b/docker-support/netsells index d588538..44d45a4 100755 --- a/docker-support/netsells +++ b/docker-support/netsells @@ -37,7 +37,6 @@ exec docker run \ --init \ -it \ -v $(pwd):/app \ - -v ~/.ssh:/root/.ssh \ - -v ~/.aws:/root/.aws \ + -v ~/.aws:/root/.aws:ro \ -v /var/run/docker.sock:/var/run/docker.sock \ $DOCKER_IMAGE "$@" From 5b3db23215cee93bbb66d5a3bd738ff6a772ef38 Mon Sep 17 00:00:00 2001 From: Sam Jordan Date: Thu, 20 May 2021 11:39:37 +0100 Subject: [PATCH 07/26] Using system temp directory so we're still compatible with desktop users --- app/Commands/AwsSsmConnect.php | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/app/Commands/AwsSsmConnect.php b/app/Commands/AwsSsmConnect.php index 9e059d6..22b2682 100644 --- a/app/Commands/AwsSsmConnect.php +++ b/app/Commands/AwsSsmConnect.php @@ -25,7 +25,7 @@ class AwsSsmConnect extends Command */ protected $description = 'Connect to an server via SSH (Use --tunnel to establish an SSH tunnel)'; - protected $tempKeyName = 'netsells-cli-ssm-ssh-tmp'; + protected $tempKeyName; /** @var Helpers $helpers */ protected $helpers; @@ -48,6 +48,15 @@ public function configure() ], $this->helpers->aws()->commonConsoleOptions())); } + private function tempIdentityFile(): string + { + if (!$this->tempKeyName) { + $this->tempKeyName = tempnam(sys_get_temp_dir(), 'NetsellsCliSsm'); + } + + return $this->tempKeyName; + } + /** * Execute the console command. * @@ -95,7 +104,7 @@ public function handle() $sessionCommandString = implode(' ', $sessionCommand->getArguments()); $options = [ - '-o', 'IdentityFile /root/netsells-cli-ssm-ssh-tmp', + '-o', 'IdentityFile ' . $this->tempIdentityFile(), '-o', 'IdentitiesOnly yes', '-o', 'GSSAPIAuthentication no', '-o', 'PasswordAuthentication no', @@ -215,7 +224,7 @@ private function generateTempSshKey() return 1; } - $keyName = '/root/' . $this->tempKeyName; + $keyName = $this->tempIdentityFile(); $pubKeyName = "{$keyName}.pub"; if (file_exists($keyName)) { @@ -233,7 +242,7 @@ private function generateTempSshKey() '-t', 'ed25519', '-N', "", '-f', $keyName, - '-C', "netsells-cli-ssm-ssh-session" + '-C', $this->tempIdentityFile() ]) ->run(); } catch (ProcessFailed $e) { From 73fe766b02fc4490576cf7eb0926d7de32df4878 Mon Sep 17 00:00:00 2001 From: Sam Jordan Date: Thu, 20 May 2021 11:43:26 +0100 Subject: [PATCH 08/26] Removes bleed commit from other work --- app/Commands/DockerBuildCommand.php | 1 - app/Commands/DockerPushCommand.php | 6 +----- 2 files changed, 1 insertion(+), 6 deletions(-) diff --git a/app/Commands/DockerBuildCommand.php b/app/Commands/DockerBuildCommand.php index cac6506..8811c09 100644 --- a/app/Commands/DockerBuildCommand.php +++ b/app/Commands/DockerBuildCommand.php @@ -39,7 +39,6 @@ public function configure() $this->setDefinition(array_merge([ new InputOption('tag', null, InputOption::VALUE_OPTIONAL, 'The tag that should be built with the images. Defaults to the current commit SHA'), new InputOption('service', null, InputOption::VALUE_OPTIONAL | InputOption::VALUE_IS_ARRAY, 'The service that should be built. Not defining this will push all services'), - new InputOption('environment', null, InputOption::VALUE_OPTIONAL, 'The environment to look for the image urls', 'prod'), ], $this->helpers->aws()->commonConsoleOptions())); } diff --git a/app/Commands/DockerPushCommand.php b/app/Commands/DockerPushCommand.php index a097ffe..da8caf0 100644 --- a/app/Commands/DockerPushCommand.php +++ b/app/Commands/DockerPushCommand.php @@ -39,7 +39,6 @@ public function configure() $this->setDefinition(array_merge([ new InputOption('tag', null, InputOption::VALUE_OPTIONAL, 'The tag that should be built with the images. Defaults to the current commit SHA'), new InputOption('service', null, InputOption::VALUE_OPTIONAL | InputOption::VALUE_IS_ARRAY, 'The service that should be pushed. Not defining this will push all services'), - new InputOption('environment', null, InputOption::VALUE_OPTIONAL, 'The environment to look for the image urls', 'prod'), ], $this->helpers->aws()->commonConsoleOptions())); } @@ -56,10 +55,7 @@ public function handle() return 1; } - $environmentFile = $this->envDockerComposeFileName($this->option('environment')); - - $this->line("Taking docker repository URLs from {$environmentFile}"); - $requiredFiles = ['docker-compose.yml', $environmentFile]; + $requiredFiles = ['docker-compose.yml', 'docker-compose.prod.yml']; if ($this->helpers->checks()->checkAndReportMissingFiles($this, $requiredFiles)) { return 1; From 19062e135d0e83b13a0b55bb1d9c81be1a8ab906 Mon Sep 17 00:00:00 2001 From: Sam Jordan Date: Thu, 20 May 2021 11:52:25 +0100 Subject: [PATCH 09/26] Ensuring the wrapper uses latest --- docker-support/netsells | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-support/netsells b/docker-support/netsells index 44d45a4..9259747 100755 --- a/docker-support/netsells +++ b/docker-support/netsells @@ -1,7 +1,7 @@ #!/usr/bin/env bash IMAGE="netsells/cli" -VERSION="dev-docker-wrapper" +VERSION="latest" DOCKER_IMAGE="$IMAGE:$VERSION" From 41b12f2e198aa9d3c66c29cfacee055d094e5d32 Mon Sep 17 00:00:00 2001 From: Sam Jordan Date: Fri, 21 May 2021 08:25:06 +0100 Subject: [PATCH 10/26] Further WIP bleeding! --- app/Commands/DockerPushCommand.php | 5 ----- 1 file changed, 5 deletions(-) diff --git a/app/Commands/DockerPushCommand.php b/app/Commands/DockerPushCommand.php index da8caf0..875f755 100644 --- a/app/Commands/DockerPushCommand.php +++ b/app/Commands/DockerPushCommand.php @@ -112,9 +112,4 @@ protected function callPush(string $tag, string $service = null): bool return true; } - - protected function envDockerComposeFileName(string $environment): string - { - return "docker-compose.{$environment}.yml"; - } } From 60235f2db572ffa37882ed5c2a1b3b5b115f2576 Mon Sep 17 00:00:00 2001 From: Sam Jordan Date: Fri, 21 May 2021 08:27:14 +0100 Subject: [PATCH 11/26] Adds more directories to dockerignore --- .dockerignore | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.dockerignore b/.dockerignore index 48b8bf9..d8e99dd 100644 --- a/.dockerignore +++ b/.dockerignore @@ -1 +1,4 @@ vendor/ +.git/ +.vscode/ +.idea/ From 2cfef32ee86d72642ffc4e3876b9c1065b077abf Mon Sep 17 00:00:00 2001 From: Sam Jordan Date: Fri, 21 May 2021 08:27:44 +0100 Subject: [PATCH 12/26] More consistent naming --- app/Commands/AwsSsmConnect.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/app/Commands/AwsSsmConnect.php b/app/Commands/AwsSsmConnect.php index 22b2682..4ff16ce 100644 --- a/app/Commands/AwsSsmConnect.php +++ b/app/Commands/AwsSsmConnect.php @@ -25,7 +25,7 @@ class AwsSsmConnect extends Command */ protected $description = 'Connect to an server via SSH (Use --tunnel to establish an SSH tunnel)'; - protected $tempKeyName; + protected $tempIdentityFile; /** @var Helpers $helpers */ protected $helpers; @@ -50,11 +50,11 @@ public function configure() private function tempIdentityFile(): string { - if (!$this->tempKeyName) { - $this->tempKeyName = tempnam(sys_get_temp_dir(), 'NetsellsCliSsm'); + if (!$this->tempIdentityFile) { + $this->tempIdentityFile = tempnam(sys_get_temp_dir(), 'NetsellsCliSsm'); } - return $this->tempKeyName; + return $this->tempIdentityFile; } /** From 524b9802ae76c4e2d4aaadaf4af0cbefc2219283 Mon Sep 17 00:00:00 2001 From: Sam Jordan Date: Fri, 21 May 2021 08:28:17 +0100 Subject: [PATCH 13/26] Update app/Commands/AwsSsmConnect.php Co-authored-by: Jakub Gawron --- app/Commands/AwsSsmConnect.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Commands/AwsSsmConnect.php b/app/Commands/AwsSsmConnect.php index 4ff16ce..744a373 100644 --- a/app/Commands/AwsSsmConnect.php +++ b/app/Commands/AwsSsmConnect.php @@ -240,7 +240,7 @@ private function generateTempSshKey() ->withCommand([ 'ssh-keygen', '-t', 'ed25519', - '-N', "", + '-N', '', '-f', $keyName, '-C', $this->tempIdentityFile() ]) From bd817a84fb95e741eaa61c957948f819b2315ef7 Mon Sep 17 00:00:00 2001 From: Sam Jordan Date: Fri, 21 May 2021 14:42:32 +0100 Subject: [PATCH 14/26] Adds support for SSH tunnels and switches wrapper to sh --- app/Commands/AwsSsmConnect.php | 2 +- docker-support/netsells | 114 +++++++++++++++++++++++++++++---- 2 files changed, 101 insertions(+), 15 deletions(-) diff --git a/app/Commands/AwsSsmConnect.php b/app/Commands/AwsSsmConnect.php index 4ff16ce..74d53e9 100644 --- a/app/Commands/AwsSsmConnect.php +++ b/app/Commands/AwsSsmConnect.php @@ -120,7 +120,7 @@ public function handle() $options[] = '-N'; $options[] = '-L'; - $options[] = sprintf('%s:%s:%s', $tunnelLocalPort, $tunnelRemoteServer, $tunnelRemotePort); + $options[] = sprintf('0.0.0.0:%s:%s:%s', $tunnelLocalPort, $tunnelRemoteServer, $tunnelRemotePort); $rebuildOptions = $this->appendResolvedArgument($rebuildOptions, 'tunnel-remote-server', $tunnelRemoteServer); $rebuildOptions = $this->appendResolvedArgument($rebuildOptions, 'tunnel-remote-port', $tunnelRemotePort); diff --git a/docker-support/netsells b/docker-support/netsells index 9259747..c4a9efe 100755 --- a/docker-support/netsells +++ b/docker-support/netsells @@ -1,10 +1,81 @@ -#!/usr/bin/env bash +#!/bin/sh + +set -e IMAGE="netsells/cli" VERSION="latest" DOCKER_IMAGE="$IMAGE:$VERSION" + +# For the below options parser, use `gengetoptions embed --overwrite docker-support/netsells` to generate it. +# Delete the lines (`[-]?*) set "unknown" "$1"; break ;;`, `echo "$1" >&2` and `exit 1`) at the end of the error case to allow for bad arg pass-through +# to our CLI that handles it's own commands + +# @getoptions +parser_definition() { + setup REST help:usage -- "Usage: netsells [options]... [arguments]..." '' + msg -- 'Options:' + param TUNNEL_LOCAL_PORT --tunnel-local-port -- "The local port to tunnel to" +} +# @end + +# @gengetoptions parser -i parser_definition parse +# Generated by getoptions (BEGIN) +# URL: https://github.com/ko1nksm/getoptions (v3.3.0) +TUNNEL_LOCAL_PORT='' +REST='' +parse() { + OPTIND=$(($#+1)) + while OPTARG= && [ $# -gt 0 ]; do + case $1 in + --?*=*) OPTARG=$1; shift + eval 'set -- "${OPTARG%%\=*}" "${OPTARG#*\=}"' ${1+'"$@"'} + ;; + --no-*|--without-*) unset OPTARG ;; + esac + case $1 in + '--tunnel-local-port') + [ $# -le 1 ] && set "required" "$1" && break + OPTARG=$2 + TUNNEL_LOCAL_PORT="$OPTARG" + shift ;; + --) + shift + while [ $# -gt 0 ]; do + REST="${REST} \"\${$(($OPTIND-$#))}\"" + shift + done + break ;; + *) + REST="${REST} \"\${$(($OPTIND-$#))}\"" + esac + shift + done + [ $# -eq 0 ] && { OPTIND=1; unset OPTARG; return 0; } + case $1 in + unknown) set "Unrecognized option: $2" "$@" ;; + noarg) set "Does not allow an argument: $2" "$@" ;; + required) set "Requires an argument: $2" "$@" ;; + pattern:*) set "Does not match the pattern (${1#*:}): $2" "$@" ;; + notcmd) set "Not a command: $2" "$@" ;; + *) set "Validation error ($1): $2" "$@" + esac +} +usage() { +cat<<'GETOPTIONSHERE' +Usage: netsells [options]... [arguments]... + +Options: + --tunnel-local-port TUNNEL_LOCAL_PORT + The local port to tunnel to +GETOPTIONSHERE +} +# Generated by getoptions (END) +# @end + +parse "$@" + error(){ error_code=$1 echo "We had a problem! $2" >&2 @@ -16,27 +87,42 @@ which docker > /dev/null 2>&1 || error 1 "🐳 Docker was not found! Please inst if [[ $1 == "self-update" ]] then - echo -e "\033[0;31mUpdating CLI docker image...\033[0m" + echo "\033[0;31mUpdating CLI docker image...\033[0m" docker pull $DOCKER_IMAGE - echo -e "\033[0;31mUpdating CLI wrapper...\033[0m" - sudo sh -c "docker run \ + echo "\033[0;31mUpdating CLI wrapper...\033[0m" + docker run \ --rm \ --init \ --entrypoint=/bin/cat \ $DOCKER_IMAGE \ - /usr/local/bin/netsells-wrapper > $0" + /usr/local/bin/netsells-wrapper > $0 - echo -e "\033[0;31mDone!\033[0m" + echo "\033[0;31mDone!\033[0m" exit 0 fi -exec docker run \ - --rm \ - --init \ - -it \ - -v $(pwd):/app \ - -v ~/.aws:/root/.aws:ro \ - -v /var/run/docker.sock:/var/run/docker.sock \ - $DOCKER_IMAGE "$@" +if [[ $TUNNEL_LOCAL_PORT ]] +then + exec docker run \ + --rm \ + --init \ + -it \ + -p $TUNNEL_LOCAL_PORT:$TUNNEL_LOCAL_PORT \ + -v sshvol:/root/.ssh \ + -v $(pwd):/app \ + -v ~/.aws:/root/.aws:ro \ + -v /var/run/docker.sock:/var/run/docker.sock \ + $DOCKER_IMAGE "$@" +else + exec docker run \ + --rm \ + --init \ + -it \ + -v sshvol:/root/.ssh \ # Persist the .ssh folder so we keep the known_hosts file + -v $(pwd):/app \ + -v ~/.aws:/root/.aws:ro \ + -v /var/run/docker.sock:/var/run/docker.sock \ + $DOCKER_IMAGE "$@" +fi From 55a67a08692a207a0a6312520a77d3ac9294006a Mon Sep 17 00:00:00 2001 From: Sam Jordan Date: Fri, 21 May 2021 14:47:22 +0100 Subject: [PATCH 15/26] Reverts to docker-compose --- app/Commands/DeployEcsServiceUpdate.php | 6 +++--- app/Commands/DockerBuildCommand.php | 4 ++-- app/Commands/DockerPushCommand.php | 4 ++-- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/app/Commands/DeployEcsServiceUpdate.php b/app/Commands/DeployEcsServiceUpdate.php index 6ad7f1c..e1d942f 100644 --- a/app/Commands/DeployEcsServiceUpdate.php +++ b/app/Commands/DeployEcsServiceUpdate.php @@ -60,7 +60,7 @@ public function configure() */ public function handle() { - $requiredBinaries = ['aws', 'docker']; + $requiredBinaries = ['aws', 'docker', 'docker-compose']; if ($this->helpers->checks()->checkAndReportMissingBinaries($this, $requiredBinaries)) { return 1; @@ -230,7 +230,7 @@ protected function gatherTargetImages(): array try { $dockerComposeConfig = Yaml::parse($dockerComposeYml); } catch (ParseException $exception) { - $this->error("Failed to parse yml from docker compose output."); + $this->error("Failed to parse yml from docker-compose output."); return []; } @@ -272,7 +272,7 @@ protected function getDockerComposeConfigYml(): ?string { try { return $this->helpers->process()->withCommand([ - 'docker', 'compose', + 'docker-compose', '-f', 'docker-compose.yml', '-f', 'docker-compose.prod.yml', '--log-level', 'ERROR', diff --git a/app/Commands/DockerBuildCommand.php b/app/Commands/DockerBuildCommand.php index 8811c09..aabc8b8 100644 --- a/app/Commands/DockerBuildCommand.php +++ b/app/Commands/DockerBuildCommand.php @@ -49,7 +49,7 @@ public function configure() */ public function handle() { - $requiredBinaries = ['docker']; + $requiredBinaries = ['docker', 'docker-compose']; if ($this->helpers->checks()->checkAndReportMissingBinaries($this, $requiredBinaries)) { return 1; @@ -96,7 +96,7 @@ protected function callBuild(string $tag, string $service = null): bool { try { $this->helpers->process()->withCommand([ - 'docker', 'compose', + 'docker-compose', '-f', 'docker-compose.yml', '-f', 'docker-compose.prod.yml', 'build', '--no-cache', $service diff --git a/app/Commands/DockerPushCommand.php b/app/Commands/DockerPushCommand.php index 875f755..24daa65 100644 --- a/app/Commands/DockerPushCommand.php +++ b/app/Commands/DockerPushCommand.php @@ -49,7 +49,7 @@ public function configure() */ public function handle() { - $requiredBinaries = ['docker', 'aws']; + $requiredBinaries = ['docker', 'aws', 'docker-compose']; if ($this->helpers->checks()->checkAndReportMissingBinaries($this, $requiredBinaries)) { return 1; @@ -96,7 +96,7 @@ protected function callPush(string $tag, string $service = null): bool { try { $this->helpers->process()->withCommand([ - 'docker', 'compose', + 'docker-compose', '-f', 'docker-compose.yml', '-f', 'docker-compose.prod.yml', 'push', $service From 58036775f063d69d5fc3d90825f3bae8be29c6ad Mon Sep 17 00:00:00 2001 From: Sam Jordan Date: Fri, 21 May 2021 14:59:06 +0100 Subject: [PATCH 16/26] Installs docker-compose --- Dockerfile | 4 ++++ docker-support/netsells | 4 ++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index 2775f48..1561662 100644 --- a/Dockerfile +++ b/Dockerfile @@ -44,6 +44,10 @@ RUN apt-get update && apt-get install -y \ git \ docker.io +# Docker compose +RUN curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose && chmod +x /usr/local/bin/docker-compose + + # AWS CLI RUN curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip" && unzip awscliv2.zip && ./aws/install && rm awscliv2.zip diff --git a/docker-support/netsells b/docker-support/netsells index c4a9efe..d9a5998 100755 --- a/docker-support/netsells +++ b/docker-support/netsells @@ -110,7 +110,7 @@ then --init \ -it \ -p $TUNNEL_LOCAL_PORT:$TUNNEL_LOCAL_PORT \ - -v sshvol:/root/.ssh \ + -v 'sshvol:/root/.ssh' \ -v $(pwd):/app \ -v ~/.aws:/root/.aws:ro \ -v /var/run/docker.sock:/var/run/docker.sock \ @@ -120,7 +120,7 @@ else --rm \ --init \ -it \ - -v sshvol:/root/.ssh \ # Persist the .ssh folder so we keep the known_hosts file + -v 'sshvol:/root/.ssh' \ -v $(pwd):/app \ -v ~/.aws:/root/.aws:ro \ -v /var/run/docker.sock:/var/run/docker.sock \ From f9a861b8405c3748a37b181e33f8afbb8f519ec5 Mon Sep 17 00:00:00 2001 From: Sam Jordan Date: Fri, 21 May 2021 15:50:08 +0100 Subject: [PATCH 17/26] Adds support for using AWS cli to auth docker --- Dockerfile | 6 +++++- docker-support/docker-config.json | 3 +++ 2 files changed, 8 insertions(+), 1 deletion(-) create mode 100644 docker-support/docker-config.json diff --git a/Dockerfile b/Dockerfile index 1561662..e3b6ce8 100644 --- a/Dockerfile +++ b/Dockerfile @@ -38,11 +38,15 @@ COPY --from=build /app/builds/netsells /usr/local/bin/netsells # Copy the wrapper from source COPY ./docker-support/netsells /usr/local/bin/netsells-wrapper +# Copy the docker config to use ecr auth +COPY ./docker-support/docker-config.json /root/.docker/config.json + # Deps RUN apt-get update && apt-get install -y \ unzip \ git \ - docker.io + docker.io \ + amazon-ecr-credential-helper # Docker compose RUN curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose && chmod +x /usr/local/bin/docker-compose diff --git a/docker-support/docker-config.json b/docker-support/docker-config.json new file mode 100644 index 0000000..9fc1f23 --- /dev/null +++ b/docker-support/docker-config.json @@ -0,0 +1,3 @@ +{ + "credsStore": "ecr-login" +} From 83504e77dbe095f13032cdaa098e15f4f2a8bf4f Mon Sep 17 00:00:00 2001 From: Sam Jordan Date: Fri, 21 May 2021 16:15:47 +0100 Subject: [PATCH 18/26] Further shell script support --- docker-support/netsells | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/docker-support/netsells b/docker-support/netsells index d9a5998..456f7a1 100755 --- a/docker-support/netsells +++ b/docker-support/netsells @@ -85,8 +85,7 @@ error(){ # Check for docker which docker > /dev/null 2>&1 || error 1 "🐳 Docker was not found! Please install it and try again." -if [[ $1 == "self-update" ]] -then +if test "$1" = "self-update"; then echo "\033[0;31mUpdating CLI docker image...\033[0m" docker pull $DOCKER_IMAGE @@ -103,8 +102,7 @@ then exit 0 fi -if [[ $TUNNEL_LOCAL_PORT ]] -then +if test "" != "$TUNNEL_LOCAL_PORT"; then exec docker run \ --rm \ --init \ From 115beecc6505e420d43f176c66c65172c77bc5ab Mon Sep 17 00:00:00 2001 From: Jakub Gawron Date: Fri, 21 May 2021 20:50:23 +0100 Subject: [PATCH 19/26] Remove weird spaces --- Dockerfile | 6 +++--- docker-support/netsells | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Dockerfile b/Dockerfile index e3b6ce8..c7bbb0e 100644 --- a/Dockerfile +++ b/Dockerfile @@ -10,7 +10,7 @@ FROM php:7.4-cli as build ARG DOCKER_TAG -# Deps +# Deps RUN apt-get update && apt-get install -y \ unzip \ git @@ -32,7 +32,7 @@ RUN php netsells app:build --build-version=$DOCKER_TAG ## FROM php:7.4-cli as runtime -# Grab built phar from the builder +# Grab built phar from the builder COPY --from=build /app/builds/netsells /usr/local/bin/netsells # Copy the wrapper from source @@ -41,7 +41,7 @@ COPY ./docker-support/netsells /usr/local/bin/netsells-wrapper # Copy the docker config to use ecr auth COPY ./docker-support/docker-config.json /root/.docker/config.json -# Deps +# Deps RUN apt-get update && apt-get install -y \ unzip \ git \ diff --git a/docker-support/netsells b/docker-support/netsells index 456f7a1..bc01870 100755 --- a/docker-support/netsells +++ b/docker-support/netsells @@ -82,7 +82,7 @@ error(){ exit $1 } -# Check for docker +# Check for docker which docker > /dev/null 2>&1 || error 1 "🐳 Docker was not found! Please install it and try again." if test "$1" = "self-update"; then From 469abf1de543699d86a534ef4f5ef35907873a5d Mon Sep 17 00:00:00 2001 From: Jakub Gawron Date: Sat, 22 May 2021 17:27:50 +0100 Subject: [PATCH 20/26] Optimise dockerfile to reduce the final image size. --- .dockerignore | 2 ++ .editorconfig | 4 ++++ Dockerfile | 42 ++++++++++++++++++++++-------------------- 3 files changed, 28 insertions(+), 20 deletions(-) diff --git a/.dockerignore b/.dockerignore index d8e99dd..b2438a9 100644 --- a/.dockerignore +++ b/.dockerignore @@ -2,3 +2,5 @@ vendor/ .git/ .vscode/ .idea/ +hooks +Dockerfile diff --git a/.editorconfig b/.editorconfig index 1492202..f640a7f 100644 --- a/.editorconfig +++ b/.editorconfig @@ -14,3 +14,7 @@ trim_trailing_whitespace = false [*.yml] indent_style = space indent_size = 2 + +[Dockerfile] +indent_style = space +indent_size = 2 diff --git a/Dockerfile b/Dockerfile index c7bbb0e..e89d31d 100644 --- a/Dockerfile +++ b/Dockerfile @@ -32,31 +32,33 @@ RUN php netsells app:build --build-version=$DOCKER_TAG ## FROM php:7.4-cli as runtime -# Grab built phar from the builder -COPY --from=build /app/builds/netsells /usr/local/bin/netsells - -# Copy the wrapper from source -COPY ./docker-support/netsells /usr/local/bin/netsells-wrapper +# Deps +RUN apt-get update && \ + apt-get install -y --no-install-recommends \ + unzip git openssh-client amazon-ecr-credential-helper && \ + apt-get purge -y autoconf pkg-config gcc && \ + apt-get autoremove -y && \ + apt-get autoclean && \ + apt-get clean && \ + curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" \ + -o /usr/local/bin/docker-compose && chmod +x /usr/local/bin/docker-compose && \ + curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" \ + -o "awscliv2.zip" && unzip -q awscliv2.zip && ./aws/install && rm awscliv2.zip && rm -rf ./aws && \ + curl "https://s3.amazonaws.com/session-manager-downloads/plugin/latest/ubuntu_64bit/session-manager-plugin.deb" \ + -o "session-manager-plugin.deb" && dpkg -i session-manager-plugin.deb && rm session-manager-plugin.deb && \ + rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* + +# Grab docker client from existing docker image +COPY --from=docker:20-dind /usr/local/bin/docker /usr/local/bin/docker # Copy the docker config to use ecr auth COPY ./docker-support/docker-config.json /root/.docker/config.json -# Deps -RUN apt-get update && apt-get install -y \ - unzip \ - git \ - docker.io \ - amazon-ecr-credential-helper - -# Docker compose -RUN curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose && chmod +x /usr/local/bin/docker-compose - - -# AWS CLI -RUN curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip" && unzip awscliv2.zip && ./aws/install && rm awscliv2.zip +# Copy the wrapper from source +COPY ./docker-support/netsells /usr/local/bin/netsells-wrapper -# Session Manager -RUN curl "https://s3.amazonaws.com/session-manager-downloads/plugin/latest/ubuntu_64bit/session-manager-plugin.deb" -o "session-manager-plugin.deb" && dpkg -i session-manager-plugin.deb && rm session-manager-plugin.deb +# Grab built phar from the builder +COPY --from=build /app/builds/netsells /usr/local/bin/netsells RUN mkdir /app WORKDIR /app From 7a68af3ed3093e99cd32d88aa2438cf1e885a356 Mon Sep 17 00:00:00 2001 From: Jakub Gawron Date: Sat, 22 May 2021 17:28:11 +0100 Subject: [PATCH 21/26] Add installation instructions for the docker wrapper. --- README.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/README.md b/README.md index 9571f2f..66c906a 100644 --- a/README.md +++ b/README.md @@ -11,10 +11,15 @@ The Netsells Command Line Interface (CLI). Run the following commands to download and install. `/usr/local/bin` should be in your `$PATH` in order to call `netsells` anywhere. ```bash +# Install PHAR, requires PHP curl -L -o netsells.phar https://netsells-cli.now.sh/download/cli mv netsells.phar /usr/local/bin/netsells chmod +x /usr/local/bin/netsells netsells + +# Or install the Docker wrapper +docker run --rm --init --entrypoint=/bin/cat netsells/cli:latest /usr/local/bin/netsells-wrapper > /usr/local/bin/netsells +netsells ``` ### Usage From a0cf44a7e0965753ea5c60653b18ae515c6135f0 Mon Sep 17 00:00:00 2001 From: Jakub Gawron Date: Sat, 22 May 2021 17:29:15 +0100 Subject: [PATCH 22/26] Only run docker login, if the ecr credential helper is not present. --- app/Commands/DockerBuildCommand.php | 8 +++++--- app/Commands/DockerPushCommand.php | 8 +++++--- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/app/Commands/DockerBuildCommand.php b/app/Commands/DockerBuildCommand.php index aabc8b8..ad40d35 100644 --- a/app/Commands/DockerBuildCommand.php +++ b/app/Commands/DockerBuildCommand.php @@ -68,10 +68,12 @@ public function handle() [] ); - $loginSuccessful = $this->helpers->aws()->ecs()->authenticateDocker($this); + if ($this->helpers->checks()->missingBinaries(['docker-credential-ecr-login'])) { + $loginSuccessful = $this->helpers->aws()->ecs()->authenticateDocker($this); - if (!$loginSuccessful) { - return 1; + if (!$loginSuccessful) { + return 1; + } } if (count($services) == 0) { diff --git a/app/Commands/DockerPushCommand.php b/app/Commands/DockerPushCommand.php index 24daa65..93ddec1 100644 --- a/app/Commands/DockerPushCommand.php +++ b/app/Commands/DockerPushCommand.php @@ -68,10 +68,12 @@ public function handle() [] ); - $loginSuccessful = $this->helpers->aws()->ecs()->authenticateDocker($this); + if ($this->helpers->checks()->missingBinaries(['docker-credential-ecr-login'])) { + $loginSuccessful = $this->helpers->aws()->ecs()->authenticateDocker($this); - if (!$loginSuccessful) { - return 1; + if (!$loginSuccessful) { + return 1; + } } if (count($services) == 0) { From 0eb014ca675cab0b71ae412efbe25c0092187a63 Mon Sep 17 00:00:00 2001 From: Jakub Gawron Date: Sat, 22 May 2021 17:44:11 +0100 Subject: [PATCH 23/26] Fix credential helper error --- Dockerfile | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Dockerfile b/Dockerfile index e89d31d..8ec8331 100644 --- a/Dockerfile +++ b/Dockerfile @@ -60,6 +60,8 @@ COPY ./docker-support/netsells /usr/local/bin/netsells-wrapper # Grab built phar from the builder COPY --from=build /app/builds/netsells /usr/local/bin/netsells +ENV AWS_SDK_LOAD_CONFIG 1 + RUN mkdir /app WORKDIR /app From e6f3769eff7f05f153d76fdd408571dc2e379b44 Mon Sep 17 00:00:00 2001 From: Jakub Gawron Date: Sat, 22 May 2021 17:44:25 +0100 Subject: [PATCH 24/26] Add local docker build instruction. --- README.md | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 66c906a..93c2f6b 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ The Netsells Command Line Interface (CLI). Run the following commands to download and install. `/usr/local/bin` should be in your `$PATH` in order to call `netsells` anywhere. -```bash +```shell # Install PHAR, requires PHP curl -L -o netsells.phar https://netsells-cli.now.sh/download/cli mv netsells.phar /usr/local/bin/netsells @@ -44,6 +44,13 @@ netsells docker:build Builds docker-compose ready for prod ``` +### Development +To build the docker image: +```shell +$ DOCKER_TAG=latest DOCKERFILE_PATH=Dockerfile IMAGE_NAME=netsells/cli hooks/build +``` + + ## Netsells File Reference The CLI will look for configuration in the arguments/options supplied via the command line, falling back to the Netsells file. This should be placed at the root of your project and called `.netsells.yml`. @@ -72,7 +79,7 @@ docker: ## Command Reference * [aws:ec2:list](#awsec2list) - List the instances available -* [aws:ssm:connect](#awsssmconnect) - Connect to an server via SSH (Use --tunnel to establish an SSH tunnel) +* [aws:ssm:connect](#awsssmconnect) - Connect to a server via SSH (Use --tunnel to establish an SSH tunnel) ### aws:ec2:list From a7877f7fafc83ab53766b6d2164f1c4da688be58 Mon Sep 17 00:00:00 2001 From: Jakub Gawron Date: Sat, 22 May 2021 18:07:15 +0100 Subject: [PATCH 25/26] Ran composer update, as the lock file was out of sync. --- composer.lock | 142 +++++++++++++++++++++++++------------------------- 1 file changed, 71 insertions(+), 71 deletions(-) diff --git a/composer.lock b/composer.lock index 336b57a..82f3bab 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "8a3fe468ffe0a2fc423ff0710e2d842c", + "content-hash": "df584fb81f44ef063be09a5195ccc0f9", "packages": [ { "name": "beberlei/assert", @@ -589,16 +589,16 @@ }, { "name": "illuminate/bus", - "version": "v8.41.0", + "version": "v8.42.1", "source": { "type": "git", "url": "https://github.com/illuminate/bus.git", - "reference": "7b5c0f1aa52cc70259352ff6b7adb67c7d46bcc5" + "reference": "2156797125702623af47983867c05cc965490c19" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/illuminate/bus/zipball/7b5c0f1aa52cc70259352ff6b7adb67c7d46bcc5", - "reference": "7b5c0f1aa52cc70259352ff6b7adb67c7d46bcc5", + "url": "https://api.github.com/repos/illuminate/bus/zipball/2156797125702623af47983867c05cc965490c19", + "reference": "2156797125702623af47983867c05cc965490c19", "shasum": "" }, "require": { @@ -638,20 +638,20 @@ "issues": "https://github.com/laravel/framework/issues", "source": "https://github.com/laravel/framework" }, - "time": "2021-04-28T12:55:54+00:00" + "time": "2021-05-18T12:49:19+00:00" }, { "name": "illuminate/cache", - "version": "v8.41.0", + "version": "v8.42.1", "source": { "type": "git", "url": "https://github.com/illuminate/cache.git", - "reference": "267a541171a375d56622117fbd0a60515402f2ef" + "reference": "499d15db9b58b5701aa85a4790ae1404d79009aa" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/illuminate/cache/zipball/267a541171a375d56622117fbd0a60515402f2ef", - "reference": "267a541171a375d56622117fbd0a60515402f2ef", + "url": "https://api.github.com/repos/illuminate/cache/zipball/499d15db9b58b5701aa85a4790ae1404d79009aa", + "reference": "499d15db9b58b5701aa85a4790ae1404d79009aa", "shasum": "" }, "require": { @@ -695,11 +695,11 @@ "issues": "https://github.com/laravel/framework/issues", "source": "https://github.com/laravel/framework" }, - "time": "2021-04-27T20:56:51+00:00" + "time": "2021-05-18T12:49:19+00:00" }, { "name": "illuminate/collections", - "version": "v8.41.0", + "version": "v8.42.1", "source": { "type": "git", "url": "https://github.com/illuminate/collections.git", @@ -753,7 +753,7 @@ }, { "name": "illuminate/config", - "version": "v8.41.0", + "version": "v8.42.1", "source": { "type": "git", "url": "https://github.com/illuminate/config.git", @@ -801,16 +801,16 @@ }, { "name": "illuminate/console", - "version": "v8.41.0", + "version": "v8.42.1", "source": { "type": "git", "url": "https://github.com/illuminate/console.git", - "reference": "395002ac2d4ec404c42e6e97997f4236dc8ab2b6" + "reference": "01d6bec8d741ca812cfa14a9b91cf081f8d7fdad" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/illuminate/console/zipball/395002ac2d4ec404c42e6e97997f4236dc8ab2b6", - "reference": "395002ac2d4ec404c42e6e97997f4236dc8ab2b6", + "url": "https://api.github.com/repos/illuminate/console/zipball/01d6bec8d741ca812cfa14a9b91cf081f8d7fdad", + "reference": "01d6bec8d741ca812cfa14a9b91cf081f8d7fdad", "shasum": "" }, "require": { @@ -857,20 +857,20 @@ "issues": "https://github.com/laravel/framework/issues", "source": "https://github.com/laravel/framework" }, - "time": "2021-04-26T12:39:58+00:00" + "time": "2021-05-18T12:49:19+00:00" }, { "name": "illuminate/container", - "version": "v8.41.0", + "version": "v8.42.1", "source": { "type": "git", "url": "https://github.com/illuminate/container.git", - "reference": "0e38ee1632d470e56aece0079e6e22d13e6bea8e" + "reference": "07342efca88cf9fff4f2fa0e3c378ea6ee86e5e2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/illuminate/container/zipball/0e38ee1632d470e56aece0079e6e22d13e6bea8e", - "reference": "0e38ee1632d470e56aece0079e6e22d13e6bea8e", + "url": "https://api.github.com/repos/illuminate/container/zipball/07342efca88cf9fff4f2fa0e3c378ea6ee86e5e2", + "reference": "07342efca88cf9fff4f2fa0e3c378ea6ee86e5e2", "shasum": "" }, "require": { @@ -908,20 +908,20 @@ "issues": "https://github.com/laravel/framework/issues", "source": "https://github.com/laravel/framework" }, - "time": "2021-03-16T19:42:20+00:00" + "time": "2021-05-18T12:49:19+00:00" }, { "name": "illuminate/contracts", - "version": "v8.41.0", + "version": "v8.42.1", "source": { "type": "git", "url": "https://github.com/illuminate/contracts.git", - "reference": "64abbe2aeee0855a11cfce49d0ea08a0aa967cd2" + "reference": "68036b4fb17ad40a599323bda3f2c0845c8100d8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/illuminate/contracts/zipball/64abbe2aeee0855a11cfce49d0ea08a0aa967cd2", - "reference": "64abbe2aeee0855a11cfce49d0ea08a0aa967cd2", + "url": "https://api.github.com/repos/illuminate/contracts/zipball/68036b4fb17ad40a599323bda3f2c0845c8100d8", + "reference": "68036b4fb17ad40a599323bda3f2c0845c8100d8", "shasum": "" }, "require": { @@ -956,11 +956,11 @@ "issues": "https://github.com/laravel/framework/issues", "source": "https://github.com/laravel/framework" }, - "time": "2021-05-06T14:58:48+00:00" + "time": "2021-05-18T12:49:19+00:00" }, { "name": "illuminate/events", - "version": "v8.41.0", + "version": "v8.42.1", "source": { "type": "git", "url": "https://github.com/illuminate/events.git", @@ -1015,16 +1015,16 @@ }, { "name": "illuminate/filesystem", - "version": "v8.41.0", + "version": "v8.42.1", "source": { "type": "git", "url": "https://github.com/illuminate/filesystem.git", - "reference": "8ef5902052c5b3bb4a6c1c3afc399f30e7723cb8" + "reference": "7c7372874615475f46d484a2190f90e8effcd8b5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/illuminate/filesystem/zipball/8ef5902052c5b3bb4a6c1c3afc399f30e7723cb8", - "reference": "8ef5902052c5b3bb4a6c1c3afc399f30e7723cb8", + "url": "https://api.github.com/repos/illuminate/filesystem/zipball/7c7372874615475f46d484a2190f90e8effcd8b5", + "reference": "7c7372874615475f46d484a2190f90e8effcd8b5", "shasum": "" }, "require": { @@ -1073,11 +1073,11 @@ "issues": "https://github.com/laravel/framework/issues", "source": "https://github.com/laravel/framework" }, - "time": "2021-04-05T18:45:36+00:00" + "time": "2021-05-18T12:49:19+00:00" }, { "name": "illuminate/macroable", - "version": "v8.41.0", + "version": "v8.42.1", "source": { "type": "git", "url": "https://github.com/illuminate/macroable.git", @@ -1123,7 +1123,7 @@ }, { "name": "illuminate/pipeline", - "version": "v8.41.0", + "version": "v8.42.1", "source": { "type": "git", "url": "https://github.com/illuminate/pipeline.git", @@ -1171,16 +1171,16 @@ }, { "name": "illuminate/support", - "version": "v8.41.0", + "version": "v8.42.1", "source": { "type": "git", "url": "https://github.com/illuminate/support.git", - "reference": "31e91a12f0aac770d02a05b5d5771829132213b4" + "reference": "ed5adf8494e6c047fcf6de8b56153640379bf08d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/illuminate/support/zipball/31e91a12f0aac770d02a05b5d5771829132213b4", - "reference": "31e91a12f0aac770d02a05b5d5771829132213b4", + "url": "https://api.github.com/repos/illuminate/support/zipball/ed5adf8494e6c047fcf6de8b56153640379bf08d", + "reference": "ed5adf8494e6c047fcf6de8b56153640379bf08d", "shasum": "" }, "require": { @@ -1235,20 +1235,20 @@ "issues": "https://github.com/laravel/framework/issues", "source": "https://github.com/laravel/framework" }, - "time": "2021-05-10T13:42:57+00:00" + "time": "2021-05-18T12:49:19+00:00" }, { "name": "illuminate/testing", - "version": "v8.41.0", + "version": "v8.42.1", "source": { "type": "git", "url": "https://github.com/illuminate/testing.git", - "reference": "b45e4be3d74ecb48c8f466c23929021f75df7ecf" + "reference": "75ce8f72264dc990bff13a2dabe8133dd9dd12db" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/illuminate/testing/zipball/b45e4be3d74ecb48c8f466c23929021f75df7ecf", - "reference": "b45e4be3d74ecb48c8f466c23929021f75df7ecf", + "url": "https://api.github.com/repos/illuminate/testing/zipball/75ce8f72264dc990bff13a2dabe8133dd9dd12db", + "reference": "75ce8f72264dc990bff13a2dabe8133dd9dd12db", "shasum": "" }, "require": { @@ -1293,7 +1293,7 @@ "issues": "https://github.com/laravel/framework/issues", "source": "https://github.com/laravel/framework" }, - "time": "2021-05-02T20:04:03+00:00" + "time": "2021-05-18T12:49:19+00:00" }, { "name": "jolicode/jolinotif", @@ -1631,16 +1631,16 @@ }, { "name": "laravel-zero/foundation", - "version": "v8.41.0", + "version": "v8.42.1", "source": { "type": "git", "url": "https://github.com/laravel-zero/foundation.git", - "reference": "0ef2bca2367f13e5febdc707fa2a2bc2c6a80908" + "reference": "d6f9ffdc1e4797f6877ff0e83356dcb49607fb5d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel-zero/foundation/zipball/0ef2bca2367f13e5febdc707fa2a2bc2c6a80908", - "reference": "0ef2bca2367f13e5febdc707fa2a2bc2c6a80908", + "url": "https://api.github.com/repos/laravel-zero/foundation/zipball/d6f9ffdc1e4797f6877ff0e83356dcb49607fb5d", + "reference": "d6f9ffdc1e4797f6877ff0e83356dcb49607fb5d", "shasum": "" }, "require": { @@ -1670,9 +1670,9 @@ "laravel" ], "support": { - "source": "https://github.com/laravel-zero/foundation/tree/v8.41.0" + "source": "https://github.com/laravel-zero/foundation/tree/v8.42.1" }, - "time": "2021-05-12T08:28:30+00:00" + "time": "2021-05-21T12:53:11+00:00" }, { "name": "laravel-zero/framework", @@ -3235,16 +3235,16 @@ }, { "name": "symfony/finder", - "version": "v5.2.8", + "version": "v5.2.9", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "eccb8be70d7a6a2230d05f6ecede40f3fdd9e252" + "reference": "ccccb9d48ca42757dd12f2ca4bf857a4e217d90d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/eccb8be70d7a6a2230d05f6ecede40f3fdd9e252", - "reference": "eccb8be70d7a6a2230d05f6ecede40f3fdd9e252", + "url": "https://api.github.com/repos/symfony/finder/zipball/ccccb9d48ca42757dd12f2ca4bf857a4e217d90d", + "reference": "ccccb9d48ca42757dd12f2ca4bf857a4e217d90d", "shasum": "" }, "require": { @@ -3276,7 +3276,7 @@ "description": "Finds files and directories via an intuitive fluent interface", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/finder/tree/v5.2.8" + "source": "https://github.com/symfony/finder/tree/v5.2.9" }, "funding": [ { @@ -3292,7 +3292,7 @@ "type": "tidelift" } ], - "time": "2021-05-10T14:39:23+00:00" + "time": "2021-05-16T13:07:46+00:00" }, { "name": "symfony/polyfill-ctype", @@ -4006,16 +4006,16 @@ }, { "name": "symfony/translation", - "version": "v5.2.8", + "version": "v5.2.9", "source": { "type": "git", "url": "https://github.com/symfony/translation.git", - "reference": "445caa74a5986f1cc9dd91a2975ef68fa7cb2068" + "reference": "61af68dba333e2d376a325a29c2a3f2a605b4876" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation/zipball/445caa74a5986f1cc9dd91a2975ef68fa7cb2068", - "reference": "445caa74a5986f1cc9dd91a2975ef68fa7cb2068", + "url": "https://api.github.com/repos/symfony/translation/zipball/61af68dba333e2d376a325a29c2a3f2a605b4876", + "reference": "61af68dba333e2d376a325a29c2a3f2a605b4876", "shasum": "" }, "require": { @@ -4079,7 +4079,7 @@ "description": "Provides tools to internationalize your application", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/translation/tree/v5.2.8" + "source": "https://github.com/symfony/translation/tree/v5.2.9" }, "funding": [ { @@ -4095,7 +4095,7 @@ "type": "tidelift" } ], - "time": "2021-05-07T13:41:16+00:00" + "time": "2021-05-16T13:07:46+00:00" }, { "name": "symfony/translation-contracts", @@ -4265,16 +4265,16 @@ }, { "name": "symfony/yaml", - "version": "v5.2.7", + "version": "v5.2.9", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "76546cbeddd0a9540b4e4e57eddeec3e9bb444a5" + "reference": "d23115e4a3d50520abddccdbec9514baab1084c8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/76546cbeddd0a9540b4e4e57eddeec3e9bb444a5", - "reference": "76546cbeddd0a9540b4e4e57eddeec3e9bb444a5", + "url": "https://api.github.com/repos/symfony/yaml/zipball/d23115e4a3d50520abddccdbec9514baab1084c8", + "reference": "d23115e4a3d50520abddccdbec9514baab1084c8", "shasum": "" }, "require": { @@ -4320,7 +4320,7 @@ "description": "Loads and dumps YAML files", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/yaml/tree/v5.2.7" + "source": "https://github.com/symfony/yaml/tree/v5.2.9" }, "funding": [ { @@ -4336,7 +4336,7 @@ "type": "tidelift" } ], - "time": "2021-04-29T20:47:09+00:00" + "time": "2021-05-16T13:07:46+00:00" }, { "name": "vlucas/phpdotenv", @@ -6691,7 +6691,7 @@ "prefer-stable": true, "prefer-lowest": false, "platform": { - "php": "^7.4" + "php": "^7.4 | ^8.0" }, "platform-dev": [], "plugin-api-version": "2.0.0" From 479cacc3f5ac0246b8b2e00d6b0bb45a368ce8af Mon Sep 17 00:00:00 2001 From: Sam Jordan Date: Tue, 25 May 2021 09:13:04 +0100 Subject: [PATCH 26/26] Reverts ECR auth to standard docker login --- Dockerfile | 5 +---- app/Commands/DockerBuildCommand.php | 8 +++----- app/Commands/DockerPushCommand.php | 8 +++----- docker-support/docker-config.json | 3 --- docker-support/netsells | 2 ++ 5 files changed, 9 insertions(+), 17 deletions(-) delete mode 100644 docker-support/docker-config.json diff --git a/Dockerfile b/Dockerfile index 8ec8331..3fcb3eb 100644 --- a/Dockerfile +++ b/Dockerfile @@ -35,7 +35,7 @@ FROM php:7.4-cli as runtime # Deps RUN apt-get update && \ apt-get install -y --no-install-recommends \ - unzip git openssh-client amazon-ecr-credential-helper && \ + unzip git openssh-client && \ apt-get purge -y autoconf pkg-config gcc && \ apt-get autoremove -y && \ apt-get autoclean && \ @@ -51,9 +51,6 @@ RUN apt-get update && \ # Grab docker client from existing docker image COPY --from=docker:20-dind /usr/local/bin/docker /usr/local/bin/docker -# Copy the docker config to use ecr auth -COPY ./docker-support/docker-config.json /root/.docker/config.json - # Copy the wrapper from source COPY ./docker-support/netsells /usr/local/bin/netsells-wrapper diff --git a/app/Commands/DockerBuildCommand.php b/app/Commands/DockerBuildCommand.php index ad40d35..aabc8b8 100644 --- a/app/Commands/DockerBuildCommand.php +++ b/app/Commands/DockerBuildCommand.php @@ -68,12 +68,10 @@ public function handle() [] ); - if ($this->helpers->checks()->missingBinaries(['docker-credential-ecr-login'])) { - $loginSuccessful = $this->helpers->aws()->ecs()->authenticateDocker($this); + $loginSuccessful = $this->helpers->aws()->ecs()->authenticateDocker($this); - if (!$loginSuccessful) { - return 1; - } + if (!$loginSuccessful) { + return 1; } if (count($services) == 0) { diff --git a/app/Commands/DockerPushCommand.php b/app/Commands/DockerPushCommand.php index 93ddec1..24daa65 100644 --- a/app/Commands/DockerPushCommand.php +++ b/app/Commands/DockerPushCommand.php @@ -68,12 +68,10 @@ public function handle() [] ); - if ($this->helpers->checks()->missingBinaries(['docker-credential-ecr-login'])) { - $loginSuccessful = $this->helpers->aws()->ecs()->authenticateDocker($this); + $loginSuccessful = $this->helpers->aws()->ecs()->authenticateDocker($this); - if (!$loginSuccessful) { - return 1; - } + if (!$loginSuccessful) { + return 1; } if (count($services) == 0) { diff --git a/docker-support/docker-config.json b/docker-support/docker-config.json deleted file mode 100644 index 9fc1f23..0000000 --- a/docker-support/docker-config.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "credsStore": "ecr-login" -} diff --git a/docker-support/netsells b/docker-support/netsells index bc01870..9dbedf7 100755 --- a/docker-support/netsells +++ b/docker-support/netsells @@ -109,6 +109,7 @@ if test "" != "$TUNNEL_LOCAL_PORT"; then -it \ -p $TUNNEL_LOCAL_PORT:$TUNNEL_LOCAL_PORT \ -v 'sshvol:/root/.ssh' \ + -v 'dockervol:/root/.docker' \ -v $(pwd):/app \ -v ~/.aws:/root/.aws:ro \ -v /var/run/docker.sock:/var/run/docker.sock \ @@ -119,6 +120,7 @@ else --init \ -it \ -v 'sshvol:/root/.ssh' \ + -v 'dockervol:/root/.docker' \ -v $(pwd):/app \ -v ~/.aws:/root/.aws:ro \ -v /var/run/docker.sock:/var/run/docker.sock \