diff --git a/.env.dist b/.env.dist index f6d35eec..33902df3 100644 --- a/.env.dist +++ b/.env.dist @@ -57,6 +57,7 @@ COUNTRY_CODE=+insert_country_code_here # redis hash LATEST_ACTIVE_JO=latest_active_jo +HUB_JO_KEY=hub_jo_count # dashboard DASHBOARD_ENABLE=set_to_true_or_false diff --git a/composer.json b/composer.json index 20b9c833..5313b64a 100644 --- a/composer.json +++ b/composer.json @@ -25,6 +25,7 @@ "symfony/flex": "^1.0", "symfony/framework-bundle": "^4.0", "symfony/maker-bundle": "^1.0", + "symfony/monolog-bundle": "^3.7", "symfony/orm-pack": "^1.0", "symfony/process": "^4.0", "symfony/profiler-pack": "^1.0", diff --git a/composer.lock b/composer.lock index dcd7eb19..77efe579 100644 --- a/composer.lock +++ b/composer.lock @@ -1,10 +1,10 @@ { "_readme": [ "This file locks the dependencies of your project to a known state", - "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", + "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", "This file is @generated automatically" ], - "content-hash": "ad9d56a6dff26742f024917e58b919f9", + "content-hash": "ec7f40b23cfd3577e34ebf2646576889", "packages": [ { "name": "catalyst/auth-bundle", @@ -26,7 +26,6 @@ "php": "^7.0", "symfony/framework-bundle": "~4.0" }, - "default-branch": true, "type": "symfony-bundle", "autoload": { "psr-4": { @@ -42,9 +41,6 @@ "email": "kc@jankstudio.com" } ], - "support": { - "issues": "https://gitlab.com/api/v4/projects/12709261/issues" - }, "time": "2019-07-01T09:45:41+00:00" }, { @@ -67,7 +63,6 @@ "php": "^7.0", "symfony/framework-bundle": "~4.0" }, - "default-branch": true, "type": "symfony-bundle", "autoload": { "psr-4": { @@ -83,84 +78,8 @@ "email": "kc@jankstudio.com" } ], - "support": { - "issues": "https://gitlab.com/api/v4/projects/12712039/issues" - }, "time": "2019-06-14T09:43:30+00:00" }, - { - "name": "composer/package-versions-deprecated", - "version": "1.11.99.1", - "source": { - "type": "git", - "url": "https://github.com/composer/package-versions-deprecated.git", - "reference": "7413f0b55a051e89485c5cb9f765fe24bb02a7b6" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/composer/package-versions-deprecated/zipball/7413f0b55a051e89485c5cb9f765fe24bb02a7b6", - "reference": "7413f0b55a051e89485c5cb9f765fe24bb02a7b6", - "shasum": "" - }, - "require": { - "composer-plugin-api": "^1.1.0 || ^2.0", - "php": "^7 || ^8" - }, - "replace": { - "ocramius/package-versions": "1.11.99" - }, - "require-dev": { - "composer/composer": "^1.9.3 || ^2.0@dev", - "ext-zip": "^1.13", - "phpunit/phpunit": "^6.5 || ^7" - }, - "type": "composer-plugin", - "extra": { - "class": "PackageVersions\\Installer", - "branch-alias": { - "dev-master": "1.x-dev" - } - }, - "autoload": { - "psr-4": { - "PackageVersions\\": "src/PackageVersions" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Marco Pivetta", - "email": "ocramius@gmail.com" - }, - { - "name": "Jordi Boggiano", - "email": "j.boggiano@seld.be" - } - ], - "description": "Composer plugin that provides efficient querying for installed package versions (no runtime IO)", - "support": { - "issues": "https://github.com/composer/package-versions-deprecated/issues", - "source": "https://github.com/composer/package-versions-deprecated/tree/1.11.99.1" - }, - "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-11-11T10:22:58+00:00" - }, { "name": "creof/doctrine2-spatial", "version": "1.2.0", @@ -216,10 +135,6 @@ "postgresql", "spatial" ], - "support": { - "issues": "https://github.com/creof/doctrine2-spatial/issues", - "source": "https://github.com/creof/doctrine2-spatial/tree/master" - }, "time": "2017-07-13T16:48:25+00:00" }, { @@ -273,10 +188,6 @@ "string", "text" ], - "support": { - "issues": "https://github.com/creof/geo-parser/issues", - "source": "https://github.com/creof/geo-parser/tree/master" - }, "time": "2019-08-07T17:45:01+00:00" }, { @@ -329,10 +240,6 @@ "text", "wkb" ], - "support": { - "issues": "https://github.com/creof/wkb-parser/issues", - "source": "https://github.com/creof/wkb-parser/tree/master" - }, "time": "2016-05-22T22:47:16+00:00" }, { @@ -386,24 +293,20 @@ "text", "wkt" ], - "support": { - "issues": "https://github.com/creof/wkt-parser/issues", - "source": "https://github.com/creof/wkt-parser/tree/master" - }, "time": "2016-05-03T16:15:16+00:00" }, { "name": "data-dog/audit-bundle", - "version": "v0.1.20", + "version": "v0.1.18", "source": { "type": "git", "url": "https://github.com/DATA-DOG/DataDogAuditBundle.git", - "reference": "d80a751dd55f105045222a2061de9603c1a23153" + "reference": "9012a272f1aebd590ab1e324d951655cb48b097c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/DATA-DOG/DataDogAuditBundle/zipball/d80a751dd55f105045222a2061de9603c1a23153", - "reference": "d80a751dd55f105045222a2061de9603c1a23153", + "url": "https://api.github.com/repos/DATA-DOG/DataDogAuditBundle/zipball/9012a272f1aebd590ab1e324d951655cb48b097c", + "reference": "9012a272f1aebd590ab1e324d951655cb48b097c", "shasum": "" }, "require": { @@ -460,38 +363,37 @@ "log", "orm" ], - "support": { - "issues": "https://github.com/DATA-DOG/DataDogAuditBundle/issues", - "source": "https://github.com/DATA-DOG/DataDogAuditBundle/tree/v0.1.20" - }, - "time": "2021-02-04T10:44:09+00:00" + "time": "2020-01-08T10:45:29+00:00" }, { "name": "doctrine/annotations", - "version": "1.12.1", + "version": "1.10.2", "source": { "type": "git", "url": "https://github.com/doctrine/annotations.git", - "reference": "b17c5014ef81d212ac539f07a1001832df1b6d3b" + "reference": "b9d758e831c70751155c698c2f7df4665314a1cb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/annotations/zipball/b17c5014ef81d212ac539f07a1001832df1b6d3b", - "reference": "b17c5014ef81d212ac539f07a1001832df1b6d3b", + "url": "https://api.github.com/repos/doctrine/annotations/zipball/b9d758e831c70751155c698c2f7df4665314a1cb", + "reference": "b9d758e831c70751155c698c2f7df4665314a1cb", "shasum": "" }, "require": { "doctrine/lexer": "1.*", "ext-tokenizer": "*", - "php": "^7.1 || ^8.0" + "php": "^7.1" }, "require-dev": { "doctrine/cache": "1.*", - "doctrine/coding-standard": "^6.0 || ^8.1", - "phpstan/phpstan": "^0.12.20", - "phpunit/phpunit": "^7.5 || ^9.1.5" + "phpunit/phpunit": "^7.5" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.9.x-dev" + } + }, "autoload": { "psr-4": { "Doctrine\\Common\\Annotations\\": "lib/Doctrine/Common/Annotations" @@ -524,34 +426,30 @@ } ], "description": "Docblock Annotations Parser", - "homepage": "https://www.doctrine-project.org/projects/annotations.html", + "homepage": "http://www.doctrine-project.org", "keywords": [ "annotations", "docblock", "parser" ], - "support": { - "issues": "https://github.com/doctrine/annotations/issues", - "source": "https://github.com/doctrine/annotations/tree/1.12.1" - }, - "time": "2021-02-21T21:00:45+00:00" + "time": "2020-04-20T09:18:32+00:00" }, { "name": "doctrine/cache", - "version": "1.10.2", + "version": "1.10.0", "source": { "type": "git", "url": "https://github.com/doctrine/cache.git", - "reference": "13e3381b25847283a91948d04640543941309727" + "reference": "382e7f4db9a12dc6c19431743a2b096041bcdd62" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/cache/zipball/13e3381b25847283a91948d04640543941309727", - "reference": "13e3381b25847283a91948d04640543941309727", + "url": "https://api.github.com/repos/doctrine/cache/zipball/382e7f4db9a12dc6c19431743a2b096041bcdd62", + "reference": "382e7f4db9a12dc6c19431743a2b096041bcdd62", "shasum": "" }, "require": { - "php": "~7.1 || ^8.0" + "php": "~7.1" }, "conflict": { "doctrine/common": ">2.2,<2.4" @@ -616,50 +514,37 @@ "redis", "xcache" ], - "support": { - "issues": "https://github.com/doctrine/cache/issues", - "source": "https://github.com/doctrine/cache/tree/1.10.x" - }, - "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%2Fcache", - "type": "tidelift" - } - ], - "time": "2020-07-07T18:54:01+00:00" + "time": "2019-11-29T15:36:20+00:00" }, { "name": "doctrine/collections", - "version": "1.6.7", + "version": "1.6.4", "source": { "type": "git", "url": "https://github.com/doctrine/collections.git", - "reference": "55f8b799269a1a472457bd1a41b4f379d4cfba4a" + "reference": "6b1e4b2b66f6d6e49983cebfe23a21b7ccc5b0d7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/collections/zipball/55f8b799269a1a472457bd1a41b4f379d4cfba4a", - "reference": "55f8b799269a1a472457bd1a41b4f379d4cfba4a", + "url": "https://api.github.com/repos/doctrine/collections/zipball/6b1e4b2b66f6d6e49983cebfe23a21b7ccc5b0d7", + "reference": "6b1e4b2b66f6d6e49983cebfe23a21b7ccc5b0d7", "shasum": "" }, "require": { - "php": "^7.1.3 || ^8.0" + "php": "^7.1.3" }, "require-dev": { "doctrine/coding-standard": "^6.0", "phpstan/phpstan-shim": "^0.9.2", "phpunit/phpunit": "^7.0", - "vimeo/psalm": "^3.8.1" + "vimeo/psalm": "^3.2.2" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.6.x-dev" + } + }, "autoload": { "psr-4": { "Doctrine\\Common\\Collections\\": "lib/Doctrine/Common/Collections" @@ -699,24 +584,20 @@ "iterators", "php" ], - "support": { - "issues": "https://github.com/doctrine/collections/issues", - "source": "https://github.com/doctrine/collections/tree/1.6.7" - }, - "time": "2020-07-27T17:53:49+00:00" + "time": "2019-11-13T13:07:11+00:00" }, { "name": "doctrine/common", - "version": "2.13.3", + "version": "2.13.0", "source": { "type": "git", "url": "https://github.com/doctrine/common.git", - "reference": "f3812c026e557892c34ef37f6ab808a6b567da7f" + "reference": "308728eae8d90412d850c155d40b1cfbede549da" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/common/zipball/f3812c026e557892c34ef37f6ab808a6b567da7f", - "reference": "f3812c026e557892c34ef37f6ab808a6b567da7f", + "url": "https://api.github.com/repos/doctrine/common/zipball/308728eae8d90412d850c155d40b1cfbede549da", + "reference": "308728eae8d90412d850c155d40b1cfbede549da", "shasum": "" }, "require": { @@ -728,7 +609,7 @@ "doctrine/lexer": "^1.0", "doctrine/persistence": "^1.3.3", "doctrine/reflection": "^1.0", - "php": "^7.1 || ^8.0" + "php": "^7.1" }, "require-dev": { "doctrine/coding-standard": "^1.0", @@ -786,54 +667,36 @@ "doctrine", "php" ], - "support": { - "issues": "https://github.com/doctrine/common/issues", - "source": "https://github.com/doctrine/common/tree/2.13.x" - }, - "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%2Fcommon", - "type": "tidelift" - } - ], - "time": "2020-06-05T16:46:05+00:00" + "time": "2020-05-15T05:51:54+00:00" }, { "name": "doctrine/dbal", - "version": "2.13.0", + "version": "2.10.2", "source": { "type": "git", "url": "https://github.com/doctrine/dbal.git", - "reference": "67d56d3203b33db29834e6b2fcdbfdc50535d796" + "reference": "aab745e7b6b2de3b47019da81e7225e14dcfdac8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/dbal/zipball/67d56d3203b33db29834e6b2fcdbfdc50535d796", - "reference": "67d56d3203b33db29834e6b2fcdbfdc50535d796", + "url": "https://api.github.com/repos/doctrine/dbal/zipball/aab745e7b6b2de3b47019da81e7225e14dcfdac8", + "reference": "aab745e7b6b2de3b47019da81e7225e14dcfdac8", "shasum": "" }, "require": { "doctrine/cache": "^1.0", - "doctrine/deprecations": "^0.5.3", "doctrine/event-manager": "^1.0", "ext-pdo": "*", - "php": "^7.1 || ^8" + "php": "^7.2" }, "require-dev": { - "doctrine/coding-standard": "8.2.0", - "jetbrains/phpstorm-stubs": "2020.2", - "phpstan/phpstan": "0.12.81", - "phpunit/phpunit": "^7.5.20|^8.5|9.5.0", + "doctrine/coding-standard": "^6.0", + "jetbrains/phpstorm-stubs": "^2019.1", + "nikic/php-parser": "^4.4", + "phpstan/phpstan": "^0.12", + "phpunit/phpunit": "^8.4.1", "symfony/console": "^2.0.5|^3.0|^4.0|^5.0", - "vimeo/psalm": "4.6.4" + "vimeo/psalm": "^3.11" }, "suggest": { "symfony/console": "For helpful console commands such as SQL execution and import of files." @@ -842,6 +705,12 @@ "bin/doctrine-dbal" ], "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.10.x-dev", + "dev-develop": "3.0.x-dev" + } + }, "autoload": { "psr-4": { "Doctrine\\DBAL\\": "lib/Doctrine/DBAL" @@ -892,93 +761,32 @@ "sqlserver", "sqlsrv" ], - "support": { - "issues": "https://github.com/doctrine/dbal/issues", - "source": "https://github.com/doctrine/dbal/tree/2.13.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%2Fdbal", - "type": "tidelift" - } - ], - "time": "2021-03-28T18:10:53+00:00" - }, - { - "name": "doctrine/deprecations", - "version": "v0.5.3", - "source": { - "type": "git", - "url": "https://github.com/doctrine/deprecations.git", - "reference": "9504165960a1f83cc1480e2be1dd0a0478561314" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/deprecations/zipball/9504165960a1f83cc1480e2be1dd0a0478561314", - "reference": "9504165960a1f83cc1480e2be1dd0a0478561314", - "shasum": "" - }, - "require": { - "php": "^7.1|^8.0" - }, - "require-dev": { - "doctrine/coding-standard": "^6.0|^7.0|^8.0", - "phpunit/phpunit": "^7.0|^8.0|^9.0", - "psr/log": "^1.0" - }, - "suggest": { - "psr/log": "Allows logging deprecations via PSR-3 logger implementation" - }, - "type": "library", - "autoload": { - "psr-4": { - "Doctrine\\Deprecations\\": "lib/Doctrine/Deprecations" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "description": "A small layer on top of trigger_error(E_USER_DEPRECATED) or PSR-3 logging with options to disable all deprecations or selectively for packages.", - "homepage": "https://www.doctrine-project.org/", - "support": { - "issues": "https://github.com/doctrine/deprecations/issues", - "source": "https://github.com/doctrine/deprecations/tree/v0.5.3" - }, - "time": "2021-03-21T12:59:47+00:00" + "time": "2020-04-20T17:19:26+00:00" }, { "name": "doctrine/doctrine-bundle", - "version": "2.3.1", + "version": "2.0.8", "source": { "type": "git", "url": "https://github.com/doctrine/DoctrineBundle.git", - "reference": "a08bc3b4d8567cdff05e89b272ba1e06e9d71c21" + "reference": "b0e0deb6e700438401ede433a15a6372d2285202" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/DoctrineBundle/zipball/a08bc3b4d8567cdff05e89b272ba1e06e9d71c21", - "reference": "a08bc3b4d8567cdff05e89b272ba1e06e9d71c21", + "url": "https://api.github.com/repos/doctrine/DoctrineBundle/zipball/b0e0deb6e700438401ede433a15a6372d2285202", + "reference": "b0e0deb6e700438401ede433a15a6372d2285202", "shasum": "" }, "require": { - "doctrine/dbal": "^2.9.0|^3.0", - "doctrine/persistence": "^1.3.3|^2.0", - "doctrine/sql-formatter": "^1.0.1", - "php": "^7.1 || ^8.0", + "doctrine/dbal": "^2.9.0", + "doctrine/persistence": "^1.3.3", + "jdorn/sql-formatter": "^1.2.16", + "php": "^7.1", "symfony/cache": "^4.3.3|^5.0", "symfony/config": "^4.3.3|^5.0", "symfony/console": "^3.4.30|^4.3.3|^5.0", "symfony/dependency-injection": "^4.3.3|^5.0", - "symfony/doctrine-bridge": "^4.4.7|^5.0", + "symfony/doctrine-bridge": "^4.3.7|^5.0", "symfony/framework-bundle": "^3.4.30|^4.3.3|^5.0", "symfony/service-contracts": "^1.1.1|^2.0" }, @@ -987,29 +795,29 @@ "twig/twig": "<1.34|>=2.0,<2.4" }, "require-dev": { - "doctrine/coding-standard": "^8.0", + "doctrine/coding-standard": "^6.0", "doctrine/orm": "^2.6", - "friendsofphp/proxy-manager-lts": "^1.0", - "phpunit/phpunit": "^7.5 || ^8.0 || ^9.3", - "psalm/plugin-phpunit": "^0.15.1", - "psalm/plugin-symfony": "^2.2.4", - "symfony/phpunit-bridge": "^5.2", + "ocramius/proxy-manager": "^2.1", + "phpunit/phpunit": "^7.5", + "symfony/phpunit-bridge": "^4.2", "symfony/property-info": "^4.3.3|^5.0", "symfony/proxy-manager-bridge": "^3.4|^4.3.3|^5.0", - "symfony/security-bundle": "^4.4|5.0", "symfony/twig-bridge": "^3.4.30|^4.3.3|^5.0", "symfony/validator": "^3.4.30|^4.3.3|^5.0", "symfony/web-profiler-bundle": "^3.4.30|^4.3.3|^5.0", "symfony/yaml": "^3.4.30|^4.3.3|^5.0", - "twig/twig": "^1.34|^2.12|^3.0", - "vimeo/psalm": "^4.7" + "twig/twig": "^1.34|^2.12" }, "suggest": { "doctrine/orm": "The Doctrine ORM integration is optional in the bundle.", - "ext-pdo": "*", "symfony/web-profiler-bundle": "To use the data collector." }, "type": "symfony-bundle", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, "autoload": { "psr-4": { "Doctrine\\Bundle\\DoctrineBundle\\": "" @@ -1045,25 +853,7 @@ "orm", "persistence" ], - "support": { - "issues": "https://github.com/doctrine/DoctrineBundle/issues", - "source": "https://github.com/doctrine/DoctrineBundle/tree/2.3.1" - }, - "funding": [ - { - "url": "https://www.doctrine-project.org/sponsorship.html", - "type": "custom" - }, - { - "url": "https://www.patreon.com/phpdoctrine", - "type": "patreon" - }, - { - "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fdoctrine-bundle", - "type": "tidelift" - } - ], - "time": "2021-04-05T14:21:02+00:00" + "time": "2020-04-23T10:52:09+00:00" }, { "name": "doctrine/doctrine-cache-bundle", @@ -1154,39 +944,35 @@ "cache", "caching" ], - "support": { - "issues": "https://github.com/doctrine/DoctrineCacheBundle/issues", - "source": "https://github.com/doctrine/DoctrineCacheBundle/tree/1.4.0" - }, "abandoned": true, "time": "2019-11-29T11:22:01+00:00" }, { "name": "doctrine/doctrine-migrations-bundle", - "version": "2.2.2", + "version": "2.1.2", "source": { "type": "git", "url": "https://github.com/doctrine/DoctrineMigrationsBundle.git", - "reference": "85f0b847174daf243362c7da80efe1539be64f47" + "reference": "856437e8de96a70233e1f0cc2352fc8dd15a899d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/DoctrineMigrationsBundle/zipball/85f0b847174daf243362c7da80efe1539be64f47", - "reference": "85f0b847174daf243362c7da80efe1539be64f47", + "url": "https://api.github.com/repos/doctrine/DoctrineMigrationsBundle/zipball/856437e8de96a70233e1f0cc2352fc8dd15a899d", + "reference": "856437e8de96a70233e1f0cc2352fc8dd15a899d", "shasum": "" }, "require": { "doctrine/doctrine-bundle": "~1.0|~2.0", "doctrine/migrations": "^2.2", - "php": "^7.1|^8.0", + "php": "^7.1", "symfony/framework-bundle": "~3.4|~4.0|~5.0" }, "require-dev": { - "doctrine/coding-standard": "^8.0", + "doctrine/coding-standard": "^5.0", "mikey179/vfsstream": "^1.6", - "phpstan/phpstan": "^0.12", - "phpstan/phpstan-strict-rules": "^0.12", - "phpunit/phpunit": "^7.0|^8.0|^9.0" + "phpstan/phpstan": "^0.9.2", + "phpstan/phpstan-strict-rules": "^0.9", + "phpunit/phpunit": "^6.4|^7.0" }, "type": "symfony-bundle", "extra": { @@ -1227,42 +1013,24 @@ "migrations", "schema" ], - "support": { - "issues": "https://github.com/doctrine/DoctrineMigrationsBundle/issues", - "source": "https://github.com/doctrine/DoctrineMigrationsBundle/tree/2.2.2" - }, - "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%2Fdoctrine-migrations-bundle", - "type": "tidelift" - } - ], - "time": "2020-12-23T15:06:17+00:00" + "time": "2019-11-13T12:57:41+00:00" }, { "name": "doctrine/event-manager", - "version": "1.1.1", + "version": "1.1.0", "source": { "type": "git", "url": "https://github.com/doctrine/event-manager.git", - "reference": "41370af6a30faa9dc0368c4a6814d596e81aba7f" + "reference": "629572819973f13486371cb611386eb17851e85c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/event-manager/zipball/41370af6a30faa9dc0368c4a6814d596e81aba7f", - "reference": "41370af6a30faa9dc0368c4a6814d596e81aba7f", + "url": "https://api.github.com/repos/doctrine/event-manager/zipball/629572819973f13486371cb611386eb17851e85c", + "reference": "629572819973f13486371cb611386eb17851e85c", "shasum": "" }, "require": { - "php": "^7.1 || ^8.0" + "php": "^7.1" }, "conflict": { "doctrine/common": "<2.9@dev" @@ -1321,42 +1089,24 @@ "event system", "events" ], - "support": { - "issues": "https://github.com/doctrine/event-manager/issues", - "source": "https://github.com/doctrine/event-manager/tree/1.1.x" - }, - "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%2Fevent-manager", - "type": "tidelift" - } - ], - "time": "2020-05-29T18:28:51+00:00" + "time": "2019-11-10T09:48:07+00:00" }, { "name": "doctrine/inflector", - "version": "1.4.3", + "version": "1.4.1", "source": { "type": "git", "url": "https://github.com/doctrine/inflector.git", - "reference": "4650c8b30c753a76bf44fb2ed00117d6f367490c" + "reference": "4111f6853aea6f28b2b1dcfdde83d12dd3d5e6e3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/inflector/zipball/4650c8b30c753a76bf44fb2ed00117d6f367490c", - "reference": "4650c8b30c753a76bf44fb2ed00117d6f367490c", + "url": "https://api.github.com/repos/doctrine/inflector/zipball/4111f6853aea6f28b2b1dcfdde83d12dd3d5e6e3", + "reference": "4111f6853aea6f28b2b1dcfdde83d12dd3d5e6e3", "shasum": "" }, "require": { - "php": "^7.2 || ^8.0" + "php": "^7.2" }, "require-dev": { "doctrine/coding-standard": "^7.0", @@ -1417,53 +1167,40 @@ "uppercase", "words" ], - "support": { - "issues": "https://github.com/doctrine/inflector/issues", - "source": "https://github.com/doctrine/inflector/tree/1.4.x" - }, - "funding": [ - { - "url": "https://www.doctrine-project.org/sponsorship.html", - "type": "custom" - }, - { - "url": "https://www.patreon.com/phpdoctrine", - "type": "patreon" - }, - { - "url": "https://tidelift.com/funding/github/packagist/doctrine%2Finflector", - "type": "tidelift" - } - ], - "time": "2020-05-29T07:19:59+00:00" + "time": "2020-05-09T15:09:09+00:00" }, { "name": "doctrine/instantiator", - "version": "1.4.0", + "version": "1.3.0", "source": { "type": "git", "url": "https://github.com/doctrine/instantiator.git", - "reference": "d56bf6102915de5702778fe20f2de3b2fe570b5b" + "reference": "ae466f726242e637cebdd526a7d991b9433bacf1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/instantiator/zipball/d56bf6102915de5702778fe20f2de3b2fe570b5b", - "reference": "d56bf6102915de5702778fe20f2de3b2fe570b5b", + "url": "https://api.github.com/repos/doctrine/instantiator/zipball/ae466f726242e637cebdd526a7d991b9433bacf1", + "reference": "ae466f726242e637cebdd526a7d991b9433bacf1", "shasum": "" }, "require": { - "php": "^7.1 || ^8.0" + "php": "^7.1" }, "require-dev": { - "doctrine/coding-standard": "^8.0", + "doctrine/coding-standard": "^6.0", "ext-pdo": "*", "ext-phar": "*", - "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" + "phpbench/phpbench": "^0.13", + "phpstan/phpstan-phpunit": "^0.11", + "phpstan/phpstan-shim": "^0.11", + "phpunit/phpunit": "^7.0" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.2.x-dev" + } + }, "autoload": { "psr-4": { "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/" @@ -1477,7 +1214,7 @@ { "name": "Marco Pivetta", "email": "ocramius@gmail.com", - "homepage": "https://ocramius.github.io/" + "homepage": "http://ocramius.github.com/" } ], "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors", @@ -1486,42 +1223,24 @@ "constructor", "instantiate" ], - "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" + "time": "2019-10-21T16:45:58+00:00" }, { "name": "doctrine/lexer", - "version": "1.2.1", + "version": "1.2.0", "source": { "type": "git", "url": "https://github.com/doctrine/lexer.git", - "reference": "e864bbf5904cb8f5bb334f99209b48018522f042" + "reference": "5242d66dbeb21a30dd8a3e66bf7a73b66e05e1f6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/lexer/zipball/e864bbf5904cb8f5bb334f99209b48018522f042", - "reference": "e864bbf5904cb8f5bb334f99209b48018522f042", + "url": "https://api.github.com/repos/doctrine/lexer/zipball/5242d66dbeb21a30dd8a3e66bf7a73b66e05e1f6", + "reference": "5242d66dbeb21a30dd8a3e66bf7a73b66e05e1f6", "shasum": "" }, "require": { - "php": "^7.2 || ^8.0" + "php": "^7.2" }, "require-dev": { "doctrine/coding-standard": "^6.0", @@ -1566,59 +1285,41 @@ "parser", "php" ], - "support": { - "issues": "https://github.com/doctrine/lexer/issues", - "source": "https://github.com/doctrine/lexer/tree/1.2.1" - }, - "funding": [ - { - "url": "https://www.doctrine-project.org/sponsorship.html", - "type": "custom" - }, - { - "url": "https://www.patreon.com/phpdoctrine", - "type": "patreon" - }, - { - "url": "https://tidelift.com/funding/github/packagist/doctrine%2Flexer", - "type": "tidelift" - } - ], - "time": "2020-05-25T17:44:05+00:00" + "time": "2019-10-30T14:39:59+00:00" }, { "name": "doctrine/migrations", - "version": "2.3.3", + "version": "2.2.1", "source": { "type": "git", "url": "https://github.com/doctrine/migrations.git", - "reference": "c4c46f7064f6e7795bd7f26549579918b46790fa" + "reference": "a3987131febeb0e9acb3c47ab0df0af004588934" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/migrations/zipball/c4c46f7064f6e7795bd7f26549579918b46790fa", - "reference": "c4c46f7064f6e7795bd7f26549579918b46790fa", + "url": "https://api.github.com/repos/doctrine/migrations/zipball/a3987131febeb0e9acb3c47ab0df0af004588934", + "reference": "a3987131febeb0e9acb3c47ab0df0af004588934", "shasum": "" }, "require": { - "composer/package-versions-deprecated": "^1.8", "doctrine/dbal": "^2.9", - "friendsofphp/proxy-manager-lts": "^1.0", - "php": "^7.1 || ^8.0", - "symfony/console": "^3.4||^4.4.16||^5.0", + "ocramius/package-versions": "^1.3", + "ocramius/proxy-manager": "^2.0.2", + "php": "^7.1", + "symfony/console": "^3.4||^4.0||^5.0", "symfony/stopwatch": "^3.4||^4.0||^5.0" }, "require-dev": { - "doctrine/coding-standard": "^8.2", + "doctrine/coding-standard": "^6.0", "doctrine/orm": "^2.6", "ext-pdo_sqlite": "*", "jdorn/sql-formatter": "^1.1", "mikey179/vfsstream": "^1.6", - "phpstan/phpstan": "^0.12", - "phpstan/phpstan-deprecation-rules": "^0.12", - "phpstan/phpstan-phpunit": "^0.12", - "phpstan/phpstan-strict-rules": "^0.12", - "phpunit/phpunit": "^7.5 || ^8.5 || ^9.4", + "phpstan/phpstan": "^0.10", + "phpstan/phpstan-deprecation-rules": "^0.10", + "phpstan/phpstan-phpunit": "^0.10", + "phpstan/phpstan-strict-rules": "^0.10", + "phpunit/phpunit": "^7.0", "symfony/process": "^3.4||^4.0||^5.0", "symfony/yaml": "^3.4||^4.0||^5.0" }, @@ -1666,62 +1367,40 @@ "migrations", "php" ], - "support": { - "issues": "https://github.com/doctrine/migrations/issues", - "source": "https://github.com/doctrine/migrations/tree/2.3.3" - }, - "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%2Fmigrations", - "type": "tidelift" - } - ], - "time": "2021-03-14T10:22:48+00:00" + "time": "2019-12-04T06:09:14+00:00" }, { "name": "doctrine/orm", - "version": "2.7.5", + "version": "v2.7.2", "source": { "type": "git", "url": "https://github.com/doctrine/orm.git", - "reference": "01187c9260cd085529ddd1273665217cae659640" + "reference": "dafe298ce5d0b995ebe1746670704c0a35868a6a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/orm/zipball/01187c9260cd085529ddd1273665217cae659640", - "reference": "01187c9260cd085529ddd1273665217cae659640", + "url": "https://api.github.com/repos/doctrine/orm/zipball/dafe298ce5d0b995ebe1746670704c0a35868a6a", + "reference": "dafe298ce5d0b995ebe1746670704c0a35868a6a", "shasum": "" }, "require": { - "composer/package-versions-deprecated": "^1.8", - "doctrine/annotations": "^1.11.1", + "doctrine/annotations": "^1.8", "doctrine/cache": "^1.9.1", "doctrine/collections": "^1.5", - "doctrine/common": "^2.11 || ^3.0", + "doctrine/common": "^2.11", "doctrine/dbal": "^2.9.3", "doctrine/event-manager": "^1.1", - "doctrine/inflector": "^1.0", "doctrine/instantiator": "^1.3", - "doctrine/lexer": "^1.0", - "doctrine/persistence": "^1.3.3 || ^2.0", + "doctrine/persistence": "^1.2", "ext-pdo": "*", + "ocramius/package-versions": "^1.2", "php": "^7.1", "symfony/console": "^3.0|^4.0|^5.0" }, "require-dev": { - "doctrine/coding-standard": "^6.0", - "phpstan/phpstan": "^0.12.18", - "phpunit/phpunit": "^8.0", - "symfony/yaml": "^3.4|^4.0|^5.0", - "vimeo/psalm": "^3.11" + "doctrine/coding-standard": "^5.0", + "phpunit/phpunit": "^7.5", + "symfony/yaml": "^3.4|^4.0|^5.0" }, "suggest": { "symfony/yaml": "If you want to use YAML Metadata Mapping Driver" @@ -1772,24 +1451,20 @@ "database", "orm" ], - "support": { - "issues": "https://github.com/doctrine/orm/issues", - "source": "https://github.com/doctrine/orm/tree/2.7.5" - }, - "time": "2020-12-03T08:52:14+00:00" + "time": "2020-03-19T06:41:02+00:00" }, { "name": "doctrine/persistence", - "version": "1.3.8", + "version": "1.3.7", "source": { "type": "git", "url": "https://github.com/doctrine/persistence.git", - "reference": "7a6eac9fb6f61bba91328f15aa7547f4806ca288" + "reference": "0af483f91bada1c9ded6c2cfd26ab7d5ab2094e0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/persistence/zipball/7a6eac9fb6f61bba91328f15aa7547f4806ca288", - "reference": "7a6eac9fb6f61bba91328f15aa7547f4806ca288", + "url": "https://api.github.com/repos/doctrine/persistence/zipball/0af483f91bada1c9ded6c2cfd26ab7d5ab2094e0", + "reference": "0af483f91bada1c9ded6c2cfd26ab7d5ab2094e0", "shasum": "" }, "require": { @@ -1798,7 +1473,7 @@ "doctrine/collections": "^1.0", "doctrine/event-manager": "^1.0", "doctrine/reflection": "^1.2", - "php": "^7.1 || ^8.0" + "php": "^7.1" }, "conflict": { "doctrine/common": "<2.10@dev" @@ -1806,8 +1481,7 @@ "require-dev": { "doctrine/coding-standard": "^6.0", "phpstan/phpstan": "^0.11", - "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0", - "vimeo/psalm": "^3.11" + "phpunit/phpunit": "^7.0" }, "type": "library", "extra": { @@ -1860,54 +1534,36 @@ "orm", "persistence" ], - "support": { - "issues": "https://github.com/doctrine/persistence/issues", - "source": "https://github.com/doctrine/persistence/tree/1.3.x" - }, - "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%2Fpersistence", - "type": "tidelift" - } - ], - "time": "2020-06-20T12:56:16+00:00" + "time": "2020-03-21T15:13:52+00:00" }, { "name": "doctrine/reflection", - "version": "1.2.2", + "version": "1.2.1", "source": { "type": "git", "url": "https://github.com/doctrine/reflection.git", - "reference": "fa587178be682efe90d005e3a322590d6ebb59a5" + "reference": "55e71912dfcd824b2fdd16f2d9afe15684cfce79" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/reflection/zipball/fa587178be682efe90d005e3a322590d6ebb59a5", - "reference": "fa587178be682efe90d005e3a322590d6ebb59a5", + "url": "https://api.github.com/repos/doctrine/reflection/zipball/55e71912dfcd824b2fdd16f2d9afe15684cfce79", + "reference": "55e71912dfcd824b2fdd16f2d9afe15684cfce79", "shasum": "" }, "require": { "doctrine/annotations": "^1.0", "ext-tokenizer": "*", - "php": "^7.1 || ^8.0" + "php": "^7.1" }, "conflict": { "doctrine/common": "<2.9" }, "require-dev": { - "doctrine/coding-standard": "^6.0 || ^8.2.0", + "doctrine/coding-standard": "^5.0", "doctrine/common": "^2.10", - "phpstan/phpstan": "^0.11.0 || ^0.12.20", - "phpstan/phpstan-phpunit": "^0.11.0 || ^0.12.16", - "phpunit/phpunit": "^7.5 || ^9.1.5" + "phpstan/phpstan": "^0.11.0", + "phpstan/phpstan-phpunit": "^0.11.0", + "phpunit/phpunit": "^7.0" }, "type": "library", "extra": { @@ -1956,91 +1612,29 @@ "reflection", "static" ], - "support": { - "issues": "https://github.com/doctrine/reflection/issues", - "source": "https://github.com/doctrine/reflection/tree/1.2.2" - }, "abandoned": "roave/better-reflection", - "time": "2020-10-27T21:46:55+00:00" - }, - { - "name": "doctrine/sql-formatter", - "version": "1.1.1", - "source": { - "type": "git", - "url": "https://github.com/doctrine/sql-formatter.git", - "reference": "56070bebac6e77230ed7d306ad13528e60732871" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/sql-formatter/zipball/56070bebac6e77230ed7d306ad13528e60732871", - "reference": "56070bebac6e77230ed7d306ad13528e60732871", - "shasum": "" - }, - "require": { - "php": "^7.1 || ^8.0" - }, - "require-dev": { - "bamarni/composer-bin-plugin": "^1.4" - }, - "bin": [ - "bin/sql-formatter" - ], - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.x-dev" - } - }, - "autoload": { - "psr-4": { - "Doctrine\\SqlFormatter\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Jeremy Dorn", - "email": "jeremy@jeremydorn.com", - "homepage": "http://jeremydorn.com/" - } - ], - "description": "a PHP SQL highlighting library", - "homepage": "https://github.com/doctrine/sql-formatter/", - "keywords": [ - "highlight", - "sql" - ], - "support": { - "issues": "https://github.com/doctrine/sql-formatter/issues", - "source": "https://github.com/doctrine/sql-formatter/tree/1.1.x" - }, - "time": "2020-07-30T16:57:33+00:00" + "time": "2020-03-27T11:06:43+00:00" }, { "name": "edwinhoksberg/php-fcm", - "version": "v1.2.0", + "version": "1.0.0", "source": { "type": "git", "url": "https://github.com/EdwinHoksberg/php-fcm.git", - "reference": "660bbe4ae71e02090f16b11b4a993dfebab83f7f" + "reference": "7be637139fe54ec23f37c8dba519bafa7543e336" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/EdwinHoksberg/php-fcm/zipball/660bbe4ae71e02090f16b11b4a993dfebab83f7f", - "reference": "660bbe4ae71e02090f16b11b4a993dfebab83f7f", + "url": "https://api.github.com/repos/EdwinHoksberg/php-fcm/zipball/7be637139fe54ec23f37c8dba519bafa7543e336", + "reference": "7be637139fe54ec23f37c8dba519bafa7543e336", "shasum": "" }, "require": { - "guzzlehttp/guzzle": "^6.3 || ^7.0", - "php": ">= 7.2" + "guzzlehttp/guzzle": "^6.3", + "php": ">= 7.0" }, "require-dev": { "mockery/mockery": "^1.0", - "php-coveralls/php-coveralls": "^2.3", "phpunit/phpunit": "^6.5" }, "type": "library", @@ -2068,114 +1662,27 @@ "google", "notifications" ], - "support": { - "issues": "https://github.com/EdwinHoksberg/php-fcm/issues", - "source": "https://github.com/EdwinHoksberg/php-fcm/tree/v1.2.0" - }, - "time": "2021-01-19T01:15:30+00:00" - }, - { - "name": "friendsofphp/proxy-manager-lts", - "version": "v1.0.3", - "source": { - "type": "git", - "url": "https://github.com/FriendsOfPHP/proxy-manager-lts.git", - "reference": "121af47c9aee9c03031bdeca3fac0540f59aa5c3" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/FriendsOfPHP/proxy-manager-lts/zipball/121af47c9aee9c03031bdeca3fac0540f59aa5c3", - "reference": "121af47c9aee9c03031bdeca3fac0540f59aa5c3", - "shasum": "" - }, - "require": { - "laminas/laminas-code": "~3.4.1|^4.0", - "php": ">=7.1", - "symfony/filesystem": "^4.4.17|^5.0" - }, - "conflict": { - "laminas/laminas-stdlib": "<3.2.1", - "zendframework/zend-stdlib": "<3.2.1" - }, - "replace": { - "ocramius/proxy-manager": "^2.1" - }, - "require-dev": { - "ext-phar": "*", - "symfony/phpunit-bridge": "^5.2" - }, - "type": "library", - "extra": { - "thanks": { - "name": "ocramius/proxy-manager", - "url": "https://github.com/Ocramius/ProxyManager" - } - }, - "autoload": { - "psr-4": { - "ProxyManager\\": "src/ProxyManager" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Marco Pivetta", - "email": "ocramius@gmail.com", - "homepage": "http://ocramius.github.io/" - }, - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - } - ], - "description": "Adding support for a wider range of PHP versions to ocramius/proxy-manager", - "homepage": "https://github.com/FriendsOfPHP/proxy-manager-lts", - "keywords": [ - "aop", - "lazy loading", - "proxy", - "proxy pattern", - "service proxies" - ], - "support": { - "issues": "https://github.com/FriendsOfPHP/proxy-manager-lts/issues", - "source": "https://github.com/FriendsOfPHP/proxy-manager-lts/tree/v1.0.3" - }, - "funding": [ - { - "url": "https://github.com/Ocramius", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/ocramius/proxy-manager", - "type": "tidelift" - } - ], - "time": "2021-01-14T21:52:44+00:00" + "time": "2018-04-09T19:32:41+00:00" }, { "name": "guzzlehttp/guzzle", - "version": "6.5.5", + "version": "6.5.2", "source": { "type": "git", "url": "https://github.com/guzzle/guzzle.git", - "reference": "9d4290de1cfd701f38099ef7e183b64b4b7b0c5e" + "reference": "43ece0e75098b7ecd8d13918293029e555a50f82" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/guzzle/zipball/9d4290de1cfd701f38099ef7e183b64b4b7b0c5e", - "reference": "9d4290de1cfd701f38099ef7e183b64b4b7b0c5e", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/43ece0e75098b7ecd8d13918293029e555a50f82", + "reference": "43ece0e75098b7ecd8d13918293029e555a50f82", "shasum": "" }, "require": { "ext-json": "*", "guzzlehttp/promises": "^1.0", "guzzlehttp/psr7": "^1.6.1", - "php": ">=5.5", - "symfony/polyfill-intl-idn": "^1.17.0" + "php": ">=5.5" }, "require-dev": { "ext-curl": "*", @@ -2183,6 +1690,7 @@ "psr/log": "^1.1" }, "suggest": { + "ext-intl": "Required for Internationalized Domain Name (IDN) support", "psr/log": "Required for using the Log middleware" }, "type": "library", @@ -2221,31 +1729,27 @@ "rest", "web service" ], - "support": { - "issues": "https://github.com/guzzle/guzzle/issues", - "source": "https://github.com/guzzle/guzzle/tree/6.5" - }, - "time": "2020-06-16T21:01:06+00:00" + "time": "2019-12-23T11:57:10+00:00" }, { "name": "guzzlehttp/promises", - "version": "1.4.1", + "version": "v1.3.1", "source": { "type": "git", "url": "https://github.com/guzzle/promises.git", - "reference": "8e7d04f1f6450fef59366c399cfad4b9383aa30d" + "reference": "a59da6cf61d80060647ff4d3eb2c03a2bc694646" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/promises/zipball/8e7d04f1f6450fef59366c399cfad4b9383aa30d", - "reference": "8e7d04f1f6450fef59366c399cfad4b9383aa30d", + "url": "https://api.github.com/repos/guzzle/promises/zipball/a59da6cf61d80060647ff4d3eb2c03a2bc694646", + "reference": "a59da6cf61d80060647ff4d3eb2c03a2bc694646", "shasum": "" }, "require": { - "php": ">=5.5" + "php": ">=5.5.0" }, "require-dev": { - "symfony/phpunit-bridge": "^4.4 || ^5.1" + "phpunit/phpunit": "^4.0" }, "type": "library", "extra": { @@ -2276,24 +1780,20 @@ "keywords": [ "promise" ], - "support": { - "issues": "https://github.com/guzzle/promises/issues", - "source": "https://github.com/guzzle/promises/tree/1.4.1" - }, - "time": "2021-03-07T09:25:29+00:00" + "time": "2016-12-20T10:07:11+00:00" }, { "name": "guzzlehttp/psr7", - "version": "1.8.1", + "version": "1.6.1", "source": { "type": "git", "url": "https://github.com/guzzle/psr7.git", - "reference": "35ea11d335fd638b5882ff1725228b3d35496ab1" + "reference": "239400de7a173fe9901b9ac7c06497751f00727a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/psr7/zipball/35ea11d335fd638b5882ff1725228b3d35496ab1", - "reference": "35ea11d335fd638b5882ff1725228b3d35496ab1", + "url": "https://api.github.com/repos/guzzle/psr7/zipball/239400de7a173fe9901b9ac7c06497751f00727a", + "reference": "239400de7a173fe9901b9ac7c06497751f00727a", "shasum": "" }, "require": { @@ -2306,15 +1806,15 @@ }, "require-dev": { "ext-zlib": "*", - "phpunit/phpunit": "~4.8.36 || ^5.7.27 || ^6.5.14 || ^7.5.20 || ^8.5.8 || ^9.3.10" + "phpunit/phpunit": "~4.8.36 || ^5.7.27 || ^6.5.8" }, "suggest": { - "laminas/laminas-httphandlerrunner": "Emit PSR-7 responses" + "zendframework/zend-httphandlerrunner": "Emit PSR-7 responses" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.7-dev" + "dev-master": "1.6-dev" } }, "autoload": { @@ -2351,206 +1851,57 @@ "uri", "url" ], - "support": { - "issues": "https://github.com/guzzle/psr7/issues", - "source": "https://github.com/guzzle/psr7/tree/1.8.1" - }, - "time": "2021-03-21T16:25:00+00:00" + "time": "2019-07-01T23:21:34+00:00" }, { - "name": "laminas/laminas-code", - "version": "3.4.1", + "name": "jdorn/sql-formatter", + "version": "v1.2.17", "source": { "type": "git", - "url": "https://github.com/laminas/laminas-code.git", - "reference": "1cb8f203389ab1482bf89c0e70a04849bacd7766" + "url": "https://github.com/jdorn/sql-formatter.git", + "reference": "64990d96e0959dff8e059dfcdc1af130728d92bc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laminas/laminas-code/zipball/1cb8f203389ab1482bf89c0e70a04849bacd7766", - "reference": "1cb8f203389ab1482bf89c0e70a04849bacd7766", + "url": "https://api.github.com/repos/jdorn/sql-formatter/zipball/64990d96e0959dff8e059dfcdc1af130728d92bc", + "reference": "64990d96e0959dff8e059dfcdc1af130728d92bc", "shasum": "" }, "require": { - "laminas/laminas-eventmanager": "^2.6 || ^3.0", - "laminas/laminas-zendframework-bridge": "^1.0", - "php": "^7.1" - }, - "conflict": { - "phpspec/prophecy": "<1.9.0" - }, - "replace": { - "zendframework/zend-code": "self.version" + "php": ">=5.2.4" }, "require-dev": { - "doctrine/annotations": "^1.7", - "ext-phar": "*", - "laminas/laminas-coding-standard": "^1.0", - "laminas/laminas-stdlib": "^2.7 || ^3.0", - "phpunit/phpunit": "^7.5.16 || ^8.4" - }, - "suggest": { - "doctrine/annotations": "Doctrine\\Common\\Annotations >=1.0 for annotation features", - "laminas/laminas-stdlib": "Laminas\\Stdlib component" + "phpunit/phpunit": "3.7.*" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.4.x-dev", - "dev-develop": "3.5.x-dev", - "dev-dev-4.0": "4.0.x-dev" + "dev-master": "1.3.x-dev" } }, "autoload": { - "psr-4": { - "Laminas\\Code\\": "src/" - } + "classmap": [ + "lib" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], - "description": "Extensions to the PHP Reflection API, static code scanning, and code generation", - "homepage": "https://laminas.dev", - "keywords": [ - "code", - "laminas" - ], - "support": { - "chat": "https://laminas.dev/chat", - "docs": "https://docs.laminas.dev/laminas-code/", - "forum": "https://discourse.laminas.dev", - "issues": "https://github.com/laminas/laminas-code/issues", - "rss": "https://github.com/laminas/laminas-code/releases.atom", - "source": "https://github.com/laminas/laminas-code" - }, - "time": "2019-12-31T16:28:24+00:00" - }, - { - "name": "laminas/laminas-eventmanager", - "version": "3.2.1", - "source": { - "type": "git", - "url": "https://github.com/laminas/laminas-eventmanager.git", - "reference": "ce4dc0bdf3b14b7f9815775af9dfee80a63b4748" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/laminas/laminas-eventmanager/zipball/ce4dc0bdf3b14b7f9815775af9dfee80a63b4748", - "reference": "ce4dc0bdf3b14b7f9815775af9dfee80a63b4748", - "shasum": "" - }, - "require": { - "laminas/laminas-zendframework-bridge": "^1.0", - "php": "^5.6 || ^7.0" - }, - "replace": { - "zendframework/zend-eventmanager": "self.version" - }, - "require-dev": { - "athletic/athletic": "^0.1", - "container-interop/container-interop": "^1.1.0", - "laminas/laminas-coding-standard": "~1.0.0", - "laminas/laminas-stdlib": "^2.7.3 || ^3.0", - "phpunit/phpunit": "^5.7.27 || ^6.5.8 || ^7.1.2" - }, - "suggest": { - "container-interop/container-interop": "^1.1.0, to use the lazy listeners feature", - "laminas/laminas-stdlib": "^2.7.3 || ^3.0, to use the FilterChain feature" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.2-dev", - "dev-develop": "3.3-dev" - } - }, - "autoload": { - "psr-4": { - "Laminas\\EventManager\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "description": "Trigger and listen to events within a PHP application", - "homepage": "https://laminas.dev", - "keywords": [ - "event", - "eventmanager", - "events", - "laminas" - ], - "support": { - "chat": "https://laminas.dev/chat", - "docs": "https://docs.laminas.dev/laminas-eventmanager/", - "forum": "https://discourse.laminas.dev", - "issues": "https://github.com/laminas/laminas-eventmanager/issues", - "rss": "https://github.com/laminas/laminas-eventmanager/releases.atom", - "source": "https://github.com/laminas/laminas-eventmanager" - }, - "time": "2019-12-31T16:44:52+00:00" - }, - { - "name": "laminas/laminas-zendframework-bridge", - "version": "1.1.1", - "source": { - "type": "git", - "url": "https://github.com/laminas/laminas-zendframework-bridge.git", - "reference": "6ede70583e101030bcace4dcddd648f760ddf642" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/laminas/laminas-zendframework-bridge/zipball/6ede70583e101030bcace4dcddd648f760ddf642", - "reference": "6ede70583e101030bcace4dcddd648f760ddf642", - "shasum": "" - }, - "require": { - "php": "^5.6 || ^7.0 || ^8.0" - }, - "require-dev": { - "phpunit/phpunit": "^5.7 || ^6.5 || ^7.5 || ^8.1 || ^9.3", - "squizlabs/php_codesniffer": "^3.5" - }, - "type": "library", - "extra": { - "laminas": { - "module": "Laminas\\ZendFrameworkBridge" - } - }, - "autoload": { - "files": [ - "src/autoload.php" - ], - "psr-4": { - "Laminas\\ZendFrameworkBridge\\": "src//" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "description": "Alias legacy ZF class names to Laminas Project equivalents.", - "keywords": [ - "ZendFramework", - "autoloading", - "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": [ + "authors": [ { - "url": "https://funding.communitybridge.org/projects/laminas-project", - "type": "community_bridge" + "name": "Jeremy Dorn", + "email": "jeremy@jeremydorn.com", + "homepage": "http://jeremydorn.com/" } ], - "time": "2020-09-14T14:23:00+00:00" + "description": "a PHP SQL highlighting library", + "homepage": "https://github.com/jdorn/sql-formatter/", + "keywords": [ + "highlight", + "sql" + ], + "time": "2014-01-12T16:20:24+00:00" }, { "name": "microsoft/azure-storage-blob", @@ -2594,10 +1945,6 @@ "sdk", "storage" ], - "support": { - "issues": "https://github.com/Azure/azure-storage-blob-php/issues", - "source": "https://github.com/Azure/azure-storage-blob-php/tree/v1.5.2" - }, "time": "2020-12-29T02:22:11+00:00" }, { @@ -2642,24 +1989,102 @@ "sdk", "storage" ], - "support": { - "issues": "https://github.com/Azure/azure-storage-common-php/issues", - "source": "https://github.com/Azure/azure-storage-common-php/tree/v1.5.1" - }, "time": "2020-12-28T07:59:51+00:00" }, { - "name": "nikic/php-parser", - "version": "v4.10.4", + "name": "monolog/monolog", + "version": "2.2.0", "source": { "type": "git", - "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "c6d052fc58cb876152f89f532b95a8d7907e7f0e" + "url": "https://github.com/Seldaek/monolog.git", + "reference": "1cb1cde8e8dd0f70cc0fe51354a59acad9302084" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/c6d052fc58cb876152f89f532b95a8d7907e7f0e", - "reference": "c6d052fc58cb876152f89f532b95a8d7907e7f0e", + "url": "https://api.github.com/repos/Seldaek/monolog/zipball/1cb1cde8e8dd0f70cc0fe51354a59acad9302084", + "reference": "1cb1cde8e8dd0f70cc0fe51354a59acad9302084", + "shasum": "" + }, + "require": { + "php": ">=7.2", + "psr/log": "^1.0.1" + }, + "provide": { + "psr/log-implementation": "1.0.0" + }, + "require-dev": { + "aws/aws-sdk-php": "^2.4.9 || ^3.0", + "doctrine/couchdb": "~1.0@dev", + "elasticsearch/elasticsearch": "^7", + "graylog2/gelf-php": "^1.4.2", + "mongodb/mongodb": "^1.8", + "php-amqplib/php-amqplib": "~2.4", + "php-console/php-console": "^3.1.3", + "phpspec/prophecy": "^1.6.1", + "phpstan/phpstan": "^0.12.59", + "phpunit/phpunit": "^8.5", + "predis/predis": "^1.1", + "rollbar/rollbar": "^1.3", + "ruflin/elastica": ">=0.90 <7.0.1", + "swiftmailer/swiftmailer": "^5.3|^6.0" + }, + "suggest": { + "aws/aws-sdk-php": "Allow sending log messages to AWS services like DynamoDB", + "doctrine/couchdb": "Allow sending log messages to a CouchDB server", + "elasticsearch/elasticsearch": "Allow sending log messages to an Elasticsearch server via official client", + "ext-amqp": "Allow sending log messages to an AMQP server (1.0+ required)", + "ext-mbstring": "Allow to work properly with unicode symbols", + "ext-mongodb": "Allow sending log messages to a MongoDB server (via driver)", + "graylog2/gelf-php": "Allow sending log messages to a GrayLog2 server", + "mongodb/mongodb": "Allow sending log messages to a MongoDB server (via library)", + "php-amqplib/php-amqplib": "Allow sending log messages to an AMQP server using php-amqplib", + "php-console/php-console": "Allow sending log messages to Google Chrome", + "rollbar/rollbar": "Allow sending log messages to Rollbar", + "ruflin/elastica": "Allow sending log messages to an Elastic Search server" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "2.x-dev" + } + }, + "autoload": { + "psr-4": { + "Monolog\\": "src/Monolog" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "https://seld.be" + } + ], + "description": "Sends your logs to files, sockets, inboxes, databases and various web services", + "homepage": "https://github.com/Seldaek/monolog", + "keywords": [ + "log", + "logging", + "psr-3" + ], + "time": "2020-12-14T13:15:25+00:00" + }, + { + "name": "nikic/php-parser", + "version": "v4.3.0", + "source": { + "type": "git", + "url": "https://github.com/nikic/PHP-Parser.git", + "reference": "9a9981c347c5c49d6dfe5cf826bb882b824080dc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/9a9981c347c5c49d6dfe5cf826bb882b824080dc", + "reference": "9a9981c347c5c49d6dfe5cf826bb882b824080dc", "shasum": "" }, "require": { @@ -2667,8 +2092,8 @@ "php": ">=7.0" }, "require-dev": { - "ircmaxell/php-yacc": "^0.0.7", - "phpunit/phpunit": "^6.5 || ^7.0 || ^8.0 || ^9.0" + "ircmaxell/php-yacc": "0.0.5", + "phpunit/phpunit": "^6.5 || ^7.0 || ^8.0" }, "bin": [ "bin/php-parse" @@ -2676,7 +2101,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "4.9-dev" + "dev-master": "4.3-dev" } }, "autoload": { @@ -2698,24 +2123,140 @@ "parser", "php" ], - "support": { - "issues": "https://github.com/nikic/PHP-Parser/issues", - "source": "https://github.com/nikic/PHP-Parser/tree/v4.10.4" - }, - "time": "2020-12-20T10:01:03+00:00" + "time": "2019-11-08T13:50:10+00:00" }, { - "name": "predis/predis", - "version": "v1.1.7", + "name": "ocramius/package-versions", + "version": "1.4.2", "source": { "type": "git", - "url": "https://github.com/predis/predis.git", - "reference": "b240daa106d4e02f0c5b7079b41e31ddf66fddf8" + "url": "https://github.com/Ocramius/PackageVersions.git", + "reference": "44af6f3a2e2e04f2af46bcb302ad9600cba41c7d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/predis/predis/zipball/b240daa106d4e02f0c5b7079b41e31ddf66fddf8", - "reference": "b240daa106d4e02f0c5b7079b41e31ddf66fddf8", + "url": "https://api.github.com/repos/Ocramius/PackageVersions/zipball/44af6f3a2e2e04f2af46bcb302ad9600cba41c7d", + "reference": "44af6f3a2e2e04f2af46bcb302ad9600cba41c7d", + "shasum": "" + }, + "require": { + "composer-plugin-api": "^1.0.0", + "php": "^7.1.0" + }, + "require-dev": { + "composer/composer": "^1.6.3", + "doctrine/coding-standard": "^5.0.1", + "ext-zip": "*", + "infection/infection": "^0.7.1", + "phpunit/phpunit": "^7.5.17" + }, + "type": "composer-plugin", + "extra": { + "class": "PackageVersions\\Installer", + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "PackageVersions\\": "src/PackageVersions" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Marco Pivetta", + "email": "ocramius@gmail.com" + } + ], + "description": "Composer plugin that provides efficient querying for installed package versions (no runtime IO)", + "time": "2019-11-15T16:17:10+00:00" + }, + { + "name": "ocramius/proxy-manager", + "version": "2.2.3", + "source": { + "type": "git", + "url": "https://github.com/Ocramius/ProxyManager.git", + "reference": "4d154742e31c35137d5374c998e8f86b54db2e2f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Ocramius/ProxyManager/zipball/4d154742e31c35137d5374c998e8f86b54db2e2f", + "reference": "4d154742e31c35137d5374c998e8f86b54db2e2f", + "shasum": "" + }, + "require": { + "ocramius/package-versions": "^1.1.3", + "php": "^7.2.0", + "zendframework/zend-code": "^3.3.0" + }, + "require-dev": { + "couscous/couscous": "^1.6.1", + "ext-phar": "*", + "humbug/humbug": "1.0.0-RC.0@RC", + "nikic/php-parser": "^3.1.1", + "padraic/phpunit-accelerator": "dev-master@DEV", + "phpbench/phpbench": "^0.12.2", + "phpstan/phpstan": "dev-master#856eb10a81c1d27c701a83f167dc870fd8f4236a as 0.9.999", + "phpstan/phpstan-phpunit": "dev-master#5629c0a1f4a9c417cb1077cf6693ad9753895761", + "phpunit/phpunit": "^6.4.3", + "squizlabs/php_codesniffer": "^2.9.1" + }, + "suggest": { + "ocramius/generated-hydrator": "To have very fast object to array to object conversion for ghost objects", + "zendframework/zend-json": "To have the JsonRpc adapter (Remote Object feature)", + "zendframework/zend-soap": "To have the Soap adapter (Remote Object feature)", + "zendframework/zend-xmlrpc": "To have the XmlRpc adapter (Remote Object feature)" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0.x-dev" + } + }, + "autoload": { + "psr-0": { + "ProxyManager\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Marco Pivetta", + "email": "ocramius@gmail.com", + "homepage": "http://ocramius.github.io/" + } + ], + "description": "A library providing utilities to generate, instantiate and generally operate with Object Proxies", + "homepage": "https://github.com/Ocramius/ProxyManager", + "keywords": [ + "aop", + "lazy loading", + "proxy", + "proxy pattern", + "service proxies" + ], + "time": "2019-08-10T08:37:15+00:00" + }, + { + "name": "predis/predis", + "version": "v1.1.1", + "source": { + "type": "git", + "url": "https://github.com/predis/predis.git", + "reference": "f0210e38881631afeafb56ab43405a92cafd9fd1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/predis/predis/zipball/f0210e38881631afeafb56ab43405a92cafd9fd1", + "reference": "f0210e38881631afeafb56ab43405a92cafd9fd1", "shasum": "" }, "require": { @@ -2742,33 +2283,17 @@ { "name": "Daniele Alessandri", "email": "suppakilla@gmail.com", - "homepage": "http://clorophilla.net", - "role": "Creator & Maintainer" - }, - { - "name": "Till Krüss", - "homepage": "https://till.im", - "role": "Maintainer" + "homepage": "http://clorophilla.net" } ], "description": "Flexible and feature-complete Redis client for PHP and HHVM", - "homepage": "http://github.com/predis/predis", + "homepage": "http://github.com/nrk/predis", "keywords": [ "nosql", "predis", "redis" ], - "support": { - "issues": "https://github.com/predis/predis/issues", - "source": "https://github.com/predis/predis/tree/v1.1.7" - }, - "funding": [ - { - "url": "https://github.com/sponsors/tillkruss", - "type": "github" - } - ], - "time": "2021-04-04T19:34:46+00:00" + "time": "2016-06-16T16:22:20+00:00" }, { "name": "psr/cache", @@ -2814,29 +2339,31 @@ "psr", "psr-6" ], - "support": { - "source": "https://github.com/php-fig/cache/tree/master" - }, "time": "2016-08-06T20:24:11+00:00" }, { "name": "psr/container", - "version": "1.1.1", + "version": "1.0.0", "source": { "type": "git", "url": "https://github.com/php-fig/container.git", - "reference": "8622567409010282b7aeebe4bb841fe98b58dcaf" + "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/container/zipball/8622567409010282b7aeebe4bb841fe98b58dcaf", - "reference": "8622567409010282b7aeebe4bb841fe98b58dcaf", + "url": "https://api.github.com/repos/php-fig/container/zipball/b7ce3b176482dbbc1245ebf52b181af44c2cf55f", + "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f", "shasum": "" }, "require": { - "php": ">=7.2.0" + "php": ">=5.3.0" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, "autoload": { "psr-4": { "Psr\\Container\\": "src/" @@ -2849,7 +2376,7 @@ "authors": [ { "name": "PHP-FIG", - "homepage": "https://www.php-fig.org/" + "homepage": "http://www.php-fig.org/" } ], "description": "Common Container Interface (PHP FIG PSR-11)", @@ -2861,11 +2388,7 @@ "container-interop", "psr" ], - "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" + "time": "2017-02-14T16:28:37+00:00" }, { "name": "psr/http-message", @@ -2915,9 +2438,6 @@ "request", "response" ], - "support": { - "source": "https://github.com/php-fig/http-message/tree/master" - }, "time": "2016-08-06T14:39:51+00:00" }, { @@ -2965,9 +2485,6 @@ "psr", "psr-3" ], - "support": { - "source": "https://github.com/php-fig/log/tree/1.1.3" - }, "time": "2020-03-23T09:12:05+00:00" }, { @@ -3008,61 +2525,59 @@ } ], "description": "A polyfill for getallheaders.", - "support": { - "issues": "https://github.com/ralouphie/getallheaders/issues", - "source": "https://github.com/ralouphie/getallheaders/tree/develop" - }, "time": "2019-03-08T08:55:37+00:00" }, { "name": "sensio/framework-extra-bundle", - "version": "v5.6.1", + "version": "v5.5.3", "source": { "type": "git", "url": "https://github.com/sensiolabs/SensioFrameworkExtraBundle.git", - "reference": "430d14c01836b77c28092883d195a43ce413ee32" + "reference": "98f0807137b13d0acfdf3c255a731516e97015de" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sensiolabs/SensioFrameworkExtraBundle/zipball/430d14c01836b77c28092883d195a43ce413ee32", - "reference": "430d14c01836b77c28092883d195a43ce413ee32", + "url": "https://api.github.com/repos/sensiolabs/SensioFrameworkExtraBundle/zipball/98f0807137b13d0acfdf3c255a731516e97015de", + "reference": "98f0807137b13d0acfdf3c255a731516e97015de", "shasum": "" }, "require": { "doctrine/annotations": "^1.0", - "php": ">=7.2.5", - "symfony/config": "^4.4|^5.0", - "symfony/dependency-injection": "^4.4|^5.0", - "symfony/framework-bundle": "^4.4|^5.0", - "symfony/http-kernel": "^4.4|^5.0" + "php": ">=7.1.3", + "symfony/config": "^4.3|^5.0", + "symfony/dependency-injection": "^4.3|^5.0", + "symfony/framework-bundle": "^4.3|^5.0", + "symfony/http-kernel": "^4.3|^5.0" }, "conflict": { - "doctrine/doctrine-cache-bundle": "<1.3.1", - "doctrine/persistence": "<1.3" + "doctrine/doctrine-cache-bundle": "<1.3.1" }, "require-dev": { - "doctrine/dbal": "^2.10|^3.0", "doctrine/doctrine-bundle": "^1.11|^2.0", "doctrine/orm": "^2.5", "nyholm/psr7": "^1.1", - "symfony/browser-kit": "^4.4|^5.0", - "symfony/doctrine-bridge": "^4.4|^5.0", - "symfony/dom-crawler": "^4.4|^5.0", - "symfony/expression-language": "^4.4|^5.0", - "symfony/finder": "^4.4|^5.0", + "symfony/browser-kit": "^4.3|^5.0", + "symfony/dom-crawler": "^4.3|^5.0", + "symfony/expression-language": "^4.3|^5.0", + "symfony/finder": "^4.3|^5.0", "symfony/monolog-bridge": "^4.0|^5.0", "symfony/monolog-bundle": "^3.2", - "symfony/phpunit-bridge": "^4.4.9|^5.0.9", + "symfony/phpunit-bridge": "^4.3.5|^5.0", "symfony/psr-http-message-bridge": "^1.1", - "symfony/security-bundle": "^4.4|^5.0", - "symfony/twig-bundle": "^4.4|^5.0", - "symfony/yaml": "^4.4|^5.0", + "symfony/security-bundle": "^4.3|^5.0", + "symfony/twig-bundle": "^4.3|^5.0", + "symfony/yaml": "^4.3|^5.0", "twig/twig": "^1.34|^2.4|^3.0" }, + "suggest": { + "symfony/expression-language": "", + "symfony/psr-http-message-bridge": "To use the PSR-7 converters", + "symfony/security-bundle": "" + }, "type": "symfony-bundle", "extra": { "branch-alias": { - "dev-master": "5.6.x-dev" + "dev-master": "5.5.x-dev" } }, "autoload": { @@ -3088,11 +2603,7 @@ "annotations", "controllers" ], - "support": { - "issues": "https://github.com/sensiolabs/SensioFrameworkExtraBundle/issues", - "source": "https://github.com/sensiolabs/SensioFrameworkExtraBundle/tree/v5.6.1" - }, - "time": "2020-08-25T19:10:18+00:00" + "time": "2019-12-27T08:57:19+00:00" }, { "name": "setasign/fpdf", @@ -3131,27 +2642,24 @@ "fpdf", "pdf" ], - "support": { - "source": "https://github.com/Setasign/FPDF/tree/1.8.2" - }, "time": "2019-12-08T10:32:10+00:00" }, { "name": "symfony/asset", - "version": "v4.4.20", + "version": "v4.4.4", "source": { "type": "git", "url": "https://github.com/symfony/asset.git", - "reference": "f2204a526c34945b1614cde033692983b6102eb8" + "reference": "2c67c89d064bfb689ea6bc41217c87100bb94c17" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/asset/zipball/f2204a526c34945b1614cde033692983b6102eb8", - "reference": "f2204a526c34945b1614cde033692983b6102eb8", + "url": "https://api.github.com/repos/symfony/asset/zipball/2c67c89d064bfb689ea6bc41217c87100bb94c17", + "reference": "2c67c89d064bfb689ea6bc41217c87100bb94c17", "shasum": "" }, "require": { - "php": ">=7.1.3" + "php": "^7.1.3" }, "require-dev": { "symfony/http-foundation": "^3.4|^4.0|^5.0", @@ -3161,6 +2669,11 @@ "symfony/http-foundation": "" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.4-dev" + } + }, "autoload": { "psr-4": { "Symfony\\Component\\Asset\\": "" @@ -3183,75 +2696,59 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Manages URL generation and versioning of web assets such as CSS stylesheets, JavaScript files and image files", + "description": "Symfony Asset Component", "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/asset/tree/v4.4.20" - }, - "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-27T09:09:26+00:00" + "time": "2020-01-04T13:00:46+00:00" }, { "name": "symfony/cache", - "version": "v5.2.6", + "version": "v5.0.8", "source": { "type": "git", "url": "https://github.com/symfony/cache.git", - "reference": "093d69bb10c959553c8beb828b8d4ea250a247dd" + "reference": "0c5f5b1882dc82b255a4bdead4ed3c7738cddc04" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/cache/zipball/093d69bb10c959553c8beb828b8d4ea250a247dd", - "reference": "093d69bb10c959553c8beb828b8d4ea250a247dd", + "url": "https://api.github.com/repos/symfony/cache/zipball/0c5f5b1882dc82b255a4bdead4ed3c7738cddc04", + "reference": "0c5f5b1882dc82b255a4bdead4ed3c7738cddc04", "shasum": "" }, "require": { - "php": ">=7.2.5", - "psr/cache": "^1.0|^2.0", - "psr/log": "^1.1", + "php": "^7.2.5", + "psr/cache": "~1.0", + "psr/log": "~1.0", "symfony/cache-contracts": "^1.1.7|^2", - "symfony/polyfill-php80": "^1.15", "symfony/service-contracts": "^1.1|^2", "symfony/var-exporter": "^4.4|^5.0" }, "conflict": { - "doctrine/dbal": "<2.10", + "doctrine/dbal": "<2.5", "symfony/dependency-injection": "<4.4", "symfony/http-kernel": "<4.4", "symfony/var-dumper": "<4.4" }, "provide": { - "psr/cache-implementation": "1.0|2.0", + "psr/cache-implementation": "1.0", "psr/simple-cache-implementation": "1.0", - "symfony/cache-implementation": "1.0|2.0" + "symfony/cache-implementation": "1.0" }, "require-dev": { "cache/integration-tests": "dev-master", - "doctrine/cache": "^1.6", - "doctrine/dbal": "^2.10|^3.0", - "predis/predis": "^1.1", + "doctrine/cache": "~1.6", + "doctrine/dbal": "~2.5", + "predis/predis": "~1.1", "psr/simple-cache": "^1.0", "symfony/config": "^4.4|^5.0", "symfony/dependency-injection": "^4.4|^5.0", - "symfony/filesystem": "^4.4|^5.0", - "symfony/http-kernel": "^4.4|^5.0", - "symfony/messenger": "^4.4|^5.0", "symfony/var-dumper": "^4.4|^5.0" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.0-dev" + } + }, "autoload": { "psr-4": { "Symfony\\Component\\Cache\\": "" @@ -3274,47 +2771,30 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Provides an extended PSR-6, PSR-16 (and tags) implementation", + "description": "Symfony Cache component with PSR-6, PSR-16, and tags", "homepage": "https://symfony.com", "keywords": [ "caching", "psr6" ], - "support": { - "source": "https://github.com/symfony/cache/tree/v5.2.6" - }, - "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-16T09:10:13+00:00" + "time": "2020-04-28T17:58:55+00:00" }, { "name": "symfony/cache-contracts", - "version": "v2.2.0", + "version": "v2.0.1", "source": { "type": "git", "url": "https://github.com/symfony/cache-contracts.git", - "reference": "8034ca0b61d4dd967f3698aaa1da2507b631d0cb" + "reference": "23ed8bfc1a4115feca942cb5f1aacdf3dcdf3c16" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/cache-contracts/zipball/8034ca0b61d4dd967f3698aaa1da2507b631d0cb", - "reference": "8034ca0b61d4dd967f3698aaa1da2507b631d0cb", + "url": "https://api.github.com/repos/symfony/cache-contracts/zipball/23ed8bfc1a4115feca942cb5f1aacdf3dcdf3c16", + "reference": "23ed8bfc1a4115feca942cb5f1aacdf3dcdf3c16", "shasum": "" }, "require": { - "php": ">=7.2.5", + "php": "^7.2.5", "psr/cache": "^1.0" }, "suggest": { @@ -3323,11 +2803,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.2-dev" - }, - "thanks": { - "name": "symfony/contracts", - "url": "https://github.com/symfony/contracts" + "dev-master": "2.0-dev" } }, "autoload": { @@ -3359,45 +2835,26 @@ "interoperability", "standards" ], - "support": { - "source": "https://github.com/symfony/cache-contracts/tree/v2.2.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": "2020-09-07T11:33:47+00:00" + "time": "2019-11-18T17:27:11+00:00" }, { "name": "symfony/config", - "version": "v5.2.4", + "version": "v5.0.8", "source": { "type": "git", "url": "https://github.com/symfony/config.git", - "reference": "212d54675bf203ff8aef7d8cee8eecfb72f4a263" + "reference": "db1674e1a261148429f123871f30d211992294e7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/config/zipball/212d54675bf203ff8aef7d8cee8eecfb72f4a263", - "reference": "212d54675bf203ff8aef7d8cee8eecfb72f4a263", + "url": "https://api.github.com/repos/symfony/config/zipball/db1674e1a261148429f123871f30d211992294e7", + "reference": "db1674e1a261148429f123871f30d211992294e7", "shasum": "" }, "require": { - "php": ">=7.2.5", - "symfony/deprecation-contracts": "^2.1", + "php": "^7.2.5", "symfony/filesystem": "^4.4|^5.0", - "symfony/polyfill-ctype": "~1.8", - "symfony/polyfill-php80": "^1.15" + "symfony/polyfill-ctype": "~1.8" }, "conflict": { "symfony/finder": "<4.4" @@ -3413,6 +2870,11 @@ "symfony/yaml": "To use the yaml reference dumper" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.0-dev" + } + }, "autoload": { "psr-4": { "Symfony\\Component\\Config\\": "" @@ -3435,46 +2897,28 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Helps you find, load, combine, autofill and validate configuration values of any kind", + "description": "Symfony Config Component", "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/config/tree/v5.2.4" - }, - "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-02-23T23:58:19+00:00" + "time": "2020-04-15T15:59:10+00:00" }, { "name": "symfony/console", - "version": "v4.4.21", + "version": "v4.4.4", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "1ba4560dbbb9fcf5ae28b61f71f49c678086cf23" + "reference": "f512001679f37e6a042b51897ed24a2f05eba656" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/1ba4560dbbb9fcf5ae28b61f71f49c678086cf23", - "reference": "1ba4560dbbb9fcf5ae28b61f71f49c678086cf23", + "url": "https://api.github.com/repos/symfony/console/zipball/f512001679f37e6a042b51897ed24a2f05eba656", + "reference": "f512001679f37e6a042b51897ed24a2f05eba656", "shasum": "" }, "require": { - "php": ">=7.1.3", + "php": "^7.1.3", "symfony/polyfill-mbstring": "~1.0", "symfony/polyfill-php73": "^1.8", - "symfony/polyfill-php80": "^1.15", "symfony/service-contracts": "^1.1|^2" }, "conflict": { @@ -3502,6 +2946,11 @@ "symfony/process": "" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.4-dev" + } + }, "autoload": { "psr-4": { "Symfony\\Component\\Console\\": "" @@ -3524,45 +2973,27 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Eases the creation of beautiful and testable command line interfaces", + "description": "Symfony Console Component", "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/console/tree/v4.4.21" - }, - "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-26T09:23:24+00:00" + "time": "2020-01-25T12:44:29+00:00" }, { "name": "symfony/debug", - "version": "v4.4.20", + "version": "v4.4.4", "source": { "type": "git", "url": "https://github.com/symfony/debug.git", - "reference": "157bbec4fd773bae53c5483c50951a5530a2cc16" + "reference": "20236471058bbaa9907382500fc14005c84601f0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/debug/zipball/157bbec4fd773bae53c5483c50951a5530a2cc16", - "reference": "157bbec4fd773bae53c5483c50951a5530a2cc16", + "url": "https://api.github.com/repos/symfony/debug/zipball/20236471058bbaa9907382500fc14005c84601f0", + "reference": "20236471058bbaa9907382500fc14005c84601f0", "shasum": "" }, "require": { - "php": ">=7.1.3", - "psr/log": "~1.0", - "symfony/polyfill-php80": "^1.15" + "php": "^7.1.3", + "psr/log": "~1.0" }, "conflict": { "symfony/http-kernel": "<3.4" @@ -3571,6 +3002,11 @@ "symfony/http-kernel": "^3.4|^4.0|^5.0" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.4-dev" + } + }, "autoload": { "psr-4": { "Symfony\\Component\\Debug\\": "" @@ -3593,60 +3029,41 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Provides tools to ease debugging PHP code", + "description": "Symfony Debug Component", "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/debug/tree/v4.4.20" - }, - "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-28T16:54:48+00:00" + "time": "2020-01-25T12:44:29+00:00" }, { "name": "symfony/dependency-injection", - "version": "v5.2.6", + "version": "v5.0.8", "source": { "type": "git", "url": "https://github.com/symfony/dependency-injection.git", - "reference": "1e66194bed2a69fa395d26bf1067e5e34483afac" + "reference": "92d8b3bd896a87cdd8aba0a3dd041bc072e8cfba" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/1e66194bed2a69fa395d26bf1067e5e34483afac", - "reference": "1e66194bed2a69fa395d26bf1067e5e34483afac", + "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/92d8b3bd896a87cdd8aba0a3dd041bc072e8cfba", + "reference": "92d8b3bd896a87cdd8aba0a3dd041bc072e8cfba", "shasum": "" }, "require": { - "php": ">=7.2.5", + "php": "^7.2.5", "psr/container": "^1.0", - "symfony/deprecation-contracts": "^2.1", - "symfony/polyfill-php80": "^1.15", "symfony/service-contracts": "^1.1.6|^2" }, "conflict": { - "symfony/config": "<5.1", + "symfony/config": "<5.0", "symfony/finder": "<4.4", "symfony/proxy-manager-bridge": "<4.4", "symfony/yaml": "<4.4" }, "provide": { "psr/container-implementation": "1.0", - "symfony/service-implementation": "1.0|2.0" + "symfony/service-implementation": "1.0" }, "require-dev": { - "symfony/config": "^5.1", + "symfony/config": "^5.0", "symfony/expression-language": "^4.4|^5.0", "symfony/yaml": "^4.4|^5.0" }, @@ -3658,6 +3075,11 @@ "symfony/yaml": "" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.0-dev" + } + }, "autoload": { "psr-4": { "Symfony\\Component\\DependencyInjection\\": "" @@ -3680,39 +3102,22 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Allows you to standardize and centralize the way objects are constructed in your application", + "description": "Symfony DependencyInjection Component", "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/dependency-injection/tree/v5.2.6" - }, - "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-22T11:10:24+00:00" + "time": "2020-04-28T17:58:55+00:00" }, { "name": "symfony/deprecation-contracts", - "version": "v2.2.0", + "version": "v2.4.0", "source": { "type": "git", "url": "https://github.com/symfony/deprecation-contracts.git", - "reference": "5fa56b4074d1ae755beb55617ddafe6f5d78f665" + "reference": "5f38c8804a9e97d23e0c8d63341088cd8a22d627" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/5fa56b4074d1ae755beb55617ddafe6f5d78f665", - "reference": "5fa56b4074d1ae755beb55617ddafe6f5d78f665", + "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/5f38c8804a9e97d23e0c8d63341088cd8a22d627", + "reference": "5f38c8804a9e97d23e0c8d63341088cd8a22d627", "shasum": "" }, "require": { @@ -3721,7 +3126,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.2-dev" + "dev-main": "2.4-dev" }, "thanks": { "name": "symfony/contracts", @@ -3749,43 +3154,26 @@ ], "description": "A generic function and convention to trigger deprecation notices", "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/deprecation-contracts/tree/master" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2020-09-07T11:33:47+00:00" + "time": "2021-03-23T23:28:01+00:00" }, { "name": "symfony/doctrine-bridge", - "version": "v4.4.21", + "version": "v4.4.8", "source": { "type": "git", "url": "https://github.com/symfony/doctrine-bridge.git", - "reference": "e643bddb38277b4a1c2973d1489768c6e6c0db80" + "reference": "642cb1000331b8dc5568587f60aeb299070f9a55" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/doctrine-bridge/zipball/e643bddb38277b4a1c2973d1489768c6e6c0db80", - "reference": "e643bddb38277b4a1c2973d1489768c6e6c0db80", + "url": "https://api.github.com/repos/symfony/doctrine-bridge/zipball/642cb1000331b8dc5568587f60aeb299070f9a55", + "reference": "642cb1000331b8dc5568587f60aeb299070f9a55", "shasum": "" }, "require": { "doctrine/event-manager": "~1.0", - "doctrine/persistence": "^1.3|^2", - "php": ">=7.1.3", + "doctrine/persistence": "^1.3", + "php": "^7.1.3", "symfony/polyfill-ctype": "~1.8", "symfony/polyfill-mbstring": "~1.0", "symfony/service-contracts": "^1.1|^2" @@ -3800,17 +3188,17 @@ "symfony/validator": "<4.4.2|<5.0.2,>=5.0" }, "require-dev": { - "composer/package-versions-deprecated": "^1.8", - "doctrine/annotations": "^1.10.4", + "doctrine/annotations": "~1.7", "doctrine/cache": "~1.6", "doctrine/collections": "~1.0", - "doctrine/data-fixtures": "^1.1", - "doctrine/dbal": "^2.6|^3.0", + "doctrine/data-fixtures": "1.0.*", + "doctrine/dbal": "~2.4", "doctrine/orm": "^2.6.3", + "doctrine/reflection": "~1.0", "symfony/config": "^4.2|^5.0", "symfony/dependency-injection": "^3.4|^4.0|^5.0", "symfony/expression-language": "^3.4|^4.0|^5.0", - "symfony/form": "^4.4.11|^5.0.11", + "symfony/form": "^4.4|^5.0", "symfony/http-kernel": "^4.3.7", "symfony/messenger": "^4.4|^5.0", "symfony/property-access": "^3.4|^4.0|^5.0", @@ -3831,6 +3219,11 @@ "symfony/validator": "" }, "type": "symfony-bridge", + "extra": { + "branch-alias": { + "dev-master": "4.4-dev" + } + }, "autoload": { "psr-4": { "Symfony\\Bridge\\Doctrine\\": "" @@ -3853,46 +3246,28 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Provides integration for Doctrine with various Symfony components", + "description": "Symfony Doctrine Bridge", "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/doctrine-bridge/tree/v4.4.21" - }, - "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-09T16:20:30+00:00" + "time": "2020-04-12T16:45:36+00:00" }, { "name": "symfony/error-handler", - "version": "v4.4.21", + "version": "v4.4.4", "source": { "type": "git", "url": "https://github.com/symfony/error-handler.git", - "reference": "48e81a375525872e788c2418430f54150d935810" + "reference": "d2721499ffcaf246a743e01cdf6696d3d5dd74c1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/error-handler/zipball/48e81a375525872e788c2418430f54150d935810", - "reference": "48e81a375525872e788c2418430f54150d935810", + "url": "https://api.github.com/repos/symfony/error-handler/zipball/d2721499ffcaf246a743e01cdf6696d3d5dd74c1", + "reference": "d2721499ffcaf246a743e01cdf6696d3d5dd74c1", "shasum": "" }, "require": { - "php": ">=7.1.3", + "php": "^7.1.3", "psr/log": "~1.0", - "symfony/debug": "^4.4.5", - "symfony/polyfill-php80": "^1.15", + "symfony/debug": "^4.4", "symfony/var-dumper": "^4.4|^5.0" }, "require-dev": { @@ -3900,6 +3275,11 @@ "symfony/serializer": "^4.4|^5.0" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.4-dev" + } + }, "autoload": { "psr-4": { "Symfony\\Component\\ErrorHandler\\": "" @@ -3922,43 +3302,26 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Provides tools to manage errors and ease debugging PHP code", + "description": "Symfony ErrorHandler Component", "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/error-handler/tree/v4.4.21" - }, - "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-08T10:28:40+00:00" + "time": "2020-01-27T09:48:47+00:00" }, { "name": "symfony/event-dispatcher", - "version": "v4.4.20", + "version": "v4.4.4", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "c352647244bd376bf7d31efbd5401f13f50dad0c" + "reference": "9e3de195e5bc301704dd6915df55892f6dfc208b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/c352647244bd376bf7d31efbd5401f13f50dad0c", - "reference": "c352647244bd376bf7d31efbd5401f13f50dad0c", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/9e3de195e5bc301704dd6915df55892f6dfc208b", + "reference": "9e3de195e5bc301704dd6915df55892f6dfc208b", "shasum": "" }, "require": { - "php": ">=7.1.3", + "php": "^7.1.3", "symfony/event-dispatcher-contracts": "^1.1" }, "conflict": { @@ -3972,7 +3335,6 @@ "psr/log": "~1.0", "symfony/config": "^3.4|^4.0|^5.0", "symfony/dependency-injection": "^3.4|^4.0|^5.0", - "symfony/error-handler": "~3.4|~4.4", "symfony/expression-language": "^3.4|^4.0|^5.0", "symfony/http-foundation": "^3.4|^4.0|^5.0", "symfony/service-contracts": "^1.1|^2", @@ -3983,6 +3345,11 @@ "symfony/http-kernel": "" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.4-dev" + } + }, "autoload": { "psr-4": { "Symfony\\Component\\EventDispatcher\\": "" @@ -4005,43 +3372,26 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them", + "description": "Symfony EventDispatcher Component", "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/event-dispatcher/tree/v4.4.20" - }, - "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-27T09:09:26+00:00" + "time": "2020-01-10T21:54:01+00:00" }, { "name": "symfony/event-dispatcher-contracts", - "version": "v1.1.9", + "version": "v1.1.7", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher-contracts.git", - "reference": "84e23fdcd2517bf37aecbd16967e83f0caee25a7" + "reference": "c43ab685673fb6c8d84220c77897b1d6cdbe1d18" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/84e23fdcd2517bf37aecbd16967e83f0caee25a7", - "reference": "84e23fdcd2517bf37aecbd16967e83f0caee25a7", + "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/c43ab685673fb6c8d84220c77897b1d6cdbe1d18", + "reference": "c43ab685673fb6c8d84220c77897b1d6cdbe1d18", "shasum": "" }, "require": { - "php": ">=7.1.3" + "php": "^7.1.3" }, "suggest": { "psr/event-dispatcher": "", @@ -4051,10 +3401,6 @@ "extra": { "branch-alias": { "dev-master": "1.1-dev" - }, - "thanks": { - "name": "symfony/contracts", - "url": "https://github.com/symfony/contracts" } }, "autoload": { @@ -4086,44 +3432,32 @@ "interoperability", "standards" ], - "support": { - "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v1.1.9" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2020-07-06T13:19:58+00:00" + "time": "2019-09-17T09:54:03+00:00" }, { "name": "symfony/filesystem", - "version": "v4.4.21", + "version": "v4.4.4", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", - "reference": "940826c465be2690c9fae91b2793481e5cbd6834" + "reference": "266c9540b475f26122b61ef8b23dd9198f5d1cfd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/940826c465be2690c9fae91b2793481e5cbd6834", - "reference": "940826c465be2690c9fae91b2793481e5cbd6834", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/266c9540b475f26122b61ef8b23dd9198f5d1cfd", + "reference": "266c9540b475f26122b61ef8b23dd9198f5d1cfd", "shasum": "" }, "require": { - "php": ">=7.1.3", + "php": "^7.1.3", "symfony/polyfill-ctype": "~1.8" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.4-dev" + } + }, "autoload": { "psr-4": { "Symfony\\Component\\Filesystem\\": "" @@ -4146,45 +3480,33 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Provides basic utilities for the filesystem", + "description": "Symfony Filesystem Component", "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/filesystem/tree/v4.4.21" - }, - "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-28T09:59:32+00:00" + "time": "2020-01-21T08:20:44+00:00" }, { "name": "symfony/finder", - "version": "v5.2.4", + "version": "v5.0.4", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "0d639a0943822626290d169965804f79400e6a04" + "reference": "4176e7cb846fe08f32518b7e0ed8462e2db8d9bb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/0d639a0943822626290d169965804f79400e6a04", - "reference": "0d639a0943822626290d169965804f79400e6a04", + "url": "https://api.github.com/repos/symfony/finder/zipball/4176e7cb846fe08f32518b7e0ed8462e2db8d9bb", + "reference": "4176e7cb846fe08f32518b7e0ed8462e2db8d9bb", "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\\": "" @@ -4207,56 +3529,38 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Finds files and directories via an intuitive fluent interface", + "description": "Symfony Finder Component", "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/finder/tree/v5.2.4" - }, - "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-02-15T18:55:04+00:00" + "time": "2020-01-04T14:08:26+00:00" }, { "name": "symfony/flex", - "version": "v1.12.2", + "version": "v1.6.2", "source": { "type": "git", "url": "https://github.com/symfony/flex.git", - "reference": "e472606b4b3173564f0edbca8f5d32b52fc4f2c9" + "reference": "e4f5a2653ca503782a31486198bd1dd1c9a47f83" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/flex/zipball/e472606b4b3173564f0edbca8f5d32b52fc4f2c9", - "reference": "e472606b4b3173564f0edbca8f5d32b52fc4f2c9", + "url": "https://api.github.com/repos/symfony/flex/zipball/e4f5a2653ca503782a31486198bd1dd1c9a47f83", + "reference": "e4f5a2653ca503782a31486198bd1dd1c9a47f83", "shasum": "" }, "require": { - "composer-plugin-api": "^1.0|^2.0", - "php": ">=7.1" + "composer-plugin-api": "^1.0", + "php": "^7.0" }, "require-dev": { - "composer/composer": "^1.0.2|^2.0", - "symfony/dotenv": "^4.4|^5.0", - "symfony/filesystem": "^4.4|^5.0", - "symfony/phpunit-bridge": "^4.4|^5.0", - "symfony/process": "^3.4|^4.4|^5.0" + "composer/composer": "^1.0.2", + "symfony/dotenv": "^3.4|^4.0|^5.0", + "symfony/phpunit-bridge": "^3.4.19|^4.1.8|^5.0", + "symfony/process": "^2.7|^3.0|^4.0|^5.0" }, "type": "composer-plugin", "extra": { "branch-alias": { - "dev-main": "1.12-dev" + "dev-master": "1.5-dev" }, "class": "Symfony\\Flex\\Flex" }, @@ -4276,43 +3580,25 @@ } ], "description": "Composer plugin for Symfony", - "support": { - "issues": "https://github.com/symfony/flex/issues", - "source": "https://github.com/symfony/flex/tree/v1.12.2" - }, - "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-02-16T14:05:05+00:00" + "time": "2020-01-30T12:06:45+00:00" }, { "name": "symfony/framework-bundle", - "version": "v4.4.21", + "version": "v4.4.4", "source": { "type": "git", "url": "https://github.com/symfony/framework-bundle.git", - "reference": "fc72fbb0f9a69d2eb5d94cc8c231176265db680a" + "reference": "afc96daad6049cbed34312b34005d33fc670d022" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/framework-bundle/zipball/fc72fbb0f9a69d2eb5d94cc8c231176265db680a", - "reference": "fc72fbb0f9a69d2eb5d94cc8c231176265db680a", + "url": "https://api.github.com/repos/symfony/framework-bundle/zipball/afc96daad6049cbed34312b34005d33fc670d022", + "reference": "afc96daad6049cbed34312b34005d33fc670d022", "shasum": "" }, "require": { "ext-xml": "*", - "php": ">=7.1.3", + "php": "^7.1.3", "symfony/cache": "^4.4|^5.0", "symfony/config": "^4.3.4|^5.0", "symfony/dependency-injection": "^4.4.1|^5.0.1", @@ -4322,16 +3608,16 @@ "symfony/http-foundation": "^4.4|^5.0", "symfony/http-kernel": "^4.4", "symfony/polyfill-mbstring": "~1.0", - "symfony/routing": "^4.4.12|^5.1.4" + "symfony/routing": "^4.4|^5.0" }, "conflict": { "doctrine/persistence": "<1.3", - "phpdocumentor/reflection-docblock": "<3.0|>=3.2.0,<3.2.2", - "phpdocumentor/type-resolver": "<0.3.0|1.3.*", + "phpdocumentor/reflection-docblock": "<3.0", + "phpdocumentor/type-resolver": "<0.2.1", "phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0", "symfony/asset": "<3.4", "symfony/browser-kit": "<4.3", - "symfony/console": "<4.4.21", + "symfony/console": "<4.3", "symfony/dom-crawler": "<4.3", "symfony/dotenv": "<4.3.6", "symfony/form": "<4.3.5", @@ -4352,14 +3638,13 @@ "symfony/workflow": "<4.3.6" }, "require-dev": { - "doctrine/annotations": "^1.10.4", + "doctrine/annotations": "~1.7", "doctrine/cache": "~1.0", - "doctrine/persistence": "^1.3|^2.0", "paragonie/sodium_compat": "^1.8", - "phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0", + "phpdocumentor/reflection-docblock": "^3.0|^4.0", "symfony/asset": "^3.4|^4.0|^5.0", "symfony/browser-kit": "^4.3|^5.0", - "symfony/console": "^4.4.21|^5.0", + "symfony/console": "^4.3.4|^5.0", "symfony/css-selector": "^3.4|^4.0|^5.0", "symfony/dom-crawler": "^4.3|^5.0", "symfony/dotenv": "^4.3.6|^5.0", @@ -4373,7 +3658,6 @@ "symfony/polyfill-intl-icu": "~1.0", "symfony/process": "^3.4|^4.0|^5.0", "symfony/property-info": "^3.4|^4.0|^5.0", - "symfony/security-core": "^3.4|^4.4|^5.2", "symfony/security-csrf": "^3.4|^4.0|^5.0", "symfony/security-http": "^3.4|^4.0|^5.0", "symfony/serializer": "^4.4|^5.0", @@ -4385,7 +3669,7 @@ "symfony/web-link": "^4.4|^5.0", "symfony/workflow": "^4.3.6|^5.0", "symfony/yaml": "^3.4|^4.0|^5.0", - "twig/twig": "^1.43|^2.13|^3.0.4" + "twig/twig": "^1.41|^2.10|^3.0" }, "suggest": { "ext-apcu": "For best performance of the system caches", @@ -4398,6 +3682,11 @@ "symfony/yaml": "For using the debug:config and lint:yaml commands" }, "type": "symfony-bundle", + "extra": { + "branch-alias": { + "dev-master": "4.4-dev" + } + }, "autoload": { "psr-4": { "Symfony\\Bundle\\FrameworkBundle\\": "" @@ -4420,136 +3709,39 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Provides a tight integration between Symfony components and the Symfony full-stack framework", + "description": "Symfony FrameworkBundle", "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/framework-bundle/tree/v4.4.21" - }, - "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-18T09:22:03+00:00" - }, - { - "name": "symfony/http-client-contracts", - "version": "v2.3.1", - "source": { - "type": "git", - "url": "https://github.com/symfony/http-client-contracts.git", - "reference": "41db680a15018f9c1d4b23516059633ce280ca33" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/http-client-contracts/zipball/41db680a15018f9c1d4b23516059633ce280ca33", - "reference": "41db680a15018f9c1d4b23516059633ce280ca33", - "shasum": "" - }, - "require": { - "php": ">=7.2.5" - }, - "suggest": { - "symfony/http-client-implementation": "" - }, - "type": "library", - "extra": { - "branch-version": "2.3", - "branch-alias": { - "dev-main": "2.3-dev" - }, - "thanks": { - "name": "symfony/contracts", - "url": "https://github.com/symfony/contracts" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Contracts\\HttpClient\\": "" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Generic abstractions related to HTTP clients", - "homepage": "https://symfony.com", - "keywords": [ - "abstractions", - "contracts", - "decoupling", - "interfaces", - "interoperability", - "standards" - ], - "support": { - "source": "https://github.com/symfony/http-client-contracts/tree/v2.3.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": "2020-10-14T17:08:19+00:00" + "time": "2020-01-30T16:24:07+00:00" }, { "name": "symfony/http-foundation", - "version": "v5.2.4", + "version": "v5.0.4", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "54499baea7f7418bce7b5ec92770fd0799e8e9bf" + "reference": "2832d8cffc3a91df550ac42bcdce602f8c08be3e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/54499baea7f7418bce7b5ec92770fd0799e8e9bf", - "reference": "54499baea7f7418bce7b5ec92770fd0799e8e9bf", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/2832d8cffc3a91df550ac42bcdce602f8c08be3e", + "reference": "2832d8cffc3a91df550ac42bcdce602f8c08be3e", "shasum": "" }, "require": { - "php": ">=7.2.5", - "symfony/deprecation-contracts": "^2.1", - "symfony/polyfill-mbstring": "~1.1", - "symfony/polyfill-php80": "^1.15" + "php": "^7.2.5", + "symfony/mime": "^4.4|^5.0", + "symfony/polyfill-mbstring": "~1.1" }, "require-dev": { "predis/predis": "~1.0", - "symfony/cache": "^4.4|^5.0", - "symfony/expression-language": "^4.4|^5.0", - "symfony/mime": "^4.4|^5.0" - }, - "suggest": { - "symfony/mime": "To use the file extension guesser" + "symfony/expression-language": "^4.4|^5.0" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.0-dev" + } + }, "autoload": { "psr-4": { "Symfony\\Component\\HttpFoundation\\": "" @@ -4572,51 +3764,32 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Defines an object-oriented layer for the HTTP specification", + "description": "Symfony HttpFoundation Component", "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/http-foundation/tree/v5.2.4" - }, - "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-02-25T17:16:57+00:00" + "time": "2020-01-31T09:13:47+00:00" }, { "name": "symfony/http-kernel", - "version": "v4.4.21", + "version": "v4.4.4", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "0248214120d00c5f44f1cd5d9ad65f0b38459333" + "reference": "62116a9c8fb15faabb158ad9cb785c353c2572e5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/0248214120d00c5f44f1cd5d9ad65f0b38459333", - "reference": "0248214120d00c5f44f1cd5d9ad65f0b38459333", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/62116a9c8fb15faabb158ad9cb785c353c2572e5", + "reference": "62116a9c8fb15faabb158ad9cb785c353c2572e5", "shasum": "" }, "require": { - "php": ">=7.1.3", + "php": "^7.1.3", "psr/log": "~1.0", "symfony/error-handler": "^4.4", "symfony/event-dispatcher": "^4.4", - "symfony/http-client-contracts": "^1.1|^2", "symfony/http-foundation": "^4.4|^5.0", "symfony/polyfill-ctype": "^1.8", - "symfony/polyfill-php73": "^1.9", - "symfony/polyfill-php80": "^1.15" + "symfony/polyfill-php73": "^1.9" }, "conflict": { "symfony/browser-kit": "<4.3", @@ -4624,13 +3797,13 @@ "symfony/console": ">=5", "symfony/dependency-injection": "<4.3", "symfony/translation": "<4.2", - "twig/twig": "<1.43|<2.13,>=2" + "twig/twig": "<1.34|<2.4,>=2" }, "provide": { "psr/log-implementation": "1.0" }, "require-dev": { - "psr/cache": "^1.0|^2.0|^3.0", + "psr/cache": "~1.0", "symfony/browser-kit": "^4.3|^5.0", "symfony/config": "^3.4|^4.0|^5.0", "symfony/console": "^3.4|^4.0", @@ -4645,7 +3818,7 @@ "symfony/templating": "^3.4|^4.0|^5.0", "symfony/translation": "^4.2|^5.0", "symfony/translation-contracts": "^1.1|^2", - "twig/twig": "^1.43|^2.13|^3.0.4" + "twig/twig": "^1.34|^2.4|^3.0" }, "suggest": { "symfony/browser-kit": "", @@ -4654,6 +3827,11 @@ "symfony/dependency-injection": "" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.4-dev" + } + }, "autoload": { "psr-4": { "Symfony\\Component\\HttpKernel\\": "" @@ -4676,70 +3854,109 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Provides a structured process for converting a Request into a Response", + "description": "Symfony HttpKernel Component", "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/http-kernel/tree/v4.4.21" - }, - "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-29T05:11:04+00:00" + "time": "2020-01-31T12:45:06+00:00" }, { - "name": "symfony/maker-bundle", - "version": "v1.30.2", + "name": "symfony/inflector", + "version": "v5.0.4", "source": { "type": "git", - "url": "https://github.com/symfony/maker-bundle.git", - "reference": "a395a85aa4ded6c1fa3da118d60329b64b6c2acd" + "url": "https://github.com/symfony/inflector.git", + "reference": "e375603b6bd12e8e3aec3fc1b640ac18a4ef4cb2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/maker-bundle/zipball/a395a85aa4ded6c1fa3da118d60329b64b6c2acd", - "reference": "a395a85aa4ded6c1fa3da118d60329b64b6c2acd", + "url": "https://api.github.com/repos/symfony/inflector/zipball/e375603b6bd12e8e3aec3fc1b640ac18a4ef4cb2", + "reference": "e375603b6bd12e8e3aec3fc1b640ac18a4ef4cb2", "shasum": "" }, "require": { - "doctrine/inflector": "^1.2|^2.0", + "php": "^7.2.5", + "symfony/polyfill-ctype": "~1.8" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.0-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Inflector\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Bernhard Schussek", + "email": "bschussek@gmail.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Inflector Component", + "homepage": "https://symfony.com", + "keywords": [ + "inflection", + "pluralize", + "singularize", + "string", + "symfony", + "words" + ], + "time": "2020-01-04T14:08:26+00:00" + }, + { + "name": "symfony/maker-bundle", + "version": "v1.14.3", + "source": { + "type": "git", + "url": "https://github.com/symfony/maker-bundle.git", + "reference": "c864e7f9b8d1e1f5f60acc3beda11299f637aded" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/maker-bundle/zipball/c864e7f9b8d1e1f5f60acc3beda11299f637aded", + "reference": "c864e7f9b8d1e1f5f60acc3beda11299f637aded", + "shasum": "" + }, + "require": { + "doctrine/inflector": "^1.2", "nikic/php-parser": "^4.0", - "php": ">=7.1.3", - "symfony/config": "^4.0|^5.0", - "symfony/console": "^4.0|^5.0", - "symfony/dependency-injection": "^4.0|^5.0", - "symfony/deprecation-contracts": "^2.2", - "symfony/filesystem": "^4.0|^5.0", - "symfony/finder": "^4.0|^5.0", - "symfony/framework-bundle": "^4.0|^5.0", - "symfony/http-kernel": "^4.0|^5.0" + "php": "^7.0.8", + "symfony/config": "^3.4|^4.0|^5.0", + "symfony/console": "^3.4|^4.0|^5.0", + "symfony/dependency-injection": "^3.4|^4.0|^5.0", + "symfony/filesystem": "^3.4|^4.0|^5.0", + "symfony/finder": "^3.4|^4.0|^5.0", + "symfony/framework-bundle": "^3.4|^4.0|^5.0", + "symfony/http-kernel": "^3.4|^4.0|^5.0" }, "require-dev": { - "composer/semver": "^3.0@dev", "doctrine/doctrine-bundle": "^1.8|^2.0", "doctrine/orm": "^2.3", "friendsofphp/php-cs-fixer": "^2.8", - "friendsoftwig/twigcs": "^4.1.0|^5.0.0", + "friendsoftwig/twigcs": "^3.1.2", "symfony/http-client": "^4.3|^5.0", "symfony/phpunit-bridge": "^4.3|^5.0", - "symfony/process": "^4.0|^5.0", - "symfony/security-core": "^4.0|^5.0", - "symfony/yaml": "^4.0|^5.0" + "symfony/process": "^3.4|^4.0|^5.0", + "symfony/security-core": "^3.4|^4.0|^5.0", + "symfony/yaml": "^3.4|^4.0|^5.0" }, "type": "symfony-bundle", "extra": { "branch-alias": { - "dev-main": "1.0-dev" + "dev-master": "1.0-dev" } }, "autoload": { @@ -4765,46 +3982,216 @@ "scaffold", "scaffolding" ], - "support": { - "issues": "https://github.com/symfony/maker-bundle/issues", - "source": "https://github.com/symfony/maker-bundle/tree/v1.30.2" - }, - "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-23T13:53:38+00:00" + "time": "2019-11-07T00:56:03+00:00" }, { - "name": "symfony/orm-pack", - "version": "v1.2.0", + "name": "symfony/mime", + "version": "v5.0.4", "source": { "type": "git", - "url": "https://github.com/symfony/orm-pack.git", - "reference": "21ac491414b5815e5ebb7425908c1d1568d2e775" + "url": "https://github.com/symfony/mime.git", + "reference": "2a3c7fee1f1a0961fa9cf360d5da553d05095e59" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/orm-pack/zipball/21ac491414b5815e5ebb7425908c1d1568d2e775", - "reference": "21ac491414b5815e5ebb7425908c1d1568d2e775", + "url": "https://api.github.com/repos/symfony/mime/zipball/2a3c7fee1f1a0961fa9cf360d5da553d05095e59", + "reference": "2a3c7fee1f1a0961fa9cf360d5da553d05095e59", "shasum": "" }, "require": { - "composer/package-versions-deprecated": "*", - "doctrine/common": "^2", - "doctrine/doctrine-bundle": "^2", - "doctrine/doctrine-migrations-bundle": "^2", - "doctrine/orm": "^2" + "php": "^7.2.5", + "symfony/polyfill-intl-idn": "^1.10", + "symfony/polyfill-mbstring": "^1.0" + }, + "conflict": { + "symfony/mailer": "<4.4" + }, + "require-dev": { + "egulias/email-validator": "^2.1.10", + "symfony/dependency-injection": "^4.4|^5.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.0-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Mime\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "A library to manipulate MIME messages", + "homepage": "https://symfony.com", + "keywords": [ + "mime", + "mime-type" + ], + "time": "2020-01-04T14:08:26+00:00" + }, + { + "name": "symfony/monolog-bridge", + "version": "v5.2.5", + "source": { + "type": "git", + "url": "https://github.com/symfony/monolog-bridge.git", + "reference": "8a330ab86c4bdf3983b26abf64bf85574edf0d52" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/monolog-bridge/zipball/8a330ab86c4bdf3983b26abf64bf85574edf0d52", + "reference": "8a330ab86c4bdf3983b26abf64bf85574edf0d52", + "shasum": "" + }, + "require": { + "monolog/monolog": "^1.25.1|^2", + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1", + "symfony/http-kernel": "^4.4|^5.0", + "symfony/service-contracts": "^1.1|^2" + }, + "conflict": { + "symfony/console": "<4.4", + "symfony/http-foundation": "<4.4" + }, + "require-dev": { + "symfony/console": "^4.4|^5.0", + "symfony/http-client": "^4.4|^5.0", + "symfony/mailer": "^4.4|^5.0", + "symfony/mime": "^4.4|^5.0", + "symfony/security-core": "^4.4|^5.0", + "symfony/var-dumper": "^4.4|^5.0" + }, + "suggest": { + "symfony/console": "For the possibility to show log messages in console commands depending on verbosity settings.", + "symfony/http-kernel": "For using the debugging handlers together with the response life cycle of the HTTP kernel.", + "symfony/var-dumper": "For using the debugging handlers like the console handler or the log server handler." + }, + "type": "symfony-bridge", + "autoload": { + "psr-4": { + "Symfony\\Bridge\\Monolog\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides integration for Monolog with various Symfony components", + "homepage": "https://symfony.com", + "time": "2021-03-06T07:59:01+00:00" + }, + { + "name": "symfony/monolog-bundle", + "version": "v3.7.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/monolog-bundle.git", + "reference": "4054b2e940a25195ae15f0a49ab0c51718922eb4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/monolog-bundle/zipball/4054b2e940a25195ae15f0a49ab0c51718922eb4", + "reference": "4054b2e940a25195ae15f0a49ab0c51718922eb4", + "shasum": "" + }, + "require": { + "monolog/monolog": "~1.22 || ~2.0", + "php": ">=7.1.3", + "symfony/config": "~4.4 || ^5.0", + "symfony/dependency-injection": "^4.4 || ^5.0", + "symfony/http-kernel": "~4.4 || ^5.0", + "symfony/monolog-bridge": "~4.4 || ^5.0" + }, + "require-dev": { + "symfony/console": "~4.4 || ^5.0", + "symfony/phpunit-bridge": "^5.1", + "symfony/yaml": "~4.4 || ^5.0" + }, + "type": "symfony-bundle", + "extra": { + "branch-alias": { + "dev-master": "3.x-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Bundle\\MonologBundle\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony MonologBundle", + "homepage": "https://symfony.com", + "keywords": [ + "log", + "logging" + ], + "time": "2021-03-31T07:20:47+00:00" + }, + { + "name": "symfony/orm-pack", + "version": "v1.0.8", + "source": { + "type": "git", + "url": "https://github.com/symfony/orm-pack.git", + "reference": "c9bcc08102061f406dc908192c0f33524a675666" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/orm-pack/zipball/c9bcc08102061f406dc908192c0f33524a675666", + "reference": "c9bcc08102061f406dc908192c0f33524a675666", + "shasum": "" + }, + "require": { + "doctrine/doctrine-bundle": "*", + "doctrine/doctrine-migrations-bundle": "*", + "doctrine/orm": "*" }, "type": "symfony-pack", "notification-url": "https://packagist.org/downloads/", @@ -4812,42 +4199,24 @@ "MIT" ], "description": "A pack for the Doctrine ORM", - "support": { - "issues": "https://github.com/symfony/orm-pack/issues", - "source": "https://github.com/symfony/orm-pack/tree/v1.2.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": "2020-08-31T10:20:18+00:00" + "time": "2020-02-10T18:03:48+00:00" }, { "name": "symfony/polyfill-ctype", - "version": "v1.22.1", + "version": "v1.17.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-ctype.git", - "reference": "c6c942b1ac76c82448322025e084cadc56048b4e" + "reference": "e94c8b1bbe2bc77507a1056cdb06451c75b427f9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/c6c942b1ac76c82448322025e084cadc56048b4e", - "reference": "c6c942b1ac76c82448322025e084cadc56048b4e", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/e94c8b1bbe2bc77507a1056cdb06451c75b427f9", + "reference": "e94c8b1bbe2bc77507a1056cdb06451c75b427f9", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=5.3.3" }, "suggest": { "ext-ctype": "For best performance" @@ -4855,11 +4224,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.22-dev" - }, - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" + "dev-master": "1.17-dev" } }, "autoload": { @@ -4892,124 +4257,26 @@ "polyfill", "portable" ], - "support": { - "source": "https://github.com/symfony/polyfill-ctype/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-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" + "time": "2020-05-12T16:14:59+00:00" }, { "name": "symfony/polyfill-intl-idn", - "version": "v1.22.1", + "version": "v1.13.1", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-idn.git", - "reference": "2d63434d922daf7da8dd863e7907e67ee3031483" + "reference": "6f9c239e61e1b0c9229a28ff89a812dc449c3d46" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/2d63434d922daf7da8dd863e7907e67ee3031483", - "reference": "2d63434d922daf7da8dd863e7907e67ee3031483", + "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/6f9c239e61e1b0c9229a28ff89a812dc449c3d46", + "reference": "6f9c239e61e1b0c9229a28ff89a812dc449c3d46", "shasum": "" }, "require": { - "php": ">=7.1", - "symfony/polyfill-intl-normalizer": "^1.10", - "symfony/polyfill-php72": "^1.10" + "php": ">=5.3.3", + "symfony/polyfill-mbstring": "^1.3", + "symfony/polyfill-php72": "^1.9" }, "suggest": { "ext-intl": "For best performance" @@ -5017,11 +4284,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.22-dev" - }, - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" + "dev-master": "1.13-dev" } }, "autoload": { @@ -5041,10 +4304,6 @@ "name": "Laurent Bassin", "email": "laurent@bassin.info" }, - { - "name": "Trevor Rowbotham", - "email": "trevor.rowbotham@pm.me" - }, { "name": "Symfony Community", "homepage": "https://symfony.com/contributors" @@ -5060,125 +4319,24 @@ "portable", "shim" ], - "support": { - "source": "https://github.com/symfony/polyfill-intl-idn/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" + "time": "2019-11-27T13:56:44+00:00" }, { "name": "symfony/polyfill-mbstring", - "version": "v1.22.1", + "version": "v1.17.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "5232de97ee3b75b0360528dae24e73db49566ab1" + "reference": "fa79b11539418b02fc5e1897267673ba2c19419c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/5232de97ee3b75b0360528dae24e73db49566ab1", - "reference": "5232de97ee3b75b0360528dae24e73db49566ab1", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/fa79b11539418b02fc5e1897267673ba2c19419c", + "reference": "fa79b11539418b02fc5e1897267673ba2c19419c", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=5.3.3" }, "suggest": { "ext-mbstring": "For best performance" @@ -5186,11 +4344,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.22-dev" - }, - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" + "dev-master": "1.17-dev" } }, "autoload": { @@ -5224,50 +4378,29 @@ "portable", "shim" ], - "support": { - "source": "https://github.com/symfony/polyfill-mbstring/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" + "time": "2020-05-12T16:47:27+00:00" }, { "name": "symfony/polyfill-php72", - "version": "v1.22.1", + "version": "v1.13.1", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php72.git", - "reference": "cc6e6f9b39fe8075b3dabfbaf5b5f645ae1340c9" + "reference": "66fea50f6cb37a35eea048d75a7d99a45b586038" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/cc6e6f9b39fe8075b3dabfbaf5b5f645ae1340c9", - "reference": "cc6e6f9b39fe8075b3dabfbaf5b5f645ae1340c9", + "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/66fea50f6cb37a35eea048d75a7d99a45b586038", + "reference": "66fea50f6cb37a35eea048d75a7d99a45b586038", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=5.3.3" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "1.22-dev" - }, - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" + "dev-master": "1.13-dev" } }, "autoload": { @@ -5300,50 +4433,29 @@ "portable", "shim" ], - "support": { - "source": "https://github.com/symfony/polyfill-php72/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" + "time": "2019-11-27T13:56:44+00:00" }, { "name": "symfony/polyfill-php73", - "version": "v1.22.1", + "version": "v1.13.1", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php73.git", - "reference": "a678b42e92f86eca04b7fa4c0f6f19d097fb69e2" + "reference": "4b0e2222c55a25b4541305a053013d5647d3a25f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/a678b42e92f86eca04b7fa4c0f6f19d097fb69e2", - "reference": "a678b42e92f86eca04b7fa4c0f6f19d097fb69e2", + "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/4b0e2222c55a25b4541305a053013d5647d3a25f", + "reference": "4b0e2222c55a25b4541305a053013d5647d3a25f", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=5.3.3" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "1.22-dev" - }, - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" + "dev-master": "1.13-dev" } }, "autoload": { @@ -5379,126 +4491,31 @@ "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" + "time": "2019-11-27T16:25:15+00:00" }, { - "name": "symfony/polyfill-php80", - "version": "v1.22.1", + "name": "symfony/process", + "version": "v4.4.9", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-php80.git", - "reference": "dc3063ba22c2a1fd2f45ed856374d79114998f91" + "url": "https://github.com/symfony/process.git", + "reference": "c714958428a85c86ab97e3a0c96db4c4f381b7f5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/dc3063ba22c2a1fd2f45ed856374d79114998f91", - "reference": "dc3063ba22c2a1fd2f45ed856374d79114998f91", + "url": "https://api.github.com/repos/symfony/process/zipball/c714958428a85c86ab97e3a0c96db4c4f381b7f5", + "reference": "c714958428a85c86ab97e3a0c96db4c4f381b7f5", "shasum": "" }, "require": { - "php": ">=7.1" + "php": "^7.1.3" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "1.22-dev" - }, - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" + "dev-master": "4.4-dev" } }, - "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Php80\\": "" - }, - "files": [ - "bootstrap.php" - ], - "classmap": [ - "Resources/stubs" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Ion Bazan", - "email": "ion.bazan@gmail.com" - }, - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "polyfill", - "portable", - "shim" - ], - "support": { - "source": "https://github.com/symfony/polyfill-php80/tree/v1.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/process", - "version": "v4.4.20", - "source": { - "type": "git", - "url": "https://github.com/symfony/process.git", - "reference": "7e950b6366d4da90292c2e7fa820b3c1842b965a" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/7e950b6366d4da90292c2e7fa820b3c1842b965a", - "reference": "7e950b6366d4da90292c2e7fa820b3c1842b965a", - "shasum": "" - }, - "require": { - "php": ">=7.1.3" - }, - "type": "library", "autoload": { "psr-4": { "Symfony\\Component\\Process\\": "" @@ -5521,42 +4538,26 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Executes commands in sub-processes", + "description": "Symfony Process Component", "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/process/tree/v4.4.20" - }, - "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-27T09:09:26+00:00" + "time": "2020-05-30T20:06:45+00:00" }, { "name": "symfony/profiler-pack", - "version": "v1.0.5", + "version": "v1.0.4", "source": { "type": "git", "url": "https://github.com/symfony/profiler-pack.git", - "reference": "29ec66471082b4eb068db11eb4f0a48c277653f7" + "reference": "99c4370632c2a59bb0444852f92140074ef02209" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/profiler-pack/zipball/29ec66471082b4eb068db11eb4f0a48c277653f7", - "reference": "29ec66471082b4eb068db11eb4f0a48c277653f7", + "url": "https://api.github.com/repos/symfony/profiler-pack/zipball/99c4370632c2a59bb0444852f92140074ef02209", + "reference": "99c4370632c2a59bb0444852f92140074ef02209", "shasum": "" }, "require": { + "php": "^7.0", "symfony/stopwatch": "*", "symfony/twig-bundle": "*", "symfony/web-profiler-bundle": "*" @@ -5567,45 +4568,25 @@ "MIT" ], "description": "A pack for the Symfony web profiler", - "support": { - "issues": "https://github.com/symfony/profiler-pack/issues", - "source": "https://github.com/symfony/profiler-pack/tree/v1.0.5" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2020-08-12T06:50:46+00:00" + "time": "2018-12-10T12:11:44+00:00" }, { "name": "symfony/property-access", - "version": "v5.2.4", + "version": "v5.0.4", "source": { "type": "git", "url": "https://github.com/symfony/property-access.git", - "reference": "3af8ed262bd3217512a13b023981fe68f36ad5f3" + "reference": "18617a8c26b97a262f816c78765eb3cd91630e19" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/property-access/zipball/3af8ed262bd3217512a13b023981fe68f36ad5f3", - "reference": "3af8ed262bd3217512a13b023981fe68f36ad5f3", + "url": "https://api.github.com/repos/symfony/property-access/zipball/18617a8c26b97a262f816c78765eb3cd91630e19", + "reference": "18617a8c26b97a262f816c78765eb3cd91630e19", "shasum": "" }, "require": { - "php": ">=7.2.5", - "symfony/deprecation-contracts": "^2.1", - "symfony/polyfill-php80": "^1.15", - "symfony/property-info": "^5.2" + "php": "^7.2.5", + "symfony/inflector": "^4.4|^5.0" }, "require-dev": { "symfony/cache": "^4.4|^5.0" @@ -5614,6 +4595,11 @@ "psr/cache-implementation": "To cache access methods." }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.0-dev" + } + }, "autoload": { "psr-4": { "Symfony\\Component\\PropertyAccess\\": "" @@ -5636,7 +4622,7 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Provides functions to read and write from/to an object or array using a simple string notation", + "description": "Symfony PropertyAccess Component", "homepage": "https://symfony.com", "keywords": [ "access", @@ -5649,133 +4635,24 @@ "property path", "reflection" ], - "support": { - "source": "https://github.com/symfony/property-access/tree/v5.2.4" - }, - "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-27T10:15:41+00:00" - }, - { - "name": "symfony/property-info", - "version": "v5.2.4", - "source": { - "type": "git", - "url": "https://github.com/symfony/property-info.git", - "reference": "7185bbc74e6f49c3f1b5936b4d9e4ca133921189" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/property-info/zipball/7185bbc74e6f49c3f1b5936b4d9e4ca133921189", - "reference": "7185bbc74e6f49c3f1b5936b4d9e4ca133921189", - "shasum": "" - }, - "require": { - "php": ">=7.2.5", - "symfony/deprecation-contracts": "^2.1", - "symfony/polyfill-php80": "^1.15", - "symfony/string": "^5.1" - }, - "conflict": { - "phpdocumentor/reflection-docblock": "<3.2.2", - "phpdocumentor/type-resolver": "<1.4.0", - "symfony/dependency-injection": "<4.4" - }, - "require-dev": { - "doctrine/annotations": "^1.10.4", - "phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0", - "symfony/cache": "^4.4|^5.0", - "symfony/dependency-injection": "^4.4|^5.0", - "symfony/serializer": "^4.4|^5.0" - }, - "suggest": { - "phpdocumentor/reflection-docblock": "To use the PHPDoc", - "psr/cache-implementation": "To cache results", - "symfony/doctrine-bridge": "To use Doctrine metadata", - "symfony/serializer": "To use Serializer metadata" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\PropertyInfo\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Kévin Dunglas", - "email": "dunglas@gmail.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Extracts information about PHP class' properties using metadata of popular sources", - "homepage": "https://symfony.com", - "keywords": [ - "doctrine", - "phpdoc", - "property", - "symfony", - "type", - "validator" - ], - "support": { - "source": "https://github.com/symfony/property-info/tree/v5.2.4" - }, - "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-02-17T15:24:54+00:00" + "time": "2020-01-04T14:08:26+00:00" }, { "name": "symfony/routing", - "version": "v5.2.6", + "version": "v5.0.4", "source": { "type": "git", "url": "https://github.com/symfony/routing.git", - "reference": "31fba555f178afd04d54fd26953501b2c3f0c6e6" + "reference": "7da33371d8ecfed6c9d93d87c73749661606f803" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/31fba555f178afd04d54fd26953501b2c3f0c6e6", - "reference": "31fba555f178afd04d54fd26953501b2c3f0c6e6", + "url": "https://api.github.com/repos/symfony/routing/zipball/7da33371d8ecfed6c9d93d87c73749661606f803", + "reference": "7da33371d8ecfed6c9d93d87c73749661606f803", "shasum": "" }, "require": { - "php": ">=7.2.5", - "symfony/deprecation-contracts": "^2.1", - "symfony/polyfill-php80": "^1.15" + "php": "^7.2.5" }, "conflict": { "symfony/config": "<5.0", @@ -5783,7 +4660,7 @@ "symfony/yaml": "<4.4" }, "require-dev": { - "doctrine/annotations": "^1.10.4", + "doctrine/annotations": "~1.2", "psr/log": "~1.0", "symfony/config": "^5.0", "symfony/dependency-injection": "^4.4|^5.0", @@ -5799,6 +4676,11 @@ "symfony/yaml": "For using the YAML loader" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.0-dev" + } + }, "autoload": { "psr-4": { "Symfony\\Component\\Routing\\": "" @@ -5821,7 +4703,7 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Maps an HTTP request to a set of configuration variables", + "description": "Symfony Routing Component", "homepage": "https://symfony.com", "keywords": [ "router", @@ -5829,49 +4711,32 @@ "uri", "url" ], - "support": { - "source": "https://github.com/symfony/routing/tree/v5.2.6" - }, - "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-14T13:53:33+00:00" + "time": "2020-01-04T14:08:26+00:00" }, { "name": "symfony/security-bundle", - "version": "v4.4.21", + "version": "v4.4.4", "source": { "type": "git", "url": "https://github.com/symfony/security-bundle.git", - "reference": "607dcdb60ef74d63fbeb86549c52075f040ae4cc" + "reference": "7829cc34b8231cb8d10621cdf27d04bfdc600334" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/security-bundle/zipball/607dcdb60ef74d63fbeb86549c52075f040ae4cc", - "reference": "607dcdb60ef74d63fbeb86549c52075f040ae4cc", + "url": "https://api.github.com/repos/symfony/security-bundle/zipball/7829cc34b8231cb8d10621cdf27d04bfdc600334", + "reference": "7829cc34b8231cb8d10621cdf27d04bfdc600334", "shasum": "" }, "require": { "ext-xml": "*", - "php": ">=7.1.3", + "php": "^7.1.3", "symfony/config": "^4.2|^5.0", "symfony/dependency-injection": "^4.4|^5.0", "symfony/http-kernel": "^4.4", "symfony/security-core": "^4.4", "symfony/security-csrf": "^4.2|^5.0", "symfony/security-guard": "^4.2|^5.0", - "symfony/security-http": "^4.4.5" + "symfony/security-http": "^4.4.3" }, "conflict": { "symfony/browser-kit": "<4.2", @@ -5897,9 +4762,14 @@ "symfony/twig-bundle": "^4.4|^5.0", "symfony/validator": "^3.4|^4.0|^5.0", "symfony/yaml": "^3.4|^4.0|^5.0", - "twig/twig": "^1.43|^2.13|^3.0.4" + "twig/twig": "^1.41|^2.10|^3.0" }, "type": "symfony-bundle", + "extra": { + "branch-alias": { + "dev-master": "4.4-dev" + } + }, "autoload": { "psr-4": { "Symfony\\Bundle\\SecurityBundle\\": "" @@ -5922,43 +4792,26 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Provides a tight integration of the Security component into the Symfony full-stack framework", + "description": "Symfony SecurityBundle", "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/security-bundle/tree/v4.4.21" - }, - "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-22T08:54:48+00:00" + "time": "2020-01-27T10:02:23+00:00" }, { "name": "symfony/security-core", - "version": "v4.4.21", + "version": "v4.4.4", "source": { "type": "git", "url": "https://github.com/symfony/security-core.git", - "reference": "19a7caa988be4f013669a057861a1d2a3eacbbf3" + "reference": "d2550b4ecd63f612763e0af2cbcb1a69a700fe99" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/security-core/zipball/19a7caa988be4f013669a057861a1d2a3eacbbf3", - "reference": "19a7caa988be4f013669a057861a1d2a3eacbbf3", + "url": "https://api.github.com/repos/symfony/security-core/zipball/d2550b4ecd63f612763e0af2cbcb1a69a700fe99", + "reference": "d2550b4ecd63f612763e0af2cbcb1a69a700fe99", "shasum": "" }, "require": { - "php": ">=7.1.3", + "php": "^7.1.3", "symfony/event-dispatcher-contracts": "^1.1|^2", "symfony/service-contracts": "^1.1.6|^2" }, @@ -5968,13 +4821,12 @@ "symfony/security-guard": "<4.3" }, "require-dev": { - "psr/container": "^1.0|^2.0", + "psr/container": "^1.0", "psr/log": "~1.0", "symfony/event-dispatcher": "^4.3", "symfony/expression-language": "^3.4|^4.0|^5.0", "symfony/http-foundation": "^3.4|^4.0|^5.0", "symfony/ldap": "^4.4|^5.0", - "symfony/translation": "^4.4|^5.0", "symfony/validator": "^3.4.31|^4.3.4|^5.0" }, "suggest": { @@ -5986,6 +4838,11 @@ "symfony/validator": "For using the user password constraint" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.4-dev" + } + }, "autoload": { "psr-4": { "Symfony\\Component\\Security\\Core\\": "" @@ -6010,41 +4867,24 @@ ], "description": "Symfony Security Component - Core Library", "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/security-core/tree/v4.4.21" - }, - "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-10T13:26:08+00:00" + "time": "2020-01-31T09:11:17+00:00" }, { "name": "symfony/security-csrf", - "version": "v5.2.4", + "version": "v5.0.4", "source": { "type": "git", "url": "https://github.com/symfony/security-csrf.git", - "reference": "e22ef49d5d3773014942f3dfe301b168a4a833dc" + "reference": "65066f7e0f6e38a8c5507c706e86e7a52fd7ff3e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/security-csrf/zipball/e22ef49d5d3773014942f3dfe301b168a4a833dc", - "reference": "e22ef49d5d3773014942f3dfe301b168a4a833dc", + "url": "https://api.github.com/repos/symfony/security-csrf/zipball/65066f7e0f6e38a8c5507c706e86e7a52fd7ff3e", + "reference": "65066f7e0f6e38a8c5507c706e86e7a52fd7ff3e", "shasum": "" }, "require": { - "php": ">=7.2.5", + "php": "^7.2.5", "symfony/security-core": "^4.4|^5.0" }, "conflict": { @@ -6057,6 +4897,11 @@ "symfony/http-foundation": "For using the class SessionTokenStorage." }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.0-dev" + } + }, "autoload": { "psr-4": { "Symfony\\Component\\Security\\Csrf\\": "" @@ -6081,41 +4926,24 @@ ], "description": "Symfony Security Component - CSRF Library", "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/security-csrf/tree/v5.2.4" - }, - "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-27T10:01:46+00:00" + "time": "2020-01-04T14:08:26+00:00" }, { "name": "symfony/security-guard", - "version": "v4.4.20", + "version": "v4.4.4", "source": { "type": "git", "url": "https://github.com/symfony/security-guard.git", - "reference": "20f522ada1eefb7c2f90cb83dcc76abb160c782f" + "reference": "f457f2d6d7392259b1ede1d036a26b6c1fa20202" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/security-guard/zipball/20f522ada1eefb7c2f90cb83dcc76abb160c782f", - "reference": "20f522ada1eefb7c2f90cb83dcc76abb160c782f", + "url": "https://api.github.com/repos/symfony/security-guard/zipball/f457f2d6d7392259b1ede1d036a26b6c1fa20202", + "reference": "f457f2d6d7392259b1ede1d036a26b6c1fa20202", "shasum": "" }, "require": { - "php": ">=7.1.3", + "php": "^7.1.3", "symfony/security-core": "^3.4.22|^4.2.3|^5.0", "symfony/security-http": "^4.4.1" }, @@ -6123,6 +4951,11 @@ "psr/log": "~1.0" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.4-dev" + } + }, "autoload": { "psr-4": { "Symfony\\Component\\Security\\Guard\\": "" @@ -6147,45 +4980,28 @@ ], "description": "Symfony Security Component - Guard", "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/security-guard/tree/v4.4.20" - }, - "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-27T09:09:26+00:00" + "time": "2020-01-08T17:29:02+00:00" }, { "name": "symfony/security-http", - "version": "v4.4.21", + "version": "v4.4.4", "source": { "type": "git", "url": "https://github.com/symfony/security-http.git", - "reference": "c5546b762376e4d9a806b08bf4495b2633573ff8" + "reference": "736d09554f78f3444f5aeed3d18a928c7a8a53fb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/security-http/zipball/c5546b762376e4d9a806b08bf4495b2633573ff8", - "reference": "c5546b762376e4d9a806b08bf4495b2633573ff8", + "url": "https://api.github.com/repos/symfony/security-http/zipball/736d09554f78f3444f5aeed3d18a928c7a8a53fb", + "reference": "736d09554f78f3444f5aeed3d18a928c7a8a53fb", "shasum": "" }, "require": { - "php": ">=7.1.3", - "symfony/http-foundation": "^3.4.40|^4.4.7|^5.0.7", + "php": "^7.1.3", + "symfony/http-foundation": "^3.4|^4.0|^5.0", "symfony/http-kernel": "^4.4", "symfony/property-access": "^3.4|^4.0|^5.0", - "symfony/security-core": "^4.4.8" + "symfony/security-core": "^4.4" }, "conflict": { "symfony/event-dispatcher": ">=5", @@ -6201,6 +5017,11 @@ "symfony/security-csrf": "For using tokens to protect authentication/logout attempts" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.4-dev" + } + }, "autoload": { "psr-4": { "Symfony\\Component\\Security\\Http\\": "" @@ -6225,41 +5046,24 @@ ], "description": "Symfony Security Component - HTTP Integration", "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/security-http/tree/v4.4.21" - }, - "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-12T01:21:32+00:00" + "time": "2020-01-31T09:11:17+00:00" }, { "name": "symfony/service-contracts", - "version": "v2.2.0", + "version": "v2.0.1", "source": { "type": "git", "url": "https://github.com/symfony/service-contracts.git", - "reference": "d15da7ba4957ffb8f1747218be9e1a121fd298a1" + "reference": "144c5e51266b281231e947b51223ba14acf1a749" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/service-contracts/zipball/d15da7ba4957ffb8f1747218be9e1a121fd298a1", - "reference": "d15da7ba4957ffb8f1747218be9e1a121fd298a1", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/144c5e51266b281231e947b51223ba14acf1a749", + "reference": "144c5e51266b281231e947b51223ba14acf1a749", "shasum": "" }, "require": { - "php": ">=7.2.5", + "php": "^7.2.5", "psr/container": "^1.0" }, "suggest": { @@ -6268,11 +5072,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.2-dev" - }, - "thanks": { - "name": "symfony/contracts", - "url": "https://github.com/symfony/contracts" + "dev-master": "2.0-dev" } }, "autoload": { @@ -6304,44 +5104,32 @@ "interoperability", "standards" ], - "support": { - "source": "https://github.com/symfony/service-contracts/tree/master" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2020-09-07T11:33:47+00:00" + "time": "2019-11-18T17:27:11+00:00" }, { "name": "symfony/stopwatch", - "version": "v5.2.4", + "version": "v5.0.4", "source": { "type": "git", "url": "https://github.com/symfony/stopwatch.git", - "reference": "b12274acfab9d9850c52583d136a24398cdf1a0c" + "reference": "5d9add8034135b9a5f7b101d1e42c797e7f053e4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/stopwatch/zipball/b12274acfab9d9850c52583d136a24398cdf1a0c", - "reference": "b12274acfab9d9850c52583d136a24398cdf1a0c", + "url": "https://api.github.com/repos/symfony/stopwatch/zipball/5d9add8034135b9a5f7b101d1e42c797e7f053e4", + "reference": "5d9add8034135b9a5f7b101d1e42c797e7f053e4", "shasum": "" }, "require": { - "php": ">=7.2.5", + "php": "^7.2.5", "symfony/service-contracts": "^1.0|^2" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.0-dev" + } + }, "autoload": { "psr-4": { "Symfony\\Component\\Stopwatch\\": "" @@ -6364,126 +5152,26 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Provides a way to profile code", + "description": "Symfony Stopwatch Component", "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/stopwatch/tree/v5.2.4" - }, - "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-27T10:15:41+00:00" - }, - { - "name": "symfony/string", - "version": "v5.2.6", - "source": { - "type": "git", - "url": "https://github.com/symfony/string.git", - "reference": "ad0bd91bce2054103f5eaa18ebeba8d3bc2a0572" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/ad0bd91bce2054103f5eaa18ebeba8d3bc2a0572", - "reference": "ad0bd91bce2054103f5eaa18ebeba8d3bc2a0572", - "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.6" - }, - "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-17T17:12:15+00:00" + "time": "2020-01-04T14:08:26+00:00" }, { "name": "symfony/translation", - "version": "v4.4.21", + "version": "v4.4.4", "source": { "type": "git", "url": "https://github.com/symfony/translation.git", - "reference": "eb8f5428cc3b40d6dffe303b195b084f1c5fbd14" + "reference": "f5d2ac46930238b30a9c2f1b17c905f3697d808c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation/zipball/eb8f5428cc3b40d6dffe303b195b084f1c5fbd14", - "reference": "eb8f5428cc3b40d6dffe303b195b084f1c5fbd14", + "url": "https://api.github.com/repos/symfony/translation/zipball/f5d2ac46930238b30a9c2f1b17c905f3697d808c", + "reference": "f5d2ac46930238b30a9c2f1b17c905f3697d808c", "shasum": "" }, "require": { - "php": ">=7.1.3", + "php": "^7.1.3", "symfony/polyfill-mbstring": "~1.0", "symfony/translation-contracts": "^1.1.6|^2" }, @@ -6494,7 +5182,7 @@ "symfony/yaml": "<3.4" }, "provide": { - "symfony/translation-implementation": "1.0|2.0" + "symfony/translation-implementation": "1.0" }, "require-dev": { "psr/log": "~1.0", @@ -6513,6 +5201,11 @@ "symfony/yaml": "" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.4-dev" + } + }, "autoload": { "psr-4": { "Symfony\\Component\\Translation\\": "" @@ -6535,43 +5228,26 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Provides tools to internationalize your application", + "description": "Symfony Translation Component", "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/translation/tree/v4.4.21" - }, - "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-23T16:25:01+00:00" + "time": "2020-01-15T13:29:06+00:00" }, { "name": "symfony/translation-contracts", - "version": "v2.3.0", + "version": "v2.0.1", "source": { "type": "git", "url": "https://github.com/symfony/translation-contracts.git", - "reference": "e2eaa60b558f26a4b0354e1bbb25636efaaad105" + "reference": "8cc682ac458d75557203b2f2f14b0b92e1c744ed" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/e2eaa60b558f26a4b0354e1bbb25636efaaad105", - "reference": "e2eaa60b558f26a4b0354e1bbb25636efaaad105", + "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/8cc682ac458d75557203b2f2f14b0b92e1c744ed", + "reference": "8cc682ac458d75557203b2f2f14b0b92e1c744ed", "shasum": "" }, "require": { - "php": ">=7.2.5" + "php": "^7.2.5" }, "suggest": { "symfony/translation-implementation": "" @@ -6579,11 +5255,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.3-dev" - }, - "thanks": { - "name": "symfony/contracts", - "url": "https://github.com/symfony/contracts" + "dev-master": "2.0-dev" } }, "autoload": { @@ -6615,43 +5287,26 @@ "interoperability", "standards" ], - "support": { - "source": "https://github.com/symfony/translation-contracts/tree/v2.3.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": "2020-09-28T13:05:58+00:00" + "time": "2019-11-18T17:27:11+00:00" }, { "name": "symfony/twig-bridge", - "version": "v4.4.21", + "version": "v4.4.4", "source": { "type": "git", "url": "https://github.com/symfony/twig-bridge.git", - "reference": "f5d0492a38c5325d9c322d406dbe95bc26fc530d" + "reference": "d5f3e83e2cc2fcdd60c351b5be1beb9533cf698c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/twig-bridge/zipball/f5d0492a38c5325d9c322d406dbe95bc26fc530d", - "reference": "f5d0492a38c5325d9c322d406dbe95bc26fc530d", + "url": "https://api.github.com/repos/symfony/twig-bridge/zipball/d5f3e83e2cc2fcdd60c351b5be1beb9533cf698c", + "reference": "d5f3e83e2cc2fcdd60c351b5be1beb9533cf698c", "shasum": "" }, "require": { - "php": ">=7.1.3", + "php": "^7.1.3", "symfony/translation-contracts": "^1.1|^2", - "twig/twig": "^1.43|^2.13|^3.0.4" + "twig/twig": "^1.41|^2.10|^3.0" }, "conflict": { "symfony/console": "<3.4", @@ -6661,17 +5316,16 @@ "symfony/workflow": "<4.3" }, "require-dev": { - "egulias/email-validator": "^2.1.10|^3", + "egulias/email-validator": "^2.1.10", "symfony/asset": "^3.4|^4.0|^5.0", "symfony/console": "^3.4|^4.0|^5.0", "symfony/dependency-injection": "^3.4|^4.0|^5.0", "symfony/error-handler": "^4.4|^5.0", "symfony/expression-language": "^3.4|^4.0|^5.0", "symfony/finder": "^3.4|^4.0|^5.0", - "symfony/form": "^4.4.17", + "symfony/form": "^4.3.5", "symfony/http-foundation": "^4.3|^5.0", "symfony/http-kernel": "^4.4", - "symfony/intl": "^4.4|^5.0", "symfony/mime": "^4.3|^5.0", "symfony/polyfill-intl-icu": "~1.0", "symfony/routing": "^3.4|^4.0|^5.0", @@ -6685,9 +5339,9 @@ "symfony/web-link": "^4.4|^5.0", "symfony/workflow": "^4.3|^5.0", "symfony/yaml": "^3.4|^4.0|^5.0", - "twig/cssinliner-extra": "^2.12|^3", - "twig/inky-extra": "^2.12|^3", - "twig/markdown-extra": "^2.12|^3" + "twig/cssinliner-extra": "^2.12", + "twig/inky-extra": "^2.12", + "twig/markdown-extra": "^2.12" }, "suggest": { "symfony/asset": "For using the AssetExtension", @@ -6707,6 +5361,11 @@ "symfony/yaml": "For using the YamlExtension" }, "type": "symfony-bridge", + "extra": { + "branch-alias": { + "dev-master": "4.4-dev" + } + }, "autoload": { "psr-4": { "Symfony\\Bridge\\Twig\\": "" @@ -6729,48 +5388,31 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Provides integration for Twig with various Symfony components", + "description": "Symfony Twig Bridge", "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/twig-bridge/tree/v4.4.21" - }, - "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-16T08:08:39+00:00" + "time": "2020-01-08T17:29:02+00:00" }, { "name": "symfony/twig-bundle", - "version": "v4.4.20", + "version": "v4.4.4", "source": { "type": "git", "url": "https://github.com/symfony/twig-bundle.git", - "reference": "7cee73b45e3bd963a0ab4184f1041dcdc85b6e86" + "reference": "d3e3e46e9e683e946746219570299ba07506260a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/twig-bundle/zipball/7cee73b45e3bd963a0ab4184f1041dcdc85b6e86", - "reference": "7cee73b45e3bd963a0ab4184f1041dcdc85b6e86", + "url": "https://api.github.com/repos/symfony/twig-bundle/zipball/d3e3e46e9e683e946746219570299ba07506260a", + "reference": "d3e3e46e9e683e946746219570299ba07506260a", "shasum": "" }, "require": { - "php": ">=7.1.3", + "php": "^7.1.3", "symfony/http-foundation": "^4.3|^5.0", "symfony/http-kernel": "^4.4", "symfony/polyfill-ctype": "~1.8", "symfony/twig-bridge": "^4.4|^5.0", - "twig/twig": "^1.43|^2.13|^3.0.4" + "twig/twig": "^1.41|^2.10|^3.0" }, "conflict": { "symfony/dependency-injection": "<4.1", @@ -6778,7 +5420,7 @@ "symfony/translation": "<4.2" }, "require-dev": { - "doctrine/annotations": "^1.10.4", + "doctrine/annotations": "~1.7", "doctrine/cache": "~1.0", "symfony/asset": "^3.4|^4.0|^5.0", "symfony/dependency-injection": "^4.2.5|^5.0", @@ -6794,6 +5436,11 @@ "symfony/yaml": "^3.4|^4.0|^5.0" }, "type": "symfony-bundle", + "extra": { + "branch-alias": { + "dev-master": "4.4-dev" + } + }, "autoload": { "psr-4": { "Symfony\\Bundle\\TwigBundle\\": "" @@ -6816,43 +5463,26 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Provides a tight integration of Twig into the Symfony full-stack framework", + "description": "Symfony TwigBundle", "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/twig-bundle/tree/v4.4.20" - }, - "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-27T09:09:26+00:00" + "time": "2020-01-04T13:00:46+00:00" }, { "name": "symfony/validator", - "version": "v4.4.21", + "version": "v4.4.4", "source": { "type": "git", "url": "https://github.com/symfony/validator.git", - "reference": "c00da06b82b8591548f52b4d6aad0faa0985843e" + "reference": "eb3e15de5c63873ca6e2a88b56a029f7be4c5953" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/validator/zipball/c00da06b82b8591548f52b4d6aad0faa0985843e", - "reference": "c00da06b82b8591548f52b4d6aad0faa0985843e", + "url": "https://api.github.com/repos/symfony/validator/zipball/eb3e15de5c63873ca6e2a88b56a029f7be4c5953", + "reference": "eb3e15de5c63873ca6e2a88b56a029f7be4c5953", "shasum": "" }, "require": { - "php": ">=7.1.3", + "php": "^7.1.3", "symfony/polyfill-ctype": "~1.8", "symfony/polyfill-mbstring": "~1.0", "symfony/translation-contracts": "^1.1|^2" @@ -6867,9 +5497,9 @@ "symfony/yaml": "<3.4" }, "require-dev": { - "doctrine/annotations": "^1.10.4", + "doctrine/annotations": "~1.7", "doctrine/cache": "~1.0", - "egulias/email-validator": "^2.1.10|^3", + "egulias/email-validator": "^2.1.10", "symfony/cache": "^3.4|^4.0|^5.0", "symfony/config": "^3.4|^4.0|^5.0", "symfony/dependency-injection": "^3.4|^4.0|^5.0", @@ -6878,7 +5508,6 @@ "symfony/http-foundation": "^4.1|^5.0", "symfony/http-kernel": "^4.4", "symfony/intl": "^4.3|^5.0", - "symfony/mime": "^4.4|^5.0", "symfony/property-access": "^3.4|^4.0|^5.0", "symfony/property-info": "^3.4|^4.0|^5.0", "symfony/translation": "^4.2", @@ -6899,6 +5528,11 @@ "symfony/yaml": "" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.4-dev" + } + }, "autoload": { "psr-4": { "Symfony\\Component\\Validator\\": "" @@ -6921,45 +5555,27 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Provides tools to validate values", + "description": "Symfony Validator Component", "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/validator/tree/v4.4.21" - }, - "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-23T11:25:54+00:00" + "time": "2020-01-31T09:11:17+00:00" }, { "name": "symfony/var-dumper", - "version": "v5.2.6", + "version": "v5.0.4", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "89412a68ea2e675b4e44f260a5666729f77f668e" + "reference": "923591cfb78a935f0c98968fedfad05bfda9d01f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/89412a68ea2e675b4e44f260a5666729f77f668e", - "reference": "89412a68ea2e675b4e44f260a5666729f77f668e", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/923591cfb78a935f0c98968fedfad05bfda9d01f", + "reference": "923591cfb78a935f0c98968fedfad05bfda9d01f", "shasum": "" }, "require": { - "php": ">=7.2.5", - "symfony/polyfill-mbstring": "~1.0", - "symfony/polyfill-php80": "^1.15" + "php": "^7.2.5", + "symfony/polyfill-mbstring": "~1.0" }, "conflict": { "phpunit/phpunit": "<5.4.3", @@ -6969,7 +5585,7 @@ "ext-iconv": "*", "symfony/console": "^4.4|^5.0", "symfony/process": "^4.4|^5.0", - "twig/twig": "^2.13|^3.0.4" + "twig/twig": "^2.4|^3.0" }, "suggest": { "ext-iconv": "To convert non-UTF-8 strings to UTF-8 (or symfony/polyfill-iconv in case ext-iconv cannot be used).", @@ -6980,6 +5596,11 @@ "Resources/bin/var-dump-server" ], "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.0-dev" + } + }, "autoload": { "files": [ "Resources/functions/dump.php" @@ -7005,53 +5626,40 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Provides mechanisms for walking through any arbitrary PHP variable", + "description": "Symfony mechanism for exploring and dumping PHP variables", "homepage": "https://symfony.com", "keywords": [ "debug", "dump" ], - "support": { - "source": "https://github.com/symfony/var-dumper/tree/v5.2.6" - }, - "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-28T09:42:18+00:00" + "time": "2020-01-25T15:56:29+00:00" }, { "name": "symfony/var-exporter", - "version": "v5.2.4", + "version": "v5.0.8", "source": { "type": "git", "url": "https://github.com/symfony/var-exporter.git", - "reference": "5aed4875ab514c8cb9b6ff4772baa25fa4c10307" + "reference": "5d18811da9e1ae2bb86b0a97fb2d784e27ffd59f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-exporter/zipball/5aed4875ab514c8cb9b6ff4772baa25fa4c10307", - "reference": "5aed4875ab514c8cb9b6ff4772baa25fa4c10307", + "url": "https://api.github.com/repos/symfony/var-exporter/zipball/5d18811da9e1ae2bb86b0a97fb2d784e27ffd59f", + "reference": "5d18811da9e1ae2bb86b0a97fb2d784e27ffd59f", "shasum": "" }, "require": { - "php": ">=7.2.5", - "symfony/polyfill-php80": "^1.15" + "php": "^7.2.5" }, "require-dev": { - "symfony/var-dumper": "^4.4.9|^5.0.9" + "symfony/var-dumper": "^4.4|^5.0" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.0-dev" + } + }, "autoload": { "psr-4": { "Symfony\\Component\\VarExporter\\": "" @@ -7074,7 +5682,7 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Allows exporting any serializable PHP data structure to plain PHP code", + "description": "A blend of var_export() + serialize() to turn any serializable data structure to plain PHP code", "homepage": "https://symfony.com", "keywords": [ "clone", @@ -7084,41 +5692,24 @@ "instantiate", "serialize" ], - "support": { - "source": "https://github.com/symfony/var-exporter/tree/v5.2.4" - }, - "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-27T10:01:46+00:00" + "time": "2020-04-15T15:59:10+00:00" }, { "name": "symfony/web-profiler-bundle", - "version": "v5.0.11", + "version": "v5.0.4", "source": { "type": "git", "url": "https://github.com/symfony/web-profiler-bundle.git", - "reference": "3b6dbd2cc76275e117d5c55923c7f511ead22bae" + "reference": "8f4831567fc39bbe42af415a14a6039621349787" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/web-profiler-bundle/zipball/3b6dbd2cc76275e117d5c55923c7f511ead22bae", - "reference": "3b6dbd2cc76275e117d5c55923c7f511ead22bae", + "url": "https://api.github.com/repos/symfony/web-profiler-bundle/zipball/8f4831567fc39bbe42af415a14a6039621349787", + "reference": "8f4831567fc39bbe42af415a14a6039621349787", "shasum": "" }, "require": { - "php": ">=7.2.5", + "php": "^7.2.5", "symfony/config": "^4.4|^5.0", "symfony/framework-bundle": "^4.4|^5.0", "symfony/http-kernel": "^4.4|^5.0", @@ -7167,41 +5758,24 @@ ], "description": "Symfony WebProfilerBundle", "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/web-profiler-bundle/tree/v5.0.11" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2020-07-23T08:36:09+00:00" + "time": "2020-01-23T11:07:12+00:00" }, { "name": "symfony/yaml", - "version": "v4.4.21", + "version": "v4.4.4", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "3871c720871029f008928244e56cf43497da7e9d" + "reference": "cd014e425b3668220adb865f53bff64b3ad21767" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/3871c720871029f008928244e56cf43497da7e9d", - "reference": "3871c720871029f008928244e56cf43497da7e9d", + "url": "https://api.github.com/repos/symfony/yaml/zipball/cd014e425b3668220adb865f53bff64b3ad21767", + "reference": "cd014e425b3668220adb865f53bff64b3ad21767", "shasum": "" }, "require": { - "php": ">=7.1.3", + "php": "^7.1.3", "symfony/polyfill-ctype": "~1.8" }, "conflict": { @@ -7214,6 +5788,11 @@ "symfony/console": "For validating YAML files using the lint command" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.4-dev" + } + }, "autoload": { "psr-4": { "Symfony\\Component\\Yaml\\": "" @@ -7236,54 +5815,37 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Loads and dumps YAML files", + "description": "Symfony Yaml Component", "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/yaml/tree/v4.4.21" - }, - "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-05T17:58:50+00:00" + "time": "2020-01-21T11:12:16+00:00" }, { "name": "twig/twig", - "version": "v3.3.0", + "version": "v3.0.2", "source": { "type": "git", "url": "https://github.com/twigphp/Twig.git", - "reference": "1f3b7e2c06cc05d42936a8ad508ff1db7975cdc5" + "reference": "5e6df0763a83dab0b73c1e803342fc0315f63ff5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/twigphp/Twig/zipball/1f3b7e2c06cc05d42936a8ad508ff1db7975cdc5", - "reference": "1f3b7e2c06cc05d42936a8ad508ff1db7975cdc5", + "url": "https://api.github.com/repos/twigphp/Twig/zipball/5e6df0763a83dab0b73c1e803342fc0315f63ff5", + "reference": "5e6df0763a83dab0b73c1e803342fc0315f63ff5", "shasum": "" }, "require": { - "php": ">=7.2.5", + "php": "^7.2.5", "symfony/polyfill-ctype": "^1.8", "symfony/polyfill-mbstring": "^1.3" }, "require-dev": { "psr/container": "^1.0", - "symfony/phpunit-bridge": "^4.4.9|^5.0.9" + "symfony/phpunit-bridge": "^4.4|^5.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.3-dev" + "dev-master": "3.0-dev" } }, "autoload": { @@ -7317,61 +5879,165 @@ "keywords": [ "templating" ], - "support": { - "issues": "https://github.com/twigphp/Twig/issues", - "source": "https://github.com/twigphp/Twig/tree/v3.3.0" + "time": "2020-02-11T06:03:57+00:00" + }, + { + "name": "zendframework/zend-code", + "version": "3.4.1", + "source": { + "type": "git", + "url": "https://github.com/zendframework/zend-code.git", + "reference": "268040548f92c2bfcba164421c1add2ba43abaaa" }, - "funding": [ - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/twig/twig", - "type": "tidelift" + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/zendframework/zend-code/zipball/268040548f92c2bfcba164421c1add2ba43abaaa", + "reference": "268040548f92c2bfcba164421c1add2ba43abaaa", + "shasum": "" + }, + "require": { + "php": "^7.1", + "zendframework/zend-eventmanager": "^2.6 || ^3.0" + }, + "conflict": { + "phpspec/prophecy": "<1.9.0" + }, + "require-dev": { + "doctrine/annotations": "^1.7", + "ext-phar": "*", + "phpunit/phpunit": "^7.5.16 || ^8.4", + "zendframework/zend-coding-standard": "^1.0", + "zendframework/zend-stdlib": "^2.7 || ^3.0" + }, + "suggest": { + "doctrine/annotations": "Doctrine\\Common\\Annotations >=1.0 for annotation features", + "zendframework/zend-stdlib": "Zend\\Stdlib component" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.4.x-dev", + "dev-develop": "3.5.x-dev", + "dev-dev-4.0": "4.0.x-dev" } + }, + "autoload": { + "psr-4": { + "Zend\\Code\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" ], - "time": "2021-02-08T09:54:36+00:00" + "description": "Extensions to the PHP Reflection API, static code scanning, and code generation", + "keywords": [ + "ZendFramework", + "code", + "zf" + ], + "abandoned": "laminas/laminas-code", + "time": "2019-12-10T19:21:15+00:00" + }, + { + "name": "zendframework/zend-eventmanager", + "version": "3.2.1", + "source": { + "type": "git", + "url": "https://github.com/zendframework/zend-eventmanager.git", + "reference": "a5e2583a211f73604691586b8406ff7296a946dd" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/zendframework/zend-eventmanager/zipball/a5e2583a211f73604691586b8406ff7296a946dd", + "reference": "a5e2583a211f73604691586b8406ff7296a946dd", + "shasum": "" + }, + "require": { + "php": "^5.6 || ^7.0" + }, + "require-dev": { + "athletic/athletic": "^0.1", + "container-interop/container-interop": "^1.1.0", + "phpunit/phpunit": "^5.7.27 || ^6.5.8 || ^7.1.2", + "zendframework/zend-coding-standard": "~1.0.0", + "zendframework/zend-stdlib": "^2.7.3 || ^3.0" + }, + "suggest": { + "container-interop/container-interop": "^1.1.0, to use the lazy listeners feature", + "zendframework/zend-stdlib": "^2.7.3 || ^3.0, to use the FilterChain feature" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.2-dev", + "dev-develop": "3.3-dev" + } + }, + "autoload": { + "psr-4": { + "Zend\\EventManager\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "description": "Trigger and listen to events within a PHP application", + "homepage": "https://github.com/zendframework/zend-eventmanager", + "keywords": [ + "event", + "eventmanager", + "events", + "zf2" + ], + "abandoned": "laminas/laminas-eventmanager", + "time": "2018-04-25T15:33:34+00:00" } ], "packages-dev": [ { "name": "doctrine/data-fixtures", - "version": "1.5.0", + "version": "1.4.2", "source": { "type": "git", "url": "https://github.com/doctrine/data-fixtures.git", - "reference": "51d3d4880d28951fff42a635a2389f8c63baddc5" + "reference": "39e9777c9089351a468f780b01cffa3cb0a42907" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/data-fixtures/zipball/51d3d4880d28951fff42a635a2389f8c63baddc5", - "reference": "51d3d4880d28951fff42a635a2389f8c63baddc5", + "url": "https://api.github.com/repos/doctrine/data-fixtures/zipball/39e9777c9089351a468f780b01cffa3cb0a42907", + "reference": "39e9777c9089351a468f780b01cffa3cb0a42907", "shasum": "" }, "require": { - "doctrine/common": "^2.13|^3.0", - "doctrine/persistence": "^1.3.3|^2.0", - "php": "^7.2 || ^8.0" + "doctrine/common": "^2.11", + "doctrine/persistence": "^1.3.3", + "php": "^7.2" }, "conflict": { "doctrine/phpcr-odm": "<1.3.0" }, "require-dev": { - "doctrine/coding-standard": "^8.2", + "alcaeus/mongo-php-adapter": "^1.1", + "doctrine/coding-standard": "^6.0", "doctrine/dbal": "^2.5.4", - "doctrine/mongodb-odm": "^1.3.0 || ^2.0.0", + "doctrine/mongodb-odm": "^1.3.0", "doctrine/orm": "^2.7.0", - "ext-sqlite3": "*", - "phpunit/phpunit": "^8.0" + "phpunit/phpunit": "^7.0" }, "suggest": { - "alcaeus/mongo-php-adapter": "For using MongoDB ODM 1.3 with PHP 7 (deprecated)", + "alcaeus/mongo-php-adapter": "For using MongoDB ODM with PHP 7", "doctrine/mongodb-odm": "For loading MongoDB ODM fixtures", "doctrine/orm": "For loading ORM fixtures", "doctrine/phpcr-odm": "For loading PHPCR ODM fixtures" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.4.x-dev" + } + }, "autoload": { "psr-4": { "Doctrine\\Common\\DataFixtures\\": "lib/Doctrine/Common/DataFixtures" @@ -7392,46 +6058,27 @@ "keywords": [ "database" ], - "support": { - "issues": "https://github.com/doctrine/data-fixtures/issues", - "source": "https://github.com/doctrine/data-fixtures/tree/1.5.0" - }, - "funding": [ - { - "url": "https://www.doctrine-project.org/sponsorship.html", - "type": "custom" - }, - { - "url": "https://www.patreon.com/phpdoctrine", - "type": "patreon" - }, - { - "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fdata-fixtures", - "type": "tidelift" - } - ], - "time": "2021-01-23T10:20:43+00:00" + "time": "2020-01-17T11:11:28+00:00" }, { "name": "doctrine/doctrine-fixtures-bundle", - "version": "3.4.0", + "version": "3.3.0", "source": { "type": "git", "url": "https://github.com/doctrine/DoctrineFixturesBundle.git", - "reference": "870189619a7770f468ffb0b80925302e065a3b34" + "reference": "8f07fcfdac7f3591f3c4bf13a50cbae05f65ed70" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/DoctrineFixturesBundle/zipball/870189619a7770f468ffb0b80925302e065a3b34", - "reference": "870189619a7770f468ffb0b80925302e065a3b34", + "url": "https://api.github.com/repos/doctrine/DoctrineFixturesBundle/zipball/8f07fcfdac7f3591f3c4bf13a50cbae05f65ed70", + "reference": "8f07fcfdac7f3591f3c4bf13a50cbae05f65ed70", "shasum": "" }, "require": { "doctrine/data-fixtures": "^1.3", "doctrine/doctrine-bundle": "^1.11|^2.0", "doctrine/orm": "^2.6.0", - "doctrine/persistence": "^1.3.7|^2.0", - "php": "^7.1 || ^8.0", + "php": "^7.1", "symfony/config": "^3.4|^4.3|^5.0", "symfony/console": "^3.4|^4.3|^5.0", "symfony/dependency-injection": "^3.4|^4.3|^5.0", @@ -7440,10 +6087,15 @@ }, "require-dev": { "doctrine/coding-standard": "^6.0", - "phpunit/phpunit": "^7.4 || ^8.0 || ^9.2", + "phpunit/phpunit": "^7.4", "symfony/phpunit-bridge": "^4.1|^5.0" }, "type": "symfony-bundle", + "extra": { + "branch-alias": { + "dev-master": "3.3.x-dev" + } + }, "autoload": { "psr-4": { "Doctrine\\Bundle\\FixturesBundle\\": "" @@ -7473,47 +6125,34 @@ "Fixture", "persistence" ], - "support": { - "issues": "https://github.com/doctrine/DoctrineFixturesBundle/issues", - "source": "https://github.com/doctrine/DoctrineFixturesBundle/tree/3.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%2Fdoctrine-fixtures-bundle", - "type": "tidelift" - } - ], - "time": "2020-11-14T09:36:49+00:00" + "time": "2019-11-13T15:46:58+00:00" }, { "name": "symfony/dotenv", - "version": "v4.4.20", + "version": "v4.4.4", "source": { "type": "git", "url": "https://github.com/symfony/dotenv.git", - "reference": "4952e5ce9e6df3d737b9e9c337bddf781180a213" + "reference": "b74a1638f53e3c65e4bbfc2a03c23fdc400fd243" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dotenv/zipball/4952e5ce9e6df3d737b9e9c337bddf781180a213", - "reference": "4952e5ce9e6df3d737b9e9c337bddf781180a213", + "url": "https://api.github.com/repos/symfony/dotenv/zipball/b74a1638f53e3c65e4bbfc2a03c23fdc400fd243", + "reference": "b74a1638f53e3c65e4bbfc2a03c23fdc400fd243", "shasum": "" }, "require": { - "php": ">=7.1.3" + "php": "^7.1.3" }, "require-dev": { "symfony/process": "^3.4.2|^4.0|^5.0" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.4-dev" + } + }, "autoload": { "psr-4": { "Symfony\\Component\\Dotenv\\": "" @@ -7543,47 +6182,30 @@ "env", "environment" ], - "support": { - "source": "https://github.com/symfony/dotenv/tree/v4.4.20" - }, - "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-27T09:09:26+00:00" + "time": "2020-01-08T17:29:02+00:00" }, { "name": "symfony/thanks", - "version": "v1.2.10", + "version": "v1.2.5", "source": { "type": "git", "url": "https://github.com/symfony/thanks.git", - "reference": "e9c4709560296acbd4fe9e12b8d57a925aa7eae8" + "reference": "a8a5fbe3907a52cb7e2bb704d3b0231782b4193c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/thanks/zipball/e9c4709560296acbd4fe9e12b8d57a925aa7eae8", - "reference": "e9c4709560296acbd4fe9e12b8d57a925aa7eae8", + "url": "https://api.github.com/repos/symfony/thanks/zipball/a8a5fbe3907a52cb7e2bb704d3b0231782b4193c", + "reference": "a8a5fbe3907a52cb7e2bb704d3b0231782b4193c", "shasum": "" }, "require": { - "composer-plugin-api": "^1.0|^2.0", - "php": ">=5.5.9" + "composer-plugin-api": "^1.0", + "php": "^5.5.9|^7.0.0" }, "type": "composer-plugin", "extra": { "branch-alias": { - "dev-main": "1.2-dev" + "dev-master": "1.2-dev" }, "class": "Symfony\\Thanks\\Thanks" }, @@ -7603,25 +6225,7 @@ } ], "description": "Encourages sending ⭐ and 💵 to fellow PHP package maintainers (not limited to Symfony components)!", - "support": { - "issues": "https://github.com/symfony/thanks/issues", - "source": "https://github.com/symfony/thanks/tree/v1.2.10" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2020-10-14T17:47:37+00:00" + "time": "2020-01-15T17:39:29+00:00" } ], "aliases": [], @@ -7636,6 +6240,5 @@ "php": "^7.1.3", "ext-iconv": "*" }, - "platform-dev": [], - "plugin-api-version": "2.0.0" + "platform-dev": [] } diff --git a/config/bundles.php b/config/bundles.php index fba2661f..79841817 100644 --- a/config/bundles.php +++ b/config/bundles.php @@ -14,4 +14,5 @@ return [ Catalyst\APIBundle\CatalystAPIBundle::class => ['all' => true], Catalyst\AuthBundle\CatalystAuthBundle::class => ['all' => true], Catalyst\MenuBundle\CatalystMenuBundle::class => ['all' => true], + Symfony\Bundle\MonologBundle\MonologBundle::class => ['all' => true], ]; diff --git a/config/packages/dev/monolog.yaml b/config/packages/dev/monolog.yaml new file mode 100644 index 00000000..b1998da1 --- /dev/null +++ b/config/packages/dev/monolog.yaml @@ -0,0 +1,19 @@ +monolog: + handlers: + main: + type: stream + path: "%kernel.logs_dir%/%kernel.environment%.log" + level: debug + channels: ["!event"] + # uncomment to get logging in your browser + # you may have to allow bigger header sizes in your Web server configuration + #firephp: + # type: firephp + # level: info + #chromephp: + # type: chromephp + # level: info + console: + type: console + process_psr_3_messages: false + channels: ["!event", "!doctrine", "!console"] diff --git a/config/packages/prod/deprecations.yaml b/config/packages/prod/deprecations.yaml new file mode 100644 index 00000000..60026a1b --- /dev/null +++ b/config/packages/prod/deprecations.yaml @@ -0,0 +1,8 @@ +# As of Symfony 5.1, deprecations are logged in the dedicated "deprecation" channel when it exists +#monolog: +# channels: [deprecation] +# handlers: +# deprecation: +# type: stream +# channels: [deprecation] +# path: php://stderr diff --git a/config/packages/prod/monolog.yaml b/config/packages/prod/monolog.yaml new file mode 100644 index 00000000..2c02ad8e --- /dev/null +++ b/config/packages/prod/monolog.yaml @@ -0,0 +1,17 @@ +monolog: + handlers: + main: + type: fingers_crossed + action_level: error + handler: nested + excluded_http_codes: [404, 405] + buffer_size: 50 # How many messages should be saved? Prevent memory leaks + nested: + type: stream + path: php://stderr + level: debug + formatter: monolog.formatter.json + console: + type: console + process_psr_3_messages: false + channels: ["!event", "!doctrine"] diff --git a/config/packages/test/monolog.yaml b/config/packages/test/monolog.yaml new file mode 100644 index 00000000..fc40641d --- /dev/null +++ b/config/packages/test/monolog.yaml @@ -0,0 +1,12 @@ +monolog: + handlers: + main: + type: fingers_crossed + action_level: error + handler: nested + excluded_http_codes: [404, 405] + channels: ["!event"] + nested: + type: stream + path: "%kernel.logs_dir%/%kernel.environment%.log" + level: debug diff --git a/config/services.yaml b/config/services.yaml index 75c83d1d..29231ef0 100644 --- a/config/services.yaml +++ b/config/services.yaml @@ -266,3 +266,21 @@ services: event: 'postPersist' entity: 'App\Entity\CustomerVehicle' + # hub service + App\Service\HubSelector: + arguments: + $em: "@doctrine.orm.entity_manager" + $im: "@App\\Service\\InventoryManager" + $hub_distributor: "@App\\Service\\HubDistributor" + $hub_filter_logger: "@App\\Service\\HubFilterLogger" + + # hub distributor + App\Service\HubDistributor: + arguments: + $redis: "@App\\Service\\RedisClientProvider" + $hub_jo_key: "%env(HUB_JO_KEY)%" + + # hub filter logger + App\Service\HubFilterLogger: + arguments: + $em: "@doctrine.orm.entity_manager" diff --git a/src/Command/ResetHubJoCountCommand.php b/src/Command/ResetHubJoCountCommand.php new file mode 100644 index 00000000..ea2314f3 --- /dev/null +++ b/src/Command/ResetHubJoCountCommand.php @@ -0,0 +1,39 @@ +redis = $redis->getRedisClient(); + + parent::__construct(); + } + + protected function configure() + { + $this->setName('hub:jo:reset') + ->setDescription('Reset hub\'s job order count') + ->setHelp('Reset hub\'s job order count'); + } + + + protected function execute(InputInterface $input, OutputInterface $output) + { + $key = 'hub_jo_count'; + + $this->redis->del($key); + + return 0; + } +} diff --git a/src/Controller/APIController.php b/src/Controller/APIController.php index d59121f7..24aaff76 100644 --- a/src/Controller/APIController.php +++ b/src/Controller/APIController.php @@ -28,6 +28,8 @@ use App\Ramcar\TradeInType; use App\Ramcar\JOEventType; use App\Ramcar\AdvanceOrderSlot; use App\Ramcar\AutoAssignStatus; +use App\Ramcar\HubCriteria; +use App\Ramcar\WillingToWaitContent; use App\Service\InvoiceGeneratorInterface; use App\Service\RisingTideGateway; @@ -37,6 +39,9 @@ use App\Service\RiderTracker; use App\Service\MapTools; use App\Service\InventoryManager; use App\Service\RiderAssignmentHandlerInterface; +use App\Service\HubSelector; +use App\Service\HubDistributor; +use App\Service\HubFilterLogger; use App\Entity\MobileSession; use App\Entity\Customer; @@ -844,7 +849,8 @@ class APIController extends Controller implements LoggedController public function requestJobOrder(Request $req, InvoiceGeneratorInterface $ic, GeofenceTracker $geo, MapTools $map_tools, InventoryManager $im, MQTTClient $mclient, - RiderAssignmentHandlerInterface $rah) + RiderAssignmentHandlerInterface $rah, HubSelector $hub_select, + HubDistributor $hub_dist, HubFilterLogger $hub_filter_logger) { // check required parameters and api key $required_params = [ @@ -917,6 +923,14 @@ class APIController extends Controller implements LoggedController } $jo->setServiceType($stype); + // check if willing to wait is true or not + $will_wait = $req->request->get('willing_to_wait'); + // check for 'false' text + if ($will_wait === false || $will_wait === 0 || $will_wait === '0' || $will_wait == 'false') + $jo->setWillWait(WillingToWaitContent::NOT_WILLING_TO_WAIT); + else + $jo->setWillWait(WillingToWaitContent::WILLING_TO_WAIT); + // validate warranty $warr = $req->request->get('warranty'); if (!WarrantyClass::validate($warr)) @@ -1009,49 +1023,73 @@ class APIController extends Controller implements LoggedController $invoice = $ic->generateInvoice($icrit); $jo->setInvoice($invoice); - // assign hub and rider - if (($jo->getServiceType() == ServiceType::BATTERY_REPLACEMENT_NEW) || - ($jo->getServicetype() == ServiceType::BATTERY_REPLACEMENT_WARRANTY)) + + // TODO: set this properly, since the other flags + // are on default values + $hub_criteria = new HubCriteria(); + $hub_criteria->setPoint($jo->getCoordinates()) + ->setJoType($jo->getServiceType()); + + // add battery to items + $sku = $batt->getSAPCode(); + if (!empty($sku)) + $hub_criteria->addItem($batt->getSAPCode(), 1); + + // add payment method to criteria + if (!empty($jo->getModeOfPayment())) + $hub_criteria->setPaymentMethod($jo->getModeOfPayment()); + + // check if willing to wait is true or not + if ($jo->getWillWait() == WillingToWaitContent::NOT_WILLING_TO_WAIT) { - // get nearest hub - // $nearest_hub = $this->findNearestHubWithInventory($jo, $batt, $em, $map_tools, $im); - $nearest_hub = $this->findNearestHub($jo, $em, $map_tools); - } - else - { - $nearest_hub = $this->findNearestHub($jo, $em, $map_tools); + $hub_criteria->setEmergency(true); } - if (!empty($nearest_hub)) + // find nearest hubs + $nearest_hubs = $hub_select->find($hub_criteria); + + if (!empty($nearest_hubs)) { + // go through the hub list, find the nearest hub + // with an available rider //error_log('found nearest hub ' . $nearest_hub->getID()); - // assign rider - $available_riders = $nearest_hub->getAvailableRiders(); - if (count($available_riders) > 0) + foreach ($nearest_hubs as $nearest_hub) { - $assigned_rider = null; - if (count($available_riders) > 1) + $available_riders = $nearest_hub['hub']->getAvailableRiders(); + if (count($available_riders) >= 1) { - // TODO: the setting of riders into an array - // will no longer be necessary when the contents - // of randomizeRider changes - $riders = []; - foreach ($available_riders as $rider) + $assigned_rider = null; + if (count($available_riders) == 1) { - $riders[] = $rider; + $assigned_rider = $available_riders[0]; + } + else + { + // TODO: the setting of riders into an array + // will no longer be necessary when the contents + // of randomizeRider changes + $riders = []; + foreach ($available_riders as $rider) + { + $riders[] = $rider; + } + + $assigned_rider = $this->randomizeRider($riders); } - $assigned_rider = $this->randomizeRider($riders); - } - else - $assigned_rider = $available_riders[0]; - - //error_log('found rider ' . $assigned_rider->getID()); - $jo->setHub($nearest_hub); - $jo->setRider($assigned_rider); - $jo->setStatus(JOStatus::ASSIGNED); + $jo->setHub($nearest_hub['hub']); + $jo->setRider($assigned_rider); + $jo->setStatus(JOStatus::ASSIGNED); + $jo->setStatusAutoAssign(AutoAssignStatus::HUB_AND_RIDER_ASSIGNED); - $assigned_rider->setAvailable(false); + $assigned_rider->setAvailable(false); + + // update redis hub_jo_count for hub + $hub_dist->incrementJoCountForHub($nearest_hub['hub']); + + // break out of loop + break; + } } } @@ -2330,7 +2368,8 @@ class APIController extends Controller implements LoggedController public function newRequestJobOrder(Request $req, InvoiceGeneratorInterface $ic, GeofenceTracker $geo, MapTools $map_tools, InventoryManager $im, MQTTClient $mclient, - RiderAssignmentHandlerInterface $rah) + RiderAssignmentHandlerInterface $rah, HubSelector $hub_select, + HubDistributor $hub_dist, HubFilterLogger $hub_filter_logger) { // check required parameters and api key $required_params = [ @@ -2419,6 +2458,14 @@ class APIController extends Controller implements LoggedController } $jo->setServiceType($stype); + // check if willing to wait is true or not + $will_wait = $req->request->get('willing_to_wait'); + // check for 'false' text + if ($will_wait === false || $will_wait === 0 || $will_wait === '0' || $will_wait == 'false') + $jo->setWillWait(WillingToWaitContent::NOT_WILLING_TO_WAIT); + else + $jo->setWillWait(WillingToWaitContent::WILLING_TO_WAIT); + // validate warranty $warr = $req->request->get('warranty'); if (!WarrantyClass::validate($warr)) @@ -2515,50 +2562,72 @@ class APIController extends Controller implements LoggedController // check if hub is null if ($hub == null) { - // find nearest hub - if (($jo->getServiceType() == ServiceType::BATTERY_REPLACEMENT_NEW) || - ($jo->getServicetype() == ServiceType::BATTERY_REPLACEMENT_WARRANTY)) + // TODO: set this properly, since the other flags + // are on default values + $hub_criteria = new HubCriteria(); + $hub_criteria->setPoint($jo->getCoordinates()) + ->setJoType($jo->getServiceType()); + + // add battery to items + $sku = $batt->getSAPCode(); + if (!empty($sku)) + $hub_criteria->addItem($batt->getSAPCode(), 1); + + // add payment method to criteria + if (!empty($jo->getModeOfPayment())) + $hub_criteria->setPaymentMethod($jo->getModeOfPayment()); + + // check if willing to wait is true or not + if ($jo->getWillWait() == WillingToWaitContent::NOT_WILLING_TO_WAIT) { - // get nearest hub - // $nearest_hub = $this->findNearestHubWithInventory($jo, $batt, $em, $map_tools, $im); - $nearest_hub = $this->findNearestHub($jo, $em, $map_tools); - } - else - { - $nearest_hub = $this->findNearestHub($jo, $em, $map_tools); + $hub_criteria->setEmergency(true); } - if (!empty($nearest_hub)) + // find nearest hubs + $nearest_hubs = $hub_select->find($hub_criteria); + + if (!empty($nearest_hubs)) { + // go through the hub list, find the nearest hub + // with an available rider //error_log('found nearest hub ' . $nearest_hub->getID()); - // assign rider - $available_riders = $nearest_hub->getAvailableRiders(); - if (count($available_riders) > 0) + foreach ($nearest_hubs as $nearest_hub) { - $assigned_rider = null; - if (count($available_riders) > 1) + $available_riders = $nearest_hub['hub']->getAvailableRiders(); + if (count($available_riders) >= 1) { - // TODO: the setting of riders into an array - // will no longer be necessary when the contents - // of randomizeRider changes - $riders = []; - foreach ($available_riders as $rider) + $assigned_rider = null; + if (count($available_riders) == 1) { - $riders[] = $rider; + $assigned_rider = $available_riders[0]; + } + else + { + // TODO: the setting of riders into an array + // will no longer be necessary when the contents + // of randomizeRider changes + $riders = []; + foreach ($available_riders as $rider) + { + $riders[] = $rider; + } + + $assigned_rider = $this->randomizeRider($riders); } - $assigned_rider = $this->randomizeRider($riders); + $jo->setHub($nearest_hub['hub']); + $jo->setRider($assigned_rider); + $jo->setStatus(JOStatus::ASSIGNED); + $jo->setStatusAutoAssign(AutoAssignStatus::HUB_AND_RIDER_ASSIGNED); + + $assigned_rider->setAvailable(false); + + // update redis hub_jo_count for hub + $hub_dist->incrementJoCountForHub($nearest_hub['hub']); + + // break out of loop + break; } - else - $assigned_rider = $available_riders[0]; - - //error_log('found rider ' . $assigned_rider->getID()); - $jo->setHub($nearest_hub); - $jo->setRider($assigned_rider); - $jo->setStatus(JOStatus::ASSIGNED); - $jo->setStatusAutoAssign(AutoAssignStatus::HUB_AND_RIDER_ASSIGNED); - - $assigned_rider->setAvailable(false); } } } @@ -2581,7 +2650,10 @@ class APIController extends Controller implements LoggedController $jo->setStatusAutoAssign(AutoAssignStatus::HUB_ASSIGNED); if ($date_schedule != null) - $jo->setDateSchedule($date_schedule); + $jo->setDateSchedule($date_schedule); + + // update redis hub_jo_count for hub + $hub_dist->incrementJoCountForHub($hub); } $em->persist($jo); @@ -3013,14 +3085,14 @@ class APIController extends Controller implements LoggedController // $cust = $this->updateCustomerInfo($req, $em); // update warranty - $res = $this->updateWarranty($res, $em, $trans, $req, $serial, $inv_filename, $wcard_filename, $rt); + $res = $this->updateWarranty($res, $em, $rt, $trans, $req, $serial, $inv_filename, $wcard_filename); $em->flush(); return $res->getReturnResponse(); } - protected function updateWarranty($res, $em, $trans, $req, $serial, $inv_filename = null, $wcard_filename = null, $rt) + protected function updateWarranty($res, $em, $rt, $trans, $req, $serial, $inv_filename = null, $wcard_filename = null) { // get serial $warr_serial = $em->getRepository(WarrantySerial::class)->find($serial); diff --git a/src/Controller/HubController.php b/src/Controller/HubController.php index edc6e599..3becdf97 100644 --- a/src/Controller/HubController.php +++ b/src/Controller/HubController.php @@ -17,8 +17,12 @@ use DateTime; use Catalyst\MenuBundle\Annotation\Menu; -use App\Service\MapTools; use App\Service\RiderTracker; +use App\Service\RisingTideGateway; +use App\Service\HubSelector; + +use App\Ramcar\HubCriteria; +use App\Ramcar\ModeOfPayment; class HubController extends Controller { @@ -128,6 +132,7 @@ class HubController extends Controller $params = []; $params['obj'] = new Hub(); $params['mode'] = 'create'; + $params['payment_methods'] = ModeOfPayment::getCollection(); // response return $this->render('hub/form.html.twig', $params); @@ -154,7 +159,17 @@ class HubController extends Controller ->setBranchCode($req->request->get('branch_code', '')) ->setStatusOpen($req->request->get('status_open', false)) ->setRiderSlots($req->request->get('rider_slots', 0)) - ->setHubViewFlag($req->request->get('flag_hub_view', false)); + ->setHubViewFlag($req->request->get('flag_hub_view', false)) + ->setNotifNumber($req->request->get('notif_number')) + ->clearPaymentMethods(); + + // set payment methods + $payment_methods = $req->request->get('payment_methods'); + + if (!empty($payment_methods)) + { + $obj->setPaymentMethods($payment_methods); + } } protected function setQueryFilters($datatable, QueryBuilder $query) @@ -166,7 +181,7 @@ class HubController extends Controller } } - public function addSubmit(Request $req, EncoderFactoryInterface $ef, ValidatorInterface $validator) + public function addSubmit(Request $req, EncoderFactoryInterface $ef, ValidatorInterface $validator, RisingTideGateway $rt) { $this->denyAccessUnlessGranted('hub.add', null, 'No access.'); @@ -176,14 +191,23 @@ class HubController extends Controller $em = $this->getDoctrine()->getManager(); $obj = new Hub(); + // initialize error list + $error_array = []; + + // validate the notification number + $mobile = $req->request->get('notif_number'); + if (!empty($mobile)) + { + $is_valid = $rt->validatePhoneNumber($mobile); + if (!$is_valid) + $error_array['notif_number'] = 'Invalid notification number'; + } + $this->setObject($obj, $req); // validate $errors = $validator->validate($obj); - // initialize error list - $error_array = []; - // add errors to list foreach ($errors as $error) { $error_array[$error->getPropertyPath()] = $error->getMessage(); @@ -226,12 +250,13 @@ class HubController extends Controller $params = []; $params['obj'] = $obj; $params['mode'] = 'update'; + $params['payment_methods'] = ModeOfPayment::getCollection(); // response return $this->render('hub/form.html.twig', $params); } - public function updateSubmit(Request $req, EncoderFactoryInterface $ef, ValidatorInterface $validator, $id) + public function updateSubmit(Request $req, EncoderFactoryInterface $ef, ValidatorInterface $validator, $id, RisingTideGateway $rt) { $this->denyAccessUnlessGranted('hub.update', null, 'No access.'); @@ -243,14 +268,23 @@ class HubController extends Controller if (empty($obj)) throw $this->createNotFoundException('The item does not exist'); + // initialize error list + $error_array = []; + + // validate the notification number + $mobile = $req->request->get('notif_number'); + if (!empty($mobile)) + { + $is_valid = $rt->validatePhoneNumber($mobile); + if (!$is_valid) + $error_array['notif_number'] = 'Invalid notification number'; + } + $this->setObject($obj, $req); // validate $errors = $validator->validate($obj); - // initialize error list - $error_array = []; - // add errors to list foreach ($errors as $error) { $error_array[$error->getPropertyPath()] = $error->getMessage(); @@ -295,7 +329,7 @@ class HubController extends Controller $response->send(); } - public function nearest(MapTools $map_tools, Request $req) + public function nearest(HubSelector $hub_selector, Request $req) { // get lat / long $lat = $req->query->get('lat'); @@ -303,7 +337,12 @@ class HubController extends Controller // get nearest hubs according to position $point = new Point($long, $lat); - $result = $map_tools->getClosestHubs($point, 10, date("H:i:s")); + + // set up hub criteria + $hub_criteria = new HubCriteria(); + $hub_criteria->setPoint($point); + $hub_selector->find($hub_criteria); + //$result = $map_tools->getClosestHubs($point, 10, date("H:i:s")); $hubs = []; foreach ($result as $hub_res) diff --git a/src/Controller/JobOrderController.php b/src/Controller/JobOrderController.php index 11c7edf0..15f524d6 100644 --- a/src/Controller/JobOrderController.php +++ b/src/Controller/JobOrderController.php @@ -23,6 +23,7 @@ use App\Service\MapTools; use App\Service\MQTTClient; use App\Service\APNSClient; use App\Service\InventoryManager; +use App\Service\HubSelector; use App\Service\RiderTracker; use App\Service\MotivConnector; @@ -315,13 +316,13 @@ class JobOrderController extends Controller /** * @Menu(selected="jo_proc") */ - public function processingForm(MapTools $map_tools, $id, JobOrderHandlerInterface $jo_handler, GISManagerInterface $gis, MotivConnector $motiv) + public function processingForm(HubSelector $hub_selector, $id, JobOrderHandlerInterface $jo_handler, GISManagerInterface $gis, MotivConnector $motiv) { $this->denyAccessUnlessGranted('jo_proc.list', null, 'No access.'); try { - $params = $jo_handler->initializeProcessingForm($id, $map_tools, $motiv); + $params = $jo_handler->initializeProcessingForm($id, $hub_selector, $motiv); } catch (AccessDeniedHttpException $e) { @@ -504,14 +505,14 @@ class JobOrderController extends Controller /** * @Menu(selected="jo_open") */ - public function openHubForm(MapTools $map_tools, $id, JobOrderHandlerInterface $jo_handler, + public function openHubForm(HubSelector $hub_selector, $id, JobOrderHandlerInterface $jo_handler, GISManagerInterface $gis) { $this->denyAccessUnlessGranted('jo_open.list', null, 'No access.'); try { - $params = $jo_handler->initializeHubForm($id, $map_tools); + $params = $jo_handler->initializeHubForm($id, $hub_selector); } catch (NotFoundHttpException $e) { @@ -1204,6 +1205,7 @@ class JobOrderController extends Controller ]); } + // this is uncalled or does not display in admin panel /** * @Menu(selected="jo_autoassign") */ @@ -1223,6 +1225,7 @@ class JobOrderController extends Controller return $this->render($template, $params); } + // this is uncalled or does not display in admin panel public function autoAssignSubmit(Request $req, JobOrderHandlerInterface $jo_handler, EntityManagerInterface $em, MapTools $map_tools, InventoryManager $im) diff --git a/src/Entity/Hub.php b/src/Entity/Hub.php index 0b1769b2..b40bc395 100644 --- a/src/Entity/Hub.php +++ b/src/Entity/Hub.php @@ -68,6 +68,18 @@ class Hub */ protected $flag_hub_view; + // notification number to send SMS to if hub doesn't have item + /** + * @ORM\Column(type="string", length=30) + */ + protected $notif_number; + + // payment methods + /** + * @ORM\Column(type="array", nullable=true) + */ + protected $payment_methods; + public function __construct() { $this->time_open = new DateTime(); @@ -76,6 +88,8 @@ class Hub $this->outlets = new ArrayCollection(); $this->status_open = true; $this->flag_hub_view = false; + $this->notif_number = ''; + $this->payment_methods = new ArrayCollection(); } public function getRiders() @@ -185,5 +199,38 @@ class Hub return $this->flag_hub_view; } + public function setNotifNumber($notif_number) + { + $this->notif_number = $notif_number; + return $this; + } + + public function getNotifNumber() + { + return $this->notif_number; + } + + public function getPaymentMethods() + { + return $this->payment_methods; + } + + public function setPaymentMethods(array $payment_methods) + { + $this->payment_methods = new ArrayCollection(); + + foreach ($payment_methods as $payment_method) + { + $this->payment_methods->add($payment_method); + } + + return $this; + } + + public function clearPaymentMethods() + { + $this->payment_methods = new ArrayCollection(); + return $this; + } } diff --git a/src/Entity/HubFilterLog.php b/src/Entity/HubFilterLog.php new file mode 100644 index 00000000..00f8394d --- /dev/null +++ b/src/Entity/HubFilterLog.php @@ -0,0 +1,83 @@ +date_create = new DateTime(); + } + + public function getID() + { + return $this->id; + } + + public function getDateCreate() + { + return $this->date_create; + } + + public function setHub(Hub $hub) + { + $this->hub = $hub; + return $this; + } + + public function getHub() + { + return $this->hub; + } + + public function setFilterTypeId($filter_type_id) + { + $this->filter_type_id = $filter_type_id; + return $this; + } + + public function getFilterTypeId() + { + return $this->filter_type_id; + } +} diff --git a/src/Ramcar/HubCriteria.php b/src/Ramcar/HubCriteria.php new file mode 100644 index 00000000..f00c1281 --- /dev/null +++ b/src/Ramcar/HubCriteria.php @@ -0,0 +1,140 @@ +limit_results = 10; + $this->limit_distance = 500; + $this->jo_type = ''; + $this->date_time = null; + $this->flag_inventory_check = false; + $this->items = []; + $this->payment_method = ''; + $flag_emergency = false; + } + + public function setPoint(Point $point) + { + $this->point = $point; + return $this; + } + + public function getPoint() + { + return $this->point; + } + + public function setLimitResults($limit_results) + { + $this->limit_results = $limit_results; + return $this; + } + + public function getLimitResults() + { + return $this->limit_results; + } + + public function setLimitDistance($limit_distance) + { + $this->limit_distance = $limit_distance; + return $this; + } + + public function getLimitDistance() + { + return $this->limit_distance; + } + + public function setInventoryCheck($flag_inventory_check = true) + { + $this->flag_inventory_check = $flag_inventory_check; + return $this; + } + + public function hasInventoryCheck() + { + return $this->flag_inventory_check; + } + + public function setJoType($jo_type) + { + // TODO: validate the jo type + $this->jo_type = $jo_type; + return $this; + } + + public function getJoType() + { + return $this->jo_type; + } + + public function setDateTime(DateTime $date_time) + { + $this->date_time = $date_time; + return $this; + } + + public function getDateTime() + { + return $this->date_time; + } + + public function addItem($sku, $quantity) + { + // at this point, sku is assumed to be a valid item + $this->items[$sku] = $quantity; + return $this; + } + + public function getItems() + { + return $this->items; + } + + public function setItems($items) + { + $this->items = $items; + return $this; + } + + public function setPaymentMethod($payment_method) + { + $this->payment_method = $payment_method; + return $this; + } + + public function getPaymentMethod() + { + return $this->payment_method; + } + + public function setEmergency($flag_emergency = true) + { + $this->flag_emergency = $flag_emergency; + return $this; + } + + public function isEmergency() + { + return $this->flag_emergency; + } +} diff --git a/src/Service/HubDistributor.php b/src/Service/HubDistributor.php new file mode 100644 index 00000000..e401a4a1 --- /dev/null +++ b/src/Service/HubDistributor.php @@ -0,0 +1,109 @@ +redis = $redis->getRedisClient(); + $this->hub_jo_key = $hub_jo_key; + } + + public function incrementJoCountForHub(Hub $hub) + { + $key = $hub->getID(); + + // get current count + $jo_count = $this->redis->hget($this->hub_jo_key, $key); + if ($jo_count == false) + { + // hub not in hash + // add hub to hash + // set to 1 since this is first jo for hub + $this->redis->hset($this->hub_jo_key, $key, 1); + } + else + { + // hub exist in hash + // add to count + $this->redis->hset($this->hub_jo_key, $key, $jo_count + 1); + } + } + + public function decrementJoCountForHub(Hub $hub) + { + $key = $hub->getID(); + + // get current count + $jo_count = $this->redis->hget($this->hub_jo_key, $key); + if ($jo_count) + { + // hub exist in hash + // decrement count + $this->redis->hset($this->hub_jo_key, $key, $jo_count - 1); + } + } + + public function arrangeHubs($hubs) + { + if (count($hubs) == 1) + return $hubs; + + $arranged_hubs = []; + + foreach ($hubs as $hub_data) + { + $hub = $hub_data['hub']; + + // need the id of hub + $key = $hub->getID(); + + // get jo count of hub + $hub_jo_count = $this->redis->hget($this->hub_jo_key, $key); + + // check if hub is in hash. if not, hub has no jobs + // but should still be added to results + if ($hub_jo_count != null) + { + $arranged_hubs[] = [ + 'hub' => $hub, + 'db_distance' => $hub_data['db_distance'], + 'distance' => $hub_data['distance'], + 'duration' => $hub_data['duration'], + 'jo_count' => $hub_jo_count, + ]; + } + else + { + $arranged_hubs[] = [ + 'hub' => $hub, + 'db_distance' => $hub_data['db_distance'], + 'distance' => $hub_data['distance'], + 'duration' => $hub_data['duration'], + 'jo_count' => 0, + ]; + } + } + + usort($arranged_hubs, function($a, $b) { + if ($a['jo_count'] == $b['jo_count']) + return 0; + if ($a['jo_count'] < $b['jo_count']) + return -1; + else + return 1; + }); + + //error_log('arranged hubs ' . json_encode($arranged_hubs)); + + return $arranged_hubs; + } +} diff --git a/src/Service/HubFilterLogger.php b/src/Service/HubFilterLogger.php new file mode 100644 index 00000000..71cc1929 --- /dev/null +++ b/src/Service/HubFilterLogger.php @@ -0,0 +1,29 @@ +em = $em; + } + + public function logFilteredHub(Hub $hub, $filter_type) + { + $hub_filter_log = new HubFilterLog(); + + $hub_filter_log->setHub($hub) + ->setFilterTypeId($filter_type); + + $this->em->persist($hub_filter_log); + $this->em->flush(); + } +} diff --git a/src/Service/HubSelector.php b/src/Service/HubSelector.php new file mode 100644 index 00000000..046fe757 --- /dev/null +++ b/src/Service/HubSelector.php @@ -0,0 +1,479 @@ +em = $em; + $this->im = $im; + $this->hub_distributor = $hub_distributor; + $this->hub_filter_logger = $hub_filter_logger; + $this->trans = $trans; + $this->rt = $rt; + } + + public function find(HubCriteria $criteria) + { + $point = $criteria->getPoint(); + $limit_results = $criteria->getLimitResults(); + $limit_distance = $criteria->getLimitDistance(); + $jo_type = $criteria->getJoType(); + $flag_inventory_check = $criteria->hasInventoryCheck(); + $items = $criteria->getItems(); + $date_time = $criteria->getDateTime(); + $payment_method = $criteria->getPaymentMethod(); + $flag_emergency = $criteria->isEmergency(); + + $results = []; + + // get all the hubs within distance + $filtered_hubs = $this->getClosestHubs($point, $limit_distance); + + //error_log('closest hubs ' . json_encode($filtered_hubs)); + + if (!$flag_emergency) + { + // filter the first hub results for date and opening times + $hubs_date_time = $this->filterHubsByDateAndTime($filtered_hubs, $date_time); + $filtered_hubs = $hubs_date_time; + + // filter jo types + $hubs_jo_type = $this->filterHubsByJoType($filtered_hubs, $jo_type); + $filtered_hubs = $hubs_jo_type; + + // filter hubs by payment methods + $hubs_payment_method = $this->filterHubsByPaymentMethod($filtered_hubs, $payment_method); + $filtered_hubs = $hubs_payment_method; + + // filter hubs by rider availability + $hubs_rider_availability = $this->filterHubsByRiderAvailability($filtered_hubs); + $filtered_hubs = $hubs_rider_availability; + + // inventory filter + $hubs_inventory = $this->filterHubsByInventory($filtered_hubs, $flag_inventory_check, + $jo_type, $items); + $filtered_hubs = $hubs_inventory; + + // round robin filter + $hubs_round_robin = $this->filterHubsByRoundRobin($filtered_hubs); + $filtered_hubs = $hubs_round_robin; + + //error_log(json_encode($filtered_hubs)); + + // max results filter + $hubs_max_result = $this->filterHubsByMaxResults($filtered_hubs, $limit_results); + $filtered_hubs = $hubs_max_result; + } + + $results = $filtered_hubs; + + error_log(json_encode($results)); + + return $results; + } + + protected function filterHubsByRoundRobin($hubs) + { + if (empty($hubs)) + return $hubs; + + $results = []; + // call hub distributor service + $arranged_hubs = $this->hub_distributor->arrangeHubs($hubs); + $results = $arranged_hubs; + + return $results; + + } + + protected function filterHubsByMaxResults($hubs, $limit_result) + { + if (empty($hubs)) + return $hubs; + if (empty($limit_result)) + return $hubs; + + $results = []; + for ($i = 0; $i < count($hubs); $i++) + { + if ($i < $limit_result) + $results[] = $hubs[$i]; + else + $this->hub_filter_logger->logFilteredHub($hubs[$i]['hub'], 'max_results'); + } + + return $results; + } + + protected function filterHubsByJoType($hubs, $jo_type) + { + if (empty($hubs)) + return $hubs; + if (empty($jo_type)) + return $hubs; + + $results = []; + foreach ($hubs as $hub_data) + { + $hub = $hub_data['hub']; + + // TODO: for now, have this return true + $has_jo_type = true; + // check if hub offers the jo_type + // TODO: add service to hub + if ($has_jo_type) + $results[] = [ + 'hub' => $hub, + 'db_distance' => $hub_data['db_distance'], + 'distance' => $hub_data['distance'], + 'duration' => $hub_data['duration'], + ]; + else + $this->hub_filter_logger->logFilteredHub($hub, 'job_order_type'); + } + + return $results; + } + + protected function filterHubsByPaymentMethod($hubs, $payment_method) + { + if (empty($hubs)) + return $hubs; + if (empty($payment_method)) + return $hubs; + + $results = []; + foreach ($hubs as $hub_data) + { + $hub = $hub_data['hub']; + + // name of payment method is what is saved + $payment_methods = $hub->getPaymentMethods(); + if ($payment_methods != null) + { + $flag_found_pmethod = false; + foreach ($payment_methods as $pmethod) + { + if ($pmethod == $payment_method) + { + $results[] = [ + 'hub' => $hub, + 'db_distance' => $hub_data['db_distance'], + 'distance' => $hub_data['distance'], + 'duration' => $hub_data['duration'], + ]; + } + $flag_found_pmethod = true; + } + + if (!$flag_found_pmethod) + $this->hub_filter_logger->logFilteredHub($hub, 'no_payment_method'); + } + else + $this->hub_filter_logger->logFilteredHub($hub, 'no_payment_method'); + } + + return $results; + } + + protected function filterHubsByRiderAvailability($hubs) + { + if (empty($hubs)) + return $hubs; + + $results = []; + foreach ($hubs as $hub_data) + { + $hub = $hub_data['hub']; + + // get hub's riders + $riders = $hub->getRiders(); + $avail_rider_count = 0; + foreach ($riders as $rider) + { + if ($rider->isAvailable()) + $avail_rider_count = $avail_rider_count + 1; + } + + error_log('HUB ' . $hub->getID() . ' RIDER COUNT' . $avail_rider_count); + + if ($avail_rider_count > 0) + $results[] = [ + 'hub' => $hub, + 'db_distance' => $hub_data['db_distance'], + 'distance' => $hub_data['distance'], + 'duration' => $hub_data['duration'], + ]; + else + $this->hub_filter_logger->logFilteredHub($hub, 'no_available_rider'); + } + + return $results; + } + + protected function filterHubsByDateAndTime($hubs, $date_time) + { + if (empty($hubs)) + return $hubs; + + if ($date_time == null) + return $hubs; + + $results = []; + + foreach ($hubs as $hub_data) + { + // go through each hub's opening times to check if hub is open + // for the specified time + // get hub opening and closing times + // TODO: maybe in the future, might also have to check if hub + // is open/available on date/day + $hub = $hub_data['hub']; + + $time_open = $hub->getTimeOpen()->format("H:i:s"); + $time_close = $hub->getTimeClose()->format("H:i:s"); + + $filter_time = $date_time->format("H:i:s"); + + if (($filter_time >= $time_open) && + ($filter_time <= $time_close)) + { + $results[] = [ + 'hub' => $hub, + 'db_distance' => $hub_data['db_distance'], + 'distance' => $hub_data['distance'], + 'duration' => $hub_data['duration'], + ]; + } + else + $this->hub_filter_logger->logFilteredHub($hub, 'date_and_time'); + } + + return $results; + } + + protected function filterHubsByInventory($hubs, $flag_inventory_check, $jo_type, $items) + { + if (empty($hubs)) + return $hubs; + + if (!$flag_inventory_check) + return $hubs; + + $results = []; + if ($flag_inventory_check) + { + foreach ($hubs as $hub_data) + { + $hub = $hub_data['hub']; + + if ($jo_type == ServiceType::BATTERY_REPLACEMENT_NEW) + { + // call inventory + $has_items = $this->checkInventory($items, $hub); + if ($has_items) + $results[] = [ + 'hub' => $hub, + 'db_distance' => $hub_data['db_distance'], + 'distance' => $hub_data['distance'], + 'duration' => $hub_data['duration'], + ]; + else + { + // get the skus for the message + $sku_text = ''; + foreach ($items as $key => $value) + { + $sku_text .= ' ' . $key; + } + // send SMS to hub + $message = str_replace('item_display', trim($sku_text), $this->trans->trans('no_inventory_message')); + error_log($message); + $this->sendSMSMessage($hub, $items); + $this->hub_filter_logger->logFilteredHub($hub, 'no_inventory'); + } + } + if ($jo_type == ServiceType::BATTERY_REPLACEMENT_WARRANTY) + { + // call inventory + $has_items = $this->checkInventory($items, $hub); + if ($has_items) + $results[] = [ + 'hub' => $hub, + 'db_distance' => $hub_data['db_distance'], + 'distance' => $hub_data['distance'], + 'duration' => $hub_data['duration'], + ]; + else + { + // get the skus for the message + $sku_text = ''; + foreach ($items as $key => $value) + { + $sku_text .= ' ' . $key; + } + // send SMS to hub + $message = str_replace('item_display', trim($sku_text), $this->trans->trans('no_inventory_message')); + error_log($message); + $this->sendSMSMessage($hub, $items); + $this->hub_filter_logger->logFilteredHub($hub, 'no_inventory'); + } + } + } + } + + return $results; + } + + protected function sendSMSMessage($hub, $items) + { + // compose message + // get the skus for the message + $sku_text = ''; + foreach ($items as $key => $value) + { + $sku_text .= ' ' . $key; + } + $message = str_replace('item_display', trim($sku_text), $this->trans->trans('no_inventory_message')); + + // get hub notification number + $number = $hub->getNotifNumber(); + + if (!empty($number)) + { + // send SMS message + $mobile_number = '63' . $number; + error_log('sending sms to - ' . $mobile_number); + $this->rt->sendSMS($mobile_number, 'MOTOLITE', $message); + } + } + + protected function getClosestHubs(Point $point, $limit_distance) + { + // get closest hubs based on st_distance function from db + $query_string = 'SELECT h, st_distance(h.coordinates, point(:lng, :lat)) as dist FROM App\Entity\Hub h WHERE h.status_open = true ORDER BY dist'; + + $query = $this->em->createQuery($query_string) + ->setParameter('lat', $point->getLatitude()) + ->setParameter('lng', $point->getLongitude()); + + // error_log($query->getSql()); + $result = $query->getResult(); + + $hubs = []; + $hubs_data = []; + foreach ($result as $row) + { + $hubs[] = $row[0]; + + // get coordinates of hub + $hub_coordinates = $row[0]->getCoordinates(); + + $cust_lat = $point->getLatitude(); + $cust_lng = $point->getLongitude(); + + $hub_lat = $hub_coordinates->getLatitude(); + $hub_lng = $hub_coordinates->getLongitude(); + + // get distance in kilometers from customer point to hub point + $dist = $this->distance($cust_lat, $cust_lng, $hub_lat, $hub_lng); + + if ($dist < $limit_distance) + { + $hubs_data[] = [ + 'hub' => $row[0], + 'db_distance' => $row['dist'], + 'distance' => $dist, + 'duration' => 0, + ]; + } + else + { + $this->hub_filter_logger->logFilteredHub($row[0], 'distance'); + } + } + + return $hubs_data; + } + + protected function checkInventory($items, $hub) + { + // check if hub has all items + $skus = []; + $branch_codes[] = $hub->getBranchCode(); + $result = false; + + foreach ($items as $key=> $value) + { + // add sap code of item/battery into array since + // getBranchesInventory takes in an array of hubs/branches + // and an array of skus + // $items as format: $items[sku] = quantity + $skus[] = $key; + } + + // call InventoryManager's getBranchesInventory to check if hub has all items + $branches_with_items = $this->im->getBranchesInventory($branch_codes, $skus); + + if (!empty($branches_with_items)) + { + // check if branch has enough quantity for item + foreach ($branches_with_items as $branch) + { + // get quantity from call + $qty_available = $branch['Quantity']; + + // get the quantity request + $sku_requested = $branch['SapCode']; + $qty_requested = $items[$sku_requested]; + if ($qty_available >= $qty_requested) + $result = true; + } + } + + // return true or false + return $result; + } + + // convert db distance to kilometers + protected function distance($lat1, $lon1, $lat2, $lon2) + { + if (($lat1 == $lat2) && ($lon1 == $lon2)) + return 0; + + $theta = $lon1 - $lon2; + $dist = sin(deg2rad($lat1)) * sin(deg2rad($lat2)) + cos(deg2rad($lat1)) * cos(deg2rad($lat2)) * cos(deg2rad($theta)); + $dist = acos($dist); + $dist = rad2deg($dist); + $miles = $dist * 60 * 1.1515; + + return round(($miles * 1.609344), 1); + } +} diff --git a/src/Service/InventoryManager.php b/src/Service/InventoryManager.php index 4dc5a8b1..f0669559 100644 --- a/src/Service/InventoryManager.php +++ b/src/Service/InventoryManager.php @@ -71,6 +71,7 @@ class InventoryManager // check if the response is empty $results = []; + //error_log($response); if (!empty($response)) $results = json_decode($response, true); diff --git a/src/Service/JobOrderHandler/ResqJobOrderHandler.php b/src/Service/JobOrderHandler/ResqJobOrderHandler.php index 10d5b2f8..fd1fb2af 100644 --- a/src/Service/JobOrderHandler/ResqJobOrderHandler.php +++ b/src/Service/JobOrderHandler/ResqJobOrderHandler.php @@ -40,6 +40,7 @@ use App\Ramcar\JORejectionReason; use App\Ramcar\CustomerNotWaitReason; use App\Ramcar\NoTradeInReason; use App\Ramcar\WillingToWaitContent; +use App\Ramcar\HubCriteria; use App\Service\InvoiceGeneratorInterface; use App\Service\JobOrderHandlerInterface; @@ -49,6 +50,8 @@ use App\Service\MQTTClient; use App\Service\APNSClient; use App\Service\MapTools; use App\Service\RisingTideGateway; +use App\Service\HubSelector; +use App\Service\HubDistributor; use CrEOF\Spatial\PHP\Types\Geometry\Point; @@ -70,13 +73,15 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface protected $country_code; protected $wh; protected $rt; + protected $hub_dist; protected $template_hash; public function __construct(Security $security, EntityManagerInterface $em, InvoiceGeneratorInterface $ic, ValidatorInterface $validator, TranslatorInterface $translator, RiderAssignmentHandlerInterface $rah, - string $country_code, WarrantyHandler $wh, RisingTideGateway $rt) + string $country_code, WarrantyHandler $wh, RisingTideGateway $rt, + HubDistributor $hub_dist) { $this->em = $em; $this->ic = $ic; @@ -87,6 +92,7 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface $this->country_code = $country_code; $this->wh = $wh; $this->rt = $rt; + $this->hub_dist = $hub_dist; $this->loadTemplates(); } @@ -755,6 +761,9 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface 'event' => 'outlet_assign' ]; $mclient->sendEvent($obj, $payload); + + // update redis hub jo count + $this->hub_dist->incrementJoCountForHub($hub); } return $error_array; @@ -1124,6 +1133,9 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface $more_reason = $req->request->get('not_wait_notes'); } + // get previously assigned hub, if any + $old_hub = $obj->getHub(); + if (empty($error_array)) { // rider mqtt event @@ -1197,6 +1209,13 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface 'event' => 'outlet_assign' ]; $mclient->sendEvent($obj, $payload); + + // update redis hub_jo_count for hub + // decrement old hub's count and increment new hub's count + if ($old_hub != null) + $this->hub_dist->decrementJoCountForHub($old_hub); + if ($hub != null) + $this->hub_dist->incrementJoCountForHub($hub); } return $error_array; @@ -1632,6 +1651,7 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface return $params; } + // CMB code public function initializeOneStepEditForm($id, $map_tools) { $em = $this->em; @@ -1812,7 +1832,7 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface } // initialize dispatch/processing job order form - public function initializeProcessingForm($id, $map_tools, $motiv) + public function initializeProcessingForm($id, HubSelector $hub_selector, $motiv) { $em = $this->em; @@ -1878,8 +1898,44 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface // get rejection reasons $params['rejection_reasons'] = JORejectionReason::getCollection(); + // get battery (if any) + $skus = []; + $items = []; + $invoice = $obj->getInvoice(); + $inv_items = $invoice->getItems(); + foreach ($inv_items as $inv_item) + { + $batt = $inv_item->getBattery(); + if ($batt == null) + continue; + + $skus[] = $batt->getSapCode(); + $item_count = 1; + if (!empty($batt->getSapCode())) + { + $sap_code = $batt->getSapCode(); + if (isset($items[$sap_code])) + $items[$sap_code] = $item_count + 1; + else + $items[$sap_code] = $item_count; + } + } + // get closest hubs - $hubs = $map_tools->getClosestHubs($obj->getCoordinates(), 50, date("H:i:s")); + // set hub criteria + $hub_criteria = new HubCriteria(); + $hub_criteria->setPoint($obj->getCoordinates()) + ->setLimitResults(50) + ->setPaymentMethod($obj->getModeOfPayment()) + ->setJoType($obj->getServiceType()); + + // check if emergency or not + $willing_to_wait = $obj->getWillWait(); + if ($willing_to_wait == WillingToWaitContent::NOT_WILLING_TO_WAIT) + $hub_criteria->setEmergency(true); + + $hubs = $hub_selector->find($hub_criteria); + //$hubs = $map_tools->getClosestHubs($obj->getCoordinates(), 50, date("H:i:s")); $params['hubs'] = []; @@ -1946,19 +2002,6 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface // get template to display $params['template'] = $this->getTwigTemplate('jo_processing_form'); - // get battery (if any) - $skus = []; - $invoice = $obj->getInvoice(); - $inv_items = $invoice->getItems(); - foreach ($inv_items as $inv_item) - { - $batt = $inv_item->getBattery(); - if ($batt == null) - continue; - - $skus[] = $batt->getSapCode(); - } - // get inventory $mres = $motiv->getInventory($branch_codes, $skus); foreach ($mres as $mres_item) @@ -2103,7 +2146,7 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface } // initialize hub form - public function initializeHubForm($id, $map_tools) + public function initializeHubForm($id, HubSelector $hub_selector) { $em = $this->em; @@ -2128,7 +2171,11 @@ class ResqJobOrderHandler implements JobOrderHandlerInterface $params['rejection_reasons'] = JORejectionReason::getCollection(); // get closest hubs - $hubs = $map_tools->getClosestHubs($obj->getCoordinates(), 50, date("H:i:s")); + $hub_criteria = new HubCriteria(); + $hub_criteria->setPoint($obj->getCoordinates()) + ->setLimitResults(50); + $hubs = $hub_selector->find($hub_criteria); + //$hubs = $map_tools->getClosestHubs($obj->getCoordinates(), 50, date("H:i:s")); $params['status_cancelled'] = JOStatus::CANCELLED; $params['hubs'] = []; diff --git a/src/Service/JobOrderHandlerInterface.php b/src/Service/JobOrderHandlerInterface.php index 59aea943..cff06242 100644 --- a/src/Service/JobOrderHandlerInterface.php +++ b/src/Service/JobOrderHandlerInterface.php @@ -7,6 +7,7 @@ use Symfony\Component\HttpFoundation\Request; use App\Service\MQTTClient; use App\Service\APNSClient; use App\Service\MapTools; +use App\Service\HubSelector; use App\Entity\JobOrder; @@ -67,7 +68,7 @@ interface JobOrderHandlerInterface public function initializeAllForm(int $id); // initialize dispatch/processing job order form - public function initializeProcessingForm(int $id, MapTools $map_tools, $motiv); + public function initializeProcessingForm(int $id, HubSelector $hub_selector, $motiv); // initialize assign job order form public function initializeAssignForm(int $id); @@ -76,7 +77,7 @@ interface JobOrderHandlerInterface public function initializeFulfillmentForm(int $id); // initialize hub form - public function initializeHubForm(int $id, MapTools $map_tools); + public function initializeHubForm(int $id, HubSelector $hub_selector); // initialize rider form public function initializeRiderForm(int $id); diff --git a/src/Service/RisingTideGateway.php b/src/Service/RisingTideGateway.php index 38276619..acd7d4d5 100644 --- a/src/Service/RisingTideGateway.php +++ b/src/Service/RisingTideGateway.php @@ -83,4 +83,28 @@ class RisingTideGateway error_log($result); } + + public function validatePhoneNumber($mobile) + { + // check valid number + $num = trim($mobile); + + // should be 10 digits + if (strlen($num) != 10) + return false; + + // should start with '9' + if ($num[0] != '9') + return false; + + // should be numeric + if (!is_numeric($num)) + return false; + + // should not be 9900000000 + if ($num == '9900000000') + return false; + + return true; + } } diff --git a/symfony.lock b/symfony.lock index f04e7137..51cef542 100644 --- a/symfony.lock +++ b/symfony.lock @@ -44,9 +44,6 @@ "doctrine/dbal": { "version": "v2.6.3" }, - "doctrine/deprecations": { - "version": "v0.5.3" - }, "doctrine/doctrine-bundle": { "version": "1.6", "recipe": { @@ -101,15 +98,9 @@ "doctrine/reflection": { "version": "v1.0.0" }, - "doctrine/sql-formatter": { - "version": "1.1.1" - }, "edwinhoksberg/php-fcm": { "version": "1.0.0" }, - "friendsofphp/proxy-manager-lts": { - "version": "v1.0.3" - }, "guzzlehttp/guzzle": { "version": "6.3.0" }, @@ -122,21 +113,15 @@ "jdorn/sql-formatter": { "version": "v1.2.17" }, - "laminas/laminas-code": { - "version": "3.4.1" - }, - "laminas/laminas-eventmanager": { - "version": "3.2.1" - }, - "laminas/laminas-zendframework-bridge": { - "version": "1.1.1" - }, "microsoft/azure-storage-blob": { "version": "1.5.2" }, "microsoft/azure-storage-common": { "version": "1.5.1" }, + "monolog/monolog": { + "version": "2.2.0" + }, "nikic/php-parser": { "version": "v4.1.0" }, @@ -207,7 +192,7 @@ "version": "v4.0.2" }, "symfony/deprecation-contracts": { - "version": "v2.2.0" + "version": "v2.4.0" }, "symfony/doctrine-bridge": { "version": "v4.0.2" @@ -248,9 +233,6 @@ "ref": "18f6fdceb63737d991efbb37ae9619a6f6c978c8" } }, - "symfony/http-client-contracts": { - "version": "v2.3.1" - }, "symfony/http-foundation": { "version": "v4.0.2" }, @@ -272,21 +254,33 @@ "symfony/mime": { "version": "v4.3.0" }, + "symfony/monolog-bridge": { + "version": "v5.2.5" + }, + "symfony/monolog-bundle": { + "version": "3.7", + "recipe": { + "repo": "github.com/symfony/recipes", + "branch": "master", + "version": "3.7", + "ref": "329f6a5ef2e7aa033f802be833ef8d1268dd0848" + }, + "files": [ + "config/packages/dev/monolog.yaml", + "config/packages/prod/deprecations.yaml", + "config/packages/prod/monolog.yaml", + "config/packages/test/monolog.yaml" + ] + }, "symfony/orm-pack": { "version": "v1.0.5" }, "symfony/polyfill-ctype": { "version": "v1.9.0" }, - "symfony/polyfill-intl-grapheme": { - "version": "v1.22.1" - }, "symfony/polyfill-intl-idn": { "version": "v1.11.0" }, - "symfony/polyfill-intl-normalizer": { - "version": "v1.22.1" - }, "symfony/polyfill-mbstring": { "version": "v1.6.0" }, @@ -296,9 +290,6 @@ "symfony/polyfill-php73": { "version": "v1.11.0" }, - "symfony/polyfill-php80": { - "version": "v1.22.1" - }, "symfony/process": { "version": "v4.4.9" }, @@ -308,9 +299,6 @@ "symfony/property-access": { "version": "v4.0.2" }, - "symfony/property-info": { - "version": "v5.2.4" - }, "symfony/routing": { "version": "4.0", "recipe": { @@ -347,9 +335,6 @@ "symfony/stopwatch": { "version": "v4.0.2" }, - "symfony/string": { - "version": "v5.2.6" - }, "symfony/thanks": { "version": "v1.1.0" }, diff --git a/templates/hub/form.html.twig b/templates/hub/form.html.twig index d7101260..3c8947c1 100644 --- a/templates/hub/form.html.twig +++ b/templates/hub/form.html.twig @@ -90,6 +90,18 @@
+