From 9e09c0682cbeb91eb2b26c4ae6244c2f471b296a Mon Sep 17 00:00:00 2001 From: Diana Scharf Date: Thu, 8 Sep 2022 17:23:04 +0200 Subject: [PATCH 01/70] Added the Pest dependency for future tests --- composer.json | 1 + composer.lock | 1070 +++++++++++++++++++++++++++++-------------------- 2 files changed, 627 insertions(+), 444 deletions(-) diff --git a/composer.json b/composer.json index a2b6c2e..5623aeb 100644 --- a/composer.json +++ b/composer.json @@ -31,6 +31,7 @@ }, "require-dev": { "orchestra/testbench": "^6.0", + "pestphp/pest": "^1.22", "phpunit/phpunit": "^9.0" }, "autoload": { diff --git a/composer.lock b/composer.lock index 655342b..6d60e3b 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "35c11724161fcc925bc8243a1690ef1c", + "content-hash": "f4cacbe7621312719a0ba568e9d88b24", "packages": [ { "name": "brick/math", @@ -1410,20 +1410,20 @@ }, { "name": "psr/container", - "version": "1.1.1", + "version": "1.1.2", "source": { "type": "git", "url": "https://github.com/php-fig/container.git", - "reference": "8622567409010282b7aeebe4bb841fe98b58dcaf" + "reference": "513e0666f7216c7459170d56df27dfcefe1689ea" }, "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/513e0666f7216c7459170d56df27dfcefe1689ea", + "reference": "513e0666f7216c7459170d56df27dfcefe1689ea", "shasum": "" }, "require": { - "php": ">=7.2.0" + "php": ">=7.4.0" }, "type": "library", "autoload": { @@ -1452,9 +1452,9 @@ ], "support": { "issues": "https://github.com/php-fig/container/issues", - "source": "https://github.com/php-fig/container/tree/1.1.1" + "source": "https://github.com/php-fig/container/tree/1.1.2" }, - "time": "2021-03-05T17:36:06+00:00" + "time": "2021-11-05T16:50:12+00:00" }, { "name": "psr/event-dispatcher", @@ -2002,27 +2002,29 @@ }, { "name": "symfony/console", - "version": "v5.2.8", + "version": "v5.4.12", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "864568fdc0208b3eba3638b6000b69d2386e6768" + "reference": "c072aa8f724c3af64e2c7a96b796a4863d24dba1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/864568fdc0208b3eba3638b6000b69d2386e6768", - "reference": "864568fdc0208b3eba3638b6000b69d2386e6768", + "url": "https://api.github.com/repos/symfony/console/zipball/c072aa8f724c3af64e2c7a96b796a4863d24dba1", + "reference": "c072aa8f724c3af64e2c7a96b796a4863d24dba1", "shasum": "" }, "require": { "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1|^3", "symfony/polyfill-mbstring": "~1.0", - "symfony/polyfill-php73": "^1.8", - "symfony/polyfill-php80": "^1.15", - "symfony/service-contracts": "^1.1|^2", - "symfony/string": "^5.1" + "symfony/polyfill-php73": "^1.9", + "symfony/polyfill-php80": "^1.16", + "symfony/service-contracts": "^1.1|^2|^3", + "symfony/string": "^5.1|^6.0" }, "conflict": { + "psr/log": ">=3", "symfony/dependency-injection": "<4.4", "symfony/dotenv": "<5.1", "symfony/event-dispatcher": "<4.4", @@ -2030,16 +2032,16 @@ "symfony/process": "<4.4" }, "provide": { - "psr/log-implementation": "1.0" + "psr/log-implementation": "1.0|2.0" }, "require-dev": { - "psr/log": "~1.0", - "symfony/config": "^4.4|^5.0", - "symfony/dependency-injection": "^4.4|^5.0", - "symfony/event-dispatcher": "^4.4|^5.0", - "symfony/lock": "^4.4|^5.0", - "symfony/process": "^4.4|^5.0", - "symfony/var-dumper": "^4.4|^5.0" + "psr/log": "^1|^2", + "symfony/config": "^4.4|^5.0|^6.0", + "symfony/dependency-injection": "^4.4|^5.0|^6.0", + "symfony/event-dispatcher": "^4.4|^5.0|^6.0", + "symfony/lock": "^4.4|^5.0|^6.0", + "symfony/process": "^4.4|^5.0|^6.0", + "symfony/var-dumper": "^4.4|^5.0|^6.0" }, "suggest": { "psr/log": "For using the console logger", @@ -2079,7 +2081,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v5.2.8" + "source": "https://github.com/symfony/console/tree/v5.4.12" }, "funding": [ { @@ -2095,7 +2097,7 @@ "type": "tidelift" } ], - "time": "2021-05-11T15:45:21+00:00" + "time": "2022-08-17T13:18:05+00:00" }, { "name": "symfony/css-selector", @@ -2164,16 +2166,16 @@ }, { "name": "symfony/deprecation-contracts", - "version": "v2.4.0", + "version": "v2.5.2", "source": { "type": "git", "url": "https://github.com/symfony/deprecation-contracts.git", - "reference": "5f38c8804a9e97d23e0c8d63341088cd8a22d627" + "reference": "e8b495ea28c1d97b5e0c121748d6f9b53d075c66" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/5f38c8804a9e97d23e0c8d63341088cd8a22d627", - "reference": "5f38c8804a9e97d23e0c8d63341088cd8a22d627", + "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/e8b495ea28c1d97b5e0c121748d6f9b53d075c66", + "reference": "e8b495ea28c1d97b5e0c121748d6f9b53d075c66", "shasum": "" }, "require": { @@ -2182,7 +2184,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "2.4-dev" + "dev-main": "2.5-dev" }, "thanks": { "name": "symfony/contracts", @@ -2211,7 +2213,7 @@ "description": "A generic function and convention to trigger deprecation notices", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/deprecation-contracts/tree/v2.4.0" + "source": "https://github.com/symfony/deprecation-contracts/tree/v2.5.2" }, "funding": [ { @@ -2227,7 +2229,7 @@ "type": "tidelift" } ], - "time": "2021-03-23T23:28:01+00:00" + "time": "2022-01-02T09:53:40+00:00" }, { "name": "symfony/error-handler", @@ -2871,28 +2873,31 @@ }, { "name": "symfony/polyfill-ctype", - "version": "v1.22.1", + "version": "v1.26.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-ctype.git", - "reference": "c6c942b1ac76c82448322025e084cadc56048b4e" + "reference": "6fd1b9a79f6e3cf65f9e679b23af304cd9e010d4" }, "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/6fd1b9a79f6e3cf65f9e679b23af304cd9e010d4", + "reference": "6fd1b9a79f6e3cf65f9e679b23af304cd9e010d4", "shasum": "" }, "require": { "php": ">=7.1" }, + "provide": { + "ext-ctype": "*" + }, "suggest": { "ext-ctype": "For best performance" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "1.22-dev" + "dev-main": "1.26-dev" }, "thanks": { "name": "symfony/polyfill", @@ -2900,12 +2905,12 @@ } }, "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Ctype\\": "" - }, "files": [ "bootstrap.php" - ] + ], + "psr-4": { + "Symfony\\Polyfill\\Ctype\\": "" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -2930,7 +2935,7 @@ "portable" ], "support": { - "source": "https://github.com/symfony/polyfill-ctype/tree/v1.22.1" + "source": "https://github.com/symfony/polyfill-ctype/tree/v1.26.0" }, "funding": [ { @@ -2946,7 +2951,7 @@ "type": "tidelift" } ], - "time": "2021-01-07T16:49:33+00:00" + "time": "2022-05-24T11:49:31+00:00" }, { "name": "symfony/polyfill-iconv", @@ -3030,16 +3035,16 @@ }, { "name": "symfony/polyfill-intl-grapheme", - "version": "v1.22.1", + "version": "v1.26.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-grapheme.git", - "reference": "5601e09b69f26c1828b13b6bb87cb07cddba3170" + "reference": "433d05519ce6990bf3530fba6957499d327395c2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/5601e09b69f26c1828b13b6bb87cb07cddba3170", - "reference": "5601e09b69f26c1828b13b6bb87cb07cddba3170", + "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/433d05519ce6990bf3530fba6957499d327395c2", + "reference": "433d05519ce6990bf3530fba6957499d327395c2", "shasum": "" }, "require": { @@ -3051,7 +3056,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.22-dev" + "dev-main": "1.26-dev" }, "thanks": { "name": "symfony/polyfill", @@ -3059,12 +3064,12 @@ } }, "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Intl\\Grapheme\\": "" - }, "files": [ "bootstrap.php" - ] + ], + "psr-4": { + "Symfony\\Polyfill\\Intl\\Grapheme\\": "" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -3091,7 +3096,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.22.1" + "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.26.0" }, "funding": [ { @@ -3107,7 +3112,7 @@ "type": "tidelift" } ], - "time": "2021-01-22T09:19:47+00:00" + "time": "2022-05-24T11:49:31+00:00" }, { "name": "symfony/polyfill-intl-idn", @@ -3198,16 +3203,16 @@ }, { "name": "symfony/polyfill-intl-normalizer", - "version": "v1.22.1", + "version": "v1.26.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-normalizer.git", - "reference": "43a0283138253ed1d48d352ab6d0bdb3f809f248" + "reference": "219aa369ceff116e673852dce47c3a41794c14bd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/43a0283138253ed1d48d352ab6d0bdb3f809f248", - "reference": "43a0283138253ed1d48d352ab6d0bdb3f809f248", + "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/219aa369ceff116e673852dce47c3a41794c14bd", + "reference": "219aa369ceff116e673852dce47c3a41794c14bd", "shasum": "" }, "require": { @@ -3219,7 +3224,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.22-dev" + "dev-main": "1.26-dev" }, "thanks": { "name": "symfony/polyfill", @@ -3227,12 +3232,12 @@ } }, "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Intl\\Normalizer\\": "" - }, "files": [ "bootstrap.php" ], + "psr-4": { + "Symfony\\Polyfill\\Intl\\Normalizer\\": "" + }, "classmap": [ "Resources/stubs" ] @@ -3262,7 +3267,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.22.1" + "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.26.0" }, "funding": [ { @@ -3278,32 +3283,35 @@ "type": "tidelift" } ], - "time": "2021-01-22T09:19:47+00:00" + "time": "2022-05-24T11:49:31+00:00" }, { "name": "symfony/polyfill-mbstring", - "version": "v1.22.1", + "version": "v1.26.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "5232de97ee3b75b0360528dae24e73db49566ab1" + "reference": "9344f9cb97f3b19424af1a21a3b0e75b0a7d8d7e" }, "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/9344f9cb97f3b19424af1a21a3b0e75b0a7d8d7e", + "reference": "9344f9cb97f3b19424af1a21a3b0e75b0a7d8d7e", "shasum": "" }, "require": { "php": ">=7.1" }, + "provide": { + "ext-mbstring": "*" + }, "suggest": { "ext-mbstring": "For best performance" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "1.22-dev" + "dev-main": "1.26-dev" }, "thanks": { "name": "symfony/polyfill", @@ -3311,12 +3319,12 @@ } }, "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Mbstring\\": "" - }, "files": [ "bootstrap.php" - ] + ], + "psr-4": { + "Symfony\\Polyfill\\Mbstring\\": "" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -3342,7 +3350,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.22.1" + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.26.0" }, "funding": [ { @@ -3358,7 +3366,7 @@ "type": "tidelift" } ], - "time": "2021-01-22T09:19:47+00:00" + "time": "2022-05-24T11:49:31+00:00" }, { "name": "symfony/polyfill-php72", @@ -3438,16 +3446,16 @@ }, { "name": "symfony/polyfill-php73", - "version": "v1.22.1", + "version": "v1.26.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php73.git", - "reference": "a678b42e92f86eca04b7fa4c0f6f19d097fb69e2" + "reference": "e440d35fa0286f77fb45b79a03fedbeda9307e85" }, "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/e440d35fa0286f77fb45b79a03fedbeda9307e85", + "reference": "e440d35fa0286f77fb45b79a03fedbeda9307e85", "shasum": "" }, "require": { @@ -3456,7 +3464,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.22-dev" + "dev-main": "1.26-dev" }, "thanks": { "name": "symfony/polyfill", @@ -3464,12 +3472,12 @@ } }, "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Php73\\": "" - }, "files": [ "bootstrap.php" ], + "psr-4": { + "Symfony\\Polyfill\\Php73\\": "" + }, "classmap": [ "Resources/stubs" ] @@ -3497,7 +3505,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php73/tree/v1.22.1" + "source": "https://github.com/symfony/polyfill-php73/tree/v1.26.0" }, "funding": [ { @@ -3513,20 +3521,20 @@ "type": "tidelift" } ], - "time": "2021-01-07T16:49:33+00:00" + "time": "2022-05-24T11:49:31+00:00" }, { "name": "symfony/polyfill-php80", - "version": "v1.22.1", + "version": "v1.26.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php80.git", - "reference": "dc3063ba22c2a1fd2f45ed856374d79114998f91" + "reference": "cfa0ae98841b9e461207c13ab093d76b0fa7bace" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/dc3063ba22c2a1fd2f45ed856374d79114998f91", - "reference": "dc3063ba22c2a1fd2f45ed856374d79114998f91", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/cfa0ae98841b9e461207c13ab093d76b0fa7bace", + "reference": "cfa0ae98841b9e461207c13ab093d76b0fa7bace", "shasum": "" }, "require": { @@ -3535,7 +3543,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.22-dev" + "dev-main": "1.26-dev" }, "thanks": { "name": "symfony/polyfill", @@ -3543,12 +3551,12 @@ } }, "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Php80\\": "" - }, "files": [ "bootstrap.php" ], + "psr-4": { + "Symfony\\Polyfill\\Php80\\": "" + }, "classmap": [ "Resources/stubs" ] @@ -3580,7 +3588,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php80/tree/v1.22.1" + "source": "https://github.com/symfony/polyfill-php80/tree/v1.26.0" }, "funding": [ { @@ -3596,7 +3604,7 @@ "type": "tidelift" } ], - "time": "2021-01-07T16:49:33+00:00" + "time": "2022-05-10T07:21:04+00:00" }, { "name": "symfony/process", @@ -3751,21 +3759,25 @@ }, { "name": "symfony/service-contracts", - "version": "v2.4.0", + "version": "v2.5.2", "source": { "type": "git", "url": "https://github.com/symfony/service-contracts.git", - "reference": "f040a30e04b57fbcc9c6cbcf4dbaa96bd318b9bb" + "reference": "4b426aac47d6427cc1a1d0f7e2ac724627f5966c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/service-contracts/zipball/f040a30e04b57fbcc9c6cbcf4dbaa96bd318b9bb", - "reference": "f040a30e04b57fbcc9c6cbcf4dbaa96bd318b9bb", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/4b426aac47d6427cc1a1d0f7e2ac724627f5966c", + "reference": "4b426aac47d6427cc1a1d0f7e2ac724627f5966c", "shasum": "" }, "require": { "php": ">=7.2.5", - "psr/container": "^1.1" + "psr/container": "^1.1", + "symfony/deprecation-contracts": "^2.1|^3" + }, + "conflict": { + "ext-psr": "<1.1|>=2" }, "suggest": { "symfony/service-implementation": "" @@ -3773,7 +3785,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "2.4-dev" + "dev-main": "2.5-dev" }, "thanks": { "name": "symfony/contracts", @@ -3810,7 +3822,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/service-contracts/tree/v2.4.0" + "source": "https://github.com/symfony/service-contracts/tree/v2.5.2" }, "funding": [ { @@ -3826,44 +3838,46 @@ "type": "tidelift" } ], - "time": "2021-04-01T10:43:52+00:00" + "time": "2022-05-30T19:17:29+00:00" }, { "name": "symfony/string", - "version": "v5.2.8", + "version": "v6.0.12", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "01b35eb64cac8467c3f94cd0ce2d0d376bb7d1db" + "reference": "3a975ba1a1508ad97df45f4590f55b7cc4c1a0a0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/01b35eb64cac8467c3f94cd0ce2d0d376bb7d1db", - "reference": "01b35eb64cac8467c3f94cd0ce2d0d376bb7d1db", + "url": "https://api.github.com/repos/symfony/string/zipball/3a975ba1a1508ad97df45f4590f55b7cc4c1a0a0", + "reference": "3a975ba1a1508ad97df45f4590f55b7cc4c1a0a0", "shasum": "" }, "require": { - "php": ">=7.2.5", + "php": ">=8.0.2", "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" + "symfony/polyfill-mbstring": "~1.0" + }, + "conflict": { + "symfony/translation-contracts": "<2.0" }, "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" + "symfony/error-handler": "^5.4|^6.0", + "symfony/http-client": "^5.4|^6.0", + "symfony/translation-contracts": "^2.0|^3.0", + "symfony/var-exporter": "^5.4|^6.0" }, "type": "library", "autoload": { - "psr-4": { - "Symfony\\Component\\String\\": "" - }, "files": [ "Resources/functions.php" ], + "psr-4": { + "Symfony\\Component\\String\\": "" + }, "exclude-from-classmap": [ "/Tests/" ] @@ -3893,7 +3907,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v5.2.8" + "source": "https://github.com/symfony/string/tree/v6.0.12" }, "funding": [ { @@ -3909,7 +3923,7 @@ "type": "tidelift" } ], - "time": "2021-05-10T14:56:10+00:00" + "time": "2022-08-12T18:05:20+00:00" }, { "name": "symfony/translation", @@ -4379,21 +4393,21 @@ }, { "name": "webmozart/assert", - "version": "1.10.0", + "version": "1.11.0", "source": { "type": "git", "url": "https://github.com/webmozarts/assert.git", - "reference": "6964c76c7804814a842473e0c8fd15bab0f18e25" + "reference": "11cb2199493b2f8a3b53e7f19068fc6aac760991" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/webmozarts/assert/zipball/6964c76c7804814a842473e0c8fd15bab0f18e25", - "reference": "6964c76c7804814a842473e0c8fd15bab0f18e25", + "url": "https://api.github.com/repos/webmozarts/assert/zipball/11cb2199493b2f8a3b53e7f19068fc6aac760991", + "reference": "11cb2199493b2f8a3b53e7f19068fc6aac760991", "shasum": "" }, "require": { - "php": "^7.2 || ^8.0", - "symfony/polyfill-ctype": "^1.8" + "ext-ctype": "*", + "php": "^7.2 || ^8.0" }, "conflict": { "phpstan/phpstan": "<0.12.20", @@ -4431,37 +4445,38 @@ ], "support": { "issues": "https://github.com/webmozarts/assert/issues", - "source": "https://github.com/webmozarts/assert/tree/1.10.0" + "source": "https://github.com/webmozarts/assert/tree/1.11.0" }, - "time": "2021-03-09T10:59:23+00:00" + "time": "2022-06-03T18:03:27+00:00" } ], "packages-dev": [ { "name": "doctrine/instantiator", - "version": "1.4.0", + "version": "1.4.1", "source": { "type": "git", "url": "https://github.com/doctrine/instantiator.git", - "reference": "d56bf6102915de5702778fe20f2de3b2fe570b5b" + "reference": "10dcfce151b967d20fde1b34ae6640712c3891bc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/instantiator/zipball/d56bf6102915de5702778fe20f2de3b2fe570b5b", - "reference": "d56bf6102915de5702778fe20f2de3b2fe570b5b", + "url": "https://api.github.com/repos/doctrine/instantiator/zipball/10dcfce151b967d20fde1b34ae6640712c3891bc", + "reference": "10dcfce151b967d20fde1b34ae6640712c3891bc", "shasum": "" }, "require": { "php": "^7.1 || ^8.0" }, "require-dev": { - "doctrine/coding-standard": "^8.0", + "doctrine/coding-standard": "^9", "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.16 || ^1", + "phpstan/phpstan": "^1.4", + "phpstan/phpstan-phpunit": "^1", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", + "vimeo/psalm": "^4.22" }, "type": "library", "autoload": { @@ -4488,7 +4503,7 @@ ], "support": { "issues": "https://github.com/doctrine/instantiator/issues", - "source": "https://github.com/doctrine/instantiator/tree/1.4.0" + "source": "https://github.com/doctrine/instantiator/tree/1.4.1" }, "funding": [ { @@ -4504,7 +4519,60 @@ "type": "tidelift" } ], - "time": "2020-11-10T18:47:58+00:00" + "time": "2022-03-03T08:28:38+00:00" + }, + { + "name": "facade/ignition-contracts", + "version": "1.0.2", + "source": { + "type": "git", + "url": "https://github.com/facade/ignition-contracts.git", + "reference": "3c921a1cdba35b68a7f0ccffc6dffc1995b18267" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/facade/ignition-contracts/zipball/3c921a1cdba35b68a7f0ccffc6dffc1995b18267", + "reference": "3c921a1cdba35b68a7f0ccffc6dffc1995b18267", + "shasum": "" + }, + "require": { + "php": "^7.3|^8.0" + }, + "require-dev": { + "friendsofphp/php-cs-fixer": "^v2.15.8", + "phpunit/phpunit": "^9.3.11", + "vimeo/psalm": "^3.17.1" + }, + "type": "library", + "autoload": { + "psr-4": { + "Facade\\IgnitionContracts\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Freek Van der Herten", + "email": "freek@spatie.be", + "homepage": "https://flareapp.io", + "role": "Developer" + } + ], + "description": "Solution contracts for Ignition", + "homepage": "https://github.com/facade/ignition-contracts", + "keywords": [ + "contracts", + "flare", + "ignition" + ], + "support": { + "issues": "https://github.com/facade/ignition-contracts/issues", + "source": "https://github.com/facade/ignition-contracts/tree/1.0.2" + }, + "time": "2020-10-16T08:27:54+00:00" }, { "name": "fakerphp/faker", @@ -4571,6 +4639,77 @@ }, "time": "2021-03-30T06:27:33+00:00" }, + { + "name": "filp/whoops", + "version": "2.14.5", + "source": { + "type": "git", + "url": "https://github.com/filp/whoops.git", + "reference": "a63e5e8f26ebbebf8ed3c5c691637325512eb0dc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/filp/whoops/zipball/a63e5e8f26ebbebf8ed3c5c691637325512eb0dc", + "reference": "a63e5e8f26ebbebf8ed3c5c691637325512eb0dc", + "shasum": "" + }, + "require": { + "php": "^5.5.9 || ^7.0 || ^8.0", + "psr/log": "^1.0.1 || ^2.0 || ^3.0" + }, + "require-dev": { + "mockery/mockery": "^0.9 || ^1.0", + "phpunit/phpunit": "^4.8.36 || ^5.7.27 || ^6.5.14 || ^7.5.20 || ^8.5.8 || ^9.3.3", + "symfony/var-dumper": "^2.6 || ^3.0 || ^4.0 || ^5.0" + }, + "suggest": { + "symfony/var-dumper": "Pretty print complex values better with var-dumper available", + "whoops/soap": "Formats errors as SOAP responses" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.7-dev" + } + }, + "autoload": { + "psr-4": { + "Whoops\\": "src/Whoops/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Filipe Dobreira", + "homepage": "https://github.com/filp", + "role": "Developer" + } + ], + "description": "php error handling for cool kids", + "homepage": "https://filp.github.io/whoops/", + "keywords": [ + "error", + "exception", + "handling", + "library", + "throwable", + "whoops" + ], + "support": { + "issues": "https://github.com/filp/whoops/issues", + "source": "https://github.com/filp/whoops/tree/2.14.5" + }, + "funding": [ + { + "url": "https://github.com/denis-sokolov", + "type": "github" + } + ], + "time": "2022-01-07T12:00:00+00:00" + }, { "name": "hamcrest/hamcrest-php", "version": "v2.0.1", @@ -4696,37 +4835,38 @@ }, { "name": "myclabs/deep-copy", - "version": "1.10.2", + "version": "1.11.0", "source": { "type": "git", "url": "https://github.com/myclabs/DeepCopy.git", - "reference": "776f831124e9c62e1a2c601ecc52e776d8bb7220" + "reference": "14daed4296fae74d9e3201d2c4925d1acb7aa614" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/776f831124e9c62e1a2c601ecc52e776d8bb7220", - "reference": "776f831124e9c62e1a2c601ecc52e776d8bb7220", + "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/14daed4296fae74d9e3201d2c4925d1acb7aa614", + "reference": "14daed4296fae74d9e3201d2c4925d1acb7aa614", "shasum": "" }, "require": { "php": "^7.1 || ^8.0" }, - "replace": { - "myclabs/deep-copy": "self.version" + "conflict": { + "doctrine/collections": "<1.6.8", + "doctrine/common": "<2.13.3 || >=3,<3.2.2" }, "require-dev": { - "doctrine/collections": "^1.0", - "doctrine/common": "^2.6", - "phpunit/phpunit": "^7.1" + "doctrine/collections": "^1.6.8", + "doctrine/common": "^2.13.3 || ^3.2.2", + "phpunit/phpunit": "^7.5.20 || ^8.5.23 || ^9.5.13" }, "type": "library", "autoload": { - "psr-4": { - "DeepCopy\\": "src/DeepCopy/" - }, "files": [ "src/DeepCopy/deep_copy.php" - ] + ], + "psr-4": { + "DeepCopy\\": "src/DeepCopy/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -4742,7 +4882,7 @@ ], "support": { "issues": "https://github.com/myclabs/DeepCopy/issues", - "source": "https://github.com/myclabs/DeepCopy/tree/1.10.2" + "source": "https://github.com/myclabs/DeepCopy/tree/1.11.0" }, "funding": [ { @@ -4750,20 +4890,20 @@ "type": "tidelift" } ], - "time": "2020-11-13T09:40:50+00:00" + "time": "2022-03-03T13:19:32+00:00" }, { "name": "nikic/php-parser", - "version": "v4.10.5", + "version": "v4.15.1", "source": { "type": "git", "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "4432ba399e47c66624bc73c8c0f811e5c109576f" + "reference": "0ef6c55a3f47f89d7a374e6f835197a0b5fcf900" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/4432ba399e47c66624bc73c8c0f811e5c109576f", - "reference": "4432ba399e47c66624bc73c8c0f811e5c109576f", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/0ef6c55a3f47f89d7a374e6f835197a0b5fcf900", + "reference": "0ef6c55a3f47f89d7a374e6f835197a0b5fcf900", "shasum": "" }, "require": { @@ -4804,9 +4944,96 @@ ], "support": { "issues": "https://github.com/nikic/PHP-Parser/issues", - "source": "https://github.com/nikic/PHP-Parser/tree/v4.10.5" + "source": "https://github.com/nikic/PHP-Parser/tree/v4.15.1" + }, + "time": "2022-09-04T07:30:47+00:00" + }, + { + "name": "nunomaduro/collision", + "version": "v5.11.0", + "source": { + "type": "git", + "url": "https://github.com/nunomaduro/collision.git", + "reference": "8b610eef8582ccdc05d8f2ab23305e2d37049461" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nunomaduro/collision/zipball/8b610eef8582ccdc05d8f2ab23305e2d37049461", + "reference": "8b610eef8582ccdc05d8f2ab23305e2d37049461", + "shasum": "" + }, + "require": { + "facade/ignition-contracts": "^1.0", + "filp/whoops": "^2.14.3", + "php": "^7.3 || ^8.0", + "symfony/console": "^5.0" + }, + "require-dev": { + "brianium/paratest": "^6.1", + "fideloper/proxy": "^4.4.1", + "fruitcake/laravel-cors": "^2.0.3", + "laravel/framework": "8.x-dev", + "nunomaduro/larastan": "^0.6.2", + "nunomaduro/mock-final-classes": "^1.0", + "orchestra/testbench": "^6.0", + "phpstan/phpstan": "^0.12.64", + "phpunit/phpunit": "^9.5.0" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "NunoMaduro\\Collision\\Adapters\\Laravel\\CollisionServiceProvider" + ] + } + }, + "autoload": { + "psr-4": { + "NunoMaduro\\Collision\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nuno Maduro", + "email": "enunomaduro@gmail.com" + } + ], + "description": "Cli error handling for console/command-line PHP applications.", + "keywords": [ + "artisan", + "cli", + "command-line", + "console", + "error", + "handling", + "laravel", + "laravel-zero", + "php", + "symfony" + ], + "support": { + "issues": "https://github.com/nunomaduro/collision/issues", + "source": "https://github.com/nunomaduro/collision" }, - "time": "2021-05-03T19:11:20+00:00" + "funding": [ + { + "url": "https://www.paypal.com/paypalme/enunomaduro", + "type": "custom" + }, + { + "url": "https://github.com/nunomaduro", + "type": "github" + }, + { + "url": "https://www.patreon.com/nunomaduro", + "type": "patreon" + } + ], + "time": "2022-01-10T16:22:52+00:00" }, { "name": "orchestra/testbench", @@ -4961,360 +5188,320 @@ "time": "2021-05-18T09:19:25+00:00" }, { - "name": "phar-io/manifest", - "version": "2.0.1", + "name": "pestphp/pest", + "version": "v1.22.1", "source": { "type": "git", - "url": "https://github.com/phar-io/manifest.git", - "reference": "85265efd3af7ba3ca4b2a2c34dbfc5788dd29133" + "url": "https://github.com/pestphp/pest.git", + "reference": "af6240b4eed8b049ac43c91184141ee337305df7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phar-io/manifest/zipball/85265efd3af7ba3ca4b2a2c34dbfc5788dd29133", - "reference": "85265efd3af7ba3ca4b2a2c34dbfc5788dd29133", + "url": "https://api.github.com/repos/pestphp/pest/zipball/af6240b4eed8b049ac43c91184141ee337305df7", + "reference": "af6240b4eed8b049ac43c91184141ee337305df7", "shasum": "" }, "require": { - "ext-dom": "*", - "ext-phar": "*", - "ext-xmlwriter": "*", - "phar-io/version": "^3.0.1", - "php": "^7.2 || ^8.0" + "nunomaduro/collision": "^5.10.0|^6.0", + "pestphp/pest-plugin": "^1.0.0", + "php": "^7.3 || ^8.0", + "phpunit/phpunit": "^9.5.5" + }, + "require-dev": { + "illuminate/console": "^8.47.0", + "illuminate/support": "^8.47.0", + "laravel/dusk": "^6.15.0", + "pestphp/pest-dev-tools": "dev-master", + "pestphp/pest-plugin-parallel": "^1.0" }, + "bin": [ + "bin/pest" + ], "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0.x-dev" + "dev-1.x": "1.x-dev" + }, + "pest": { + "plugins": [ + "Pest\\Plugins\\Coverage", + "Pest\\Plugins\\Init", + "Pest\\Plugins\\Version", + "Pest\\Plugins\\Environment" + ] + }, + "laravel": { + "providers": [ + "Pest\\Laravel\\PestServiceProvider" + ] } }, "autoload": { - "classmap": [ - "src/" - ] + "files": [ + "src/Functions.php", + "src/Pest.php" + ], + "psr-4": { + "Pest\\": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Arne Blankerts", - "email": "arne@blankerts.de", - "role": "Developer" - }, - { - "name": "Sebastian Heuer", - "email": "sebastian@phpeople.de", - "role": "Developer" - }, - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "Developer" + "name": "Nuno Maduro", + "email": "enunomaduro@gmail.com" } ], - "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)", + "description": "An elegant PHP Testing Framework.", + "keywords": [ + "framework", + "pest", + "php", + "test", + "testing", + "unit" + ], "support": { - "issues": "https://github.com/phar-io/manifest/issues", - "source": "https://github.com/phar-io/manifest/tree/master" + "issues": "https://github.com/pestphp/pest/issues", + "source": "https://github.com/pestphp/pest/tree/v1.22.1" }, - "time": "2020-06-27T14:33:11+00:00" - }, - { - "name": "phar-io/version", - "version": "3.1.0", - "source": { - "type": "git", - "url": "https://github.com/phar-io/version.git", - "reference": "bae7c545bef187884426f042434e561ab1ddb182" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phar-io/version/zipball/bae7c545bef187884426f042434e561ab1ddb182", - "reference": "bae7c545bef187884426f042434e561ab1ddb182", - "shasum": "" - }, - "require": { - "php": "^7.2 || ^8.0" - }, - "type": "library", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ + "funding": [ { - "name": "Arne Blankerts", - "email": "arne@blankerts.de", - "role": "Developer" + "url": "https://www.paypal.com/paypalme/enunomaduro", + "type": "custom" }, { - "name": "Sebastian Heuer", - "email": "sebastian@phpeople.de", - "role": "Developer" + "url": "https://github.com/lukeraymonddowning", + "type": "github" }, { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "Developer" + "url": "https://github.com/nunomaduro", + "type": "github" + }, + { + "url": "https://github.com/octoper", + "type": "github" + }, + { + "url": "https://github.com/olivernybroe", + "type": "github" + }, + { + "url": "https://github.com/owenvoke", + "type": "github" + }, + { + "url": "https://www.patreon.com/nunomaduro", + "type": "patreon" } ], - "description": "Library for handling version information and constraints", - "support": { - "issues": "https://github.com/phar-io/version/issues", - "source": "https://github.com/phar-io/version/tree/3.1.0" - }, - "time": "2021-02-23T14:00:09+00:00" + "time": "2022-08-29T10:42:13+00:00" }, { - "name": "phpdocumentor/reflection-common", - "version": "2.2.0", + "name": "pestphp/pest-plugin", + "version": "v1.0.0", "source": { "type": "git", - "url": "https://github.com/phpDocumentor/ReflectionCommon.git", - "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b" + "url": "https://github.com/pestphp/pest-plugin.git", + "reference": "fc8519de148699fe612d9c669be60554cd2db4fa" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/1d01c49d4ed62f25aa84a747ad35d5a16924662b", - "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b", + "url": "https://api.github.com/repos/pestphp/pest-plugin/zipball/fc8519de148699fe612d9c669be60554cd2db4fa", + "reference": "fc8519de148699fe612d9c669be60554cd2db4fa", "shasum": "" }, "require": { - "php": "^7.2 || ^8.0" + "composer-plugin-api": "^1.1 || ^2.0", + "php": "^7.3 || ^8.0" }, - "type": "library", + "conflict": { + "pestphp/pest": "<1.0" + }, + "require-dev": { + "composer/composer": "^1.10.19", + "pestphp/pest": "^1.0", + "pestphp/pest-dev-tools": "dev-master" + }, + "type": "composer-plugin", "extra": { "branch-alias": { - "dev-2.x": "2.x-dev" - } + "dev-master": "1.x-dev" + }, + "class": "Pest\\Plugin\\Manager" }, "autoload": { "psr-4": { - "phpDocumentor\\Reflection\\": "src/" + "Pest\\Plugin\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], - "authors": [ - { - "name": "Jaap van Otterdijk", - "email": "opensource@ijaap.nl" - } - ], - "description": "Common reflection classes used by phpdocumentor to reflect the code structure", - "homepage": "http://www.phpdoc.org", + "description": "The Pest plugin manager", "keywords": [ - "FQSEN", - "phpDocumentor", - "phpdoc", - "reflection", - "static analysis" + "framework", + "manager", + "pest", + "php", + "plugin", + "test", + "testing", + "unit" ], "support": { - "issues": "https://github.com/phpDocumentor/ReflectionCommon/issues", - "source": "https://github.com/phpDocumentor/ReflectionCommon/tree/2.x" - }, - "time": "2020-06-27T09:03:43+00:00" - }, - { - "name": "phpdocumentor/reflection-docblock", - "version": "5.2.2", - "source": { - "type": "git", - "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", - "reference": "069a785b2141f5bcf49f3e353548dc1cce6df556" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/069a785b2141f5bcf49f3e353548dc1cce6df556", - "reference": "069a785b2141f5bcf49f3e353548dc1cce6df556", - "shasum": "" - }, - "require": { - "ext-filter": "*", - "php": "^7.2 || ^8.0", - "phpdocumentor/reflection-common": "^2.2", - "phpdocumentor/type-resolver": "^1.3", - "webmozart/assert": "^1.9.1" + "source": "https://github.com/pestphp/pest-plugin/tree/v1.0.0" }, - "require-dev": { - "mockery/mockery": "~1.3.2" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.x-dev" - } - }, - "autoload": { - "psr-4": { - "phpDocumentor\\Reflection\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ + "funding": [ + { + "url": "https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66BYDWAT92N6L", + "type": "custom" + }, { - "name": "Mike van Riel", - "email": "me@mikevanriel.com" + "url": "https://github.com/nunomaduro", + "type": "github" }, { - "name": "Jaap van Otterdijk", - "email": "account@ijaap.nl" + "url": "https://www.patreon.com/nunomaduro", + "type": "patreon" } ], - "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", - "support": { - "issues": "https://github.com/phpDocumentor/ReflectionDocBlock/issues", - "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/master" - }, - "time": "2020-09-03T19:13:55+00:00" + "time": "2021-01-03T15:53:42+00:00" }, { - "name": "phpdocumentor/type-resolver", - "version": "1.4.0", + "name": "phar-io/manifest", + "version": "2.0.3", "source": { "type": "git", - "url": "https://github.com/phpDocumentor/TypeResolver.git", - "reference": "6a467b8989322d92aa1c8bf2bebcc6e5c2ba55c0" + "url": "https://github.com/phar-io/manifest.git", + "reference": "97803eca37d319dfa7826cc2437fc020857acb53" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/6a467b8989322d92aa1c8bf2bebcc6e5c2ba55c0", - "reference": "6a467b8989322d92aa1c8bf2bebcc6e5c2ba55c0", + "url": "https://api.github.com/repos/phar-io/manifest/zipball/97803eca37d319dfa7826cc2437fc020857acb53", + "reference": "97803eca37d319dfa7826cc2437fc020857acb53", "shasum": "" }, "require": { - "php": "^7.2 || ^8.0", - "phpdocumentor/reflection-common": "^2.0" - }, - "require-dev": { - "ext-tokenizer": "*" + "ext-dom": "*", + "ext-phar": "*", + "ext-xmlwriter": "*", + "phar-io/version": "^3.0.1", + "php": "^7.2 || ^8.0" }, "type": "library", "extra": { "branch-alias": { - "dev-1.x": "1.x-dev" + "dev-master": "2.0.x-dev" } }, "autoload": { - "psr-4": { - "phpDocumentor\\Reflection\\": "src" - } + "classmap": [ + "src/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "Mike van Riel", - "email": "me@mikevanriel.com" + "name": "Arne Blankerts", + "email": "arne@blankerts.de", + "role": "Developer" + }, + { + "name": "Sebastian Heuer", + "email": "sebastian@phpeople.de", + "role": "Developer" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "Developer" } ], - "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names", + "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)", "support": { - "issues": "https://github.com/phpDocumentor/TypeResolver/issues", - "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.4.0" + "issues": "https://github.com/phar-io/manifest/issues", + "source": "https://github.com/phar-io/manifest/tree/2.0.3" }, - "time": "2020-09-17T18:55:26+00:00" + "time": "2021-07-20T11:28:43+00:00" }, { - "name": "phpspec/prophecy", - "version": "1.13.0", + "name": "phar-io/version", + "version": "3.2.1", "source": { "type": "git", - "url": "https://github.com/phpspec/prophecy.git", - "reference": "be1996ed8adc35c3fd795488a653f4b518be70ea" + "url": "https://github.com/phar-io/version.git", + "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpspec/prophecy/zipball/be1996ed8adc35c3fd795488a653f4b518be70ea", - "reference": "be1996ed8adc35c3fd795488a653f4b518be70ea", + "url": "https://api.github.com/repos/phar-io/version/zipball/4f7fd7836c6f332bb2933569e566a0d6c4cbed74", + "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74", "shasum": "" }, "require": { - "doctrine/instantiator": "^1.2", - "php": "^7.2 || ~8.0, <8.1", - "phpdocumentor/reflection-docblock": "^5.2", - "sebastian/comparator": "^3.0 || ^4.0", - "sebastian/recursion-context": "^3.0 || ^4.0" - }, - "require-dev": { - "phpspec/phpspec": "^6.0", - "phpunit/phpunit": "^8.0 || ^9.0" + "php": "^7.2 || ^8.0" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.11.x-dev" - } - }, "autoload": { - "psr-4": { - "Prophecy\\": "src/Prophecy" - } + "classmap": [ + "src/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "Konstantin Kudryashov", - "email": "ever.zet@gmail.com", - "homepage": "http://everzet.com" + "name": "Arne Blankerts", + "email": "arne@blankerts.de", + "role": "Developer" + }, + { + "name": "Sebastian Heuer", + "email": "sebastian@phpeople.de", + "role": "Developer" }, { - "name": "Marcello Duarte", - "email": "marcello.duarte@gmail.com" + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "Developer" } ], - "description": "Highly opinionated mocking framework for PHP 5.3+", - "homepage": "https://github.com/phpspec/prophecy", - "keywords": [ - "Double", - "Dummy", - "fake", - "mock", - "spy", - "stub" - ], + "description": "Library for handling version information and constraints", "support": { - "issues": "https://github.com/phpspec/prophecy/issues", - "source": "https://github.com/phpspec/prophecy/tree/1.13.0" + "issues": "https://github.com/phar-io/version/issues", + "source": "https://github.com/phar-io/version/tree/3.2.1" }, - "time": "2021-03-17T13:42:18+00:00" + "time": "2022-02-21T01:04:05+00:00" }, { "name": "phpunit/php-code-coverage", - "version": "9.2.6", + "version": "9.2.17", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "f6293e1b30a2354e8428e004689671b83871edde" + "reference": "aa94dc41e8661fe90c7316849907cba3007b10d8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/f6293e1b30a2354e8428e004689671b83871edde", - "reference": "f6293e1b30a2354e8428e004689671b83871edde", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/aa94dc41e8661fe90c7316849907cba3007b10d8", + "reference": "aa94dc41e8661fe90c7316849907cba3007b10d8", "shasum": "" }, "require": { "ext-dom": "*", "ext-libxml": "*", "ext-xmlwriter": "*", - "nikic/php-parser": "^4.10.2", + "nikic/php-parser": "^4.14", "php": ">=7.3", "phpunit/php-file-iterator": "^3.0.3", "phpunit/php-text-template": "^2.0.2", @@ -5363,7 +5550,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", - "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.6" + "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.17" }, "funding": [ { @@ -5371,20 +5558,20 @@ "type": "github" } ], - "time": "2021-03-28T07:26:59+00:00" + "time": "2022-08-30T12:24:04+00:00" }, { "name": "phpunit/php-file-iterator", - "version": "3.0.5", + "version": "3.0.6", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-file-iterator.git", - "reference": "aa4be8575f26070b100fccb67faabb28f21f66f8" + "reference": "cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/aa4be8575f26070b100fccb67faabb28f21f66f8", - "reference": "aa4be8575f26070b100fccb67faabb28f21f66f8", + "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf", + "reference": "cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf", "shasum": "" }, "require": { @@ -5423,7 +5610,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/php-file-iterator/issues", - "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/3.0.5" + "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/3.0.6" }, "funding": [ { @@ -5431,7 +5618,7 @@ "type": "github" } ], - "time": "2020-09-28T05:57:25+00:00" + "time": "2021-12-02T12:48:52+00:00" }, { "name": "phpunit/php-invoker", @@ -5616,16 +5803,16 @@ }, { "name": "phpunit/phpunit", - "version": "9.5.4", + "version": "9.5.24", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "c73c6737305e779771147af66c96ca6a7ed8a741" + "reference": "d0aa6097bef9fd42458a9b3c49da32c6ce6129c5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/c73c6737305e779771147af66c96ca6a7ed8a741", - "reference": "c73c6737305e779771147af66c96ca6a7ed8a741", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/d0aa6097bef9fd42458a9b3c49da32c6ce6129c5", + "reference": "d0aa6097bef9fd42458a9b3c49da32c6ce6129c5", "shasum": "" }, "require": { @@ -5637,11 +5824,10 @@ "ext-xml": "*", "ext-xmlwriter": "*", "myclabs/deep-copy": "^1.10.1", - "phar-io/manifest": "^2.0.1", + "phar-io/manifest": "^2.0.3", "phar-io/version": "^3.0.2", "php": ">=7.3", - "phpspec/prophecy": "^1.12.1", - "phpunit/php-code-coverage": "^9.2.3", + "phpunit/php-code-coverage": "^9.2.13", "phpunit/php-file-iterator": "^3.0.5", "phpunit/php-invoker": "^3.1.1", "phpunit/php-text-template": "^2.0.3", @@ -5655,13 +5841,9 @@ "sebastian/global-state": "^5.0.1", "sebastian/object-enumerator": "^4.0.3", "sebastian/resource-operations": "^3.0.3", - "sebastian/type": "^2.3", + "sebastian/type": "^3.1", "sebastian/version": "^3.0.2" }, - "require-dev": { - "ext-pdo": "*", - "phpspec/prophecy-phpunit": "^2.0.1" - }, "suggest": { "ext-soap": "*", "ext-xdebug": "*" @@ -5676,11 +5858,11 @@ } }, "autoload": { - "classmap": [ - "src/" - ], "files": [ "src/Framework/Assert/Functions.php" + ], + "classmap": [ + "src/" ] }, "notification-url": "https://packagist.org/downloads/", @@ -5703,11 +5885,11 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/phpunit/issues", - "source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.4" + "source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.24" }, "funding": [ { - "url": "https://phpunit.de/donate.html", + "url": "https://phpunit.de/sponsors.html", "type": "custom" }, { @@ -5715,7 +5897,7 @@ "type": "github" } ], - "time": "2021-03-23T07:16:29+00:00" + "time": "2022-08-30T07:42:16+00:00" }, { "name": "sebastian/cli-parser", @@ -6083,16 +6265,16 @@ }, { "name": "sebastian/environment", - "version": "5.1.3", + "version": "5.1.4", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/environment.git", - "reference": "388b6ced16caa751030f6a69e588299fa09200ac" + "reference": "1b5dff7bb151a4db11d49d90e5408e4e938270f7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/388b6ced16caa751030f6a69e588299fa09200ac", - "reference": "388b6ced16caa751030f6a69e588299fa09200ac", + "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/1b5dff7bb151a4db11d49d90e5408e4e938270f7", + "reference": "1b5dff7bb151a4db11d49d90e5408e4e938270f7", "shasum": "" }, "require": { @@ -6134,7 +6316,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/environment/issues", - "source": "https://github.com/sebastianbergmann/environment/tree/5.1.3" + "source": "https://github.com/sebastianbergmann/environment/tree/5.1.4" }, "funding": [ { @@ -6142,20 +6324,20 @@ "type": "github" } ], - "time": "2020-09-28T05:52:38+00:00" + "time": "2022-04-03T09:37:03+00:00" }, { "name": "sebastian/exporter", - "version": "4.0.3", + "version": "4.0.4", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/exporter.git", - "reference": "d89cc98761b8cb5a1a235a6b703ae50d34080e65" + "reference": "65e8b7db476c5dd267e65eea9cab77584d3cfff9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/d89cc98761b8cb5a1a235a6b703ae50d34080e65", - "reference": "d89cc98761b8cb5a1a235a6b703ae50d34080e65", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/65e8b7db476c5dd267e65eea9cab77584d3cfff9", + "reference": "65e8b7db476c5dd267e65eea9cab77584d3cfff9", "shasum": "" }, "require": { @@ -6204,14 +6386,14 @@ } ], "description": "Provides the functionality to export PHP variables for visualization", - "homepage": "http://www.github.com/sebastianbergmann/exporter", + "homepage": "https://www.github.com/sebastianbergmann/exporter", "keywords": [ "export", "exporter" ], "support": { "issues": "https://github.com/sebastianbergmann/exporter/issues", - "source": "https://github.com/sebastianbergmann/exporter/tree/4.0.3" + "source": "https://github.com/sebastianbergmann/exporter/tree/4.0.4" }, "funding": [ { @@ -6219,20 +6401,20 @@ "type": "github" } ], - "time": "2020-09-28T05:24:23+00:00" + "time": "2021-11-11T14:18:36+00:00" }, { "name": "sebastian/global-state", - "version": "5.0.2", + "version": "5.0.5", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/global-state.git", - "reference": "a90ccbddffa067b51f574dea6eb25d5680839455" + "reference": "0ca8db5a5fc9c8646244e629625ac486fa286bf2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/a90ccbddffa067b51f574dea6eb25d5680839455", - "reference": "a90ccbddffa067b51f574dea6eb25d5680839455", + "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/0ca8db5a5fc9c8646244e629625ac486fa286bf2", + "reference": "0ca8db5a5fc9c8646244e629625ac486fa286bf2", "shasum": "" }, "require": { @@ -6275,7 +6457,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/global-state/issues", - "source": "https://github.com/sebastianbergmann/global-state/tree/5.0.2" + "source": "https://github.com/sebastianbergmann/global-state/tree/5.0.5" }, "funding": [ { @@ -6283,7 +6465,7 @@ "type": "github" } ], - "time": "2020-10-26T15:55:19+00:00" + "time": "2022-02-14T08:28:10+00:00" }, { "name": "sebastian/lines-of-code", @@ -6574,28 +6756,28 @@ }, { "name": "sebastian/type", - "version": "2.3.1", + "version": "3.1.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/type.git", - "reference": "81cd61ab7bbf2de744aba0ea61fae32f721df3d2" + "reference": "fb44e1cc6e557418387ad815780360057e40753e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/81cd61ab7bbf2de744aba0ea61fae32f721df3d2", - "reference": "81cd61ab7bbf2de744aba0ea61fae32f721df3d2", + "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/fb44e1cc6e557418387ad815780360057e40753e", + "reference": "fb44e1cc6e557418387ad815780360057e40753e", "shasum": "" }, "require": { "php": ">=7.3" }, "require-dev": { - "phpunit/phpunit": "^9.3" + "phpunit/phpunit": "^9.5" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.3-dev" + "dev-master": "3.1-dev" } }, "autoload": { @@ -6618,7 +6800,7 @@ "homepage": "https://github.com/sebastianbergmann/type", "support": { "issues": "https://github.com/sebastianbergmann/type/issues", - "source": "https://github.com/sebastianbergmann/type/tree/2.3.1" + "source": "https://github.com/sebastianbergmann/type/tree/3.1.0" }, "funding": [ { @@ -6626,7 +6808,7 @@ "type": "github" } ], - "time": "2020-10-26T13:18:59+00:00" + "time": "2022-08-29T06:55:37+00:00" }, { "name": "sebastian/version", @@ -7087,16 +7269,16 @@ }, { "name": "theseer/tokenizer", - "version": "1.2.0", + "version": "1.2.1", "source": { "type": "git", "url": "https://github.com/theseer/tokenizer.git", - "reference": "75a63c33a8577608444246075ea0af0d052e452a" + "reference": "34a41e998c2183e22995f158c581e7b5e755ab9e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/theseer/tokenizer/zipball/75a63c33a8577608444246075ea0af0d052e452a", - "reference": "75a63c33a8577608444246075ea0af0d052e452a", + "url": "https://api.github.com/repos/theseer/tokenizer/zipball/34a41e998c2183e22995f158c581e7b5e755ab9e", + "reference": "34a41e998c2183e22995f158c581e7b5e755ab9e", "shasum": "" }, "require": { @@ -7125,7 +7307,7 @@ "description": "A small library for converting tokenized PHP source code into XML and potentially other formats", "support": { "issues": "https://github.com/theseer/tokenizer/issues", - "source": "https://github.com/theseer/tokenizer/tree/master" + "source": "https://github.com/theseer/tokenizer/tree/1.2.1" }, "funding": [ { @@ -7133,7 +7315,7 @@ "type": "github" } ], - "time": "2020-07-12T23:59:07+00:00" + "time": "2021-07-28T10:34:58+00:00" }, { "name": "zbateson/mail-mime-parser", @@ -7348,5 +7530,5 @@ "php": "^7.4|^8.0" }, "platform-dev": [], - "plugin-api-version": "2.0.0" + "plugin-api-version": "2.1.0" } From bc2c838855c62da0e408bfd1a2104f3d32bfed65 Mon Sep 17 00:00:00 2001 From: Diana Scharf Date: Tue, 20 Sep 2022 14:39:00 +0200 Subject: [PATCH 02/70] Moved existing FilterTest to PEST tests --- tests/FilterTest.php | 86 +++++++++++++++++++------------------------- 1 file changed, 36 insertions(+), 50 deletions(-) diff --git a/tests/FilterTest.php b/tests/FilterTest.php index f4e2a9a..0f12c0e 100644 --- a/tests/FilterTest.php +++ b/tests/FilterTest.php @@ -1,57 +1,43 @@ assertInstanceOf(Filter::class, $filter); - $this->assertArrayHasKey('property', $filter->toQuery()); - $this->assertEquals('Name', $filter->toQuery()['property']); - $this->assertArrayHasKey('text', $filter->toQuery()); - $this->assertArrayHasKey('equals', $filter->toQuery()['text']); - $this->assertEquals('Ada Lovelace', $filter->toQuery()['text']['equals']); - } - - /** @test */ - public function it_creates_a_number_filter_with_the_given_data() - { - $filter = Filter::numberFilter('Awesomeness Level', Operators::GREATER_THAN_OR_EQUAL_TO, 9000); - - $this->assertInstanceOf(Filter::class, $filter); - $this->assertArrayHasKey('property', $filter->toQuery()); - $this->assertEquals('Awesomeness Level', $filter->toQuery()['property']); - $this->assertArrayHasKey('number', $filter->toQuery()); - $this->assertArrayHasKey('greater_than_or_equal_to', $filter->toQuery()['number']); - $this->assertEquals('9000', $filter->toQuery()['number']['greater_than_or_equal_to']); - } - - /** @test */ - public function it_throws_an_exception_for_an_invalid_comparison_operator() - { - $this->expectException(HandlingException::class); - $this->expectExceptionMessage('Invalid comparison operator'); - $filter = Filter::numberFilter('Awesomeness Level', 'non_existing_operator', 9000); - } - - /** @test */ - public function it_throws_an_exception_for_an_invalid_filter_definition() - { - $filter = new Filter('Test'); - - $this->expectException(HandlingException::class); - $this->expectExceptionMessage('Invalid filter definition.'); - $filter->toArray(); - } -} +it('creates a text filter with the given data', function () { + $filter = Filter::textFilter('Name', Operators::EQUALS, 'Ada Lovelace'); + + $this->assertInstanceOf(Filter::class, $filter); + $this->assertArrayHasKey('property', $filter->toQuery()); + $this->assertEquals('Name', $filter->toQuery()['property']); + $this->assertArrayHasKey('text', $filter->toQuery()); + $this->assertArrayHasKey('equals', $filter->toQuery()['text']); + $this->assertEquals('Ada Lovelace', $filter->toQuery()['text']['equals']);# +}); + + +it('creates a number filter with the given data', function () { + $filter = Filter::numberFilter('Awesomeness Level', Operators::GREATER_THAN_OR_EQUAL_TO, 9000); + + $this->assertInstanceOf(Filter::class, $filter); + $this->assertArrayHasKey('property', $filter->toQuery()); + $this->assertEquals('Awesomeness Level', $filter->toQuery()['property']); + $this->assertArrayHasKey('number', $filter->toQuery()); + $this->assertArrayHasKey('greater_than_or_equal_to', $filter->toQuery()['number']); + $this->assertEquals('9000', $filter->toQuery()['number']['greater_than_or_equal_to']); +}); + +it('throws an HandlingException for an invalid comparison operator', function () { + $this->expectException(HandlingException::class); + $this->expectExceptionMessage('Invalid comparison operator'); + $filter = Filter::numberFilter('Awesomeness Level', 'non_existing_operator', 9000); +}); + +it('throws an exception for an invalid filter definition', function () { + $filter = new Filter('Test'); + + $this->expectException(HandlingException::class); + $this->expectExceptionMessage('Invalid filter definition.'); + $filter->toArray(); +}); \ No newline at end of file From 1ddb0ddc4f34dae50cac637489d194f6cfc7fe03 Mon Sep 17 00:00:00 2001 From: Diana Scharf Date: Sun, 25 Sep 2022 13:43:46 +0200 Subject: [PATCH 03/70] WIP --- composer.lock | 2367 +++++++++++++++++++------------ src/Endpoints/Database.php | 70 +- src/Query/Filters/Filter.php | 2 +- src/Query/Filters/FilterBag.php | 116 ++ tests/EndpointDatabaseTest.php | 386 +++-- tests/FilterBagTest.php | 69 + tests/Pest.php | 5 + tests/TestCase.php | 16 + 8 files changed, 1934 insertions(+), 1097 deletions(-) create mode 100644 src/Query/Filters/FilterBag.php create mode 100644 tests/FilterBagTest.php create mode 100644 tests/Pest.php create mode 100644 tests/TestCase.php diff --git a/composer.lock b/composer.lock index 6d60e3b..7925d58 100644 --- a/composer.lock +++ b/composer.lock @@ -8,26 +8,26 @@ "packages": [ { "name": "brick/math", - "version": "0.9.2", + "version": "0.10.2", "source": { "type": "git", "url": "https://github.com/brick/math.git", - "reference": "dff976c2f3487d42c1db75a3b180e2b9f0e72ce0" + "reference": "459f2781e1a08d52ee56b0b1444086e038561e3f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/brick/math/zipball/dff976c2f3487d42c1db75a3b180e2b9f0e72ce0", - "reference": "dff976c2f3487d42c1db75a3b180e2b9f0e72ce0", + "url": "https://api.github.com/repos/brick/math/zipball/459f2781e1a08d52ee56b0b1444086e038561e3f", + "reference": "459f2781e1a08d52ee56b0b1444086e038561e3f", "shasum": "" }, "require": { "ext-json": "*", - "php": "^7.1 || ^8.0" + "php": "^7.4 || ^8.0" }, "require-dev": { "php-coveralls/php-coveralls": "^2.2", - "phpunit/phpunit": "^7.5.15 || ^8.5 || ^9.0", - "vimeo/psalm": "4.3.2" + "phpunit/phpunit": "^9.0", + "vimeo/psalm": "4.25.0" }, "type": "library", "autoload": { @@ -52,46 +52,117 @@ ], "support": { "issues": "https://github.com/brick/math/issues", - "source": "https://github.com/brick/math/tree/0.9.2" + "source": "https://github.com/brick/math/tree/0.10.2" }, "funding": [ { - "url": "https://tidelift.com/funding/github/packagist/brick/math", - "type": "tidelift" + "url": "https://github.com/BenMorel", + "type": "github" } ], - "time": "2021-01-20T22:51:39+00:00" + "time": "2022-08-10T22:54:19+00:00" }, { - "name": "doctrine/inflector", - "version": "2.0.3", + "name": "dflydev/dot-access-data", + "version": "v3.0.1", "source": { "type": "git", - "url": "https://github.com/doctrine/inflector.git", - "reference": "9cf661f4eb38f7c881cac67c75ea9b00bf97b210" + "url": "https://github.com/dflydev/dflydev-dot-access-data.git", + "reference": "0992cc19268b259a39e86f296da5f0677841f42c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/inflector/zipball/9cf661f4eb38f7c881cac67c75ea9b00bf97b210", - "reference": "9cf661f4eb38f7c881cac67c75ea9b00bf97b210", + "url": "https://api.github.com/repos/dflydev/dflydev-dot-access-data/zipball/0992cc19268b259a39e86f296da5f0677841f42c", + "reference": "0992cc19268b259a39e86f296da5f0677841f42c", "shasum": "" }, "require": { - "php": "^7.2 || ^8.0" + "php": "^7.1 || ^8.0" }, "require-dev": { - "doctrine/coding-standard": "^7.0", - "phpstan/phpstan": "^0.11", - "phpstan/phpstan-phpunit": "^0.11", - "phpstan/phpstan-strict-rules": "^0.11", - "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0" + "phpstan/phpstan": "^0.12.42", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.3", + "scrutinizer/ocular": "1.6.0", + "squizlabs/php_codesniffer": "^3.5", + "vimeo/psalm": "^3.14" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0.x-dev" + "dev-main": "3.x-dev" } }, + "autoload": { + "psr-4": { + "Dflydev\\DotAccessData\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Dragonfly Development Inc.", + "email": "info@dflydev.com", + "homepage": "http://dflydev.com" + }, + { + "name": "Beau Simensen", + "email": "beau@dflydev.com", + "homepage": "http://beausimensen.com" + }, + { + "name": "Carlos Frutos", + "email": "carlos@kiwing.it", + "homepage": "https://github.com/cfrutos" + }, + { + "name": "Colin O'Dell", + "email": "colinodell@gmail.com", + "homepage": "https://www.colinodell.com" + } + ], + "description": "Given a deep data structure, access data by dot notation.", + "homepage": "https://github.com/dflydev/dflydev-dot-access-data", + "keywords": [ + "access", + "data", + "dot", + "notation" + ], + "support": { + "issues": "https://github.com/dflydev/dflydev-dot-access-data/issues", + "source": "https://github.com/dflydev/dflydev-dot-access-data/tree/v3.0.1" + }, + "time": "2021-08-13T13:06:58+00:00" + }, + { + "name": "doctrine/inflector", + "version": "2.0.5", + "source": { + "type": "git", + "url": "https://github.com/doctrine/inflector.git", + "reference": "ade2b3bbfb776f27f0558e26eed43b5d9fe1b392" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/inflector/zipball/ade2b3bbfb776f27f0558e26eed43b5d9fe1b392", + "reference": "ade2b3bbfb776f27f0558e26eed43b5d9fe1b392", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0" + }, + "require-dev": { + "doctrine/coding-standard": "^9", + "phpstan/phpstan": "^1.8", + "phpstan/phpstan-phpunit": "^1.1", + "phpstan/phpstan-strict-rules": "^1.3", + "phpunit/phpunit": "^8.5 || ^9.5", + "vimeo/psalm": "^4.25" + }, + "type": "library", "autoload": { "psr-4": { "Doctrine\\Inflector\\": "lib/Doctrine/Inflector" @@ -139,7 +210,7 @@ ], "support": { "issues": "https://github.com/doctrine/inflector/issues", - "source": "https://github.com/doctrine/inflector/tree/2.0.x" + "source": "https://github.com/doctrine/inflector/tree/2.0.5" }, "funding": [ { @@ -155,36 +226,32 @@ "type": "tidelift" } ], - "time": "2020-05-29T15:13:26+00:00" + "time": "2022-09-07T09:01:28+00:00" }, { "name": "doctrine/lexer", - "version": "1.2.1", + "version": "1.2.3", "source": { "type": "git", "url": "https://github.com/doctrine/lexer.git", - "reference": "e864bbf5904cb8f5bb334f99209b48018522f042" + "reference": "c268e882d4dbdd85e36e4ad69e02dc284f89d229" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/lexer/zipball/e864bbf5904cb8f5bb334f99209b48018522f042", - "reference": "e864bbf5904cb8f5bb334f99209b48018522f042", + "url": "https://api.github.com/repos/doctrine/lexer/zipball/c268e882d4dbdd85e36e4ad69e02dc284f89d229", + "reference": "c268e882d4dbdd85e36e4ad69e02dc284f89d229", "shasum": "" }, "require": { - "php": "^7.2 || ^8.0" + "php": "^7.1 || ^8.0" }, "require-dev": { - "doctrine/coding-standard": "^6.0", - "phpstan/phpstan": "^0.11.8", - "phpunit/phpunit": "^8.2" + "doctrine/coding-standard": "^9.0", + "phpstan/phpstan": "^1.3", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", + "vimeo/psalm": "^4.11" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.2.x-dev" - } - }, "autoload": { "psr-4": { "Doctrine\\Common\\Lexer\\": "lib/Doctrine/Common/Lexer" @@ -219,7 +286,7 @@ ], "support": { "issues": "https://github.com/doctrine/lexer/issues", - "source": "https://github.com/doctrine/lexer/tree/1.2.1" + "source": "https://github.com/doctrine/lexer/tree/1.2.3" }, "funding": [ { @@ -235,33 +302,33 @@ "type": "tidelift" } ], - "time": "2020-05-25T17:44:05+00:00" + "time": "2022-02-28T11:07:21+00:00" }, { "name": "dragonmantank/cron-expression", - "version": "v3.1.0", + "version": "v3.3.2", "source": { "type": "git", "url": "https://github.com/dragonmantank/cron-expression.git", - "reference": "7a8c6e56ab3ffcc538d05e8155bb42269abf1a0c" + "reference": "782ca5968ab8b954773518e9e49a6f892a34b2a8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/dragonmantank/cron-expression/zipball/7a8c6e56ab3ffcc538d05e8155bb42269abf1a0c", - "reference": "7a8c6e56ab3ffcc538d05e8155bb42269abf1a0c", + "url": "https://api.github.com/repos/dragonmantank/cron-expression/zipball/782ca5968ab8b954773518e9e49a6f892a34b2a8", + "reference": "782ca5968ab8b954773518e9e49a6f892a34b2a8", "shasum": "" }, "require": { "php": "^7.2|^8.0", - "webmozart/assert": "^1.7.0" + "webmozart/assert": "^1.0" }, "replace": { "mtdowling/cron-expression": "^1.0" }, "require-dev": { "phpstan/extension-installer": "^1.0", - "phpstan/phpstan": "^0.12", - "phpstan/phpstan-webmozart-assert": "^0.12.7", + "phpstan/phpstan": "^1.0", + "phpstan/phpstan-webmozart-assert": "^1.0", "phpunit/phpunit": "^7.0|^8.0|^9.0" }, "type": "library", @@ -288,7 +355,7 @@ ], "support": { "issues": "https://github.com/dragonmantank/cron-expression/issues", - "source": "https://github.com/dragonmantank/cron-expression/tree/v3.1.0" + "source": "https://github.com/dragonmantank/cron-expression/tree/v3.3.2" }, "funding": [ { @@ -296,7 +363,7 @@ "type": "github" } ], - "time": "2020-11-24T19:55:57+00:00" + "time": "2022-09-10T18:51:20+00:00" }, { "name": "egulias/email-validator", @@ -368,31 +435,26 @@ }, { "name": "graham-campbell/result-type", - "version": "v1.0.1", + "version": "v1.1.0", "source": { "type": "git", "url": "https://github.com/GrahamCampbell/Result-Type.git", - "reference": "7e279d2cd5d7fbb156ce46daada972355cea27bb" + "reference": "a878d45c1914464426dc94da61c9e1d36ae262a8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/GrahamCampbell/Result-Type/zipball/7e279d2cd5d7fbb156ce46daada972355cea27bb", - "reference": "7e279d2cd5d7fbb156ce46daada972355cea27bb", + "url": "https://api.github.com/repos/GrahamCampbell/Result-Type/zipball/a878d45c1914464426dc94da61c9e1d36ae262a8", + "reference": "a878d45c1914464426dc94da61c9e1d36ae262a8", "shasum": "" }, "require": { - "php": "^7.0|^8.0", - "phpoption/phpoption": "^1.7.3" + "php": "^7.2.5 || ^8.0", + "phpoption/phpoption": "^1.9" }, "require-dev": { - "phpunit/phpunit": "^6.5|^7.5|^8.5|^9.0" + "phpunit/phpunit": "^8.5.28 || ^9.5.21" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0-dev" - } - }, "autoload": { "psr-4": { "GrahamCampbell\\ResultType\\": "src/" @@ -405,7 +467,8 @@ "authors": [ { "name": "Graham Campbell", - "email": "graham@alt-three.com" + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" } ], "description": "An Implementation Of The Result Type", @@ -418,7 +481,7 @@ ], "support": { "issues": "https://github.com/GrahamCampbell/Result-Type/issues", - "source": "https://github.com/GrahamCampbell/Result-Type/tree/v1.0.1" + "source": "https://github.com/GrahamCampbell/Result-Type/tree/v1.1.0" }, "funding": [ { @@ -430,38 +493,39 @@ "type": "tidelift" } ], - "time": "2020-04-13T13:17:36+00:00" + "time": "2022-07-30T15:56:11+00:00" }, { "name": "guzzlehttp/guzzle", - "version": "7.3.0", + "version": "7.5.0", "source": { "type": "git", "url": "https://github.com/guzzle/guzzle.git", - "reference": "7008573787b430c1c1f650e3722d9bba59967628" + "reference": "b50a2a1251152e43f6a37f0fa053e730a67d25ba" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/guzzle/zipball/7008573787b430c1c1f650e3722d9bba59967628", - "reference": "7008573787b430c1c1f650e3722d9bba59967628", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/b50a2a1251152e43f6a37f0fa053e730a67d25ba", + "reference": "b50a2a1251152e43f6a37f0fa053e730a67d25ba", "shasum": "" }, "require": { "ext-json": "*", - "guzzlehttp/promises": "^1.4", - "guzzlehttp/psr7": "^1.7 || ^2.0", + "guzzlehttp/promises": "^1.5", + "guzzlehttp/psr7": "^1.9 || ^2.4", "php": "^7.2.5 || ^8.0", - "psr/http-client": "^1.0" + "psr/http-client": "^1.0", + "symfony/deprecation-contracts": "^2.2 || ^3.0" }, "provide": { "psr/http-client-implementation": "1.0" }, "require-dev": { - "bamarni/composer-bin-plugin": "^1.4.1", + "bamarni/composer-bin-plugin": "^1.8.1", "ext-curl": "*", "php-http/client-integration-tests": "^3.0", - "phpunit/phpunit": "^8.5.5 || ^9.3.5", - "psr/log": "^1.1" + "phpunit/phpunit": "^8.5.29 || ^9.5.23", + "psr/log": "^1.1 || ^2.0 || ^3.0" }, "suggest": { "ext-curl": "Required for CURL handler support", @@ -470,36 +534,64 @@ }, "type": "library", "extra": { + "bamarni-bin": { + "bin-links": true, + "forward-command": false + }, "branch-alias": { - "dev-master": "7.3-dev" + "dev-master": "7.5-dev" } }, "autoload": { - "psr-4": { - "GuzzleHttp\\": "src/" - }, "files": [ "src/functions_include.php" - ] + ], + "psr-4": { + "GuzzleHttp\\": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], "authors": [ + { + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" + }, { "name": "Michael Dowling", "email": "mtdowling@gmail.com", "homepage": "https://github.com/mtdowling" }, + { + "name": "Jeremy Lindblom", + "email": "jeremeamia@gmail.com", + "homepage": "https://github.com/jeremeamia" + }, + { + "name": "George Mponos", + "email": "gmponos@gmail.com", + "homepage": "https://github.com/gmponos" + }, + { + "name": "Tobias Nyholm", + "email": "tobias.nyholm@gmail.com", + "homepage": "https://github.com/Nyholm" + }, { "name": "Márk Sági-Kazár", "email": "mark.sagikazar@gmail.com", - "homepage": "https://sagikazarmark.hu" + "homepage": "https://github.com/sagikazarmark" + }, + { + "name": "Tobias Schultze", + "email": "webmaster@tubo-world.de", + "homepage": "https://github.com/Tobion" } ], "description": "Guzzle is a PHP HTTP client library", - "homepage": "http://guzzlephp.org/", "keywords": [ "client", "curl", @@ -513,7 +605,7 @@ ], "support": { "issues": "https://github.com/guzzle/guzzle/issues", - "source": "https://github.com/guzzle/guzzle/tree/7.3.0" + "source": "https://github.com/guzzle/guzzle/tree/7.5.0" }, "funding": [ { @@ -525,28 +617,24 @@ "type": "github" }, { - "url": "https://github.com/alexeyshockov", - "type": "github" - }, - { - "url": "https://github.com/gmponos", - "type": "github" + "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/guzzle", + "type": "tidelift" } ], - "time": "2021-03-23T11:33:13+00:00" + "time": "2022-08-28T15:39:27+00:00" }, { "name": "guzzlehttp/promises", - "version": "1.4.1", + "version": "1.5.2", "source": { "type": "git", "url": "https://github.com/guzzle/promises.git", - "reference": "8e7d04f1f6450fef59366c399cfad4b9383aa30d" + "reference": "b94b2807d85443f9719887892882d0329d1e2598" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/promises/zipball/8e7d04f1f6450fef59366c399cfad4b9383aa30d", - "reference": "8e7d04f1f6450fef59366c399cfad4b9383aa30d", + "url": "https://api.github.com/repos/guzzle/promises/zipball/b94b2807d85443f9719887892882d0329d1e2598", + "reference": "b94b2807d85443f9719887892882d0329d1e2598", "shasum": "" }, "require": { @@ -558,26 +646,41 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.4-dev" + "dev-master": "1.5-dev" } }, "autoload": { - "psr-4": { - "GuzzleHttp\\Promise\\": "src/" - }, "files": [ "src/functions_include.php" - ] + ], + "psr-4": { + "GuzzleHttp\\Promise\\": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], "authors": [ + { + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" + }, { "name": "Michael Dowling", "email": "mtdowling@gmail.com", "homepage": "https://github.com/mtdowling" + }, + { + "name": "Tobias Nyholm", + "email": "tobias.nyholm@gmail.com", + "homepage": "https://github.com/Nyholm" + }, + { + "name": "Tobias Schultze", + "email": "webmaster@tubo-world.de", + "homepage": "https://github.com/Tobion" } ], "description": "Guzzle promises library", @@ -586,66 +689,110 @@ ], "support": { "issues": "https://github.com/guzzle/promises/issues", - "source": "https://github.com/guzzle/promises/tree/1.4.1" + "source": "https://github.com/guzzle/promises/tree/1.5.2" }, - "time": "2021-03-07T09:25:29+00:00" + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://github.com/Nyholm", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/promises", + "type": "tidelift" + } + ], + "time": "2022-08-28T14:55:35+00:00" }, { "name": "guzzlehttp/psr7", - "version": "1.8.2", + "version": "2.4.1", "source": { "type": "git", "url": "https://github.com/guzzle/psr7.git", - "reference": "dc960a912984efb74d0a90222870c72c87f10c91" + "reference": "69568e4293f4fa993f3b0e51c9723e1e17c41379" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/psr7/zipball/dc960a912984efb74d0a90222870c72c87f10c91", - "reference": "dc960a912984efb74d0a90222870c72c87f10c91", + "url": "https://api.github.com/repos/guzzle/psr7/zipball/69568e4293f4fa993f3b0e51c9723e1e17c41379", + "reference": "69568e4293f4fa993f3b0e51c9723e1e17c41379", "shasum": "" }, "require": { - "php": ">=5.4.0", - "psr/http-message": "~1.0", - "ralouphie/getallheaders": "^2.0.5 || ^3.0.0" + "php": "^7.2.5 || ^8.0", + "psr/http-factory": "^1.0", + "psr/http-message": "^1.0", + "ralouphie/getallheaders": "^3.0" }, "provide": { + "psr/http-factory-implementation": "1.0", "psr/http-message-implementation": "1.0" }, "require-dev": { - "ext-zlib": "*", - "phpunit/phpunit": "~4.8.36 || ^5.7.27 || ^6.5.14 || ^7.5.20 || ^8.5.8 || ^9.3.10" + "bamarni/composer-bin-plugin": "^1.8.1", + "http-interop/http-factory-tests": "^0.9", + "phpunit/phpunit": "^8.5.29 || ^9.5.23" }, "suggest": { "laminas/laminas-httphandlerrunner": "Emit PSR-7 responses" }, "type": "library", "extra": { + "bamarni-bin": { + "bin-links": true, + "forward-command": false + }, "branch-alias": { - "dev-master": "1.7-dev" + "dev-master": "2.4-dev" } }, "autoload": { "psr-4": { "GuzzleHttp\\Psr7\\": "src/" - }, - "files": [ - "src/functions_include.php" - ] + } }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], "authors": [ + { + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" + }, { "name": "Michael Dowling", "email": "mtdowling@gmail.com", "homepage": "https://github.com/mtdowling" }, + { + "name": "George Mponos", + "email": "gmponos@gmail.com", + "homepage": "https://github.com/gmponos" + }, + { + "name": "Tobias Nyholm", + "email": "tobias.nyholm@gmail.com", + "homepage": "https://github.com/Nyholm" + }, + { + "name": "Márk Sági-Kazár", + "email": "mark.sagikazar@gmail.com", + "homepage": "https://github.com/sagikazarmark" + }, { "name": "Tobias Schultze", + "email": "webmaster@tubo-world.de", "homepage": "https://github.com/Tobion" + }, + { + "name": "Márk Sági-Kazár", + "email": "mark.sagikazar@gmail.com", + "homepage": "https://sagikazarmark.hu" } ], "description": "PSR-7 message implementation that also provides common utility methods", @@ -661,22 +808,36 @@ ], "support": { "issues": "https://github.com/guzzle/psr7/issues", - "source": "https://github.com/guzzle/psr7/tree/1.8.2" + "source": "https://github.com/guzzle/psr7/tree/2.4.1" }, - "time": "2021-04-26T09:17:50+00:00" + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://github.com/Nyholm", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/psr7", + "type": "tidelift" + } + ], + "time": "2022-08-28T14:45:39+00:00" }, { "name": "laravel/framework", - "version": "v8.42.1", + "version": "v8.83.24", "source": { "type": "git", "url": "https://github.com/laravel/framework.git", - "reference": "41ec4897a70eb8729cf0ff34a8354413c54e42a6" + "reference": "a684da6197ae77eee090637ae4411b2f321adfc7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/framework/zipball/41ec4897a70eb8729cf0ff34a8354413c54e42a6", - "reference": "41ec4897a70eb8729cf0ff34a8354413c54e42a6", + "url": "https://api.github.com/repos/laravel/framework/zipball/a684da6197ae77eee090637ae4411b2f321adfc7", + "reference": "a684da6197ae77eee090637ae4411b2f321adfc7", "shasum": "" }, "require": { @@ -686,34 +847,37 @@ "ext-json": "*", "ext-mbstring": "*", "ext-openssl": "*", - "league/commonmark": "^1.3", + "laravel/serializable-closure": "^1.0", + "league/commonmark": "^1.3|^2.0.2", "league/flysystem": "^1.1", "monolog/monolog": "^2.0", - "nesbot/carbon": "^2.31", + "nesbot/carbon": "^2.53.1", "opis/closure": "^3.6", "php": "^7.3|^8.0", "psr/container": "^1.0", + "psr/log": "^1.0|^2.0", "psr/simple-cache": "^1.0", - "ramsey/uuid": "^4.0", - "swiftmailer/swiftmailer": "^6.0", - "symfony/console": "^5.1.4", - "symfony/error-handler": "^5.1.4", - "symfony/finder": "^5.1.4", - "symfony/http-foundation": "^5.1.4", - "symfony/http-kernel": "^5.1.4", - "symfony/mime": "^5.1.4", - "symfony/process": "^5.1.4", - "symfony/routing": "^5.1.4", - "symfony/var-dumper": "^5.1.4", + "ramsey/uuid": "^4.2.2", + "swiftmailer/swiftmailer": "^6.3", + "symfony/console": "^5.4", + "symfony/error-handler": "^5.4", + "symfony/finder": "^5.4", + "symfony/http-foundation": "^5.4", + "symfony/http-kernel": "^5.4", + "symfony/mime": "^5.4", + "symfony/process": "^5.4", + "symfony/routing": "^5.4", + "symfony/var-dumper": "^5.4", "tijsverkoyen/css-to-inline-styles": "^2.2.2", - "vlucas/phpdotenv": "^5.2", - "voku/portable-ascii": "^1.4.8" + "vlucas/phpdotenv": "^5.4.1", + "voku/portable-ascii": "^1.6.1" }, "conflict": { "tightenco/collect": "<5.5.33" }, "provide": { - "psr/container-implementation": "1.0" + "psr/container-implementation": "1.0", + "psr/simple-cache-implementation": "1.0" }, "replace": { "illuminate/auth": "self.version", @@ -749,22 +913,24 @@ "illuminate/view": "self.version" }, "require-dev": { - "aws/aws-sdk-php": "^3.155", - "doctrine/dbal": "^2.6|^3.0", - "filp/whoops": "^2.8", + "aws/aws-sdk-php": "^3.198.1", + "doctrine/dbal": "^2.13.3|^3.1.4", + "filp/whoops": "^2.14.3", "guzzlehttp/guzzle": "^6.5.5|^7.0.1", "league/flysystem-cached-adapter": "^1.0", - "mockery/mockery": "^1.4.2", - "orchestra/testbench-core": "^6.8", + "mockery/mockery": "^1.4.4", + "orchestra/testbench-core": "^6.27", "pda/pheanstalk": "^4.0", - "phpunit/phpunit": "^8.5.8|^9.3.3", - "predis/predis": "^1.1.1", - "symfony/cache": "^5.1.4" + "phpunit/phpunit": "^8.5.19|^9.5.8", + "predis/predis": "^1.1.9", + "symfony/cache": "^5.4" }, "suggest": { - "aws/aws-sdk-php": "Required to use the SQS queue driver, DynamoDb failed job storage and SES mail driver (^3.155).", + "ably/ably-php": "Required to use the Ably broadcast driver (^1.0).", + "aws/aws-sdk-php": "Required to use the SQS queue driver, DynamoDb failed job storage and SES mail driver (^3.198.1).", "brianium/paratest": "Required to run tests in parallel (^6.0).", - "doctrine/dbal": "Required to rename columns and drop SQLite columns (^2.6|^3.0).", + "doctrine/dbal": "Required to rename columns and drop SQLite columns (^2.13.3|^3.1.4).", + "ext-bcmath": "Required to use the multiple_of validation rule.", "ext-ftp": "Required to use the Flysystem FTP driver.", "ext-gd": "Required to use Illuminate\\Http\\Testing\\FileFactory::image().", "ext-memcached": "Required to use the memcache cache driver.", @@ -772,21 +938,21 @@ "ext-posix": "Required to use all features of the queue worker.", "ext-redis": "Required to use the Redis cache and queue drivers (^4.0|^5.0).", "fakerphp/faker": "Required to use the eloquent factory builder (^1.9.1).", - "filp/whoops": "Required for friendly error pages in development (^2.8).", + "filp/whoops": "Required for friendly error pages in development (^2.14.3).", "guzzlehttp/guzzle": "Required to use the HTTP Client, Mailgun mail driver and the ping methods on schedules (^6.5.5|^7.0.1).", "laravel/tinker": "Required to use the tinker console command (^2.0).", "league/flysystem-aws-s3-v3": "Required to use the Flysystem S3 driver (^1.0).", "league/flysystem-cached-adapter": "Required to use the Flysystem cache (^1.0).", "league/flysystem-sftp": "Required to use the Flysystem SFTP driver (^1.0).", - "mockery/mockery": "Required to use mocking (^1.4.2).", + "mockery/mockery": "Required to use mocking (^1.4.4).", "nyholm/psr7": "Required to use PSR-7 bridging features (^1.2).", "pda/pheanstalk": "Required to use the beanstalk queue driver (^4.0).", - "phpunit/phpunit": "Required to use assertions and run tests (^8.5.8|^9.3.3).", - "predis/predis": "Required to use the predis connector (^1.1.2).", + "phpunit/phpunit": "Required to use assertions and run tests (^8.5.19|^9.5.8).", + "predis/predis": "Required to use the predis connector (^1.1.9).", "psr/http-message": "Required to allow Storage::put to accept a StreamInterface (^1.0).", - "pusher/pusher-php-server": "Required to use the Pusher broadcast driver (^4.0|^5.0|^6.0).", - "symfony/cache": "Required to PSR-6 cache bridge (^5.1.4).", - "symfony/filesystem": "Required to enable support for relative symbolic links (^5.1.4).", + "pusher/pusher-php-server": "Required to use the Pusher broadcast driver (^4.0|^5.0|^6.0|^7.0).", + "symfony/cache": "Required to PSR-6 cache bridge (^5.4).", + "symfony/filesystem": "Required to enable support for relative symbolic links (^5.4).", "symfony/psr-http-message-bridge": "Required to use PSR-7 bridging features (^2.0).", "wildbit/swiftmailer-postmark": "Required to use Postmark mail driver (^3.0)." }, @@ -831,46 +997,118 @@ "issues": "https://github.com/laravel/framework/issues", "source": "https://github.com/laravel/framework" }, - "time": "2021-05-19T13:03:18+00:00" + "time": "2022-09-22T18:59:47+00:00" + }, + { + "name": "laravel/serializable-closure", + "version": "v1.2.2", + "source": { + "type": "git", + "url": "https://github.com/laravel/serializable-closure.git", + "reference": "47afb7fae28ed29057fdca37e16a84f90cc62fae" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laravel/serializable-closure/zipball/47afb7fae28ed29057fdca37e16a84f90cc62fae", + "reference": "47afb7fae28ed29057fdca37e16a84f90cc62fae", + "shasum": "" + }, + "require": { + "php": "^7.3|^8.0" + }, + "require-dev": { + "nesbot/carbon": "^2.61", + "pestphp/pest": "^1.21.3", + "phpstan/phpstan": "^1.8.2", + "symfony/var-dumper": "^5.4.11" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Laravel\\SerializableClosure\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Taylor Otwell", + "email": "taylor@laravel.com" + }, + { + "name": "Nuno Maduro", + "email": "nuno@laravel.com" + } + ], + "description": "Laravel Serializable Closure provides an easy and secure way to serialize closures in PHP.", + "keywords": [ + "closure", + "laravel", + "serializable" + ], + "support": { + "issues": "https://github.com/laravel/serializable-closure/issues", + "source": "https://github.com/laravel/serializable-closure" + }, + "time": "2022-09-08T13:45:54+00:00" }, { "name": "league/commonmark", - "version": "1.6.2", + "version": "2.3.5", "source": { "type": "git", "url": "https://github.com/thephpleague/commonmark.git", - "reference": "7d70d2f19c84bcc16275ea47edabee24747352eb" + "reference": "84d74485fdb7074f4f9dd6f02ab957b1de513257" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/7d70d2f19c84bcc16275ea47edabee24747352eb", - "reference": "7d70d2f19c84bcc16275ea47edabee24747352eb", + "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/84d74485fdb7074f4f9dd6f02ab957b1de513257", + "reference": "84d74485fdb7074f4f9dd6f02ab957b1de513257", "shasum": "" }, "require": { "ext-mbstring": "*", - "php": "^7.1 || ^8.0" - }, - "conflict": { - "scrutinizer/ocular": "1.7.*" + "league/config": "^1.1.1", + "php": "^7.4 || ^8.0", + "psr/event-dispatcher": "^1.0", + "symfony/deprecation-contracts": "^2.1 || ^3.0", + "symfony/polyfill-php80": "^1.16" }, "require-dev": { - "cebe/markdown": "~1.0", - "commonmark/commonmark.js": "0.29.2", - "erusev/parsedown": "~1.0", + "cebe/markdown": "^1.0", + "commonmark/cmark": "0.30.0", + "commonmark/commonmark.js": "0.30.0", + "composer/package-versions-deprecated": "^1.8", + "embed/embed": "^4.4", + "erusev/parsedown": "^1.0", "ext-json": "*", "github/gfm": "0.29.0", - "michelf/php-markdown": "~1.4", - "mikehaertl/php-shellcommand": "^1.4", - "phpstan/phpstan": "^0.12", - "phpunit/phpunit": "^7.5 || ^8.5 || ^9.2", - "scrutinizer/ocular": "^1.5", - "symfony/finder": "^4.2" + "michelf/php-markdown": "^1.4", + "nyholm/psr7": "^1.5", + "phpstan/phpstan": "^1.8.2", + "phpunit/phpunit": "^9.5.21", + "scrutinizer/ocular": "^1.8.1", + "symfony/finder": "^5.3 | ^6.0", + "symfony/yaml": "^2.3 | ^3.0 | ^4.0 | ^5.0 | ^6.0", + "unleashedtech/php-coding-standard": "^3.1.1", + "vimeo/psalm": "^4.24.0" + }, + "suggest": { + "symfony/yaml": "v2.3+ required if using the Front Matter extension" }, - "bin": [ - "bin/commonmark" - ], "type": "library", + "extra": { + "branch-alias": { + "dev-main": "2.4-dev" + } + }, "autoload": { "psr-4": { "League\\CommonMark\\": "src" @@ -888,7 +1126,7 @@ "role": "Lead Developer" } ], - "description": "Highly-extensible PHP Markdown parser which fully supports the CommonMark spec and Github-Flavored Markdown (GFM)", + "description": "Highly-extensible PHP Markdown parser which fully supports the CommonMark spec and GitHub-Flavored Markdown (GFM)", "homepage": "https://commonmark.thephpleague.com", "keywords": [ "commonmark", @@ -902,15 +1140,12 @@ ], "support": { "docs": "https://commonmark.thephpleague.com/", + "forum": "https://github.com/thephpleague/commonmark/discussions", "issues": "https://github.com/thephpleague/commonmark/issues", "rss": "https://github.com/thephpleague/commonmark/releases.atom", "source": "https://github.com/thephpleague/commonmark" }, "funding": [ - { - "url": "https://enjoy.gitstore.app/repositories/thephpleague/commonmark", - "type": "custom" - }, { "url": "https://www.colinodell.com/sponsor", "type": "custom" @@ -923,29 +1158,107 @@ "url": "https://github.com/colinodell", "type": "github" }, - { - "url": "https://www.patreon.com/colinodell", - "type": "patreon" - }, { "url": "https://tidelift.com/funding/github/packagist/league/commonmark", "type": "tidelift" } ], - "time": "2021-05-12T11:39:41+00:00" + "time": "2022-07-29T10:59:45+00:00" + }, + { + "name": "league/config", + "version": "v1.1.1", + "source": { + "type": "git", + "url": "https://github.com/thephpleague/config.git", + "reference": "a9d39eeeb6cc49d10a6e6c36f22c4c1f4a767f3e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/thephpleague/config/zipball/a9d39eeeb6cc49d10a6e6c36f22c4c1f4a767f3e", + "reference": "a9d39eeeb6cc49d10a6e6c36f22c4c1f4a767f3e", + "shasum": "" + }, + "require": { + "dflydev/dot-access-data": "^3.0.1", + "nette/schema": "^1.2", + "php": "^7.4 || ^8.0" + }, + "require-dev": { + "phpstan/phpstan": "^0.12.90", + "phpunit/phpunit": "^9.5.5", + "scrutinizer/ocular": "^1.8.1", + "unleashedtech/php-coding-standard": "^3.1", + "vimeo/psalm": "^4.7.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.2-dev" + } + }, + "autoload": { + "psr-4": { + "League\\Config\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Colin O'Dell", + "email": "colinodell@gmail.com", + "homepage": "https://www.colinodell.com", + "role": "Lead Developer" + } + ], + "description": "Define configuration arrays with strict schemas and access values with dot notation", + "homepage": "https://config.thephpleague.com", + "keywords": [ + "array", + "config", + "configuration", + "dot", + "dot-access", + "nested", + "schema" + ], + "support": { + "docs": "https://config.thephpleague.com/", + "issues": "https://github.com/thephpleague/config/issues", + "rss": "https://github.com/thephpleague/config/releases.atom", + "source": "https://github.com/thephpleague/config" + }, + "funding": [ + { + "url": "https://www.colinodell.com/sponsor", + "type": "custom" + }, + { + "url": "https://www.paypal.me/colinpodell/10.00", + "type": "custom" + }, + { + "url": "https://github.com/colinodell", + "type": "github" + } + ], + "time": "2021-08-14T12:15:32+00:00" }, { "name": "league/flysystem", - "version": "1.1.3", + "version": "1.1.9", "source": { "type": "git", "url": "https://github.com/thephpleague/flysystem.git", - "reference": "9be3b16c877d477357c015cec057548cf9b2a14a" + "reference": "094defdb4a7001845300334e7c1ee2335925ef99" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/9be3b16c877d477357c015cec057548cf9b2a14a", - "reference": "9be3b16c877d477357c015cec057548cf9b2a14a", + "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/094defdb4a7001845300334e7c1ee2335925ef99", + "reference": "094defdb4a7001845300334e7c1ee2335925ef99", "shasum": "" }, "require": { @@ -961,7 +1274,6 @@ "phpunit/phpunit": "^8.5.8" }, "suggest": { - "ext-fileinfo": "Required for MimeType", "ext-ftp": "Allows you to use FTP server storage", "ext-openssl": "Allows you to use FTPS server storage", "league/flysystem-aws-s3-v2": "Allows you to use S3 storage with AWS SDK v2", @@ -1019,7 +1331,7 @@ ], "support": { "issues": "https://github.com/thephpleague/flysystem/issues", - "source": "https://github.com/thephpleague/flysystem/tree/1.x" + "source": "https://github.com/thephpleague/flysystem/tree/1.1.9" }, "funding": [ { @@ -1027,20 +1339,20 @@ "type": "other" } ], - "time": "2020-08-23T07:39:11+00:00" + "time": "2021-12-09T09:40:50+00:00" }, { "name": "league/mime-type-detection", - "version": "1.7.0", + "version": "1.11.0", "source": { "type": "git", "url": "https://github.com/thephpleague/mime-type-detection.git", - "reference": "3b9dff8aaf7323590c1d2e443db701eb1f9aa0d3" + "reference": "ff6248ea87a9f116e78edd6002e39e5128a0d4dd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/mime-type-detection/zipball/3b9dff8aaf7323590c1d2e443db701eb1f9aa0d3", - "reference": "3b9dff8aaf7323590c1d2e443db701eb1f9aa0d3", + "url": "https://api.github.com/repos/thephpleague/mime-type-detection/zipball/ff6248ea87a9f116e78edd6002e39e5128a0d4dd", + "reference": "ff6248ea87a9f116e78edd6002e39e5128a0d4dd", "shasum": "" }, "require": { @@ -1048,7 +1360,7 @@ "php": "^7.2 || ^8.0" }, "require-dev": { - "friendsofphp/php-cs-fixer": "^2.18", + "friendsofphp/php-cs-fixer": "^3.2", "phpstan/phpstan": "^0.12.68", "phpunit/phpunit": "^8.5.8 || ^9.3" }, @@ -1071,7 +1383,7 @@ "description": "Mime-type detection for Flysystem", "support": { "issues": "https://github.com/thephpleague/mime-type-detection/issues", - "source": "https://github.com/thephpleague/mime-type-detection/tree/1.7.0" + "source": "https://github.com/thephpleague/mime-type-detection/tree/1.11.0" }, "funding": [ { @@ -1083,56 +1395,62 @@ "type": "tidelift" } ], - "time": "2021-01-18T20:58:21+00:00" + "time": "2022-04-17T13:12:02+00:00" }, { "name": "monolog/monolog", - "version": "2.2.0", + "version": "2.8.0", "source": { "type": "git", "url": "https://github.com/Seldaek/monolog.git", - "reference": "1cb1cde8e8dd0f70cc0fe51354a59acad9302084" + "reference": "720488632c590286b88b80e62aa3d3d551ad4a50" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Seldaek/monolog/zipball/1cb1cde8e8dd0f70cc0fe51354a59acad9302084", - "reference": "1cb1cde8e8dd0f70cc0fe51354a59acad9302084", + "url": "https://api.github.com/repos/Seldaek/monolog/zipball/720488632c590286b88b80e62aa3d3d551ad4a50", + "reference": "720488632c590286b88b80e62aa3d3d551ad4a50", "shasum": "" }, "require": { "php": ">=7.2", - "psr/log": "^1.0.1" + "psr/log": "^1.0.1 || ^2.0 || ^3.0" }, "provide": { - "psr/log-implementation": "1.0.0" + "psr/log-implementation": "1.0.0 || 2.0.0 || 3.0.0" }, "require-dev": { "aws/aws-sdk-php": "^2.4.9 || ^3.0", "doctrine/couchdb": "~1.0@dev", - "elasticsearch/elasticsearch": "^7", + "elasticsearch/elasticsearch": "^7 || ^8", + "ext-json": "*", "graylog2/gelf-php": "^1.4.2", + "guzzlehttp/guzzle": "^7.4", + "guzzlehttp/psr7": "^2.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" + "php-amqplib/php-amqplib": "~2.4 || ^3", + "phpspec/prophecy": "^1.15", + "phpstan/phpstan": "^0.12.91", + "phpunit/phpunit": "^8.5.14", + "predis/predis": "^1.1 || ^2.0", + "rollbar/rollbar": "^1.3 || ^2 || ^3", + "ruflin/elastica": "^7", + "swiftmailer/swiftmailer": "^5.3|^6.0", + "symfony/mailer": "^5.4 || ^6", + "symfony/mime": "^5.4 || ^6" }, "suggest": { "aws/aws-sdk-php": "Allow sending log messages to AWS services like DynamoDB", "doctrine/couchdb": "Allow sending log messages to a CouchDB server", "elasticsearch/elasticsearch": "Allow sending log messages to an Elasticsearch server via official client", "ext-amqp": "Allow sending log messages to an AMQP server (1.0+ required)", + "ext-curl": "Required to send log messages using the IFTTTHandler, the LogglyHandler, the SendGridHandler, the SlackWebhookHandler or the TelegramBotHandler", "ext-mbstring": "Allow to work properly with unicode symbols", "ext-mongodb": "Allow sending log messages to a MongoDB server (via driver)", + "ext-openssl": "Required to send log messages using SSL", + "ext-sockets": "Allow sending log messages to a Syslog server (via UDP driver)", "graylog2/gelf-php": "Allow sending log messages to a GrayLog2 server", "mongodb/mongodb": "Allow sending log messages to a MongoDB server (via library)", "php-amqplib/php-amqplib": "Allow sending log messages to an AMQP server using php-amqplib", - "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" }, @@ -1167,7 +1485,7 @@ ], "support": { "issues": "https://github.com/Seldaek/monolog/issues", - "source": "https://github.com/Seldaek/monolog/tree/2.2.0" + "source": "https://github.com/Seldaek/monolog/tree/2.8.0" }, "funding": [ { @@ -1179,113 +1497,269 @@ "type": "tidelift" } ], - "time": "2020-12-14T13:15:25+00:00" + "time": "2022-07-24T11:55:47+00:00" }, { "name": "nesbot/carbon", - "version": "2.48.0", + "version": "2.62.1", "source": { "type": "git", "url": "https://github.com/briannesbitt/Carbon.git", - "reference": "d3c447f21072766cddec3522f9468a5849a76147" + "reference": "01bc4cdefe98ef58d1f9cb31bdbbddddf2a88f7a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/d3c447f21072766cddec3522f9468a5849a76147", - "reference": "d3c447f21072766cddec3522f9468a5849a76147", + "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/01bc4cdefe98ef58d1f9cb31bdbbddddf2a88f7a", + "reference": "01bc4cdefe98ef58d1f9cb31bdbbddddf2a88f7a", "shasum": "" }, "require": { "ext-json": "*", "php": "^7.1.8 || ^8.0", "symfony/polyfill-mbstring": "^1.0", - "symfony/translation": "^3.4 || ^4.0 || ^5.0" + "symfony/polyfill-php80": "^1.16", + "symfony/translation": "^3.4 || ^4.0 || ^5.0 || ^6.0" }, "require-dev": { + "doctrine/dbal": "^2.0 || ^3.0", "doctrine/orm": "^2.7", - "friendsofphp/php-cs-fixer": "^2.14 || ^3.0", + "friendsofphp/php-cs-fixer": "^3.0", "kylekatarnls/multi-tester": "^2.0", + "ondrejmirtes/better-reflection": "*", "phpmd/phpmd": "^2.9", "phpstan/extension-installer": "^1.0", - "phpstan/phpstan": "^0.12.54", - "phpunit/phpunit": "^7.5.20 || ^8.5.14", + "phpstan/phpstan": "^0.12.99 || ^1.7.14", + "phpunit/php-file-iterator": "^2.0.5 || ^3.0.6", + "phpunit/phpunit": "^7.5.20 || ^8.5.26 || ^9.5.20", "squizlabs/php_codesniffer": "^3.4" }, - "bin": [ - "bin/carbon" - ], + "bin": [ + "bin/carbon" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-3.x": "3.x-dev", + "dev-master": "2.x-dev" + }, + "laravel": { + "providers": [ + "Carbon\\Laravel\\ServiceProvider" + ] + }, + "phpstan": { + "includes": [ + "extension.neon" + ] + } + }, + "autoload": { + "psr-4": { + "Carbon\\": "src/Carbon/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Brian Nesbitt", + "email": "brian@nesbot.com", + "homepage": "https://markido.com" + }, + { + "name": "kylekatarnls", + "homepage": "https://github.com/kylekatarnls" + } + ], + "description": "An API extension for DateTime that supports 281 different languages.", + "homepage": "https://carbon.nesbot.com", + "keywords": [ + "date", + "datetime", + "time" + ], + "support": { + "docs": "https://carbon.nesbot.com/docs", + "issues": "https://github.com/briannesbitt/Carbon/issues", + "source": "https://github.com/briannesbitt/Carbon" + }, + "funding": [ + { + "url": "https://github.com/sponsors/kylekatarnls", + "type": "github" + }, + { + "url": "https://opencollective.com/Carbon#sponsor", + "type": "opencollective" + }, + { + "url": "https://tidelift.com/subscription/pkg/packagist-nesbot-carbon?utm_source=packagist-nesbot-carbon&utm_medium=referral&utm_campaign=readme", + "type": "tidelift" + } + ], + "time": "2022-09-02T07:48:13+00:00" + }, + { + "name": "nette/schema", + "version": "v1.2.2", + "source": { + "type": "git", + "url": "https://github.com/nette/schema.git", + "reference": "9a39cef03a5b34c7de64f551538cbba05c2be5df" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nette/schema/zipball/9a39cef03a5b34c7de64f551538cbba05c2be5df", + "reference": "9a39cef03a5b34c7de64f551538cbba05c2be5df", + "shasum": "" + }, + "require": { + "nette/utils": "^2.5.7 || ^3.1.5 || ^4.0", + "php": ">=7.1 <8.2" + }, + "require-dev": { + "nette/tester": "^2.3 || ^2.4", + "phpstan/phpstan-nette": "^0.12", + "tracy/tracy": "^2.7" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.2-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause", + "GPL-2.0-only", + "GPL-3.0-only" + ], + "authors": [ + { + "name": "David Grudl", + "homepage": "https://davidgrudl.com" + }, + { + "name": "Nette Community", + "homepage": "https://nette.org/contributors" + } + ], + "description": "📐 Nette Schema: validating data structures against a given Schema.", + "homepage": "https://nette.org", + "keywords": [ + "config", + "nette" + ], + "support": { + "issues": "https://github.com/nette/schema/issues", + "source": "https://github.com/nette/schema/tree/v1.2.2" + }, + "time": "2021-10-15T11:40:02+00:00" + }, + { + "name": "nette/utils", + "version": "v3.2.8", + "source": { + "type": "git", + "url": "https://github.com/nette/utils.git", + "reference": "02a54c4c872b99e4ec05c4aec54b5a06eb0f6368" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nette/utils/zipball/02a54c4c872b99e4ec05c4aec54b5a06eb0f6368", + "reference": "02a54c4c872b99e4ec05c4aec54b5a06eb0f6368", + "shasum": "" + }, + "require": { + "php": ">=7.2 <8.3" + }, + "conflict": { + "nette/di": "<3.0.6" + }, + "require-dev": { + "nette/tester": "~2.0", + "phpstan/phpstan": "^1.0", + "tracy/tracy": "^2.3" + }, + "suggest": { + "ext-gd": "to use Image", + "ext-iconv": "to use Strings::webalize(), toAscii(), chr() and reverse()", + "ext-intl": "to use Strings::webalize(), toAscii(), normalize() and compare()", + "ext-json": "to use Nette\\Utils\\Json", + "ext-mbstring": "to use Strings::lower() etc...", + "ext-tokenizer": "to use Nette\\Utils\\Reflection::getUseStatements()", + "ext-xml": "to use Strings::length() etc. when mbstring is not available" + }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.x-dev", - "dev-3.x": "3.x-dev" - }, - "laravel": { - "providers": [ - "Carbon\\Laravel\\ServiceProvider" - ] - }, - "phpstan": { - "includes": [ - "extension.neon" - ] + "dev-master": "3.2-dev" } }, "autoload": { - "psr-4": { - "Carbon\\": "src/Carbon/" - } + "classmap": [ + "src/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause", + "GPL-2.0-only", + "GPL-3.0-only" ], "authors": [ { - "name": "Brian Nesbitt", - "email": "brian@nesbot.com", - "homepage": "http://nesbot.com" + "name": "David Grudl", + "homepage": "https://davidgrudl.com" }, { - "name": "kylekatarnls", - "homepage": "http://github.com/kylekatarnls" + "name": "Nette Community", + "homepage": "https://nette.org/contributors" } ], - "description": "An API extension for DateTime that supports 281 different languages.", - "homepage": "http://carbon.nesbot.com", + "description": "🛠 Nette Utils: lightweight utilities for string & array manipulation, image handling, safe JSON encoding/decoding, validation, slug or strong password generating etc.", + "homepage": "https://nette.org", "keywords": [ - "date", + "array", + "core", "datetime", - "time" + "images", + "json", + "nette", + "paginator", + "password", + "slugify", + "string", + "unicode", + "utf-8", + "utility", + "validation" ], "support": { - "issues": "https://github.com/briannesbitt/Carbon/issues", - "source": "https://github.com/briannesbitt/Carbon" + "issues": "https://github.com/nette/utils/issues", + "source": "https://github.com/nette/utils/tree/v3.2.8" }, - "funding": [ - { - "url": "https://opencollective.com/Carbon", - "type": "open_collective" - }, - { - "url": "https://tidelift.com/funding/github/packagist/nesbot/carbon", - "type": "tidelift" - } - ], - "time": "2021-05-07T10:08:30+00:00" + "time": "2022-09-12T23:36:20+00:00" }, { "name": "opis/closure", - "version": "3.6.2", + "version": "3.6.3", "source": { "type": "git", "url": "https://github.com/opis/closure.git", - "reference": "06e2ebd25f2869e54a306dda991f7db58066f7f6" + "reference": "3d81e4309d2a927abbe66df935f4bb60082805ad" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/opis/closure/zipball/06e2ebd25f2869e54a306dda991f7db58066f7f6", - "reference": "06e2ebd25f2869e54a306dda991f7db58066f7f6", + "url": "https://api.github.com/repos/opis/closure/zipball/3d81e4309d2a927abbe66df935f4bb60082805ad", + "reference": "3d81e4309d2a927abbe66df935f4bb60082805ad", "shasum": "" }, "require": { @@ -1302,12 +1776,12 @@ } }, "autoload": { - "psr-4": { - "Opis\\Closure\\": "src/" - }, "files": [ "functions.php" - ] + ], + "psr-4": { + "Opis\\Closure\\": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -1335,35 +1809,39 @@ ], "support": { "issues": "https://github.com/opis/closure/issues", - "source": "https://github.com/opis/closure/tree/3.6.2" + "source": "https://github.com/opis/closure/tree/3.6.3" }, - "time": "2021-04-09T13:42:10+00:00" + "time": "2022-01-27T09:35:39+00:00" }, { "name": "phpoption/phpoption", - "version": "1.7.5", + "version": "1.9.0", "source": { "type": "git", "url": "https://github.com/schmittjoh/php-option.git", - "reference": "994ecccd8f3283ecf5ac33254543eb0ac946d525" + "reference": "dc5ff11e274a90cc1c743f66c9ad700ce50db9ab" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/schmittjoh/php-option/zipball/994ecccd8f3283ecf5ac33254543eb0ac946d525", - "reference": "994ecccd8f3283ecf5ac33254543eb0ac946d525", + "url": "https://api.github.com/repos/schmittjoh/php-option/zipball/dc5ff11e274a90cc1c743f66c9ad700ce50db9ab", + "reference": "dc5ff11e274a90cc1c743f66c9ad700ce50db9ab", "shasum": "" }, "require": { - "php": "^5.5.9 || ^7.0 || ^8.0" + "php": "^7.2.5 || ^8.0" }, "require-dev": { - "bamarni/composer-bin-plugin": "^1.4.1", - "phpunit/phpunit": "^4.8.35 || ^5.7.27 || ^6.5.6 || ^7.0 || ^8.0 || ^9.0" + "bamarni/composer-bin-plugin": "^1.8", + "phpunit/phpunit": "^8.5.28 || ^9.5.21" }, "type": "library", "extra": { + "bamarni-bin": { + "bin-links": true, + "forward-command": true + }, "branch-alias": { - "dev-master": "1.7-dev" + "dev-master": "1.9-dev" } }, "autoload": { @@ -1378,11 +1856,13 @@ "authors": [ { "name": "Johannes M. Schmitt", - "email": "schmittjoh@gmail.com" + "email": "schmittjoh@gmail.com", + "homepage": "https://github.com/schmittjoh" }, { "name": "Graham Campbell", - "email": "graham@alt-three.com" + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" } ], "description": "Option Type for PHP", @@ -1394,7 +1874,7 @@ ], "support": { "issues": "https://github.com/schmittjoh/php-option/issues", - "source": "https://github.com/schmittjoh/php-option/tree/1.7.5" + "source": "https://github.com/schmittjoh/php-option/tree/1.9.0" }, "funding": [ { @@ -1406,7 +1886,7 @@ "type": "tidelift" } ], - "time": "2020-07-20T17:29:33+00:00" + "time": "2022-07-30T15:51:26+00:00" }, { "name": "psr/container", @@ -1558,6 +2038,61 @@ }, "time": "2020-06-29T06:28:15+00:00" }, + { + "name": "psr/http-factory", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/php-fig/http-factory.git", + "reference": "12ac7fcd07e5b077433f5f2bee95b3a771bf61be" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/http-factory/zipball/12ac7fcd07e5b077433f5f2bee95b3a771bf61be", + "reference": "12ac7fcd07e5b077433f5f2bee95b3a771bf61be", + "shasum": "" + }, + "require": { + "php": ">=7.0.0", + "psr/http-message": "^1.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Http\\Message\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common interfaces for PSR-7 HTTP message factories", + "keywords": [ + "factory", + "http", + "message", + "psr", + "psr-17", + "psr-7", + "request", + "response" + ], + "support": { + "source": "https://github.com/php-fig/http-factory/tree/master" + }, + "time": "2019-04-30T12:38:16+00:00" + }, { "name": "psr/http-message", "version": "1.0.1", @@ -1613,30 +2148,30 @@ }, { "name": "psr/log", - "version": "1.1.4", + "version": "2.0.0", "source": { "type": "git", "url": "https://github.com/php-fig/log.git", - "reference": "d49695b909c3b7628b6289db5479a1c204601f11" + "reference": "ef29f6d262798707a9edd554e2b82517ef3a9376" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/log/zipball/d49695b909c3b7628b6289db5479a1c204601f11", - "reference": "d49695b909c3b7628b6289db5479a1c204601f11", + "url": "https://api.github.com/repos/php-fig/log/zipball/ef29f6d262798707a9edd554e2b82517ef3a9376", + "reference": "ef29f6d262798707a9edd554e2b82517ef3a9376", "shasum": "" }, "require": { - "php": ">=5.3.0" + "php": ">=8.0.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.1.x-dev" + "dev-master": "2.0.x-dev" } }, "autoload": { "psr-4": { - "Psr\\Log\\": "Psr/Log/" + "Psr\\Log\\": "src" } }, "notification-url": "https://packagist.org/downloads/", @@ -1657,9 +2192,9 @@ "psr-3" ], "support": { - "source": "https://github.com/php-fig/log/tree/1.1.4" + "source": "https://github.com/php-fig/log/tree/2.0.0" }, - "time": "2021-05-03T11:20:27+00:00" + "time": "2021-07-14T16:41:46+00:00" }, { "name": "psr/simple-cache", @@ -1758,20 +2293,21 @@ }, { "name": "ramsey/collection", - "version": "1.1.3", + "version": "1.2.2", "source": { "type": "git", "url": "https://github.com/ramsey/collection.git", - "reference": "28a5c4ab2f5111db6a60b2b4ec84057e0f43b9c1" + "reference": "cccc74ee5e328031b15640b51056ee8d3bb66c0a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ramsey/collection/zipball/28a5c4ab2f5111db6a60b2b4ec84057e0f43b9c1", - "reference": "28a5c4ab2f5111db6a60b2b4ec84057e0f43b9c1", + "url": "https://api.github.com/repos/ramsey/collection/zipball/cccc74ee5e328031b15640b51056ee8d3bb66c0a", + "reference": "cccc74ee5e328031b15640b51056ee8d3bb66c0a", "shasum": "" }, "require": { - "php": "^7.2 || ^8" + "php": "^7.3 || ^8", + "symfony/polyfill-php81": "^1.23" }, "require-dev": { "captainhook/captainhook": "^5.3", @@ -1781,6 +2317,7 @@ "hamcrest/hamcrest-php": "^2", "jangregor/phpstan-prophecy": "^0.8", "mockery/mockery": "^1.3", + "phpspec/prophecy-phpunit": "^2.0", "phpstan/extension-installer": "^1", "phpstan/phpstan": "^0.12.32", "phpstan/phpstan-mockery": "^0.12.5", @@ -1808,7 +2345,7 @@ "homepage": "https://benramsey.com" } ], - "description": "A PHP 7.2+ library for representing and manipulating collections.", + "description": "A PHP library for representing and manipulating collections.", "keywords": [ "array", "collection", @@ -1819,7 +2356,7 @@ ], "support": { "issues": "https://github.com/ramsey/collection/issues", - "source": "https://github.com/ramsey/collection/tree/1.1.3" + "source": "https://github.com/ramsey/collection/tree/1.2.2" }, "funding": [ { @@ -1831,53 +2368,53 @@ "type": "tidelift" } ], - "time": "2021-01-21T17:40:04+00:00" + "time": "2021-10-10T03:01:02+00:00" }, { "name": "ramsey/uuid", - "version": "4.1.1", + "version": "4.5.1", "source": { "type": "git", "url": "https://github.com/ramsey/uuid.git", - "reference": "cd4032040a750077205918c86049aa0f43d22947" + "reference": "a161a26d917604dc6d3aa25100fddf2556e9f35d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ramsey/uuid/zipball/cd4032040a750077205918c86049aa0f43d22947", - "reference": "cd4032040a750077205918c86049aa0f43d22947", + "url": "https://api.github.com/repos/ramsey/uuid/zipball/a161a26d917604dc6d3aa25100fddf2556e9f35d", + "reference": "a161a26d917604dc6d3aa25100fddf2556e9f35d", "shasum": "" }, "require": { - "brick/math": "^0.8 || ^0.9", + "brick/math": "^0.8.8 || ^0.9 || ^0.10", + "ext-ctype": "*", "ext-json": "*", - "php": "^7.2 || ^8", - "ramsey/collection": "^1.0", - "symfony/polyfill-ctype": "^1.8" + "php": "^8.0", + "ramsey/collection": "^1.0" }, "replace": { "rhumsaa/uuid": "self.version" }, "require-dev": { - "codeception/aspect-mock": "^3", - "dealerdirect/phpcodesniffer-composer-installer": "^0.6.2 || ^0.7.0", + "captainhook/captainhook": "^5.10", + "captainhook/plugin-composer": "^5.3", + "dealerdirect/phpcodesniffer-composer-installer": "^0.7.0", "doctrine/annotations": "^1.8", - "goaop/framework": "^2", + "ergebnis/composer-normalize": "^2.15", "mockery/mockery": "^1.3", - "moontoast/math": "^1.1", "paragonie/random-lib": "^2", + "php-mock/php-mock": "^2.2", "php-mock/php-mock-mockery": "^1.3", - "php-mock/php-mock-phpunit": "^2.5", "php-parallel-lint/php-parallel-lint": "^1.1", - "phpbench/phpbench": "^0.17.1", - "phpstan/extension-installer": "^1.0", - "phpstan/phpstan": "^0.12", - "phpstan/phpstan-mockery": "^0.12", - "phpstan/phpstan-phpunit": "^0.12", - "phpunit/phpunit": "^8.5", - "psy/psysh": "^0.10.0", - "slevomat/coding-standard": "^6.0", + "phpbench/phpbench": "^1.0", + "phpstan/extension-installer": "^1.1", + "phpstan/phpstan": "^1.8", + "phpstan/phpstan-mockery": "^1.1", + "phpstan/phpstan-phpunit": "^1.1", + "phpunit/phpunit": "^8.5 || ^9", + "ramsey/composer-repl": "^1.4", + "slevomat/coding-standard": "^8.4", "squizlabs/php_codesniffer": "^3.5", - "vimeo/psalm": "3.9.4" + "vimeo/psalm": "^4.9" }, "suggest": { "ext-bcmath": "Enables faster math with arbitrary-precision integers using BCMath.", @@ -1889,24 +2426,23 @@ }, "type": "library", "extra": { - "branch-alias": { - "dev-master": "4.x-dev" + "captainhook": { + "force-install": true } }, "autoload": { - "psr-4": { - "Ramsey\\Uuid\\": "src/" - }, "files": [ "src/functions.php" - ] + ], + "psr-4": { + "Ramsey\\Uuid\\": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], "description": "A PHP library for generating and working with universally unique identifiers (UUIDs).", - "homepage": "https://github.com/ramsey/uuid", "keywords": [ "guid", "identifier", @@ -1914,29 +2450,32 @@ ], "support": { "issues": "https://github.com/ramsey/uuid/issues", - "rss": "https://github.com/ramsey/uuid/releases.atom", - "source": "https://github.com/ramsey/uuid" + "source": "https://github.com/ramsey/uuid/tree/4.5.1" }, "funding": [ { "url": "https://github.com/ramsey", "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/ramsey/uuid", + "type": "tidelift" } ], - "time": "2020-08-18T17:17:46+00:00" + "time": "2022-09-16T03:22:46+00:00" }, { "name": "swiftmailer/swiftmailer", - "version": "v6.2.7", + "version": "v6.3.0", "source": { "type": "git", "url": "https://github.com/swiftmailer/swiftmailer.git", - "reference": "15f7faf8508e04471f666633addacf54c0ab5933" + "reference": "8a5d5072dca8f48460fce2f4131fcc495eec654c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/swiftmailer/swiftmailer/zipball/15f7faf8508e04471f666633addacf54c0ab5933", - "reference": "15f7faf8508e04471f666633addacf54c0ab5933", + "url": "https://api.github.com/repos/swiftmailer/swiftmailer/zipball/8a5d5072dca8f48460fce2f4131fcc495eec654c", + "reference": "8a5d5072dca8f48460fce2f4131fcc495eec654c", "shasum": "" }, "require": { @@ -1948,7 +2487,7 @@ }, "require-dev": { "mockery/mockery": "^1.0", - "symfony/phpunit-bridge": "^4.4|^5.0" + "symfony/phpunit-bridge": "^4.4|^5.4" }, "suggest": { "ext-intl": "Needed to support internationalized email addresses" @@ -1986,7 +2525,7 @@ ], "support": { "issues": "https://github.com/swiftmailer/swiftmailer/issues", - "source": "https://github.com/swiftmailer/swiftmailer/tree/v6.2.7" + "source": "https://github.com/swiftmailer/swiftmailer/tree/v6.3.0" }, "funding": [ { @@ -1998,7 +2537,8 @@ "type": "tidelift" } ], - "time": "2021-03-09T12:30:35+00:00" + "abandoned": "symfony/mailer", + "time": "2021-10-18T15:26:12+00:00" }, { "name": "symfony/console", @@ -2101,20 +2641,20 @@ }, { "name": "symfony/css-selector", - "version": "v5.2.9", + "version": "v6.0.11", "source": { "type": "git", "url": "https://github.com/symfony/css-selector.git", - "reference": "5d5f97809015102116208b976eb2edb44b689560" + "reference": "ab2746acddc4f03a7234c8441822ac5d5c63efe9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/css-selector/zipball/5d5f97809015102116208b976eb2edb44b689560", - "reference": "5d5f97809015102116208b976eb2edb44b689560", + "url": "https://api.github.com/repos/symfony/css-selector/zipball/ab2746acddc4f03a7234c8441822ac5d5c63efe9", + "reference": "ab2746acddc4f03a7234c8441822ac5d5c63efe9", "shasum": "" }, "require": { - "php": ">=7.2.5" + "php": ">=8.0.2" }, "type": "library", "autoload": { @@ -2146,7 +2686,7 @@ "description": "Converts CSS selectors to XPath expressions", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/css-selector/tree/v5.2.9" + "source": "https://github.com/symfony/css-selector/tree/v6.0.11" }, "funding": [ { @@ -2162,29 +2702,29 @@ "type": "tidelift" } ], - "time": "2021-05-16T13:07:46+00:00" + "time": "2022-06-27T17:10:44+00:00" }, { "name": "symfony/deprecation-contracts", - "version": "v2.5.2", + "version": "v3.0.2", "source": { "type": "git", "url": "https://github.com/symfony/deprecation-contracts.git", - "reference": "e8b495ea28c1d97b5e0c121748d6f9b53d075c66" + "reference": "26954b3d62a6c5fd0ea8a2a00c0353a14978d05c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/e8b495ea28c1d97b5e0c121748d6f9b53d075c66", - "reference": "e8b495ea28c1d97b5e0c121748d6f9b53d075c66", + "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/26954b3d62a6c5fd0ea8a2a00c0353a14978d05c", + "reference": "26954b3d62a6c5fd0ea8a2a00c0353a14978d05c", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=8.0.2" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "2.5-dev" + "dev-main": "3.0-dev" }, "thanks": { "name": "symfony/contracts", @@ -2213,7 +2753,7 @@ "description": "A generic function and convention to trigger deprecation notices", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/deprecation-contracts/tree/v2.5.2" + "source": "https://github.com/symfony/deprecation-contracts/tree/v3.0.2" }, "funding": [ { @@ -2229,33 +2769,35 @@ "type": "tidelift" } ], - "time": "2022-01-02T09:53:40+00:00" + "time": "2022-01-02T09:55:41+00:00" }, { "name": "symfony/error-handler", - "version": "v5.2.8", + "version": "v5.4.11", "source": { "type": "git", "url": "https://github.com/symfony/error-handler.git", - "reference": "1416bc16317a8188aabde251afef7618bf4687ac" + "reference": "f75d17cb4769eb38cd5fccbda95cd80a054d35c8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/error-handler/zipball/1416bc16317a8188aabde251afef7618bf4687ac", - "reference": "1416bc16317a8188aabde251afef7618bf4687ac", + "url": "https://api.github.com/repos/symfony/error-handler/zipball/f75d17cb4769eb38cd5fccbda95cd80a054d35c8", + "reference": "f75d17cb4769eb38cd5fccbda95cd80a054d35c8", "shasum": "" }, "require": { "php": ">=7.2.5", - "psr/log": "^1.0", - "symfony/polyfill-php80": "^1.15", - "symfony/var-dumper": "^4.4|^5.0" + "psr/log": "^1|^2|^3", + "symfony/var-dumper": "^4.4|^5.0|^6.0" }, "require-dev": { - "symfony/deprecation-contracts": "^2.1", - "symfony/http-kernel": "^4.4|^5.0", - "symfony/serializer": "^4.4|^5.0" + "symfony/deprecation-contracts": "^2.1|^3", + "symfony/http-kernel": "^4.4|^5.0|^6.0", + "symfony/serializer": "^4.4|^5.0|^6.0" }, + "bin": [ + "Resources/bin/patch-type-declarations" + ], "type": "library", "autoload": { "psr-4": { @@ -2282,7 +2824,7 @@ "description": "Provides tools to manage errors and ease debugging PHP code", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/error-handler/tree/v5.2.8" + "source": "https://github.com/symfony/error-handler/tree/v5.4.11" }, "funding": [ { @@ -2298,44 +2840,42 @@ "type": "tidelift" } ], - "time": "2021-05-07T13:42:21+00:00" + "time": "2022-07-29T07:37:50+00:00" }, { "name": "symfony/event-dispatcher", - "version": "v5.2.4", + "version": "v6.0.9", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "d08d6ec121a425897951900ab692b612a61d6240" + "reference": "5c85b58422865d42c6eb46f7693339056db098a8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/d08d6ec121a425897951900ab692b612a61d6240", - "reference": "d08d6ec121a425897951900ab692b612a61d6240", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/5c85b58422865d42c6eb46f7693339056db098a8", + "reference": "5c85b58422865d42c6eb46f7693339056db098a8", "shasum": "" }, "require": { - "php": ">=7.2.5", - "symfony/deprecation-contracts": "^2.1", - "symfony/event-dispatcher-contracts": "^2", - "symfony/polyfill-php80": "^1.15" + "php": ">=8.0.2", + "symfony/event-dispatcher-contracts": "^2|^3" }, "conflict": { - "symfony/dependency-injection": "<4.4" + "symfony/dependency-injection": "<5.4" }, "provide": { "psr/event-dispatcher-implementation": "1.0", - "symfony/event-dispatcher-implementation": "2.0" + "symfony/event-dispatcher-implementation": "2.0|3.0" }, "require-dev": { - "psr/log": "~1.0", - "symfony/config": "^4.4|^5.0", - "symfony/dependency-injection": "^4.4|^5.0", - "symfony/error-handler": "^4.4|^5.0", - "symfony/expression-language": "^4.4|^5.0", - "symfony/http-foundation": "^4.4|^5.0", - "symfony/service-contracts": "^1.1|^2", - "symfony/stopwatch": "^4.4|^5.0" + "psr/log": "^1|^2|^3", + "symfony/config": "^5.4|^6.0", + "symfony/dependency-injection": "^5.4|^6.0", + "symfony/error-handler": "^5.4|^6.0", + "symfony/expression-language": "^5.4|^6.0", + "symfony/http-foundation": "^5.4|^6.0", + "symfony/service-contracts": "^1.1|^2|^3", + "symfony/stopwatch": "^5.4|^6.0" }, "suggest": { "symfony/dependency-injection": "", @@ -2367,147 +2907,7 @@ "description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/event-dispatcher/tree/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-18T17:12:37+00:00" - }, - { - "name": "symfony/event-dispatcher-contracts", - "version": "v2.4.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/event-dispatcher-contracts.git", - "reference": "69fee1ad2332a7cbab3aca13591953da9cdb7a11" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/69fee1ad2332a7cbab3aca13591953da9cdb7a11", - "reference": "69fee1ad2332a7cbab3aca13591953da9cdb7a11", - "shasum": "" - }, - "require": { - "php": ">=7.2.5", - "psr/event-dispatcher": "^1" - }, - "suggest": { - "symfony/event-dispatcher-implementation": "" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "2.4-dev" - }, - "thanks": { - "name": "symfony/contracts", - "url": "https://github.com/symfony/contracts" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Contracts\\EventDispatcher\\": "" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Generic abstractions related to dispatching event", - "homepage": "https://symfony.com", - "keywords": [ - "abstractions", - "contracts", - "decoupling", - "interfaces", - "interoperability", - "standards" - ], - "support": { - "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v2.4.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2021-03-23T23:28:01+00:00" - }, - { - "name": "symfony/finder", - "version": "v5.2.9", - "source": { - "type": "git", - "url": "https://github.com/symfony/finder.git", - "reference": "ccccb9d48ca42757dd12f2ca4bf857a4e217d90d" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/ccccb9d48ca42757dd12f2ca4bf857a4e217d90d", - "reference": "ccccb9d48ca42757dd12f2ca4bf857a4e217d90d", - "shasum": "" - }, - "require": { - "php": ">=7.2.5" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\Finder\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Finds files and directories via an intuitive fluent interface", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/finder/tree/v5.2.9" + "source": "https://github.com/symfony/event-dispatcher/tree/v6.0.9" }, "funding": [ { @@ -2523,32 +2923,33 @@ "type": "tidelift" } ], - "time": "2021-05-16T13:07:46+00:00" + "time": "2022-05-05T16:45:52+00:00" }, { - "name": "symfony/http-client-contracts", - "version": "v2.4.0", + "name": "symfony/event-dispatcher-contracts", + "version": "v3.0.2", "source": { "type": "git", - "url": "https://github.com/symfony/http-client-contracts.git", - "reference": "7e82f6084d7cae521a75ef2cb5c9457bbda785f4" + "url": "https://github.com/symfony/event-dispatcher-contracts.git", + "reference": "7bc61cc2db649b4637d331240c5346dcc7708051" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-client-contracts/zipball/7e82f6084d7cae521a75ef2cb5c9457bbda785f4", - "reference": "7e82f6084d7cae521a75ef2cb5c9457bbda785f4", + "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/7bc61cc2db649b4637d331240c5346dcc7708051", + "reference": "7bc61cc2db649b4637d331240c5346dcc7708051", "shasum": "" }, "require": { - "php": ">=7.2.5" + "php": ">=8.0.2", + "psr/event-dispatcher": "^1" }, "suggest": { - "symfony/http-client-implementation": "" + "symfony/event-dispatcher-implementation": "" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "2.4-dev" + "dev-main": "3.0-dev" }, "thanks": { "name": "symfony/contracts", @@ -2557,7 +2958,7 @@ }, "autoload": { "psr-4": { - "Symfony\\Contracts\\HttpClient\\": "" + "Symfony\\Contracts\\EventDispatcher\\": "" } }, "notification-url": "https://packagist.org/downloads/", @@ -2574,7 +2975,7 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Generic abstractions related to HTTP clients", + "description": "Generic abstractions related to dispatching event", "homepage": "https://symfony.com", "keywords": [ "abstractions", @@ -2585,7 +2986,70 @@ "standards" ], "support": { - "source": "https://github.com/symfony/http-client-contracts/tree/v2.4.0" + "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.0.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": "2022-01-02T09:55:41+00:00" + }, + { + "name": "symfony/finder", + "version": "v5.4.11", + "source": { + "type": "git", + "url": "https://github.com/symfony/finder.git", + "reference": "7872a66f57caffa2916a584db1aa7f12adc76f8c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/finder/zipball/7872a66f57caffa2916a584db1aa7f12adc76f8c", + "reference": "7872a66f57caffa2916a584db1aa7f12adc76f8c", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1|^3", + "symfony/polyfill-php80": "^1.16" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Finder\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Finds files and directories via an intuitive fluent interface", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/finder/tree/v5.4.11" }, "funding": [ { @@ -2601,33 +3065,36 @@ "type": "tidelift" } ], - "time": "2021-04-11T23:07:08+00:00" + "time": "2022-07-29T07:37:50+00:00" }, { "name": "symfony/http-foundation", - "version": "v5.2.8", + "version": "v5.4.12", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "e8fbbab7c4a71592985019477532629cb2e142dc" + "reference": "f4bfe9611b113b15d98a43da68ec9b5a00d56791" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/e8fbbab7c4a71592985019477532629cb2e142dc", - "reference": "e8fbbab7c4a71592985019477532629cb2e142dc", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/f4bfe9611b113b15d98a43da68ec9b5a00d56791", + "reference": "f4bfe9611b113b15d98a43da68ec9b5a00d56791", "shasum": "" }, "require": { "php": ">=7.2.5", - "symfony/deprecation-contracts": "^2.1", + "symfony/deprecation-contracts": "^2.1|^3", "symfony/polyfill-mbstring": "~1.1", - "symfony/polyfill-php80": "^1.15" + "symfony/polyfill-php80": "^1.16" }, "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" + "symfony/cache": "^4.4|^5.0|^6.0", + "symfony/dependency-injection": "^5.4|^6.0", + "symfony/expression-language": "^4.4|^5.0|^6.0", + "symfony/http-kernel": "^5.4.12|^6.0.12|^6.1.4", + "symfony/mime": "^4.4|^5.0|^6.0", + "symfony/rate-limiter": "^5.2|^6.0" }, "suggest": { "symfony/mime": "To use the file extension guesser" @@ -2658,7 +3125,7 @@ "description": "Defines an object-oriented layer for the HTTP specification", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-foundation/tree/v5.2.8" + "source": "https://github.com/symfony/http-foundation/tree/v5.4.12" }, "funding": [ { @@ -2674,40 +3141,39 @@ "type": "tidelift" } ], - "time": "2021-05-07T13:41:16+00:00" + "time": "2022-08-19T07:33:17+00:00" }, { "name": "symfony/http-kernel", - "version": "v5.2.9", + "version": "v5.4.12", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "eb540ef6870dbf33c92e372cfb869ebf9649e6cb" + "reference": "37f660fa3bcd78fe4893ce23ebe934618ec099be" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/eb540ef6870dbf33c92e372cfb869ebf9649e6cb", - "reference": "eb540ef6870dbf33c92e372cfb869ebf9649e6cb", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/37f660fa3bcd78fe4893ce23ebe934618ec099be", + "reference": "37f660fa3bcd78fe4893ce23ebe934618ec099be", "shasum": "" }, "require": { "php": ">=7.2.5", - "psr/log": "~1.0", - "symfony/deprecation-contracts": "^2.1", - "symfony/error-handler": "^4.4|^5.0", - "symfony/event-dispatcher": "^5.0", - "symfony/http-client-contracts": "^1.1|^2", - "symfony/http-foundation": "^4.4|^5.0", + "psr/log": "^1|^2", + "symfony/deprecation-contracts": "^2.1|^3", + "symfony/error-handler": "^4.4|^5.0|^6.0", + "symfony/event-dispatcher": "^5.0|^6.0", + "symfony/http-foundation": "^5.3.7|^6.0", "symfony/polyfill-ctype": "^1.8", "symfony/polyfill-php73": "^1.9", - "symfony/polyfill-php80": "^1.15" + "symfony/polyfill-php80": "^1.16" }, "conflict": { - "symfony/browser-kit": "<4.4", + "symfony/browser-kit": "<5.4", "symfony/cache": "<5.0", "symfony/config": "<5.0", "symfony/console": "<4.4", - "symfony/dependency-injection": "<5.1.8", + "symfony/dependency-injection": "<5.3", "symfony/doctrine-bridge": "<5.0", "symfony/form": "<5.0", "symfony/http-client": "<5.0", @@ -2719,23 +3185,24 @@ "twig/twig": "<2.13" }, "provide": { - "psr/log-implementation": "1.0" + "psr/log-implementation": "1.0|2.0" }, "require-dev": { "psr/cache": "^1.0|^2.0|^3.0", - "symfony/browser-kit": "^4.4|^5.0", - "symfony/config": "^5.0", - "symfony/console": "^4.4|^5.0", - "symfony/css-selector": "^4.4|^5.0", - "symfony/dependency-injection": "^5.1.8", - "symfony/dom-crawler": "^4.4|^5.0", - "symfony/expression-language": "^4.4|^5.0", - "symfony/finder": "^4.4|^5.0", - "symfony/process": "^4.4|^5.0", - "symfony/routing": "^4.4|^5.0", - "symfony/stopwatch": "^4.4|^5.0", - "symfony/translation": "^4.4|^5.0", - "symfony/translation-contracts": "^1.1|^2", + "symfony/browser-kit": "^5.4|^6.0", + "symfony/config": "^5.0|^6.0", + "symfony/console": "^4.4|^5.0|^6.0", + "symfony/css-selector": "^4.4|^5.0|^6.0", + "symfony/dependency-injection": "^5.3|^6.0", + "symfony/dom-crawler": "^4.4|^5.0|^6.0", + "symfony/expression-language": "^4.4|^5.0|^6.0", + "symfony/finder": "^4.4|^5.0|^6.0", + "symfony/http-client-contracts": "^1.1|^2|^3", + "symfony/process": "^4.4|^5.0|^6.0", + "symfony/routing": "^4.4|^5.0|^6.0", + "symfony/stopwatch": "^4.4|^5.0|^6.0", + "symfony/translation": "^4.4|^5.0|^6.0", + "symfony/translation-contracts": "^1.1|^2|^3", "twig/twig": "^2.13|^3.0.4" }, "suggest": { @@ -2770,7 +3237,7 @@ "description": "Provides a structured process for converting a Request into a Response", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-kernel/tree/v5.2.9" + "source": "https://github.com/symfony/http-kernel/tree/v5.4.12" }, "funding": [ { @@ -2786,28 +3253,28 @@ "type": "tidelift" } ], - "time": "2021-05-19T12:23:45+00:00" + "time": "2022-08-26T14:40:40+00:00" }, { "name": "symfony/mime", - "version": "v5.2.9", + "version": "v5.4.12", "source": { "type": "git", "url": "https://github.com/symfony/mime.git", - "reference": "64258e870f8cc75c3dae986201ea2df58c210b52" + "reference": "03876e9c5a36f5b45e7d9a381edda5421eff8a90" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mime/zipball/64258e870f8cc75c3dae986201ea2df58c210b52", - "reference": "64258e870f8cc75c3dae986201ea2df58c210b52", + "url": "https://api.github.com/repos/symfony/mime/zipball/03876e9c5a36f5b45e7d9a381edda5421eff8a90", + "reference": "03876e9c5a36f5b45e7d9a381edda5421eff8a90", "shasum": "" }, "require": { "php": ">=7.2.5", - "symfony/deprecation-contracts": "^2.1", + "symfony/deprecation-contracts": "^2.1|^3", "symfony/polyfill-intl-idn": "^1.10", "symfony/polyfill-mbstring": "^1.0", - "symfony/polyfill-php80": "^1.15" + "symfony/polyfill-php80": "^1.16" }, "conflict": { "egulias/email-validator": "~3.0.0", @@ -2818,10 +3285,10 @@ "require-dev": { "egulias/email-validator": "^2.1.10|^3.1", "phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0", - "symfony/dependency-injection": "^4.4|^5.0", - "symfony/property-access": "^4.4|^5.1", - "symfony/property-info": "^4.4|^5.1", - "symfony/serializer": "^5.2" + "symfony/dependency-injection": "^4.4|^5.0|^6.0", + "symfony/property-access": "^4.4|^5.1|^6.0", + "symfony/property-info": "^4.4|^5.1|^6.0", + "symfony/serializer": "^5.2|^6.0" }, "type": "library", "autoload": { @@ -2853,7 +3320,7 @@ "mime-type" ], "support": { - "source": "https://github.com/symfony/mime/tree/v5.2.9" + "source": "https://github.com/symfony/mime/tree/v5.4.12" }, "funding": [ { @@ -2869,7 +3336,7 @@ "type": "tidelift" } ], - "time": "2021-05-16T13:07:46+00:00" + "time": "2022-08-19T14:24:03+00:00" }, { "name": "symfony/polyfill-ctype", @@ -2955,28 +3422,31 @@ }, { "name": "symfony/polyfill-iconv", - "version": "v1.22.1", + "version": "v1.26.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-iconv.git", - "reference": "06fb361659649bcfd6a208a0f1fcaf4e827ad342" + "reference": "143f1881e655bebca1312722af8068de235ae5dc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-iconv/zipball/06fb361659649bcfd6a208a0f1fcaf4e827ad342", - "reference": "06fb361659649bcfd6a208a0f1fcaf4e827ad342", + "url": "https://api.github.com/repos/symfony/polyfill-iconv/zipball/143f1881e655bebca1312722af8068de235ae5dc", + "reference": "143f1881e655bebca1312722af8068de235ae5dc", "shasum": "" }, "require": { "php": ">=7.1" }, + "provide": { + "ext-iconv": "*" + }, "suggest": { "ext-iconv": "For best performance" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "1.22-dev" + "dev-main": "1.26-dev" }, "thanks": { "name": "symfony/polyfill", @@ -2984,12 +3454,12 @@ } }, "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Iconv\\": "" - }, "files": [ "bootstrap.php" - ] + ], + "psr-4": { + "Symfony\\Polyfill\\Iconv\\": "" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -3015,7 +3485,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-iconv/tree/v1.22.1" + "source": "https://github.com/symfony/polyfill-iconv/tree/v1.26.0" }, "funding": [ { @@ -3031,7 +3501,7 @@ "type": "tidelift" } ], - "time": "2021-01-22T09:19:47+00:00" + "time": "2022-05-24T11:49:31+00:00" }, { "name": "symfony/polyfill-intl-grapheme", @@ -3116,16 +3586,16 @@ }, { "name": "symfony/polyfill-intl-idn", - "version": "v1.22.1", + "version": "v1.26.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-idn.git", - "reference": "2d63434d922daf7da8dd863e7907e67ee3031483" + "reference": "59a8d271f00dd0e4c2e518104cc7963f655a1aa8" }, "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/59a8d271f00dd0e4c2e518104cc7963f655a1aa8", + "reference": "59a8d271f00dd0e4c2e518104cc7963f655a1aa8", "shasum": "" }, "require": { @@ -3139,7 +3609,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.22-dev" + "dev-main": "1.26-dev" }, "thanks": { "name": "symfony/polyfill", @@ -3147,12 +3617,12 @@ } }, "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Intl\\Idn\\": "" - }, "files": [ "bootstrap.php" - ] + ], + "psr-4": { + "Symfony\\Polyfill\\Intl\\Idn\\": "" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -3183,7 +3653,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.22.1" + "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.26.0" }, "funding": [ { @@ -3199,7 +3669,7 @@ "type": "tidelift" } ], - "time": "2021-01-22T09:19:47+00:00" + "time": "2022-05-24T11:49:31+00:00" }, { "name": "symfony/polyfill-intl-normalizer", @@ -3370,16 +3840,16 @@ }, { "name": "symfony/polyfill-php72", - "version": "v1.22.1", + "version": "v1.26.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php72.git", - "reference": "cc6e6f9b39fe8075b3dabfbaf5b5f645ae1340c9" + "reference": "bf44a9fd41feaac72b074de600314a93e2ae78e2" }, "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/bf44a9fd41feaac72b074de600314a93e2ae78e2", + "reference": "bf44a9fd41feaac72b074de600314a93e2ae78e2", "shasum": "" }, "require": { @@ -3388,7 +3858,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.22-dev" + "dev-main": "1.26-dev" }, "thanks": { "name": "symfony/polyfill", @@ -3396,12 +3866,12 @@ } }, "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Php72\\": "" - }, "files": [ "bootstrap.php" - ] + ], + "psr-4": { + "Symfony\\Polyfill\\Php72\\": "" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -3426,7 +3896,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php72/tree/v1.22.1" + "source": "https://github.com/symfony/polyfill-php72/tree/v1.26.0" }, "funding": [ { @@ -3442,7 +3912,7 @@ "type": "tidelift" } ], - "time": "2021-01-07T16:49:33+00:00" + "time": "2022-05-24T11:49:31+00:00" }, { "name": "symfony/polyfill-php73", @@ -3606,23 +4076,102 @@ ], "time": "2022-05-10T07:21:04+00:00" }, + { + "name": "symfony/polyfill-php81", + "version": "v1.26.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php81.git", + "reference": "13f6d1271c663dc5ae9fb843a8f16521db7687a1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/13f6d1271c663dc5ae9fb843a8f16521db7687a1", + "reference": "13f6d1271c663dc5ae9fb843a8f16521db7687a1", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.26-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Php81\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 8.1+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php81/tree/v1.26.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": "2022-05-24T11:49:31+00:00" + }, { "name": "symfony/process", - "version": "v5.2.7", + "version": "v5.4.11", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "98cb8eeb72e55d4196dd1e36f1f16e7b3a9a088e" + "reference": "6e75fe6874cbc7e4773d049616ab450eff537bf1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/98cb8eeb72e55d4196dd1e36f1f16e7b3a9a088e", - "reference": "98cb8eeb72e55d4196dd1e36f1f16e7b3a9a088e", + "url": "https://api.github.com/repos/symfony/process/zipball/6e75fe6874cbc7e4773d049616ab450eff537bf1", + "reference": "6e75fe6874cbc7e4773d049616ab450eff537bf1", "shasum": "" }, "require": { "php": ">=7.2.5", - "symfony/polyfill-php80": "^1.15" + "symfony/polyfill-php80": "^1.16" }, "type": "library", "autoload": { @@ -3650,7 +4199,7 @@ "description": "Executes commands in sub-processes", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/process/tree/v5.3.0-BETA1" + "source": "https://github.com/symfony/process/tree/v5.4.11" }, "funding": [ { @@ -3666,40 +4215,41 @@ "type": "tidelift" } ], - "time": "2021-04-08T10:27:02+00:00" + "time": "2022-06-27T16:58:25+00:00" }, { "name": "symfony/routing", - "version": "v5.2.9", + "version": "v5.4.11", "source": { "type": "git", "url": "https://github.com/symfony/routing.git", - "reference": "4a7b2bf5e1221be1902b6853743a9bb317f6925e" + "reference": "3e01ccd9b2a3a4167ba2b3c53612762300300226" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/4a7b2bf5e1221be1902b6853743a9bb317f6925e", - "reference": "4a7b2bf5e1221be1902b6853743a9bb317f6925e", + "url": "https://api.github.com/repos/symfony/routing/zipball/3e01ccd9b2a3a4167ba2b3c53612762300300226", + "reference": "3e01ccd9b2a3a4167ba2b3c53612762300300226", "shasum": "" }, "require": { "php": ">=7.2.5", - "symfony/deprecation-contracts": "^2.1", - "symfony/polyfill-php80": "^1.15" + "symfony/deprecation-contracts": "^2.1|^3", + "symfony/polyfill-php80": "^1.16" }, "conflict": { - "symfony/config": "<5.0", + "doctrine/annotations": "<1.12", + "symfony/config": "<5.3", "symfony/dependency-injection": "<4.4", "symfony/yaml": "<4.4" }, "require-dev": { - "doctrine/annotations": "^1.10.4", - "psr/log": "~1.0", - "symfony/config": "^5.0", - "symfony/dependency-injection": "^4.4|^5.0", - "symfony/expression-language": "^4.4|^5.0", - "symfony/http-foundation": "^4.4|^5.0", - "symfony/yaml": "^4.4|^5.0" + "doctrine/annotations": "^1.12", + "psr/log": "^1|^2|^3", + "symfony/config": "^5.3|^6.0", + "symfony/dependency-injection": "^4.4|^5.0|^6.0", + "symfony/expression-language": "^4.4|^5.0|^6.0", + "symfony/http-foundation": "^4.4|^5.0|^6.0", + "symfony/yaml": "^4.4|^5.0|^6.0" }, "suggest": { "symfony/config": "For using the all-in-one router or any loader", @@ -3739,7 +4289,7 @@ "url" ], "support": { - "source": "https://github.com/symfony/routing/tree/v5.2.9" + "source": "https://github.com/symfony/routing/tree/v5.4.11" }, "funding": [ { @@ -3755,7 +4305,7 @@ "type": "tidelift" } ], - "time": "2021-05-16T13:07:46+00:00" + "time": "2022-07-20T13:00:38+00:00" }, { "name": "symfony/service-contracts", @@ -3927,44 +4477,46 @@ }, { "name": "symfony/translation", - "version": "v5.2.9", + "version": "v6.0.12", "source": { "type": "git", "url": "https://github.com/symfony/translation.git", - "reference": "61af68dba333e2d376a325a29c2a3f2a605b4876" + "reference": "5e71973b4991e141271465dacf4bf9e719941424" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation/zipball/61af68dba333e2d376a325a29c2a3f2a605b4876", - "reference": "61af68dba333e2d376a325a29c2a3f2a605b4876", + "url": "https://api.github.com/repos/symfony/translation/zipball/5e71973b4991e141271465dacf4bf9e719941424", + "reference": "5e71973b4991e141271465dacf4bf9e719941424", "shasum": "" }, "require": { - "php": ">=7.2.5", + "php": ">=8.0.2", "symfony/polyfill-mbstring": "~1.0", - "symfony/polyfill-php80": "^1.15", - "symfony/translation-contracts": "^2.3" + "symfony/translation-contracts": "^2.3|^3.0" }, "conflict": { - "symfony/config": "<4.4", - "symfony/dependency-injection": "<5.0", - "symfony/http-kernel": "<5.0", - "symfony/twig-bundle": "<5.0", - "symfony/yaml": "<4.4" + "symfony/config": "<5.4", + "symfony/console": "<5.4", + "symfony/dependency-injection": "<5.4", + "symfony/http-kernel": "<5.4", + "symfony/twig-bundle": "<5.4", + "symfony/yaml": "<5.4" }, "provide": { - "symfony/translation-implementation": "2.3" + "symfony/translation-implementation": "2.3|3.0" }, "require-dev": { - "psr/log": "~1.0", - "symfony/config": "^4.4|^5.0", - "symfony/console": "^4.4|^5.0", - "symfony/dependency-injection": "^5.0", - "symfony/finder": "^4.4|^5.0", - "symfony/http-kernel": "^5.0", - "symfony/intl": "^4.4|^5.0", - "symfony/service-contracts": "^1.1.2|^2", - "symfony/yaml": "^4.4|^5.0" + "psr/log": "^1|^2|^3", + "symfony/config": "^5.4|^6.0", + "symfony/console": "^5.4|^6.0", + "symfony/dependency-injection": "^5.4|^6.0", + "symfony/finder": "^5.4|^6.0", + "symfony/http-client-contracts": "^1.1|^2.0|^3.0", + "symfony/http-kernel": "^5.4|^6.0", + "symfony/intl": "^5.4|^6.0", + "symfony/polyfill-intl-icu": "^1.21", + "symfony/service-contracts": "^1.1.2|^2|^3", + "symfony/yaml": "^5.4|^6.0" }, "suggest": { "psr/log-implementation": "To use logging capability in translator", @@ -4000,7 +4552,7 @@ "description": "Provides tools to internationalize your application", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/translation/tree/v5.2.9" + "source": "https://github.com/symfony/translation/tree/v6.0.12" }, "funding": [ { @@ -4016,24 +4568,24 @@ "type": "tidelift" } ], - "time": "2021-05-16T13:07:46+00:00" + "time": "2022-08-02T16:01:06+00:00" }, { "name": "symfony/translation-contracts", - "version": "v2.4.0", + "version": "v3.0.2", "source": { "type": "git", "url": "https://github.com/symfony/translation-contracts.git", - "reference": "95c812666f3e91db75385749fe219c5e494c7f95" + "reference": "acbfbb274e730e5a0236f619b6168d9dedb3e282" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/95c812666f3e91db75385749fe219c5e494c7f95", - "reference": "95c812666f3e91db75385749fe219c5e494c7f95", + "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/acbfbb274e730e5a0236f619b6168d9dedb3e282", + "reference": "acbfbb274e730e5a0236f619b6168d9dedb3e282", "shasum": "" }, "require": { - "php": ">=7.2.5" + "php": ">=8.0.2" }, "suggest": { "symfony/translation-implementation": "" @@ -4041,7 +4593,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "2.4-dev" + "dev-main": "3.0-dev" }, "thanks": { "name": "symfony/contracts", @@ -4078,7 +4630,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/translation-contracts/tree/v2.4.0" + "source": "https://github.com/symfony/translation-contracts/tree/v3.0.2" }, "funding": [ { @@ -4094,26 +4646,26 @@ "type": "tidelift" } ], - "time": "2021-03-23T23:28:01+00:00" + "time": "2022-06-27T17:10:44+00:00" }, { "name": "symfony/var-dumper", - "version": "v5.2.8", + "version": "v5.4.11", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "d693200a73fae179d27f8f1b16b4faf3e8569eba" + "reference": "b8f306d7b8ef34fb3db3305be97ba8e088fb4861" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/d693200a73fae179d27f8f1b16b4faf3e8569eba", - "reference": "d693200a73fae179d27f8f1b16b4faf3e8569eba", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/b8f306d7b8ef34fb3db3305be97ba8e088fb4861", + "reference": "b8f306d7b8ef34fb3db3305be97ba8e088fb4861", "shasum": "" }, "require": { "php": ">=7.2.5", "symfony/polyfill-mbstring": "~1.0", - "symfony/polyfill-php80": "^1.15" + "symfony/polyfill-php80": "^1.16" }, "conflict": { "phpunit/phpunit": "<5.4.3", @@ -4121,8 +4673,9 @@ }, "require-dev": { "ext-iconv": "*", - "symfony/console": "^4.4|^5.0", - "symfony/process": "^4.4|^5.0", + "symfony/console": "^4.4|^5.0|^6.0", + "symfony/process": "^4.4|^5.0|^6.0", + "symfony/uid": "^5.1|^6.0", "twig/twig": "^2.13|^3.0.4" }, "suggest": { @@ -4166,7 +4719,7 @@ "dump" ], "support": { - "source": "https://github.com/symfony/var-dumper/tree/v5.2.8" + "source": "https://github.com/symfony/var-dumper/tree/v5.4.11" }, "funding": [ { @@ -4182,30 +4735,30 @@ "type": "tidelift" } ], - "time": "2021-05-07T13:42:21+00:00" + "time": "2022-07-20T13:00:38+00:00" }, { "name": "tijsverkoyen/css-to-inline-styles", - "version": "2.2.3", + "version": "2.2.5", "source": { "type": "git", "url": "https://github.com/tijsverkoyen/CssToInlineStyles.git", - "reference": "b43b05cf43c1b6d849478965062b6ef73e223bb5" + "reference": "4348a3a06651827a27d989ad1d13efec6bb49b19" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/tijsverkoyen/CssToInlineStyles/zipball/b43b05cf43c1b6d849478965062b6ef73e223bb5", - "reference": "b43b05cf43c1b6d849478965062b6ef73e223bb5", + "url": "https://api.github.com/repos/tijsverkoyen/CssToInlineStyles/zipball/4348a3a06651827a27d989ad1d13efec6bb49b19", + "reference": "4348a3a06651827a27d989ad1d13efec6bb49b19", "shasum": "" }, "require": { "ext-dom": "*", "ext-libxml": "*", "php": "^5.5 || ^7.0 || ^8.0", - "symfony/css-selector": "^2.7 || ^3.0 || ^4.0 || ^5.0" + "symfony/css-selector": "^2.7 || ^3.0 || ^4.0 || ^5.0 || ^6.0" }, "require-dev": { - "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0 || ^7.5" + "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0 || ^7.5 || ^8.5.21 || ^9.5.10" }, "type": "library", "extra": { @@ -4233,37 +4786,37 @@ "homepage": "https://github.com/tijsverkoyen/CssToInlineStyles", "support": { "issues": "https://github.com/tijsverkoyen/CssToInlineStyles/issues", - "source": "https://github.com/tijsverkoyen/CssToInlineStyles/tree/2.2.3" + "source": "https://github.com/tijsverkoyen/CssToInlineStyles/tree/2.2.5" }, - "time": "2020-07-13T06:12:54+00:00" + "time": "2022-09-12T13:28:28+00:00" }, { "name": "vlucas/phpdotenv", - "version": "v5.3.0", + "version": "v5.4.1", "source": { "type": "git", "url": "https://github.com/vlucas/phpdotenv.git", - "reference": "b3eac5c7ac896e52deab4a99068e3f4ab12d9e56" + "reference": "264dce589e7ce37a7ba99cb901eed8249fbec92f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/b3eac5c7ac896e52deab4a99068e3f4ab12d9e56", - "reference": "b3eac5c7ac896e52deab4a99068e3f4ab12d9e56", + "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/264dce589e7ce37a7ba99cb901eed8249fbec92f", + "reference": "264dce589e7ce37a7ba99cb901eed8249fbec92f", "shasum": "" }, "require": { "ext-pcre": "*", - "graham-campbell/result-type": "^1.0.1", + "graham-campbell/result-type": "^1.0.2", "php": "^7.1.3 || ^8.0", - "phpoption/phpoption": "^1.7.4", - "symfony/polyfill-ctype": "^1.17", - "symfony/polyfill-mbstring": "^1.17", - "symfony/polyfill-php80": "^1.17" + "phpoption/phpoption": "^1.8", + "symfony/polyfill-ctype": "^1.23", + "symfony/polyfill-mbstring": "^1.23.1", + "symfony/polyfill-php80": "^1.23.1" }, "require-dev": { "bamarni/composer-bin-plugin": "^1.4.1", "ext-filter": "*", - "phpunit/phpunit": "^7.5.20 || ^8.5.14 || ^9.5.1" + "phpunit/phpunit": "^7.5.20 || ^8.5.21 || ^9.5.10" }, "suggest": { "ext-filter": "Required to use the boolean validator." @@ -4271,7 +4824,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "5.3-dev" + "dev-master": "5.4-dev" } }, "autoload": { @@ -4286,13 +4839,13 @@ "authors": [ { "name": "Graham Campbell", - "email": "graham@alt-three.com", - "homepage": "https://gjcampbell.co.uk/" + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" }, { "name": "Vance Lucas", "email": "vance@vancelucas.com", - "homepage": "https://vancelucas.com/" + "homepage": "https://github.com/vlucas" } ], "description": "Loads environment variables from `.env` to `getenv()`, `$_ENV` and `$_SERVER` automagically.", @@ -4303,7 +4856,7 @@ ], "support": { "issues": "https://github.com/vlucas/phpdotenv/issues", - "source": "https://github.com/vlucas/phpdotenv/tree/v5.3.0" + "source": "https://github.com/vlucas/phpdotenv/tree/v5.4.1" }, "funding": [ { @@ -4315,20 +4868,20 @@ "type": "tidelift" } ], - "time": "2021-01-20T15:23:13+00:00" + "time": "2021-12-12T23:22:04+00:00" }, { "name": "voku/portable-ascii", - "version": "1.5.6", + "version": "1.6.1", "source": { "type": "git", "url": "https://github.com/voku/portable-ascii.git", - "reference": "80953678b19901e5165c56752d087fc11526017c" + "reference": "87337c91b9dfacee02452244ee14ab3c43bc485a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/voku/portable-ascii/zipball/80953678b19901e5165c56752d087fc11526017c", - "reference": "80953678b19901e5165c56752d087fc11526017c", + "url": "https://api.github.com/repos/voku/portable-ascii/zipball/87337c91b9dfacee02452244ee14ab3c43bc485a", + "reference": "87337c91b9dfacee02452244ee14ab3c43bc485a", "shasum": "" }, "require": { @@ -4365,7 +4918,7 @@ ], "support": { "issues": "https://github.com/voku/portable-ascii/issues", - "source": "https://github.com/voku/portable-ascii/tree/1.5.6" + "source": "https://github.com/voku/portable-ascii/tree/1.6.1" }, "funding": [ { @@ -4389,7 +4942,7 @@ "type": "tidelift" } ], - "time": "2020-11-12T00:07:28+00:00" + "time": "2022-01-24T18:55:24+00:00" }, { "name": "webmozart/assert", @@ -4576,32 +5129,34 @@ }, { "name": "fakerphp/faker", - "version": "v1.14.1", + "version": "v1.20.0", "source": { "type": "git", "url": "https://github.com/FakerPHP/Faker.git", - "reference": "ed22aee8d17c7b396f74a58b1e7fefa4f90d5ef1" + "reference": "37f751c67a5372d4e26353bd9384bc03744ec77b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/FakerPHP/Faker/zipball/ed22aee8d17c7b396f74a58b1e7fefa4f90d5ef1", - "reference": "ed22aee8d17c7b396f74a58b1e7fefa4f90d5ef1", + "url": "https://api.github.com/repos/FakerPHP/Faker/zipball/37f751c67a5372d4e26353bd9384bc03744ec77b", + "reference": "37f751c67a5372d4e26353bd9384bc03744ec77b", "shasum": "" }, "require": { "php": "^7.1 || ^8.0", - "psr/container": "^1.0", - "symfony/deprecation-contracts": "^2.2" + "psr/container": "^1.0 || ^2.0", + "symfony/deprecation-contracts": "^2.2 || ^3.0" }, "conflict": { "fzaninotto/faker": "*" }, "require-dev": { "bamarni/composer-bin-plugin": "^1.4.1", + "doctrine/persistence": "^1.3 || ^2.0", "ext-intl": "*", "symfony/phpunit-bridge": "^4.4 || ^5.2" }, "suggest": { + "doctrine/orm": "Required to use Faker\\ORM\\Doctrine", "ext-curl": "Required by Faker\\Provider\\Image to download images.", "ext-dom": "Required by Faker\\Provider\\HtmlLorem for generating random HTML.", "ext-iconv": "Required by Faker\\Provider\\ru_RU\\Text::realText() for generating real Russian text.", @@ -4610,7 +5165,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "v1.15-dev" + "dev-main": "v1.20-dev" } }, "autoload": { @@ -4635,9 +5190,9 @@ ], "support": { "issues": "https://github.com/FakerPHP/Faker/issues", - "source": "https://github.com/FakerPHP/Faker/tree/v.1.14.1" + "source": "https://github.com/FakerPHP/Faker/tree/v1.20.0" }, - "time": "2021-03-30T06:27:33+00:00" + "time": "2022-07-20T13:12:54+00:00" }, { "name": "filp/whoops", @@ -4763,16 +5318,16 @@ }, { "name": "mockery/mockery", - "version": "1.4.3", + "version": "1.5.1", "source": { "type": "git", "url": "https://github.com/mockery/mockery.git", - "reference": "d1339f64479af1bee0e82a0413813fe5345a54ea" + "reference": "e92dcc83d5a51851baf5f5591d32cb2b16e3684e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/mockery/mockery/zipball/d1339f64479af1bee0e82a0413813fe5345a54ea", - "reference": "d1339f64479af1bee0e82a0413813fe5345a54ea", + "url": "https://api.github.com/repos/mockery/mockery/zipball/e92dcc83d5a51851baf5f5591d32cb2b16e3684e", + "reference": "e92dcc83d5a51851baf5f5591d32cb2b16e3684e", "shasum": "" }, "require": { @@ -4829,9 +5384,9 @@ ], "support": { "issues": "https://github.com/mockery/mockery/issues", - "source": "https://github.com/mockery/mockery/tree/1.4.3" + "source": "https://github.com/mockery/mockery/tree/1.5.1" }, - "time": "2021-02-24T09:51:49+00:00" + "time": "2022-09-07T15:32:08+00:00" }, { "name": "myclabs/deep-copy", @@ -5037,25 +5592,25 @@ }, { "name": "orchestra/testbench", - "version": "v6.17.1", + "version": "v6.25.0", "source": { "type": "git", "url": "https://github.com/orchestral/testbench.git", - "reference": "d6df638c569899443a1e4dc14a33490837201784" + "reference": "a65b90b78caed1fdface168ca02af34f3422e513" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/orchestral/testbench/zipball/d6df638c569899443a1e4dc14a33490837201784", - "reference": "d6df638c569899443a1e4dc14a33490837201784", + "url": "https://api.github.com/repos/orchestral/testbench/zipball/a65b90b78caed1fdface168ca02af34f3422e513", + "reference": "a65b90b78caed1fdface168ca02af34f3422e513", "shasum": "" }, "require": { - "laravel/framework": "^8.25", - "mockery/mockery": "^1.4.2", - "orchestra/testbench-core": "^6.21.3", + "laravel/framework": "^8.75", + "mockery/mockery": "^1.4.4", + "orchestra/testbench-core": "^6.29", "php": "^7.3 || ^8.0", - "phpunit/phpunit": "^8.4 || ^9.3.3", - "spatie/laravel-ray": "^1.17.1" + "phpunit/phpunit": "^8.5.21 || ^9.5.10", + "spatie/laravel-ray": "^1.26.2" }, "type": "library", "extra": { @@ -5086,7 +5641,7 @@ ], "support": { "issues": "https://github.com/orchestral/testbench/issues", - "source": "https://github.com/orchestral/testbench/tree/v6.17.1" + "source": "https://github.com/orchestral/testbench/tree/v6.25.0" }, "funding": [ { @@ -5098,20 +5653,20 @@ "type": "liberapay" } ], - "time": "2021-05-18T23:14:29+00:00" + "time": "2022-08-24T01:41:23+00:00" }, { "name": "orchestra/testbench-core", - "version": "v6.21.3", + "version": "v6.29.0", "source": { "type": "git", "url": "https://github.com/orchestral/testbench-core.git", - "reference": "e20e4ed5586993940679119c4eeaed3b21037ac5" + "reference": "8eeace7d979a7905e6fab77a30a3b05da99459c4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/orchestral/testbench-core/zipball/e20e4ed5586993940679119c4eeaed3b21037ac5", - "reference": "e20e4ed5586993940679119c4eeaed3b21037ac5", + "url": "https://api.github.com/repos/orchestral/testbench-core/zipball/8eeace7d979a7905e6fab77a30a3b05da99459c4", + "reference": "8eeace7d979a7905e6fab77a30a3b05da99459c4", "shasum": "" }, "require": { @@ -5121,20 +5676,20 @@ "vlucas/phpdotenv": "^5.1" }, "require-dev": { - "laravel/framework": "^8.26", + "laravel/framework": "^8.75", "laravel/laravel": "8.x-dev", - "mockery/mockery": "^1.4.2", + "mockery/mockery": "^1.4.4", "orchestra/canvas": "^6.1", - "phpunit/phpunit": "^8.4 || ^9.3.3 || ^10.0", + "phpunit/phpunit": "^8.5.21 || ^9.5.10", "spatie/laravel-ray": "^1.7.1", "symfony/process": "^5.0" }, "suggest": { - "laravel/framework": "Required for testing (^8.26).", - "mockery/mockery": "Allow using Mockery for testing (^1.4.2).", + "laravel/framework": "Required for testing (^8.75).", + "mockery/mockery": "Allow using Mockery for testing (^1.4.4).", "orchestra/testbench-browser-kit": "Allow using legacy Laravel BrowserKit for testing (^6.0).", "orchestra/testbench-dusk": "Allow using Laravel Dusk for testing (^6.0).", - "phpunit/phpunit": "Allow using PHPUnit for testing (^8.4|^9.3.3)." + "phpunit/phpunit": "Allow using PHPUnit for testing (^8.5.21|^9.5.10|^10.0)." }, "bin": [ "testbench" @@ -5146,6 +5701,9 @@ } }, "autoload": { + "files": [ + "src/helpers.php" + ], "psr-4": { "Orchestra\\Testbench\\": "src/" } @@ -5185,7 +5743,7 @@ "type": "liberapay" } ], - "time": "2021-05-18T09:19:25+00:00" + "time": "2022-08-24T00:15:20+00:00" }, { "name": "pestphp/pest", @@ -5302,29 +5860,29 @@ }, { "name": "pestphp/pest-plugin", - "version": "v1.0.0", + "version": "v1.1.0", "source": { "type": "git", "url": "https://github.com/pestphp/pest-plugin.git", - "reference": "fc8519de148699fe612d9c669be60554cd2db4fa" + "reference": "606c5f79c6a339b49838ffbee0151ca519efe378" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/pestphp/pest-plugin/zipball/fc8519de148699fe612d9c669be60554cd2db4fa", - "reference": "fc8519de148699fe612d9c669be60554cd2db4fa", + "url": "https://api.github.com/repos/pestphp/pest-plugin/zipball/606c5f79c6a339b49838ffbee0151ca519efe378", + "reference": "606c5f79c6a339b49838ffbee0151ca519efe378", "shasum": "" }, "require": { - "composer-plugin-api": "^1.1 || ^2.0", + "composer-plugin-api": "^1.1.0 || ^2.0.0", "php": "^7.3 || ^8.0" }, "conflict": { "pestphp/pest": "<1.0" }, "require-dev": { - "composer/composer": "^1.10.19", - "pestphp/pest": "^1.0", - "pestphp/pest-dev-tools": "dev-master" + "composer/composer": "^2.4.2", + "pestphp/pest": "^1.22.1", + "pestphp/pest-dev-tools": "^1.0.0" }, "type": "composer-plugin", "extra": { @@ -5354,7 +5912,7 @@ "unit" ], "support": { - "source": "https://github.com/pestphp/pest-plugin/tree/v1.0.0" + "source": "https://github.com/pestphp/pest-plugin/tree/v1.1.0" }, "funding": [ { @@ -5370,7 +5928,7 @@ "type": "patreon" } ], - "time": "2021-01-03T15:53:42+00:00" + "time": "2022-09-18T13:18:17+00:00" }, { "name": "phar-io/manifest", @@ -5899,6 +6457,59 @@ ], "time": "2022-08-30T07:42:16+00:00" }, + { + "name": "pimple/pimple", + "version": "v3.5.0", + "source": { + "type": "git", + "url": "https://github.com/silexphp/Pimple.git", + "reference": "a94b3a4db7fb774b3d78dad2315ddc07629e1bed" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/silexphp/Pimple/zipball/a94b3a4db7fb774b3d78dad2315ddc07629e1bed", + "reference": "a94b3a4db7fb774b3d78dad2315ddc07629e1bed", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "psr/container": "^1.1 || ^2.0" + }, + "require-dev": { + "symfony/phpunit-bridge": "^5.4@dev" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.4.x-dev" + } + }, + "autoload": { + "psr-0": { + "Pimple": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + } + ], + "description": "Pimple, a simple Dependency Injection Container", + "homepage": "https://pimple.symfony.com", + "keywords": [ + "container", + "dependency injection" + ], + "support": { + "source": "https://github.com/silexphp/Pimple/tree/v3.5.0" + }, + "time": "2021-10-28T11:13:42+00:00" + }, { "name": "sebastian/cli-parser", "version": "1.0.1", @@ -6068,16 +6679,16 @@ }, { "name": "sebastian/comparator", - "version": "4.0.6", + "version": "4.0.8", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/comparator.git", - "reference": "55f4261989e546dc112258c7a75935a81a7ce382" + "reference": "fa0f136dd2334583309d32b62544682ee972b51a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/55f4261989e546dc112258c7a75935a81a7ce382", - "reference": "55f4261989e546dc112258c7a75935a81a7ce382", + "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/fa0f136dd2334583309d32b62544682ee972b51a", + "reference": "fa0f136dd2334583309d32b62544682ee972b51a", "shasum": "" }, "require": { @@ -6130,7 +6741,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/comparator/issues", - "source": "https://github.com/sebastianbergmann/comparator/tree/4.0.6" + "source": "https://github.com/sebastianbergmann/comparator/tree/4.0.8" }, "funding": [ { @@ -6138,7 +6749,7 @@ "type": "github" } ], - "time": "2020-10-26T15:49:45+00:00" + "time": "2022-09-14T12:41:17+00:00" }, { "name": "sebastian/complexity", @@ -6328,16 +6939,16 @@ }, { "name": "sebastian/exporter", - "version": "4.0.4", + "version": "4.0.5", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/exporter.git", - "reference": "65e8b7db476c5dd267e65eea9cab77584d3cfff9" + "reference": "ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/65e8b7db476c5dd267e65eea9cab77584d3cfff9", - "reference": "65e8b7db476c5dd267e65eea9cab77584d3cfff9", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d", + "reference": "ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d", "shasum": "" }, "require": { @@ -6393,7 +7004,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/exporter/issues", - "source": "https://github.com/sebastianbergmann/exporter/tree/4.0.4" + "source": "https://github.com/sebastianbergmann/exporter/tree/4.0.5" }, "funding": [ { @@ -6401,7 +7012,7 @@ "type": "github" } ], - "time": "2021-11-11T14:18:36+00:00" + "time": "2022-09-14T06:03:37+00:00" }, { "name": "sebastian/global-state", @@ -6756,16 +7367,16 @@ }, { "name": "sebastian/type", - "version": "3.1.0", + "version": "3.2.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/type.git", - "reference": "fb44e1cc6e557418387ad815780360057e40753e" + "reference": "fb3fe09c5f0bae6bc27ef3ce933a1e0ed9464b6e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/fb44e1cc6e557418387ad815780360057e40753e", - "reference": "fb44e1cc6e557418387ad815780360057e40753e", + "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/fb3fe09c5f0bae6bc27ef3ce933a1e0ed9464b6e", + "reference": "fb3fe09c5f0bae6bc27ef3ce933a1e0ed9464b6e", "shasum": "" }, "require": { @@ -6777,7 +7388,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "3.1-dev" + "dev-master": "3.2-dev" } }, "autoload": { @@ -6800,7 +7411,7 @@ "homepage": "https://github.com/sebastianbergmann/type", "support": { "issues": "https://github.com/sebastianbergmann/type/issues", - "source": "https://github.com/sebastianbergmann/type/tree/3.1.0" + "source": "https://github.com/sebastianbergmann/type/tree/3.2.0" }, "funding": [ { @@ -6808,7 +7419,7 @@ "type": "github" } ], - "time": "2022-08-29T06:55:37+00:00" + "time": "2022-09-12T14:47:03+00:00" }, { "name": "sebastian/version", @@ -6865,16 +7476,16 @@ }, { "name": "spatie/backtrace", - "version": "1.2.0", + "version": "1.2.1", "source": { "type": "git", "url": "https://github.com/spatie/backtrace.git", - "reference": "9b4df807fb65aaa8006dcd7a7ccdef8fb4bb002e" + "reference": "4ee7d41aa5268107906ea8a4d9ceccde136dbd5b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/backtrace/zipball/9b4df807fb65aaa8006dcd7a7ccdef8fb4bb002e", - "reference": "9b4df807fb65aaa8006dcd7a7ccdef8fb4bb002e", + "url": "https://api.github.com/repos/spatie/backtrace/zipball/4ee7d41aa5268107906ea8a4d9ceccde136dbd5b", + "reference": "4ee7d41aa5268107906ea8a4d9ceccde136dbd5b", "shasum": "" }, "require": { @@ -6911,7 +7522,7 @@ ], "support": { "issues": "https://github.com/spatie/backtrace/issues", - "source": "https://github.com/spatie/backtrace/tree/1.2.0" + "source": "https://github.com/spatie/backtrace/tree/1.2.1" }, "funding": [ { @@ -6923,43 +7534,47 @@ "type": "other" } ], - "time": "2021-05-19T12:49:10+00:00" + "time": "2021-11-09T10:57:15+00:00" }, { "name": "spatie/laravel-ray", - "version": "1.17.4", + "version": "1.31.0", "source": { "type": "git", "url": "https://github.com/spatie/laravel-ray.git", - "reference": "e48be16da1952ffca868c77f509a767d3fc632bc" + "reference": "7394694afd89d05879e7a69c54abab73c1199acd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/laravel-ray/zipball/e48be16da1952ffca868c77f509a767d3fc632bc", - "reference": "e48be16da1952ffca868c77f509a767d3fc632bc", + "url": "https://api.github.com/repos/spatie/laravel-ray/zipball/7394694afd89d05879e7a69c54abab73c1199acd", + "reference": "7394694afd89d05879e7a69c54abab73c1199acd", "shasum": "" }, "require": { "ext-json": "*", - "illuminate/contracts": "^7.20|^8.0", - "illuminate/database": "^7.20|^8.13", - "illuminate/queue": "^7.20|^8.13", - "illuminate/support": "^7.20|^8.13", + "illuminate/contracts": "^7.20|^8.19|^9.0", + "illuminate/database": "^7.20|^8.19|^9.0", + "illuminate/queue": "^7.20|^8.19|^9.0", + "illuminate/support": "^7.20|^8.19|^9.0", "php": "^7.3|^8.0", "spatie/backtrace": "^1.0", - "spatie/ray": "^1.21.2", - "symfony/stopwatch": "4.2|^5.1", - "zbateson/mail-mime-parser": "^1.3.1" + "spatie/ray": "^1.33", + "symfony/stopwatch": "4.2|^5.1|^6.0", + "zbateson/mail-mime-parser": "^1.3.1|^2.0" }, "require-dev": { - "facade/ignition": "^2.5", - "laravel/framework": "^7.20|^8.19", - "orchestra/testbench-core": "^5.0|^6.0", + "guzzlehttp/guzzle": "^7.3", + "laravel/framework": "^7.20|^8.19|^9.0", + "orchestra/testbench-core": "^5.0|^6.0|^7.0", + "phpstan/phpstan": "^0.12.93", "phpunit/phpunit": "^9.3", "spatie/phpunit-snapshot-assertions": "^4.2" }, "type": "library", "extra": { + "branch-alias": { + "dev-main": "1.29.x-dev" + }, "laravel": { "providers": [ "Spatie\\LaravelRay\\RayServiceProvider" @@ -6991,7 +7606,7 @@ ], "support": { "issues": "https://github.com/spatie/laravel-ray/issues", - "source": "https://github.com/spatie/laravel-ray/tree/1.17.4" + "source": "https://github.com/spatie/laravel-ray/tree/1.31.0" }, "funding": [ { @@ -7003,24 +7618,24 @@ "type": "other" } ], - "time": "2021-04-30T08:20:24+00:00" + "time": "2022-09-20T13:13:22+00:00" }, { "name": "spatie/macroable", - "version": "1.0.1", + "version": "2.0.0", "source": { "type": "git", "url": "https://github.com/spatie/macroable.git", - "reference": "7a99549fc001c925714b329220dea680c04bfa48" + "reference": "ec2c320f932e730607aff8052c44183cf3ecb072" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/macroable/zipball/7a99549fc001c925714b329220dea680c04bfa48", - "reference": "7a99549fc001c925714b329220dea680c04bfa48", + "url": "https://api.github.com/repos/spatie/macroable/zipball/ec2c320f932e730607aff8052c44183cf3ecb072", + "reference": "ec2c320f932e730607aff8052c44183cf3ecb072", "shasum": "" }, "require": { - "php": "^7.2|^8.0" + "php": "^8.0" }, "require-dev": { "phpunit/phpunit": "^8.0|^9.3" @@ -7051,22 +7666,22 @@ ], "support": { "issues": "https://github.com/spatie/macroable/issues", - "source": "https://github.com/spatie/macroable/tree/1.0.1" + "source": "https://github.com/spatie/macroable/tree/2.0.0" }, - "time": "2020-11-03T10:15:05+00:00" + "time": "2021-03-26T22:39:02+00:00" }, { "name": "spatie/ray", - "version": "1.22.1", + "version": "1.36.0", "source": { "type": "git", "url": "https://github.com/spatie/ray.git", - "reference": "e82408b78b1391eaee6c962b13c37e80080dc15a" + "reference": "4a4def8cda4806218341b8204c98375aa8c34323" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/ray/zipball/e82408b78b1391eaee6c962b13c37e80080dc15a", - "reference": "e82408b78b1391eaee6c962b13c37e80080dc15a", + "url": "https://api.github.com/repos/spatie/ray/zipball/4a4def8cda4806218341b8204c98375aa8c34323", + "reference": "4a4def8cda4806218341b8204c98375aa8c34323", "shasum": "" }, "require": { @@ -7076,25 +7691,25 @@ "ramsey/uuid": "^3.0|^4.1", "spatie/backtrace": "^1.1", "spatie/macroable": "^1.0|^2.0", - "symfony/stopwatch": "^4.0|^5.1", - "symfony/var-dumper": "^4.2|^5.1" + "symfony/stopwatch": "^4.0|^5.1|^6.0", + "symfony/var-dumper": "^4.2|^5.1|^6.0" }, "require-dev": { - "illuminate/support": "6.x|^8.18", + "illuminate/support": "6.x|^8.18|^9.0", "nesbot/carbon": "^2.43", + "phpstan/phpstan": "^0.12.92", "phpunit/phpunit": "^9.5", - "rector/rector": "^0.9.16", "spatie/phpunit-snapshot-assertions": "^4.2", "spatie/test-time": "^1.2" }, "type": "library", "autoload": { - "psr-4": { - "Spatie\\Ray\\": "src" - }, "files": [ "src/helpers.php" - ] + ], + "psr-4": { + "Spatie\\Ray\\": "src" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -7116,7 +7731,7 @@ ], "support": { "issues": "https://github.com/spatie/ray/issues", - "source": "https://github.com/spatie/ray/tree/1.22.1" + "source": "https://github.com/spatie/ray/tree/1.36.0" }, "funding": [ { @@ -7128,25 +7743,25 @@ "type": "other" } ], - "time": "2021-04-28T09:47:47+00:00" + "time": "2022-08-11T14:04:18+00:00" }, { "name": "symfony/stopwatch", - "version": "v5.2.7", + "version": "v6.0.5", "source": { "type": "git", "url": "https://github.com/symfony/stopwatch.git", - "reference": "d99310c33e833def36419c284f60e8027d359678" + "reference": "f2c1780607ec6502f2121d9729fd8150a655d337" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/stopwatch/zipball/d99310c33e833def36419c284f60e8027d359678", - "reference": "d99310c33e833def36419c284f60e8027d359678", + "url": "https://api.github.com/repos/symfony/stopwatch/zipball/f2c1780607ec6502f2121d9729fd8150a655d337", + "reference": "f2c1780607ec6502f2121d9729fd8150a655d337", "shasum": "" }, "require": { - "php": ">=7.2.5", - "symfony/service-contracts": "^1.0|^2" + "php": ">=8.0.2", + "symfony/service-contracts": "^1|^2|^3" }, "type": "library", "autoload": { @@ -7174,7 +7789,7 @@ "description": "Provides a way to profile code", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/stopwatch/tree/v5.3.0-BETA1" + "source": "https://github.com/symfony/stopwatch/tree/v6.0.5" }, "funding": [ { @@ -7190,32 +7805,32 @@ "type": "tidelift" } ], - "time": "2021-03-29T15:28:41+00:00" + "time": "2022-02-21T17:15:17+00:00" }, { "name": "symfony/yaml", - "version": "v5.2.9", + "version": "v5.4.12", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "d23115e4a3d50520abddccdbec9514baab1084c8" + "reference": "7a3aa21ac8ab1a96cc6de5bbcab4bc9fc943b18c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/d23115e4a3d50520abddccdbec9514baab1084c8", - "reference": "d23115e4a3d50520abddccdbec9514baab1084c8", + "url": "https://api.github.com/repos/symfony/yaml/zipball/7a3aa21ac8ab1a96cc6de5bbcab4bc9fc943b18c", + "reference": "7a3aa21ac8ab1a96cc6de5bbcab4bc9fc943b18c", "shasum": "" }, "require": { "php": ">=7.2.5", - "symfony/deprecation-contracts": "^2.1", - "symfony/polyfill-ctype": "~1.8" + "symfony/deprecation-contracts": "^2.1|^3", + "symfony/polyfill-ctype": "^1.8" }, "conflict": { - "symfony/console": "<4.4" + "symfony/console": "<5.3" }, "require-dev": { - "symfony/console": "^4.4|^5.0" + "symfony/console": "^5.3|^6.0" }, "suggest": { "symfony/console": "For validating YAML files using the lint command" @@ -7249,7 +7864,7 @@ "description": "Loads and dumps YAML files", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/yaml/tree/v5.2.9" + "source": "https://github.com/symfony/yaml/tree/v5.4.12" }, "funding": [ { @@ -7265,7 +7880,7 @@ "type": "tidelift" } ], - "time": "2021-05-16T13:07:46+00:00" + "time": "2022-08-02T15:52:22+00:00" }, { "name": "theseer/tokenizer", @@ -7319,30 +7934,28 @@ }, { "name": "zbateson/mail-mime-parser", - "version": "1.3.1", + "version": "2.2.2", "source": { "type": "git", "url": "https://github.com/zbateson/mail-mime-parser.git", - "reference": "706964d904798b8c22d63f62f0ec5f5bc84e30d9" + "reference": "318cd809afebe48e8fb41625b05b25470fb3fa86" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/zbateson/mail-mime-parser/zipball/706964d904798b8c22d63f62f0ec5f5bc84e30d9", - "reference": "706964d904798b8c22d63f62f0ec5f5bc84e30d9", + "url": "https://api.github.com/repos/zbateson/mail-mime-parser/zipball/318cd809afebe48e8fb41625b05b25470fb3fa86", + "reference": "318cd809afebe48e8fb41625b05b25470fb3fa86", "shasum": "" }, "require": { - "guzzlehttp/psr7": "^1.0", + "guzzlehttp/psr7": "^1.7.0|^2.0", "php": ">=5.4", + "pimple/pimple": "^3.0", "zbateson/mb-wrapper": "^1.0.1", - "zbateson/stream-decorators": "^1.0.4" + "zbateson/stream-decorators": "^1.0.6" }, "require-dev": { - "jms/serializer": "^1.1", "mikey179/vfsstream": "^1.6.0", - "phing/phing": "^2.15.0", - "phpdocumentor/phpdocumentor": "^2.9.0", - "phpunit/phpunit": "^4.8 || ^5.7 || ^6.5 || ^7.5" + "sanmai/phpunit-legacy-adapter": "^6.3 || ^8.2" }, "suggest": { "ext-iconv": "For best support/performance", @@ -7390,20 +8003,20 @@ "type": "github" } ], - "time": "2020-12-02T21:55:45+00:00" + "time": "2022-09-01T15:59:13+00:00" }, { "name": "zbateson/mb-wrapper", - "version": "1.0.1", + "version": "1.1.2", "source": { "type": "git", "url": "https://github.com/zbateson/mb-wrapper.git", - "reference": "721b3dfbf7ab75fee5ac60a542d7923ffe59ef6d" + "reference": "5d9d190ef18ce6d424e3ac6f5ebe13901f92b74a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/zbateson/mb-wrapper/zipball/721b3dfbf7ab75fee5ac60a542d7923ffe59ef6d", - "reference": "721b3dfbf7ab75fee5ac60a542d7923ffe59ef6d", + "url": "https://api.github.com/repos/zbateson/mb-wrapper/zipball/5d9d190ef18ce6d424e3ac6f5ebe13901f92b74a", + "reference": "5d9d190ef18ce6d424e3ac6f5ebe13901f92b74a", "shasum": "" }, "require": { @@ -7412,7 +8025,7 @@ "symfony/polyfill-mbstring": "^1.9" }, "require-dev": { - "phpunit/phpunit": "^4.8 || ^5.7 || ^6.5" + "sanmai/phpunit-legacy-adapter": "^6.3 || ^8" }, "suggest": { "ext-iconv": "For best support/performance", @@ -7449,7 +8062,7 @@ ], "support": { "issues": "https://github.com/zbateson/mb-wrapper/issues", - "source": "https://github.com/zbateson/mb-wrapper/tree/1.0.1" + "source": "https://github.com/zbateson/mb-wrapper/tree/1.1.2" }, "funding": [ { @@ -7457,29 +8070,29 @@ "type": "github" } ], - "time": "2020-10-21T22:14:27+00:00" + "time": "2022-05-26T15:55:05+00:00" }, { "name": "zbateson/stream-decorators", - "version": "1.0.4", + "version": "1.0.7", "source": { "type": "git", "url": "https://github.com/zbateson/stream-decorators.git", - "reference": "6f54738dfecc65e1d5bfb855035836748083a6dd" + "reference": "8f8ca208572963258b7e6d91106181706deacd10" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/zbateson/stream-decorators/zipball/6f54738dfecc65e1d5bfb855035836748083a6dd", - "reference": "6f54738dfecc65e1d5bfb855035836748083a6dd", + "url": "https://api.github.com/repos/zbateson/stream-decorators/zipball/8f8ca208572963258b7e6d91106181706deacd10", + "reference": "8f8ca208572963258b7e6d91106181706deacd10", "shasum": "" }, "require": { - "guzzlehttp/psr7": "^1.0.0", + "guzzlehttp/psr7": "^1.7.0|^2.0", "php": ">=5.4", "zbateson/mb-wrapper": "^1.0.0" }, "require-dev": { - "phpunit/phpunit": "^4.8 || ^5.7 || ^6.5 || ^7.5" + "sanmai/phpunit-legacy-adapter": "^6.3 || ^8" }, "type": "library", "autoload": { @@ -7510,7 +8123,7 @@ ], "support": { "issues": "https://github.com/zbateson/stream-decorators/issues", - "source": "https://github.com/zbateson/stream-decorators/tree/master" + "source": "https://github.com/zbateson/stream-decorators/tree/1.0.7" }, "funding": [ { @@ -7518,7 +8131,7 @@ "type": "github" } ], - "time": "2020-08-10T18:59:43+00:00" + "time": "2022-09-08T15:44:55+00:00" } ], "aliases": [], diff --git a/src/Endpoints/Database.php b/src/Endpoints/Database.php index 90a1c90..ffe3b60 100644 --- a/src/Endpoints/Database.php +++ b/src/Endpoints/Database.php @@ -4,8 +4,10 @@ use FiveamCode\LaravelNotionApi\Entities\Collections\EntityCollection; use FiveamCode\LaravelNotionApi\Entities\Collections\PageCollection; +use FiveamCode\LaravelNotionApi\Exceptions\HandlingException; use FiveamCode\LaravelNotionApi\Notion; use FiveamCode\LaravelNotionApi\Query\Filters\Filter; +use FiveamCode\LaravelNotionApi\Query\Filters\FilterBag; use FiveamCode\LaravelNotionApi\Query\Sorting; use Illuminate\Support\Collection; @@ -20,9 +22,13 @@ class Database extends Endpoint private string $databaseId; /** - * @var Collection + * @var Filter|null */ - private Collection $filter; + private ?Filter $filter = null; // TODO breaking change as well + + private $filterBag; + + private array $filterData = []; /** * @var Collection @@ -32,8 +38,8 @@ class Database extends Endpoint /** * Database constructor. * - * @param string $databaseId - * @param Notion $notion + * @param string $databaseId + * @param Notion $notion * * @throws \FiveamCode\LaravelNotionApi\Exceptions\HandlingException * @throws \FiveamCode\LaravelNotionApi\Exceptions\LaravelNotionAPIException @@ -43,7 +49,6 @@ public function __construct(string $databaseId, Notion $notion) $this->databaseId = $databaseId; $this->sorts = new Collection(); - $this->filter = new Collection(); parent::__construct($notion); } @@ -62,9 +67,12 @@ public function query(): PageCollection $postData['sorts'] = Sorting::sortQuery($this->sorts); } - if ($this->filter->isNotEmpty()) { - $postData['filter']['or'] = Filter::filterQuery($this->filter); - } // TODO Compound filters! + if($this->filter !== null && !is_null($this->filterBag)) { + throw new HandlingException("Please provide either a filter bag or a single filter."); + } + elseif ($this->filter !== null || !is_null($this->filterBag)) { + $postData['filter'] = $this->filterData; + } if ($this->startCursor !== null) { $postData['start_cursor'] = $this->startCursor->__toString(); @@ -76,7 +84,7 @@ public function query(): PageCollection $response = $this ->post( - $this->url(Endpoint::DATABASES."/{$this->databaseId}/query"), + $this->url(Endpoint::DATABASES . "/{$this->databaseId}/query"), $postData ) ->json(); @@ -85,18 +93,47 @@ public function query(): PageCollection } /** - * @param Collection $filter - * @return $this + * @param $filter + * @return Database $this + * @throws HandlingException + * @todo As soon as this package drops PHP 7.4 support, we can use union types here (FilterBag and Filter) */ - public function filterBy(Collection $filter): Database + public function filterBy($filter): Database // TODO that's a breaking change + { + $this->checkFilterType($filter); + + if($filter instanceof FilterBag) { + return $this->filterByBag($filter); + } + if($filter instanceof Filter) { + return $this->filterBySingleFilter($filter); + } + + return $this; + } + + public function filterBySingleFilter(Filter $filter): Database { $this->filter = $filter; + $this->filterData = ["or" => [$filter->toQuery()]]; return $this; } /** - * @param Collection $sorts + * @param FilterBag $filterBag + * @return $this + */ + public function filterByBag(FilterBag $filterBag): Database + { + $this->filterBag = $filterBag; + $this->filterData = $filterBag->toQuery(); + + return $this; + } + + /** + * @param Collection $sorts * @return $this */ public function sortBy(Collection $sorts): Database @@ -116,4 +153,11 @@ public function offsetByResponse(EntityCollection $entityCollection): Database return $this; } + + private function checkFilterType($filter): void + { + if (!($filter instanceof Filter || $filter instanceof FilterBag)) { + throw new HandlingException("Please provide either a filter bag or a single filter."); + } + } } diff --git a/src/Query/Filters/Filter.php b/src/Query/Filters/Filter.php index e5805ab..def06c8 100644 --- a/src/Query/Filters/Filter.php +++ b/src/Query/Filters/Filter.php @@ -150,7 +150,7 @@ public static function filterQuery(Collection $filter): array { $queryFilter = new Collection(); - $filter->each(function (Filter $filter) use ($queryFilter) { + $filter->each(function ($filter) use ($queryFilter) { $queryFilter->add($filter->toQuery()); }); diff --git a/src/Query/Filters/FilterBag.php b/src/Query/Filters/FilterBag.php new file mode 100644 index 0000000..9e7c0a4 --- /dev/null +++ b/src/Query/Filters/FilterBag.php @@ -0,0 +1,116 @@ +isValidOperator($operator); + + $this->content = new Collection; + $this->operator = $operator; + } + + + /** + * @param Filter $filter + * @return $this + */ + public function addFilter(Filter $filter): self { + $this->content->add($filter); + + return $this; + } + + /** + * @throws HandlingException|Throwable + */ + public function addFilterBag(FilterBag $filterBag): self { + // A filter bag can only be added to another filter bag if it does not have a parent yet and does not + // contain any other filter bags. + throw_if($this->parentFilterBag !== null, new HandlingException("The maximum nesting level of compound filters must not exceed 2.")); + + $filterBag->content->each(function ($bag) { + throw_if($bag instanceof FilterBag, new HandlingException("The maximum nesting level of compound filters must not exceed 2.")); + }); + + $filterBag->parentFilterBag = $this; + $this->content->add($filterBag); + + return $this; + } + + /** + * @return array + */ + public function toQuery() { + + $filters = $this->content->map(function($set) { + return $set->toQuery(); + })->toArray(); + + return [ + $this->operator => $filters + ]; + } + + private function isValidOperator($operator) { + $validOperators = ["and", "or"]; + + throw_if( + !in_array($operator, $validOperators), + new HandlingException("Invalid operator for FilterBag: " . $operator) + ); + } + + +} \ No newline at end of file diff --git a/tests/EndpointDatabaseTest.php b/tests/EndpointDatabaseTest.php index f7e9364..ebd3b73 100644 --- a/tests/EndpointDatabaseTest.php +++ b/tests/EndpointDatabaseTest.php @@ -1,7 +1,5 @@ assertInstanceOf(Database::class, $endpoint); - } - - /** - * @dataProvider limitProvider - */ - public function limitProvider(): array - { - return [ - [1], - [2], - ]; - } - - /** - * @test - * @dataProvider limitProvider - * - * @param $limit - */ - public function it_queries_a_database_with_filter_and_sorting_and_processes_result($limit) - { - // success /v1/databases/DATABASE_DOES_EXIST/query - Http::fake([ - 'https://api.notion.com/v1/databases/8284f3ff77e24d4a939d19459e4d6bdc/query*' => Http::response( - json_decode(file_get_contents("tests/stubs/endpoints/databases/response_query_limit{$limit}_200.json"), true), - 200, - ['Headers'] - ), - ]); - // Let's search for women developing the UNIVAC I computer - // and sort them by birth year descending - $sortings = new Collection(); - $filters = new Collection(); +it('returns a database endpoint instance', function () { +// TODO make tests work again, update for new Filter behaviour + $endpoint = \FiveamCode\LaravelNotionApi\Notion::database('897e5a76ae524b489fdfe71f5945d1af'); + + $this->assertInstanceOf(Database::class, $endpoint); +}); + +it('queries a database with filter and sorting and processes result', function () { + // success /v1/databases/DATABASE_DOES_EXIST/query + Http::fake([ + 'https://api.notion.com/v1/databases/8284f3ff77e24d4a939d19459e4d6bdc/query*' => Http::response( + json_decode(file_get_contents("tests/stubs/endpoints/databases/response_query_limit{$limit}_200.json"), true), + 200, + ['Headers'] + ), + ]); + + // Let's search for women developing the UNIVAC I computer + // and sort them by birth year descending + $sortings = new Collection(); + $filters = new Collection(); + + $sortings->add( + Sorting::propertySort('Birth year', 'descending') + ); + + $filters + ->add( + Filter::rawFilter( + 'Known for', + [ + 'multi_select' => ['contains' => 'UNIVAC'], + ] + ) + ); - $sortings->add( - Sorting::propertySort('Birth year', 'descending') + $result = Notion::database('8284f3ff77e24d4a939d19459e4d6bdc') + ->filterBy($filters) + ->sortBy($sortings) + ->limit($limit) + ->query(); + + $this->assertInstanceOf(PageCollection::class, $result); + + $resultCollection = $result->asCollection(); + + $this->assertIsIterable($resultCollection); + $this->assertCount($limit, $resultCollection); + $this->assertContainsOnly(Page::class, $resultCollection); + + // check page object + $page = $resultCollection->first(); + $this->assertEquals('Betty Holberton', $page->getTitle()); +}) + ->with([ + [1], + [2], + ]); + +it('queries a database with filter and sorting and has empty result', function () { + // success /v1/databases/DATABASE_DOES_EXIST/query + Http::fake([ + 'https://api.notion.com/v1/databases/8284f3ff77e24d4a939d19459e4d6bdc/query*' => Http::response( + json_decode(file_get_contents('tests/stubs/endpoints/databases/response_query_no_result_200.json'), true), + 200, + ['Headers'] + ), + ]); + + // Let's search for something that doesn't exists + $filters = new Collection(); + + $filters + ->add( + Filter::rawFilter( + 'Known for', + [ + 'multi_select' => ['contains' => "something that doesn't exists"], + ] + ) ); - $filters - ->add( - Filter::rawFilter( - 'Known for', - [ - 'multi_select' => ['contains' => 'UNIVAC'], - ] - ) - ); - - $result = Notion::database('8284f3ff77e24d4a939d19459e4d6bdc') - ->filterBy($filters) - ->sortBy($sortings) - ->limit($limit) - ->query(); - - $this->assertInstanceOf(PageCollection::class, $result); - - $resultCollection = $result->asCollection(); - - $this->assertIsIterable($resultCollection); - $this->assertCount($limit, $resultCollection); - $this->assertContainsOnly(Page::class, $resultCollection); - - // check page object - $page = $resultCollection->first(); - $this->assertEquals('Betty Holberton', $page->getTitle()); - } - - /** @test */ - public function it_queries_a_database_with_filter_and_sorting_and_has_empty_result() - { - // success /v1/databases/DATABASE_DOES_EXIST/query - Http::fake([ - 'https://api.notion.com/v1/databases/8284f3ff77e24d4a939d19459e4d6bdc/query*' => Http::response( - json_decode(file_get_contents('tests/stubs/endpoints/databases/response_query_no_result_200.json'), true), + $result = Notion::database('8284f3ff77e24d4a939d19459e4d6bdc') + ->filterBy($filters) + ->query(); + + $this->assertInstanceOf(PageCollection::class, $result); + + $resultCollection = $result->asCollection(); + + $this->assertIsIterable($resultCollection); + $this->assertCount(0, $resultCollection); +}); + + +it('throws a notion exception for a bad request', function () { + + // failing /v1/databases + Http::fake([ + 'https://api.notion.com/v1/databases/8284f3ff77e24d4a939d19459e4d6bdc/query*' => Http::response( + json_decode('{}', true), + 400, + ['Headers'] + ), + ]); + + $this->expectException(NotionException::class); + $this->expectExceptionMessage('Bad Request'); + + Notion::database('8284f3ff77e24d4a939d19459e4d6bdc')->query(); +}); + + +it('queries a database with and without offset and processes result', function () { +// success /v1/databases/DATABASE_DOES_EXIST/query + Http::fake([ + 'https://api.notion.com/v1/databases/8284f3ff77e24d4a939d19459e4d6bdc/query*' => Http::sequence() + ->push( + json_decode(file_get_contents('tests/stubs/endpoints/databases/response_query_offset_start_200.json'), true), 200, ['Headers'] - ), - ]); - - // Let's search for something that doesn't exists - $filters = new Collection(); - - $filters - ->add( - Filter::rawFilter( - 'Known for', - [ - 'multi_select' => ['contains' => "something that doesn't exists"], - ] - ) - ); - - $result = Notion::database('8284f3ff77e24d4a939d19459e4d6bdc') - ->filterBy($filters) - ->query(); - - $this->assertInstanceOf(PageCollection::class, $result); - - $resultCollection = $result->asCollection(); - - $this->assertIsIterable($resultCollection); - $this->assertCount(0, $resultCollection); - } - - /** @test */ - public function it_throws_a_notion_exception_bad_request() - { - // failing /v1/databases - Http::fake([ - 'https://api.notion.com/v1/databases/8284f3ff77e24d4a939d19459e4d6bdc/query*' => Http::response( - json_decode('{}', true), - 400, - ['Headers'] - ), - ]); - - $this->expectException(NotionException::class); - $this->expectExceptionMessage('Bad Request'); - - Notion::database('8284f3ff77e24d4a939d19459e4d6bdc')->query(); - } - - /** @test */ - public function it_queries_a_database_with_and_without_offset_and_processes_result() - { - // success /v1/databases/DATABASE_DOES_EXIST/query - Http::fake([ - 'https://api.notion.com/v1/databases/8284f3ff77e24d4a939d19459e4d6bdc/query*' => Http::sequence() - ->push( - json_decode(file_get_contents('tests/stubs/endpoints/databases/response_query_offset_start_200.json'), true), - 200, - ['Headers'] - ) - ->push( - json_decode(file_get_contents('tests/stubs/endpoints/databases/response_query_offset_end_200.json'), true), - 200, - ['Headers'] - ), - ]); - - $result = Notion::database('8284f3ff77e24d4a939d19459e4d6bdc') - ->query(); - - //check instance and offset - $this->assertInstanceOf(PageCollection::class, $result); - $this->assertEquals(true, $result->hasMoreEntries()); - $this->assertInstanceOf(StartCursor::class, $result->nextCursor()); - $this->assertEquals('1500b7c7-329f-4854-8912-4c6972a8743e', $result->nextCursor()); - $this->assertEquals('1500b7c7-329f-4854-8912-4c6972a8743e', $result->getRawNextCursor()); - - $resultCollection = $result->asCollection(); - - $this->assertIsIterable($resultCollection); - $this->assertContainsOnly(Page::class, $resultCollection); - - // check page object - $page = $resultCollection->first(); - $this->assertEquals('Betty Holberton', $page->getTitle()); - - $resultWithOffset = Notion::database('8284f3ff77e24d4a939d19459e4d6bdc') - ->offsetByResponse($result) - ->query(); - - // check instance and offset - $this->assertInstanceOf(PageCollection::class, $resultWithOffset); - $this->assertEquals(false, $resultWithOffset->hasMoreEntries()); - $this->assertEquals(null, $resultWithOffset->nextCursor()); - $this->assertEquals(null, $resultWithOffset->getRawNextCursor()); - - $resultWithOffsetCollection = $resultWithOffset->asCollection(); - - $this->assertIsIterable($resultWithOffsetCollection); - $this->assertContainsOnly(Page::class, $resultWithOffsetCollection); - - // check page object - $page = $resultWithOffsetCollection->first(); - $this->assertEquals('Betty Holberton', $page->getTitle()); - } - - /** - * @test - * ! edge-case - */ - public function it_queries_a_database_with_a_rollup_property_with_empty_selects() - { - // success /v1/databases/DATABASE_DOES_EXIST/query - Http::fake([ - 'https://api.notion.com/v1/databases/11971214ce574df7a58389c1deda61d7/query*' => Http::response( - json_decode(file_get_contents('tests/stubs/endpoints/databases/response_query_rollup_empty_select_200.json'), true), + ) + ->push( + json_decode(file_get_contents('tests/stubs/endpoints/databases/response_query_offset_end_200.json'), true), 200, ['Headers'] ), - ]); + ]); + + $result = Notion::database('8284f3ff77e24d4a939d19459e4d6bdc') + ->query(); + + //check instance and offset + $this->assertInstanceOf(PageCollection::class, $result); + $this->assertEquals(true, $result->hasMoreEntries()); + $this->assertInstanceOf(StartCursor::class, $result->nextCursor()); + $this->assertEquals('1500b7c7-329f-4854-8912-4c6972a8743e', $result->nextCursor()); + $this->assertEquals('1500b7c7-329f-4854-8912-4c6972a8743e', $result->getRawNextCursor()); + + $resultCollection = $result->asCollection(); + + $this->assertIsIterable($resultCollection); + $this->assertContainsOnly(Page::class, $resultCollection); + + // check page object + $page = $resultCollection->first(); + $this->assertEquals('Betty Holberton', $page->getTitle()); + + $resultWithOffset = Notion::database('8284f3ff77e24d4a939d19459e4d6bdc') + ->offsetByResponse($result) + ->query(); + + // check instance and offset + $this->assertInstanceOf(PageCollection::class, $resultWithOffset); + $this->assertEquals(false, $resultWithOffset->hasMoreEntries()); + $this->assertEquals(null, $resultWithOffset->nextCursor()); + $this->assertEquals(null, $resultWithOffset->getRawNextCursor()); + + $resultWithOffsetCollection = $resultWithOffset->asCollection(); + + $this->assertIsIterable($resultWithOffsetCollection); + $this->assertContainsOnly(Page::class, $resultWithOffsetCollection); + + // check page object + $page = $resultWithOffsetCollection->first(); + $this->assertEquals('Betty Holberton', $page->getTitle()); +}); + +it('queries a database with a rollup property with empty selects', function () { + // success /v1/databases/DATABASE_DOES_EXIST/query + Http::fake([ + 'https://api.notion.com/v1/databases/11971214ce574df7a58389c1deda61d7/query*' => Http::response( + json_decode(file_get_contents('tests/stubs/endpoints/databases/response_query_rollup_empty_select_200.json'), true), + 200, + ['Headers'] + ), + ]); + + $result = Notion::database('11971214ce574df7a58389c1deda61d7')->query(); - $result = Notion::database('11971214ce574df7a58389c1deda61d7')->query(); + $this->assertInstanceOf(PageCollection::class, $result); - $this->assertInstanceOf(PageCollection::class, $result); + $resultCollection = $result->asCollection(); - $resultCollection = $result->asCollection(); + $this->assertIsIterable($resultCollection); + $this->assertContainsOnly(Page::class, $resultCollection); - $this->assertIsIterable($resultCollection); - $this->assertContainsOnly(Page::class, $resultCollection); + // check page object + $page = $resultCollection->first(); + $this->assertEquals(0, $page->getProperty('Rollup')->getContent()->count()); +}); - // check page object - $page = $resultCollection->first(); - $this->assertEquals(0, $page->getProperty('Rollup')->getContent()->count()); - } -} diff --git a/tests/FilterBagTest.php b/tests/FilterBagTest.php new file mode 100644 index 0000000..9fe037f --- /dev/null +++ b/tests/FilterBagTest.php @@ -0,0 +1,69 @@ +assertInstanceOf(FilterBag::class, $filterBag); + + $queryFilter = $filterBag->toQuery(); + + $this->assertArrayHasKey('or', $queryFilter); +}); + +it('creates a FilterBag with an "and" operator with the instance method', function () { + $filterBag = FilterBag::and(); + + $this->assertInstanceOf(FilterBag::class, $filterBag); + + $queryFilter = $filterBag->toQuery(); + + $this->assertArrayHasKey('and', $queryFilter); +}); + +it('throws an exception when providing an invalid operator', function() { + $this->expectException(HandlingException::class); + $this->expectExceptionMessage('Invalid operator for FilterBag: invalid'); + + new FilterBag('invalid'); +}); + +it('only allows the nesting of FilterBags up to two levels', function() { + + $this->expectException(HandlingException::class); + $this->expectExceptionMessage('The maximum nesting level of compound filters must not exceed 2.'); + + $filterBag = new FilterBag("and"); + + $filterBag->addFilter( + Filter::rawFilter("Known for", [ + "multi_select" => ["contains" => "UNIVAC"], + ]) + ); + + $nameFilterBag = new FilterBag("or"); + $nameFilterBag + ->addFilter(Filter::textFilter("Name", Operators::CONTAINS, "Grace")) + ->addFilter(Filter::textFilter("Name", Operators::CONTAINS, "Jean")); + + $anotherBag = new FilterBag(); + $nameFilterBag->addFilterBag($anotherBag); + + $filterBag->addFilterBag($nameFilterBag); +}); + +it('allows the nesting of multiple FilterBags inside one FilterBag', function() { + // TODO +}); + +it('creates the correct query structure for a nested FilterBag', function() { + // TODO +}); + +it('creates the correct query structure for a FilterBag with one level', function() { + // TODO +}); diff --git a/tests/Pest.php b/tests/Pest.php new file mode 100644 index 0000000..3948371 --- /dev/null +++ b/tests/Pest.php @@ -0,0 +1,5 @@ +in(__DIR__); \ No newline at end of file diff --git a/tests/TestCase.php b/tests/TestCase.php new file mode 100644 index 0000000..18e2050 --- /dev/null +++ b/tests/TestCase.php @@ -0,0 +1,16 @@ + Date: Sun, 25 Sep 2022 13:44:15 +0200 Subject: [PATCH 04/70] Apply fixes from StyleCI (#83) --- src/Endpoints/Database.php | 29 ++++++++++---------- src/Query/Filters/FilterBag.php | 48 ++++++++++++++++----------------- tests/EndpointDatabaseTest.php | 9 ++----- tests/FilterBagTest.php | 25 +++++++++-------- tests/FilterTest.php | 6 ++--- tests/Pest.php | 2 +- tests/TestCase.php | 4 +-- 7 files changed, 57 insertions(+), 66 deletions(-) diff --git a/src/Endpoints/Database.php b/src/Endpoints/Database.php index ffe3b60..463e111 100644 --- a/src/Endpoints/Database.php +++ b/src/Endpoints/Database.php @@ -38,8 +38,8 @@ class Database extends Endpoint /** * Database constructor. * - * @param string $databaseId - * @param Notion $notion + * @param string $databaseId + * @param Notion $notion * * @throws \FiveamCode\LaravelNotionApi\Exceptions\HandlingException * @throws \FiveamCode\LaravelNotionApi\Exceptions\LaravelNotionAPIException @@ -67,10 +67,9 @@ public function query(): PageCollection $postData['sorts'] = Sorting::sortQuery($this->sorts); } - if($this->filter !== null && !is_null($this->filterBag)) { - throw new HandlingException("Please provide either a filter bag or a single filter."); - } - elseif ($this->filter !== null || !is_null($this->filterBag)) { + if ($this->filter !== null && ! is_null($this->filterBag)) { + throw new HandlingException('Please provide either a filter bag or a single filter.'); + } elseif ($this->filter !== null || ! is_null($this->filterBag)) { $postData['filter'] = $this->filterData; } @@ -84,7 +83,7 @@ public function query(): PageCollection $response = $this ->post( - $this->url(Endpoint::DATABASES . "/{$this->databaseId}/query"), + $this->url(Endpoint::DATABASES."/{$this->databaseId}/query"), $postData ) ->json(); @@ -95,17 +94,19 @@ public function query(): PageCollection /** * @param $filter * @return Database $this + * * @throws HandlingException + * * @todo As soon as this package drops PHP 7.4 support, we can use union types here (FilterBag and Filter) */ public function filterBy($filter): Database // TODO that's a breaking change { $this->checkFilterType($filter); - if($filter instanceof FilterBag) { + if ($filter instanceof FilterBag) { return $this->filterByBag($filter); } - if($filter instanceof Filter) { + if ($filter instanceof Filter) { return $this->filterBySingleFilter($filter); } @@ -115,13 +116,13 @@ public function filterBy($filter): Database // TODO that's a breaking change public function filterBySingleFilter(Filter $filter): Database { $this->filter = $filter; - $this->filterData = ["or" => [$filter->toQuery()]]; + $this->filterData = ['or' => [$filter->toQuery()]]; return $this; } /** - * @param FilterBag $filterBag + * @param FilterBag $filterBag * @return $this */ public function filterByBag(FilterBag $filterBag): Database @@ -133,7 +134,7 @@ public function filterByBag(FilterBag $filterBag): Database } /** - * @param Collection $sorts + * @param Collection $sorts * @return $this */ public function sortBy(Collection $sorts): Database @@ -156,8 +157,8 @@ public function offsetByResponse(EntityCollection $entityCollection): Database private function checkFilterType($filter): void { - if (!($filter instanceof Filter || $filter instanceof FilterBag)) { - throw new HandlingException("Please provide either a filter bag or a single filter."); + if (! ($filter instanceof Filter || $filter instanceof FilterBag)) { + throw new HandlingException('Please provide either a filter bag or a single filter.'); } } } diff --git a/src/Query/Filters/FilterBag.php b/src/Query/Filters/FilterBag.php index 9e7c0a4..aab4da3 100644 --- a/src/Query/Filters/FilterBag.php +++ b/src/Query/Filters/FilterBag.php @@ -8,15 +8,14 @@ use Throwable; /** - * Class FilterBag + * Class FilterBag. */ class FilterBag extends QueryHelper { - /** * @var string|mixed */ - protected string $operator = "and"; // TODO shortcut instances + type checking + pretty operators + protected string $operator = 'and'; // TODO shortcut instances + type checking + pretty operators /** * @var Collection @@ -28,7 +27,6 @@ class FilterBag extends QueryHelper */ public ?FilterBag $parentFilterBag = null; - /** * Creates a FilterBag instance with an "or" operator. * @@ -36,7 +34,7 @@ class FilterBag extends QueryHelper */ public static function or(): FilterBag { - return new FilterBag("or"); + return new FilterBag('or'); } /** @@ -46,13 +44,13 @@ public static function or(): FilterBag */ public static function and(): FilterBag { - return new FilterBag("and"); + return new FilterBag('and'); } /** - * @param string $operator + * @param string $operator */ - public function __construct(string $operator = "and") + public function __construct(string $operator = 'and') { $this->isValidOperator($operator); @@ -60,12 +58,12 @@ public function __construct(string $operator = "and") $this->operator = $operator; } - /** - * @param Filter $filter + * @param Filter $filter * @return $this */ - public function addFilter(Filter $filter): self { + public function addFilter(Filter $filter): self + { $this->content->add($filter); return $this; @@ -74,13 +72,14 @@ public function addFilter(Filter $filter): self { /** * @throws HandlingException|Throwable */ - public function addFilterBag(FilterBag $filterBag): self { + public function addFilterBag(FilterBag $filterBag): self + { // A filter bag can only be added to another filter bag if it does not have a parent yet and does not // contain any other filter bags. - throw_if($this->parentFilterBag !== null, new HandlingException("The maximum nesting level of compound filters must not exceed 2.")); + throw_if($this->parentFilterBag !== null, new HandlingException('The maximum nesting level of compound filters must not exceed 2.')); $filterBag->content->each(function ($bag) { - throw_if($bag instanceof FilterBag, new HandlingException("The maximum nesting level of compound filters must not exceed 2.")); + throw_if($bag instanceof FilterBag, new HandlingException('The maximum nesting level of compound filters must not exceed 2.')); }); $filterBag->parentFilterBag = $this; @@ -92,25 +91,24 @@ public function addFilterBag(FilterBag $filterBag): self { /** * @return array */ - public function toQuery() { - - $filters = $this->content->map(function($set) { + public function toQuery() + { + $filters = $this->content->map(function ($set) { return $set->toQuery(); })->toArray(); return [ - $this->operator => $filters + $this->operator => $filters, ]; } - private function isValidOperator($operator) { - $validOperators = ["and", "or"]; + private function isValidOperator($operator) + { + $validOperators = ['and', 'or']; throw_if( - !in_array($operator, $validOperators), - new HandlingException("Invalid operator for FilterBag: " . $operator) + ! in_array($operator, $validOperators), + new HandlingException('Invalid operator for FilterBag: '.$operator) ); } - - -} \ No newline at end of file +} diff --git a/tests/EndpointDatabaseTest.php b/tests/EndpointDatabaseTest.php index ebd3b73..299325d 100644 --- a/tests/EndpointDatabaseTest.php +++ b/tests/EndpointDatabaseTest.php @@ -10,7 +10,6 @@ use Illuminate\Support\Collection; use Illuminate\Support\Facades\Http; - /** * Class EndpointDatabaseTest. * @@ -26,9 +25,8 @@ * @see https://www.notion.so/8284f3ff77e24d4a939d19459e4d6bdc?v=bc3a9ce8cdb84d3faefc9ae490136ac2 * @see https://developers.notion.com/reference/post-database-query */ - it('returns a database endpoint instance', function () { -// TODO make tests work again, update for new Filter behaviour + // TODO make tests work again, update for new Filter behaviour $endpoint = \FiveamCode\LaravelNotionApi\Notion::database('897e5a76ae524b489fdfe71f5945d1af'); $this->assertInstanceOf(Database::class, $endpoint); @@ -121,7 +119,6 @@ $this->assertCount(0, $resultCollection); }); - it('throws a notion exception for a bad request', function () { // failing /v1/databases @@ -139,9 +136,8 @@ Notion::database('8284f3ff77e24d4a939d19459e4d6bdc')->query(); }); - it('queries a database with and without offset and processes result', function () { -// success /v1/databases/DATABASE_DOES_EXIST/query + // success /v1/databases/DATABASE_DOES_EXIST/query Http::fake([ 'https://api.notion.com/v1/databases/8284f3ff77e24d4a939d19459e4d6bdc/query*' => Http::sequence() ->push( @@ -218,4 +214,3 @@ $page = $resultCollection->first(); $this->assertEquals(0, $page->getProperty('Rollup')->getContent()->count()); }); - diff --git a/tests/FilterBagTest.php b/tests/FilterBagTest.php index 9fe037f..4a92c84 100644 --- a/tests/FilterBagTest.php +++ b/tests/FilterBagTest.php @@ -1,8 +1,8 @@ assertArrayHasKey('and', $queryFilter); }); -it('throws an exception when providing an invalid operator', function() { +it('throws an exception when providing an invalid operator', function () { $this->expectException(HandlingException::class); $this->expectExceptionMessage('Invalid operator for FilterBag: invalid'); new FilterBag('invalid'); }); -it('only allows the nesting of FilterBags up to two levels', function() { - +it('only allows the nesting of FilterBags up to two levels', function () { $this->expectException(HandlingException::class); $this->expectExceptionMessage('The maximum nesting level of compound filters must not exceed 2.'); - $filterBag = new FilterBag("and"); + $filterBag = new FilterBag('and'); $filterBag->addFilter( - Filter::rawFilter("Known for", [ - "multi_select" => ["contains" => "UNIVAC"], + Filter::rawFilter('Known for', [ + 'multi_select' => ['contains' => 'UNIVAC'], ]) ); - $nameFilterBag = new FilterBag("or"); + $nameFilterBag = new FilterBag('or'); $nameFilterBag - ->addFilter(Filter::textFilter("Name", Operators::CONTAINS, "Grace")) - ->addFilter(Filter::textFilter("Name", Operators::CONTAINS, "Jean")); + ->addFilter(Filter::textFilter('Name', Operators::CONTAINS, 'Grace')) + ->addFilter(Filter::textFilter('Name', Operators::CONTAINS, 'Jean')); $anotherBag = new FilterBag(); $nameFilterBag->addFilterBag($anotherBag); @@ -56,14 +55,14 @@ $filterBag->addFilterBag($nameFilterBag); }); -it('allows the nesting of multiple FilterBags inside one FilterBag', function() { +it('allows the nesting of multiple FilterBags inside one FilterBag', function () { // TODO }); -it('creates the correct query structure for a nested FilterBag', function() { +it('creates the correct query structure for a nested FilterBag', function () { // TODO }); -it('creates the correct query structure for a FilterBag with one level', function() { +it('creates the correct query structure for a FilterBag with one level', function () { // TODO }); diff --git a/tests/FilterTest.php b/tests/FilterTest.php index 0f12c0e..f040114 100644 --- a/tests/FilterTest.php +++ b/tests/FilterTest.php @@ -1,6 +1,5 @@ assertEquals('Name', $filter->toQuery()['property']); $this->assertArrayHasKey('text', $filter->toQuery()); $this->assertArrayHasKey('equals', $filter->toQuery()['text']); - $this->assertEquals('Ada Lovelace', $filter->toQuery()['text']['equals']);# + $this->assertEquals('Ada Lovelace', $filter->toQuery()['text']['equals']); // }); - it('creates a number filter with the given data', function () { $filter = Filter::numberFilter('Awesomeness Level', Operators::GREATER_THAN_OR_EQUAL_TO, 9000); @@ -40,4 +38,4 @@ $this->expectException(HandlingException::class); $this->expectExceptionMessage('Invalid filter definition.'); $filter->toArray(); -}); \ No newline at end of file +}); diff --git a/tests/Pest.php b/tests/Pest.php index 3948371..613c039 100644 --- a/tests/Pest.php +++ b/tests/Pest.php @@ -2,4 +2,4 @@ use FiveamCode\LaravelNotionApi\Tests\TestCase; -uses(TestCase::class)->in(__DIR__); \ No newline at end of file +uses(TestCase::class)->in(__DIR__); diff --git a/tests/TestCase.php b/tests/TestCase.php index 18e2050..8776b5f 100644 --- a/tests/TestCase.php +++ b/tests/TestCase.php @@ -2,8 +2,8 @@ namespace FiveamCode\LaravelNotionApi\Tests; -use Orchestra\Testbench\TestCase as Orchestra; use FiveamCode\LaravelNotionApi\LaravelNotionApiServiceProvider; +use Orchestra\Testbench\TestCase as Orchestra; class TestCase extends Orchestra { @@ -13,4 +13,4 @@ protected function getPackageProviders($app) LaravelNotionApiServiceProvider::class, ]; } -} \ No newline at end of file +} From 4802f81c5ef7f79c8da5d6fa1a51d2eb69d164aa Mon Sep 17 00:00:00 2001 From: Diana Scharf Date: Mon, 26 Sep 2022 15:39:10 +0200 Subject: [PATCH 05/70] WIP --- composer.json | 6 +-- composer.lock | 72 +++++++++++++++++++++++++++++++++- tests/EndpointDatabaseTest.php | 4 +- tests/TestCase.php | 19 +++++++++ 4 files changed, 95 insertions(+), 6 deletions(-) diff --git a/composer.json b/composer.json index 5623aeb..deb8929 100644 --- a/composer.json +++ b/composer.json @@ -32,6 +32,7 @@ "require-dev": { "orchestra/testbench": "^6.0", "pestphp/pest": "^1.22", + "pestphp/pest-plugin-laravel": "^1.3", "phpunit/phpunit": "^9.0" }, "autoload": { @@ -47,9 +48,8 @@ } }, "scripts": { - "test": "vendor/bin/phpunit", - "test-coverage": "vendor/bin/phpunit --coverage-html coverage" - + "test": "vendor/bin/pest", + "test-coverage": "vendor/bin/pest --coverage-html coverage" }, "config": { "sort-packages": true diff --git a/composer.lock b/composer.lock index 7925d58..be3cf19 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "f4cacbe7621312719a0ba568e9d88b24", + "content-hash": "3d4583cf47507562d5a0a26237aea3d0", "packages": [ { "name": "brick/math", @@ -5930,6 +5930,76 @@ ], "time": "2022-09-18T13:18:17+00:00" }, + { + "name": "pestphp/pest-plugin-laravel", + "version": "v1.3.0", + "source": { + "type": "git", + "url": "https://github.com/pestphp/pest-plugin-laravel.git", + "reference": "561930875e0336441f93fbd120fd53a2a890a8f5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/pestphp/pest-plugin-laravel/zipball/561930875e0336441f93fbd120fd53a2a890a8f5", + "reference": "561930875e0336441f93fbd120fd53a2a890a8f5", + "shasum": "" + }, + "require": { + "laravel/framework": "^7.30.6 || ^8.83.23 || ^9.30.1", + "pestphp/pest": "^1.22.1", + "php": "^7.3 || ^8.0" + }, + "require-dev": { + "orchestra/testbench": "^5.20.0 || ^6.25.0 || ^7.7.0", + "pestphp/pest-dev-tools": "dev-master" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.x-dev" + } + }, + "autoload": { + "files": [ + "src/Autoload.php" + ], + "psr-4": { + "Pest\\Laravel\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "The Pest Laravel Plugin", + "keywords": [ + "framework", + "laravel", + "pest", + "php", + "test", + "testing", + "unit" + ], + "support": { + "source": "https://github.com/pestphp/pest-plugin-laravel/tree/v1.3.0" + }, + "funding": [ + { + "url": "https://www.paypal.com/paypalme/enunomaduro", + "type": "custom" + }, + { + "url": "https://github.com/nunomaduro", + "type": "github" + }, + { + "url": "https://www.patreon.com/nunomaduro", + "type": "patreon" + } + ], + "time": "2022-09-18T13:04:53+00:00" + }, { "name": "phar-io/manifest", "version": "2.0.3", diff --git a/tests/EndpointDatabaseTest.php b/tests/EndpointDatabaseTest.php index ebd3b73..4b080c4 100644 --- a/tests/EndpointDatabaseTest.php +++ b/tests/EndpointDatabaseTest.php @@ -10,7 +10,6 @@ use Illuminate\Support\Collection; use Illuminate\Support\Facades\Http; - /** * Class EndpointDatabaseTest. * @@ -28,8 +27,9 @@ */ it('returns a database endpoint instance', function () { + // TODO make tests work again, update for new Filter behaviour - $endpoint = \FiveamCode\LaravelNotionApi\Notion::database('897e5a76ae524b489fdfe71f5945d1af'); + $endpoint = \Notion::database('897e5a76ae524b489fdfe71f5945d1af'); $this->assertInstanceOf(Database::class, $endpoint); }); diff --git a/tests/TestCase.php b/tests/TestCase.php index 18e2050..bf4db7b 100644 --- a/tests/TestCase.php +++ b/tests/TestCase.php @@ -2,15 +2,34 @@ namespace FiveamCode\LaravelNotionApi\Tests; +use Illuminate\Database\Eloquent\Factories\Factory; use Orchestra\Testbench\TestCase as Orchestra; use FiveamCode\LaravelNotionApi\LaravelNotionApiServiceProvider; class TestCase extends Orchestra { + protected function setUp(): void + { + parent::setUp(); + + Factory::guessFactoryNamesUsing( + fn (string $modelName) => 'VendorName\\Skeleton\\Database\\Factories\\'.class_basename($modelName).'Factory' + ); + } + protected function getPackageProviders($app) { return [ LaravelNotionApiServiceProvider::class, ]; } + public function getEnvironmentSetUp($app) + { + config()->set('database.default', 'testing'); + + /* + $migration = include __DIR__.'/../database/migrations/create_skeleton_table.php.stub'; + $migration->up(); + */ + } } \ No newline at end of file From fd73d83c9f4019392049beee9183ba1f3a01a7b2 Mon Sep 17 00:00:00 2001 From: Di Date: Mon, 26 Sep 2022 15:40:32 +0200 Subject: [PATCH 06/70] Apply fixes from StyleCI (#84) --- tests/EndpointDatabaseTest.php | 6 +----- tests/TestCase.php | 5 +++-- 2 files changed, 4 insertions(+), 7 deletions(-) diff --git a/tests/EndpointDatabaseTest.php b/tests/EndpointDatabaseTest.php index 4b080c4..b6d74d1 100644 --- a/tests/EndpointDatabaseTest.php +++ b/tests/EndpointDatabaseTest.php @@ -25,7 +25,6 @@ * @see https://www.notion.so/8284f3ff77e24d4a939d19459e4d6bdc?v=bc3a9ce8cdb84d3faefc9ae490136ac2 * @see https://developers.notion.com/reference/post-database-query */ - it('returns a database endpoint instance', function () { // TODO make tests work again, update for new Filter behaviour @@ -121,7 +120,6 @@ $this->assertCount(0, $resultCollection); }); - it('throws a notion exception for a bad request', function () { // failing /v1/databases @@ -139,9 +137,8 @@ Notion::database('8284f3ff77e24d4a939d19459e4d6bdc')->query(); }); - it('queries a database with and without offset and processes result', function () { -// success /v1/databases/DATABASE_DOES_EXIST/query + // success /v1/databases/DATABASE_DOES_EXIST/query Http::fake([ 'https://api.notion.com/v1/databases/8284f3ff77e24d4a939d19459e4d6bdc/query*' => Http::sequence() ->push( @@ -218,4 +215,3 @@ $page = $resultCollection->first(); $this->assertEquals(0, $page->getProperty('Rollup')->getContent()->count()); }); - diff --git a/tests/TestCase.php b/tests/TestCase.php index bf4db7b..69331a5 100644 --- a/tests/TestCase.php +++ b/tests/TestCase.php @@ -2,9 +2,9 @@ namespace FiveamCode\LaravelNotionApi\Tests; +use FiveamCode\LaravelNotionApi\LaravelNotionApiServiceProvider; use Illuminate\Database\Eloquent\Factories\Factory; use Orchestra\Testbench\TestCase as Orchestra; -use FiveamCode\LaravelNotionApi\LaravelNotionApiServiceProvider; class TestCase extends Orchestra { @@ -23,6 +23,7 @@ protected function getPackageProviders($app) LaravelNotionApiServiceProvider::class, ]; } + public function getEnvironmentSetUp($app) { config()->set('database.default', 'testing'); @@ -32,4 +33,4 @@ public function getEnvironmentSetUp($app) $migration->up(); */ } -} \ No newline at end of file +} From 578b36c4e403c86351b4e111817589da95a69db8 Mon Sep 17 00:00:00 2001 From: Diana Scharf Date: Mon, 26 Sep 2022 16:19:43 +0200 Subject: [PATCH 07/70] Pest tests work now properly, thanks to @mpociot --- tests/EndpointDatabaseTest.php | 6 +++--- tests/NotionApiTest.php | 13 ++----------- tests/Pest.php | 4 ++-- tests/TestCase.php | 35 ---------------------------------- 4 files changed, 7 insertions(+), 51 deletions(-) delete mode 100644 tests/TestCase.php diff --git a/tests/EndpointDatabaseTest.php b/tests/EndpointDatabaseTest.php index 4b080c4..0ab5fc7 100644 --- a/tests/EndpointDatabaseTest.php +++ b/tests/EndpointDatabaseTest.php @@ -28,13 +28,13 @@ it('returns a database endpoint instance', function () { -// TODO make tests work again, update for new Filter behaviour - $endpoint = \Notion::database('897e5a76ae524b489fdfe71f5945d1af'); +// TODO update for new Filter behaviour + $endpoint = Notion::database('897e5a76ae524b489fdfe71f5945d1af'); $this->assertInstanceOf(Database::class, $endpoint); }); -it('queries a database with filter and sorting and processes result', function () { +it('queries a database with filter and sorting and processes result', function ($limit) { // success /v1/databases/DATABASE_DOES_EXIST/query Http::fake([ 'https://api.notion.com/v1/databases/8284f3ff77e24d4a939d19459e4d6bdc/query*' => Http::response( diff --git a/tests/NotionApiTest.php b/tests/NotionApiTest.php index 7e0b738..6e736c2 100644 --- a/tests/NotionApiTest.php +++ b/tests/NotionApiTest.php @@ -5,16 +5,12 @@ use FiveamCode\LaravelNotionApi\Notion; use FiveamCode\LaravelNotionApi\NotionFacade; use Illuminate\Support\Collection; -use Orchestra\Testbench\TestCase; +use Orchestra\Testbench\TestCase as Orchestra; /** - * Class EndpointPageTest. * - * The fake API responses are based on our test environment (since the current Notion examples do not match with the actual calls). - * - * @see https://developers.notion.com/reference/get-page */ -class NotionApiTest extends TestCase +class NotionApiTest extends Orchestra { /** * @param \Illuminate\Foundation\Application $app @@ -51,9 +47,4 @@ protected function assertContainsInstanceOf(string $class, $haystack): bool return false; } - /** @test */ - public function it_asserts_true() - { - $this->assertTrue(true); - } } diff --git a/tests/Pest.php b/tests/Pest.php index 613c039..047ff43 100644 --- a/tests/Pest.php +++ b/tests/Pest.php @@ -1,5 +1,5 @@ in(__DIR__); +uses(NotionApiTest::class)->in(__DIR__); diff --git a/tests/TestCase.php b/tests/TestCase.php deleted file mode 100644 index bf4db7b..0000000 --- a/tests/TestCase.php +++ /dev/null @@ -1,35 +0,0 @@ - 'VendorName\\Skeleton\\Database\\Factories\\'.class_basename($modelName).'Factory' - ); - } - - protected function getPackageProviders($app) - { - return [ - LaravelNotionApiServiceProvider::class, - ]; - } - public function getEnvironmentSetUp($app) - { - config()->set('database.default', 'testing'); - - /* - $migration = include __DIR__.'/../database/migrations/create_skeleton_table.php.stub'; - $migration->up(); - */ - } -} \ No newline at end of file From 377ae88eebad0deaa3f78c2daeeb5b5ba6b620cd Mon Sep 17 00:00:00 2001 From: Di Date: Mon, 26 Sep 2022 16:20:27 +0200 Subject: [PATCH 08/70] Apply fixes from StyleCI (#85) --- tests/NotionApiTest.php | 5 ----- 1 file changed, 5 deletions(-) diff --git a/tests/NotionApiTest.php b/tests/NotionApiTest.php index 6e736c2..f98c39c 100644 --- a/tests/NotionApiTest.php +++ b/tests/NotionApiTest.php @@ -2,14 +2,10 @@ namespace FiveamCode\LaravelNotionApi\Tests; -use FiveamCode\LaravelNotionApi\Notion; use FiveamCode\LaravelNotionApi\NotionFacade; use Illuminate\Support\Collection; use Orchestra\Testbench\TestCase as Orchestra; -/** - * - */ class NotionApiTest extends Orchestra { /** @@ -46,5 +42,4 @@ protected function assertContainsInstanceOf(string $class, $haystack): bool return false; } - } From 40354b66371f00f162ece3ce08ac582c6fbaa2ac Mon Sep 17 00:00:00 2001 From: Francesco Schirinzi Date: Tue, 15 Nov 2022 21:35:41 +0100 Subject: [PATCH 09/70] search endpoint: fix cursor not passed correctly --- src/Endpoints/Search.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Endpoints/Search.php b/src/Endpoints/Search.php index a11ae08..ffa65f1 100644 --- a/src/Endpoints/Search.php +++ b/src/Endpoints/Search.php @@ -61,7 +61,7 @@ public function query(): EntityCollection } if ($this->startCursor !== null) { - $postData['start_cursor'] = $this->startCursor; + $postData['start_cursor'] = $this->startCursor->__toString(); } if ($this->pageSize !== null) { From e2a34be351762fdbaa39083bebaec94e971d89c0 Mon Sep 17 00:00:00 2001 From: Francesco Schirinzi Date: Tue, 15 Nov 2022 21:42:34 +0100 Subject: [PATCH 10/70] NotionException: use status from http response --- src/Exceptions/NotionException.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Exceptions/NotionException.php b/src/Exceptions/NotionException.php index 846ccfc..071ec58 100644 --- a/src/Exceptions/NotionException.php +++ b/src/Exceptions/NotionException.php @@ -46,7 +46,7 @@ public static function fromResponse(Response $response): NotionException return new NotionException( $message, - 0, + $response->status(), $response->toException() ); } From 11639f54055a562e11fe742ca4658cd4b0168194 Mon Sep 17 00:00:00 2001 From: Diana Scharf Date: Wed, 7 Dec 2022 10:34:02 +0100 Subject: [PATCH 11/70] Pest tests work now properly, thanks to @mpociot --- composer.json | 4 ++-- src/Endpoints/Database.php | 20 ++++++++++++++++---- src/Notion.php | 2 +- tests/NotionApiTest.php | 11 ++--------- tests/Pest.php | 5 +++++ tests/SortingTest.php | 30 ++++++++++++++++++++++++++++++ 6 files changed, 56 insertions(+), 16 deletions(-) create mode 100644 tests/Pest.php create mode 100644 tests/SortingTest.php diff --git a/composer.json b/composer.json index 5623aeb..f3b9f76 100644 --- a/composer.json +++ b/composer.json @@ -47,8 +47,8 @@ } }, "scripts": { - "test": "vendor/bin/phpunit", - "test-coverage": "vendor/bin/phpunit --coverage-html coverage" + "test": "vendor/bin/pest", + "test-coverage": "vendor/bin/pest --coverage-html coverage" }, "config": { diff --git a/src/Endpoints/Database.php b/src/Endpoints/Database.php index 90a1c90..5519d65 100644 --- a/src/Endpoints/Database.php +++ b/src/Endpoints/Database.php @@ -4,6 +4,7 @@ use FiveamCode\LaravelNotionApi\Entities\Collections\EntityCollection; use FiveamCode\LaravelNotionApi\Entities\Collections\PageCollection; +use FiveamCode\LaravelNotionApi\Exceptions\HandlingException; use FiveamCode\LaravelNotionApi\Notion; use FiveamCode\LaravelNotionApi\Query\Filters\Filter; use FiveamCode\LaravelNotionApi\Query\Sorting; @@ -96,12 +97,23 @@ public function filterBy(Collection $filter): Database } /** - * @param Collection $sorts - * @return $this + * @param Collection|Sorting $sorts + * @return Database $this + * + * @throws HandlingException + * + * @todo As soon as this package drops PHP 7.4 support, we can use union types here (Sorting and Collection) */ - public function sortBy(Collection $sorts): Database + public function sortBy($sorts): Database { - $this->sorts = $sorts; + if($sorts instanceof Sorting) { + $this->sorts->push($sorts); + } elseif($sorts instanceof Collection) { + $this->sorts = $sorts; + } + else { + throw new HandlingException("The parameter 'sorts' must be either a instance of the class Sorting or a Collection of Sortings."); + } return $this; } diff --git a/src/Notion.php b/src/Notion.php index 8ef9eca..29e543b 100644 --- a/src/Notion.php +++ b/src/Notion.php @@ -240,7 +240,7 @@ private function mapVersionToHeaderVersion(): string { switch ($this->version) { case 'v1': - return '2021-05-13'; + return '2022-06-28'; default: throw new HandlingException('Invalid version.'); } diff --git a/tests/NotionApiTest.php b/tests/NotionApiTest.php index 7e0b738..32b9468 100644 --- a/tests/NotionApiTest.php +++ b/tests/NotionApiTest.php @@ -5,8 +5,7 @@ use FiveamCode\LaravelNotionApi\Notion; use FiveamCode\LaravelNotionApi\NotionFacade; use Illuminate\Support\Collection; -use Orchestra\Testbench\TestCase; - +use Orchestra\Testbench\TestCase as Orchestra; /** * Class EndpointPageTest. * @@ -14,7 +13,7 @@ * * @see https://developers.notion.com/reference/get-page */ -class NotionApiTest extends TestCase +class NotionApiTest extends Orchestra { /** * @param \Illuminate\Foundation\Application $app @@ -50,10 +49,4 @@ protected function assertContainsInstanceOf(string $class, $haystack): bool return false; } - - /** @test */ - public function it_asserts_true() - { - $this->assertTrue(true); - } } diff --git a/tests/Pest.php b/tests/Pest.php new file mode 100644 index 0000000..29ba777 --- /dev/null +++ b/tests/Pest.php @@ -0,0 +1,5 @@ +in(__DIR__); \ No newline at end of file diff --git a/tests/SortingTest.php b/tests/SortingTest.php new file mode 100644 index 0000000..1f1920a --- /dev/null +++ b/tests/SortingTest.php @@ -0,0 +1,30 @@ +assertEquals($expectedSortQuery, json_encode(Sorting::sortQuery($sortBy)));}); + +it('can sort by multiple properties', function () { + $expectedSortQuery = '[{"timestamp":"created_time","direction":"ascending"},{"property":"Birth year","direction":"ascending"}]'; + + $sortings = new Collection(); + + $sortings->add(Sorting::timestampSort("created_time", "ascending")); + $sortings->add(Sorting::propertySort("Birth year", "ascending")); + + $this->assertEquals($expectedSortQuery, json_encode(Sorting::sortQuery($sortings))); +}); + +it('refuses other classes than sorting or collection in the sortBy() method', function () { + $this->expectException(HandlingException::class); + + Notion::database('8284f3ff77e24d4a939d19459e4d6bdc') + ->sortBy(new stdClass()) + ->query(); +}); \ No newline at end of file From e48aef4d50b89d476aa23eb812287d08be9e45be Mon Sep 17 00:00:00 2001 From: Diana Scharf Date: Wed, 7 Dec 2022 10:49:49 +0100 Subject: [PATCH 12/70] use union types for sortBy method; removed PHP 7.4 support --- composer.json | 2 +- src/Endpoints/Database.php | 20 +++++++++++--------- src/Notion.php | 4 ++-- 3 files changed, 14 insertions(+), 12 deletions(-) diff --git a/composer.json b/composer.json index f3b9f76..3e718c1 100644 --- a/composer.json +++ b/composer.json @@ -25,7 +25,7 @@ } ], "require": { - "php": "^7.4|^8.0", + "php": "^8.0", "guzzlehttp/guzzle": "^7.0.1", "illuminate/support": "^8.0|^9.0" }, diff --git a/src/Endpoints/Database.php b/src/Endpoints/Database.php index 5519d65..23b6f22 100644 --- a/src/Endpoints/Database.php +++ b/src/Endpoints/Database.php @@ -102,17 +102,19 @@ public function filterBy(Collection $filter): Database * * @throws HandlingException * - * @todo As soon as this package drops PHP 7.4 support, we can use union types here (Sorting and Collection) */ - public function sortBy($sorts): Database + public function sortBy(Sorting|Collection $sorts): Database { - if($sorts instanceof Sorting) { - $this->sorts->push($sorts); - } elseif($sorts instanceof Collection) { - $this->sorts = $sorts; - } - else { - throw new HandlingException("The parameter 'sorts' must be either a instance of the class Sorting or a Collection of Sortings."); + $sortInstance = get_class($sorts); + switch($sortInstance) { + case Sorting::class: + $this->sorts->push($sorts); + break; + case Collection::class: + $this->sorts = $sorts; + break; + default: + throw new HandlingException("The parameter 'sorts' must be either a instance of the class Sorting or a Collection of Sortings."); } return $this; diff --git a/src/Notion.php b/src/Notion.php index 29e543b..3778040 100644 --- a/src/Notion.php +++ b/src/Notion.php @@ -227,7 +227,7 @@ private function buildRequestHeader(): array } /** - * Due to the inconsistency of the Notion API requiring a endpoint url + * Due to the inconsistency of the Notion API requiring an endpoint url * with v* as well as a dated version in the request header, this method * maps the given version (e.g. v1) to the version date Notion requires * in the header (e.g. "2021-05-13"). @@ -240,7 +240,7 @@ private function mapVersionToHeaderVersion(): string { switch ($this->version) { case 'v1': - return '2022-06-28'; + return '2021-05-13'; default: throw new HandlingException('Invalid version.'); } From cc624f3f2e5563d4ce5db475c597fdc22ac6684d Mon Sep 17 00:00:00 2001 From: Diana Scharf Date: Wed, 7 Dec 2022 10:53:37 +0100 Subject: [PATCH 13/70] updated tests for sortings; allowed union type in query helper --- src/Query/Sorting.php | 14 +++++++++----- tests/SortingTest.php | 4 ++-- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/src/Query/Sorting.php b/src/Query/Sorting.php index 919f095..817b55f 100644 --- a/src/Query/Sorting.php +++ b/src/Query/Sorting.php @@ -93,16 +93,20 @@ public function toArray(): array } /** - * @param Collection $sortings + * @param Sorting|Collection $sortings * @return array */ - public static function sortQuery(Collection $sortings): array + public static function sortQuery(Sorting|Collection $sortings): array { $querySortings = new Collection(); - $sortings->each(function (Sorting $sorting) use ($querySortings) { - $querySortings->add($sorting->toArray()); - }); + if($sortings instanceof Collection) { + $sortings->each(function (Sorting $sorting) use ($querySortings) { + $querySortings->push($sorting->toArray()); + }); + } else { + $querySortings->push($sortings->toArray()); + } return $querySortings->toArray(); } diff --git a/tests/SortingTest.php b/tests/SortingTest.php index 1f1920a..c99741a 100644 --- a/tests/SortingTest.php +++ b/tests/SortingTest.php @@ -5,7 +5,7 @@ use Illuminate\Support\Collection; it('can sort by a single property', function () { - $expectedSortQuery = '[{"property":"Birth year","direction":"ascending"}'; + $expectedSortQuery = '[{"property":"Birth year","direction":"ascending"}]'; $sortBy = Sorting::propertySort("Birth year", "ascending"); $this->assertEquals($expectedSortQuery, json_encode(Sorting::sortQuery($sortBy)));}); @@ -22,7 +22,7 @@ }); it('refuses other classes than sorting or collection in the sortBy() method', function () { - $this->expectException(HandlingException::class); + $this->expectException(TypeError::class); Notion::database('8284f3ff77e24d4a939d19459e4d6bdc') ->sortBy(new stdClass()) From c561b8c075d7cebd949a4f87e36411bf3e157d86 Mon Sep 17 00:00:00 2001 From: Di Date: Wed, 7 Dec 2022 10:54:02 +0100 Subject: [PATCH 14/70] Apply fixes from StyleCI (#91) --- src/Endpoints/Database.php | 5 ++--- src/Query/Sorting.php | 2 +- tests/NotionApiTest.php | 1 + tests/Pest.php | 2 +- tests/SortingTest.php | 12 ++++++------ 5 files changed, 11 insertions(+), 11 deletions(-) diff --git a/src/Endpoints/Database.php b/src/Endpoints/Database.php index 23b6f22..eeb7e96 100644 --- a/src/Endpoints/Database.php +++ b/src/Endpoints/Database.php @@ -97,16 +97,15 @@ public function filterBy(Collection $filter): Database } /** - * @param Collection|Sorting $sorts + * @param Collection|Sorting $sorts * @return Database $this * * @throws HandlingException - * */ public function sortBy(Sorting|Collection $sorts): Database { $sortInstance = get_class($sorts); - switch($sortInstance) { + switch ($sortInstance) { case Sorting::class: $this->sorts->push($sorts); break; diff --git a/src/Query/Sorting.php b/src/Query/Sorting.php index 817b55f..113724d 100644 --- a/src/Query/Sorting.php +++ b/src/Query/Sorting.php @@ -100,7 +100,7 @@ public static function sortQuery(Sorting|Collection $sortings): array { $querySortings = new Collection(); - if($sortings instanceof Collection) { + if ($sortings instanceof Collection) { $sortings->each(function (Sorting $sorting) use ($querySortings) { $querySortings->push($sorting->toArray()); }); diff --git a/tests/NotionApiTest.php b/tests/NotionApiTest.php index 32b9468..6dea0e9 100644 --- a/tests/NotionApiTest.php +++ b/tests/NotionApiTest.php @@ -6,6 +6,7 @@ use FiveamCode\LaravelNotionApi\NotionFacade; use Illuminate\Support\Collection; use Orchestra\Testbench\TestCase as Orchestra; + /** * Class EndpointPageTest. * diff --git a/tests/Pest.php b/tests/Pest.php index 29ba777..047ff43 100644 --- a/tests/Pest.php +++ b/tests/Pest.php @@ -2,4 +2,4 @@ use FiveamCode\LaravelNotionApi\Tests\NotionApiTest; -uses(NotionApiTest::class)->in(__DIR__); \ No newline at end of file +uses(NotionApiTest::class)->in(__DIR__); diff --git a/tests/SortingTest.php b/tests/SortingTest.php index c99741a..410c181 100644 --- a/tests/SortingTest.php +++ b/tests/SortingTest.php @@ -1,22 +1,22 @@ assertEquals($expectedSortQuery, json_encode(Sorting::sortQuery($sortBy)));}); + $sortBy = Sorting::propertySort('Birth year', 'ascending'); + $this->assertEquals($expectedSortQuery, json_encode(Sorting::sortQuery($sortBy))); +}); it('can sort by multiple properties', function () { $expectedSortQuery = '[{"timestamp":"created_time","direction":"ascending"},{"property":"Birth year","direction":"ascending"}]'; $sortings = new Collection(); - $sortings->add(Sorting::timestampSort("created_time", "ascending")); - $sortings->add(Sorting::propertySort("Birth year", "ascending")); + $sortings->add(Sorting::timestampSort('created_time', 'ascending')); + $sortings->add(Sorting::propertySort('Birth year', 'ascending')); $this->assertEquals($expectedSortQuery, json_encode(Sorting::sortQuery($sortings))); }); @@ -27,4 +27,4 @@ Notion::database('8284f3ff77e24d4a939d19459e4d6bdc') ->sortBy(new stdClass()) ->query(); -}); \ No newline at end of file +}); From a03a01e7e9b3e1c3fe5c2251cbdcd9937e2d99e9 Mon Sep 17 00:00:00 2001 From: Diana Scharf Date: Wed, 7 Dec 2022 11:03:36 +0100 Subject: [PATCH 15/70] removed sortBy method from Search endpoint because it's not allowed anyway --- src/Endpoints/Search.php | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/src/Endpoints/Search.php b/src/Endpoints/Search.php index a11ae08..581552a 100644 --- a/src/Endpoints/Search.php +++ b/src/Endpoints/Search.php @@ -160,14 +160,4 @@ public function filterBy(string $filter): Search return $this; } - /** - * @param Sorting $sort - * @return $this - */ - public function sortBy(Sorting $sort): Search - { - $this->sort = $sort; - - return $this; - } } From f2d3c46c3f5003705e838d54bca6a84c3af9979e Mon Sep 17 00:00:00 2001 From: Di Date: Wed, 7 Dec 2022 11:04:02 +0100 Subject: [PATCH 16/70] Apply fixes from StyleCI (#92) --- src/Endpoints/Search.php | 1 - 1 file changed, 1 deletion(-) diff --git a/src/Endpoints/Search.php b/src/Endpoints/Search.php index 581552a..c65848f 100644 --- a/src/Endpoints/Search.php +++ b/src/Endpoints/Search.php @@ -159,5 +159,4 @@ public function filterBy(string $filter): Search return $this; } - } From 0be3d152b2ef84a9c23317bf27fd913b0f16628c Mon Sep 17 00:00:00 2001 From: Diana Scharf Date: Wed, 7 Dec 2022 11:36:02 +0100 Subject: [PATCH 17/70] change workflow to pest --- .github/workflows/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index b914550..caf7b39 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -45,4 +45,4 @@ jobs: composer update --${{ matrix.dependency-version }} --prefer-dist --no-interaction --no-suggest - name: Execute tests - run: vendor/bin/phpunit tests \ No newline at end of file + run: vendor/bin/pest tests \ No newline at end of file From ed303382b8b1d7611380ca0fbba1265f3084af0f Mon Sep 17 00:00:00 2001 From: Diana Scharf Date: Wed, 7 Dec 2022 11:37:20 +0100 Subject: [PATCH 18/70] Remove PHP 7.4 from workflow test matrix --- .github/workflows/main.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index caf7b39..7c56835 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -12,7 +12,6 @@ jobs: php: - '8.1' - '8.0' - - '7.4' laravel: - '8.*' testbench: From 44c3cc2e5e4e3bb8b9bb4620f1fd18250e7ce6cb Mon Sep 17 00:00:00 2001 From: Daniel Haven <49914607+danielh-official@users.noreply.github.com> Date: Sun, 18 Dec 2022 17:38:45 -0500 Subject: [PATCH 19/70] update composer.lock --- composer.lock | 3386 +++++++++++++++++++++++++++++++++---------------- 1 file changed, 2261 insertions(+), 1125 deletions(-) diff --git a/composer.lock b/composer.lock index 655342b..9a97f30 100644 --- a/composer.lock +++ b/composer.lock @@ -4,20 +4,20 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "35c11724161fcc925bc8243a1690ef1c", + "content-hash": "82491eb257c9059c297557ef5430d6ca", "packages": [ { "name": "brick/math", - "version": "0.9.2", + "version": "0.9.3", "source": { "type": "git", "url": "https://github.com/brick/math.git", - "reference": "dff976c2f3487d42c1db75a3b180e2b9f0e72ce0" + "reference": "ca57d18f028f84f777b2168cd1911b0dee2343ae" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/brick/math/zipball/dff976c2f3487d42c1db75a3b180e2b9f0e72ce0", - "reference": "dff976c2f3487d42c1db75a3b180e2b9f0e72ce0", + "url": "https://api.github.com/repos/brick/math/zipball/ca57d18f028f84f777b2168cd1911b0dee2343ae", + "reference": "ca57d18f028f84f777b2168cd1911b0dee2343ae", "shasum": "" }, "require": { @@ -27,7 +27,7 @@ "require-dev": { "php-coveralls/php-coveralls": "^2.2", "phpunit/phpunit": "^7.5.15 || ^8.5 || ^9.0", - "vimeo/psalm": "4.3.2" + "vimeo/psalm": "4.9.2" }, "type": "library", "autoload": { @@ -52,46 +52,121 @@ ], "support": { "issues": "https://github.com/brick/math/issues", - "source": "https://github.com/brick/math/tree/0.9.2" + "source": "https://github.com/brick/math/tree/0.9.3" }, "funding": [ + { + "url": "https://github.com/BenMorel", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/brick/math", "type": "tidelift" } ], - "time": "2021-01-20T22:51:39+00:00" + "time": "2021-08-15T20:50:18+00:00" }, { - "name": "doctrine/inflector", - "version": "2.0.3", + "name": "dflydev/dot-access-data", + "version": "v3.0.2", "source": { "type": "git", - "url": "https://github.com/doctrine/inflector.git", - "reference": "9cf661f4eb38f7c881cac67c75ea9b00bf97b210" + "url": "https://github.com/dflydev/dflydev-dot-access-data.git", + "reference": "f41715465d65213d644d3141a6a93081be5d3549" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/inflector/zipball/9cf661f4eb38f7c881cac67c75ea9b00bf97b210", - "reference": "9cf661f4eb38f7c881cac67c75ea9b00bf97b210", + "url": "https://api.github.com/repos/dflydev/dflydev-dot-access-data/zipball/f41715465d65213d644d3141a6a93081be5d3549", + "reference": "f41715465d65213d644d3141a6a93081be5d3549", "shasum": "" }, "require": { - "php": "^7.2 || ^8.0" + "php": "^7.1 || ^8.0" }, "require-dev": { - "doctrine/coding-standard": "^7.0", - "phpstan/phpstan": "^0.11", - "phpstan/phpstan-phpunit": "^0.11", - "phpstan/phpstan-strict-rules": "^0.11", - "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0" + "phpstan/phpstan": "^0.12.42", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.3", + "scrutinizer/ocular": "1.6.0", + "squizlabs/php_codesniffer": "^3.5", + "vimeo/psalm": "^4.0.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0.x-dev" + "dev-main": "3.x-dev" + } + }, + "autoload": { + "psr-4": { + "Dflydev\\DotAccessData\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Dragonfly Development Inc.", + "email": "info@dflydev.com", + "homepage": "http://dflydev.com" + }, + { + "name": "Beau Simensen", + "email": "beau@dflydev.com", + "homepage": "http://beausimensen.com" + }, + { + "name": "Carlos Frutos", + "email": "carlos@kiwing.it", + "homepage": "https://github.com/cfrutos" + }, + { + "name": "Colin O'Dell", + "email": "colinodell@gmail.com", + "homepage": "https://www.colinodell.com" } + ], + "description": "Given a deep data structure, access data by dot notation.", + "homepage": "https://github.com/dflydev/dflydev-dot-access-data", + "keywords": [ + "access", + "data", + "dot", + "notation" + ], + "support": { + "issues": "https://github.com/dflydev/dflydev-dot-access-data/issues", + "source": "https://github.com/dflydev/dflydev-dot-access-data/tree/v3.0.2" + }, + "time": "2022-10-27T11:44:00+00:00" + }, + { + "name": "doctrine/inflector", + "version": "2.0.6", + "source": { + "type": "git", + "url": "https://github.com/doctrine/inflector.git", + "reference": "d9d313a36c872fd6ee06d9a6cbcf713eaa40f024" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/inflector/zipball/d9d313a36c872fd6ee06d9a6cbcf713eaa40f024", + "reference": "d9d313a36c872fd6ee06d9a6cbcf713eaa40f024", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0" + }, + "require-dev": { + "doctrine/coding-standard": "^10", + "phpstan/phpstan": "^1.8", + "phpstan/phpstan-phpunit": "^1.1", + "phpstan/phpstan-strict-rules": "^1.3", + "phpunit/phpunit": "^8.5 || ^9.5", + "vimeo/psalm": "^4.25" }, + "type": "library", "autoload": { "psr-4": { "Doctrine\\Inflector\\": "lib/Doctrine/Inflector" @@ -139,7 +214,7 @@ ], "support": { "issues": "https://github.com/doctrine/inflector/issues", - "source": "https://github.com/doctrine/inflector/tree/2.0.x" + "source": "https://github.com/doctrine/inflector/tree/2.0.6" }, "funding": [ { @@ -155,36 +230,32 @@ "type": "tidelift" } ], - "time": "2020-05-29T15:13:26+00:00" + "time": "2022-10-20T09:10:12+00:00" }, { "name": "doctrine/lexer", - "version": "1.2.1", + "version": "1.2.3", "source": { "type": "git", "url": "https://github.com/doctrine/lexer.git", - "reference": "e864bbf5904cb8f5bb334f99209b48018522f042" + "reference": "c268e882d4dbdd85e36e4ad69e02dc284f89d229" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/lexer/zipball/e864bbf5904cb8f5bb334f99209b48018522f042", - "reference": "e864bbf5904cb8f5bb334f99209b48018522f042", + "url": "https://api.github.com/repos/doctrine/lexer/zipball/c268e882d4dbdd85e36e4ad69e02dc284f89d229", + "reference": "c268e882d4dbdd85e36e4ad69e02dc284f89d229", "shasum": "" }, "require": { - "php": "^7.2 || ^8.0" + "php": "^7.1 || ^8.0" }, "require-dev": { - "doctrine/coding-standard": "^6.0", - "phpstan/phpstan": "^0.11.8", - "phpunit/phpunit": "^8.2" + "doctrine/coding-standard": "^9.0", + "phpstan/phpstan": "^1.3", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", + "vimeo/psalm": "^4.11" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.2.x-dev" - } - }, "autoload": { "psr-4": { "Doctrine\\Common\\Lexer\\": "lib/Doctrine/Common/Lexer" @@ -219,7 +290,7 @@ ], "support": { "issues": "https://github.com/doctrine/lexer/issues", - "source": "https://github.com/doctrine/lexer/tree/1.2.1" + "source": "https://github.com/doctrine/lexer/tree/1.2.3" }, "funding": [ { @@ -235,33 +306,33 @@ "type": "tidelift" } ], - "time": "2020-05-25T17:44:05+00:00" + "time": "2022-02-28T11:07:21+00:00" }, { "name": "dragonmantank/cron-expression", - "version": "v3.1.0", + "version": "v3.3.2", "source": { "type": "git", "url": "https://github.com/dragonmantank/cron-expression.git", - "reference": "7a8c6e56ab3ffcc538d05e8155bb42269abf1a0c" + "reference": "782ca5968ab8b954773518e9e49a6f892a34b2a8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/dragonmantank/cron-expression/zipball/7a8c6e56ab3ffcc538d05e8155bb42269abf1a0c", - "reference": "7a8c6e56ab3ffcc538d05e8155bb42269abf1a0c", + "url": "https://api.github.com/repos/dragonmantank/cron-expression/zipball/782ca5968ab8b954773518e9e49a6f892a34b2a8", + "reference": "782ca5968ab8b954773518e9e49a6f892a34b2a8", "shasum": "" }, "require": { "php": "^7.2|^8.0", - "webmozart/assert": "^1.7.0" + "webmozart/assert": "^1.0" }, "replace": { "mtdowling/cron-expression": "^1.0" }, "require-dev": { "phpstan/extension-installer": "^1.0", - "phpstan/phpstan": "^0.12", - "phpstan/phpstan-webmozart-assert": "^0.12.7", + "phpstan/phpstan": "^1.0", + "phpstan/phpstan-webmozart-assert": "^1.0", "phpunit/phpunit": "^7.0|^8.0|^9.0" }, "type": "library", @@ -288,7 +359,7 @@ ], "support": { "issues": "https://github.com/dragonmantank/cron-expression/issues", - "source": "https://github.com/dragonmantank/cron-expression/tree/v3.1.0" + "source": "https://github.com/dragonmantank/cron-expression/tree/v3.3.2" }, "funding": [ { @@ -296,7 +367,7 @@ "type": "github" } ], - "time": "2020-11-24T19:55:57+00:00" + "time": "2022-09-10T18:51:20+00:00" }, { "name": "egulias/email-validator", @@ -368,31 +439,26 @@ }, { "name": "graham-campbell/result-type", - "version": "v1.0.1", + "version": "v1.1.0", "source": { "type": "git", "url": "https://github.com/GrahamCampbell/Result-Type.git", - "reference": "7e279d2cd5d7fbb156ce46daada972355cea27bb" + "reference": "a878d45c1914464426dc94da61c9e1d36ae262a8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/GrahamCampbell/Result-Type/zipball/7e279d2cd5d7fbb156ce46daada972355cea27bb", - "reference": "7e279d2cd5d7fbb156ce46daada972355cea27bb", + "url": "https://api.github.com/repos/GrahamCampbell/Result-Type/zipball/a878d45c1914464426dc94da61c9e1d36ae262a8", + "reference": "a878d45c1914464426dc94da61c9e1d36ae262a8", "shasum": "" }, "require": { - "php": "^7.0|^8.0", - "phpoption/phpoption": "^1.7.3" + "php": "^7.2.5 || ^8.0", + "phpoption/phpoption": "^1.9" }, "require-dev": { - "phpunit/phpunit": "^6.5|^7.5|^8.5|^9.0" + "phpunit/phpunit": "^8.5.28 || ^9.5.21" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0-dev" - } - }, "autoload": { "psr-4": { "GrahamCampbell\\ResultType\\": "src/" @@ -405,7 +471,8 @@ "authors": [ { "name": "Graham Campbell", - "email": "graham@alt-three.com" + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" } ], "description": "An Implementation Of The Result Type", @@ -418,7 +485,7 @@ ], "support": { "issues": "https://github.com/GrahamCampbell/Result-Type/issues", - "source": "https://github.com/GrahamCampbell/Result-Type/tree/v1.0.1" + "source": "https://github.com/GrahamCampbell/Result-Type/tree/v1.1.0" }, "funding": [ { @@ -430,38 +497,39 @@ "type": "tidelift" } ], - "time": "2020-04-13T13:17:36+00:00" + "time": "2022-07-30T15:56:11+00:00" }, { "name": "guzzlehttp/guzzle", - "version": "7.3.0", + "version": "7.5.0", "source": { "type": "git", "url": "https://github.com/guzzle/guzzle.git", - "reference": "7008573787b430c1c1f650e3722d9bba59967628" + "reference": "b50a2a1251152e43f6a37f0fa053e730a67d25ba" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/guzzle/zipball/7008573787b430c1c1f650e3722d9bba59967628", - "reference": "7008573787b430c1c1f650e3722d9bba59967628", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/b50a2a1251152e43f6a37f0fa053e730a67d25ba", + "reference": "b50a2a1251152e43f6a37f0fa053e730a67d25ba", "shasum": "" }, "require": { "ext-json": "*", - "guzzlehttp/promises": "^1.4", - "guzzlehttp/psr7": "^1.7 || ^2.0", + "guzzlehttp/promises": "^1.5", + "guzzlehttp/psr7": "^1.9 || ^2.4", "php": "^7.2.5 || ^8.0", - "psr/http-client": "^1.0" + "psr/http-client": "^1.0", + "symfony/deprecation-contracts": "^2.2 || ^3.0" }, "provide": { "psr/http-client-implementation": "1.0" }, "require-dev": { - "bamarni/composer-bin-plugin": "^1.4.1", + "bamarni/composer-bin-plugin": "^1.8.1", "ext-curl": "*", "php-http/client-integration-tests": "^3.0", - "phpunit/phpunit": "^8.5.5 || ^9.3.5", - "psr/log": "^1.1" + "phpunit/phpunit": "^8.5.29 || ^9.5.23", + "psr/log": "^1.1 || ^2.0 || ^3.0" }, "suggest": { "ext-curl": "Required for CURL handler support", @@ -470,36 +538,64 @@ }, "type": "library", "extra": { + "bamarni-bin": { + "bin-links": true, + "forward-command": false + }, "branch-alias": { - "dev-master": "7.3-dev" + "dev-master": "7.5-dev" } }, "autoload": { - "psr-4": { - "GuzzleHttp\\": "src/" - }, "files": [ "src/functions_include.php" - ] + ], + "psr-4": { + "GuzzleHttp\\": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], "authors": [ + { + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" + }, { "name": "Michael Dowling", "email": "mtdowling@gmail.com", "homepage": "https://github.com/mtdowling" }, + { + "name": "Jeremy Lindblom", + "email": "jeremeamia@gmail.com", + "homepage": "https://github.com/jeremeamia" + }, + { + "name": "George Mponos", + "email": "gmponos@gmail.com", + "homepage": "https://github.com/gmponos" + }, + { + "name": "Tobias Nyholm", + "email": "tobias.nyholm@gmail.com", + "homepage": "https://github.com/Nyholm" + }, { "name": "Márk Sági-Kazár", "email": "mark.sagikazar@gmail.com", - "homepage": "https://sagikazarmark.hu" + "homepage": "https://github.com/sagikazarmark" + }, + { + "name": "Tobias Schultze", + "email": "webmaster@tubo-world.de", + "homepage": "https://github.com/Tobion" } ], "description": "Guzzle is a PHP HTTP client library", - "homepage": "http://guzzlephp.org/", "keywords": [ "client", "curl", @@ -513,7 +609,7 @@ ], "support": { "issues": "https://github.com/guzzle/guzzle/issues", - "source": "https://github.com/guzzle/guzzle/tree/7.3.0" + "source": "https://github.com/guzzle/guzzle/tree/7.5.0" }, "funding": [ { @@ -525,28 +621,24 @@ "type": "github" }, { - "url": "https://github.com/alexeyshockov", - "type": "github" - }, - { - "url": "https://github.com/gmponos", - "type": "github" + "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/guzzle", + "type": "tidelift" } ], - "time": "2021-03-23T11:33:13+00:00" + "time": "2022-08-28T15:39:27+00:00" }, { "name": "guzzlehttp/promises", - "version": "1.4.1", + "version": "1.5.2", "source": { "type": "git", "url": "https://github.com/guzzle/promises.git", - "reference": "8e7d04f1f6450fef59366c399cfad4b9383aa30d" + "reference": "b94b2807d85443f9719887892882d0329d1e2598" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/promises/zipball/8e7d04f1f6450fef59366c399cfad4b9383aa30d", - "reference": "8e7d04f1f6450fef59366c399cfad4b9383aa30d", + "url": "https://api.github.com/repos/guzzle/promises/zipball/b94b2807d85443f9719887892882d0329d1e2598", + "reference": "b94b2807d85443f9719887892882d0329d1e2598", "shasum": "" }, "require": { @@ -558,26 +650,41 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.4-dev" + "dev-master": "1.5-dev" } }, "autoload": { - "psr-4": { - "GuzzleHttp\\Promise\\": "src/" - }, "files": [ "src/functions_include.php" - ] + ], + "psr-4": { + "GuzzleHttp\\Promise\\": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], "authors": [ + { + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" + }, { "name": "Michael Dowling", "email": "mtdowling@gmail.com", "homepage": "https://github.com/mtdowling" + }, + { + "name": "Tobias Nyholm", + "email": "tobias.nyholm@gmail.com", + "homepage": "https://github.com/Nyholm" + }, + { + "name": "Tobias Schultze", + "email": "webmaster@tubo-world.de", + "homepage": "https://github.com/Tobion" } ], "description": "Guzzle promises library", @@ -586,66 +693,110 @@ ], "support": { "issues": "https://github.com/guzzle/promises/issues", - "source": "https://github.com/guzzle/promises/tree/1.4.1" + "source": "https://github.com/guzzle/promises/tree/1.5.2" }, - "time": "2021-03-07T09:25:29+00:00" + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://github.com/Nyholm", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/promises", + "type": "tidelift" + } + ], + "time": "2022-08-28T14:55:35+00:00" }, { "name": "guzzlehttp/psr7", - "version": "1.8.2", + "version": "2.4.3", "source": { "type": "git", "url": "https://github.com/guzzle/psr7.git", - "reference": "dc960a912984efb74d0a90222870c72c87f10c91" + "reference": "67c26b443f348a51926030c83481b85718457d3d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/psr7/zipball/dc960a912984efb74d0a90222870c72c87f10c91", - "reference": "dc960a912984efb74d0a90222870c72c87f10c91", + "url": "https://api.github.com/repos/guzzle/psr7/zipball/67c26b443f348a51926030c83481b85718457d3d", + "reference": "67c26b443f348a51926030c83481b85718457d3d", "shasum": "" }, "require": { - "php": ">=5.4.0", - "psr/http-message": "~1.0", - "ralouphie/getallheaders": "^2.0.5 || ^3.0.0" + "php": "^7.2.5 || ^8.0", + "psr/http-factory": "^1.0", + "psr/http-message": "^1.0", + "ralouphie/getallheaders": "^3.0" }, "provide": { + "psr/http-factory-implementation": "1.0", "psr/http-message-implementation": "1.0" }, "require-dev": { - "ext-zlib": "*", - "phpunit/phpunit": "~4.8.36 || ^5.7.27 || ^6.5.14 || ^7.5.20 || ^8.5.8 || ^9.3.10" + "bamarni/composer-bin-plugin": "^1.8.1", + "http-interop/http-factory-tests": "^0.9", + "phpunit/phpunit": "^8.5.29 || ^9.5.23" }, "suggest": { "laminas/laminas-httphandlerrunner": "Emit PSR-7 responses" }, "type": "library", "extra": { + "bamarni-bin": { + "bin-links": true, + "forward-command": false + }, "branch-alias": { - "dev-master": "1.7-dev" + "dev-master": "2.4-dev" } }, "autoload": { "psr-4": { "GuzzleHttp\\Psr7\\": "src/" - }, - "files": [ - "src/functions_include.php" - ] + } }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], "authors": [ + { + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" + }, { "name": "Michael Dowling", "email": "mtdowling@gmail.com", "homepage": "https://github.com/mtdowling" }, + { + "name": "George Mponos", + "email": "gmponos@gmail.com", + "homepage": "https://github.com/gmponos" + }, + { + "name": "Tobias Nyholm", + "email": "tobias.nyholm@gmail.com", + "homepage": "https://github.com/Nyholm" + }, + { + "name": "Márk Sági-Kazár", + "email": "mark.sagikazar@gmail.com", + "homepage": "https://github.com/sagikazarmark" + }, { "name": "Tobias Schultze", + "email": "webmaster@tubo-world.de", "homepage": "https://github.com/Tobion" + }, + { + "name": "Márk Sági-Kazár", + "email": "mark.sagikazar@gmail.com", + "homepage": "https://sagikazarmark.hu" } ], "description": "PSR-7 message implementation that also provides common utility methods", @@ -661,22 +812,36 @@ ], "support": { "issues": "https://github.com/guzzle/psr7/issues", - "source": "https://github.com/guzzle/psr7/tree/1.8.2" + "source": "https://github.com/guzzle/psr7/tree/2.4.3" }, - "time": "2021-04-26T09:17:50+00:00" + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://github.com/Nyholm", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/psr7", + "type": "tidelift" + } + ], + "time": "2022-10-26T14:07:24+00:00" }, { "name": "laravel/framework", - "version": "v8.42.1", + "version": "v8.83.27", "source": { "type": "git", "url": "https://github.com/laravel/framework.git", - "reference": "41ec4897a70eb8729cf0ff34a8354413c54e42a6" + "reference": "e1afe088b4ca613fb96dc57e6d8dbcb8cc2c6b49" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/framework/zipball/41ec4897a70eb8729cf0ff34a8354413c54e42a6", - "reference": "41ec4897a70eb8729cf0ff34a8354413c54e42a6", + "url": "https://api.github.com/repos/laravel/framework/zipball/e1afe088b4ca613fb96dc57e6d8dbcb8cc2c6b49", + "reference": "e1afe088b4ca613fb96dc57e6d8dbcb8cc2c6b49", "shasum": "" }, "require": { @@ -686,34 +851,37 @@ "ext-json": "*", "ext-mbstring": "*", "ext-openssl": "*", - "league/commonmark": "^1.3", + "laravel/serializable-closure": "^1.0", + "league/commonmark": "^1.3|^2.0.2", "league/flysystem": "^1.1", "monolog/monolog": "^2.0", - "nesbot/carbon": "^2.31", + "nesbot/carbon": "^2.53.1", "opis/closure": "^3.6", "php": "^7.3|^8.0", "psr/container": "^1.0", + "psr/log": "^1.0|^2.0", "psr/simple-cache": "^1.0", - "ramsey/uuid": "^4.0", - "swiftmailer/swiftmailer": "^6.0", - "symfony/console": "^5.1.4", - "symfony/error-handler": "^5.1.4", - "symfony/finder": "^5.1.4", - "symfony/http-foundation": "^5.1.4", - "symfony/http-kernel": "^5.1.4", - "symfony/mime": "^5.1.4", - "symfony/process": "^5.1.4", - "symfony/routing": "^5.1.4", - "symfony/var-dumper": "^5.1.4", + "ramsey/uuid": "^4.2.2", + "swiftmailer/swiftmailer": "^6.3", + "symfony/console": "^5.4", + "symfony/error-handler": "^5.4", + "symfony/finder": "^5.4", + "symfony/http-foundation": "^5.4", + "symfony/http-kernel": "^5.4", + "symfony/mime": "^5.4", + "symfony/process": "^5.4", + "symfony/routing": "^5.4", + "symfony/var-dumper": "^5.4", "tijsverkoyen/css-to-inline-styles": "^2.2.2", - "vlucas/phpdotenv": "^5.2", - "voku/portable-ascii": "^1.4.8" + "vlucas/phpdotenv": "^5.4.1", + "voku/portable-ascii": "^1.6.1" }, "conflict": { "tightenco/collect": "<5.5.33" }, "provide": { - "psr/container-implementation": "1.0" + "psr/container-implementation": "1.0", + "psr/simple-cache-implementation": "1.0" }, "replace": { "illuminate/auth": "self.version", @@ -749,22 +917,24 @@ "illuminate/view": "self.version" }, "require-dev": { - "aws/aws-sdk-php": "^3.155", - "doctrine/dbal": "^2.6|^3.0", - "filp/whoops": "^2.8", + "aws/aws-sdk-php": "^3.198.1", + "doctrine/dbal": "^2.13.3|^3.1.4", + "filp/whoops": "^2.14.3", "guzzlehttp/guzzle": "^6.5.5|^7.0.1", "league/flysystem-cached-adapter": "^1.0", - "mockery/mockery": "^1.4.2", - "orchestra/testbench-core": "^6.8", + "mockery/mockery": "^1.4.4", + "orchestra/testbench-core": "^6.27", "pda/pheanstalk": "^4.0", - "phpunit/phpunit": "^8.5.8|^9.3.3", - "predis/predis": "^1.1.1", - "symfony/cache": "^5.1.4" + "phpunit/phpunit": "^8.5.19|^9.5.8", + "predis/predis": "^1.1.9", + "symfony/cache": "^5.4" }, "suggest": { - "aws/aws-sdk-php": "Required to use the SQS queue driver, DynamoDb failed job storage and SES mail driver (^3.155).", + "ably/ably-php": "Required to use the Ably broadcast driver (^1.0).", + "aws/aws-sdk-php": "Required to use the SQS queue driver, DynamoDb failed job storage and SES mail driver (^3.198.1).", "brianium/paratest": "Required to run tests in parallel (^6.0).", - "doctrine/dbal": "Required to rename columns and drop SQLite columns (^2.6|^3.0).", + "doctrine/dbal": "Required to rename columns and drop SQLite columns (^2.13.3|^3.1.4).", + "ext-bcmath": "Required to use the multiple_of validation rule.", "ext-ftp": "Required to use the Flysystem FTP driver.", "ext-gd": "Required to use Illuminate\\Http\\Testing\\FileFactory::image().", "ext-memcached": "Required to use the memcache cache driver.", @@ -772,21 +942,21 @@ "ext-posix": "Required to use all features of the queue worker.", "ext-redis": "Required to use the Redis cache and queue drivers (^4.0|^5.0).", "fakerphp/faker": "Required to use the eloquent factory builder (^1.9.1).", - "filp/whoops": "Required for friendly error pages in development (^2.8).", + "filp/whoops": "Required for friendly error pages in development (^2.14.3).", "guzzlehttp/guzzle": "Required to use the HTTP Client, Mailgun mail driver and the ping methods on schedules (^6.5.5|^7.0.1).", "laravel/tinker": "Required to use the tinker console command (^2.0).", "league/flysystem-aws-s3-v3": "Required to use the Flysystem S3 driver (^1.0).", "league/flysystem-cached-adapter": "Required to use the Flysystem cache (^1.0).", "league/flysystem-sftp": "Required to use the Flysystem SFTP driver (^1.0).", - "mockery/mockery": "Required to use mocking (^1.4.2).", + "mockery/mockery": "Required to use mocking (^1.4.4).", "nyholm/psr7": "Required to use PSR-7 bridging features (^1.2).", "pda/pheanstalk": "Required to use the beanstalk queue driver (^4.0).", - "phpunit/phpunit": "Required to use assertions and run tests (^8.5.8|^9.3.3).", - "predis/predis": "Required to use the predis connector (^1.1.2).", + "phpunit/phpunit": "Required to use assertions and run tests (^8.5.19|^9.5.8).", + "predis/predis": "Required to use the predis connector (^1.1.9).", "psr/http-message": "Required to allow Storage::put to accept a StreamInterface (^1.0).", - "pusher/pusher-php-server": "Required to use the Pusher broadcast driver (^4.0|^5.0|^6.0).", - "symfony/cache": "Required to PSR-6 cache bridge (^5.1.4).", - "symfony/filesystem": "Required to enable support for relative symbolic links (^5.1.4).", + "pusher/pusher-php-server": "Required to use the Pusher broadcast driver (^4.0|^5.0|^6.0|^7.0).", + "symfony/cache": "Required to PSR-6 cache bridge (^5.4).", + "symfony/filesystem": "Required to enable support for relative symbolic links (^5.4).", "symfony/psr-http-message-bridge": "Required to use PSR-7 bridging features (^2.0).", "wildbit/swiftmailer-postmark": "Required to use Postmark mail driver (^3.0)." }, @@ -831,46 +1001,118 @@ "issues": "https://github.com/laravel/framework/issues", "source": "https://github.com/laravel/framework" }, - "time": "2021-05-19T13:03:18+00:00" + "time": "2022-12-08T15:28:55+00:00" + }, + { + "name": "laravel/serializable-closure", + "version": "v1.2.2", + "source": { + "type": "git", + "url": "https://github.com/laravel/serializable-closure.git", + "reference": "47afb7fae28ed29057fdca37e16a84f90cc62fae" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laravel/serializable-closure/zipball/47afb7fae28ed29057fdca37e16a84f90cc62fae", + "reference": "47afb7fae28ed29057fdca37e16a84f90cc62fae", + "shasum": "" + }, + "require": { + "php": "^7.3|^8.0" + }, + "require-dev": { + "nesbot/carbon": "^2.61", + "pestphp/pest": "^1.21.3", + "phpstan/phpstan": "^1.8.2", + "symfony/var-dumper": "^5.4.11" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Laravel\\SerializableClosure\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Taylor Otwell", + "email": "taylor@laravel.com" + }, + { + "name": "Nuno Maduro", + "email": "nuno@laravel.com" + } + ], + "description": "Laravel Serializable Closure provides an easy and secure way to serialize closures in PHP.", + "keywords": [ + "closure", + "laravel", + "serializable" + ], + "support": { + "issues": "https://github.com/laravel/serializable-closure/issues", + "source": "https://github.com/laravel/serializable-closure" + }, + "time": "2022-09-08T13:45:54+00:00" }, { "name": "league/commonmark", - "version": "1.6.2", + "version": "2.3.8", "source": { "type": "git", "url": "https://github.com/thephpleague/commonmark.git", - "reference": "7d70d2f19c84bcc16275ea47edabee24747352eb" + "reference": "c493585c130544c4e91d2e0e131e6d35cb0cbc47" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/7d70d2f19c84bcc16275ea47edabee24747352eb", - "reference": "7d70d2f19c84bcc16275ea47edabee24747352eb", + "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/c493585c130544c4e91d2e0e131e6d35cb0cbc47", + "reference": "c493585c130544c4e91d2e0e131e6d35cb0cbc47", "shasum": "" }, "require": { "ext-mbstring": "*", - "php": "^7.1 || ^8.0" - }, - "conflict": { - "scrutinizer/ocular": "1.7.*" + "league/config": "^1.1.1", + "php": "^7.4 || ^8.0", + "psr/event-dispatcher": "^1.0", + "symfony/deprecation-contracts": "^2.1 || ^3.0", + "symfony/polyfill-php80": "^1.16" }, "require-dev": { - "cebe/markdown": "~1.0", - "commonmark/commonmark.js": "0.29.2", - "erusev/parsedown": "~1.0", + "cebe/markdown": "^1.0", + "commonmark/cmark": "0.30.0", + "commonmark/commonmark.js": "0.30.0", + "composer/package-versions-deprecated": "^1.8", + "embed/embed": "^4.4", + "erusev/parsedown": "^1.0", "ext-json": "*", "github/gfm": "0.29.0", - "michelf/php-markdown": "~1.4", - "mikehaertl/php-shellcommand": "^1.4", - "phpstan/phpstan": "^0.12", - "phpunit/phpunit": "^7.5 || ^8.5 || ^9.2", - "scrutinizer/ocular": "^1.5", - "symfony/finder": "^4.2" + "michelf/php-markdown": "^1.4 || ^2.0", + "nyholm/psr7": "^1.5", + "phpstan/phpstan": "^1.8.2", + "phpunit/phpunit": "^9.5.21", + "scrutinizer/ocular": "^1.8.1", + "symfony/finder": "^5.3 | ^6.0", + "symfony/yaml": "^2.3 | ^3.0 | ^4.0 | ^5.0 | ^6.0", + "unleashedtech/php-coding-standard": "^3.1.1", + "vimeo/psalm": "^4.24.0 || ^5.0.0" + }, + "suggest": { + "symfony/yaml": "v2.3+ required if using the Front Matter extension" }, - "bin": [ - "bin/commonmark" - ], "type": "library", + "extra": { + "branch-alias": { + "dev-main": "2.4-dev" + } + }, "autoload": { "psr-4": { "League\\CommonMark\\": "src" @@ -888,7 +1130,7 @@ "role": "Lead Developer" } ], - "description": "Highly-extensible PHP Markdown parser which fully supports the CommonMark spec and Github-Flavored Markdown (GFM)", + "description": "Highly-extensible PHP Markdown parser which fully supports the CommonMark spec and GitHub-Flavored Markdown (GFM)", "homepage": "https://commonmark.thephpleague.com", "keywords": [ "commonmark", @@ -902,15 +1144,12 @@ ], "support": { "docs": "https://commonmark.thephpleague.com/", + "forum": "https://github.com/thephpleague/commonmark/discussions", "issues": "https://github.com/thephpleague/commonmark/issues", "rss": "https://github.com/thephpleague/commonmark/releases.atom", "source": "https://github.com/thephpleague/commonmark" }, "funding": [ - { - "url": "https://enjoy.gitstore.app/repositories/thephpleague/commonmark", - "type": "custom" - }, { "url": "https://www.colinodell.com/sponsor", "type": "custom" @@ -923,80 +1162,157 @@ "url": "https://github.com/colinodell", "type": "github" }, - { - "url": "https://www.patreon.com/colinodell", - "type": "patreon" - }, { "url": "https://tidelift.com/funding/github/packagist/league/commonmark", "type": "tidelift" } ], - "time": "2021-05-12T11:39:41+00:00" + "time": "2022-12-10T16:02:17+00:00" }, { - "name": "league/flysystem", - "version": "1.1.3", + "name": "league/config", + "version": "v1.2.0", "source": { "type": "git", - "url": "https://github.com/thephpleague/flysystem.git", - "reference": "9be3b16c877d477357c015cec057548cf9b2a14a" + "url": "https://github.com/thephpleague/config.git", + "reference": "754b3604fb2984c71f4af4a9cbe7b57f346ec1f3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/9be3b16c877d477357c015cec057548cf9b2a14a", - "reference": "9be3b16c877d477357c015cec057548cf9b2a14a", + "url": "https://api.github.com/repos/thephpleague/config/zipball/754b3604fb2984c71f4af4a9cbe7b57f346ec1f3", + "reference": "754b3604fb2984c71f4af4a9cbe7b57f346ec1f3", "shasum": "" }, "require": { - "ext-fileinfo": "*", - "league/mime-type-detection": "^1.3", - "php": "^7.2.5 || ^8.0" - }, - "conflict": { - "league/flysystem-sftp": "<1.0.6" + "dflydev/dot-access-data": "^3.0.1", + "nette/schema": "^1.2", + "php": "^7.4 || ^8.0" }, "require-dev": { - "phpspec/prophecy": "^1.11.1", - "phpunit/phpunit": "^8.5.8" - }, - "suggest": { - "ext-fileinfo": "Required for MimeType", - "ext-ftp": "Allows you to use FTP server storage", - "ext-openssl": "Allows you to use FTPS server storage", - "league/flysystem-aws-s3-v2": "Allows you to use S3 storage with AWS SDK v2", - "league/flysystem-aws-s3-v3": "Allows you to use S3 storage with AWS SDK v3", - "league/flysystem-azure": "Allows you to use Windows Azure Blob storage", - "league/flysystem-cached-adapter": "Flysystem adapter decorator for metadata caching", - "league/flysystem-eventable-filesystem": "Allows you to use EventableFilesystem", - "league/flysystem-rackspace": "Allows you to use Rackspace Cloud Files", - "league/flysystem-sftp": "Allows you to use SFTP server storage via phpseclib", - "league/flysystem-webdav": "Allows you to use WebDAV storage", - "league/flysystem-ziparchive": "Allows you to use ZipArchive adapter", - "spatie/flysystem-dropbox": "Allows you to use Dropbox storage", - "srmklive/flysystem-dropbox-v2": "Allows you to use Dropbox storage for PHP 5 applications" + "phpstan/phpstan": "^1.8.2", + "phpunit/phpunit": "^9.5.5", + "scrutinizer/ocular": "^1.8.1", + "unleashedtech/php-coding-standard": "^3.1", + "vimeo/psalm": "^4.7.3" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.1-dev" + "dev-main": "1.2-dev" } }, "autoload": { "psr-4": { - "League\\Flysystem\\": "src/" + "League\\Config\\": "src" } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "BSD-3-Clause" ], "authors": [ { - "name": "Frank de Jonge", - "email": "info@frenky.net" - } - ], + "name": "Colin O'Dell", + "email": "colinodell@gmail.com", + "homepage": "https://www.colinodell.com", + "role": "Lead Developer" + } + ], + "description": "Define configuration arrays with strict schemas and access values with dot notation", + "homepage": "https://config.thephpleague.com", + "keywords": [ + "array", + "config", + "configuration", + "dot", + "dot-access", + "nested", + "schema" + ], + "support": { + "docs": "https://config.thephpleague.com/", + "issues": "https://github.com/thephpleague/config/issues", + "rss": "https://github.com/thephpleague/config/releases.atom", + "source": "https://github.com/thephpleague/config" + }, + "funding": [ + { + "url": "https://www.colinodell.com/sponsor", + "type": "custom" + }, + { + "url": "https://www.paypal.me/colinpodell/10.00", + "type": "custom" + }, + { + "url": "https://github.com/colinodell", + "type": "github" + } + ], + "time": "2022-12-11T20:36:23+00:00" + }, + { + "name": "league/flysystem", + "version": "1.1.10", + "source": { + "type": "git", + "url": "https://github.com/thephpleague/flysystem.git", + "reference": "3239285c825c152bcc315fe0e87d6b55f5972ed1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/3239285c825c152bcc315fe0e87d6b55f5972ed1", + "reference": "3239285c825c152bcc315fe0e87d6b55f5972ed1", + "shasum": "" + }, + "require": { + "ext-fileinfo": "*", + "league/mime-type-detection": "^1.3", + "php": "^7.2.5 || ^8.0" + }, + "conflict": { + "league/flysystem-sftp": "<1.0.6" + }, + "require-dev": { + "phpspec/prophecy": "^1.11.1", + "phpunit/phpunit": "^8.5.8" + }, + "suggest": { + "ext-ftp": "Allows you to use FTP server storage", + "ext-openssl": "Allows you to use FTPS server storage", + "league/flysystem-aws-s3-v2": "Allows you to use S3 storage with AWS SDK v2", + "league/flysystem-aws-s3-v3": "Allows you to use S3 storage with AWS SDK v3", + "league/flysystem-azure": "Allows you to use Windows Azure Blob storage", + "league/flysystem-cached-adapter": "Flysystem adapter decorator for metadata caching", + "league/flysystem-eventable-filesystem": "Allows you to use EventableFilesystem", + "league/flysystem-rackspace": "Allows you to use Rackspace Cloud Files", + "league/flysystem-sftp": "Allows you to use SFTP server storage via phpseclib", + "league/flysystem-webdav": "Allows you to use WebDAV storage", + "league/flysystem-ziparchive": "Allows you to use ZipArchive adapter", + "spatie/flysystem-dropbox": "Allows you to use Dropbox storage", + "srmklive/flysystem-dropbox-v2": "Allows you to use Dropbox storage for PHP 5 applications" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.1-dev" + } + }, + "autoload": { + "psr-4": { + "League\\Flysystem\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Frank de Jonge", + "email": "info@frenky.net" + } + ], "description": "Filesystem abstraction: Many filesystems, one API.", "keywords": [ "Cloud Files", @@ -1019,7 +1335,7 @@ ], "support": { "issues": "https://github.com/thephpleague/flysystem/issues", - "source": "https://github.com/thephpleague/flysystem/tree/1.x" + "source": "https://github.com/thephpleague/flysystem/tree/1.1.10" }, "funding": [ { @@ -1027,20 +1343,20 @@ "type": "other" } ], - "time": "2020-08-23T07:39:11+00:00" + "time": "2022-10-04T09:16:37+00:00" }, { "name": "league/mime-type-detection", - "version": "1.7.0", + "version": "1.11.0", "source": { "type": "git", "url": "https://github.com/thephpleague/mime-type-detection.git", - "reference": "3b9dff8aaf7323590c1d2e443db701eb1f9aa0d3" + "reference": "ff6248ea87a9f116e78edd6002e39e5128a0d4dd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/mime-type-detection/zipball/3b9dff8aaf7323590c1d2e443db701eb1f9aa0d3", - "reference": "3b9dff8aaf7323590c1d2e443db701eb1f9aa0d3", + "url": "https://api.github.com/repos/thephpleague/mime-type-detection/zipball/ff6248ea87a9f116e78edd6002e39e5128a0d4dd", + "reference": "ff6248ea87a9f116e78edd6002e39e5128a0d4dd", "shasum": "" }, "require": { @@ -1048,7 +1364,7 @@ "php": "^7.2 || ^8.0" }, "require-dev": { - "friendsofphp/php-cs-fixer": "^2.18", + "friendsofphp/php-cs-fixer": "^3.2", "phpstan/phpstan": "^0.12.68", "phpunit/phpunit": "^8.5.8 || ^9.3" }, @@ -1071,7 +1387,7 @@ "description": "Mime-type detection for Flysystem", "support": { "issues": "https://github.com/thephpleague/mime-type-detection/issues", - "source": "https://github.com/thephpleague/mime-type-detection/tree/1.7.0" + "source": "https://github.com/thephpleague/mime-type-detection/tree/1.11.0" }, "funding": [ { @@ -1083,56 +1399,62 @@ "type": "tidelift" } ], - "time": "2021-01-18T20:58:21+00:00" + "time": "2022-04-17T13:12:02+00:00" }, { "name": "monolog/monolog", - "version": "2.2.0", + "version": "2.8.0", "source": { "type": "git", "url": "https://github.com/Seldaek/monolog.git", - "reference": "1cb1cde8e8dd0f70cc0fe51354a59acad9302084" + "reference": "720488632c590286b88b80e62aa3d3d551ad4a50" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Seldaek/monolog/zipball/1cb1cde8e8dd0f70cc0fe51354a59acad9302084", - "reference": "1cb1cde8e8dd0f70cc0fe51354a59acad9302084", + "url": "https://api.github.com/repos/Seldaek/monolog/zipball/720488632c590286b88b80e62aa3d3d551ad4a50", + "reference": "720488632c590286b88b80e62aa3d3d551ad4a50", "shasum": "" }, "require": { "php": ">=7.2", - "psr/log": "^1.0.1" + "psr/log": "^1.0.1 || ^2.0 || ^3.0" }, "provide": { - "psr/log-implementation": "1.0.0" + "psr/log-implementation": "1.0.0 || 2.0.0 || 3.0.0" }, "require-dev": { "aws/aws-sdk-php": "^2.4.9 || ^3.0", "doctrine/couchdb": "~1.0@dev", - "elasticsearch/elasticsearch": "^7", + "elasticsearch/elasticsearch": "^7 || ^8", + "ext-json": "*", "graylog2/gelf-php": "^1.4.2", + "guzzlehttp/guzzle": "^7.4", + "guzzlehttp/psr7": "^2.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" + "php-amqplib/php-amqplib": "~2.4 || ^3", + "phpspec/prophecy": "^1.15", + "phpstan/phpstan": "^0.12.91", + "phpunit/phpunit": "^8.5.14", + "predis/predis": "^1.1 || ^2.0", + "rollbar/rollbar": "^1.3 || ^2 || ^3", + "ruflin/elastica": "^7", + "swiftmailer/swiftmailer": "^5.3|^6.0", + "symfony/mailer": "^5.4 || ^6", + "symfony/mime": "^5.4 || ^6" }, "suggest": { "aws/aws-sdk-php": "Allow sending log messages to AWS services like DynamoDB", "doctrine/couchdb": "Allow sending log messages to a CouchDB server", "elasticsearch/elasticsearch": "Allow sending log messages to an Elasticsearch server via official client", "ext-amqp": "Allow sending log messages to an AMQP server (1.0+ required)", + "ext-curl": "Required to send log messages using the IFTTTHandler, the LogglyHandler, the SendGridHandler, the SlackWebhookHandler or the TelegramBotHandler", "ext-mbstring": "Allow to work properly with unicode symbols", "ext-mongodb": "Allow sending log messages to a MongoDB server (via driver)", + "ext-openssl": "Required to send log messages using SSL", + "ext-sockets": "Allow sending log messages to a Syslog server (via UDP driver)", "graylog2/gelf-php": "Allow sending log messages to a GrayLog2 server", "mongodb/mongodb": "Allow sending log messages to a MongoDB server (via library)", "php-amqplib/php-amqplib": "Allow sending log messages to an AMQP server using php-amqplib", - "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" }, @@ -1167,7 +1489,7 @@ ], "support": { "issues": "https://github.com/Seldaek/monolog/issues", - "source": "https://github.com/Seldaek/monolog/tree/2.2.0" + "source": "https://github.com/Seldaek/monolog/tree/2.8.0" }, "funding": [ { @@ -1179,36 +1501,40 @@ "type": "tidelift" } ], - "time": "2020-12-14T13:15:25+00:00" + "time": "2022-07-24T11:55:47+00:00" }, { "name": "nesbot/carbon", - "version": "2.48.0", + "version": "2.64.0", "source": { "type": "git", "url": "https://github.com/briannesbitt/Carbon.git", - "reference": "d3c447f21072766cddec3522f9468a5849a76147" + "reference": "889546413c97de2d05063b8cb7b193c2531ea211" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/d3c447f21072766cddec3522f9468a5849a76147", - "reference": "d3c447f21072766cddec3522f9468a5849a76147", + "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/889546413c97de2d05063b8cb7b193c2531ea211", + "reference": "889546413c97de2d05063b8cb7b193c2531ea211", "shasum": "" }, "require": { "ext-json": "*", "php": "^7.1.8 || ^8.0", "symfony/polyfill-mbstring": "^1.0", - "symfony/translation": "^3.4 || ^4.0 || ^5.0" + "symfony/polyfill-php80": "^1.16", + "symfony/translation": "^3.4 || ^4.0 || ^5.0 || ^6.0" }, "require-dev": { + "doctrine/dbal": "^2.0 || ^3.1.4", "doctrine/orm": "^2.7", - "friendsofphp/php-cs-fixer": "^2.14 || ^3.0", + "friendsofphp/php-cs-fixer": "^3.0", "kylekatarnls/multi-tester": "^2.0", + "ondrejmirtes/better-reflection": "*", "phpmd/phpmd": "^2.9", "phpstan/extension-installer": "^1.0", - "phpstan/phpstan": "^0.12.54", - "phpunit/phpunit": "^7.5.20 || ^8.5.14", + "phpstan/phpstan": "^0.12.99 || ^1.7.14", + "phpunit/php-file-iterator": "^2.0.5 || ^3.0.6", + "phpunit/phpunit": "^7.5.20 || ^8.5.26 || ^9.5.20", "squizlabs/php_codesniffer": "^3.4" }, "bin": [ @@ -1217,8 +1543,8 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.x-dev", - "dev-3.x": "3.x-dev" + "dev-3.x": "3.x-dev", + "dev-master": "2.x-dev" }, "laravel": { "providers": [ @@ -1244,48 +1570,200 @@ { "name": "Brian Nesbitt", "email": "brian@nesbot.com", - "homepage": "http://nesbot.com" + "homepage": "https://markido.com" }, { "name": "kylekatarnls", - "homepage": "http://github.com/kylekatarnls" + "homepage": "https://github.com/kylekatarnls" } ], "description": "An API extension for DateTime that supports 281 different languages.", - "homepage": "http://carbon.nesbot.com", + "homepage": "https://carbon.nesbot.com", "keywords": [ "date", "datetime", "time" ], "support": { + "docs": "https://carbon.nesbot.com/docs", "issues": "https://github.com/briannesbitt/Carbon/issues", "source": "https://github.com/briannesbitt/Carbon" }, "funding": [ { - "url": "https://opencollective.com/Carbon", - "type": "open_collective" + "url": "https://github.com/sponsors/kylekatarnls", + "type": "github" }, { - "url": "https://tidelift.com/funding/github/packagist/nesbot/carbon", + "url": "https://opencollective.com/Carbon#sponsor", + "type": "opencollective" + }, + { + "url": "https://tidelift.com/subscription/pkg/packagist-nesbot-carbon?utm_source=packagist-nesbot-carbon&utm_medium=referral&utm_campaign=readme", "type": "tidelift" } ], - "time": "2021-05-07T10:08:30+00:00" + "time": "2022-11-26T17:36:00+00:00" + }, + { + "name": "nette/schema", + "version": "v1.2.3", + "source": { + "type": "git", + "url": "https://github.com/nette/schema.git", + "reference": "abbdbb70e0245d5f3bf77874cea1dfb0c930d06f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nette/schema/zipball/abbdbb70e0245d5f3bf77874cea1dfb0c930d06f", + "reference": "abbdbb70e0245d5f3bf77874cea1dfb0c930d06f", + "shasum": "" + }, + "require": { + "nette/utils": "^2.5.7 || ^3.1.5 || ^4.0", + "php": ">=7.1 <8.3" + }, + "require-dev": { + "nette/tester": "^2.3 || ^2.4", + "phpstan/phpstan-nette": "^1.0", + "tracy/tracy": "^2.7" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.2-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause", + "GPL-2.0-only", + "GPL-3.0-only" + ], + "authors": [ + { + "name": "David Grudl", + "homepage": "https://davidgrudl.com" + }, + { + "name": "Nette Community", + "homepage": "https://nette.org/contributors" + } + ], + "description": "📐 Nette Schema: validating data structures against a given Schema.", + "homepage": "https://nette.org", + "keywords": [ + "config", + "nette" + ], + "support": { + "issues": "https://github.com/nette/schema/issues", + "source": "https://github.com/nette/schema/tree/v1.2.3" + }, + "time": "2022-10-13T01:24:26+00:00" + }, + { + "name": "nette/utils", + "version": "v3.2.8", + "source": { + "type": "git", + "url": "https://github.com/nette/utils.git", + "reference": "02a54c4c872b99e4ec05c4aec54b5a06eb0f6368" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nette/utils/zipball/02a54c4c872b99e4ec05c4aec54b5a06eb0f6368", + "reference": "02a54c4c872b99e4ec05c4aec54b5a06eb0f6368", + "shasum": "" + }, + "require": { + "php": ">=7.2 <8.3" + }, + "conflict": { + "nette/di": "<3.0.6" + }, + "require-dev": { + "nette/tester": "~2.0", + "phpstan/phpstan": "^1.0", + "tracy/tracy": "^2.3" + }, + "suggest": { + "ext-gd": "to use Image", + "ext-iconv": "to use Strings::webalize(), toAscii(), chr() and reverse()", + "ext-intl": "to use Strings::webalize(), toAscii(), normalize() and compare()", + "ext-json": "to use Nette\\Utils\\Json", + "ext-mbstring": "to use Strings::lower() etc...", + "ext-tokenizer": "to use Nette\\Utils\\Reflection::getUseStatements()", + "ext-xml": "to use Strings::length() etc. when mbstring is not available" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.2-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause", + "GPL-2.0-only", + "GPL-3.0-only" + ], + "authors": [ + { + "name": "David Grudl", + "homepage": "https://davidgrudl.com" + }, + { + "name": "Nette Community", + "homepage": "https://nette.org/contributors" + } + ], + "description": "🛠 Nette Utils: lightweight utilities for string & array manipulation, image handling, safe JSON encoding/decoding, validation, slug or strong password generating etc.", + "homepage": "https://nette.org", + "keywords": [ + "array", + "core", + "datetime", + "images", + "json", + "nette", + "paginator", + "password", + "slugify", + "string", + "unicode", + "utf-8", + "utility", + "validation" + ], + "support": { + "issues": "https://github.com/nette/utils/issues", + "source": "https://github.com/nette/utils/tree/v3.2.8" + }, + "time": "2022-09-12T23:36:20+00:00" }, { "name": "opis/closure", - "version": "3.6.2", + "version": "3.6.3", "source": { "type": "git", "url": "https://github.com/opis/closure.git", - "reference": "06e2ebd25f2869e54a306dda991f7db58066f7f6" + "reference": "3d81e4309d2a927abbe66df935f4bb60082805ad" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/opis/closure/zipball/06e2ebd25f2869e54a306dda991f7db58066f7f6", - "reference": "06e2ebd25f2869e54a306dda991f7db58066f7f6", + "url": "https://api.github.com/repos/opis/closure/zipball/3d81e4309d2a927abbe66df935f4bb60082805ad", + "reference": "3d81e4309d2a927abbe66df935f4bb60082805ad", "shasum": "" }, "require": { @@ -1302,12 +1780,12 @@ } }, "autoload": { - "psr-4": { - "Opis\\Closure\\": "src/" - }, "files": [ "functions.php" - ] + ], + "psr-4": { + "Opis\\Closure\\": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -1335,35 +1813,39 @@ ], "support": { "issues": "https://github.com/opis/closure/issues", - "source": "https://github.com/opis/closure/tree/3.6.2" + "source": "https://github.com/opis/closure/tree/3.6.3" }, - "time": "2021-04-09T13:42:10+00:00" + "time": "2022-01-27T09:35:39+00:00" }, { "name": "phpoption/phpoption", - "version": "1.7.5", + "version": "1.9.0", "source": { "type": "git", "url": "https://github.com/schmittjoh/php-option.git", - "reference": "994ecccd8f3283ecf5ac33254543eb0ac946d525" + "reference": "dc5ff11e274a90cc1c743f66c9ad700ce50db9ab" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/schmittjoh/php-option/zipball/994ecccd8f3283ecf5ac33254543eb0ac946d525", - "reference": "994ecccd8f3283ecf5ac33254543eb0ac946d525", + "url": "https://api.github.com/repos/schmittjoh/php-option/zipball/dc5ff11e274a90cc1c743f66c9ad700ce50db9ab", + "reference": "dc5ff11e274a90cc1c743f66c9ad700ce50db9ab", "shasum": "" }, "require": { - "php": "^5.5.9 || ^7.0 || ^8.0" + "php": "^7.2.5 || ^8.0" }, "require-dev": { - "bamarni/composer-bin-plugin": "^1.4.1", - "phpunit/phpunit": "^4.8.35 || ^5.7.27 || ^6.5.6 || ^7.0 || ^8.0 || ^9.0" + "bamarni/composer-bin-plugin": "^1.8", + "phpunit/phpunit": "^8.5.28 || ^9.5.21" }, "type": "library", "extra": { + "bamarni-bin": { + "bin-links": true, + "forward-command": true + }, "branch-alias": { - "dev-master": "1.7-dev" + "dev-master": "1.9-dev" } }, "autoload": { @@ -1378,11 +1860,13 @@ "authors": [ { "name": "Johannes M. Schmitt", - "email": "schmittjoh@gmail.com" + "email": "schmittjoh@gmail.com", + "homepage": "https://github.com/schmittjoh" }, { "name": "Graham Campbell", - "email": "graham@alt-three.com" + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" } ], "description": "Option Type for PHP", @@ -1394,7 +1878,7 @@ ], "support": { "issues": "https://github.com/schmittjoh/php-option/issues", - "source": "https://github.com/schmittjoh/php-option/tree/1.7.5" + "source": "https://github.com/schmittjoh/php-option/tree/1.9.0" }, "funding": [ { @@ -1406,24 +1890,24 @@ "type": "tidelift" } ], - "time": "2020-07-20T17:29:33+00:00" + "time": "2022-07-30T15:51:26+00:00" }, { "name": "psr/container", - "version": "1.1.1", + "version": "1.1.2", "source": { "type": "git", "url": "https://github.com/php-fig/container.git", - "reference": "8622567409010282b7aeebe4bb841fe98b58dcaf" + "reference": "513e0666f7216c7459170d56df27dfcefe1689ea" }, "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/513e0666f7216c7459170d56df27dfcefe1689ea", + "reference": "513e0666f7216c7459170d56df27dfcefe1689ea", "shasum": "" }, "require": { - "php": ">=7.2.0" + "php": ">=7.4.0" }, "type": "library", "autoload": { @@ -1452,9 +1936,9 @@ ], "support": { "issues": "https://github.com/php-fig/container/issues", - "source": "https://github.com/php-fig/container/tree/1.1.1" + "source": "https://github.com/php-fig/container/tree/1.1.2" }, - "time": "2021-03-05T17:36:06+00:00" + "time": "2021-11-05T16:50:12+00:00" }, { "name": "psr/event-dispatcher", @@ -1558,6 +2042,61 @@ }, "time": "2020-06-29T06:28:15+00:00" }, + { + "name": "psr/http-factory", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/php-fig/http-factory.git", + "reference": "12ac7fcd07e5b077433f5f2bee95b3a771bf61be" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/http-factory/zipball/12ac7fcd07e5b077433f5f2bee95b3a771bf61be", + "reference": "12ac7fcd07e5b077433f5f2bee95b3a771bf61be", + "shasum": "" + }, + "require": { + "php": ">=7.0.0", + "psr/http-message": "^1.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Http\\Message\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common interfaces for PSR-7 HTTP message factories", + "keywords": [ + "factory", + "http", + "message", + "psr", + "psr-17", + "psr-7", + "request", + "response" + ], + "support": { + "source": "https://github.com/php-fig/http-factory/tree/master" + }, + "time": "2019-04-30T12:38:16+00:00" + }, { "name": "psr/http-message", "version": "1.0.1", @@ -1758,20 +2297,21 @@ }, { "name": "ramsey/collection", - "version": "1.1.3", + "version": "1.2.2", "source": { "type": "git", "url": "https://github.com/ramsey/collection.git", - "reference": "28a5c4ab2f5111db6a60b2b4ec84057e0f43b9c1" + "reference": "cccc74ee5e328031b15640b51056ee8d3bb66c0a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ramsey/collection/zipball/28a5c4ab2f5111db6a60b2b4ec84057e0f43b9c1", - "reference": "28a5c4ab2f5111db6a60b2b4ec84057e0f43b9c1", + "url": "https://api.github.com/repos/ramsey/collection/zipball/cccc74ee5e328031b15640b51056ee8d3bb66c0a", + "reference": "cccc74ee5e328031b15640b51056ee8d3bb66c0a", "shasum": "" }, "require": { - "php": "^7.2 || ^8" + "php": "^7.3 || ^8", + "symfony/polyfill-php81": "^1.23" }, "require-dev": { "captainhook/captainhook": "^5.3", @@ -1781,6 +2321,7 @@ "hamcrest/hamcrest-php": "^2", "jangregor/phpstan-prophecy": "^0.8", "mockery/mockery": "^1.3", + "phpspec/prophecy-phpunit": "^2.0", "phpstan/extension-installer": "^1", "phpstan/phpstan": "^0.12.32", "phpstan/phpstan-mockery": "^0.12.5", @@ -1808,7 +2349,7 @@ "homepage": "https://benramsey.com" } ], - "description": "A PHP 7.2+ library for representing and manipulating collections.", + "description": "A PHP library for representing and manipulating collections.", "keywords": [ "array", "collection", @@ -1819,7 +2360,7 @@ ], "support": { "issues": "https://github.com/ramsey/collection/issues", - "source": "https://github.com/ramsey/collection/tree/1.1.3" + "source": "https://github.com/ramsey/collection/tree/1.2.2" }, "funding": [ { @@ -1831,53 +2372,54 @@ "type": "tidelift" } ], - "time": "2021-01-21T17:40:04+00:00" + "time": "2021-10-10T03:01:02+00:00" }, { "name": "ramsey/uuid", - "version": "4.1.1", + "version": "4.2.3", "source": { "type": "git", "url": "https://github.com/ramsey/uuid.git", - "reference": "cd4032040a750077205918c86049aa0f43d22947" + "reference": "fc9bb7fb5388691fd7373cd44dcb4d63bbcf24df" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ramsey/uuid/zipball/cd4032040a750077205918c86049aa0f43d22947", - "reference": "cd4032040a750077205918c86049aa0f43d22947", + "url": "https://api.github.com/repos/ramsey/uuid/zipball/fc9bb7fb5388691fd7373cd44dcb4d63bbcf24df", + "reference": "fc9bb7fb5388691fd7373cd44dcb4d63bbcf24df", "shasum": "" }, "require": { "brick/math": "^0.8 || ^0.9", "ext-json": "*", - "php": "^7.2 || ^8", + "php": "^7.2 || ^8.0", "ramsey/collection": "^1.0", - "symfony/polyfill-ctype": "^1.8" + "symfony/polyfill-ctype": "^1.8", + "symfony/polyfill-php80": "^1.14" }, "replace": { "rhumsaa/uuid": "self.version" }, "require-dev": { - "codeception/aspect-mock": "^3", - "dealerdirect/phpcodesniffer-composer-installer": "^0.6.2 || ^0.7.0", + "captainhook/captainhook": "^5.10", + "captainhook/plugin-composer": "^5.3", + "dealerdirect/phpcodesniffer-composer-installer": "^0.7.0", "doctrine/annotations": "^1.8", - "goaop/framework": "^2", + "ergebnis/composer-normalize": "^2.15", "mockery/mockery": "^1.3", "moontoast/math": "^1.1", "paragonie/random-lib": "^2", + "php-mock/php-mock": "^2.2", "php-mock/php-mock-mockery": "^1.3", - "php-mock/php-mock-phpunit": "^2.5", "php-parallel-lint/php-parallel-lint": "^1.1", - "phpbench/phpbench": "^0.17.1", + "phpbench/phpbench": "^1.0", "phpstan/extension-installer": "^1.0", "phpstan/phpstan": "^0.12", "phpstan/phpstan-mockery": "^0.12", "phpstan/phpstan-phpunit": "^0.12", - "phpunit/phpunit": "^8.5", - "psy/psysh": "^0.10.0", - "slevomat/coding-standard": "^6.0", + "phpunit/phpunit": "^8.5 || ^9", + "slevomat/coding-standard": "^7.0", "squizlabs/php_codesniffer": "^3.5", - "vimeo/psalm": "3.9.4" + "vimeo/psalm": "^4.9" }, "suggest": { "ext-bcmath": "Enables faster math with arbitrary-precision integers using BCMath.", @@ -1890,23 +2432,25 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "4.x-dev" + "dev-main": "4.x-dev" + }, + "captainhook": { + "force-install": true } }, "autoload": { - "psr-4": { - "Ramsey\\Uuid\\": "src/" - }, "files": [ "src/functions.php" - ] + ], + "psr-4": { + "Ramsey\\Uuid\\": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], "description": "A PHP library for generating and working with universally unique identifiers (UUIDs).", - "homepage": "https://github.com/ramsey/uuid", "keywords": [ "guid", "identifier", @@ -1914,29 +2458,32 @@ ], "support": { "issues": "https://github.com/ramsey/uuid/issues", - "rss": "https://github.com/ramsey/uuid/releases.atom", - "source": "https://github.com/ramsey/uuid" + "source": "https://github.com/ramsey/uuid/tree/4.2.3" }, "funding": [ { "url": "https://github.com/ramsey", "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/ramsey/uuid", + "type": "tidelift" } ], - "time": "2020-08-18T17:17:46+00:00" + "time": "2021-09-25T23:10:38+00:00" }, { "name": "swiftmailer/swiftmailer", - "version": "v6.2.7", + "version": "v6.3.0", "source": { "type": "git", "url": "https://github.com/swiftmailer/swiftmailer.git", - "reference": "15f7faf8508e04471f666633addacf54c0ab5933" + "reference": "8a5d5072dca8f48460fce2f4131fcc495eec654c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/swiftmailer/swiftmailer/zipball/15f7faf8508e04471f666633addacf54c0ab5933", - "reference": "15f7faf8508e04471f666633addacf54c0ab5933", + "url": "https://api.github.com/repos/swiftmailer/swiftmailer/zipball/8a5d5072dca8f48460fce2f4131fcc495eec654c", + "reference": "8a5d5072dca8f48460fce2f4131fcc495eec654c", "shasum": "" }, "require": { @@ -1948,7 +2495,7 @@ }, "require-dev": { "mockery/mockery": "^1.0", - "symfony/phpunit-bridge": "^4.4|^5.0" + "symfony/phpunit-bridge": "^4.4|^5.4" }, "suggest": { "ext-intl": "Needed to support internationalized email addresses" @@ -1986,7 +2533,7 @@ ], "support": { "issues": "https://github.com/swiftmailer/swiftmailer/issues", - "source": "https://github.com/swiftmailer/swiftmailer/tree/v6.2.7" + "source": "https://github.com/swiftmailer/swiftmailer/tree/v6.3.0" }, "funding": [ { @@ -1998,31 +2545,34 @@ "type": "tidelift" } ], - "time": "2021-03-09T12:30:35+00:00" + "abandoned": "symfony/mailer", + "time": "2021-10-18T15:26:12+00:00" }, { "name": "symfony/console", - "version": "v5.2.8", + "version": "v5.4.16", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "864568fdc0208b3eba3638b6000b69d2386e6768" + "reference": "8e9b9c8dfb33af6057c94e1b44846bee700dc5ef" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/864568fdc0208b3eba3638b6000b69d2386e6768", - "reference": "864568fdc0208b3eba3638b6000b69d2386e6768", + "url": "https://api.github.com/repos/symfony/console/zipball/8e9b9c8dfb33af6057c94e1b44846bee700dc5ef", + "reference": "8e9b9c8dfb33af6057c94e1b44846bee700dc5ef", "shasum": "" }, "require": { "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1|^3", "symfony/polyfill-mbstring": "~1.0", - "symfony/polyfill-php73": "^1.8", - "symfony/polyfill-php80": "^1.15", - "symfony/service-contracts": "^1.1|^2", - "symfony/string": "^5.1" + "symfony/polyfill-php73": "^1.9", + "symfony/polyfill-php80": "^1.16", + "symfony/service-contracts": "^1.1|^2|^3", + "symfony/string": "^5.1|^6.0" }, "conflict": { + "psr/log": ">=3", "symfony/dependency-injection": "<4.4", "symfony/dotenv": "<5.1", "symfony/event-dispatcher": "<4.4", @@ -2030,16 +2580,16 @@ "symfony/process": "<4.4" }, "provide": { - "psr/log-implementation": "1.0" + "psr/log-implementation": "1.0|2.0" }, "require-dev": { - "psr/log": "~1.0", - "symfony/config": "^4.4|^5.0", - "symfony/dependency-injection": "^4.4|^5.0", - "symfony/event-dispatcher": "^4.4|^5.0", - "symfony/lock": "^4.4|^5.0", - "symfony/process": "^4.4|^5.0", - "symfony/var-dumper": "^4.4|^5.0" + "psr/log": "^1|^2", + "symfony/config": "^4.4|^5.0|^6.0", + "symfony/dependency-injection": "^4.4|^5.0|^6.0", + "symfony/event-dispatcher": "^4.4|^5.0|^6.0", + "symfony/lock": "^4.4|^5.0|^6.0", + "symfony/process": "^4.4|^5.0|^6.0", + "symfony/var-dumper": "^4.4|^5.0|^6.0" }, "suggest": { "psr/log": "For using the console logger", @@ -2079,7 +2629,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v5.2.8" + "source": "https://github.com/symfony/console/tree/v5.4.16" }, "funding": [ { @@ -2095,24 +2645,25 @@ "type": "tidelift" } ], - "time": "2021-05-11T15:45:21+00:00" + "time": "2022-11-25T14:09:27+00:00" }, { "name": "symfony/css-selector", - "version": "v5.2.9", + "version": "v5.4.11", "source": { "type": "git", "url": "https://github.com/symfony/css-selector.git", - "reference": "5d5f97809015102116208b976eb2edb44b689560" + "reference": "c1681789f059ab756001052164726ae88512ae3d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/css-selector/zipball/5d5f97809015102116208b976eb2edb44b689560", - "reference": "5d5f97809015102116208b976eb2edb44b689560", + "url": "https://api.github.com/repos/symfony/css-selector/zipball/c1681789f059ab756001052164726ae88512ae3d", + "reference": "c1681789f059ab756001052164726ae88512ae3d", "shasum": "" }, "require": { - "php": ">=7.2.5" + "php": ">=7.2.5", + "symfony/polyfill-php80": "^1.16" }, "type": "library", "autoload": { @@ -2144,7 +2695,7 @@ "description": "Converts CSS selectors to XPath expressions", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/css-selector/tree/v5.2.9" + "source": "https://github.com/symfony/css-selector/tree/v5.4.11" }, "funding": [ { @@ -2160,20 +2711,20 @@ "type": "tidelift" } ], - "time": "2021-05-16T13:07:46+00:00" + "time": "2022-06-27T16:58:25+00:00" }, { "name": "symfony/deprecation-contracts", - "version": "v2.4.0", + "version": "v2.5.2", "source": { "type": "git", "url": "https://github.com/symfony/deprecation-contracts.git", - "reference": "5f38c8804a9e97d23e0c8d63341088cd8a22d627" + "reference": "e8b495ea28c1d97b5e0c121748d6f9b53d075c66" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/5f38c8804a9e97d23e0c8d63341088cd8a22d627", - "reference": "5f38c8804a9e97d23e0c8d63341088cd8a22d627", + "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/e8b495ea28c1d97b5e0c121748d6f9b53d075c66", + "reference": "e8b495ea28c1d97b5e0c121748d6f9b53d075c66", "shasum": "" }, "require": { @@ -2182,7 +2733,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "2.4-dev" + "dev-main": "2.5-dev" }, "thanks": { "name": "symfony/contracts", @@ -2211,7 +2762,7 @@ "description": "A generic function and convention to trigger deprecation notices", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/deprecation-contracts/tree/v2.4.0" + "source": "https://github.com/symfony/deprecation-contracts/tree/v2.5.2" }, "funding": [ { @@ -2227,33 +2778,35 @@ "type": "tidelift" } ], - "time": "2021-03-23T23:28:01+00:00" + "time": "2022-01-02T09:53:40+00:00" }, { "name": "symfony/error-handler", - "version": "v5.2.8", + "version": "v5.4.15", "source": { "type": "git", "url": "https://github.com/symfony/error-handler.git", - "reference": "1416bc16317a8188aabde251afef7618bf4687ac" + "reference": "539cf1428b8442303c6e876ad7bf5a7babd91091" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/error-handler/zipball/1416bc16317a8188aabde251afef7618bf4687ac", - "reference": "1416bc16317a8188aabde251afef7618bf4687ac", + "url": "https://api.github.com/repos/symfony/error-handler/zipball/539cf1428b8442303c6e876ad7bf5a7babd91091", + "reference": "539cf1428b8442303c6e876ad7bf5a7babd91091", "shasum": "" }, "require": { "php": ">=7.2.5", - "psr/log": "^1.0", - "symfony/polyfill-php80": "^1.15", - "symfony/var-dumper": "^4.4|^5.0" + "psr/log": "^1|^2|^3", + "symfony/var-dumper": "^4.4|^5.0|^6.0" }, "require-dev": { - "symfony/deprecation-contracts": "^2.1", - "symfony/http-kernel": "^4.4|^5.0", - "symfony/serializer": "^4.4|^5.0" + "symfony/deprecation-contracts": "^2.1|^3", + "symfony/http-kernel": "^4.4|^5.0|^6.0", + "symfony/serializer": "^4.4|^5.0|^6.0" }, + "bin": [ + "Resources/bin/patch-type-declarations" + ], "type": "library", "autoload": { "psr-4": { @@ -2280,7 +2833,7 @@ "description": "Provides tools to manage errors and ease debugging PHP code", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/error-handler/tree/v5.2.8" + "source": "https://github.com/symfony/error-handler/tree/v5.4.15" }, "funding": [ { @@ -2296,27 +2849,27 @@ "type": "tidelift" } ], - "time": "2021-05-07T13:42:21+00:00" + "time": "2022-10-27T06:32:25+00:00" }, { "name": "symfony/event-dispatcher", - "version": "v5.2.4", + "version": "v5.4.9", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "d08d6ec121a425897951900ab692b612a61d6240" + "reference": "8e6ce1cc0279e3ff3c8ff0f43813bc88d21ca1bc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/d08d6ec121a425897951900ab692b612a61d6240", - "reference": "d08d6ec121a425897951900ab692b612a61d6240", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/8e6ce1cc0279e3ff3c8ff0f43813bc88d21ca1bc", + "reference": "8e6ce1cc0279e3ff3c8ff0f43813bc88d21ca1bc", "shasum": "" }, "require": { "php": ">=7.2.5", - "symfony/deprecation-contracts": "^2.1", - "symfony/event-dispatcher-contracts": "^2", - "symfony/polyfill-php80": "^1.15" + "symfony/deprecation-contracts": "^2.1|^3", + "symfony/event-dispatcher-contracts": "^2|^3", + "symfony/polyfill-php80": "^1.16" }, "conflict": { "symfony/dependency-injection": "<4.4" @@ -2326,14 +2879,14 @@ "symfony/event-dispatcher-implementation": "2.0" }, "require-dev": { - "psr/log": "~1.0", - "symfony/config": "^4.4|^5.0", - "symfony/dependency-injection": "^4.4|^5.0", - "symfony/error-handler": "^4.4|^5.0", - "symfony/expression-language": "^4.4|^5.0", - "symfony/http-foundation": "^4.4|^5.0", - "symfony/service-contracts": "^1.1|^2", - "symfony/stopwatch": "^4.4|^5.0" + "psr/log": "^1|^2|^3", + "symfony/config": "^4.4|^5.0|^6.0", + "symfony/dependency-injection": "^4.4|^5.0|^6.0", + "symfony/error-handler": "^4.4|^5.0|^6.0", + "symfony/expression-language": "^4.4|^5.0|^6.0", + "symfony/http-foundation": "^4.4|^5.0|^6.0", + "symfony/service-contracts": "^1.1|^2|^3", + "symfony/stopwatch": "^4.4|^5.0|^6.0" }, "suggest": { "symfony/dependency-injection": "", @@ -2365,7 +2918,7 @@ "description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/event-dispatcher/tree/v5.2.4" + "source": "https://github.com/symfony/event-dispatcher/tree/v5.4.9" }, "funding": [ { @@ -2381,20 +2934,20 @@ "type": "tidelift" } ], - "time": "2021-02-18T17:12:37+00:00" + "time": "2022-05-05T16:45:39+00:00" }, { "name": "symfony/event-dispatcher-contracts", - "version": "v2.4.0", + "version": "v2.5.2", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher-contracts.git", - "reference": "69fee1ad2332a7cbab3aca13591953da9cdb7a11" + "reference": "f98b54df6ad059855739db6fcbc2d36995283fe1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/69fee1ad2332a7cbab3aca13591953da9cdb7a11", - "reference": "69fee1ad2332a7cbab3aca13591953da9cdb7a11", + "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/f98b54df6ad059855739db6fcbc2d36995283fe1", + "reference": "f98b54df6ad059855739db6fcbc2d36995283fe1", "shasum": "" }, "require": { @@ -2407,7 +2960,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "2.4-dev" + "dev-main": "2.5-dev" }, "thanks": { "name": "symfony/contracts", @@ -2444,7 +2997,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v2.4.0" + "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v2.5.2" }, "funding": [ { @@ -2460,24 +3013,26 @@ "type": "tidelift" } ], - "time": "2021-03-23T23:28:01+00:00" + "time": "2022-01-02T09:53:40+00:00" }, { "name": "symfony/finder", - "version": "v5.2.9", + "version": "v5.4.11", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "ccccb9d48ca42757dd12f2ca4bf857a4e217d90d" + "reference": "7872a66f57caffa2916a584db1aa7f12adc76f8c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/ccccb9d48ca42757dd12f2ca4bf857a4e217d90d", - "reference": "ccccb9d48ca42757dd12f2ca4bf857a4e217d90d", + "url": "https://api.github.com/repos/symfony/finder/zipball/7872a66f57caffa2916a584db1aa7f12adc76f8c", + "reference": "7872a66f57caffa2916a584db1aa7f12adc76f8c", "shasum": "" }, "require": { - "php": ">=7.2.5" + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1|^3", + "symfony/polyfill-php80": "^1.16" }, "type": "library", "autoload": { @@ -2505,7 +3060,7 @@ "description": "Finds files and directories via an intuitive fluent interface", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/finder/tree/v5.2.9" + "source": "https://github.com/symfony/finder/tree/v5.4.11" }, "funding": [ { @@ -2521,111 +3076,36 @@ "type": "tidelift" } ], - "time": "2021-05-16T13:07:46+00:00" + "time": "2022-07-29T07:37:50+00:00" }, { - "name": "symfony/http-client-contracts", - "version": "v2.4.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/http-client-contracts.git", - "reference": "7e82f6084d7cae521a75ef2cb5c9457bbda785f4" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/http-client-contracts/zipball/7e82f6084d7cae521a75ef2cb5c9457bbda785f4", - "reference": "7e82f6084d7cae521a75ef2cb5c9457bbda785f4", - "shasum": "" - }, - "require": { - "php": ">=7.2.5" - }, - "suggest": { - "symfony/http-client-implementation": "" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "2.4-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.4.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2021-04-11T23:07:08+00:00" - }, - { - "name": "symfony/http-foundation", - "version": "v5.2.8", + "name": "symfony/http-foundation", + "version": "v5.4.16", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "e8fbbab7c4a71592985019477532629cb2e142dc" + "reference": "5032c5849aef24741e1970cb03511b0dd131d838" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/e8fbbab7c4a71592985019477532629cb2e142dc", - "reference": "e8fbbab7c4a71592985019477532629cb2e142dc", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/5032c5849aef24741e1970cb03511b0dd131d838", + "reference": "5032c5849aef24741e1970cb03511b0dd131d838", "shasum": "" }, "require": { "php": ">=7.2.5", - "symfony/deprecation-contracts": "^2.1", + "symfony/deprecation-contracts": "^2.1|^3", "symfony/polyfill-mbstring": "~1.1", - "symfony/polyfill-php80": "^1.15" + "symfony/polyfill-php80": "^1.16" }, "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" + "symfony/cache": "^4.4|^5.0|^6.0", + "symfony/dependency-injection": "^5.4|^6.0", + "symfony/expression-language": "^4.4|^5.0|^6.0", + "symfony/http-kernel": "^5.4.12|^6.0.12|^6.1.4", + "symfony/mime": "^4.4|^5.0|^6.0", + "symfony/rate-limiter": "^5.2|^6.0" }, "suggest": { "symfony/mime": "To use the file extension guesser" @@ -2656,7 +3136,7 @@ "description": "Defines an object-oriented layer for the HTTP specification", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-foundation/tree/v5.2.8" + "source": "https://github.com/symfony/http-foundation/tree/v5.4.16" }, "funding": [ { @@ -2672,40 +3152,39 @@ "type": "tidelift" } ], - "time": "2021-05-07T13:41:16+00:00" + "time": "2022-11-07T08:06:40+00:00" }, { "name": "symfony/http-kernel", - "version": "v5.2.9", + "version": "v5.4.16", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "eb540ef6870dbf33c92e372cfb869ebf9649e6cb" + "reference": "b432c57c5de73634b1859093c1f58e3cd84455a1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/eb540ef6870dbf33c92e372cfb869ebf9649e6cb", - "reference": "eb540ef6870dbf33c92e372cfb869ebf9649e6cb", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/b432c57c5de73634b1859093c1f58e3cd84455a1", + "reference": "b432c57c5de73634b1859093c1f58e3cd84455a1", "shasum": "" }, "require": { "php": ">=7.2.5", - "psr/log": "~1.0", - "symfony/deprecation-contracts": "^2.1", - "symfony/error-handler": "^4.4|^5.0", - "symfony/event-dispatcher": "^5.0", - "symfony/http-client-contracts": "^1.1|^2", - "symfony/http-foundation": "^4.4|^5.0", + "psr/log": "^1|^2", + "symfony/deprecation-contracts": "^2.1|^3", + "symfony/error-handler": "^4.4|^5.0|^6.0", + "symfony/event-dispatcher": "^5.0|^6.0", + "symfony/http-foundation": "^5.3.7|^6.0", "symfony/polyfill-ctype": "^1.8", "symfony/polyfill-php73": "^1.9", - "symfony/polyfill-php80": "^1.15" + "symfony/polyfill-php80": "^1.16" }, "conflict": { - "symfony/browser-kit": "<4.4", + "symfony/browser-kit": "<5.4", "symfony/cache": "<5.0", "symfony/config": "<5.0", "symfony/console": "<4.4", - "symfony/dependency-injection": "<5.1.8", + "symfony/dependency-injection": "<5.3", "symfony/doctrine-bridge": "<5.0", "symfony/form": "<5.0", "symfony/http-client": "<5.0", @@ -2717,23 +3196,24 @@ "twig/twig": "<2.13" }, "provide": { - "psr/log-implementation": "1.0" + "psr/log-implementation": "1.0|2.0" }, "require-dev": { "psr/cache": "^1.0|^2.0|^3.0", - "symfony/browser-kit": "^4.4|^5.0", - "symfony/config": "^5.0", - "symfony/console": "^4.4|^5.0", - "symfony/css-selector": "^4.4|^5.0", - "symfony/dependency-injection": "^5.1.8", - "symfony/dom-crawler": "^4.4|^5.0", - "symfony/expression-language": "^4.4|^5.0", - "symfony/finder": "^4.4|^5.0", - "symfony/process": "^4.4|^5.0", - "symfony/routing": "^4.4|^5.0", - "symfony/stopwatch": "^4.4|^5.0", - "symfony/translation": "^4.4|^5.0", - "symfony/translation-contracts": "^1.1|^2", + "symfony/browser-kit": "^5.4|^6.0", + "symfony/config": "^5.0|^6.0", + "symfony/console": "^4.4|^5.0|^6.0", + "symfony/css-selector": "^4.4|^5.0|^6.0", + "symfony/dependency-injection": "^5.3|^6.0", + "symfony/dom-crawler": "^4.4|^5.0|^6.0", + "symfony/expression-language": "^4.4|^5.0|^6.0", + "symfony/finder": "^4.4|^5.0|^6.0", + "symfony/http-client-contracts": "^1.1|^2|^3", + "symfony/process": "^4.4|^5.0|^6.0", + "symfony/routing": "^4.4|^5.0|^6.0", + "symfony/stopwatch": "^4.4|^5.0|^6.0", + "symfony/translation": "^4.4|^5.0|^6.0", + "symfony/translation-contracts": "^1.1|^2|^3", "twig/twig": "^2.13|^3.0.4" }, "suggest": { @@ -2768,7 +3248,7 @@ "description": "Provides a structured process for converting a Request into a Response", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-kernel/tree/v5.2.9" + "source": "https://github.com/symfony/http-kernel/tree/v5.4.16" }, "funding": [ { @@ -2784,42 +3264,43 @@ "type": "tidelift" } ], - "time": "2021-05-19T12:23:45+00:00" + "time": "2022-11-28T18:08:58+00:00" }, { "name": "symfony/mime", - "version": "v5.2.9", + "version": "v5.4.16", "source": { "type": "git", "url": "https://github.com/symfony/mime.git", - "reference": "64258e870f8cc75c3dae986201ea2df58c210b52" + "reference": "46eeedb08f0832b1b61a84c612d945fc85ee4734" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mime/zipball/64258e870f8cc75c3dae986201ea2df58c210b52", - "reference": "64258e870f8cc75c3dae986201ea2df58c210b52", + "url": "https://api.github.com/repos/symfony/mime/zipball/46eeedb08f0832b1b61a84c612d945fc85ee4734", + "reference": "46eeedb08f0832b1b61a84c612d945fc85ee4734", "shasum": "" }, "require": { "php": ">=7.2.5", - "symfony/deprecation-contracts": "^2.1", + "symfony/deprecation-contracts": "^2.1|^3", "symfony/polyfill-intl-idn": "^1.10", "symfony/polyfill-mbstring": "^1.0", - "symfony/polyfill-php80": "^1.15" + "symfony/polyfill-php80": "^1.16" }, "conflict": { "egulias/email-validator": "~3.0.0", "phpdocumentor/reflection-docblock": "<3.2.2", "phpdocumentor/type-resolver": "<1.4.0", - "symfony/mailer": "<4.4" + "symfony/mailer": "<4.4", + "symfony/serializer": "<5.4.14|>=6.0,<6.0.14|>=6.1,<6.1.6" }, "require-dev": { "egulias/email-validator": "^2.1.10|^3.1", "phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0", - "symfony/dependency-injection": "^4.4|^5.0", - "symfony/property-access": "^4.4|^5.1", - "symfony/property-info": "^4.4|^5.1", - "symfony/serializer": "^5.2" + "symfony/dependency-injection": "^4.4|^5.0|^6.0", + "symfony/property-access": "^4.4|^5.1|^6.0", + "symfony/property-info": "^4.4|^5.1|^6.0", + "symfony/serializer": "^5.4.14|~6.0.14|^6.1.6" }, "type": "library", "autoload": { @@ -2851,7 +3332,7 @@ "mime-type" ], "support": { - "source": "https://github.com/symfony/mime/tree/v5.2.9" + "source": "https://github.com/symfony/mime/tree/v5.4.16" }, "funding": [ { @@ -2867,32 +3348,35 @@ "type": "tidelift" } ], - "time": "2021-05-16T13:07:46+00:00" + "time": "2022-11-26T16:45:22+00:00" }, { "name": "symfony/polyfill-ctype", - "version": "v1.22.1", + "version": "v1.27.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-ctype.git", - "reference": "c6c942b1ac76c82448322025e084cadc56048b4e" + "reference": "5bbc823adecdae860bb64756d639ecfec17b050a" }, "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/5bbc823adecdae860bb64756d639ecfec17b050a", + "reference": "5bbc823adecdae860bb64756d639ecfec17b050a", "shasum": "" }, "require": { "php": ">=7.1" }, + "provide": { + "ext-ctype": "*" + }, "suggest": { "ext-ctype": "For best performance" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "1.22-dev" + "dev-main": "1.27-dev" }, "thanks": { "name": "symfony/polyfill", @@ -2900,12 +3384,12 @@ } }, "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Ctype\\": "" - }, "files": [ "bootstrap.php" - ] + ], + "psr-4": { + "Symfony\\Polyfill\\Ctype\\": "" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -2930,7 +3414,7 @@ "portable" ], "support": { - "source": "https://github.com/symfony/polyfill-ctype/tree/v1.22.1" + "source": "https://github.com/symfony/polyfill-ctype/tree/v1.27.0" }, "funding": [ { @@ -2946,32 +3430,35 @@ "type": "tidelift" } ], - "time": "2021-01-07T16:49:33+00:00" + "time": "2022-11-03T14:55:06+00:00" }, { "name": "symfony/polyfill-iconv", - "version": "v1.22.1", + "version": "v1.27.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-iconv.git", - "reference": "06fb361659649bcfd6a208a0f1fcaf4e827ad342" + "reference": "927013f3aac555983a5059aada98e1907d842695" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-iconv/zipball/06fb361659649bcfd6a208a0f1fcaf4e827ad342", - "reference": "06fb361659649bcfd6a208a0f1fcaf4e827ad342", + "url": "https://api.github.com/repos/symfony/polyfill-iconv/zipball/927013f3aac555983a5059aada98e1907d842695", + "reference": "927013f3aac555983a5059aada98e1907d842695", "shasum": "" }, "require": { "php": ">=7.1" }, + "provide": { + "ext-iconv": "*" + }, "suggest": { "ext-iconv": "For best performance" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "1.22-dev" + "dev-main": "1.27-dev" }, "thanks": { "name": "symfony/polyfill", @@ -2979,12 +3466,12 @@ } }, "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Iconv\\": "" - }, "files": [ "bootstrap.php" - ] + ], + "psr-4": { + "Symfony\\Polyfill\\Iconv\\": "" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -3010,7 +3497,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-iconv/tree/v1.22.1" + "source": "https://github.com/symfony/polyfill-iconv/tree/v1.27.0" }, "funding": [ { @@ -3026,20 +3513,20 @@ "type": "tidelift" } ], - "time": "2021-01-22T09:19:47+00:00" + "time": "2022-11-03T14:55:06+00:00" }, { "name": "symfony/polyfill-intl-grapheme", - "version": "v1.22.1", + "version": "v1.27.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-grapheme.git", - "reference": "5601e09b69f26c1828b13b6bb87cb07cddba3170" + "reference": "511a08c03c1960e08a883f4cffcacd219b758354" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/5601e09b69f26c1828b13b6bb87cb07cddba3170", - "reference": "5601e09b69f26c1828b13b6bb87cb07cddba3170", + "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/511a08c03c1960e08a883f4cffcacd219b758354", + "reference": "511a08c03c1960e08a883f4cffcacd219b758354", "shasum": "" }, "require": { @@ -3051,7 +3538,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.22-dev" + "dev-main": "1.27-dev" }, "thanks": { "name": "symfony/polyfill", @@ -3059,12 +3546,12 @@ } }, "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Intl\\Grapheme\\": "" - }, "files": [ "bootstrap.php" - ] + ], + "psr-4": { + "Symfony\\Polyfill\\Intl\\Grapheme\\": "" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -3091,7 +3578,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.22.1" + "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.27.0" }, "funding": [ { @@ -3107,20 +3594,20 @@ "type": "tidelift" } ], - "time": "2021-01-22T09:19:47+00:00" + "time": "2022-11-03T14:55:06+00:00" }, { "name": "symfony/polyfill-intl-idn", - "version": "v1.22.1", + "version": "v1.27.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-idn.git", - "reference": "2d63434d922daf7da8dd863e7907e67ee3031483" + "reference": "639084e360537a19f9ee352433b84ce831f3d2da" }, "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/639084e360537a19f9ee352433b84ce831f3d2da", + "reference": "639084e360537a19f9ee352433b84ce831f3d2da", "shasum": "" }, "require": { @@ -3134,7 +3621,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.22-dev" + "dev-main": "1.27-dev" }, "thanks": { "name": "symfony/polyfill", @@ -3142,12 +3629,12 @@ } }, "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Intl\\Idn\\": "" - }, "files": [ "bootstrap.php" - ] + ], + "psr-4": { + "Symfony\\Polyfill\\Intl\\Idn\\": "" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -3178,7 +3665,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.22.1" + "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.27.0" }, "funding": [ { @@ -3194,20 +3681,20 @@ "type": "tidelift" } ], - "time": "2021-01-22T09:19:47+00:00" + "time": "2022-11-03T14:55:06+00:00" }, { "name": "symfony/polyfill-intl-normalizer", - "version": "v1.22.1", + "version": "v1.27.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-normalizer.git", - "reference": "43a0283138253ed1d48d352ab6d0bdb3f809f248" + "reference": "19bd1e4fcd5b91116f14d8533c57831ed00571b6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/43a0283138253ed1d48d352ab6d0bdb3f809f248", - "reference": "43a0283138253ed1d48d352ab6d0bdb3f809f248", + "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/19bd1e4fcd5b91116f14d8533c57831ed00571b6", + "reference": "19bd1e4fcd5b91116f14d8533c57831ed00571b6", "shasum": "" }, "require": { @@ -3219,7 +3706,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.22-dev" + "dev-main": "1.27-dev" }, "thanks": { "name": "symfony/polyfill", @@ -3227,12 +3714,12 @@ } }, "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Intl\\Normalizer\\": "" - }, "files": [ "bootstrap.php" ], + "psr-4": { + "Symfony\\Polyfill\\Intl\\Normalizer\\": "" + }, "classmap": [ "Resources/stubs" ] @@ -3262,7 +3749,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.22.1" + "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.27.0" }, "funding": [ { @@ -3278,32 +3765,35 @@ "type": "tidelift" } ], - "time": "2021-01-22T09:19:47+00:00" + "time": "2022-11-03T14:55:06+00:00" }, { "name": "symfony/polyfill-mbstring", - "version": "v1.22.1", + "version": "v1.27.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "5232de97ee3b75b0360528dae24e73db49566ab1" + "reference": "8ad114f6b39e2c98a8b0e3bd907732c207c2b534" }, "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/8ad114f6b39e2c98a8b0e3bd907732c207c2b534", + "reference": "8ad114f6b39e2c98a8b0e3bd907732c207c2b534", "shasum": "" }, "require": { "php": ">=7.1" }, + "provide": { + "ext-mbstring": "*" + }, "suggest": { "ext-mbstring": "For best performance" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "1.22-dev" + "dev-main": "1.27-dev" }, "thanks": { "name": "symfony/polyfill", @@ -3311,12 +3801,12 @@ } }, "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Mbstring\\": "" - }, "files": [ "bootstrap.php" - ] + ], + "psr-4": { + "Symfony\\Polyfill\\Mbstring\\": "" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -3342,7 +3832,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.22.1" + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.27.0" }, "funding": [ { @@ -3358,20 +3848,20 @@ "type": "tidelift" } ], - "time": "2021-01-22T09:19:47+00:00" + "time": "2022-11-03T14:55:06+00:00" }, { "name": "symfony/polyfill-php72", - "version": "v1.22.1", + "version": "v1.27.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php72.git", - "reference": "cc6e6f9b39fe8075b3dabfbaf5b5f645ae1340c9" + "reference": "869329b1e9894268a8a61dabb69153029b7a8c97" }, "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/869329b1e9894268a8a61dabb69153029b7a8c97", + "reference": "869329b1e9894268a8a61dabb69153029b7a8c97", "shasum": "" }, "require": { @@ -3380,7 +3870,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.22-dev" + "dev-main": "1.27-dev" }, "thanks": { "name": "symfony/polyfill", @@ -3388,12 +3878,12 @@ } }, "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Php72\\": "" - }, "files": [ "bootstrap.php" - ] + ], + "psr-4": { + "Symfony\\Polyfill\\Php72\\": "" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -3418,7 +3908,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php72/tree/v1.22.1" + "source": "https://github.com/symfony/polyfill-php72/tree/v1.27.0" }, "funding": [ { @@ -3434,20 +3924,20 @@ "type": "tidelift" } ], - "time": "2021-01-07T16:49:33+00:00" + "time": "2022-11-03T14:55:06+00:00" }, { "name": "symfony/polyfill-php73", - "version": "v1.22.1", + "version": "v1.27.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php73.git", - "reference": "a678b42e92f86eca04b7fa4c0f6f19d097fb69e2" + "reference": "9e8ecb5f92152187c4799efd3c96b78ccab18ff9" }, "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/9e8ecb5f92152187c4799efd3c96b78ccab18ff9", + "reference": "9e8ecb5f92152187c4799efd3c96b78ccab18ff9", "shasum": "" }, "require": { @@ -3456,7 +3946,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.22-dev" + "dev-main": "1.27-dev" }, "thanks": { "name": "symfony/polyfill", @@ -3464,12 +3954,12 @@ } }, "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Php73\\": "" - }, "files": [ "bootstrap.php" ], + "psr-4": { + "Symfony\\Polyfill\\Php73\\": "" + }, "classmap": [ "Resources/stubs" ] @@ -3497,7 +3987,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php73/tree/v1.22.1" + "source": "https://github.com/symfony/polyfill-php73/tree/v1.27.0" }, "funding": [ { @@ -3513,20 +4003,20 @@ "type": "tidelift" } ], - "time": "2021-01-07T16:49:33+00:00" + "time": "2022-11-03T14:55:06+00:00" }, { "name": "symfony/polyfill-php80", - "version": "v1.22.1", + "version": "v1.27.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php80.git", - "reference": "dc3063ba22c2a1fd2f45ed856374d79114998f91" + "reference": "7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/dc3063ba22c2a1fd2f45ed856374d79114998f91", - "reference": "dc3063ba22c2a1fd2f45ed856374d79114998f91", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936", + "reference": "7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936", "shasum": "" }, "require": { @@ -3535,7 +4025,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.22-dev" + "dev-main": "1.27-dev" }, "thanks": { "name": "symfony/polyfill", @@ -3543,12 +4033,12 @@ } }, "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Php80\\": "" - }, "files": [ "bootstrap.php" ], + "psr-4": { + "Symfony\\Polyfill\\Php80\\": "" + }, "classmap": [ "Resources/stubs" ] @@ -3580,7 +4070,86 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php80/tree/v1.22.1" + "source": "https://github.com/symfony/polyfill-php80/tree/v1.27.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": "2022-11-03T14:55:06+00:00" + }, + { + "name": "symfony/polyfill-php81", + "version": "v1.27.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php81.git", + "reference": "707403074c8ea6e2edaf8794b0157a0bfa52157a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/707403074c8ea6e2edaf8794b0157a0bfa52157a", + "reference": "707403074c8ea6e2edaf8794b0157a0bfa52157a", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.27-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Php81\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 8.1+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php81/tree/v1.27.0" }, "funding": [ { @@ -3596,25 +4165,25 @@ "type": "tidelift" } ], - "time": "2021-01-07T16:49:33+00:00" + "time": "2022-11-03T14:55:06+00:00" }, { "name": "symfony/process", - "version": "v5.2.7", + "version": "v5.4.11", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "98cb8eeb72e55d4196dd1e36f1f16e7b3a9a088e" + "reference": "6e75fe6874cbc7e4773d049616ab450eff537bf1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/98cb8eeb72e55d4196dd1e36f1f16e7b3a9a088e", - "reference": "98cb8eeb72e55d4196dd1e36f1f16e7b3a9a088e", + "url": "https://api.github.com/repos/symfony/process/zipball/6e75fe6874cbc7e4773d049616ab450eff537bf1", + "reference": "6e75fe6874cbc7e4773d049616ab450eff537bf1", "shasum": "" }, "require": { "php": ">=7.2.5", - "symfony/polyfill-php80": "^1.15" + "symfony/polyfill-php80": "^1.16" }, "type": "library", "autoload": { @@ -3642,7 +4211,7 @@ "description": "Executes commands in sub-processes", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/process/tree/v5.3.0-BETA1" + "source": "https://github.com/symfony/process/tree/v5.4.11" }, "funding": [ { @@ -3658,40 +4227,41 @@ "type": "tidelift" } ], - "time": "2021-04-08T10:27:02+00:00" + "time": "2022-06-27T16:58:25+00:00" }, { "name": "symfony/routing", - "version": "v5.2.9", + "version": "v5.4.15", "source": { "type": "git", "url": "https://github.com/symfony/routing.git", - "reference": "4a7b2bf5e1221be1902b6853743a9bb317f6925e" + "reference": "5c9b129efe9abce9470e384bf65d8a7e262eee69" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/4a7b2bf5e1221be1902b6853743a9bb317f6925e", - "reference": "4a7b2bf5e1221be1902b6853743a9bb317f6925e", + "url": "https://api.github.com/repos/symfony/routing/zipball/5c9b129efe9abce9470e384bf65d8a7e262eee69", + "reference": "5c9b129efe9abce9470e384bf65d8a7e262eee69", "shasum": "" }, "require": { "php": ">=7.2.5", - "symfony/deprecation-contracts": "^2.1", - "symfony/polyfill-php80": "^1.15" + "symfony/deprecation-contracts": "^2.1|^3", + "symfony/polyfill-php80": "^1.16" }, "conflict": { - "symfony/config": "<5.0", + "doctrine/annotations": "<1.12", + "symfony/config": "<5.3", "symfony/dependency-injection": "<4.4", "symfony/yaml": "<4.4" }, "require-dev": { - "doctrine/annotations": "^1.10.4", - "psr/log": "~1.0", - "symfony/config": "^5.0", - "symfony/dependency-injection": "^4.4|^5.0", - "symfony/expression-language": "^4.4|^5.0", - "symfony/http-foundation": "^4.4|^5.0", - "symfony/yaml": "^4.4|^5.0" + "doctrine/annotations": "^1.12", + "psr/log": "^1|^2|^3", + "symfony/config": "^5.3|^6.0", + "symfony/dependency-injection": "^4.4|^5.0|^6.0", + "symfony/expression-language": "^4.4|^5.0|^6.0", + "symfony/http-foundation": "^4.4|^5.0|^6.0", + "symfony/yaml": "^4.4|^5.0|^6.0" }, "suggest": { "symfony/config": "For using the all-in-one router or any loader", @@ -3731,7 +4301,7 @@ "url" ], "support": { - "source": "https://github.com/symfony/routing/tree/v5.2.9" + "source": "https://github.com/symfony/routing/tree/v5.4.15" }, "funding": [ { @@ -3747,25 +4317,29 @@ "type": "tidelift" } ], - "time": "2021-05-16T13:07:46+00:00" + "time": "2022-10-13T14:10:41+00:00" }, { "name": "symfony/service-contracts", - "version": "v2.4.0", + "version": "v2.5.2", "source": { "type": "git", "url": "https://github.com/symfony/service-contracts.git", - "reference": "f040a30e04b57fbcc9c6cbcf4dbaa96bd318b9bb" + "reference": "4b426aac47d6427cc1a1d0f7e2ac724627f5966c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/service-contracts/zipball/f040a30e04b57fbcc9c6cbcf4dbaa96bd318b9bb", - "reference": "f040a30e04b57fbcc9c6cbcf4dbaa96bd318b9bb", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/4b426aac47d6427cc1a1d0f7e2ac724627f5966c", + "reference": "4b426aac47d6427cc1a1d0f7e2ac724627f5966c", "shasum": "" }, "require": { "php": ">=7.2.5", - "psr/container": "^1.1" + "psr/container": "^1.1", + "symfony/deprecation-contracts": "^2.1|^3" + }, + "conflict": { + "ext-psr": "<1.1|>=2" }, "suggest": { "symfony/service-implementation": "" @@ -3773,7 +4347,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "2.4-dev" + "dev-main": "2.5-dev" }, "thanks": { "name": "symfony/contracts", @@ -3810,7 +4384,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/service-contracts/tree/v2.4.0" + "source": "https://github.com/symfony/service-contracts/tree/v2.5.2" }, "funding": [ { @@ -3826,20 +4400,20 @@ "type": "tidelift" } ], - "time": "2021-04-01T10:43:52+00:00" + "time": "2022-05-30T19:17:29+00:00" }, { "name": "symfony/string", - "version": "v5.2.8", + "version": "v5.4.15", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "01b35eb64cac8467c3f94cd0ce2d0d376bb7d1db" + "reference": "571334ce9f687e3e6af72db4d3b2a9431e4fd9ed" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/01b35eb64cac8467c3f94cd0ce2d0d376bb7d1db", - "reference": "01b35eb64cac8467c3f94cd0ce2d0d376bb7d1db", + "url": "https://api.github.com/repos/symfony/string/zipball/571334ce9f687e3e6af72db4d3b2a9431e4fd9ed", + "reference": "571334ce9f687e3e6af72db4d3b2a9431e4fd9ed", "shasum": "" }, "require": { @@ -3850,20 +4424,23 @@ "symfony/polyfill-mbstring": "~1.0", "symfony/polyfill-php80": "~1.15" }, + "conflict": { + "symfony/translation-contracts": ">=3.0" + }, "require-dev": { - "symfony/error-handler": "^4.4|^5.0", - "symfony/http-client": "^4.4|^5.0", + "symfony/error-handler": "^4.4|^5.0|^6.0", + "symfony/http-client": "^4.4|^5.0|^6.0", "symfony/translation-contracts": "^1.1|^2", - "symfony/var-exporter": "^4.4|^5.0" + "symfony/var-exporter": "^4.4|^5.0|^6.0" }, "type": "library", "autoload": { - "psr-4": { - "Symfony\\Component\\String\\": "" - }, "files": [ "Resources/functions.php" ], + "psr-4": { + "Symfony\\Component\\String\\": "" + }, "exclude-from-classmap": [ "/Tests/" ] @@ -3893,7 +4470,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v5.2.8" + "source": "https://github.com/symfony/string/tree/v5.4.15" }, "funding": [ { @@ -3909,30 +4486,32 @@ "type": "tidelift" } ], - "time": "2021-05-10T14:56:10+00:00" + "time": "2022-10-05T15:16:54+00:00" }, { "name": "symfony/translation", - "version": "v5.2.9", + "version": "v5.4.14", "source": { "type": "git", "url": "https://github.com/symfony/translation.git", - "reference": "61af68dba333e2d376a325a29c2a3f2a605b4876" + "reference": "f0ed07675863aa6e3939df8b1bc879450b585cab" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation/zipball/61af68dba333e2d376a325a29c2a3f2a605b4876", - "reference": "61af68dba333e2d376a325a29c2a3f2a605b4876", + "url": "https://api.github.com/repos/symfony/translation/zipball/f0ed07675863aa6e3939df8b1bc879450b585cab", + "reference": "f0ed07675863aa6e3939df8b1bc879450b585cab", "shasum": "" }, "require": { "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1|^3", "symfony/polyfill-mbstring": "~1.0", - "symfony/polyfill-php80": "^1.15", + "symfony/polyfill-php80": "^1.16", "symfony/translation-contracts": "^2.3" }, "conflict": { "symfony/config": "<4.4", + "symfony/console": "<5.3", "symfony/dependency-injection": "<5.0", "symfony/http-kernel": "<5.0", "symfony/twig-bundle": "<5.0", @@ -3942,15 +4521,17 @@ "symfony/translation-implementation": "2.3" }, "require-dev": { - "psr/log": "~1.0", - "symfony/config": "^4.4|^5.0", - "symfony/console": "^4.4|^5.0", - "symfony/dependency-injection": "^5.0", - "symfony/finder": "^4.4|^5.0", - "symfony/http-kernel": "^5.0", - "symfony/intl": "^4.4|^5.0", - "symfony/service-contracts": "^1.1.2|^2", - "symfony/yaml": "^4.4|^5.0" + "psr/log": "^1|^2|^3", + "symfony/config": "^4.4|^5.0|^6.0", + "symfony/console": "^5.4|^6.0", + "symfony/dependency-injection": "^5.0|^6.0", + "symfony/finder": "^4.4|^5.0|^6.0", + "symfony/http-client-contracts": "^1.1|^2.0|^3.0", + "symfony/http-kernel": "^5.0|^6.0", + "symfony/intl": "^4.4|^5.0|^6.0", + "symfony/polyfill-intl-icu": "^1.21", + "symfony/service-contracts": "^1.1.2|^2|^3", + "symfony/yaml": "^4.4|^5.0|^6.0" }, "suggest": { "psr/log-implementation": "To use logging capability in translator", @@ -3986,7 +4567,7 @@ "description": "Provides tools to internationalize your application", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/translation/tree/v5.2.9" + "source": "https://github.com/symfony/translation/tree/v5.4.14" }, "funding": [ { @@ -4002,20 +4583,20 @@ "type": "tidelift" } ], - "time": "2021-05-16T13:07:46+00:00" + "time": "2022-10-07T08:01:20+00:00" }, { "name": "symfony/translation-contracts", - "version": "v2.4.0", + "version": "v2.5.2", "source": { "type": "git", "url": "https://github.com/symfony/translation-contracts.git", - "reference": "95c812666f3e91db75385749fe219c5e494c7f95" + "reference": "136b19dd05cdf0709db6537d058bcab6dd6e2dbe" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/95c812666f3e91db75385749fe219c5e494c7f95", - "reference": "95c812666f3e91db75385749fe219c5e494c7f95", + "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/136b19dd05cdf0709db6537d058bcab6dd6e2dbe", + "reference": "136b19dd05cdf0709db6537d058bcab6dd6e2dbe", "shasum": "" }, "require": { @@ -4027,7 +4608,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "2.4-dev" + "dev-main": "2.5-dev" }, "thanks": { "name": "symfony/contracts", @@ -4064,7 +4645,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/translation-contracts/tree/v2.4.0" + "source": "https://github.com/symfony/translation-contracts/tree/v2.5.2" }, "funding": [ { @@ -4080,26 +4661,26 @@ "type": "tidelift" } ], - "time": "2021-03-23T23:28:01+00:00" + "time": "2022-06-27T16:58:25+00:00" }, { "name": "symfony/var-dumper", - "version": "v5.2.8", + "version": "v5.4.14", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "d693200a73fae179d27f8f1b16b4faf3e8569eba" + "reference": "6894d06145fefebd9a4c7272baa026a1c394a430" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/d693200a73fae179d27f8f1b16b4faf3e8569eba", - "reference": "d693200a73fae179d27f8f1b16b4faf3e8569eba", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/6894d06145fefebd9a4c7272baa026a1c394a430", + "reference": "6894d06145fefebd9a4c7272baa026a1c394a430", "shasum": "" }, "require": { "php": ">=7.2.5", "symfony/polyfill-mbstring": "~1.0", - "symfony/polyfill-php80": "^1.15" + "symfony/polyfill-php80": "^1.16" }, "conflict": { "phpunit/phpunit": "<5.4.3", @@ -4107,8 +4688,9 @@ }, "require-dev": { "ext-iconv": "*", - "symfony/console": "^4.4|^5.0", - "symfony/process": "^4.4|^5.0", + "symfony/console": "^4.4|^5.0|^6.0", + "symfony/process": "^4.4|^5.0|^6.0", + "symfony/uid": "^5.1|^6.0", "twig/twig": "^2.13|^3.0.4" }, "suggest": { @@ -4152,7 +4734,7 @@ "dump" ], "support": { - "source": "https://github.com/symfony/var-dumper/tree/v5.2.8" + "source": "https://github.com/symfony/var-dumper/tree/v5.4.14" }, "funding": [ { @@ -4168,30 +4750,30 @@ "type": "tidelift" } ], - "time": "2021-05-07T13:42:21+00:00" + "time": "2022-10-07T08:01:20+00:00" }, { "name": "tijsverkoyen/css-to-inline-styles", - "version": "2.2.3", + "version": "2.2.5", "source": { "type": "git", "url": "https://github.com/tijsverkoyen/CssToInlineStyles.git", - "reference": "b43b05cf43c1b6d849478965062b6ef73e223bb5" + "reference": "4348a3a06651827a27d989ad1d13efec6bb49b19" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/tijsverkoyen/CssToInlineStyles/zipball/b43b05cf43c1b6d849478965062b6ef73e223bb5", - "reference": "b43b05cf43c1b6d849478965062b6ef73e223bb5", + "url": "https://api.github.com/repos/tijsverkoyen/CssToInlineStyles/zipball/4348a3a06651827a27d989ad1d13efec6bb49b19", + "reference": "4348a3a06651827a27d989ad1d13efec6bb49b19", "shasum": "" }, "require": { "ext-dom": "*", "ext-libxml": "*", "php": "^5.5 || ^7.0 || ^8.0", - "symfony/css-selector": "^2.7 || ^3.0 || ^4.0 || ^5.0" + "symfony/css-selector": "^2.7 || ^3.0 || ^4.0 || ^5.0 || ^6.0" }, "require-dev": { - "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0 || ^7.5" + "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0 || ^7.5 || ^8.5.21 || ^9.5.10" }, "type": "library", "extra": { @@ -4219,45 +4801,49 @@ "homepage": "https://github.com/tijsverkoyen/CssToInlineStyles", "support": { "issues": "https://github.com/tijsverkoyen/CssToInlineStyles/issues", - "source": "https://github.com/tijsverkoyen/CssToInlineStyles/tree/2.2.3" + "source": "https://github.com/tijsverkoyen/CssToInlineStyles/tree/2.2.5" }, - "time": "2020-07-13T06:12:54+00:00" + "time": "2022-09-12T13:28:28+00:00" }, { "name": "vlucas/phpdotenv", - "version": "v5.3.0", + "version": "v5.5.0", "source": { "type": "git", "url": "https://github.com/vlucas/phpdotenv.git", - "reference": "b3eac5c7ac896e52deab4a99068e3f4ab12d9e56" + "reference": "1a7ea2afc49c3ee6d87061f5a233e3a035d0eae7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/b3eac5c7ac896e52deab4a99068e3f4ab12d9e56", - "reference": "b3eac5c7ac896e52deab4a99068e3f4ab12d9e56", + "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/1a7ea2afc49c3ee6d87061f5a233e3a035d0eae7", + "reference": "1a7ea2afc49c3ee6d87061f5a233e3a035d0eae7", "shasum": "" }, "require": { "ext-pcre": "*", - "graham-campbell/result-type": "^1.0.1", + "graham-campbell/result-type": "^1.0.2", "php": "^7.1.3 || ^8.0", - "phpoption/phpoption": "^1.7.4", - "symfony/polyfill-ctype": "^1.17", - "symfony/polyfill-mbstring": "^1.17", - "symfony/polyfill-php80": "^1.17" + "phpoption/phpoption": "^1.8", + "symfony/polyfill-ctype": "^1.23", + "symfony/polyfill-mbstring": "^1.23.1", + "symfony/polyfill-php80": "^1.23.1" }, "require-dev": { "bamarni/composer-bin-plugin": "^1.4.1", "ext-filter": "*", - "phpunit/phpunit": "^7.5.20 || ^8.5.14 || ^9.5.1" + "phpunit/phpunit": "^7.5.20 || ^8.5.30 || ^9.5.25" }, "suggest": { "ext-filter": "Required to use the boolean validator." }, "type": "library", "extra": { + "bamarni-bin": { + "bin-links": true, + "forward-command": true + }, "branch-alias": { - "dev-master": "5.3-dev" + "dev-master": "5.5-dev" } }, "autoload": { @@ -4272,13 +4858,13 @@ "authors": [ { "name": "Graham Campbell", - "email": "graham@alt-three.com", - "homepage": "https://gjcampbell.co.uk/" + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" }, { "name": "Vance Lucas", "email": "vance@vancelucas.com", - "homepage": "https://vancelucas.com/" + "homepage": "https://github.com/vlucas" } ], "description": "Loads environment variables from `.env` to `getenv()`, `$_ENV` and `$_SERVER` automagically.", @@ -4289,7 +4875,7 @@ ], "support": { "issues": "https://github.com/vlucas/phpdotenv/issues", - "source": "https://github.com/vlucas/phpdotenv/tree/v5.3.0" + "source": "https://github.com/vlucas/phpdotenv/tree/v5.5.0" }, "funding": [ { @@ -4301,20 +4887,20 @@ "type": "tidelift" } ], - "time": "2021-01-20T15:23:13+00:00" + "time": "2022-10-16T01:01:54+00:00" }, { "name": "voku/portable-ascii", - "version": "1.5.6", + "version": "1.6.1", "source": { "type": "git", "url": "https://github.com/voku/portable-ascii.git", - "reference": "80953678b19901e5165c56752d087fc11526017c" + "reference": "87337c91b9dfacee02452244ee14ab3c43bc485a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/voku/portable-ascii/zipball/80953678b19901e5165c56752d087fc11526017c", - "reference": "80953678b19901e5165c56752d087fc11526017c", + "url": "https://api.github.com/repos/voku/portable-ascii/zipball/87337c91b9dfacee02452244ee14ab3c43bc485a", + "reference": "87337c91b9dfacee02452244ee14ab3c43bc485a", "shasum": "" }, "require": { @@ -4351,7 +4937,7 @@ ], "support": { "issues": "https://github.com/voku/portable-ascii/issues", - "source": "https://github.com/voku/portable-ascii/tree/1.5.6" + "source": "https://github.com/voku/portable-ascii/tree/1.6.1" }, "funding": [ { @@ -4375,25 +4961,25 @@ "type": "tidelift" } ], - "time": "2020-11-12T00:07:28+00:00" + "time": "2022-01-24T18:55:24+00:00" }, { "name": "webmozart/assert", - "version": "1.10.0", + "version": "1.11.0", "source": { "type": "git", "url": "https://github.com/webmozarts/assert.git", - "reference": "6964c76c7804814a842473e0c8fd15bab0f18e25" + "reference": "11cb2199493b2f8a3b53e7f19068fc6aac760991" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/webmozarts/assert/zipball/6964c76c7804814a842473e0c8fd15bab0f18e25", - "reference": "6964c76c7804814a842473e0c8fd15bab0f18e25", + "url": "https://api.github.com/repos/webmozarts/assert/zipball/11cb2199493b2f8a3b53e7f19068fc6aac760991", + "reference": "11cb2199493b2f8a3b53e7f19068fc6aac760991", "shasum": "" }, "require": { - "php": "^7.2 || ^8.0", - "symfony/polyfill-ctype": "^1.8" + "ext-ctype": "*", + "php": "^7.2 || ^8.0" }, "conflict": { "phpstan/phpstan": "<0.12.20", @@ -4410,7 +4996,528 @@ }, "autoload": { "psr-4": { - "Webmozart\\Assert\\": "src/" + "Webmozart\\Assert\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Bernhard Schussek", + "email": "bschussek@gmail.com" + } + ], + "description": "Assertions to validate method input/output with nice error messages.", + "keywords": [ + "assert", + "check", + "validate" + ], + "support": { + "issues": "https://github.com/webmozarts/assert/issues", + "source": "https://github.com/webmozarts/assert/tree/1.11.0" + }, + "time": "2022-06-03T18:03:27+00:00" + } + ], + "packages-dev": [ + { + "name": "barryvdh/laravel-ide-helper", + "version": "v2.12.3", + "source": { + "type": "git", + "url": "https://github.com/barryvdh/laravel-ide-helper.git", + "reference": "3ba1e2573b38f72107b8aacc4ee177fcab30a550" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/barryvdh/laravel-ide-helper/zipball/3ba1e2573b38f72107b8aacc4ee177fcab30a550", + "reference": "3ba1e2573b38f72107b8aacc4ee177fcab30a550", + "shasum": "" + }, + "require": { + "barryvdh/reflection-docblock": "^2.0.6", + "composer/pcre": "^1 || ^2 || ^3", + "doctrine/dbal": "^2.6 || ^3", + "ext-json": "*", + "illuminate/console": "^8 || ^9", + "illuminate/filesystem": "^8 || ^9", + "illuminate/support": "^8 || ^9", + "nikic/php-parser": "^4.7", + "php": "^7.3 || ^8.0", + "phpdocumentor/type-resolver": "^1.1.0" + }, + "require-dev": { + "ext-pdo_sqlite": "*", + "friendsofphp/php-cs-fixer": "^2", + "illuminate/config": "^8 || ^9", + "illuminate/view": "^8 || ^9", + "mockery/mockery": "^1.4", + "orchestra/testbench": "^6 || ^7", + "phpunit/phpunit": "^8.5 || ^9", + "spatie/phpunit-snapshot-assertions": "^3 || ^4", + "vimeo/psalm": "^3.12" + }, + "suggest": { + "illuminate/events": "Required for automatic helper generation (^6|^7|^8|^9)." + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.12-dev" + }, + "laravel": { + "providers": [ + "Barryvdh\\LaravelIdeHelper\\IdeHelperServiceProvider" + ] + } + }, + "autoload": { + "psr-4": { + "Barryvdh\\LaravelIdeHelper\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Barry vd. Heuvel", + "email": "barryvdh@gmail.com" + } + ], + "description": "Laravel IDE Helper, generates correct PHPDocs for all Facade classes, to improve auto-completion.", + "keywords": [ + "autocomplete", + "codeintel", + "helper", + "ide", + "laravel", + "netbeans", + "phpdoc", + "phpstorm", + "sublime" + ], + "support": { + "issues": "https://github.com/barryvdh/laravel-ide-helper/issues", + "source": "https://github.com/barryvdh/laravel-ide-helper/tree/v2.12.3" + }, + "funding": [ + { + "url": "https://fruitcake.nl", + "type": "custom" + }, + { + "url": "https://github.com/barryvdh", + "type": "github" + } + ], + "time": "2022-03-06T14:33:42+00:00" + }, + { + "name": "barryvdh/reflection-docblock", + "version": "v2.1.0", + "source": { + "type": "git", + "url": "https://github.com/barryvdh/ReflectionDocBlock.git", + "reference": "bf44b757feb8ba1734659029357646466ded673e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/barryvdh/ReflectionDocBlock/zipball/bf44b757feb8ba1734659029357646466ded673e", + "reference": "bf44b757feb8ba1734659029357646466ded673e", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "require-dev": { + "phpunit/phpunit": "^8.5.14|^9" + }, + "suggest": { + "dflydev/markdown": "~1.0", + "erusev/parsedown": "~1.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "psr-0": { + "Barryvdh": [ + "src/" + ] + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Mike van Riel", + "email": "mike.vanriel@naenius.com" + } + ], + "support": { + "source": "https://github.com/barryvdh/ReflectionDocBlock/tree/v2.1.0" + }, + "time": "2022-10-31T15:35:43+00:00" + }, + { + "name": "composer/pcre", + "version": "3.1.0", + "source": { + "type": "git", + "url": "https://github.com/composer/pcre.git", + "reference": "4bff79ddd77851fe3cdd11616ed3f92841ba5bd2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/composer/pcre/zipball/4bff79ddd77851fe3cdd11616ed3f92841ba5bd2", + "reference": "4bff79ddd77851fe3cdd11616ed3f92841ba5bd2", + "shasum": "" + }, + "require": { + "php": "^7.4 || ^8.0" + }, + "require-dev": { + "phpstan/phpstan": "^1.3", + "phpstan/phpstan-strict-rules": "^1.1", + "symfony/phpunit-bridge": "^5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.x-dev" + } + }, + "autoload": { + "psr-4": { + "Composer\\Pcre\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "http://seld.be" + } + ], + "description": "PCRE wrapping library that offers type-safe preg_* replacements.", + "keywords": [ + "PCRE", + "preg", + "regex", + "regular expression" + ], + "support": { + "issues": "https://github.com/composer/pcre/issues", + "source": "https://github.com/composer/pcre/tree/3.1.0" + }, + "funding": [ + { + "url": "https://packagist.com", + "type": "custom" + }, + { + "url": "https://github.com/composer", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/composer/composer", + "type": "tidelift" + } + ], + "time": "2022-11-17T09:50:14+00:00" + }, + { + "name": "doctrine/cache", + "version": "2.2.0", + "source": { + "type": "git", + "url": "https://github.com/doctrine/cache.git", + "reference": "1ca8f21980e770095a31456042471a57bc4c68fb" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/cache/zipball/1ca8f21980e770095a31456042471a57bc4c68fb", + "reference": "1ca8f21980e770095a31456042471a57bc4c68fb", + "shasum": "" + }, + "require": { + "php": "~7.1 || ^8.0" + }, + "conflict": { + "doctrine/common": ">2.2,<2.4" + }, + "require-dev": { + "cache/integration-tests": "dev-master", + "doctrine/coding-standard": "^9", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", + "psr/cache": "^1.0 || ^2.0 || ^3.0", + "symfony/cache": "^4.4 || ^5.4 || ^6", + "symfony/var-exporter": "^4.4 || ^5.4 || ^6" + }, + "type": "library", + "autoload": { + "psr-4": { + "Doctrine\\Common\\Cache\\": "lib/Doctrine/Common/Cache" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" + } + ], + "description": "PHP Doctrine Cache library is a popular cache implementation that supports many different drivers such as redis, memcache, apc, mongodb and others.", + "homepage": "https://www.doctrine-project.org/projects/cache.html", + "keywords": [ + "abstraction", + "apcu", + "cache", + "caching", + "couchdb", + "memcached", + "php", + "redis", + "xcache" + ], + "support": { + "issues": "https://github.com/doctrine/cache/issues", + "source": "https://github.com/doctrine/cache/tree/2.2.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%2Fcache", + "type": "tidelift" + } + ], + "time": "2022-05-20T20:07:39+00:00" + }, + { + "name": "doctrine/dbal", + "version": "3.5.1", + "source": { + "type": "git", + "url": "https://github.com/doctrine/dbal.git", + "reference": "f38ee8aaca2d58ee88653cb34a6a3880c23f38a5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/dbal/zipball/f38ee8aaca2d58ee88653cb34a6a3880c23f38a5", + "reference": "f38ee8aaca2d58ee88653cb34a6a3880c23f38a5", + "shasum": "" + }, + "require": { + "composer-runtime-api": "^2", + "doctrine/cache": "^1.11|^2.0", + "doctrine/deprecations": "^0.5.3|^1", + "doctrine/event-manager": "^1|^2", + "php": "^7.4 || ^8.0", + "psr/cache": "^1|^2|^3", + "psr/log": "^1|^2|^3" + }, + "require-dev": { + "doctrine/coding-standard": "10.0.0", + "jetbrains/phpstorm-stubs": "2022.2", + "phpstan/phpstan": "1.8.10", + "phpstan/phpstan-strict-rules": "^1.4", + "phpunit/phpunit": "9.5.25", + "psalm/plugin-phpunit": "0.17.0", + "squizlabs/php_codesniffer": "3.7.1", + "symfony/cache": "^5.4|^6.0", + "symfony/console": "^4.4|^5.4|^6.0", + "vimeo/psalm": "4.29.0" + }, + "suggest": { + "symfony/console": "For helpful console commands such as SQL execution and import of files." + }, + "bin": [ + "bin/doctrine-dbal" + ], + "type": "library", + "autoload": { + "psr-4": { + "Doctrine\\DBAL\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com" + } + ], + "description": "Powerful PHP database abstraction layer (DBAL) with many features for database schema introspection and management.", + "homepage": "https://www.doctrine-project.org/projects/dbal.html", + "keywords": [ + "abstraction", + "database", + "db2", + "dbal", + "mariadb", + "mssql", + "mysql", + "oci8", + "oracle", + "pdo", + "pgsql", + "postgresql", + "queryobject", + "sasql", + "sql", + "sqlite", + "sqlserver", + "sqlsrv" + ], + "support": { + "issues": "https://github.com/doctrine/dbal/issues", + "source": "https://github.com/doctrine/dbal/tree/3.5.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%2Fdbal", + "type": "tidelift" + } + ], + "time": "2022-10-24T07:26:18+00:00" + }, + { + "name": "doctrine/deprecations", + "version": "v1.0.0", + "source": { + "type": "git", + "url": "https://github.com/doctrine/deprecations.git", + "reference": "0e2a4f1f8cdfc7a92ec3b01c9334898c806b30de" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/deprecations/zipball/0e2a4f1f8cdfc7a92ec3b01c9334898c806b30de", + "reference": "0e2a4f1f8cdfc7a92ec3b01c9334898c806b30de", + "shasum": "" + }, + "require": { + "php": "^7.1|^8.0" + }, + "require-dev": { + "doctrine/coding-standard": "^9", + "phpunit/phpunit": "^7.5|^8.5|^9.5", + "psr/log": "^1|^2|^3" + }, + "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/v1.0.0" + }, + "time": "2022-05-02T15:47:09+00:00" + }, + { + "name": "doctrine/event-manager", + "version": "1.2.0", + "source": { + "type": "git", + "url": "https://github.com/doctrine/event-manager.git", + "reference": "95aa4cb529f1e96576f3fda9f5705ada4056a520" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/event-manager/zipball/95aa4cb529f1e96576f3fda9f5705ada4056a520", + "reference": "95aa4cb529f1e96576f3fda9f5705ada4056a520", + "shasum": "" + }, + "require": { + "doctrine/deprecations": "^0.5.3 || ^1", + "php": "^7.1 || ^8.0" + }, + "conflict": { + "doctrine/common": "<2.9" + }, + "require-dev": { + "doctrine/coding-standard": "^9 || ^10", + "phpstan/phpstan": "~1.4.10 || ^1.8.8", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", + "vimeo/psalm": "^4.24" + }, + "type": "library", + "autoload": { + "psr-4": { + "Doctrine\\Common\\": "src" } }, "notification-url": "https://packagist.org/downloads/", @@ -4419,49 +5526,85 @@ ], "authors": [ { - "name": "Bernhard Schussek", - "email": "bschussek@gmail.com" + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" + }, + { + "name": "Marco Pivetta", + "email": "ocramius@gmail.com" } ], - "description": "Assertions to validate method input/output with nice error messages.", + "description": "The Doctrine Event Manager is a simple PHP event system that was built to be used with the various Doctrine projects.", + "homepage": "https://www.doctrine-project.org/projects/event-manager.html", "keywords": [ - "assert", - "check", - "validate" + "event", + "event dispatcher", + "event manager", + "event system", + "events" ], "support": { - "issues": "https://github.com/webmozarts/assert/issues", - "source": "https://github.com/webmozarts/assert/tree/1.10.0" + "issues": "https://github.com/doctrine/event-manager/issues", + "source": "https://github.com/doctrine/event-manager/tree/1.2.0" }, - "time": "2021-03-09T10:59:23+00:00" - } - ], - "packages-dev": [ + "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": "2022-10-12T20:51:15+00:00" + }, { "name": "doctrine/instantiator", - "version": "1.4.0", + "version": "1.4.1", "source": { "type": "git", "url": "https://github.com/doctrine/instantiator.git", - "reference": "d56bf6102915de5702778fe20f2de3b2fe570b5b" + "reference": "10dcfce151b967d20fde1b34ae6640712c3891bc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/instantiator/zipball/d56bf6102915de5702778fe20f2de3b2fe570b5b", - "reference": "d56bf6102915de5702778fe20f2de3b2fe570b5b", + "url": "https://api.github.com/repos/doctrine/instantiator/zipball/10dcfce151b967d20fde1b34ae6640712c3891bc", + "reference": "10dcfce151b967d20fde1b34ae6640712c3891bc", "shasum": "" }, "require": { "php": "^7.1 || ^8.0" }, "require-dev": { - "doctrine/coding-standard": "^8.0", + "doctrine/coding-standard": "^9", "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.16 || ^1", + "phpstan/phpstan": "^1.4", + "phpstan/phpstan-phpunit": "^1", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", + "vimeo/psalm": "^4.22" }, "type": "library", "autoload": { @@ -4488,7 +5631,7 @@ ], "support": { "issues": "https://github.com/doctrine/instantiator/issues", - "source": "https://github.com/doctrine/instantiator/tree/1.4.0" + "source": "https://github.com/doctrine/instantiator/tree/1.4.1" }, "funding": [ { @@ -4504,36 +5647,39 @@ "type": "tidelift" } ], - "time": "2020-11-10T18:47:58+00:00" + "time": "2022-03-03T08:28:38+00:00" }, { "name": "fakerphp/faker", - "version": "v1.14.1", + "version": "v1.21.0", "source": { "type": "git", "url": "https://github.com/FakerPHP/Faker.git", - "reference": "ed22aee8d17c7b396f74a58b1e7fefa4f90d5ef1" + "reference": "92efad6a967f0b79c499705c69b662f738cc9e4d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/FakerPHP/Faker/zipball/ed22aee8d17c7b396f74a58b1e7fefa4f90d5ef1", - "reference": "ed22aee8d17c7b396f74a58b1e7fefa4f90d5ef1", + "url": "https://api.github.com/repos/FakerPHP/Faker/zipball/92efad6a967f0b79c499705c69b662f738cc9e4d", + "reference": "92efad6a967f0b79c499705c69b662f738cc9e4d", "shasum": "" }, "require": { - "php": "^7.1 || ^8.0", - "psr/container": "^1.0", - "symfony/deprecation-contracts": "^2.2" + "php": "^7.4 || ^8.0", + "psr/container": "^1.0 || ^2.0", + "symfony/deprecation-contracts": "^2.2 || ^3.0" }, "conflict": { "fzaninotto/faker": "*" }, "require-dev": { "bamarni/composer-bin-plugin": "^1.4.1", + "doctrine/persistence": "^1.3 || ^2.0", "ext-intl": "*", - "symfony/phpunit-bridge": "^4.4 || ^5.2" + "phpunit/phpunit": "^9.5.26", + "symfony/phpunit-bridge": "^5.4.16" }, "suggest": { + "doctrine/orm": "Required to use Faker\\ORM\\Doctrine", "ext-curl": "Required by Faker\\Provider\\Image to download images.", "ext-dom": "Required by Faker\\Provider\\HtmlLorem for generating random HTML.", "ext-iconv": "Required by Faker\\Provider\\ru_RU\\Text::realText() for generating real Russian text.", @@ -4542,7 +5688,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "v1.15-dev" + "dev-main": "v1.21-dev" } }, "autoload": { @@ -4567,9 +5713,9 @@ ], "support": { "issues": "https://github.com/FakerPHP/Faker/issues", - "source": "https://github.com/FakerPHP/Faker/tree/v.1.14.1" + "source": "https://github.com/FakerPHP/Faker/tree/v1.21.0" }, - "time": "2021-03-30T06:27:33+00:00" + "time": "2022-12-13T13:54:32+00:00" }, { "name": "hamcrest/hamcrest-php", @@ -4624,16 +5770,16 @@ }, { "name": "mockery/mockery", - "version": "1.4.3", + "version": "1.5.1", "source": { "type": "git", "url": "https://github.com/mockery/mockery.git", - "reference": "d1339f64479af1bee0e82a0413813fe5345a54ea" + "reference": "e92dcc83d5a51851baf5f5591d32cb2b16e3684e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/mockery/mockery/zipball/d1339f64479af1bee0e82a0413813fe5345a54ea", - "reference": "d1339f64479af1bee0e82a0413813fe5345a54ea", + "url": "https://api.github.com/repos/mockery/mockery/zipball/e92dcc83d5a51851baf5f5591d32cb2b16e3684e", + "reference": "e92dcc83d5a51851baf5f5591d32cb2b16e3684e", "shasum": "" }, "require": { @@ -4690,43 +5836,44 @@ ], "support": { "issues": "https://github.com/mockery/mockery/issues", - "source": "https://github.com/mockery/mockery/tree/1.4.3" + "source": "https://github.com/mockery/mockery/tree/1.5.1" }, - "time": "2021-02-24T09:51:49+00:00" + "time": "2022-09-07T15:32:08+00:00" }, { "name": "myclabs/deep-copy", - "version": "1.10.2", + "version": "1.11.0", "source": { "type": "git", "url": "https://github.com/myclabs/DeepCopy.git", - "reference": "776f831124e9c62e1a2c601ecc52e776d8bb7220" + "reference": "14daed4296fae74d9e3201d2c4925d1acb7aa614" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/776f831124e9c62e1a2c601ecc52e776d8bb7220", - "reference": "776f831124e9c62e1a2c601ecc52e776d8bb7220", + "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/14daed4296fae74d9e3201d2c4925d1acb7aa614", + "reference": "14daed4296fae74d9e3201d2c4925d1acb7aa614", "shasum": "" }, "require": { "php": "^7.1 || ^8.0" }, - "replace": { - "myclabs/deep-copy": "self.version" + "conflict": { + "doctrine/collections": "<1.6.8", + "doctrine/common": "<2.13.3 || >=3,<3.2.2" }, "require-dev": { - "doctrine/collections": "^1.0", - "doctrine/common": "^2.6", - "phpunit/phpunit": "^7.1" + "doctrine/collections": "^1.6.8", + "doctrine/common": "^2.13.3 || ^3.2.2", + "phpunit/phpunit": "^7.5.20 || ^8.5.23 || ^9.5.13" }, "type": "library", "autoload": { - "psr-4": { - "DeepCopy\\": "src/DeepCopy/" - }, "files": [ "src/DeepCopy/deep_copy.php" - ] + ], + "psr-4": { + "DeepCopy\\": "src/DeepCopy/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -4742,7 +5889,7 @@ ], "support": { "issues": "https://github.com/myclabs/DeepCopy/issues", - "source": "https://github.com/myclabs/DeepCopy/tree/1.10.2" + "source": "https://github.com/myclabs/DeepCopy/tree/1.11.0" }, "funding": [ { @@ -4750,20 +5897,20 @@ "type": "tidelift" } ], - "time": "2020-11-13T09:40:50+00:00" + "time": "2022-03-03T13:19:32+00:00" }, { "name": "nikic/php-parser", - "version": "v4.10.5", + "version": "v4.15.2", "source": { "type": "git", "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "4432ba399e47c66624bc73c8c0f811e5c109576f" + "reference": "f59bbe44bf7d96f24f3e2b4ddc21cd52c1d2adbc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/4432ba399e47c66624bc73c8c0f811e5c109576f", - "reference": "4432ba399e47c66624bc73c8c0f811e5c109576f", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/f59bbe44bf7d96f24f3e2b4ddc21cd52c1d2adbc", + "reference": "f59bbe44bf7d96f24f3e2b4ddc21cd52c1d2adbc", "shasum": "" }, "require": { @@ -4804,31 +5951,31 @@ ], "support": { "issues": "https://github.com/nikic/PHP-Parser/issues", - "source": "https://github.com/nikic/PHP-Parser/tree/v4.10.5" + "source": "https://github.com/nikic/PHP-Parser/tree/v4.15.2" }, - "time": "2021-05-03T19:11:20+00:00" + "time": "2022-11-12T15:38:23+00:00" }, { "name": "orchestra/testbench", - "version": "v6.17.1", + "version": "v6.25.1", "source": { "type": "git", "url": "https://github.com/orchestral/testbench.git", - "reference": "d6df638c569899443a1e4dc14a33490837201784" + "reference": "0516123d26d64117bc04f7e9cb982eae2624e750" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/orchestral/testbench/zipball/d6df638c569899443a1e4dc14a33490837201784", - "reference": "d6df638c569899443a1e4dc14a33490837201784", + "url": "https://api.github.com/repos/orchestral/testbench/zipball/0516123d26d64117bc04f7e9cb982eae2624e750", + "reference": "0516123d26d64117bc04f7e9cb982eae2624e750", "shasum": "" }, "require": { - "laravel/framework": "^8.25", - "mockery/mockery": "^1.4.2", - "orchestra/testbench-core": "^6.21.3", + "laravel/framework": "^8.75", + "mockery/mockery": "^1.4.4", + "orchestra/testbench-core": "^6.29.1", "php": "^7.3 || ^8.0", - "phpunit/phpunit": "^8.4 || ^9.3.3", - "spatie/laravel-ray": "^1.17.1" + "phpunit/phpunit": "^8.5.21 || ^9.5.10", + "spatie/laravel-ray": "^1.26.2" }, "type": "library", "extra": { @@ -4859,7 +6006,7 @@ ], "support": { "issues": "https://github.com/orchestral/testbench/issues", - "source": "https://github.com/orchestral/testbench/tree/v6.17.1" + "source": "https://github.com/orchestral/testbench/tree/v6.25.1" }, "funding": [ { @@ -4871,20 +6018,20 @@ "type": "liberapay" } ], - "time": "2021-05-18T23:14:29+00:00" + "time": "2022-10-11T14:01:10+00:00" }, { "name": "orchestra/testbench-core", - "version": "v6.21.3", + "version": "v6.29.1", "source": { "type": "git", "url": "https://github.com/orchestral/testbench-core.git", - "reference": "e20e4ed5586993940679119c4eeaed3b21037ac5" + "reference": "29a7586915885f89b8d2203efe20f76afe9cf956" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/orchestral/testbench-core/zipball/e20e4ed5586993940679119c4eeaed3b21037ac5", - "reference": "e20e4ed5586993940679119c4eeaed3b21037ac5", + "url": "https://api.github.com/repos/orchestral/testbench-core/zipball/29a7586915885f89b8d2203efe20f76afe9cf956", + "reference": "29a7586915885f89b8d2203efe20f76afe9cf956", "shasum": "" }, "require": { @@ -4894,20 +6041,20 @@ "vlucas/phpdotenv": "^5.1" }, "require-dev": { - "laravel/framework": "^8.26", + "laravel/framework": "^8.75", "laravel/laravel": "8.x-dev", - "mockery/mockery": "^1.4.2", + "mockery/mockery": "^1.4.4", "orchestra/canvas": "^6.1", - "phpunit/phpunit": "^8.4 || ^9.3.3 || ^10.0", + "phpunit/phpunit": "^8.5.21 || ^9.5.10", "spatie/laravel-ray": "^1.7.1", "symfony/process": "^5.0" }, "suggest": { - "laravel/framework": "Required for testing (^8.26).", - "mockery/mockery": "Allow using Mockery for testing (^1.4.2).", + "laravel/framework": "Required for testing (^8.75).", + "mockery/mockery": "Allow using Mockery for testing (^1.4.4).", "orchestra/testbench-browser-kit": "Allow using legacy Laravel BrowserKit for testing (^6.0).", "orchestra/testbench-dusk": "Allow using Laravel Dusk for testing (^6.0).", - "phpunit/phpunit": "Allow using PHPUnit for testing (^8.4|^9.3.3)." + "phpunit/phpunit": "Allow using PHPUnit for testing (^8.5.21|^9.5.10|^10.0)." }, "bin": [ "testbench" @@ -4919,6 +6066,9 @@ } }, "autoload": { + "files": [ + "src/helpers.php" + ], "psr-4": { "Orchestra\\Testbench\\": "src/" } @@ -4958,20 +6108,20 @@ "type": "liberapay" } ], - "time": "2021-05-18T09:19:25+00:00" + "time": "2022-10-11T12:12:52+00:00" }, { "name": "phar-io/manifest", - "version": "2.0.1", + "version": "2.0.3", "source": { "type": "git", "url": "https://github.com/phar-io/manifest.git", - "reference": "85265efd3af7ba3ca4b2a2c34dbfc5788dd29133" + "reference": "97803eca37d319dfa7826cc2437fc020857acb53" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phar-io/manifest/zipball/85265efd3af7ba3ca4b2a2c34dbfc5788dd29133", - "reference": "85265efd3af7ba3ca4b2a2c34dbfc5788dd29133", + "url": "https://api.github.com/repos/phar-io/manifest/zipball/97803eca37d319dfa7826cc2437fc020857acb53", + "reference": "97803eca37d319dfa7826cc2437fc020857acb53", "shasum": "" }, "require": { @@ -5016,22 +6166,22 @@ "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)", "support": { "issues": "https://github.com/phar-io/manifest/issues", - "source": "https://github.com/phar-io/manifest/tree/master" + "source": "https://github.com/phar-io/manifest/tree/2.0.3" }, - "time": "2020-06-27T14:33:11+00:00" + "time": "2021-07-20T11:28:43+00:00" }, { "name": "phar-io/version", - "version": "3.1.0", + "version": "3.2.1", "source": { "type": "git", "url": "https://github.com/phar-io/version.git", - "reference": "bae7c545bef187884426f042434e561ab1ddb182" + "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phar-io/version/zipball/bae7c545bef187884426f042434e561ab1ddb182", - "reference": "bae7c545bef187884426f042434e561ab1ddb182", + "url": "https://api.github.com/repos/phar-io/version/zipball/4f7fd7836c6f332bb2933569e566a0d6c4cbed74", + "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74", "shasum": "" }, "require": { @@ -5067,9 +6217,9 @@ "description": "Library for handling version information and constraints", "support": { "issues": "https://github.com/phar-io/version/issues", - "source": "https://github.com/phar-io/version/tree/3.1.0" + "source": "https://github.com/phar-io/version/tree/3.2.1" }, - "time": "2021-02-23T14:00:09+00:00" + "time": "2022-02-21T01:04:05+00:00" }, { "name": "phpdocumentor/reflection-common", @@ -5124,82 +6274,32 @@ }, "time": "2020-06-27T09:03:43+00:00" }, - { - "name": "phpdocumentor/reflection-docblock", - "version": "5.2.2", - "source": { - "type": "git", - "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", - "reference": "069a785b2141f5bcf49f3e353548dc1cce6df556" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/069a785b2141f5bcf49f3e353548dc1cce6df556", - "reference": "069a785b2141f5bcf49f3e353548dc1cce6df556", - "shasum": "" - }, - "require": { - "ext-filter": "*", - "php": "^7.2 || ^8.0", - "phpdocumentor/reflection-common": "^2.2", - "phpdocumentor/type-resolver": "^1.3", - "webmozart/assert": "^1.9.1" - }, - "require-dev": { - "mockery/mockery": "~1.3.2" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.x-dev" - } - }, - "autoload": { - "psr-4": { - "phpDocumentor\\Reflection\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Mike van Riel", - "email": "me@mikevanriel.com" - }, - { - "name": "Jaap van Otterdijk", - "email": "account@ijaap.nl" - } - ], - "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", - "support": { - "issues": "https://github.com/phpDocumentor/ReflectionDocBlock/issues", - "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/master" - }, - "time": "2020-09-03T19:13:55+00:00" - }, { "name": "phpdocumentor/type-resolver", - "version": "1.4.0", + "version": "1.6.2", "source": { "type": "git", "url": "https://github.com/phpDocumentor/TypeResolver.git", - "reference": "6a467b8989322d92aa1c8bf2bebcc6e5c2ba55c0" + "reference": "48f445a408c131e38cab1c235aa6d2bb7a0bb20d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/6a467b8989322d92aa1c8bf2bebcc6e5c2ba55c0", - "reference": "6a467b8989322d92aa1c8bf2bebcc6e5c2ba55c0", + "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/48f445a408c131e38cab1c235aa6d2bb7a0bb20d", + "reference": "48f445a408c131e38cab1c235aa6d2bb7a0bb20d", "shasum": "" }, "require": { - "php": "^7.2 || ^8.0", + "php": "^7.4 || ^8.0", "phpdocumentor/reflection-common": "^2.0" }, "require-dev": { - "ext-tokenizer": "*" + "ext-tokenizer": "*", + "phpstan/extension-installer": "^1.1", + "phpstan/phpstan": "^1.8", + "phpstan/phpstan-phpunit": "^1.1", + "phpunit/phpunit": "^9.5", + "rector/rector": "^0.13.9", + "vimeo/psalm": "^4.25" }, "type": "library", "extra": { @@ -5225,96 +6325,29 @@ "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names", "support": { "issues": "https://github.com/phpDocumentor/TypeResolver/issues", - "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.4.0" - }, - "time": "2020-09-17T18:55:26+00:00" - }, - { - "name": "phpspec/prophecy", - "version": "1.13.0", - "source": { - "type": "git", - "url": "https://github.com/phpspec/prophecy.git", - "reference": "be1996ed8adc35c3fd795488a653f4b518be70ea" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpspec/prophecy/zipball/be1996ed8adc35c3fd795488a653f4b518be70ea", - "reference": "be1996ed8adc35c3fd795488a653f4b518be70ea", - "shasum": "" - }, - "require": { - "doctrine/instantiator": "^1.2", - "php": "^7.2 || ~8.0, <8.1", - "phpdocumentor/reflection-docblock": "^5.2", - "sebastian/comparator": "^3.0 || ^4.0", - "sebastian/recursion-context": "^3.0 || ^4.0" - }, - "require-dev": { - "phpspec/phpspec": "^6.0", - "phpunit/phpunit": "^8.0 || ^9.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.11.x-dev" - } - }, - "autoload": { - "psr-4": { - "Prophecy\\": "src/Prophecy" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Konstantin Kudryashov", - "email": "ever.zet@gmail.com", - "homepage": "http://everzet.com" - }, - { - "name": "Marcello Duarte", - "email": "marcello.duarte@gmail.com" - } - ], - "description": "Highly opinionated mocking framework for PHP 5.3+", - "homepage": "https://github.com/phpspec/prophecy", - "keywords": [ - "Double", - "Dummy", - "fake", - "mock", - "spy", - "stub" - ], - "support": { - "issues": "https://github.com/phpspec/prophecy/issues", - "source": "https://github.com/phpspec/prophecy/tree/1.13.0" + "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.6.2" }, - "time": "2021-03-17T13:42:18+00:00" + "time": "2022-10-14T12:47:21+00:00" }, { "name": "phpunit/php-code-coverage", - "version": "9.2.6", + "version": "9.2.22", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "f6293e1b30a2354e8428e004689671b83871edde" + "reference": "e4bf60d2220b4baaa0572986b5d69870226b06df" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/f6293e1b30a2354e8428e004689671b83871edde", - "reference": "f6293e1b30a2354e8428e004689671b83871edde", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/e4bf60d2220b4baaa0572986b5d69870226b06df", + "reference": "e4bf60d2220b4baaa0572986b5d69870226b06df", "shasum": "" }, "require": { "ext-dom": "*", "ext-libxml": "*", "ext-xmlwriter": "*", - "nikic/php-parser": "^4.10.2", + "nikic/php-parser": "^4.14", "php": ">=7.3", "phpunit/php-file-iterator": "^3.0.3", "phpunit/php-text-template": "^2.0.2", @@ -5363,7 +6396,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", - "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.6" + "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.22" }, "funding": [ { @@ -5371,20 +6404,20 @@ "type": "github" } ], - "time": "2021-03-28T07:26:59+00:00" + "time": "2022-12-18T16:40:55+00:00" }, { "name": "phpunit/php-file-iterator", - "version": "3.0.5", + "version": "3.0.6", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-file-iterator.git", - "reference": "aa4be8575f26070b100fccb67faabb28f21f66f8" + "reference": "cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/aa4be8575f26070b100fccb67faabb28f21f66f8", - "reference": "aa4be8575f26070b100fccb67faabb28f21f66f8", + "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf", + "reference": "cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf", "shasum": "" }, "require": { @@ -5423,7 +6456,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/php-file-iterator/issues", - "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/3.0.5" + "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/3.0.6" }, "funding": [ { @@ -5431,7 +6464,7 @@ "type": "github" } ], - "time": "2020-09-28T05:57:25+00:00" + "time": "2021-12-02T12:48:52+00:00" }, { "name": "phpunit/php-invoker", @@ -5616,16 +6649,16 @@ }, { "name": "phpunit/phpunit", - "version": "9.5.4", + "version": "9.5.27", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "c73c6737305e779771147af66c96ca6a7ed8a741" + "reference": "a2bc7ffdca99f92d959b3f2270529334030bba38" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/c73c6737305e779771147af66c96ca6a7ed8a741", - "reference": "c73c6737305e779771147af66c96ca6a7ed8a741", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/a2bc7ffdca99f92d959b3f2270529334030bba38", + "reference": "a2bc7ffdca99f92d959b3f2270529334030bba38", "shasum": "" }, "require": { @@ -5637,31 +6670,26 @@ "ext-xml": "*", "ext-xmlwriter": "*", "myclabs/deep-copy": "^1.10.1", - "phar-io/manifest": "^2.0.1", + "phar-io/manifest": "^2.0.3", "phar-io/version": "^3.0.2", "php": ">=7.3", - "phpspec/prophecy": "^1.12.1", - "phpunit/php-code-coverage": "^9.2.3", + "phpunit/php-code-coverage": "^9.2.13", "phpunit/php-file-iterator": "^3.0.5", "phpunit/php-invoker": "^3.1.1", "phpunit/php-text-template": "^2.0.3", "phpunit/php-timer": "^5.0.2", "sebastian/cli-parser": "^1.0.1", "sebastian/code-unit": "^1.0.6", - "sebastian/comparator": "^4.0.5", + "sebastian/comparator": "^4.0.8", "sebastian/diff": "^4.0.3", "sebastian/environment": "^5.1.3", - "sebastian/exporter": "^4.0.3", + "sebastian/exporter": "^4.0.5", "sebastian/global-state": "^5.0.1", "sebastian/object-enumerator": "^4.0.3", "sebastian/resource-operations": "^3.0.3", - "sebastian/type": "^2.3", + "sebastian/type": "^3.2", "sebastian/version": "^3.0.2" }, - "require-dev": { - "ext-pdo": "*", - "phpspec/prophecy-phpunit": "^2.0.1" - }, "suggest": { "ext-soap": "*", "ext-xdebug": "*" @@ -5676,11 +6704,11 @@ } }, "autoload": { - "classmap": [ - "src/" - ], "files": [ "src/Framework/Assert/Functions.php" + ], + "classmap": [ + "src/" ] }, "notification-url": "https://packagist.org/downloads/", @@ -5703,19 +6731,125 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/phpunit/issues", - "source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.4" + "source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.27" }, "funding": [ { - "url": "https://phpunit.de/donate.html", + "url": "https://phpunit.de/sponsors.html", "type": "custom" }, { "url": "https://github.com/sebastianbergmann", "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/phpunit/phpunit", + "type": "tidelift" + } + ], + "time": "2022-12-09T07:31:23+00:00" + }, + { + "name": "pimple/pimple", + "version": "v3.5.0", + "source": { + "type": "git", + "url": "https://github.com/silexphp/Pimple.git", + "reference": "a94b3a4db7fb774b3d78dad2315ddc07629e1bed" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/silexphp/Pimple/zipball/a94b3a4db7fb774b3d78dad2315ddc07629e1bed", + "reference": "a94b3a4db7fb774b3d78dad2315ddc07629e1bed", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "psr/container": "^1.1 || ^2.0" + }, + "require-dev": { + "symfony/phpunit-bridge": "^5.4@dev" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.4.x-dev" + } + }, + "autoload": { + "psr-0": { + "Pimple": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + } + ], + "description": "Pimple, a simple Dependency Injection Container", + "homepage": "https://pimple.symfony.com", + "keywords": [ + "container", + "dependency injection" + ], + "support": { + "source": "https://github.com/silexphp/Pimple/tree/v3.5.0" + }, + "time": "2021-10-28T11:13:42+00:00" + }, + { + "name": "psr/cache", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/php-fig/cache.git", + "reference": "d11b50ad223250cf17b86e38383413f5a6764bf8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/cache/zipball/d11b50ad223250cf17b86e38383413f5a6764bf8", + "reference": "d11b50ad223250cf17b86e38383413f5a6764bf8", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Cache\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" } ], - "time": "2021-03-23T07:16:29+00:00" + "description": "Common interface for caching libraries", + "keywords": [ + "cache", + "psr", + "psr-6" + ], + "support": { + "source": "https://github.com/php-fig/cache/tree/master" + }, + "time": "2016-08-06T20:24:11+00:00" }, { "name": "sebastian/cli-parser", @@ -5886,16 +7020,16 @@ }, { "name": "sebastian/comparator", - "version": "4.0.6", + "version": "4.0.8", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/comparator.git", - "reference": "55f4261989e546dc112258c7a75935a81a7ce382" + "reference": "fa0f136dd2334583309d32b62544682ee972b51a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/55f4261989e546dc112258c7a75935a81a7ce382", - "reference": "55f4261989e546dc112258c7a75935a81a7ce382", + "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/fa0f136dd2334583309d32b62544682ee972b51a", + "reference": "fa0f136dd2334583309d32b62544682ee972b51a", "shasum": "" }, "require": { @@ -5948,7 +7082,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/comparator/issues", - "source": "https://github.com/sebastianbergmann/comparator/tree/4.0.6" + "source": "https://github.com/sebastianbergmann/comparator/tree/4.0.8" }, "funding": [ { @@ -5956,7 +7090,7 @@ "type": "github" } ], - "time": "2020-10-26T15:49:45+00:00" + "time": "2022-09-14T12:41:17+00:00" }, { "name": "sebastian/complexity", @@ -6083,16 +7217,16 @@ }, { "name": "sebastian/environment", - "version": "5.1.3", + "version": "5.1.4", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/environment.git", - "reference": "388b6ced16caa751030f6a69e588299fa09200ac" + "reference": "1b5dff7bb151a4db11d49d90e5408e4e938270f7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/388b6ced16caa751030f6a69e588299fa09200ac", - "reference": "388b6ced16caa751030f6a69e588299fa09200ac", + "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/1b5dff7bb151a4db11d49d90e5408e4e938270f7", + "reference": "1b5dff7bb151a4db11d49d90e5408e4e938270f7", "shasum": "" }, "require": { @@ -6134,7 +7268,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/environment/issues", - "source": "https://github.com/sebastianbergmann/environment/tree/5.1.3" + "source": "https://github.com/sebastianbergmann/environment/tree/5.1.4" }, "funding": [ { @@ -6142,20 +7276,20 @@ "type": "github" } ], - "time": "2020-09-28T05:52:38+00:00" + "time": "2022-04-03T09:37:03+00:00" }, { "name": "sebastian/exporter", - "version": "4.0.3", + "version": "4.0.5", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/exporter.git", - "reference": "d89cc98761b8cb5a1a235a6b703ae50d34080e65" + "reference": "ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/d89cc98761b8cb5a1a235a6b703ae50d34080e65", - "reference": "d89cc98761b8cb5a1a235a6b703ae50d34080e65", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d", + "reference": "ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d", "shasum": "" }, "require": { @@ -6204,14 +7338,14 @@ } ], "description": "Provides the functionality to export PHP variables for visualization", - "homepage": "http://www.github.com/sebastianbergmann/exporter", + "homepage": "https://www.github.com/sebastianbergmann/exporter", "keywords": [ "export", "exporter" ], "support": { "issues": "https://github.com/sebastianbergmann/exporter/issues", - "source": "https://github.com/sebastianbergmann/exporter/tree/4.0.3" + "source": "https://github.com/sebastianbergmann/exporter/tree/4.0.5" }, "funding": [ { @@ -6219,20 +7353,20 @@ "type": "github" } ], - "time": "2020-09-28T05:24:23+00:00" + "time": "2022-09-14T06:03:37+00:00" }, { "name": "sebastian/global-state", - "version": "5.0.2", + "version": "5.0.5", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/global-state.git", - "reference": "a90ccbddffa067b51f574dea6eb25d5680839455" + "reference": "0ca8db5a5fc9c8646244e629625ac486fa286bf2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/a90ccbddffa067b51f574dea6eb25d5680839455", - "reference": "a90ccbddffa067b51f574dea6eb25d5680839455", + "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/0ca8db5a5fc9c8646244e629625ac486fa286bf2", + "reference": "0ca8db5a5fc9c8646244e629625ac486fa286bf2", "shasum": "" }, "require": { @@ -6275,7 +7409,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/global-state/issues", - "source": "https://github.com/sebastianbergmann/global-state/tree/5.0.2" + "source": "https://github.com/sebastianbergmann/global-state/tree/5.0.5" }, "funding": [ { @@ -6283,7 +7417,7 @@ "type": "github" } ], - "time": "2020-10-26T15:55:19+00:00" + "time": "2022-02-14T08:28:10+00:00" }, { "name": "sebastian/lines-of-code", @@ -6574,28 +7708,28 @@ }, { "name": "sebastian/type", - "version": "2.3.1", + "version": "3.2.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/type.git", - "reference": "81cd61ab7bbf2de744aba0ea61fae32f721df3d2" + "reference": "fb3fe09c5f0bae6bc27ef3ce933a1e0ed9464b6e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/81cd61ab7bbf2de744aba0ea61fae32f721df3d2", - "reference": "81cd61ab7bbf2de744aba0ea61fae32f721df3d2", + "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/fb3fe09c5f0bae6bc27ef3ce933a1e0ed9464b6e", + "reference": "fb3fe09c5f0bae6bc27ef3ce933a1e0ed9464b6e", "shasum": "" }, "require": { "php": ">=7.3" }, "require-dev": { - "phpunit/phpunit": "^9.3" + "phpunit/phpunit": "^9.5" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.3-dev" + "dev-master": "3.2-dev" } }, "autoload": { @@ -6618,7 +7752,7 @@ "homepage": "https://github.com/sebastianbergmann/type", "support": { "issues": "https://github.com/sebastianbergmann/type/issues", - "source": "https://github.com/sebastianbergmann/type/tree/2.3.1" + "source": "https://github.com/sebastianbergmann/type/tree/3.2.0" }, "funding": [ { @@ -6626,7 +7760,7 @@ "type": "github" } ], - "time": "2020-10-26T13:18:59+00:00" + "time": "2022-09-12T14:47:03+00:00" }, { "name": "sebastian/version", @@ -6683,16 +7817,16 @@ }, { "name": "spatie/backtrace", - "version": "1.2.0", + "version": "1.2.1", "source": { "type": "git", "url": "https://github.com/spatie/backtrace.git", - "reference": "9b4df807fb65aaa8006dcd7a7ccdef8fb4bb002e" + "reference": "4ee7d41aa5268107906ea8a4d9ceccde136dbd5b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/backtrace/zipball/9b4df807fb65aaa8006dcd7a7ccdef8fb4bb002e", - "reference": "9b4df807fb65aaa8006dcd7a7ccdef8fb4bb002e", + "url": "https://api.github.com/repos/spatie/backtrace/zipball/4ee7d41aa5268107906ea8a4d9ceccde136dbd5b", + "reference": "4ee7d41aa5268107906ea8a4d9ceccde136dbd5b", "shasum": "" }, "require": { @@ -6729,7 +7863,7 @@ ], "support": { "issues": "https://github.com/spatie/backtrace/issues", - "source": "https://github.com/spatie/backtrace/tree/1.2.0" + "source": "https://github.com/spatie/backtrace/tree/1.2.1" }, "funding": [ { @@ -6741,43 +7875,47 @@ "type": "other" } ], - "time": "2021-05-19T12:49:10+00:00" + "time": "2021-11-09T10:57:15+00:00" }, { "name": "spatie/laravel-ray", - "version": "1.17.4", + "version": "1.31.0", "source": { "type": "git", "url": "https://github.com/spatie/laravel-ray.git", - "reference": "e48be16da1952ffca868c77f509a767d3fc632bc" + "reference": "7394694afd89d05879e7a69c54abab73c1199acd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/laravel-ray/zipball/e48be16da1952ffca868c77f509a767d3fc632bc", - "reference": "e48be16da1952ffca868c77f509a767d3fc632bc", + "url": "https://api.github.com/repos/spatie/laravel-ray/zipball/7394694afd89d05879e7a69c54abab73c1199acd", + "reference": "7394694afd89d05879e7a69c54abab73c1199acd", "shasum": "" }, "require": { "ext-json": "*", - "illuminate/contracts": "^7.20|^8.0", - "illuminate/database": "^7.20|^8.13", - "illuminate/queue": "^7.20|^8.13", - "illuminate/support": "^7.20|^8.13", + "illuminate/contracts": "^7.20|^8.19|^9.0", + "illuminate/database": "^7.20|^8.19|^9.0", + "illuminate/queue": "^7.20|^8.19|^9.0", + "illuminate/support": "^7.20|^8.19|^9.0", "php": "^7.3|^8.0", "spatie/backtrace": "^1.0", - "spatie/ray": "^1.21.2", - "symfony/stopwatch": "4.2|^5.1", - "zbateson/mail-mime-parser": "^1.3.1" + "spatie/ray": "^1.33", + "symfony/stopwatch": "4.2|^5.1|^6.0", + "zbateson/mail-mime-parser": "^1.3.1|^2.0" }, "require-dev": { - "facade/ignition": "^2.5", - "laravel/framework": "^7.20|^8.19", - "orchestra/testbench-core": "^5.0|^6.0", + "guzzlehttp/guzzle": "^7.3", + "laravel/framework": "^7.20|^8.19|^9.0", + "orchestra/testbench-core": "^5.0|^6.0|^7.0", + "phpstan/phpstan": "^0.12.93", "phpunit/phpunit": "^9.3", "spatie/phpunit-snapshot-assertions": "^4.2" }, "type": "library", "extra": { + "branch-alias": { + "dev-main": "1.29.x-dev" + }, "laravel": { "providers": [ "Spatie\\LaravelRay\\RayServiceProvider" @@ -6809,7 +7947,7 @@ ], "support": { "issues": "https://github.com/spatie/laravel-ray/issues", - "source": "https://github.com/spatie/laravel-ray/tree/1.17.4" + "source": "https://github.com/spatie/laravel-ray/tree/1.31.0" }, "funding": [ { @@ -6821,7 +7959,7 @@ "type": "other" } ], - "time": "2021-04-30T08:20:24+00:00" + "time": "2022-09-20T13:13:22+00:00" }, { "name": "spatie/macroable", @@ -6875,16 +8013,16 @@ }, { "name": "spatie/ray", - "version": "1.22.1", + "version": "1.36.0", "source": { "type": "git", "url": "https://github.com/spatie/ray.git", - "reference": "e82408b78b1391eaee6c962b13c37e80080dc15a" + "reference": "4a4def8cda4806218341b8204c98375aa8c34323" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/ray/zipball/e82408b78b1391eaee6c962b13c37e80080dc15a", - "reference": "e82408b78b1391eaee6c962b13c37e80080dc15a", + "url": "https://api.github.com/repos/spatie/ray/zipball/4a4def8cda4806218341b8204c98375aa8c34323", + "reference": "4a4def8cda4806218341b8204c98375aa8c34323", "shasum": "" }, "require": { @@ -6894,25 +8032,25 @@ "ramsey/uuid": "^3.0|^4.1", "spatie/backtrace": "^1.1", "spatie/macroable": "^1.0|^2.0", - "symfony/stopwatch": "^4.0|^5.1", - "symfony/var-dumper": "^4.2|^5.1" + "symfony/stopwatch": "^4.0|^5.1|^6.0", + "symfony/var-dumper": "^4.2|^5.1|^6.0" }, "require-dev": { - "illuminate/support": "6.x|^8.18", + "illuminate/support": "6.x|^8.18|^9.0", "nesbot/carbon": "^2.43", + "phpstan/phpstan": "^0.12.92", "phpunit/phpunit": "^9.5", - "rector/rector": "^0.9.16", "spatie/phpunit-snapshot-assertions": "^4.2", "spatie/test-time": "^1.2" }, "type": "library", "autoload": { - "psr-4": { - "Spatie\\Ray\\": "src" - }, "files": [ "src/helpers.php" - ] + ], + "psr-4": { + "Spatie\\Ray\\": "src" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -6934,7 +8072,7 @@ ], "support": { "issues": "https://github.com/spatie/ray/issues", - "source": "https://github.com/spatie/ray/tree/1.22.1" + "source": "https://github.com/spatie/ray/tree/1.36.0" }, "funding": [ { @@ -6946,25 +8084,25 @@ "type": "other" } ], - "time": "2021-04-28T09:47:47+00:00" + "time": "2022-08-11T14:04:18+00:00" }, { "name": "symfony/stopwatch", - "version": "v5.2.7", + "version": "v5.4.13", "source": { "type": "git", "url": "https://github.com/symfony/stopwatch.git", - "reference": "d99310c33e833def36419c284f60e8027d359678" + "reference": "6df7a3effde34d81717bbef4591e5ffe32226d69" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/stopwatch/zipball/d99310c33e833def36419c284f60e8027d359678", - "reference": "d99310c33e833def36419c284f60e8027d359678", + "url": "https://api.github.com/repos/symfony/stopwatch/zipball/6df7a3effde34d81717bbef4591e5ffe32226d69", + "reference": "6df7a3effde34d81717bbef4591e5ffe32226d69", "shasum": "" }, "require": { "php": ">=7.2.5", - "symfony/service-contracts": "^1.0|^2" + "symfony/service-contracts": "^1|^2|^3" }, "type": "library", "autoload": { @@ -6992,7 +8130,7 @@ "description": "Provides a way to profile code", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/stopwatch/tree/v5.3.0-BETA1" + "source": "https://github.com/symfony/stopwatch/tree/v5.4.13" }, "funding": [ { @@ -7008,32 +8146,32 @@ "type": "tidelift" } ], - "time": "2021-03-29T15:28:41+00:00" + "time": "2022-09-28T13:19:49+00:00" }, { "name": "symfony/yaml", - "version": "v5.2.9", + "version": "v5.4.16", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "d23115e4a3d50520abddccdbec9514baab1084c8" + "reference": "ebd37c71f62d5ec5f6e27de3e06fee492d4c6298" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/d23115e4a3d50520abddccdbec9514baab1084c8", - "reference": "d23115e4a3d50520abddccdbec9514baab1084c8", + "url": "https://api.github.com/repos/symfony/yaml/zipball/ebd37c71f62d5ec5f6e27de3e06fee492d4c6298", + "reference": "ebd37c71f62d5ec5f6e27de3e06fee492d4c6298", "shasum": "" }, "require": { "php": ">=7.2.5", - "symfony/deprecation-contracts": "^2.1", - "symfony/polyfill-ctype": "~1.8" + "symfony/deprecation-contracts": "^2.1|^3", + "symfony/polyfill-ctype": "^1.8" }, "conflict": { - "symfony/console": "<4.4" + "symfony/console": "<5.3" }, "require-dev": { - "symfony/console": "^4.4|^5.0" + "symfony/console": "^5.3|^6.0" }, "suggest": { "symfony/console": "For validating YAML files using the lint command" @@ -7067,7 +8205,7 @@ "description": "Loads and dumps YAML files", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/yaml/tree/v5.2.9" + "source": "https://github.com/symfony/yaml/tree/v5.4.16" }, "funding": [ { @@ -7083,20 +8221,20 @@ "type": "tidelift" } ], - "time": "2021-05-16T13:07:46+00:00" + "time": "2022-11-25T16:04:03+00:00" }, { "name": "theseer/tokenizer", - "version": "1.2.0", + "version": "1.2.1", "source": { "type": "git", "url": "https://github.com/theseer/tokenizer.git", - "reference": "75a63c33a8577608444246075ea0af0d052e452a" + "reference": "34a41e998c2183e22995f158c581e7b5e755ab9e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/theseer/tokenizer/zipball/75a63c33a8577608444246075ea0af0d052e452a", - "reference": "75a63c33a8577608444246075ea0af0d052e452a", + "url": "https://api.github.com/repos/theseer/tokenizer/zipball/34a41e998c2183e22995f158c581e7b5e755ab9e", + "reference": "34a41e998c2183e22995f158c581e7b5e755ab9e", "shasum": "" }, "require": { @@ -7125,7 +8263,7 @@ "description": "A small library for converting tokenized PHP source code into XML and potentially other formats", "support": { "issues": "https://github.com/theseer/tokenizer/issues", - "source": "https://github.com/theseer/tokenizer/tree/master" + "source": "https://github.com/theseer/tokenizer/tree/1.2.1" }, "funding": [ { @@ -7133,34 +8271,32 @@ "type": "github" } ], - "time": "2020-07-12T23:59:07+00:00" + "time": "2021-07-28T10:34:58+00:00" }, { "name": "zbateson/mail-mime-parser", - "version": "1.3.1", + "version": "2.2.3", "source": { "type": "git", "url": "https://github.com/zbateson/mail-mime-parser.git", - "reference": "706964d904798b8c22d63f62f0ec5f5bc84e30d9" + "reference": "295c7f82a8c44af685680d9df6714beb812e90ff" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/zbateson/mail-mime-parser/zipball/706964d904798b8c22d63f62f0ec5f5bc84e30d9", - "reference": "706964d904798b8c22d63f62f0ec5f5bc84e30d9", + "url": "https://api.github.com/repos/zbateson/mail-mime-parser/zipball/295c7f82a8c44af685680d9df6714beb812e90ff", + "reference": "295c7f82a8c44af685680d9df6714beb812e90ff", "shasum": "" }, "require": { - "guzzlehttp/psr7": "^1.0", + "guzzlehttp/psr7": "^1.7.0|^2.0", "php": ">=5.4", + "pimple/pimple": "^3.0", "zbateson/mb-wrapper": "^1.0.1", - "zbateson/stream-decorators": "^1.0.4" + "zbateson/stream-decorators": "^1.0.6" }, "require-dev": { - "jms/serializer": "^1.1", "mikey179/vfsstream": "^1.6.0", - "phing/phing": "^2.15.0", - "phpdocumentor/phpdocumentor": "^2.9.0", - "phpunit/phpunit": "^4.8 || ^5.7 || ^6.5 || ^7.5" + "sanmai/phpunit-legacy-adapter": "^6.3 || ^8.2" }, "suggest": { "ext-iconv": "For best support/performance", @@ -7208,20 +8344,20 @@ "type": "github" } ], - "time": "2020-12-02T21:55:45+00:00" + "time": "2022-09-28T16:31:49+00:00" }, { "name": "zbateson/mb-wrapper", - "version": "1.0.1", + "version": "1.1.2", "source": { "type": "git", "url": "https://github.com/zbateson/mb-wrapper.git", - "reference": "721b3dfbf7ab75fee5ac60a542d7923ffe59ef6d" + "reference": "5d9d190ef18ce6d424e3ac6f5ebe13901f92b74a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/zbateson/mb-wrapper/zipball/721b3dfbf7ab75fee5ac60a542d7923ffe59ef6d", - "reference": "721b3dfbf7ab75fee5ac60a542d7923ffe59ef6d", + "url": "https://api.github.com/repos/zbateson/mb-wrapper/zipball/5d9d190ef18ce6d424e3ac6f5ebe13901f92b74a", + "reference": "5d9d190ef18ce6d424e3ac6f5ebe13901f92b74a", "shasum": "" }, "require": { @@ -7230,7 +8366,7 @@ "symfony/polyfill-mbstring": "^1.9" }, "require-dev": { - "phpunit/phpunit": "^4.8 || ^5.7 || ^6.5" + "sanmai/phpunit-legacy-adapter": "^6.3 || ^8" }, "suggest": { "ext-iconv": "For best support/performance", @@ -7267,7 +8403,7 @@ ], "support": { "issues": "https://github.com/zbateson/mb-wrapper/issues", - "source": "https://github.com/zbateson/mb-wrapper/tree/1.0.1" + "source": "https://github.com/zbateson/mb-wrapper/tree/1.1.2" }, "funding": [ { @@ -7275,29 +8411,29 @@ "type": "github" } ], - "time": "2020-10-21T22:14:27+00:00" + "time": "2022-05-26T15:55:05+00:00" }, { "name": "zbateson/stream-decorators", - "version": "1.0.4", + "version": "1.0.7", "source": { "type": "git", "url": "https://github.com/zbateson/stream-decorators.git", - "reference": "6f54738dfecc65e1d5bfb855035836748083a6dd" + "reference": "8f8ca208572963258b7e6d91106181706deacd10" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/zbateson/stream-decorators/zipball/6f54738dfecc65e1d5bfb855035836748083a6dd", - "reference": "6f54738dfecc65e1d5bfb855035836748083a6dd", + "url": "https://api.github.com/repos/zbateson/stream-decorators/zipball/8f8ca208572963258b7e6d91106181706deacd10", + "reference": "8f8ca208572963258b7e6d91106181706deacd10", "shasum": "" }, "require": { - "guzzlehttp/psr7": "^1.0.0", + "guzzlehttp/psr7": "^1.7.0|^2.0", "php": ">=5.4", "zbateson/mb-wrapper": "^1.0.0" }, "require-dev": { - "phpunit/phpunit": "^4.8 || ^5.7 || ^6.5 || ^7.5" + "sanmai/phpunit-legacy-adapter": "^6.3 || ^8" }, "type": "library", "autoload": { @@ -7328,7 +8464,7 @@ ], "support": { "issues": "https://github.com/zbateson/stream-decorators/issues", - "source": "https://github.com/zbateson/stream-decorators/tree/master" + "source": "https://github.com/zbateson/stream-decorators/tree/1.0.7" }, "funding": [ { @@ -7336,7 +8472,7 @@ "type": "github" } ], - "time": "2020-08-10T18:59:43+00:00" + "time": "2022-09-08T15:44:55+00:00" } ], "aliases": [], @@ -7348,5 +8484,5 @@ "php": "^7.4|^8.0" }, "platform-dev": [], - "plugin-api-version": "2.0.0" + "plugin-api-version": "2.3.0" } From da70be25302f769a8209ce87ae5396ae00f86f27 Mon Sep 17 00:00:00 2001 From: Daniel Haven <49914607+danielh-official@users.noreply.github.com> Date: Sun, 18 Dec 2022 17:40:05 -0500 Subject: [PATCH 20/70] add check on instance method that looks into payload for a "responseData" array that contains "status" if exists, the status is passed as the code for the NotionException. Otherwise, 0 --- src/Exceptions/NotionException.php | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/src/Exceptions/NotionException.php b/src/Exceptions/NotionException.php index 071ec58..967f009 100644 --- a/src/Exceptions/NotionException.php +++ b/src/Exceptions/NotionException.php @@ -10,13 +10,23 @@ class NotionException extends LaravelNotionAPIException { /** - * @param string $message - * @param array $payload + * @param string $message + * @param array $payload * @return NotionException */ public static function instance(string $message, array $payload = []): NotionException { - $e = new NotionException($message); + $code = 0; + + $responseDataExists = array_key_exists('responseData', $payload); + + if ($responseDataExists) { + $responseData = $payload['responseData']; + + $code = array_key_exists('status', $responseData) ? $responseData['status'] : 0; + } + + $e = new NotionException($message, $code); $e->payload = $payload; return $e; @@ -26,7 +36,7 @@ public static function instance(string $message, array $payload = []): NotionExc * Handy method to create a NotionException * from a failed request. * - * @param Response $response + * @param Response $response * @return NotionException */ public static function fromResponse(Response $response): NotionException From 45c29245a84b99fe0bbd5b8096f5d95c5fc863d1 Mon Sep 17 00:00:00 2001 From: Daniel Haven <49914607+danielh-official@users.noreply.github.com> Date: Sun, 18 Dec 2022 17:41:01 -0500 Subject: [PATCH 21/70] add expectExceptionCode for all tests that check for exceptions to ensure that http status codes are being passed --- tests/EndpointBlocksTest.php | 2 ++ tests/EndpointDatabaseTest.php | 1 + tests/EndpointPagesTest.php | 2 ++ tests/EndpointSearchTest.php | 1 + tests/EndpointUsersTest.php | 2 ++ tests/NotionExceptionTest.php | 1 + 6 files changed, 9 insertions(+) diff --git a/tests/EndpointBlocksTest.php b/tests/EndpointBlocksTest.php index eb353cc..f26ea0b 100644 --- a/tests/EndpointBlocksTest.php +++ b/tests/EndpointBlocksTest.php @@ -45,6 +45,7 @@ public function it_throws_a_notion_exception_bad_request() $this->expectException(NotionException::class); $this->expectExceptionMessage('Bad Request'); + $this->expectExceptionCode(400); Notion::block('b55c9c91-384d-452b-81db-d1ef79372b76')->children(); } @@ -216,6 +217,7 @@ public function it_throws_a_notion_exception_not_found() $this->expectException(NotionException::class); $this->expectExceptionMessage('Not found'); + $this->expectExceptionCode(404); Notion::block('b55c9c91-384d-452b-81db-d1ef79372b11')->children(); } diff --git a/tests/EndpointDatabaseTest.php b/tests/EndpointDatabaseTest.php index f7e9364..333541d 100644 --- a/tests/EndpointDatabaseTest.php +++ b/tests/EndpointDatabaseTest.php @@ -155,6 +155,7 @@ public function it_throws_a_notion_exception_bad_request() $this->expectException(NotionException::class); $this->expectExceptionMessage('Bad Request'); + $this->expectExceptionCode(400); Notion::database('8284f3ff77e24d4a939d19459e4d6bdc')->query(); } diff --git a/tests/EndpointPagesTest.php b/tests/EndpointPagesTest.php index cd33a19..030ae52 100644 --- a/tests/EndpointPagesTest.php +++ b/tests/EndpointPagesTest.php @@ -46,6 +46,7 @@ public function it_throws_a_notion_exception_bad_request() $this->expectException(NotionException::class); $this->expectExceptionMessage('Bad Request'); + $this->expectExceptionCode(400); Notion::pages()->find('afd5f6fb-1cbd-41d1-a108-a22ae0d9bac8'); } @@ -95,6 +96,7 @@ public function it_throws_a_notion_exception_not_found() $this->expectException(NotionException::class); $this->expectExceptionMessage('Not found'); + $this->expectExceptionCode(404); Notion::pages()->find('b55c9c91-384d-452b-81db-d1ef79372b79'); } diff --git a/tests/EndpointSearchTest.php b/tests/EndpointSearchTest.php index 53c943c..b404231 100644 --- a/tests/EndpointSearchTest.php +++ b/tests/EndpointSearchTest.php @@ -32,6 +32,7 @@ public function it_throws_a_notion_exception_bad_request() $this->expectException(NotionException::class); $this->expectExceptionMessage('Bad Request'); + $this->expectExceptionCode(400); Notion::search()->query(); } diff --git a/tests/EndpointUsersTest.php b/tests/EndpointUsersTest.php index ee81df9..e9b17af 100644 --- a/tests/EndpointUsersTest.php +++ b/tests/EndpointUsersTest.php @@ -31,6 +31,7 @@ public function it_throws_a_notion_exception_bad_request() $this->expectException(NotionException::class); $this->expectExceptionMessage('Bad Request'); + $this->expectExceptionCode(400); Notion::users()->all(); } @@ -96,6 +97,7 @@ public function it_throws_a_notion_exception_not_found() $this->expectException(NotionException::class); $this->expectExceptionMessage('Not found'); + $this->expectExceptionCode(404); Notion::users()->find('d40e767c-d7af-4b18-a86d-55c61f1e39a1'); } diff --git a/tests/NotionExceptionTest.php b/tests/NotionExceptionTest.php index 98c5f22..53438f4 100644 --- a/tests/NotionExceptionTest.php +++ b/tests/NotionExceptionTest.php @@ -23,6 +23,7 @@ public function it_throws_a_notion_exception_with_detailed_message_from_response $this->expectException(NotionException::class); $this->expectExceptionMessage('Bad Request: (validation_error) (path failed validation: path.id should be a valid uuid, instead was'); + $this->expectExceptionCode(400); \Notion::block('d092140ce4e549bf9915fb8ad43d1699d')->children()->asCollection(); } From a76fdb32df0f204a9c3fc6cb614d9e1082d78e13 Mon Sep 17 00:00:00 2001 From: Daniel Haven <49914607+danielh-official@users.noreply.github.com> Date: Sun, 18 Dec 2022 18:00:14 -0500 Subject: [PATCH 22/70] Revert "update composer.lock" This reverts commit 44c3cc2e5e4e3bb8b9bb4620f1fd18250e7ce6cb. --- composer.lock | 3394 ++++++++++++++++--------------------------------- 1 file changed, 1129 insertions(+), 2265 deletions(-) diff --git a/composer.lock b/composer.lock index 9a97f30..655342b 100644 --- a/composer.lock +++ b/composer.lock @@ -4,20 +4,20 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "82491eb257c9059c297557ef5430d6ca", + "content-hash": "35c11724161fcc925bc8243a1690ef1c", "packages": [ { "name": "brick/math", - "version": "0.9.3", + "version": "0.9.2", "source": { "type": "git", "url": "https://github.com/brick/math.git", - "reference": "ca57d18f028f84f777b2168cd1911b0dee2343ae" + "reference": "dff976c2f3487d42c1db75a3b180e2b9f0e72ce0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/brick/math/zipball/ca57d18f028f84f777b2168cd1911b0dee2343ae", - "reference": "ca57d18f028f84f777b2168cd1911b0dee2343ae", + "url": "https://api.github.com/repos/brick/math/zipball/dff976c2f3487d42c1db75a3b180e2b9f0e72ce0", + "reference": "dff976c2f3487d42c1db75a3b180e2b9f0e72ce0", "shasum": "" }, "require": { @@ -27,7 +27,7 @@ "require-dev": { "php-coveralls/php-coveralls": "^2.2", "phpunit/phpunit": "^7.5.15 || ^8.5 || ^9.0", - "vimeo/psalm": "4.9.2" + "vimeo/psalm": "4.3.2" }, "type": "library", "autoload": { @@ -52,121 +52,46 @@ ], "support": { "issues": "https://github.com/brick/math/issues", - "source": "https://github.com/brick/math/tree/0.9.3" + "source": "https://github.com/brick/math/tree/0.9.2" }, "funding": [ - { - "url": "https://github.com/BenMorel", - "type": "github" - }, { "url": "https://tidelift.com/funding/github/packagist/brick/math", "type": "tidelift" } ], - "time": "2021-08-15T20:50:18+00:00" + "time": "2021-01-20T22:51:39+00:00" }, { - "name": "dflydev/dot-access-data", - "version": "v3.0.2", + "name": "doctrine/inflector", + "version": "2.0.3", "source": { "type": "git", - "url": "https://github.com/dflydev/dflydev-dot-access-data.git", - "reference": "f41715465d65213d644d3141a6a93081be5d3549" + "url": "https://github.com/doctrine/inflector.git", + "reference": "9cf661f4eb38f7c881cac67c75ea9b00bf97b210" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/dflydev/dflydev-dot-access-data/zipball/f41715465d65213d644d3141a6a93081be5d3549", - "reference": "f41715465d65213d644d3141a6a93081be5d3549", + "url": "https://api.github.com/repos/doctrine/inflector/zipball/9cf661f4eb38f7c881cac67c75ea9b00bf97b210", + "reference": "9cf661f4eb38f7c881cac67c75ea9b00bf97b210", "shasum": "" }, "require": { - "php": "^7.1 || ^8.0" + "php": "^7.2 || ^8.0" }, "require-dev": { - "phpstan/phpstan": "^0.12.42", - "phpunit/phpunit": "^7.5 || ^8.5 || ^9.3", - "scrutinizer/ocular": "1.6.0", - "squizlabs/php_codesniffer": "^3.5", - "vimeo/psalm": "^4.0.0" + "doctrine/coding-standard": "^7.0", + "phpstan/phpstan": "^0.11", + "phpstan/phpstan-phpunit": "^0.11", + "phpstan/phpstan-strict-rules": "^0.11", + "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "3.x-dev" - } - }, - "autoload": { - "psr-4": { - "Dflydev\\DotAccessData\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Dragonfly Development Inc.", - "email": "info@dflydev.com", - "homepage": "http://dflydev.com" - }, - { - "name": "Beau Simensen", - "email": "beau@dflydev.com", - "homepage": "http://beausimensen.com" - }, - { - "name": "Carlos Frutos", - "email": "carlos@kiwing.it", - "homepage": "https://github.com/cfrutos" - }, - { - "name": "Colin O'Dell", - "email": "colinodell@gmail.com", - "homepage": "https://www.colinodell.com" + "dev-master": "2.0.x-dev" } - ], - "description": "Given a deep data structure, access data by dot notation.", - "homepage": "https://github.com/dflydev/dflydev-dot-access-data", - "keywords": [ - "access", - "data", - "dot", - "notation" - ], - "support": { - "issues": "https://github.com/dflydev/dflydev-dot-access-data/issues", - "source": "https://github.com/dflydev/dflydev-dot-access-data/tree/v3.0.2" - }, - "time": "2022-10-27T11:44:00+00:00" - }, - { - "name": "doctrine/inflector", - "version": "2.0.6", - "source": { - "type": "git", - "url": "https://github.com/doctrine/inflector.git", - "reference": "d9d313a36c872fd6ee06d9a6cbcf713eaa40f024" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/inflector/zipball/d9d313a36c872fd6ee06d9a6cbcf713eaa40f024", - "reference": "d9d313a36c872fd6ee06d9a6cbcf713eaa40f024", - "shasum": "" - }, - "require": { - "php": "^7.2 || ^8.0" - }, - "require-dev": { - "doctrine/coding-standard": "^10", - "phpstan/phpstan": "^1.8", - "phpstan/phpstan-phpunit": "^1.1", - "phpstan/phpstan-strict-rules": "^1.3", - "phpunit/phpunit": "^8.5 || ^9.5", - "vimeo/psalm": "^4.25" }, - "type": "library", "autoload": { "psr-4": { "Doctrine\\Inflector\\": "lib/Doctrine/Inflector" @@ -214,7 +139,7 @@ ], "support": { "issues": "https://github.com/doctrine/inflector/issues", - "source": "https://github.com/doctrine/inflector/tree/2.0.6" + "source": "https://github.com/doctrine/inflector/tree/2.0.x" }, "funding": [ { @@ -230,32 +155,36 @@ "type": "tidelift" } ], - "time": "2022-10-20T09:10:12+00:00" + "time": "2020-05-29T15:13:26+00:00" }, { "name": "doctrine/lexer", - "version": "1.2.3", + "version": "1.2.1", "source": { "type": "git", "url": "https://github.com/doctrine/lexer.git", - "reference": "c268e882d4dbdd85e36e4ad69e02dc284f89d229" + "reference": "e864bbf5904cb8f5bb334f99209b48018522f042" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/lexer/zipball/c268e882d4dbdd85e36e4ad69e02dc284f89d229", - "reference": "c268e882d4dbdd85e36e4ad69e02dc284f89d229", + "url": "https://api.github.com/repos/doctrine/lexer/zipball/e864bbf5904cb8f5bb334f99209b48018522f042", + "reference": "e864bbf5904cb8f5bb334f99209b48018522f042", "shasum": "" }, "require": { - "php": "^7.1 || ^8.0" + "php": "^7.2 || ^8.0" }, "require-dev": { - "doctrine/coding-standard": "^9.0", - "phpstan/phpstan": "^1.3", - "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", - "vimeo/psalm": "^4.11" + "doctrine/coding-standard": "^6.0", + "phpstan/phpstan": "^0.11.8", + "phpunit/phpunit": "^8.2" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.2.x-dev" + } + }, "autoload": { "psr-4": { "Doctrine\\Common\\Lexer\\": "lib/Doctrine/Common/Lexer" @@ -290,7 +219,7 @@ ], "support": { "issues": "https://github.com/doctrine/lexer/issues", - "source": "https://github.com/doctrine/lexer/tree/1.2.3" + "source": "https://github.com/doctrine/lexer/tree/1.2.1" }, "funding": [ { @@ -306,33 +235,33 @@ "type": "tidelift" } ], - "time": "2022-02-28T11:07:21+00:00" + "time": "2020-05-25T17:44:05+00:00" }, { "name": "dragonmantank/cron-expression", - "version": "v3.3.2", + "version": "v3.1.0", "source": { "type": "git", "url": "https://github.com/dragonmantank/cron-expression.git", - "reference": "782ca5968ab8b954773518e9e49a6f892a34b2a8" + "reference": "7a8c6e56ab3ffcc538d05e8155bb42269abf1a0c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/dragonmantank/cron-expression/zipball/782ca5968ab8b954773518e9e49a6f892a34b2a8", - "reference": "782ca5968ab8b954773518e9e49a6f892a34b2a8", + "url": "https://api.github.com/repos/dragonmantank/cron-expression/zipball/7a8c6e56ab3ffcc538d05e8155bb42269abf1a0c", + "reference": "7a8c6e56ab3ffcc538d05e8155bb42269abf1a0c", "shasum": "" }, "require": { "php": "^7.2|^8.0", - "webmozart/assert": "^1.0" + "webmozart/assert": "^1.7.0" }, "replace": { "mtdowling/cron-expression": "^1.0" }, "require-dev": { "phpstan/extension-installer": "^1.0", - "phpstan/phpstan": "^1.0", - "phpstan/phpstan-webmozart-assert": "^1.0", + "phpstan/phpstan": "^0.12", + "phpstan/phpstan-webmozart-assert": "^0.12.7", "phpunit/phpunit": "^7.0|^8.0|^9.0" }, "type": "library", @@ -359,7 +288,7 @@ ], "support": { "issues": "https://github.com/dragonmantank/cron-expression/issues", - "source": "https://github.com/dragonmantank/cron-expression/tree/v3.3.2" + "source": "https://github.com/dragonmantank/cron-expression/tree/v3.1.0" }, "funding": [ { @@ -367,7 +296,7 @@ "type": "github" } ], - "time": "2022-09-10T18:51:20+00:00" + "time": "2020-11-24T19:55:57+00:00" }, { "name": "egulias/email-validator", @@ -439,26 +368,31 @@ }, { "name": "graham-campbell/result-type", - "version": "v1.1.0", + "version": "v1.0.1", "source": { "type": "git", "url": "https://github.com/GrahamCampbell/Result-Type.git", - "reference": "a878d45c1914464426dc94da61c9e1d36ae262a8" + "reference": "7e279d2cd5d7fbb156ce46daada972355cea27bb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/GrahamCampbell/Result-Type/zipball/a878d45c1914464426dc94da61c9e1d36ae262a8", - "reference": "a878d45c1914464426dc94da61c9e1d36ae262a8", + "url": "https://api.github.com/repos/GrahamCampbell/Result-Type/zipball/7e279d2cd5d7fbb156ce46daada972355cea27bb", + "reference": "7e279d2cd5d7fbb156ce46daada972355cea27bb", "shasum": "" }, "require": { - "php": "^7.2.5 || ^8.0", - "phpoption/phpoption": "^1.9" + "php": "^7.0|^8.0", + "phpoption/phpoption": "^1.7.3" }, "require-dev": { - "phpunit/phpunit": "^8.5.28 || ^9.5.21" + "phpunit/phpunit": "^6.5|^7.5|^8.5|^9.0" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + } + }, "autoload": { "psr-4": { "GrahamCampbell\\ResultType\\": "src/" @@ -471,8 +405,7 @@ "authors": [ { "name": "Graham Campbell", - "email": "hello@gjcampbell.co.uk", - "homepage": "https://github.com/GrahamCampbell" + "email": "graham@alt-three.com" } ], "description": "An Implementation Of The Result Type", @@ -485,7 +418,7 @@ ], "support": { "issues": "https://github.com/GrahamCampbell/Result-Type/issues", - "source": "https://github.com/GrahamCampbell/Result-Type/tree/v1.1.0" + "source": "https://github.com/GrahamCampbell/Result-Type/tree/v1.0.1" }, "funding": [ { @@ -497,39 +430,38 @@ "type": "tidelift" } ], - "time": "2022-07-30T15:56:11+00:00" + "time": "2020-04-13T13:17:36+00:00" }, { "name": "guzzlehttp/guzzle", - "version": "7.5.0", + "version": "7.3.0", "source": { "type": "git", "url": "https://github.com/guzzle/guzzle.git", - "reference": "b50a2a1251152e43f6a37f0fa053e730a67d25ba" + "reference": "7008573787b430c1c1f650e3722d9bba59967628" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/guzzle/zipball/b50a2a1251152e43f6a37f0fa053e730a67d25ba", - "reference": "b50a2a1251152e43f6a37f0fa053e730a67d25ba", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/7008573787b430c1c1f650e3722d9bba59967628", + "reference": "7008573787b430c1c1f650e3722d9bba59967628", "shasum": "" }, "require": { "ext-json": "*", - "guzzlehttp/promises": "^1.5", - "guzzlehttp/psr7": "^1.9 || ^2.4", + "guzzlehttp/promises": "^1.4", + "guzzlehttp/psr7": "^1.7 || ^2.0", "php": "^7.2.5 || ^8.0", - "psr/http-client": "^1.0", - "symfony/deprecation-contracts": "^2.2 || ^3.0" + "psr/http-client": "^1.0" }, "provide": { "psr/http-client-implementation": "1.0" }, "require-dev": { - "bamarni/composer-bin-plugin": "^1.8.1", + "bamarni/composer-bin-plugin": "^1.4.1", "ext-curl": "*", "php-http/client-integration-tests": "^3.0", - "phpunit/phpunit": "^8.5.29 || ^9.5.23", - "psr/log": "^1.1 || ^2.0 || ^3.0" + "phpunit/phpunit": "^8.5.5 || ^9.3.5", + "psr/log": "^1.1" }, "suggest": { "ext-curl": "Required for CURL handler support", @@ -538,64 +470,36 @@ }, "type": "library", "extra": { - "bamarni-bin": { - "bin-links": true, - "forward-command": false - }, "branch-alias": { - "dev-master": "7.5-dev" + "dev-master": "7.3-dev" } }, "autoload": { - "files": [ - "src/functions_include.php" - ], "psr-4": { "GuzzleHttp\\": "src/" - } + }, + "files": [ + "src/functions_include.php" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], "authors": [ - { - "name": "Graham Campbell", - "email": "hello@gjcampbell.co.uk", - "homepage": "https://github.com/GrahamCampbell" - }, { "name": "Michael Dowling", "email": "mtdowling@gmail.com", "homepage": "https://github.com/mtdowling" }, - { - "name": "Jeremy Lindblom", - "email": "jeremeamia@gmail.com", - "homepage": "https://github.com/jeremeamia" - }, - { - "name": "George Mponos", - "email": "gmponos@gmail.com", - "homepage": "https://github.com/gmponos" - }, - { - "name": "Tobias Nyholm", - "email": "tobias.nyholm@gmail.com", - "homepage": "https://github.com/Nyholm" - }, { "name": "Márk Sági-Kazár", "email": "mark.sagikazar@gmail.com", - "homepage": "https://github.com/sagikazarmark" - }, - { - "name": "Tobias Schultze", - "email": "webmaster@tubo-world.de", - "homepage": "https://github.com/Tobion" + "homepage": "https://sagikazarmark.hu" } ], "description": "Guzzle is a PHP HTTP client library", + "homepage": "http://guzzlephp.org/", "keywords": [ "client", "curl", @@ -609,7 +513,7 @@ ], "support": { "issues": "https://github.com/guzzle/guzzle/issues", - "source": "https://github.com/guzzle/guzzle/tree/7.5.0" + "source": "https://github.com/guzzle/guzzle/tree/7.3.0" }, "funding": [ { @@ -621,24 +525,28 @@ "type": "github" }, { - "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/guzzle", - "type": "tidelift" + "url": "https://github.com/alexeyshockov", + "type": "github" + }, + { + "url": "https://github.com/gmponos", + "type": "github" } ], - "time": "2022-08-28T15:39:27+00:00" + "time": "2021-03-23T11:33:13+00:00" }, { "name": "guzzlehttp/promises", - "version": "1.5.2", + "version": "1.4.1", "source": { "type": "git", "url": "https://github.com/guzzle/promises.git", - "reference": "b94b2807d85443f9719887892882d0329d1e2598" + "reference": "8e7d04f1f6450fef59366c399cfad4b9383aa30d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/promises/zipball/b94b2807d85443f9719887892882d0329d1e2598", - "reference": "b94b2807d85443f9719887892882d0329d1e2598", + "url": "https://api.github.com/repos/guzzle/promises/zipball/8e7d04f1f6450fef59366c399cfad4b9383aa30d", + "reference": "8e7d04f1f6450fef59366c399cfad4b9383aa30d", "shasum": "" }, "require": { @@ -650,41 +558,26 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.5-dev" + "dev-master": "1.4-dev" } }, "autoload": { - "files": [ - "src/functions_include.php" - ], "psr-4": { "GuzzleHttp\\Promise\\": "src/" - } + }, + "files": [ + "src/functions_include.php" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], "authors": [ - { - "name": "Graham Campbell", - "email": "hello@gjcampbell.co.uk", - "homepage": "https://github.com/GrahamCampbell" - }, { "name": "Michael Dowling", "email": "mtdowling@gmail.com", "homepage": "https://github.com/mtdowling" - }, - { - "name": "Tobias Nyholm", - "email": "tobias.nyholm@gmail.com", - "homepage": "https://github.com/Nyholm" - }, - { - "name": "Tobias Schultze", - "email": "webmaster@tubo-world.de", - "homepage": "https://github.com/Tobion" } ], "description": "Guzzle promises library", @@ -693,110 +586,66 @@ ], "support": { "issues": "https://github.com/guzzle/promises/issues", - "source": "https://github.com/guzzle/promises/tree/1.5.2" + "source": "https://github.com/guzzle/promises/tree/1.4.1" }, - "funding": [ - { - "url": "https://github.com/GrahamCampbell", - "type": "github" - }, - { - "url": "https://github.com/Nyholm", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/promises", - "type": "tidelift" - } - ], - "time": "2022-08-28T14:55:35+00:00" + "time": "2021-03-07T09:25:29+00:00" }, { "name": "guzzlehttp/psr7", - "version": "2.4.3", + "version": "1.8.2", "source": { "type": "git", "url": "https://github.com/guzzle/psr7.git", - "reference": "67c26b443f348a51926030c83481b85718457d3d" + "reference": "dc960a912984efb74d0a90222870c72c87f10c91" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/psr7/zipball/67c26b443f348a51926030c83481b85718457d3d", - "reference": "67c26b443f348a51926030c83481b85718457d3d", + "url": "https://api.github.com/repos/guzzle/psr7/zipball/dc960a912984efb74d0a90222870c72c87f10c91", + "reference": "dc960a912984efb74d0a90222870c72c87f10c91", "shasum": "" }, "require": { - "php": "^7.2.5 || ^8.0", - "psr/http-factory": "^1.0", - "psr/http-message": "^1.0", - "ralouphie/getallheaders": "^3.0" + "php": ">=5.4.0", + "psr/http-message": "~1.0", + "ralouphie/getallheaders": "^2.0.5 || ^3.0.0" }, "provide": { - "psr/http-factory-implementation": "1.0", "psr/http-message-implementation": "1.0" }, "require-dev": { - "bamarni/composer-bin-plugin": "^1.8.1", - "http-interop/http-factory-tests": "^0.9", - "phpunit/phpunit": "^8.5.29 || ^9.5.23" + "ext-zlib": "*", + "phpunit/phpunit": "~4.8.36 || ^5.7.27 || ^6.5.14 || ^7.5.20 || ^8.5.8 || ^9.3.10" }, "suggest": { "laminas/laminas-httphandlerrunner": "Emit PSR-7 responses" }, "type": "library", "extra": { - "bamarni-bin": { - "bin-links": true, - "forward-command": false - }, "branch-alias": { - "dev-master": "2.4-dev" + "dev-master": "1.7-dev" } }, "autoload": { "psr-4": { "GuzzleHttp\\Psr7\\": "src/" - } + }, + "files": [ + "src/functions_include.php" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], "authors": [ - { - "name": "Graham Campbell", - "email": "hello@gjcampbell.co.uk", - "homepage": "https://github.com/GrahamCampbell" - }, { "name": "Michael Dowling", "email": "mtdowling@gmail.com", "homepage": "https://github.com/mtdowling" }, - { - "name": "George Mponos", - "email": "gmponos@gmail.com", - "homepage": "https://github.com/gmponos" - }, - { - "name": "Tobias Nyholm", - "email": "tobias.nyholm@gmail.com", - "homepage": "https://github.com/Nyholm" - }, - { - "name": "Márk Sági-Kazár", - "email": "mark.sagikazar@gmail.com", - "homepage": "https://github.com/sagikazarmark" - }, { "name": "Tobias Schultze", - "email": "webmaster@tubo-world.de", "homepage": "https://github.com/Tobion" - }, - { - "name": "Márk Sági-Kazár", - "email": "mark.sagikazar@gmail.com", - "homepage": "https://sagikazarmark.hu" } ], "description": "PSR-7 message implementation that also provides common utility methods", @@ -812,36 +661,22 @@ ], "support": { "issues": "https://github.com/guzzle/psr7/issues", - "source": "https://github.com/guzzle/psr7/tree/2.4.3" + "source": "https://github.com/guzzle/psr7/tree/1.8.2" }, - "funding": [ - { - "url": "https://github.com/GrahamCampbell", - "type": "github" - }, - { - "url": "https://github.com/Nyholm", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/psr7", - "type": "tidelift" - } - ], - "time": "2022-10-26T14:07:24+00:00" + "time": "2021-04-26T09:17:50+00:00" }, { "name": "laravel/framework", - "version": "v8.83.27", + "version": "v8.42.1", "source": { "type": "git", "url": "https://github.com/laravel/framework.git", - "reference": "e1afe088b4ca613fb96dc57e6d8dbcb8cc2c6b49" + "reference": "41ec4897a70eb8729cf0ff34a8354413c54e42a6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/framework/zipball/e1afe088b4ca613fb96dc57e6d8dbcb8cc2c6b49", - "reference": "e1afe088b4ca613fb96dc57e6d8dbcb8cc2c6b49", + "url": "https://api.github.com/repos/laravel/framework/zipball/41ec4897a70eb8729cf0ff34a8354413c54e42a6", + "reference": "41ec4897a70eb8729cf0ff34a8354413c54e42a6", "shasum": "" }, "require": { @@ -851,37 +686,34 @@ "ext-json": "*", "ext-mbstring": "*", "ext-openssl": "*", - "laravel/serializable-closure": "^1.0", - "league/commonmark": "^1.3|^2.0.2", + "league/commonmark": "^1.3", "league/flysystem": "^1.1", "monolog/monolog": "^2.0", - "nesbot/carbon": "^2.53.1", + "nesbot/carbon": "^2.31", "opis/closure": "^3.6", "php": "^7.3|^8.0", "psr/container": "^1.0", - "psr/log": "^1.0|^2.0", "psr/simple-cache": "^1.0", - "ramsey/uuid": "^4.2.2", - "swiftmailer/swiftmailer": "^6.3", - "symfony/console": "^5.4", - "symfony/error-handler": "^5.4", - "symfony/finder": "^5.4", - "symfony/http-foundation": "^5.4", - "symfony/http-kernel": "^5.4", - "symfony/mime": "^5.4", - "symfony/process": "^5.4", - "symfony/routing": "^5.4", - "symfony/var-dumper": "^5.4", + "ramsey/uuid": "^4.0", + "swiftmailer/swiftmailer": "^6.0", + "symfony/console": "^5.1.4", + "symfony/error-handler": "^5.1.4", + "symfony/finder": "^5.1.4", + "symfony/http-foundation": "^5.1.4", + "symfony/http-kernel": "^5.1.4", + "symfony/mime": "^5.1.4", + "symfony/process": "^5.1.4", + "symfony/routing": "^5.1.4", + "symfony/var-dumper": "^5.1.4", "tijsverkoyen/css-to-inline-styles": "^2.2.2", - "vlucas/phpdotenv": "^5.4.1", - "voku/portable-ascii": "^1.6.1" + "vlucas/phpdotenv": "^5.2", + "voku/portable-ascii": "^1.4.8" }, "conflict": { "tightenco/collect": "<5.5.33" }, "provide": { - "psr/container-implementation": "1.0", - "psr/simple-cache-implementation": "1.0" + "psr/container-implementation": "1.0" }, "replace": { "illuminate/auth": "self.version", @@ -917,24 +749,22 @@ "illuminate/view": "self.version" }, "require-dev": { - "aws/aws-sdk-php": "^3.198.1", - "doctrine/dbal": "^2.13.3|^3.1.4", - "filp/whoops": "^2.14.3", + "aws/aws-sdk-php": "^3.155", + "doctrine/dbal": "^2.6|^3.0", + "filp/whoops": "^2.8", "guzzlehttp/guzzle": "^6.5.5|^7.0.1", "league/flysystem-cached-adapter": "^1.0", - "mockery/mockery": "^1.4.4", - "orchestra/testbench-core": "^6.27", + "mockery/mockery": "^1.4.2", + "orchestra/testbench-core": "^6.8", "pda/pheanstalk": "^4.0", - "phpunit/phpunit": "^8.5.19|^9.5.8", - "predis/predis": "^1.1.9", - "symfony/cache": "^5.4" + "phpunit/phpunit": "^8.5.8|^9.3.3", + "predis/predis": "^1.1.1", + "symfony/cache": "^5.1.4" }, "suggest": { - "ably/ably-php": "Required to use the Ably broadcast driver (^1.0).", - "aws/aws-sdk-php": "Required to use the SQS queue driver, DynamoDb failed job storage and SES mail driver (^3.198.1).", + "aws/aws-sdk-php": "Required to use the SQS queue driver, DynamoDb failed job storage and SES mail driver (^3.155).", "brianium/paratest": "Required to run tests in parallel (^6.0).", - "doctrine/dbal": "Required to rename columns and drop SQLite columns (^2.13.3|^3.1.4).", - "ext-bcmath": "Required to use the multiple_of validation rule.", + "doctrine/dbal": "Required to rename columns and drop SQLite columns (^2.6|^3.0).", "ext-ftp": "Required to use the Flysystem FTP driver.", "ext-gd": "Required to use Illuminate\\Http\\Testing\\FileFactory::image().", "ext-memcached": "Required to use the memcache cache driver.", @@ -942,21 +772,21 @@ "ext-posix": "Required to use all features of the queue worker.", "ext-redis": "Required to use the Redis cache and queue drivers (^4.0|^5.0).", "fakerphp/faker": "Required to use the eloquent factory builder (^1.9.1).", - "filp/whoops": "Required for friendly error pages in development (^2.14.3).", + "filp/whoops": "Required for friendly error pages in development (^2.8).", "guzzlehttp/guzzle": "Required to use the HTTP Client, Mailgun mail driver and the ping methods on schedules (^6.5.5|^7.0.1).", "laravel/tinker": "Required to use the tinker console command (^2.0).", "league/flysystem-aws-s3-v3": "Required to use the Flysystem S3 driver (^1.0).", "league/flysystem-cached-adapter": "Required to use the Flysystem cache (^1.0).", "league/flysystem-sftp": "Required to use the Flysystem SFTP driver (^1.0).", - "mockery/mockery": "Required to use mocking (^1.4.4).", + "mockery/mockery": "Required to use mocking (^1.4.2).", "nyholm/psr7": "Required to use PSR-7 bridging features (^1.2).", "pda/pheanstalk": "Required to use the beanstalk queue driver (^4.0).", - "phpunit/phpunit": "Required to use assertions and run tests (^8.5.19|^9.5.8).", - "predis/predis": "Required to use the predis connector (^1.1.9).", + "phpunit/phpunit": "Required to use assertions and run tests (^8.5.8|^9.3.3).", + "predis/predis": "Required to use the predis connector (^1.1.2).", "psr/http-message": "Required to allow Storage::put to accept a StreamInterface (^1.0).", - "pusher/pusher-php-server": "Required to use the Pusher broadcast driver (^4.0|^5.0|^6.0|^7.0).", - "symfony/cache": "Required to PSR-6 cache bridge (^5.4).", - "symfony/filesystem": "Required to enable support for relative symbolic links (^5.4).", + "pusher/pusher-php-server": "Required to use the Pusher broadcast driver (^4.0|^5.0|^6.0).", + "symfony/cache": "Required to PSR-6 cache bridge (^5.1.4).", + "symfony/filesystem": "Required to enable support for relative symbolic links (^5.1.4).", "symfony/psr-http-message-bridge": "Required to use PSR-7 bridging features (^2.0).", "wildbit/swiftmailer-postmark": "Required to use Postmark mail driver (^3.0)." }, @@ -1001,118 +831,46 @@ "issues": "https://github.com/laravel/framework/issues", "source": "https://github.com/laravel/framework" }, - "time": "2022-12-08T15:28:55+00:00" - }, - { - "name": "laravel/serializable-closure", - "version": "v1.2.2", - "source": { - "type": "git", - "url": "https://github.com/laravel/serializable-closure.git", - "reference": "47afb7fae28ed29057fdca37e16a84f90cc62fae" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/laravel/serializable-closure/zipball/47afb7fae28ed29057fdca37e16a84f90cc62fae", - "reference": "47afb7fae28ed29057fdca37e16a84f90cc62fae", - "shasum": "" - }, - "require": { - "php": "^7.3|^8.0" - }, - "require-dev": { - "nesbot/carbon": "^2.61", - "pestphp/pest": "^1.21.3", - "phpstan/phpstan": "^1.8.2", - "symfony/var-dumper": "^5.4.11" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.x-dev" - } - }, - "autoload": { - "psr-4": { - "Laravel\\SerializableClosure\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Taylor Otwell", - "email": "taylor@laravel.com" - }, - { - "name": "Nuno Maduro", - "email": "nuno@laravel.com" - } - ], - "description": "Laravel Serializable Closure provides an easy and secure way to serialize closures in PHP.", - "keywords": [ - "closure", - "laravel", - "serializable" - ], - "support": { - "issues": "https://github.com/laravel/serializable-closure/issues", - "source": "https://github.com/laravel/serializable-closure" - }, - "time": "2022-09-08T13:45:54+00:00" + "time": "2021-05-19T13:03:18+00:00" }, { "name": "league/commonmark", - "version": "2.3.8", + "version": "1.6.2", "source": { "type": "git", "url": "https://github.com/thephpleague/commonmark.git", - "reference": "c493585c130544c4e91d2e0e131e6d35cb0cbc47" + "reference": "7d70d2f19c84bcc16275ea47edabee24747352eb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/c493585c130544c4e91d2e0e131e6d35cb0cbc47", - "reference": "c493585c130544c4e91d2e0e131e6d35cb0cbc47", + "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/7d70d2f19c84bcc16275ea47edabee24747352eb", + "reference": "7d70d2f19c84bcc16275ea47edabee24747352eb", "shasum": "" }, "require": { "ext-mbstring": "*", - "league/config": "^1.1.1", - "php": "^7.4 || ^8.0", - "psr/event-dispatcher": "^1.0", - "symfony/deprecation-contracts": "^2.1 || ^3.0", - "symfony/polyfill-php80": "^1.16" + "php": "^7.1 || ^8.0" + }, + "conflict": { + "scrutinizer/ocular": "1.7.*" }, "require-dev": { - "cebe/markdown": "^1.0", - "commonmark/cmark": "0.30.0", - "commonmark/commonmark.js": "0.30.0", - "composer/package-versions-deprecated": "^1.8", - "embed/embed": "^4.4", - "erusev/parsedown": "^1.0", + "cebe/markdown": "~1.0", + "commonmark/commonmark.js": "0.29.2", + "erusev/parsedown": "~1.0", "ext-json": "*", "github/gfm": "0.29.0", - "michelf/php-markdown": "^1.4 || ^2.0", - "nyholm/psr7": "^1.5", - "phpstan/phpstan": "^1.8.2", - "phpunit/phpunit": "^9.5.21", - "scrutinizer/ocular": "^1.8.1", - "symfony/finder": "^5.3 | ^6.0", - "symfony/yaml": "^2.3 | ^3.0 | ^4.0 | ^5.0 | ^6.0", - "unleashedtech/php-coding-standard": "^3.1.1", - "vimeo/psalm": "^4.24.0 || ^5.0.0" - }, - "suggest": { - "symfony/yaml": "v2.3+ required if using the Front Matter extension" + "michelf/php-markdown": "~1.4", + "mikehaertl/php-shellcommand": "^1.4", + "phpstan/phpstan": "^0.12", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.2", + "scrutinizer/ocular": "^1.5", + "symfony/finder": "^4.2" }, + "bin": [ + "bin/commonmark" + ], "type": "library", - "extra": { - "branch-alias": { - "dev-main": "2.4-dev" - } - }, "autoload": { "psr-4": { "League\\CommonMark\\": "src" @@ -1130,7 +888,7 @@ "role": "Lead Developer" } ], - "description": "Highly-extensible PHP Markdown parser which fully supports the CommonMark spec and GitHub-Flavored Markdown (GFM)", + "description": "Highly-extensible PHP Markdown parser which fully supports the CommonMark spec and Github-Flavored Markdown (GFM)", "homepage": "https://commonmark.thephpleague.com", "keywords": [ "commonmark", @@ -1144,12 +902,15 @@ ], "support": { "docs": "https://commonmark.thephpleague.com/", - "forum": "https://github.com/thephpleague/commonmark/discussions", "issues": "https://github.com/thephpleague/commonmark/issues", "rss": "https://github.com/thephpleague/commonmark/releases.atom", "source": "https://github.com/thephpleague/commonmark" }, "funding": [ + { + "url": "https://enjoy.gitstore.app/repositories/thephpleague/commonmark", + "type": "custom" + }, { "url": "https://www.colinodell.com/sponsor", "type": "custom" @@ -1162,150 +923,73 @@ "url": "https://github.com/colinodell", "type": "github" }, + { + "url": "https://www.patreon.com/colinodell", + "type": "patreon" + }, { "url": "https://tidelift.com/funding/github/packagist/league/commonmark", "type": "tidelift" } ], - "time": "2022-12-10T16:02:17+00:00" + "time": "2021-05-12T11:39:41+00:00" }, { - "name": "league/config", - "version": "v1.2.0", + "name": "league/flysystem", + "version": "1.1.3", "source": { "type": "git", - "url": "https://github.com/thephpleague/config.git", - "reference": "754b3604fb2984c71f4af4a9cbe7b57f346ec1f3" + "url": "https://github.com/thephpleague/flysystem.git", + "reference": "9be3b16c877d477357c015cec057548cf9b2a14a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/config/zipball/754b3604fb2984c71f4af4a9cbe7b57f346ec1f3", - "reference": "754b3604fb2984c71f4af4a9cbe7b57f346ec1f3", + "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/9be3b16c877d477357c015cec057548cf9b2a14a", + "reference": "9be3b16c877d477357c015cec057548cf9b2a14a", "shasum": "" }, "require": { - "dflydev/dot-access-data": "^3.0.1", - "nette/schema": "^1.2", - "php": "^7.4 || ^8.0" + "ext-fileinfo": "*", + "league/mime-type-detection": "^1.3", + "php": "^7.2.5 || ^8.0" + }, + "conflict": { + "league/flysystem-sftp": "<1.0.6" }, "require-dev": { - "phpstan/phpstan": "^1.8.2", - "phpunit/phpunit": "^9.5.5", - "scrutinizer/ocular": "^1.8.1", - "unleashedtech/php-coding-standard": "^3.1", - "vimeo/psalm": "^4.7.3" + "phpspec/prophecy": "^1.11.1", + "phpunit/phpunit": "^8.5.8" + }, + "suggest": { + "ext-fileinfo": "Required for MimeType", + "ext-ftp": "Allows you to use FTP server storage", + "ext-openssl": "Allows you to use FTPS server storage", + "league/flysystem-aws-s3-v2": "Allows you to use S3 storage with AWS SDK v2", + "league/flysystem-aws-s3-v3": "Allows you to use S3 storage with AWS SDK v3", + "league/flysystem-azure": "Allows you to use Windows Azure Blob storage", + "league/flysystem-cached-adapter": "Flysystem adapter decorator for metadata caching", + "league/flysystem-eventable-filesystem": "Allows you to use EventableFilesystem", + "league/flysystem-rackspace": "Allows you to use Rackspace Cloud Files", + "league/flysystem-sftp": "Allows you to use SFTP server storage via phpseclib", + "league/flysystem-webdav": "Allows you to use WebDAV storage", + "league/flysystem-ziparchive": "Allows you to use ZipArchive adapter", + "spatie/flysystem-dropbox": "Allows you to use Dropbox storage", + "srmklive/flysystem-dropbox-v2": "Allows you to use Dropbox storage for PHP 5 applications" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "1.2-dev" + "dev-master": "1.1-dev" } }, "autoload": { "psr-4": { - "League\\Config\\": "src" + "League\\Flysystem\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Colin O'Dell", - "email": "colinodell@gmail.com", - "homepage": "https://www.colinodell.com", - "role": "Lead Developer" - } - ], - "description": "Define configuration arrays with strict schemas and access values with dot notation", - "homepage": "https://config.thephpleague.com", - "keywords": [ - "array", - "config", - "configuration", - "dot", - "dot-access", - "nested", - "schema" - ], - "support": { - "docs": "https://config.thephpleague.com/", - "issues": "https://github.com/thephpleague/config/issues", - "rss": "https://github.com/thephpleague/config/releases.atom", - "source": "https://github.com/thephpleague/config" - }, - "funding": [ - { - "url": "https://www.colinodell.com/sponsor", - "type": "custom" - }, - { - "url": "https://www.paypal.me/colinpodell/10.00", - "type": "custom" - }, - { - "url": "https://github.com/colinodell", - "type": "github" - } - ], - "time": "2022-12-11T20:36:23+00:00" - }, - { - "name": "league/flysystem", - "version": "1.1.10", - "source": { - "type": "git", - "url": "https://github.com/thephpleague/flysystem.git", - "reference": "3239285c825c152bcc315fe0e87d6b55f5972ed1" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/3239285c825c152bcc315fe0e87d6b55f5972ed1", - "reference": "3239285c825c152bcc315fe0e87d6b55f5972ed1", - "shasum": "" - }, - "require": { - "ext-fileinfo": "*", - "league/mime-type-detection": "^1.3", - "php": "^7.2.5 || ^8.0" - }, - "conflict": { - "league/flysystem-sftp": "<1.0.6" - }, - "require-dev": { - "phpspec/prophecy": "^1.11.1", - "phpunit/phpunit": "^8.5.8" - }, - "suggest": { - "ext-ftp": "Allows you to use FTP server storage", - "ext-openssl": "Allows you to use FTPS server storage", - "league/flysystem-aws-s3-v2": "Allows you to use S3 storage with AWS SDK v2", - "league/flysystem-aws-s3-v3": "Allows you to use S3 storage with AWS SDK v3", - "league/flysystem-azure": "Allows you to use Windows Azure Blob storage", - "league/flysystem-cached-adapter": "Flysystem adapter decorator for metadata caching", - "league/flysystem-eventable-filesystem": "Allows you to use EventableFilesystem", - "league/flysystem-rackspace": "Allows you to use Rackspace Cloud Files", - "league/flysystem-sftp": "Allows you to use SFTP server storage via phpseclib", - "league/flysystem-webdav": "Allows you to use WebDAV storage", - "league/flysystem-ziparchive": "Allows you to use ZipArchive adapter", - "spatie/flysystem-dropbox": "Allows you to use Dropbox storage", - "srmklive/flysystem-dropbox-v2": "Allows you to use Dropbox storage for PHP 5 applications" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.1-dev" - } - }, - "autoload": { - "psr-4": { - "League\\Flysystem\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" + "MIT" ], "authors": [ { @@ -1335,7 +1019,7 @@ ], "support": { "issues": "https://github.com/thephpleague/flysystem/issues", - "source": "https://github.com/thephpleague/flysystem/tree/1.1.10" + "source": "https://github.com/thephpleague/flysystem/tree/1.x" }, "funding": [ { @@ -1343,20 +1027,20 @@ "type": "other" } ], - "time": "2022-10-04T09:16:37+00:00" + "time": "2020-08-23T07:39:11+00:00" }, { "name": "league/mime-type-detection", - "version": "1.11.0", + "version": "1.7.0", "source": { "type": "git", "url": "https://github.com/thephpleague/mime-type-detection.git", - "reference": "ff6248ea87a9f116e78edd6002e39e5128a0d4dd" + "reference": "3b9dff8aaf7323590c1d2e443db701eb1f9aa0d3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/mime-type-detection/zipball/ff6248ea87a9f116e78edd6002e39e5128a0d4dd", - "reference": "ff6248ea87a9f116e78edd6002e39e5128a0d4dd", + "url": "https://api.github.com/repos/thephpleague/mime-type-detection/zipball/3b9dff8aaf7323590c1d2e443db701eb1f9aa0d3", + "reference": "3b9dff8aaf7323590c1d2e443db701eb1f9aa0d3", "shasum": "" }, "require": { @@ -1364,7 +1048,7 @@ "php": "^7.2 || ^8.0" }, "require-dev": { - "friendsofphp/php-cs-fixer": "^3.2", + "friendsofphp/php-cs-fixer": "^2.18", "phpstan/phpstan": "^0.12.68", "phpunit/phpunit": "^8.5.8 || ^9.3" }, @@ -1387,7 +1071,7 @@ "description": "Mime-type detection for Flysystem", "support": { "issues": "https://github.com/thephpleague/mime-type-detection/issues", - "source": "https://github.com/thephpleague/mime-type-detection/tree/1.11.0" + "source": "https://github.com/thephpleague/mime-type-detection/tree/1.7.0" }, "funding": [ { @@ -1399,62 +1083,56 @@ "type": "tidelift" } ], - "time": "2022-04-17T13:12:02+00:00" + "time": "2021-01-18T20:58:21+00:00" }, { "name": "monolog/monolog", - "version": "2.8.0", + "version": "2.2.0", "source": { "type": "git", "url": "https://github.com/Seldaek/monolog.git", - "reference": "720488632c590286b88b80e62aa3d3d551ad4a50" + "reference": "1cb1cde8e8dd0f70cc0fe51354a59acad9302084" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Seldaek/monolog/zipball/720488632c590286b88b80e62aa3d3d551ad4a50", - "reference": "720488632c590286b88b80e62aa3d3d551ad4a50", + "url": "https://api.github.com/repos/Seldaek/monolog/zipball/1cb1cde8e8dd0f70cc0fe51354a59acad9302084", + "reference": "1cb1cde8e8dd0f70cc0fe51354a59acad9302084", "shasum": "" }, "require": { "php": ">=7.2", - "psr/log": "^1.0.1 || ^2.0 || ^3.0" + "psr/log": "^1.0.1" }, "provide": { - "psr/log-implementation": "1.0.0 || 2.0.0 || 3.0.0" + "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 || ^8", - "ext-json": "*", + "elasticsearch/elasticsearch": "^7", "graylog2/gelf-php": "^1.4.2", - "guzzlehttp/guzzle": "^7.4", - "guzzlehttp/psr7": "^2.2", "mongodb/mongodb": "^1.8", - "php-amqplib/php-amqplib": "~2.4 || ^3", - "phpspec/prophecy": "^1.15", - "phpstan/phpstan": "^0.12.91", - "phpunit/phpunit": "^8.5.14", - "predis/predis": "^1.1 || ^2.0", - "rollbar/rollbar": "^1.3 || ^2 || ^3", - "ruflin/elastica": "^7", - "swiftmailer/swiftmailer": "^5.3|^6.0", - "symfony/mailer": "^5.4 || ^6", - "symfony/mime": "^5.4 || ^6" + "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-curl": "Required to send log messages using the IFTTTHandler, the LogglyHandler, the SendGridHandler, the SlackWebhookHandler or the TelegramBotHandler", "ext-mbstring": "Allow to work properly with unicode symbols", "ext-mongodb": "Allow sending log messages to a MongoDB server (via driver)", - "ext-openssl": "Required to send log messages using SSL", - "ext-sockets": "Allow sending log messages to a Syslog server (via UDP driver)", "graylog2/gelf-php": "Allow sending log messages to a GrayLog2 server", "mongodb/mongodb": "Allow sending log messages to a MongoDB server (via library)", "php-amqplib/php-amqplib": "Allow sending log messages to an AMQP server using php-amqplib", + "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" }, @@ -1489,7 +1167,7 @@ ], "support": { "issues": "https://github.com/Seldaek/monolog/issues", - "source": "https://github.com/Seldaek/monolog/tree/2.8.0" + "source": "https://github.com/Seldaek/monolog/tree/2.2.0" }, "funding": [ { @@ -1501,40 +1179,36 @@ "type": "tidelift" } ], - "time": "2022-07-24T11:55:47+00:00" + "time": "2020-12-14T13:15:25+00:00" }, { "name": "nesbot/carbon", - "version": "2.64.0", + "version": "2.48.0", "source": { "type": "git", "url": "https://github.com/briannesbitt/Carbon.git", - "reference": "889546413c97de2d05063b8cb7b193c2531ea211" + "reference": "d3c447f21072766cddec3522f9468a5849a76147" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/889546413c97de2d05063b8cb7b193c2531ea211", - "reference": "889546413c97de2d05063b8cb7b193c2531ea211", + "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/d3c447f21072766cddec3522f9468a5849a76147", + "reference": "d3c447f21072766cddec3522f9468a5849a76147", "shasum": "" }, "require": { "ext-json": "*", "php": "^7.1.8 || ^8.0", "symfony/polyfill-mbstring": "^1.0", - "symfony/polyfill-php80": "^1.16", - "symfony/translation": "^3.4 || ^4.0 || ^5.0 || ^6.0" + "symfony/translation": "^3.4 || ^4.0 || ^5.0" }, "require-dev": { - "doctrine/dbal": "^2.0 || ^3.1.4", "doctrine/orm": "^2.7", - "friendsofphp/php-cs-fixer": "^3.0", + "friendsofphp/php-cs-fixer": "^2.14 || ^3.0", "kylekatarnls/multi-tester": "^2.0", - "ondrejmirtes/better-reflection": "*", "phpmd/phpmd": "^2.9", "phpstan/extension-installer": "^1.0", - "phpstan/phpstan": "^0.12.99 || ^1.7.14", - "phpunit/php-file-iterator": "^2.0.5 || ^3.0.6", - "phpunit/phpunit": "^7.5.20 || ^8.5.26 || ^9.5.20", + "phpstan/phpstan": "^0.12.54", + "phpunit/phpunit": "^7.5.20 || ^8.5.14", "squizlabs/php_codesniffer": "^3.4" }, "bin": [ @@ -1543,8 +1217,8 @@ "type": "library", "extra": { "branch-alias": { - "dev-3.x": "3.x-dev", - "dev-master": "2.x-dev" + "dev-master": "2.x-dev", + "dev-3.x": "3.x-dev" }, "laravel": { "providers": [ @@ -1570,200 +1244,48 @@ { "name": "Brian Nesbitt", "email": "brian@nesbot.com", - "homepage": "https://markido.com" + "homepage": "http://nesbot.com" }, { "name": "kylekatarnls", - "homepage": "https://github.com/kylekatarnls" + "homepage": "http://github.com/kylekatarnls" } ], "description": "An API extension for DateTime that supports 281 different languages.", - "homepage": "https://carbon.nesbot.com", + "homepage": "http://carbon.nesbot.com", "keywords": [ "date", "datetime", "time" ], "support": { - "docs": "https://carbon.nesbot.com/docs", "issues": "https://github.com/briannesbitt/Carbon/issues", "source": "https://github.com/briannesbitt/Carbon" }, "funding": [ { - "url": "https://github.com/sponsors/kylekatarnls", - "type": "github" - }, - { - "url": "https://opencollective.com/Carbon#sponsor", - "type": "opencollective" + "url": "https://opencollective.com/Carbon", + "type": "open_collective" }, { - "url": "https://tidelift.com/subscription/pkg/packagist-nesbot-carbon?utm_source=packagist-nesbot-carbon&utm_medium=referral&utm_campaign=readme", + "url": "https://tidelift.com/funding/github/packagist/nesbot/carbon", "type": "tidelift" } ], - "time": "2022-11-26T17:36:00+00:00" - }, - { - "name": "nette/schema", - "version": "v1.2.3", - "source": { - "type": "git", - "url": "https://github.com/nette/schema.git", - "reference": "abbdbb70e0245d5f3bf77874cea1dfb0c930d06f" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/nette/schema/zipball/abbdbb70e0245d5f3bf77874cea1dfb0c930d06f", - "reference": "abbdbb70e0245d5f3bf77874cea1dfb0c930d06f", - "shasum": "" - }, - "require": { - "nette/utils": "^2.5.7 || ^3.1.5 || ^4.0", - "php": ">=7.1 <8.3" - }, - "require-dev": { - "nette/tester": "^2.3 || ^2.4", - "phpstan/phpstan-nette": "^1.0", - "tracy/tracy": "^2.7" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.2-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause", - "GPL-2.0-only", - "GPL-3.0-only" - ], - "authors": [ - { - "name": "David Grudl", - "homepage": "https://davidgrudl.com" - }, - { - "name": "Nette Community", - "homepage": "https://nette.org/contributors" - } - ], - "description": "📐 Nette Schema: validating data structures against a given Schema.", - "homepage": "https://nette.org", - "keywords": [ - "config", - "nette" - ], - "support": { - "issues": "https://github.com/nette/schema/issues", - "source": "https://github.com/nette/schema/tree/v1.2.3" - }, - "time": "2022-10-13T01:24:26+00:00" - }, - { - "name": "nette/utils", - "version": "v3.2.8", - "source": { - "type": "git", - "url": "https://github.com/nette/utils.git", - "reference": "02a54c4c872b99e4ec05c4aec54b5a06eb0f6368" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/nette/utils/zipball/02a54c4c872b99e4ec05c4aec54b5a06eb0f6368", - "reference": "02a54c4c872b99e4ec05c4aec54b5a06eb0f6368", - "shasum": "" - }, - "require": { - "php": ">=7.2 <8.3" - }, - "conflict": { - "nette/di": "<3.0.6" - }, - "require-dev": { - "nette/tester": "~2.0", - "phpstan/phpstan": "^1.0", - "tracy/tracy": "^2.3" - }, - "suggest": { - "ext-gd": "to use Image", - "ext-iconv": "to use Strings::webalize(), toAscii(), chr() and reverse()", - "ext-intl": "to use Strings::webalize(), toAscii(), normalize() and compare()", - "ext-json": "to use Nette\\Utils\\Json", - "ext-mbstring": "to use Strings::lower() etc...", - "ext-tokenizer": "to use Nette\\Utils\\Reflection::getUseStatements()", - "ext-xml": "to use Strings::length() etc. when mbstring is not available" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.2-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause", - "GPL-2.0-only", - "GPL-3.0-only" - ], - "authors": [ - { - "name": "David Grudl", - "homepage": "https://davidgrudl.com" - }, - { - "name": "Nette Community", - "homepage": "https://nette.org/contributors" - } - ], - "description": "🛠 Nette Utils: lightweight utilities for string & array manipulation, image handling, safe JSON encoding/decoding, validation, slug or strong password generating etc.", - "homepage": "https://nette.org", - "keywords": [ - "array", - "core", - "datetime", - "images", - "json", - "nette", - "paginator", - "password", - "slugify", - "string", - "unicode", - "utf-8", - "utility", - "validation" - ], - "support": { - "issues": "https://github.com/nette/utils/issues", - "source": "https://github.com/nette/utils/tree/v3.2.8" - }, - "time": "2022-09-12T23:36:20+00:00" + "time": "2021-05-07T10:08:30+00:00" }, { "name": "opis/closure", - "version": "3.6.3", + "version": "3.6.2", "source": { "type": "git", "url": "https://github.com/opis/closure.git", - "reference": "3d81e4309d2a927abbe66df935f4bb60082805ad" + "reference": "06e2ebd25f2869e54a306dda991f7db58066f7f6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/opis/closure/zipball/3d81e4309d2a927abbe66df935f4bb60082805ad", - "reference": "3d81e4309d2a927abbe66df935f4bb60082805ad", + "url": "https://api.github.com/repos/opis/closure/zipball/06e2ebd25f2869e54a306dda991f7db58066f7f6", + "reference": "06e2ebd25f2869e54a306dda991f7db58066f7f6", "shasum": "" }, "require": { @@ -1780,12 +1302,12 @@ } }, "autoload": { - "files": [ - "functions.php" - ], "psr-4": { "Opis\\Closure\\": "src/" - } + }, + "files": [ + "functions.php" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -1813,39 +1335,35 @@ ], "support": { "issues": "https://github.com/opis/closure/issues", - "source": "https://github.com/opis/closure/tree/3.6.3" + "source": "https://github.com/opis/closure/tree/3.6.2" }, - "time": "2022-01-27T09:35:39+00:00" + "time": "2021-04-09T13:42:10+00:00" }, { "name": "phpoption/phpoption", - "version": "1.9.0", + "version": "1.7.5", "source": { "type": "git", "url": "https://github.com/schmittjoh/php-option.git", - "reference": "dc5ff11e274a90cc1c743f66c9ad700ce50db9ab" + "reference": "994ecccd8f3283ecf5ac33254543eb0ac946d525" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/schmittjoh/php-option/zipball/dc5ff11e274a90cc1c743f66c9ad700ce50db9ab", - "reference": "dc5ff11e274a90cc1c743f66c9ad700ce50db9ab", + "url": "https://api.github.com/repos/schmittjoh/php-option/zipball/994ecccd8f3283ecf5ac33254543eb0ac946d525", + "reference": "994ecccd8f3283ecf5ac33254543eb0ac946d525", "shasum": "" }, "require": { - "php": "^7.2.5 || ^8.0" + "php": "^5.5.9 || ^7.0 || ^8.0" }, "require-dev": { - "bamarni/composer-bin-plugin": "^1.8", - "phpunit/phpunit": "^8.5.28 || ^9.5.21" + "bamarni/composer-bin-plugin": "^1.4.1", + "phpunit/phpunit": "^4.8.35 || ^5.7.27 || ^6.5.6 || ^7.0 || ^8.0 || ^9.0" }, "type": "library", "extra": { - "bamarni-bin": { - "bin-links": true, - "forward-command": true - }, "branch-alias": { - "dev-master": "1.9-dev" + "dev-master": "1.7-dev" } }, "autoload": { @@ -1860,13 +1378,11 @@ "authors": [ { "name": "Johannes M. Schmitt", - "email": "schmittjoh@gmail.com", - "homepage": "https://github.com/schmittjoh" + "email": "schmittjoh@gmail.com" }, { "name": "Graham Campbell", - "email": "hello@gjcampbell.co.uk", - "homepage": "https://github.com/GrahamCampbell" + "email": "graham@alt-three.com" } ], "description": "Option Type for PHP", @@ -1878,7 +1394,7 @@ ], "support": { "issues": "https://github.com/schmittjoh/php-option/issues", - "source": "https://github.com/schmittjoh/php-option/tree/1.9.0" + "source": "https://github.com/schmittjoh/php-option/tree/1.7.5" }, "funding": [ { @@ -1890,24 +1406,24 @@ "type": "tidelift" } ], - "time": "2022-07-30T15:51:26+00:00" + "time": "2020-07-20T17:29:33+00:00" }, { "name": "psr/container", - "version": "1.1.2", + "version": "1.1.1", "source": { "type": "git", "url": "https://github.com/php-fig/container.git", - "reference": "513e0666f7216c7459170d56df27dfcefe1689ea" + "reference": "8622567409010282b7aeebe4bb841fe98b58dcaf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/container/zipball/513e0666f7216c7459170d56df27dfcefe1689ea", - "reference": "513e0666f7216c7459170d56df27dfcefe1689ea", + "url": "https://api.github.com/repos/php-fig/container/zipball/8622567409010282b7aeebe4bb841fe98b58dcaf", + "reference": "8622567409010282b7aeebe4bb841fe98b58dcaf", "shasum": "" }, "require": { - "php": ">=7.4.0" + "php": ">=7.2.0" }, "type": "library", "autoload": { @@ -1936,9 +1452,9 @@ ], "support": { "issues": "https://github.com/php-fig/container/issues", - "source": "https://github.com/php-fig/container/tree/1.1.2" + "source": "https://github.com/php-fig/container/tree/1.1.1" }, - "time": "2021-11-05T16:50:12+00:00" + "time": "2021-03-05T17:36:06+00:00" }, { "name": "psr/event-dispatcher", @@ -2042,61 +1558,6 @@ }, "time": "2020-06-29T06:28:15+00:00" }, - { - "name": "psr/http-factory", - "version": "1.0.1", - "source": { - "type": "git", - "url": "https://github.com/php-fig/http-factory.git", - "reference": "12ac7fcd07e5b077433f5f2bee95b3a771bf61be" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/http-factory/zipball/12ac7fcd07e5b077433f5f2bee95b3a771bf61be", - "reference": "12ac7fcd07e5b077433f5f2bee95b3a771bf61be", - "shasum": "" - }, - "require": { - "php": ">=7.0.0", - "psr/http-message": "^1.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "autoload": { - "psr-4": { - "Psr\\Http\\Message\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" - } - ], - "description": "Common interfaces for PSR-7 HTTP message factories", - "keywords": [ - "factory", - "http", - "message", - "psr", - "psr-17", - "psr-7", - "request", - "response" - ], - "support": { - "source": "https://github.com/php-fig/http-factory/tree/master" - }, - "time": "2019-04-30T12:38:16+00:00" - }, { "name": "psr/http-message", "version": "1.0.1", @@ -2297,21 +1758,20 @@ }, { "name": "ramsey/collection", - "version": "1.2.2", + "version": "1.1.3", "source": { "type": "git", "url": "https://github.com/ramsey/collection.git", - "reference": "cccc74ee5e328031b15640b51056ee8d3bb66c0a" + "reference": "28a5c4ab2f5111db6a60b2b4ec84057e0f43b9c1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ramsey/collection/zipball/cccc74ee5e328031b15640b51056ee8d3bb66c0a", - "reference": "cccc74ee5e328031b15640b51056ee8d3bb66c0a", + "url": "https://api.github.com/repos/ramsey/collection/zipball/28a5c4ab2f5111db6a60b2b4ec84057e0f43b9c1", + "reference": "28a5c4ab2f5111db6a60b2b4ec84057e0f43b9c1", "shasum": "" }, "require": { - "php": "^7.3 || ^8", - "symfony/polyfill-php81": "^1.23" + "php": "^7.2 || ^8" }, "require-dev": { "captainhook/captainhook": "^5.3", @@ -2321,7 +1781,6 @@ "hamcrest/hamcrest-php": "^2", "jangregor/phpstan-prophecy": "^0.8", "mockery/mockery": "^1.3", - "phpspec/prophecy-phpunit": "^2.0", "phpstan/extension-installer": "^1", "phpstan/phpstan": "^0.12.32", "phpstan/phpstan-mockery": "^0.12.5", @@ -2349,7 +1808,7 @@ "homepage": "https://benramsey.com" } ], - "description": "A PHP library for representing and manipulating collections.", + "description": "A PHP 7.2+ library for representing and manipulating collections.", "keywords": [ "array", "collection", @@ -2360,7 +1819,7 @@ ], "support": { "issues": "https://github.com/ramsey/collection/issues", - "source": "https://github.com/ramsey/collection/tree/1.2.2" + "source": "https://github.com/ramsey/collection/tree/1.1.3" }, "funding": [ { @@ -2372,54 +1831,53 @@ "type": "tidelift" } ], - "time": "2021-10-10T03:01:02+00:00" + "time": "2021-01-21T17:40:04+00:00" }, { "name": "ramsey/uuid", - "version": "4.2.3", + "version": "4.1.1", "source": { "type": "git", "url": "https://github.com/ramsey/uuid.git", - "reference": "fc9bb7fb5388691fd7373cd44dcb4d63bbcf24df" + "reference": "cd4032040a750077205918c86049aa0f43d22947" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ramsey/uuid/zipball/fc9bb7fb5388691fd7373cd44dcb4d63bbcf24df", - "reference": "fc9bb7fb5388691fd7373cd44dcb4d63bbcf24df", + "url": "https://api.github.com/repos/ramsey/uuid/zipball/cd4032040a750077205918c86049aa0f43d22947", + "reference": "cd4032040a750077205918c86049aa0f43d22947", "shasum": "" }, "require": { "brick/math": "^0.8 || ^0.9", "ext-json": "*", - "php": "^7.2 || ^8.0", + "php": "^7.2 || ^8", "ramsey/collection": "^1.0", - "symfony/polyfill-ctype": "^1.8", - "symfony/polyfill-php80": "^1.14" + "symfony/polyfill-ctype": "^1.8" }, "replace": { "rhumsaa/uuid": "self.version" }, "require-dev": { - "captainhook/captainhook": "^5.10", - "captainhook/plugin-composer": "^5.3", - "dealerdirect/phpcodesniffer-composer-installer": "^0.7.0", + "codeception/aspect-mock": "^3", + "dealerdirect/phpcodesniffer-composer-installer": "^0.6.2 || ^0.7.0", "doctrine/annotations": "^1.8", - "ergebnis/composer-normalize": "^2.15", + "goaop/framework": "^2", "mockery/mockery": "^1.3", "moontoast/math": "^1.1", "paragonie/random-lib": "^2", - "php-mock/php-mock": "^2.2", "php-mock/php-mock-mockery": "^1.3", + "php-mock/php-mock-phpunit": "^2.5", "php-parallel-lint/php-parallel-lint": "^1.1", - "phpbench/phpbench": "^1.0", + "phpbench/phpbench": "^0.17.1", "phpstan/extension-installer": "^1.0", "phpstan/phpstan": "^0.12", "phpstan/phpstan-mockery": "^0.12", "phpstan/phpstan-phpunit": "^0.12", - "phpunit/phpunit": "^8.5 || ^9", - "slevomat/coding-standard": "^7.0", + "phpunit/phpunit": "^8.5", + "psy/psysh": "^0.10.0", + "slevomat/coding-standard": "^6.0", "squizlabs/php_codesniffer": "^3.5", - "vimeo/psalm": "^4.9" + "vimeo/psalm": "3.9.4" }, "suggest": { "ext-bcmath": "Enables faster math with arbitrary-precision integers using BCMath.", @@ -2432,25 +1890,23 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "4.x-dev" - }, - "captainhook": { - "force-install": true + "dev-master": "4.x-dev" } }, "autoload": { - "files": [ - "src/functions.php" - ], "psr-4": { "Ramsey\\Uuid\\": "src/" - } + }, + "files": [ + "src/functions.php" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], "description": "A PHP library for generating and working with universally unique identifiers (UUIDs).", + "homepage": "https://github.com/ramsey/uuid", "keywords": [ "guid", "identifier", @@ -2458,32 +1914,29 @@ ], "support": { "issues": "https://github.com/ramsey/uuid/issues", - "source": "https://github.com/ramsey/uuid/tree/4.2.3" + "rss": "https://github.com/ramsey/uuid/releases.atom", + "source": "https://github.com/ramsey/uuid" }, "funding": [ { "url": "https://github.com/ramsey", "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/ramsey/uuid", - "type": "tidelift" } ], - "time": "2021-09-25T23:10:38+00:00" + "time": "2020-08-18T17:17:46+00:00" }, { "name": "swiftmailer/swiftmailer", - "version": "v6.3.0", + "version": "v6.2.7", "source": { "type": "git", "url": "https://github.com/swiftmailer/swiftmailer.git", - "reference": "8a5d5072dca8f48460fce2f4131fcc495eec654c" + "reference": "15f7faf8508e04471f666633addacf54c0ab5933" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/swiftmailer/swiftmailer/zipball/8a5d5072dca8f48460fce2f4131fcc495eec654c", - "reference": "8a5d5072dca8f48460fce2f4131fcc495eec654c", + "url": "https://api.github.com/repos/swiftmailer/swiftmailer/zipball/15f7faf8508e04471f666633addacf54c0ab5933", + "reference": "15f7faf8508e04471f666633addacf54c0ab5933", "shasum": "" }, "require": { @@ -2495,7 +1948,7 @@ }, "require-dev": { "mockery/mockery": "^1.0", - "symfony/phpunit-bridge": "^4.4|^5.4" + "symfony/phpunit-bridge": "^4.4|^5.0" }, "suggest": { "ext-intl": "Needed to support internationalized email addresses" @@ -2533,7 +1986,7 @@ ], "support": { "issues": "https://github.com/swiftmailer/swiftmailer/issues", - "source": "https://github.com/swiftmailer/swiftmailer/tree/v6.3.0" + "source": "https://github.com/swiftmailer/swiftmailer/tree/v6.2.7" }, "funding": [ { @@ -2545,34 +1998,31 @@ "type": "tidelift" } ], - "abandoned": "symfony/mailer", - "time": "2021-10-18T15:26:12+00:00" + "time": "2021-03-09T12:30:35+00:00" }, { "name": "symfony/console", - "version": "v5.4.16", + "version": "v5.2.8", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "8e9b9c8dfb33af6057c94e1b44846bee700dc5ef" + "reference": "864568fdc0208b3eba3638b6000b69d2386e6768" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/8e9b9c8dfb33af6057c94e1b44846bee700dc5ef", - "reference": "8e9b9c8dfb33af6057c94e1b44846bee700dc5ef", + "url": "https://api.github.com/repos/symfony/console/zipball/864568fdc0208b3eba3638b6000b69d2386e6768", + "reference": "864568fdc0208b3eba3638b6000b69d2386e6768", "shasum": "" }, "require": { "php": ">=7.2.5", - "symfony/deprecation-contracts": "^2.1|^3", "symfony/polyfill-mbstring": "~1.0", - "symfony/polyfill-php73": "^1.9", - "symfony/polyfill-php80": "^1.16", - "symfony/service-contracts": "^1.1|^2|^3", - "symfony/string": "^5.1|^6.0" + "symfony/polyfill-php73": "^1.8", + "symfony/polyfill-php80": "^1.15", + "symfony/service-contracts": "^1.1|^2", + "symfony/string": "^5.1" }, "conflict": { - "psr/log": ">=3", "symfony/dependency-injection": "<4.4", "symfony/dotenv": "<5.1", "symfony/event-dispatcher": "<4.4", @@ -2580,16 +2030,16 @@ "symfony/process": "<4.4" }, "provide": { - "psr/log-implementation": "1.0|2.0" + "psr/log-implementation": "1.0" }, "require-dev": { - "psr/log": "^1|^2", - "symfony/config": "^4.4|^5.0|^6.0", - "symfony/dependency-injection": "^4.4|^5.0|^6.0", - "symfony/event-dispatcher": "^4.4|^5.0|^6.0", - "symfony/lock": "^4.4|^5.0|^6.0", - "symfony/process": "^4.4|^5.0|^6.0", - "symfony/var-dumper": "^4.4|^5.0|^6.0" + "psr/log": "~1.0", + "symfony/config": "^4.4|^5.0", + "symfony/dependency-injection": "^4.4|^5.0", + "symfony/event-dispatcher": "^4.4|^5.0", + "symfony/lock": "^4.4|^5.0", + "symfony/process": "^4.4|^5.0", + "symfony/var-dumper": "^4.4|^5.0" }, "suggest": { "psr/log": "For using the console logger", @@ -2629,7 +2079,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v5.4.16" + "source": "https://github.com/symfony/console/tree/v5.2.8" }, "funding": [ { @@ -2645,25 +2095,24 @@ "type": "tidelift" } ], - "time": "2022-11-25T14:09:27+00:00" + "time": "2021-05-11T15:45:21+00:00" }, { "name": "symfony/css-selector", - "version": "v5.4.11", + "version": "v5.2.9", "source": { "type": "git", "url": "https://github.com/symfony/css-selector.git", - "reference": "c1681789f059ab756001052164726ae88512ae3d" + "reference": "5d5f97809015102116208b976eb2edb44b689560" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/css-selector/zipball/c1681789f059ab756001052164726ae88512ae3d", - "reference": "c1681789f059ab756001052164726ae88512ae3d", + "url": "https://api.github.com/repos/symfony/css-selector/zipball/5d5f97809015102116208b976eb2edb44b689560", + "reference": "5d5f97809015102116208b976eb2edb44b689560", "shasum": "" }, "require": { - "php": ">=7.2.5", - "symfony/polyfill-php80": "^1.16" + "php": ">=7.2.5" }, "type": "library", "autoload": { @@ -2695,7 +2144,7 @@ "description": "Converts CSS selectors to XPath expressions", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/css-selector/tree/v5.4.11" + "source": "https://github.com/symfony/css-selector/tree/v5.2.9" }, "funding": [ { @@ -2711,20 +2160,20 @@ "type": "tidelift" } ], - "time": "2022-06-27T16:58:25+00:00" + "time": "2021-05-16T13:07:46+00:00" }, { "name": "symfony/deprecation-contracts", - "version": "v2.5.2", + "version": "v2.4.0", "source": { "type": "git", "url": "https://github.com/symfony/deprecation-contracts.git", - "reference": "e8b495ea28c1d97b5e0c121748d6f9b53d075c66" + "reference": "5f38c8804a9e97d23e0c8d63341088cd8a22d627" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/e8b495ea28c1d97b5e0c121748d6f9b53d075c66", - "reference": "e8b495ea28c1d97b5e0c121748d6f9b53d075c66", + "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/5f38c8804a9e97d23e0c8d63341088cd8a22d627", + "reference": "5f38c8804a9e97d23e0c8d63341088cd8a22d627", "shasum": "" }, "require": { @@ -2733,7 +2182,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "2.5-dev" + "dev-main": "2.4-dev" }, "thanks": { "name": "symfony/contracts", @@ -2762,7 +2211,7 @@ "description": "A generic function and convention to trigger deprecation notices", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/deprecation-contracts/tree/v2.5.2" + "source": "https://github.com/symfony/deprecation-contracts/tree/v2.4.0" }, "funding": [ { @@ -2778,35 +2227,33 @@ "type": "tidelift" } ], - "time": "2022-01-02T09:53:40+00:00" + "time": "2021-03-23T23:28:01+00:00" }, { "name": "symfony/error-handler", - "version": "v5.4.15", + "version": "v5.2.8", "source": { "type": "git", "url": "https://github.com/symfony/error-handler.git", - "reference": "539cf1428b8442303c6e876ad7bf5a7babd91091" + "reference": "1416bc16317a8188aabde251afef7618bf4687ac" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/error-handler/zipball/539cf1428b8442303c6e876ad7bf5a7babd91091", - "reference": "539cf1428b8442303c6e876ad7bf5a7babd91091", + "url": "https://api.github.com/repos/symfony/error-handler/zipball/1416bc16317a8188aabde251afef7618bf4687ac", + "reference": "1416bc16317a8188aabde251afef7618bf4687ac", "shasum": "" }, "require": { "php": ">=7.2.5", - "psr/log": "^1|^2|^3", - "symfony/var-dumper": "^4.4|^5.0|^6.0" + "psr/log": "^1.0", + "symfony/polyfill-php80": "^1.15", + "symfony/var-dumper": "^4.4|^5.0" }, "require-dev": { - "symfony/deprecation-contracts": "^2.1|^3", - "symfony/http-kernel": "^4.4|^5.0|^6.0", - "symfony/serializer": "^4.4|^5.0|^6.0" + "symfony/deprecation-contracts": "^2.1", + "symfony/http-kernel": "^4.4|^5.0", + "symfony/serializer": "^4.4|^5.0" }, - "bin": [ - "Resources/bin/patch-type-declarations" - ], "type": "library", "autoload": { "psr-4": { @@ -2833,7 +2280,7 @@ "description": "Provides tools to manage errors and ease debugging PHP code", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/error-handler/tree/v5.4.15" + "source": "https://github.com/symfony/error-handler/tree/v5.2.8" }, "funding": [ { @@ -2849,27 +2296,27 @@ "type": "tidelift" } ], - "time": "2022-10-27T06:32:25+00:00" + "time": "2021-05-07T13:42:21+00:00" }, { "name": "symfony/event-dispatcher", - "version": "v5.4.9", + "version": "v5.2.4", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "8e6ce1cc0279e3ff3c8ff0f43813bc88d21ca1bc" + "reference": "d08d6ec121a425897951900ab692b612a61d6240" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/8e6ce1cc0279e3ff3c8ff0f43813bc88d21ca1bc", - "reference": "8e6ce1cc0279e3ff3c8ff0f43813bc88d21ca1bc", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/d08d6ec121a425897951900ab692b612a61d6240", + "reference": "d08d6ec121a425897951900ab692b612a61d6240", "shasum": "" }, "require": { "php": ">=7.2.5", - "symfony/deprecation-contracts": "^2.1|^3", - "symfony/event-dispatcher-contracts": "^2|^3", - "symfony/polyfill-php80": "^1.16" + "symfony/deprecation-contracts": "^2.1", + "symfony/event-dispatcher-contracts": "^2", + "symfony/polyfill-php80": "^1.15" }, "conflict": { "symfony/dependency-injection": "<4.4" @@ -2879,14 +2326,14 @@ "symfony/event-dispatcher-implementation": "2.0" }, "require-dev": { - "psr/log": "^1|^2|^3", - "symfony/config": "^4.4|^5.0|^6.0", - "symfony/dependency-injection": "^4.4|^5.0|^6.0", - "symfony/error-handler": "^4.4|^5.0|^6.0", - "symfony/expression-language": "^4.4|^5.0|^6.0", - "symfony/http-foundation": "^4.4|^5.0|^6.0", - "symfony/service-contracts": "^1.1|^2|^3", - "symfony/stopwatch": "^4.4|^5.0|^6.0" + "psr/log": "~1.0", + "symfony/config": "^4.4|^5.0", + "symfony/dependency-injection": "^4.4|^5.0", + "symfony/error-handler": "^4.4|^5.0", + "symfony/expression-language": "^4.4|^5.0", + "symfony/http-foundation": "^4.4|^5.0", + "symfony/service-contracts": "^1.1|^2", + "symfony/stopwatch": "^4.4|^5.0" }, "suggest": { "symfony/dependency-injection": "", @@ -2918,7 +2365,7 @@ "description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/event-dispatcher/tree/v5.4.9" + "source": "https://github.com/symfony/event-dispatcher/tree/v5.2.4" }, "funding": [ { @@ -2934,20 +2381,20 @@ "type": "tidelift" } ], - "time": "2022-05-05T16:45:39+00:00" + "time": "2021-02-18T17:12:37+00:00" }, { "name": "symfony/event-dispatcher-contracts", - "version": "v2.5.2", + "version": "v2.4.0", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher-contracts.git", - "reference": "f98b54df6ad059855739db6fcbc2d36995283fe1" + "reference": "69fee1ad2332a7cbab3aca13591953da9cdb7a11" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/f98b54df6ad059855739db6fcbc2d36995283fe1", - "reference": "f98b54df6ad059855739db6fcbc2d36995283fe1", + "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/69fee1ad2332a7cbab3aca13591953da9cdb7a11", + "reference": "69fee1ad2332a7cbab3aca13591953da9cdb7a11", "shasum": "" }, "require": { @@ -2960,7 +2407,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "2.5-dev" + "dev-main": "2.4-dev" }, "thanks": { "name": "symfony/contracts", @@ -2997,7 +2444,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v2.5.2" + "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v2.4.0" }, "funding": [ { @@ -3013,26 +2460,24 @@ "type": "tidelift" } ], - "time": "2022-01-02T09:53:40+00:00" + "time": "2021-03-23T23:28:01+00:00" }, { "name": "symfony/finder", - "version": "v5.4.11", + "version": "v5.2.9", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "7872a66f57caffa2916a584db1aa7f12adc76f8c" + "reference": "ccccb9d48ca42757dd12f2ca4bf857a4e217d90d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/7872a66f57caffa2916a584db1aa7f12adc76f8c", - "reference": "7872a66f57caffa2916a584db1aa7f12adc76f8c", + "url": "https://api.github.com/repos/symfony/finder/zipball/ccccb9d48ca42757dd12f2ca4bf857a4e217d90d", + "reference": "ccccb9d48ca42757dd12f2ca4bf857a4e217d90d", "shasum": "" }, "require": { - "php": ">=7.2.5", - "symfony/deprecation-contracts": "^2.1|^3", - "symfony/polyfill-php80": "^1.16" + "php": ">=7.2.5" }, "type": "library", "autoload": { @@ -3060,7 +2505,7 @@ "description": "Finds files and directories via an intuitive fluent interface", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/finder/tree/v5.4.11" + "source": "https://github.com/symfony/finder/tree/v5.2.9" }, "funding": [ { @@ -3076,39 +2521,114 @@ "type": "tidelift" } ], - "time": "2022-07-29T07:37:50+00:00" + "time": "2021-05-16T13:07:46+00:00" }, { - "name": "symfony/http-foundation", - "version": "v5.4.16", + "name": "symfony/http-client-contracts", + "version": "v2.4.0", "source": { "type": "git", - "url": "https://github.com/symfony/http-foundation.git", - "reference": "5032c5849aef24741e1970cb03511b0dd131d838" + "url": "https://github.com/symfony/http-client-contracts.git", + "reference": "7e82f6084d7cae521a75ef2cb5c9457bbda785f4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/5032c5849aef24741e1970cb03511b0dd131d838", - "reference": "5032c5849aef24741e1970cb03511b0dd131d838", + "url": "https://api.github.com/repos/symfony/http-client-contracts/zipball/7e82f6084d7cae521a75ef2cb5c9457bbda785f4", + "reference": "7e82f6084d7cae521a75ef2cb5c9457bbda785f4", "shasum": "" }, "require": { - "php": ">=7.2.5", - "symfony/deprecation-contracts": "^2.1|^3", - "symfony/polyfill-mbstring": "~1.1", - "symfony/polyfill-php80": "^1.16" - }, - "require-dev": { - "predis/predis": "~1.0", - "symfony/cache": "^4.4|^5.0|^6.0", - "symfony/dependency-injection": "^5.4|^6.0", - "symfony/expression-language": "^4.4|^5.0|^6.0", - "symfony/http-kernel": "^5.4.12|^6.0.12|^6.1.4", - "symfony/mime": "^4.4|^5.0|^6.0", - "symfony/rate-limiter": "^5.2|^6.0" + "php": ">=7.2.5" }, "suggest": { - "symfony/mime": "To use the file extension guesser" + "symfony/http-client-implementation": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "2.4-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.4.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-04-11T23:07:08+00:00" + }, + { + "name": "symfony/http-foundation", + "version": "v5.2.8", + "source": { + "type": "git", + "url": "https://github.com/symfony/http-foundation.git", + "reference": "e8fbbab7c4a71592985019477532629cb2e142dc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/e8fbbab7c4a71592985019477532629cb2e142dc", + "reference": "e8fbbab7c4a71592985019477532629cb2e142dc", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1", + "symfony/polyfill-mbstring": "~1.1", + "symfony/polyfill-php80": "^1.15" + }, + "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" }, "type": "library", "autoload": { @@ -3136,7 +2656,7 @@ "description": "Defines an object-oriented layer for the HTTP specification", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-foundation/tree/v5.4.16" + "source": "https://github.com/symfony/http-foundation/tree/v5.2.8" }, "funding": [ { @@ -3152,39 +2672,40 @@ "type": "tidelift" } ], - "time": "2022-11-07T08:06:40+00:00" + "time": "2021-05-07T13:41:16+00:00" }, { "name": "symfony/http-kernel", - "version": "v5.4.16", + "version": "v5.2.9", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "b432c57c5de73634b1859093c1f58e3cd84455a1" + "reference": "eb540ef6870dbf33c92e372cfb869ebf9649e6cb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/b432c57c5de73634b1859093c1f58e3cd84455a1", - "reference": "b432c57c5de73634b1859093c1f58e3cd84455a1", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/eb540ef6870dbf33c92e372cfb869ebf9649e6cb", + "reference": "eb540ef6870dbf33c92e372cfb869ebf9649e6cb", "shasum": "" }, "require": { "php": ">=7.2.5", - "psr/log": "^1|^2", - "symfony/deprecation-contracts": "^2.1|^3", - "symfony/error-handler": "^4.4|^5.0|^6.0", - "symfony/event-dispatcher": "^5.0|^6.0", - "symfony/http-foundation": "^5.3.7|^6.0", + "psr/log": "~1.0", + "symfony/deprecation-contracts": "^2.1", + "symfony/error-handler": "^4.4|^5.0", + "symfony/event-dispatcher": "^5.0", + "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.16" + "symfony/polyfill-php80": "^1.15" }, "conflict": { - "symfony/browser-kit": "<5.4", + "symfony/browser-kit": "<4.4", "symfony/cache": "<5.0", "symfony/config": "<5.0", "symfony/console": "<4.4", - "symfony/dependency-injection": "<5.3", + "symfony/dependency-injection": "<5.1.8", "symfony/doctrine-bridge": "<5.0", "symfony/form": "<5.0", "symfony/http-client": "<5.0", @@ -3196,24 +2717,23 @@ "twig/twig": "<2.13" }, "provide": { - "psr/log-implementation": "1.0|2.0" + "psr/log-implementation": "1.0" }, "require-dev": { "psr/cache": "^1.0|^2.0|^3.0", - "symfony/browser-kit": "^5.4|^6.0", - "symfony/config": "^5.0|^6.0", - "symfony/console": "^4.4|^5.0|^6.0", - "symfony/css-selector": "^4.4|^5.0|^6.0", - "symfony/dependency-injection": "^5.3|^6.0", - "symfony/dom-crawler": "^4.4|^5.0|^6.0", - "symfony/expression-language": "^4.4|^5.0|^6.0", - "symfony/finder": "^4.4|^5.0|^6.0", - "symfony/http-client-contracts": "^1.1|^2|^3", - "symfony/process": "^4.4|^5.0|^6.0", - "symfony/routing": "^4.4|^5.0|^6.0", - "symfony/stopwatch": "^4.4|^5.0|^6.0", - "symfony/translation": "^4.4|^5.0|^6.0", - "symfony/translation-contracts": "^1.1|^2|^3", + "symfony/browser-kit": "^4.4|^5.0", + "symfony/config": "^5.0", + "symfony/console": "^4.4|^5.0", + "symfony/css-selector": "^4.4|^5.0", + "symfony/dependency-injection": "^5.1.8", + "symfony/dom-crawler": "^4.4|^5.0", + "symfony/expression-language": "^4.4|^5.0", + "symfony/finder": "^4.4|^5.0", + "symfony/process": "^4.4|^5.0", + "symfony/routing": "^4.4|^5.0", + "symfony/stopwatch": "^4.4|^5.0", + "symfony/translation": "^4.4|^5.0", + "symfony/translation-contracts": "^1.1|^2", "twig/twig": "^2.13|^3.0.4" }, "suggest": { @@ -3248,7 +2768,7 @@ "description": "Provides a structured process for converting a Request into a Response", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-kernel/tree/v5.4.16" + "source": "https://github.com/symfony/http-kernel/tree/v5.2.9" }, "funding": [ { @@ -3264,43 +2784,42 @@ "type": "tidelift" } ], - "time": "2022-11-28T18:08:58+00:00" + "time": "2021-05-19T12:23:45+00:00" }, { "name": "symfony/mime", - "version": "v5.4.16", + "version": "v5.2.9", "source": { "type": "git", "url": "https://github.com/symfony/mime.git", - "reference": "46eeedb08f0832b1b61a84c612d945fc85ee4734" + "reference": "64258e870f8cc75c3dae986201ea2df58c210b52" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mime/zipball/46eeedb08f0832b1b61a84c612d945fc85ee4734", - "reference": "46eeedb08f0832b1b61a84c612d945fc85ee4734", + "url": "https://api.github.com/repos/symfony/mime/zipball/64258e870f8cc75c3dae986201ea2df58c210b52", + "reference": "64258e870f8cc75c3dae986201ea2df58c210b52", "shasum": "" }, "require": { "php": ">=7.2.5", - "symfony/deprecation-contracts": "^2.1|^3", + "symfony/deprecation-contracts": "^2.1", "symfony/polyfill-intl-idn": "^1.10", "symfony/polyfill-mbstring": "^1.0", - "symfony/polyfill-php80": "^1.16" + "symfony/polyfill-php80": "^1.15" }, "conflict": { "egulias/email-validator": "~3.0.0", "phpdocumentor/reflection-docblock": "<3.2.2", "phpdocumentor/type-resolver": "<1.4.0", - "symfony/mailer": "<4.4", - "symfony/serializer": "<5.4.14|>=6.0,<6.0.14|>=6.1,<6.1.6" + "symfony/mailer": "<4.4" }, "require-dev": { "egulias/email-validator": "^2.1.10|^3.1", "phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0", - "symfony/dependency-injection": "^4.4|^5.0|^6.0", - "symfony/property-access": "^4.4|^5.1|^6.0", - "symfony/property-info": "^4.4|^5.1|^6.0", - "symfony/serializer": "^5.4.14|~6.0.14|^6.1.6" + "symfony/dependency-injection": "^4.4|^5.0", + "symfony/property-access": "^4.4|^5.1", + "symfony/property-info": "^4.4|^5.1", + "symfony/serializer": "^5.2" }, "type": "library", "autoload": { @@ -3332,7 +2851,7 @@ "mime-type" ], "support": { - "source": "https://github.com/symfony/mime/tree/v5.4.16" + "source": "https://github.com/symfony/mime/tree/v5.2.9" }, "funding": [ { @@ -3348,35 +2867,32 @@ "type": "tidelift" } ], - "time": "2022-11-26T16:45:22+00:00" + "time": "2021-05-16T13:07:46+00:00" }, { "name": "symfony/polyfill-ctype", - "version": "v1.27.0", + "version": "v1.22.1", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-ctype.git", - "reference": "5bbc823adecdae860bb64756d639ecfec17b050a" + "reference": "c6c942b1ac76c82448322025e084cadc56048b4e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/5bbc823adecdae860bb64756d639ecfec17b050a", - "reference": "5bbc823adecdae860bb64756d639ecfec17b050a", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/c6c942b1ac76c82448322025e084cadc56048b4e", + "reference": "c6c942b1ac76c82448322025e084cadc56048b4e", "shasum": "" }, "require": { "php": ">=7.1" }, - "provide": { - "ext-ctype": "*" - }, "suggest": { "ext-ctype": "For best performance" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "1.27-dev" + "dev-main": "1.22-dev" }, "thanks": { "name": "symfony/polyfill", @@ -3384,12 +2900,12 @@ } }, "autoload": { - "files": [ - "bootstrap.php" - ], "psr-4": { "Symfony\\Polyfill\\Ctype\\": "" - } + }, + "files": [ + "bootstrap.php" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -3414,7 +2930,7 @@ "portable" ], "support": { - "source": "https://github.com/symfony/polyfill-ctype/tree/v1.27.0" + "source": "https://github.com/symfony/polyfill-ctype/tree/v1.22.1" }, "funding": [ { @@ -3430,35 +2946,32 @@ "type": "tidelift" } ], - "time": "2022-11-03T14:55:06+00:00" + "time": "2021-01-07T16:49:33+00:00" }, { "name": "symfony/polyfill-iconv", - "version": "v1.27.0", + "version": "v1.22.1", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-iconv.git", - "reference": "927013f3aac555983a5059aada98e1907d842695" + "reference": "06fb361659649bcfd6a208a0f1fcaf4e827ad342" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-iconv/zipball/927013f3aac555983a5059aada98e1907d842695", - "reference": "927013f3aac555983a5059aada98e1907d842695", + "url": "https://api.github.com/repos/symfony/polyfill-iconv/zipball/06fb361659649bcfd6a208a0f1fcaf4e827ad342", + "reference": "06fb361659649bcfd6a208a0f1fcaf4e827ad342", "shasum": "" }, "require": { "php": ">=7.1" }, - "provide": { - "ext-iconv": "*" - }, "suggest": { "ext-iconv": "For best performance" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "1.27-dev" + "dev-main": "1.22-dev" }, "thanks": { "name": "symfony/polyfill", @@ -3466,12 +2979,12 @@ } }, "autoload": { - "files": [ - "bootstrap.php" - ], "psr-4": { "Symfony\\Polyfill\\Iconv\\": "" - } + }, + "files": [ + "bootstrap.php" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -3497,7 +3010,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-iconv/tree/v1.27.0" + "source": "https://github.com/symfony/polyfill-iconv/tree/v1.22.1" }, "funding": [ { @@ -3513,20 +3026,20 @@ "type": "tidelift" } ], - "time": "2022-11-03T14:55:06+00:00" + "time": "2021-01-22T09:19:47+00:00" }, { "name": "symfony/polyfill-intl-grapheme", - "version": "v1.27.0", + "version": "v1.22.1", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-grapheme.git", - "reference": "511a08c03c1960e08a883f4cffcacd219b758354" + "reference": "5601e09b69f26c1828b13b6bb87cb07cddba3170" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/511a08c03c1960e08a883f4cffcacd219b758354", - "reference": "511a08c03c1960e08a883f4cffcacd219b758354", + "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/5601e09b69f26c1828b13b6bb87cb07cddba3170", + "reference": "5601e09b69f26c1828b13b6bb87cb07cddba3170", "shasum": "" }, "require": { @@ -3538,7 +3051,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.27-dev" + "dev-main": "1.22-dev" }, "thanks": { "name": "symfony/polyfill", @@ -3546,12 +3059,12 @@ } }, "autoload": { - "files": [ - "bootstrap.php" - ], "psr-4": { "Symfony\\Polyfill\\Intl\\Grapheme\\": "" - } + }, + "files": [ + "bootstrap.php" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -3578,7 +3091,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.27.0" + "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.22.1" }, "funding": [ { @@ -3594,20 +3107,20 @@ "type": "tidelift" } ], - "time": "2022-11-03T14:55:06+00:00" + "time": "2021-01-22T09:19:47+00:00" }, { "name": "symfony/polyfill-intl-idn", - "version": "v1.27.0", + "version": "v1.22.1", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-idn.git", - "reference": "639084e360537a19f9ee352433b84ce831f3d2da" + "reference": "2d63434d922daf7da8dd863e7907e67ee3031483" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/639084e360537a19f9ee352433b84ce831f3d2da", - "reference": "639084e360537a19f9ee352433b84ce831f3d2da", + "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/2d63434d922daf7da8dd863e7907e67ee3031483", + "reference": "2d63434d922daf7da8dd863e7907e67ee3031483", "shasum": "" }, "require": { @@ -3621,7 +3134,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.27-dev" + "dev-main": "1.22-dev" }, "thanks": { "name": "symfony/polyfill", @@ -3629,12 +3142,12 @@ } }, "autoload": { - "files": [ - "bootstrap.php" - ], "psr-4": { "Symfony\\Polyfill\\Intl\\Idn\\": "" - } + }, + "files": [ + "bootstrap.php" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -3665,7 +3178,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.27.0" + "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.22.1" }, "funding": [ { @@ -3681,20 +3194,20 @@ "type": "tidelift" } ], - "time": "2022-11-03T14:55:06+00:00" + "time": "2021-01-22T09:19:47+00:00" }, { "name": "symfony/polyfill-intl-normalizer", - "version": "v1.27.0", + "version": "v1.22.1", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-normalizer.git", - "reference": "19bd1e4fcd5b91116f14d8533c57831ed00571b6" + "reference": "43a0283138253ed1d48d352ab6d0bdb3f809f248" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/19bd1e4fcd5b91116f14d8533c57831ed00571b6", - "reference": "19bd1e4fcd5b91116f14d8533c57831ed00571b6", + "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/43a0283138253ed1d48d352ab6d0bdb3f809f248", + "reference": "43a0283138253ed1d48d352ab6d0bdb3f809f248", "shasum": "" }, "require": { @@ -3706,7 +3219,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.27-dev" + "dev-main": "1.22-dev" }, "thanks": { "name": "symfony/polyfill", @@ -3714,12 +3227,12 @@ } }, "autoload": { - "files": [ - "bootstrap.php" - ], "psr-4": { "Symfony\\Polyfill\\Intl\\Normalizer\\": "" }, + "files": [ + "bootstrap.php" + ], "classmap": [ "Resources/stubs" ] @@ -3749,7 +3262,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.27.0" + "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.22.1" }, "funding": [ { @@ -3765,35 +3278,32 @@ "type": "tidelift" } ], - "time": "2022-11-03T14:55:06+00:00" + "time": "2021-01-22T09:19:47+00:00" }, { "name": "symfony/polyfill-mbstring", - "version": "v1.27.0", + "version": "v1.22.1", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "8ad114f6b39e2c98a8b0e3bd907732c207c2b534" + "reference": "5232de97ee3b75b0360528dae24e73db49566ab1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/8ad114f6b39e2c98a8b0e3bd907732c207c2b534", - "reference": "8ad114f6b39e2c98a8b0e3bd907732c207c2b534", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/5232de97ee3b75b0360528dae24e73db49566ab1", + "reference": "5232de97ee3b75b0360528dae24e73db49566ab1", "shasum": "" }, "require": { "php": ">=7.1" }, - "provide": { - "ext-mbstring": "*" - }, "suggest": { "ext-mbstring": "For best performance" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "1.27-dev" + "dev-main": "1.22-dev" }, "thanks": { "name": "symfony/polyfill", @@ -3801,12 +3311,12 @@ } }, "autoload": { - "files": [ - "bootstrap.php" - ], "psr-4": { "Symfony\\Polyfill\\Mbstring\\": "" - } + }, + "files": [ + "bootstrap.php" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -3832,7 +3342,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.27.0" + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.22.1" }, "funding": [ { @@ -3848,20 +3358,20 @@ "type": "tidelift" } ], - "time": "2022-11-03T14:55:06+00:00" + "time": "2021-01-22T09:19:47+00:00" }, { "name": "symfony/polyfill-php72", - "version": "v1.27.0", + "version": "v1.22.1", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php72.git", - "reference": "869329b1e9894268a8a61dabb69153029b7a8c97" + "reference": "cc6e6f9b39fe8075b3dabfbaf5b5f645ae1340c9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/869329b1e9894268a8a61dabb69153029b7a8c97", - "reference": "869329b1e9894268a8a61dabb69153029b7a8c97", + "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/cc6e6f9b39fe8075b3dabfbaf5b5f645ae1340c9", + "reference": "cc6e6f9b39fe8075b3dabfbaf5b5f645ae1340c9", "shasum": "" }, "require": { @@ -3870,7 +3380,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.27-dev" + "dev-main": "1.22-dev" }, "thanks": { "name": "symfony/polyfill", @@ -3878,12 +3388,12 @@ } }, "autoload": { - "files": [ - "bootstrap.php" - ], "psr-4": { "Symfony\\Polyfill\\Php72\\": "" - } + }, + "files": [ + "bootstrap.php" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -3908,7 +3418,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php72/tree/v1.27.0" + "source": "https://github.com/symfony/polyfill-php72/tree/v1.22.1" }, "funding": [ { @@ -3924,20 +3434,20 @@ "type": "tidelift" } ], - "time": "2022-11-03T14:55:06+00:00" + "time": "2021-01-07T16:49:33+00:00" }, { "name": "symfony/polyfill-php73", - "version": "v1.27.0", + "version": "v1.22.1", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php73.git", - "reference": "9e8ecb5f92152187c4799efd3c96b78ccab18ff9" + "reference": "a678b42e92f86eca04b7fa4c0f6f19d097fb69e2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/9e8ecb5f92152187c4799efd3c96b78ccab18ff9", - "reference": "9e8ecb5f92152187c4799efd3c96b78ccab18ff9", + "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/a678b42e92f86eca04b7fa4c0f6f19d097fb69e2", + "reference": "a678b42e92f86eca04b7fa4c0f6f19d097fb69e2", "shasum": "" }, "require": { @@ -3946,7 +3456,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.27-dev" + "dev-main": "1.22-dev" }, "thanks": { "name": "symfony/polyfill", @@ -3954,12 +3464,12 @@ } }, "autoload": { - "files": [ - "bootstrap.php" - ], "psr-4": { "Symfony\\Polyfill\\Php73\\": "" }, + "files": [ + "bootstrap.php" + ], "classmap": [ "Resources/stubs" ] @@ -3987,7 +3497,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php73/tree/v1.27.0" + "source": "https://github.com/symfony/polyfill-php73/tree/v1.22.1" }, "funding": [ { @@ -4003,20 +3513,20 @@ "type": "tidelift" } ], - "time": "2022-11-03T14:55:06+00:00" + "time": "2021-01-07T16:49:33+00:00" }, { "name": "symfony/polyfill-php80", - "version": "v1.27.0", + "version": "v1.22.1", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php80.git", - "reference": "7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936" + "reference": "dc3063ba22c2a1fd2f45ed856374d79114998f91" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936", - "reference": "7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/dc3063ba22c2a1fd2f45ed856374d79114998f91", + "reference": "dc3063ba22c2a1fd2f45ed856374d79114998f91", "shasum": "" }, "require": { @@ -4025,7 +3535,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.27-dev" + "dev-main": "1.22-dev" }, "thanks": { "name": "symfony/polyfill", @@ -4033,12 +3543,12 @@ } }, "autoload": { - "files": [ - "bootstrap.php" - ], "psr-4": { "Symfony\\Polyfill\\Php80\\": "" }, + "files": [ + "bootstrap.php" + ], "classmap": [ "Resources/stubs" ] @@ -4070,86 +3580,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php80/tree/v1.27.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": "2022-11-03T14:55:06+00:00" - }, - { - "name": "symfony/polyfill-php81", - "version": "v1.27.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-php81.git", - "reference": "707403074c8ea6e2edaf8794b0157a0bfa52157a" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/707403074c8ea6e2edaf8794b0157a0bfa52157a", - "reference": "707403074c8ea6e2edaf8794b0157a0bfa52157a", - "shasum": "" - }, - "require": { - "php": ">=7.1" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.27-dev" - }, - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } - }, - "autoload": { - "files": [ - "bootstrap.php" - ], - "psr-4": { - "Symfony\\Polyfill\\Php81\\": "" - }, - "classmap": [ - "Resources/stubs" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill backporting some PHP 8.1+ features to lower PHP versions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "polyfill", - "portable", - "shim" - ], - "support": { - "source": "https://github.com/symfony/polyfill-php81/tree/v1.27.0" + "source": "https://github.com/symfony/polyfill-php80/tree/v1.22.1" }, "funding": [ { @@ -4165,25 +3596,25 @@ "type": "tidelift" } ], - "time": "2022-11-03T14:55:06+00:00" + "time": "2021-01-07T16:49:33+00:00" }, { "name": "symfony/process", - "version": "v5.4.11", + "version": "v5.2.7", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "6e75fe6874cbc7e4773d049616ab450eff537bf1" + "reference": "98cb8eeb72e55d4196dd1e36f1f16e7b3a9a088e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/6e75fe6874cbc7e4773d049616ab450eff537bf1", - "reference": "6e75fe6874cbc7e4773d049616ab450eff537bf1", + "url": "https://api.github.com/repos/symfony/process/zipball/98cb8eeb72e55d4196dd1e36f1f16e7b3a9a088e", + "reference": "98cb8eeb72e55d4196dd1e36f1f16e7b3a9a088e", "shasum": "" }, "require": { "php": ">=7.2.5", - "symfony/polyfill-php80": "^1.16" + "symfony/polyfill-php80": "^1.15" }, "type": "library", "autoload": { @@ -4211,7 +3642,7 @@ "description": "Executes commands in sub-processes", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/process/tree/v5.4.11" + "source": "https://github.com/symfony/process/tree/v5.3.0-BETA1" }, "funding": [ { @@ -4227,41 +3658,40 @@ "type": "tidelift" } ], - "time": "2022-06-27T16:58:25+00:00" + "time": "2021-04-08T10:27:02+00:00" }, { "name": "symfony/routing", - "version": "v5.4.15", + "version": "v5.2.9", "source": { "type": "git", "url": "https://github.com/symfony/routing.git", - "reference": "5c9b129efe9abce9470e384bf65d8a7e262eee69" + "reference": "4a7b2bf5e1221be1902b6853743a9bb317f6925e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/5c9b129efe9abce9470e384bf65d8a7e262eee69", - "reference": "5c9b129efe9abce9470e384bf65d8a7e262eee69", + "url": "https://api.github.com/repos/symfony/routing/zipball/4a7b2bf5e1221be1902b6853743a9bb317f6925e", + "reference": "4a7b2bf5e1221be1902b6853743a9bb317f6925e", "shasum": "" }, "require": { "php": ">=7.2.5", - "symfony/deprecation-contracts": "^2.1|^3", - "symfony/polyfill-php80": "^1.16" + "symfony/deprecation-contracts": "^2.1", + "symfony/polyfill-php80": "^1.15" }, "conflict": { - "doctrine/annotations": "<1.12", - "symfony/config": "<5.3", + "symfony/config": "<5.0", "symfony/dependency-injection": "<4.4", "symfony/yaml": "<4.4" }, "require-dev": { - "doctrine/annotations": "^1.12", - "psr/log": "^1|^2|^3", - "symfony/config": "^5.3|^6.0", - "symfony/dependency-injection": "^4.4|^5.0|^6.0", - "symfony/expression-language": "^4.4|^5.0|^6.0", - "symfony/http-foundation": "^4.4|^5.0|^6.0", - "symfony/yaml": "^4.4|^5.0|^6.0" + "doctrine/annotations": "^1.10.4", + "psr/log": "~1.0", + "symfony/config": "^5.0", + "symfony/dependency-injection": "^4.4|^5.0", + "symfony/expression-language": "^4.4|^5.0", + "symfony/http-foundation": "^4.4|^5.0", + "symfony/yaml": "^4.4|^5.0" }, "suggest": { "symfony/config": "For using the all-in-one router or any loader", @@ -4301,7 +3731,7 @@ "url" ], "support": { - "source": "https://github.com/symfony/routing/tree/v5.4.15" + "source": "https://github.com/symfony/routing/tree/v5.2.9" }, "funding": [ { @@ -4317,29 +3747,25 @@ "type": "tidelift" } ], - "time": "2022-10-13T14:10:41+00:00" + "time": "2021-05-16T13:07:46+00:00" }, { "name": "symfony/service-contracts", - "version": "v2.5.2", + "version": "v2.4.0", "source": { "type": "git", "url": "https://github.com/symfony/service-contracts.git", - "reference": "4b426aac47d6427cc1a1d0f7e2ac724627f5966c" + "reference": "f040a30e04b57fbcc9c6cbcf4dbaa96bd318b9bb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/service-contracts/zipball/4b426aac47d6427cc1a1d0f7e2ac724627f5966c", - "reference": "4b426aac47d6427cc1a1d0f7e2ac724627f5966c", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/f040a30e04b57fbcc9c6cbcf4dbaa96bd318b9bb", + "reference": "f040a30e04b57fbcc9c6cbcf4dbaa96bd318b9bb", "shasum": "" }, "require": { "php": ">=7.2.5", - "psr/container": "^1.1", - "symfony/deprecation-contracts": "^2.1|^3" - }, - "conflict": { - "ext-psr": "<1.1|>=2" + "psr/container": "^1.1" }, "suggest": { "symfony/service-implementation": "" @@ -4347,7 +3773,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "2.5-dev" + "dev-main": "2.4-dev" }, "thanks": { "name": "symfony/contracts", @@ -4384,7 +3810,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/service-contracts/tree/v2.5.2" + "source": "https://github.com/symfony/service-contracts/tree/v2.4.0" }, "funding": [ { @@ -4400,20 +3826,20 @@ "type": "tidelift" } ], - "time": "2022-05-30T19:17:29+00:00" + "time": "2021-04-01T10:43:52+00:00" }, { "name": "symfony/string", - "version": "v5.4.15", + "version": "v5.2.8", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "571334ce9f687e3e6af72db4d3b2a9431e4fd9ed" + "reference": "01b35eb64cac8467c3f94cd0ce2d0d376bb7d1db" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/571334ce9f687e3e6af72db4d3b2a9431e4fd9ed", - "reference": "571334ce9f687e3e6af72db4d3b2a9431e4fd9ed", + "url": "https://api.github.com/repos/symfony/string/zipball/01b35eb64cac8467c3f94cd0ce2d0d376bb7d1db", + "reference": "01b35eb64cac8467c3f94cd0ce2d0d376bb7d1db", "shasum": "" }, "require": { @@ -4424,23 +3850,20 @@ "symfony/polyfill-mbstring": "~1.0", "symfony/polyfill-php80": "~1.15" }, - "conflict": { - "symfony/translation-contracts": ">=3.0" - }, "require-dev": { - "symfony/error-handler": "^4.4|^5.0|^6.0", - "symfony/http-client": "^4.4|^5.0|^6.0", + "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|^6.0" + "symfony/var-exporter": "^4.4|^5.0" }, "type": "library", "autoload": { - "files": [ - "Resources/functions.php" - ], "psr-4": { "Symfony\\Component\\String\\": "" }, + "files": [ + "Resources/functions.php" + ], "exclude-from-classmap": [ "/Tests/" ] @@ -4470,7 +3893,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v5.4.15" + "source": "https://github.com/symfony/string/tree/v5.2.8" }, "funding": [ { @@ -4486,32 +3909,30 @@ "type": "tidelift" } ], - "time": "2022-10-05T15:16:54+00:00" + "time": "2021-05-10T14:56:10+00:00" }, { "name": "symfony/translation", - "version": "v5.4.14", + "version": "v5.2.9", "source": { "type": "git", "url": "https://github.com/symfony/translation.git", - "reference": "f0ed07675863aa6e3939df8b1bc879450b585cab" + "reference": "61af68dba333e2d376a325a29c2a3f2a605b4876" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation/zipball/f0ed07675863aa6e3939df8b1bc879450b585cab", - "reference": "f0ed07675863aa6e3939df8b1bc879450b585cab", + "url": "https://api.github.com/repos/symfony/translation/zipball/61af68dba333e2d376a325a29c2a3f2a605b4876", + "reference": "61af68dba333e2d376a325a29c2a3f2a605b4876", "shasum": "" }, "require": { "php": ">=7.2.5", - "symfony/deprecation-contracts": "^2.1|^3", "symfony/polyfill-mbstring": "~1.0", - "symfony/polyfill-php80": "^1.16", + "symfony/polyfill-php80": "^1.15", "symfony/translation-contracts": "^2.3" }, "conflict": { "symfony/config": "<4.4", - "symfony/console": "<5.3", "symfony/dependency-injection": "<5.0", "symfony/http-kernel": "<5.0", "symfony/twig-bundle": "<5.0", @@ -4521,17 +3942,15 @@ "symfony/translation-implementation": "2.3" }, "require-dev": { - "psr/log": "^1|^2|^3", - "symfony/config": "^4.4|^5.0|^6.0", - "symfony/console": "^5.4|^6.0", - "symfony/dependency-injection": "^5.0|^6.0", - "symfony/finder": "^4.4|^5.0|^6.0", - "symfony/http-client-contracts": "^1.1|^2.0|^3.0", - "symfony/http-kernel": "^5.0|^6.0", - "symfony/intl": "^4.4|^5.0|^6.0", - "symfony/polyfill-intl-icu": "^1.21", - "symfony/service-contracts": "^1.1.2|^2|^3", - "symfony/yaml": "^4.4|^5.0|^6.0" + "psr/log": "~1.0", + "symfony/config": "^4.4|^5.0", + "symfony/console": "^4.4|^5.0", + "symfony/dependency-injection": "^5.0", + "symfony/finder": "^4.4|^5.0", + "symfony/http-kernel": "^5.0", + "symfony/intl": "^4.4|^5.0", + "symfony/service-contracts": "^1.1.2|^2", + "symfony/yaml": "^4.4|^5.0" }, "suggest": { "psr/log-implementation": "To use logging capability in translator", @@ -4567,7 +3986,7 @@ "description": "Provides tools to internationalize your application", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/translation/tree/v5.4.14" + "source": "https://github.com/symfony/translation/tree/v5.2.9" }, "funding": [ { @@ -4583,20 +4002,20 @@ "type": "tidelift" } ], - "time": "2022-10-07T08:01:20+00:00" + "time": "2021-05-16T13:07:46+00:00" }, { "name": "symfony/translation-contracts", - "version": "v2.5.2", + "version": "v2.4.0", "source": { "type": "git", "url": "https://github.com/symfony/translation-contracts.git", - "reference": "136b19dd05cdf0709db6537d058bcab6dd6e2dbe" + "reference": "95c812666f3e91db75385749fe219c5e494c7f95" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/136b19dd05cdf0709db6537d058bcab6dd6e2dbe", - "reference": "136b19dd05cdf0709db6537d058bcab6dd6e2dbe", + "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/95c812666f3e91db75385749fe219c5e494c7f95", + "reference": "95c812666f3e91db75385749fe219c5e494c7f95", "shasum": "" }, "require": { @@ -4608,7 +4027,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "2.5-dev" + "dev-main": "2.4-dev" }, "thanks": { "name": "symfony/contracts", @@ -4645,7 +4064,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/translation-contracts/tree/v2.5.2" + "source": "https://github.com/symfony/translation-contracts/tree/v2.4.0" }, "funding": [ { @@ -4661,26 +4080,26 @@ "type": "tidelift" } ], - "time": "2022-06-27T16:58:25+00:00" + "time": "2021-03-23T23:28:01+00:00" }, { "name": "symfony/var-dumper", - "version": "v5.4.14", + "version": "v5.2.8", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "6894d06145fefebd9a4c7272baa026a1c394a430" + "reference": "d693200a73fae179d27f8f1b16b4faf3e8569eba" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/6894d06145fefebd9a4c7272baa026a1c394a430", - "reference": "6894d06145fefebd9a4c7272baa026a1c394a430", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/d693200a73fae179d27f8f1b16b4faf3e8569eba", + "reference": "d693200a73fae179d27f8f1b16b4faf3e8569eba", "shasum": "" }, "require": { "php": ">=7.2.5", "symfony/polyfill-mbstring": "~1.0", - "symfony/polyfill-php80": "^1.16" + "symfony/polyfill-php80": "^1.15" }, "conflict": { "phpunit/phpunit": "<5.4.3", @@ -4688,9 +4107,8 @@ }, "require-dev": { "ext-iconv": "*", - "symfony/console": "^4.4|^5.0|^6.0", - "symfony/process": "^4.4|^5.0|^6.0", - "symfony/uid": "^5.1|^6.0", + "symfony/console": "^4.4|^5.0", + "symfony/process": "^4.4|^5.0", "twig/twig": "^2.13|^3.0.4" }, "suggest": { @@ -4734,7 +4152,7 @@ "dump" ], "support": { - "source": "https://github.com/symfony/var-dumper/tree/v5.4.14" + "source": "https://github.com/symfony/var-dumper/tree/v5.2.8" }, "funding": [ { @@ -4750,30 +4168,30 @@ "type": "tidelift" } ], - "time": "2022-10-07T08:01:20+00:00" + "time": "2021-05-07T13:42:21+00:00" }, { "name": "tijsverkoyen/css-to-inline-styles", - "version": "2.2.5", + "version": "2.2.3", "source": { "type": "git", "url": "https://github.com/tijsverkoyen/CssToInlineStyles.git", - "reference": "4348a3a06651827a27d989ad1d13efec6bb49b19" + "reference": "b43b05cf43c1b6d849478965062b6ef73e223bb5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/tijsverkoyen/CssToInlineStyles/zipball/4348a3a06651827a27d989ad1d13efec6bb49b19", - "reference": "4348a3a06651827a27d989ad1d13efec6bb49b19", + "url": "https://api.github.com/repos/tijsverkoyen/CssToInlineStyles/zipball/b43b05cf43c1b6d849478965062b6ef73e223bb5", + "reference": "b43b05cf43c1b6d849478965062b6ef73e223bb5", "shasum": "" }, "require": { "ext-dom": "*", "ext-libxml": "*", "php": "^5.5 || ^7.0 || ^8.0", - "symfony/css-selector": "^2.7 || ^3.0 || ^4.0 || ^5.0 || ^6.0" + "symfony/css-selector": "^2.7 || ^3.0 || ^4.0 || ^5.0" }, "require-dev": { - "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0 || ^7.5 || ^8.5.21 || ^9.5.10" + "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0 || ^7.5" }, "type": "library", "extra": { @@ -4801,49 +4219,45 @@ "homepage": "https://github.com/tijsverkoyen/CssToInlineStyles", "support": { "issues": "https://github.com/tijsverkoyen/CssToInlineStyles/issues", - "source": "https://github.com/tijsverkoyen/CssToInlineStyles/tree/2.2.5" + "source": "https://github.com/tijsverkoyen/CssToInlineStyles/tree/2.2.3" }, - "time": "2022-09-12T13:28:28+00:00" + "time": "2020-07-13T06:12:54+00:00" }, { "name": "vlucas/phpdotenv", - "version": "v5.5.0", + "version": "v5.3.0", "source": { "type": "git", "url": "https://github.com/vlucas/phpdotenv.git", - "reference": "1a7ea2afc49c3ee6d87061f5a233e3a035d0eae7" + "reference": "b3eac5c7ac896e52deab4a99068e3f4ab12d9e56" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/1a7ea2afc49c3ee6d87061f5a233e3a035d0eae7", - "reference": "1a7ea2afc49c3ee6d87061f5a233e3a035d0eae7", + "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/b3eac5c7ac896e52deab4a99068e3f4ab12d9e56", + "reference": "b3eac5c7ac896e52deab4a99068e3f4ab12d9e56", "shasum": "" }, "require": { "ext-pcre": "*", - "graham-campbell/result-type": "^1.0.2", + "graham-campbell/result-type": "^1.0.1", "php": "^7.1.3 || ^8.0", - "phpoption/phpoption": "^1.8", - "symfony/polyfill-ctype": "^1.23", - "symfony/polyfill-mbstring": "^1.23.1", - "symfony/polyfill-php80": "^1.23.1" + "phpoption/phpoption": "^1.7.4", + "symfony/polyfill-ctype": "^1.17", + "symfony/polyfill-mbstring": "^1.17", + "symfony/polyfill-php80": "^1.17" }, "require-dev": { "bamarni/composer-bin-plugin": "^1.4.1", "ext-filter": "*", - "phpunit/phpunit": "^7.5.20 || ^8.5.30 || ^9.5.25" + "phpunit/phpunit": "^7.5.20 || ^8.5.14 || ^9.5.1" }, "suggest": { "ext-filter": "Required to use the boolean validator." }, "type": "library", "extra": { - "bamarni-bin": { - "bin-links": true, - "forward-command": true - }, "branch-alias": { - "dev-master": "5.5-dev" + "dev-master": "5.3-dev" } }, "autoload": { @@ -4858,13 +4272,13 @@ "authors": [ { "name": "Graham Campbell", - "email": "hello@gjcampbell.co.uk", - "homepage": "https://github.com/GrahamCampbell" + "email": "graham@alt-three.com", + "homepage": "https://gjcampbell.co.uk/" }, { "name": "Vance Lucas", "email": "vance@vancelucas.com", - "homepage": "https://github.com/vlucas" + "homepage": "https://vancelucas.com/" } ], "description": "Loads environment variables from `.env` to `getenv()`, `$_ENV` and `$_SERVER` automagically.", @@ -4875,7 +4289,7 @@ ], "support": { "issues": "https://github.com/vlucas/phpdotenv/issues", - "source": "https://github.com/vlucas/phpdotenv/tree/v5.5.0" + "source": "https://github.com/vlucas/phpdotenv/tree/v5.3.0" }, "funding": [ { @@ -4887,20 +4301,20 @@ "type": "tidelift" } ], - "time": "2022-10-16T01:01:54+00:00" + "time": "2021-01-20T15:23:13+00:00" }, { "name": "voku/portable-ascii", - "version": "1.6.1", + "version": "1.5.6", "source": { "type": "git", "url": "https://github.com/voku/portable-ascii.git", - "reference": "87337c91b9dfacee02452244ee14ab3c43bc485a" + "reference": "80953678b19901e5165c56752d087fc11526017c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/voku/portable-ascii/zipball/87337c91b9dfacee02452244ee14ab3c43bc485a", - "reference": "87337c91b9dfacee02452244ee14ab3c43bc485a", + "url": "https://api.github.com/repos/voku/portable-ascii/zipball/80953678b19901e5165c56752d087fc11526017c", + "reference": "80953678b19901e5165c56752d087fc11526017c", "shasum": "" }, "require": { @@ -4937,7 +4351,7 @@ ], "support": { "issues": "https://github.com/voku/portable-ascii/issues", - "source": "https://github.com/voku/portable-ascii/tree/1.6.1" + "source": "https://github.com/voku/portable-ascii/tree/1.5.6" }, "funding": [ { @@ -4961,25 +4375,25 @@ "type": "tidelift" } ], - "time": "2022-01-24T18:55:24+00:00" + "time": "2020-11-12T00:07:28+00:00" }, { "name": "webmozart/assert", - "version": "1.11.0", + "version": "1.10.0", "source": { "type": "git", "url": "https://github.com/webmozarts/assert.git", - "reference": "11cb2199493b2f8a3b53e7f19068fc6aac760991" + "reference": "6964c76c7804814a842473e0c8fd15bab0f18e25" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/webmozarts/assert/zipball/11cb2199493b2f8a3b53e7f19068fc6aac760991", - "reference": "11cb2199493b2f8a3b53e7f19068fc6aac760991", + "url": "https://api.github.com/repos/webmozarts/assert/zipball/6964c76c7804814a842473e0c8fd15bab0f18e25", + "reference": "6964c76c7804814a842473e0c8fd15bab0f18e25", "shasum": "" }, "require": { - "ext-ctype": "*", - "php": "^7.2 || ^8.0" + "php": "^7.2 || ^8.0", + "symfony/polyfill-ctype": "^1.8" }, "conflict": { "phpstan/phpstan": "<0.12.20", @@ -4992,532 +4406,11 @@ "extra": { "branch-alias": { "dev-master": "1.10-dev" - } - }, - "autoload": { - "psr-4": { - "Webmozart\\Assert\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Bernhard Schussek", - "email": "bschussek@gmail.com" - } - ], - "description": "Assertions to validate method input/output with nice error messages.", - "keywords": [ - "assert", - "check", - "validate" - ], - "support": { - "issues": "https://github.com/webmozarts/assert/issues", - "source": "https://github.com/webmozarts/assert/tree/1.11.0" - }, - "time": "2022-06-03T18:03:27+00:00" - } - ], - "packages-dev": [ - { - "name": "barryvdh/laravel-ide-helper", - "version": "v2.12.3", - "source": { - "type": "git", - "url": "https://github.com/barryvdh/laravel-ide-helper.git", - "reference": "3ba1e2573b38f72107b8aacc4ee177fcab30a550" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/barryvdh/laravel-ide-helper/zipball/3ba1e2573b38f72107b8aacc4ee177fcab30a550", - "reference": "3ba1e2573b38f72107b8aacc4ee177fcab30a550", - "shasum": "" - }, - "require": { - "barryvdh/reflection-docblock": "^2.0.6", - "composer/pcre": "^1 || ^2 || ^3", - "doctrine/dbal": "^2.6 || ^3", - "ext-json": "*", - "illuminate/console": "^8 || ^9", - "illuminate/filesystem": "^8 || ^9", - "illuminate/support": "^8 || ^9", - "nikic/php-parser": "^4.7", - "php": "^7.3 || ^8.0", - "phpdocumentor/type-resolver": "^1.1.0" - }, - "require-dev": { - "ext-pdo_sqlite": "*", - "friendsofphp/php-cs-fixer": "^2", - "illuminate/config": "^8 || ^9", - "illuminate/view": "^8 || ^9", - "mockery/mockery": "^1.4", - "orchestra/testbench": "^6 || ^7", - "phpunit/phpunit": "^8.5 || ^9", - "spatie/phpunit-snapshot-assertions": "^3 || ^4", - "vimeo/psalm": "^3.12" - }, - "suggest": { - "illuminate/events": "Required for automatic helper generation (^6|^7|^8|^9)." - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.12-dev" - }, - "laravel": { - "providers": [ - "Barryvdh\\LaravelIdeHelper\\IdeHelperServiceProvider" - ] - } - }, - "autoload": { - "psr-4": { - "Barryvdh\\LaravelIdeHelper\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Barry vd. Heuvel", - "email": "barryvdh@gmail.com" - } - ], - "description": "Laravel IDE Helper, generates correct PHPDocs for all Facade classes, to improve auto-completion.", - "keywords": [ - "autocomplete", - "codeintel", - "helper", - "ide", - "laravel", - "netbeans", - "phpdoc", - "phpstorm", - "sublime" - ], - "support": { - "issues": "https://github.com/barryvdh/laravel-ide-helper/issues", - "source": "https://github.com/barryvdh/laravel-ide-helper/tree/v2.12.3" - }, - "funding": [ - { - "url": "https://fruitcake.nl", - "type": "custom" - }, - { - "url": "https://github.com/barryvdh", - "type": "github" - } - ], - "time": "2022-03-06T14:33:42+00:00" - }, - { - "name": "barryvdh/reflection-docblock", - "version": "v2.1.0", - "source": { - "type": "git", - "url": "https://github.com/barryvdh/ReflectionDocBlock.git", - "reference": "bf44b757feb8ba1734659029357646466ded673e" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/barryvdh/ReflectionDocBlock/zipball/bf44b757feb8ba1734659029357646466ded673e", - "reference": "bf44b757feb8ba1734659029357646466ded673e", - "shasum": "" - }, - "require": { - "php": ">=5.3.3" - }, - "require-dev": { - "phpunit/phpunit": "^8.5.14|^9" - }, - "suggest": { - "dflydev/markdown": "~1.0", - "erusev/parsedown": "~1.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0.x-dev" - } - }, - "autoload": { - "psr-0": { - "Barryvdh": [ - "src/" - ] - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Mike van Riel", - "email": "mike.vanriel@naenius.com" - } - ], - "support": { - "source": "https://github.com/barryvdh/ReflectionDocBlock/tree/v2.1.0" - }, - "time": "2022-10-31T15:35:43+00:00" - }, - { - "name": "composer/pcre", - "version": "3.1.0", - "source": { - "type": "git", - "url": "https://github.com/composer/pcre.git", - "reference": "4bff79ddd77851fe3cdd11616ed3f92841ba5bd2" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/composer/pcre/zipball/4bff79ddd77851fe3cdd11616ed3f92841ba5bd2", - "reference": "4bff79ddd77851fe3cdd11616ed3f92841ba5bd2", - "shasum": "" - }, - "require": { - "php": "^7.4 || ^8.0" - }, - "require-dev": { - "phpstan/phpstan": "^1.3", - "phpstan/phpstan-strict-rules": "^1.1", - "symfony/phpunit-bridge": "^5" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "3.x-dev" - } - }, - "autoload": { - "psr-4": { - "Composer\\Pcre\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Jordi Boggiano", - "email": "j.boggiano@seld.be", - "homepage": "http://seld.be" - } - ], - "description": "PCRE wrapping library that offers type-safe preg_* replacements.", - "keywords": [ - "PCRE", - "preg", - "regex", - "regular expression" - ], - "support": { - "issues": "https://github.com/composer/pcre/issues", - "source": "https://github.com/composer/pcre/tree/3.1.0" - }, - "funding": [ - { - "url": "https://packagist.com", - "type": "custom" - }, - { - "url": "https://github.com/composer", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/composer/composer", - "type": "tidelift" - } - ], - "time": "2022-11-17T09:50:14+00:00" - }, - { - "name": "doctrine/cache", - "version": "2.2.0", - "source": { - "type": "git", - "url": "https://github.com/doctrine/cache.git", - "reference": "1ca8f21980e770095a31456042471a57bc4c68fb" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/cache/zipball/1ca8f21980e770095a31456042471a57bc4c68fb", - "reference": "1ca8f21980e770095a31456042471a57bc4c68fb", - "shasum": "" - }, - "require": { - "php": "~7.1 || ^8.0" - }, - "conflict": { - "doctrine/common": ">2.2,<2.4" - }, - "require-dev": { - "cache/integration-tests": "dev-master", - "doctrine/coding-standard": "^9", - "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", - "psr/cache": "^1.0 || ^2.0 || ^3.0", - "symfony/cache": "^4.4 || ^5.4 || ^6", - "symfony/var-exporter": "^4.4 || ^5.4 || ^6" - }, - "type": "library", - "autoload": { - "psr-4": { - "Doctrine\\Common\\Cache\\": "lib/Doctrine/Common/Cache" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Guilherme Blanco", - "email": "guilhermeblanco@gmail.com" - }, - { - "name": "Roman Borschel", - "email": "roman@code-factory.org" - }, - { - "name": "Benjamin Eberlei", - "email": "kontakt@beberlei.de" - }, - { - "name": "Jonathan Wage", - "email": "jonwage@gmail.com" - }, - { - "name": "Johannes Schmitt", - "email": "schmittjoh@gmail.com" - } - ], - "description": "PHP Doctrine Cache library is a popular cache implementation that supports many different drivers such as redis, memcache, apc, mongodb and others.", - "homepage": "https://www.doctrine-project.org/projects/cache.html", - "keywords": [ - "abstraction", - "apcu", - "cache", - "caching", - "couchdb", - "memcached", - "php", - "redis", - "xcache" - ], - "support": { - "issues": "https://github.com/doctrine/cache/issues", - "source": "https://github.com/doctrine/cache/tree/2.2.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%2Fcache", - "type": "tidelift" - } - ], - "time": "2022-05-20T20:07:39+00:00" - }, - { - "name": "doctrine/dbal", - "version": "3.5.1", - "source": { - "type": "git", - "url": "https://github.com/doctrine/dbal.git", - "reference": "f38ee8aaca2d58ee88653cb34a6a3880c23f38a5" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/dbal/zipball/f38ee8aaca2d58ee88653cb34a6a3880c23f38a5", - "reference": "f38ee8aaca2d58ee88653cb34a6a3880c23f38a5", - "shasum": "" - }, - "require": { - "composer-runtime-api": "^2", - "doctrine/cache": "^1.11|^2.0", - "doctrine/deprecations": "^0.5.3|^1", - "doctrine/event-manager": "^1|^2", - "php": "^7.4 || ^8.0", - "psr/cache": "^1|^2|^3", - "psr/log": "^1|^2|^3" - }, - "require-dev": { - "doctrine/coding-standard": "10.0.0", - "jetbrains/phpstorm-stubs": "2022.2", - "phpstan/phpstan": "1.8.10", - "phpstan/phpstan-strict-rules": "^1.4", - "phpunit/phpunit": "9.5.25", - "psalm/plugin-phpunit": "0.17.0", - "squizlabs/php_codesniffer": "3.7.1", - "symfony/cache": "^5.4|^6.0", - "symfony/console": "^4.4|^5.4|^6.0", - "vimeo/psalm": "4.29.0" - }, - "suggest": { - "symfony/console": "For helpful console commands such as SQL execution and import of files." - }, - "bin": [ - "bin/doctrine-dbal" - ], - "type": "library", - "autoload": { - "psr-4": { - "Doctrine\\DBAL\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Guilherme Blanco", - "email": "guilhermeblanco@gmail.com" - }, - { - "name": "Roman Borschel", - "email": "roman@code-factory.org" - }, - { - "name": "Benjamin Eberlei", - "email": "kontakt@beberlei.de" - }, - { - "name": "Jonathan Wage", - "email": "jonwage@gmail.com" - } - ], - "description": "Powerful PHP database abstraction layer (DBAL) with many features for database schema introspection and management.", - "homepage": "https://www.doctrine-project.org/projects/dbal.html", - "keywords": [ - "abstraction", - "database", - "db2", - "dbal", - "mariadb", - "mssql", - "mysql", - "oci8", - "oracle", - "pdo", - "pgsql", - "postgresql", - "queryobject", - "sasql", - "sql", - "sqlite", - "sqlserver", - "sqlsrv" - ], - "support": { - "issues": "https://github.com/doctrine/dbal/issues", - "source": "https://github.com/doctrine/dbal/tree/3.5.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%2Fdbal", - "type": "tidelift" - } - ], - "time": "2022-10-24T07:26:18+00:00" - }, - { - "name": "doctrine/deprecations", - "version": "v1.0.0", - "source": { - "type": "git", - "url": "https://github.com/doctrine/deprecations.git", - "reference": "0e2a4f1f8cdfc7a92ec3b01c9334898c806b30de" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/deprecations/zipball/0e2a4f1f8cdfc7a92ec3b01c9334898c806b30de", - "reference": "0e2a4f1f8cdfc7a92ec3b01c9334898c806b30de", - "shasum": "" - }, - "require": { - "php": "^7.1|^8.0" - }, - "require-dev": { - "doctrine/coding-standard": "^9", - "phpunit/phpunit": "^7.5|^8.5|^9.5", - "psr/log": "^1|^2|^3" - }, - "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/v1.0.0" - }, - "time": "2022-05-02T15:47:09+00:00" - }, - { - "name": "doctrine/event-manager", - "version": "1.2.0", - "source": { - "type": "git", - "url": "https://github.com/doctrine/event-manager.git", - "reference": "95aa4cb529f1e96576f3fda9f5705ada4056a520" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/event-manager/zipball/95aa4cb529f1e96576f3fda9f5705ada4056a520", - "reference": "95aa4cb529f1e96576f3fda9f5705ada4056a520", - "shasum": "" - }, - "require": { - "doctrine/deprecations": "^0.5.3 || ^1", - "php": "^7.1 || ^8.0" - }, - "conflict": { - "doctrine/common": "<2.9" - }, - "require-dev": { - "doctrine/coding-standard": "^9 || ^10", - "phpstan/phpstan": "~1.4.10 || ^1.8.8", - "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", - "vimeo/psalm": "^4.24" + } }, - "type": "library", "autoload": { "psr-4": { - "Doctrine\\Common\\": "src" + "Webmozart\\Assert\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -5526,85 +4419,49 @@ ], "authors": [ { - "name": "Guilherme Blanco", - "email": "guilhermeblanco@gmail.com" - }, - { - "name": "Roman Borschel", - "email": "roman@code-factory.org" - }, - { - "name": "Benjamin Eberlei", - "email": "kontakt@beberlei.de" - }, - { - "name": "Jonathan Wage", - "email": "jonwage@gmail.com" - }, - { - "name": "Johannes Schmitt", - "email": "schmittjoh@gmail.com" - }, - { - "name": "Marco Pivetta", - "email": "ocramius@gmail.com" + "name": "Bernhard Schussek", + "email": "bschussek@gmail.com" } ], - "description": "The Doctrine Event Manager is a simple PHP event system that was built to be used with the various Doctrine projects.", - "homepage": "https://www.doctrine-project.org/projects/event-manager.html", + "description": "Assertions to validate method input/output with nice error messages.", "keywords": [ - "event", - "event dispatcher", - "event manager", - "event system", - "events" + "assert", + "check", + "validate" ], "support": { - "issues": "https://github.com/doctrine/event-manager/issues", - "source": "https://github.com/doctrine/event-manager/tree/1.2.0" + "issues": "https://github.com/webmozarts/assert/issues", + "source": "https://github.com/webmozarts/assert/tree/1.10.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%2Fevent-manager", - "type": "tidelift" - } - ], - "time": "2022-10-12T20:51:15+00:00" - }, + "time": "2021-03-09T10:59:23+00:00" + } + ], + "packages-dev": [ { "name": "doctrine/instantiator", - "version": "1.4.1", + "version": "1.4.0", "source": { "type": "git", "url": "https://github.com/doctrine/instantiator.git", - "reference": "10dcfce151b967d20fde1b34ae6640712c3891bc" + "reference": "d56bf6102915de5702778fe20f2de3b2fe570b5b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/instantiator/zipball/10dcfce151b967d20fde1b34ae6640712c3891bc", - "reference": "10dcfce151b967d20fde1b34ae6640712c3891bc", + "url": "https://api.github.com/repos/doctrine/instantiator/zipball/d56bf6102915de5702778fe20f2de3b2fe570b5b", + "reference": "d56bf6102915de5702778fe20f2de3b2fe570b5b", "shasum": "" }, "require": { "php": "^7.1 || ^8.0" }, "require-dev": { - "doctrine/coding-standard": "^9", + "doctrine/coding-standard": "^8.0", "ext-pdo": "*", "ext-phar": "*", - "phpbench/phpbench": "^0.16 || ^1", - "phpstan/phpstan": "^1.4", - "phpstan/phpstan-phpunit": "^1", - "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", - "vimeo/psalm": "^4.22" + "phpbench/phpbench": "^0.13 || 1.0.0-alpha2", + "phpstan/phpstan": "^0.12", + "phpstan/phpstan-phpunit": "^0.12", + "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0" }, "type": "library", "autoload": { @@ -5631,7 +4488,7 @@ ], "support": { "issues": "https://github.com/doctrine/instantiator/issues", - "source": "https://github.com/doctrine/instantiator/tree/1.4.1" + "source": "https://github.com/doctrine/instantiator/tree/1.4.0" }, "funding": [ { @@ -5647,39 +4504,36 @@ "type": "tidelift" } ], - "time": "2022-03-03T08:28:38+00:00" + "time": "2020-11-10T18:47:58+00:00" }, { "name": "fakerphp/faker", - "version": "v1.21.0", + "version": "v1.14.1", "source": { "type": "git", "url": "https://github.com/FakerPHP/Faker.git", - "reference": "92efad6a967f0b79c499705c69b662f738cc9e4d" + "reference": "ed22aee8d17c7b396f74a58b1e7fefa4f90d5ef1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/FakerPHP/Faker/zipball/92efad6a967f0b79c499705c69b662f738cc9e4d", - "reference": "92efad6a967f0b79c499705c69b662f738cc9e4d", + "url": "https://api.github.com/repos/FakerPHP/Faker/zipball/ed22aee8d17c7b396f74a58b1e7fefa4f90d5ef1", + "reference": "ed22aee8d17c7b396f74a58b1e7fefa4f90d5ef1", "shasum": "" }, "require": { - "php": "^7.4 || ^8.0", - "psr/container": "^1.0 || ^2.0", - "symfony/deprecation-contracts": "^2.2 || ^3.0" + "php": "^7.1 || ^8.0", + "psr/container": "^1.0", + "symfony/deprecation-contracts": "^2.2" }, "conflict": { "fzaninotto/faker": "*" }, "require-dev": { "bamarni/composer-bin-plugin": "^1.4.1", - "doctrine/persistence": "^1.3 || ^2.0", "ext-intl": "*", - "phpunit/phpunit": "^9.5.26", - "symfony/phpunit-bridge": "^5.4.16" + "symfony/phpunit-bridge": "^4.4 || ^5.2" }, "suggest": { - "doctrine/orm": "Required to use Faker\\ORM\\Doctrine", "ext-curl": "Required by Faker\\Provider\\Image to download images.", "ext-dom": "Required by Faker\\Provider\\HtmlLorem for generating random HTML.", "ext-iconv": "Required by Faker\\Provider\\ru_RU\\Text::realText() for generating real Russian text.", @@ -5688,7 +4542,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "v1.21-dev" + "dev-main": "v1.15-dev" } }, "autoload": { @@ -5713,9 +4567,9 @@ ], "support": { "issues": "https://github.com/FakerPHP/Faker/issues", - "source": "https://github.com/FakerPHP/Faker/tree/v1.21.0" + "source": "https://github.com/FakerPHP/Faker/tree/v.1.14.1" }, - "time": "2022-12-13T13:54:32+00:00" + "time": "2021-03-30T06:27:33+00:00" }, { "name": "hamcrest/hamcrest-php", @@ -5770,16 +4624,16 @@ }, { "name": "mockery/mockery", - "version": "1.5.1", + "version": "1.4.3", "source": { "type": "git", "url": "https://github.com/mockery/mockery.git", - "reference": "e92dcc83d5a51851baf5f5591d32cb2b16e3684e" + "reference": "d1339f64479af1bee0e82a0413813fe5345a54ea" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/mockery/mockery/zipball/e92dcc83d5a51851baf5f5591d32cb2b16e3684e", - "reference": "e92dcc83d5a51851baf5f5591d32cb2b16e3684e", + "url": "https://api.github.com/repos/mockery/mockery/zipball/d1339f64479af1bee0e82a0413813fe5345a54ea", + "reference": "d1339f64479af1bee0e82a0413813fe5345a54ea", "shasum": "" }, "require": { @@ -5836,44 +4690,43 @@ ], "support": { "issues": "https://github.com/mockery/mockery/issues", - "source": "https://github.com/mockery/mockery/tree/1.5.1" + "source": "https://github.com/mockery/mockery/tree/1.4.3" }, - "time": "2022-09-07T15:32:08+00:00" + "time": "2021-02-24T09:51:49+00:00" }, { "name": "myclabs/deep-copy", - "version": "1.11.0", + "version": "1.10.2", "source": { "type": "git", "url": "https://github.com/myclabs/DeepCopy.git", - "reference": "14daed4296fae74d9e3201d2c4925d1acb7aa614" + "reference": "776f831124e9c62e1a2c601ecc52e776d8bb7220" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/14daed4296fae74d9e3201d2c4925d1acb7aa614", - "reference": "14daed4296fae74d9e3201d2c4925d1acb7aa614", + "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/776f831124e9c62e1a2c601ecc52e776d8bb7220", + "reference": "776f831124e9c62e1a2c601ecc52e776d8bb7220", "shasum": "" }, "require": { "php": "^7.1 || ^8.0" }, - "conflict": { - "doctrine/collections": "<1.6.8", - "doctrine/common": "<2.13.3 || >=3,<3.2.2" + "replace": { + "myclabs/deep-copy": "self.version" }, "require-dev": { - "doctrine/collections": "^1.6.8", - "doctrine/common": "^2.13.3 || ^3.2.2", - "phpunit/phpunit": "^7.5.20 || ^8.5.23 || ^9.5.13" + "doctrine/collections": "^1.0", + "doctrine/common": "^2.6", + "phpunit/phpunit": "^7.1" }, "type": "library", "autoload": { - "files": [ - "src/DeepCopy/deep_copy.php" - ], "psr-4": { "DeepCopy\\": "src/DeepCopy/" - } + }, + "files": [ + "src/DeepCopy/deep_copy.php" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -5889,7 +4742,7 @@ ], "support": { "issues": "https://github.com/myclabs/DeepCopy/issues", - "source": "https://github.com/myclabs/DeepCopy/tree/1.11.0" + "source": "https://github.com/myclabs/DeepCopy/tree/1.10.2" }, "funding": [ { @@ -5897,20 +4750,20 @@ "type": "tidelift" } ], - "time": "2022-03-03T13:19:32+00:00" + "time": "2020-11-13T09:40:50+00:00" }, { "name": "nikic/php-parser", - "version": "v4.15.2", + "version": "v4.10.5", "source": { "type": "git", "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "f59bbe44bf7d96f24f3e2b4ddc21cd52c1d2adbc" + "reference": "4432ba399e47c66624bc73c8c0f811e5c109576f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/f59bbe44bf7d96f24f3e2b4ddc21cd52c1d2adbc", - "reference": "f59bbe44bf7d96f24f3e2b4ddc21cd52c1d2adbc", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/4432ba399e47c66624bc73c8c0f811e5c109576f", + "reference": "4432ba399e47c66624bc73c8c0f811e5c109576f", "shasum": "" }, "require": { @@ -5951,31 +4804,31 @@ ], "support": { "issues": "https://github.com/nikic/PHP-Parser/issues", - "source": "https://github.com/nikic/PHP-Parser/tree/v4.15.2" + "source": "https://github.com/nikic/PHP-Parser/tree/v4.10.5" }, - "time": "2022-11-12T15:38:23+00:00" + "time": "2021-05-03T19:11:20+00:00" }, { "name": "orchestra/testbench", - "version": "v6.25.1", + "version": "v6.17.1", "source": { "type": "git", "url": "https://github.com/orchestral/testbench.git", - "reference": "0516123d26d64117bc04f7e9cb982eae2624e750" + "reference": "d6df638c569899443a1e4dc14a33490837201784" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/orchestral/testbench/zipball/0516123d26d64117bc04f7e9cb982eae2624e750", - "reference": "0516123d26d64117bc04f7e9cb982eae2624e750", + "url": "https://api.github.com/repos/orchestral/testbench/zipball/d6df638c569899443a1e4dc14a33490837201784", + "reference": "d6df638c569899443a1e4dc14a33490837201784", "shasum": "" }, "require": { - "laravel/framework": "^8.75", - "mockery/mockery": "^1.4.4", - "orchestra/testbench-core": "^6.29.1", + "laravel/framework": "^8.25", + "mockery/mockery": "^1.4.2", + "orchestra/testbench-core": "^6.21.3", "php": "^7.3 || ^8.0", - "phpunit/phpunit": "^8.5.21 || ^9.5.10", - "spatie/laravel-ray": "^1.26.2" + "phpunit/phpunit": "^8.4 || ^9.3.3", + "spatie/laravel-ray": "^1.17.1" }, "type": "library", "extra": { @@ -6006,7 +4859,7 @@ ], "support": { "issues": "https://github.com/orchestral/testbench/issues", - "source": "https://github.com/orchestral/testbench/tree/v6.25.1" + "source": "https://github.com/orchestral/testbench/tree/v6.17.1" }, "funding": [ { @@ -6018,20 +4871,20 @@ "type": "liberapay" } ], - "time": "2022-10-11T14:01:10+00:00" + "time": "2021-05-18T23:14:29+00:00" }, { "name": "orchestra/testbench-core", - "version": "v6.29.1", + "version": "v6.21.3", "source": { "type": "git", "url": "https://github.com/orchestral/testbench-core.git", - "reference": "29a7586915885f89b8d2203efe20f76afe9cf956" + "reference": "e20e4ed5586993940679119c4eeaed3b21037ac5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/orchestral/testbench-core/zipball/29a7586915885f89b8d2203efe20f76afe9cf956", - "reference": "29a7586915885f89b8d2203efe20f76afe9cf956", + "url": "https://api.github.com/repos/orchestral/testbench-core/zipball/e20e4ed5586993940679119c4eeaed3b21037ac5", + "reference": "e20e4ed5586993940679119c4eeaed3b21037ac5", "shasum": "" }, "require": { @@ -6041,20 +4894,20 @@ "vlucas/phpdotenv": "^5.1" }, "require-dev": { - "laravel/framework": "^8.75", + "laravel/framework": "^8.26", "laravel/laravel": "8.x-dev", - "mockery/mockery": "^1.4.4", + "mockery/mockery": "^1.4.2", "orchestra/canvas": "^6.1", - "phpunit/phpunit": "^8.5.21 || ^9.5.10", + "phpunit/phpunit": "^8.4 || ^9.3.3 || ^10.0", "spatie/laravel-ray": "^1.7.1", "symfony/process": "^5.0" }, "suggest": { - "laravel/framework": "Required for testing (^8.75).", - "mockery/mockery": "Allow using Mockery for testing (^1.4.4).", + "laravel/framework": "Required for testing (^8.26).", + "mockery/mockery": "Allow using Mockery for testing (^1.4.2).", "orchestra/testbench-browser-kit": "Allow using legacy Laravel BrowserKit for testing (^6.0).", "orchestra/testbench-dusk": "Allow using Laravel Dusk for testing (^6.0).", - "phpunit/phpunit": "Allow using PHPUnit for testing (^8.5.21|^9.5.10|^10.0)." + "phpunit/phpunit": "Allow using PHPUnit for testing (^8.4|^9.3.3)." }, "bin": [ "testbench" @@ -6066,9 +4919,6 @@ } }, "autoload": { - "files": [ - "src/helpers.php" - ], "psr-4": { "Orchestra\\Testbench\\": "src/" } @@ -6108,20 +4958,20 @@ "type": "liberapay" } ], - "time": "2022-10-11T12:12:52+00:00" + "time": "2021-05-18T09:19:25+00:00" }, { "name": "phar-io/manifest", - "version": "2.0.3", + "version": "2.0.1", "source": { "type": "git", "url": "https://github.com/phar-io/manifest.git", - "reference": "97803eca37d319dfa7826cc2437fc020857acb53" + "reference": "85265efd3af7ba3ca4b2a2c34dbfc5788dd29133" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phar-io/manifest/zipball/97803eca37d319dfa7826cc2437fc020857acb53", - "reference": "97803eca37d319dfa7826cc2437fc020857acb53", + "url": "https://api.github.com/repos/phar-io/manifest/zipball/85265efd3af7ba3ca4b2a2c34dbfc5788dd29133", + "reference": "85265efd3af7ba3ca4b2a2c34dbfc5788dd29133", "shasum": "" }, "require": { @@ -6166,22 +5016,22 @@ "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)", "support": { "issues": "https://github.com/phar-io/manifest/issues", - "source": "https://github.com/phar-io/manifest/tree/2.0.3" + "source": "https://github.com/phar-io/manifest/tree/master" }, - "time": "2021-07-20T11:28:43+00:00" + "time": "2020-06-27T14:33:11+00:00" }, { "name": "phar-io/version", - "version": "3.2.1", + "version": "3.1.0", "source": { "type": "git", "url": "https://github.com/phar-io/version.git", - "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74" + "reference": "bae7c545bef187884426f042434e561ab1ddb182" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phar-io/version/zipball/4f7fd7836c6f332bb2933569e566a0d6c4cbed74", - "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74", + "url": "https://api.github.com/repos/phar-io/version/zipball/bae7c545bef187884426f042434e561ab1ddb182", + "reference": "bae7c545bef187884426f042434e561ab1ddb182", "shasum": "" }, "require": { @@ -6217,9 +5067,9 @@ "description": "Library for handling version information and constraints", "support": { "issues": "https://github.com/phar-io/version/issues", - "source": "https://github.com/phar-io/version/tree/3.2.1" + "source": "https://github.com/phar-io/version/tree/3.1.0" }, - "time": "2022-02-21T01:04:05+00:00" + "time": "2021-02-23T14:00:09+00:00" }, { "name": "phpdocumentor/reflection-common", @@ -6274,32 +5124,82 @@ }, "time": "2020-06-27T09:03:43+00:00" }, + { + "name": "phpdocumentor/reflection-docblock", + "version": "5.2.2", + "source": { + "type": "git", + "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", + "reference": "069a785b2141f5bcf49f3e353548dc1cce6df556" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/069a785b2141f5bcf49f3e353548dc1cce6df556", + "reference": "069a785b2141f5bcf49f3e353548dc1cce6df556", + "shasum": "" + }, + "require": { + "ext-filter": "*", + "php": "^7.2 || ^8.0", + "phpdocumentor/reflection-common": "^2.2", + "phpdocumentor/type-resolver": "^1.3", + "webmozart/assert": "^1.9.1" + }, + "require-dev": { + "mockery/mockery": "~1.3.2" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.x-dev" + } + }, + "autoload": { + "psr-4": { + "phpDocumentor\\Reflection\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Mike van Riel", + "email": "me@mikevanriel.com" + }, + { + "name": "Jaap van Otterdijk", + "email": "account@ijaap.nl" + } + ], + "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", + "support": { + "issues": "https://github.com/phpDocumentor/ReflectionDocBlock/issues", + "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/master" + }, + "time": "2020-09-03T19:13:55+00:00" + }, { "name": "phpdocumentor/type-resolver", - "version": "1.6.2", + "version": "1.4.0", "source": { "type": "git", "url": "https://github.com/phpDocumentor/TypeResolver.git", - "reference": "48f445a408c131e38cab1c235aa6d2bb7a0bb20d" + "reference": "6a467b8989322d92aa1c8bf2bebcc6e5c2ba55c0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/48f445a408c131e38cab1c235aa6d2bb7a0bb20d", - "reference": "48f445a408c131e38cab1c235aa6d2bb7a0bb20d", + "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/6a467b8989322d92aa1c8bf2bebcc6e5c2ba55c0", + "reference": "6a467b8989322d92aa1c8bf2bebcc6e5c2ba55c0", "shasum": "" }, "require": { - "php": "^7.4 || ^8.0", + "php": "^7.2 || ^8.0", "phpdocumentor/reflection-common": "^2.0" }, "require-dev": { - "ext-tokenizer": "*", - "phpstan/extension-installer": "^1.1", - "phpstan/phpstan": "^1.8", - "phpstan/phpstan-phpunit": "^1.1", - "phpunit/phpunit": "^9.5", - "rector/rector": "^0.13.9", - "vimeo/psalm": "^4.25" + "ext-tokenizer": "*" }, "type": "library", "extra": { @@ -6325,29 +5225,96 @@ "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names", "support": { "issues": "https://github.com/phpDocumentor/TypeResolver/issues", - "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.6.2" + "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.4.0" + }, + "time": "2020-09-17T18:55:26+00:00" + }, + { + "name": "phpspec/prophecy", + "version": "1.13.0", + "source": { + "type": "git", + "url": "https://github.com/phpspec/prophecy.git", + "reference": "be1996ed8adc35c3fd795488a653f4b518be70ea" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpspec/prophecy/zipball/be1996ed8adc35c3fd795488a653f4b518be70ea", + "reference": "be1996ed8adc35c3fd795488a653f4b518be70ea", + "shasum": "" + }, + "require": { + "doctrine/instantiator": "^1.2", + "php": "^7.2 || ~8.0, <8.1", + "phpdocumentor/reflection-docblock": "^5.2", + "sebastian/comparator": "^3.0 || ^4.0", + "sebastian/recursion-context": "^3.0 || ^4.0" + }, + "require-dev": { + "phpspec/phpspec": "^6.0", + "phpunit/phpunit": "^8.0 || ^9.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.11.x-dev" + } + }, + "autoload": { + "psr-4": { + "Prophecy\\": "src/Prophecy" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Konstantin Kudryashov", + "email": "ever.zet@gmail.com", + "homepage": "http://everzet.com" + }, + { + "name": "Marcello Duarte", + "email": "marcello.duarte@gmail.com" + } + ], + "description": "Highly opinionated mocking framework for PHP 5.3+", + "homepage": "https://github.com/phpspec/prophecy", + "keywords": [ + "Double", + "Dummy", + "fake", + "mock", + "spy", + "stub" + ], + "support": { + "issues": "https://github.com/phpspec/prophecy/issues", + "source": "https://github.com/phpspec/prophecy/tree/1.13.0" }, - "time": "2022-10-14T12:47:21+00:00" + "time": "2021-03-17T13:42:18+00:00" }, { "name": "phpunit/php-code-coverage", - "version": "9.2.22", + "version": "9.2.6", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "e4bf60d2220b4baaa0572986b5d69870226b06df" + "reference": "f6293e1b30a2354e8428e004689671b83871edde" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/e4bf60d2220b4baaa0572986b5d69870226b06df", - "reference": "e4bf60d2220b4baaa0572986b5d69870226b06df", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/f6293e1b30a2354e8428e004689671b83871edde", + "reference": "f6293e1b30a2354e8428e004689671b83871edde", "shasum": "" }, "require": { "ext-dom": "*", "ext-libxml": "*", "ext-xmlwriter": "*", - "nikic/php-parser": "^4.14", + "nikic/php-parser": "^4.10.2", "php": ">=7.3", "phpunit/php-file-iterator": "^3.0.3", "phpunit/php-text-template": "^2.0.2", @@ -6396,7 +5363,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", - "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.22" + "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.6" }, "funding": [ { @@ -6404,20 +5371,20 @@ "type": "github" } ], - "time": "2022-12-18T16:40:55+00:00" + "time": "2021-03-28T07:26:59+00:00" }, { "name": "phpunit/php-file-iterator", - "version": "3.0.6", + "version": "3.0.5", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-file-iterator.git", - "reference": "cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf" + "reference": "aa4be8575f26070b100fccb67faabb28f21f66f8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf", - "reference": "cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf", + "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/aa4be8575f26070b100fccb67faabb28f21f66f8", + "reference": "aa4be8575f26070b100fccb67faabb28f21f66f8", "shasum": "" }, "require": { @@ -6456,7 +5423,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/php-file-iterator/issues", - "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/3.0.6" + "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/3.0.5" }, "funding": [ { @@ -6464,7 +5431,7 @@ "type": "github" } ], - "time": "2021-12-02T12:48:52+00:00" + "time": "2020-09-28T05:57:25+00:00" }, { "name": "phpunit/php-invoker", @@ -6649,16 +5616,16 @@ }, { "name": "phpunit/phpunit", - "version": "9.5.27", + "version": "9.5.4", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "a2bc7ffdca99f92d959b3f2270529334030bba38" + "reference": "c73c6737305e779771147af66c96ca6a7ed8a741" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/a2bc7ffdca99f92d959b3f2270529334030bba38", - "reference": "a2bc7ffdca99f92d959b3f2270529334030bba38", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/c73c6737305e779771147af66c96ca6a7ed8a741", + "reference": "c73c6737305e779771147af66c96ca6a7ed8a741", "shasum": "" }, "require": { @@ -6670,26 +5637,31 @@ "ext-xml": "*", "ext-xmlwriter": "*", "myclabs/deep-copy": "^1.10.1", - "phar-io/manifest": "^2.0.3", + "phar-io/manifest": "^2.0.1", "phar-io/version": "^3.0.2", "php": ">=7.3", - "phpunit/php-code-coverage": "^9.2.13", + "phpspec/prophecy": "^1.12.1", + "phpunit/php-code-coverage": "^9.2.3", "phpunit/php-file-iterator": "^3.0.5", "phpunit/php-invoker": "^3.1.1", "phpunit/php-text-template": "^2.0.3", "phpunit/php-timer": "^5.0.2", "sebastian/cli-parser": "^1.0.1", "sebastian/code-unit": "^1.0.6", - "sebastian/comparator": "^4.0.8", + "sebastian/comparator": "^4.0.5", "sebastian/diff": "^4.0.3", "sebastian/environment": "^5.1.3", - "sebastian/exporter": "^4.0.5", + "sebastian/exporter": "^4.0.3", "sebastian/global-state": "^5.0.1", "sebastian/object-enumerator": "^4.0.3", "sebastian/resource-operations": "^3.0.3", - "sebastian/type": "^3.2", + "sebastian/type": "^2.3", "sebastian/version": "^3.0.2" }, + "require-dev": { + "ext-pdo": "*", + "phpspec/prophecy-phpunit": "^2.0.1" + }, "suggest": { "ext-soap": "*", "ext-xdebug": "*" @@ -6704,11 +5676,11 @@ } }, "autoload": { - "files": [ - "src/Framework/Assert/Functions.php" - ], "classmap": [ "src/" + ], + "files": [ + "src/Framework/Assert/Functions.php" ] }, "notification-url": "https://packagist.org/downloads/", @@ -6731,125 +5703,19 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/phpunit/issues", - "source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.27" + "source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.4" }, "funding": [ { - "url": "https://phpunit.de/sponsors.html", + "url": "https://phpunit.de/donate.html", "type": "custom" }, { "url": "https://github.com/sebastianbergmann", "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/phpunit/phpunit", - "type": "tidelift" - } - ], - "time": "2022-12-09T07:31:23+00:00" - }, - { - "name": "pimple/pimple", - "version": "v3.5.0", - "source": { - "type": "git", - "url": "https://github.com/silexphp/Pimple.git", - "reference": "a94b3a4db7fb774b3d78dad2315ddc07629e1bed" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/silexphp/Pimple/zipball/a94b3a4db7fb774b3d78dad2315ddc07629e1bed", - "reference": "a94b3a4db7fb774b3d78dad2315ddc07629e1bed", - "shasum": "" - }, - "require": { - "php": ">=7.2.5", - "psr/container": "^1.1 || ^2.0" - }, - "require-dev": { - "symfony/phpunit-bridge": "^5.4@dev" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.4.x-dev" - } - }, - "autoload": { - "psr-0": { - "Pimple": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - } - ], - "description": "Pimple, a simple Dependency Injection Container", - "homepage": "https://pimple.symfony.com", - "keywords": [ - "container", - "dependency injection" - ], - "support": { - "source": "https://github.com/silexphp/Pimple/tree/v3.5.0" - }, - "time": "2021-10-28T11:13:42+00:00" - }, - { - "name": "psr/cache", - "version": "1.0.1", - "source": { - "type": "git", - "url": "https://github.com/php-fig/cache.git", - "reference": "d11b50ad223250cf17b86e38383413f5a6764bf8" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/cache/zipball/d11b50ad223250cf17b86e38383413f5a6764bf8", - "reference": "d11b50ad223250cf17b86e38383413f5a6764bf8", - "shasum": "" - }, - "require": { - "php": ">=5.3.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "autoload": { - "psr-4": { - "Psr\\Cache\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" } ], - "description": "Common interface for caching libraries", - "keywords": [ - "cache", - "psr", - "psr-6" - ], - "support": { - "source": "https://github.com/php-fig/cache/tree/master" - }, - "time": "2016-08-06T20:24:11+00:00" + "time": "2021-03-23T07:16:29+00:00" }, { "name": "sebastian/cli-parser", @@ -7020,16 +5886,16 @@ }, { "name": "sebastian/comparator", - "version": "4.0.8", + "version": "4.0.6", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/comparator.git", - "reference": "fa0f136dd2334583309d32b62544682ee972b51a" + "reference": "55f4261989e546dc112258c7a75935a81a7ce382" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/fa0f136dd2334583309d32b62544682ee972b51a", - "reference": "fa0f136dd2334583309d32b62544682ee972b51a", + "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/55f4261989e546dc112258c7a75935a81a7ce382", + "reference": "55f4261989e546dc112258c7a75935a81a7ce382", "shasum": "" }, "require": { @@ -7082,7 +5948,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/comparator/issues", - "source": "https://github.com/sebastianbergmann/comparator/tree/4.0.8" + "source": "https://github.com/sebastianbergmann/comparator/tree/4.0.6" }, "funding": [ { @@ -7090,7 +5956,7 @@ "type": "github" } ], - "time": "2022-09-14T12:41:17+00:00" + "time": "2020-10-26T15:49:45+00:00" }, { "name": "sebastian/complexity", @@ -7217,16 +6083,16 @@ }, { "name": "sebastian/environment", - "version": "5.1.4", + "version": "5.1.3", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/environment.git", - "reference": "1b5dff7bb151a4db11d49d90e5408e4e938270f7" + "reference": "388b6ced16caa751030f6a69e588299fa09200ac" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/1b5dff7bb151a4db11d49d90e5408e4e938270f7", - "reference": "1b5dff7bb151a4db11d49d90e5408e4e938270f7", + "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/388b6ced16caa751030f6a69e588299fa09200ac", + "reference": "388b6ced16caa751030f6a69e588299fa09200ac", "shasum": "" }, "require": { @@ -7268,7 +6134,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/environment/issues", - "source": "https://github.com/sebastianbergmann/environment/tree/5.1.4" + "source": "https://github.com/sebastianbergmann/environment/tree/5.1.3" }, "funding": [ { @@ -7276,20 +6142,20 @@ "type": "github" } ], - "time": "2022-04-03T09:37:03+00:00" + "time": "2020-09-28T05:52:38+00:00" }, { "name": "sebastian/exporter", - "version": "4.0.5", + "version": "4.0.3", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/exporter.git", - "reference": "ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d" + "reference": "d89cc98761b8cb5a1a235a6b703ae50d34080e65" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d", - "reference": "ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/d89cc98761b8cb5a1a235a6b703ae50d34080e65", + "reference": "d89cc98761b8cb5a1a235a6b703ae50d34080e65", "shasum": "" }, "require": { @@ -7338,14 +6204,14 @@ } ], "description": "Provides the functionality to export PHP variables for visualization", - "homepage": "https://www.github.com/sebastianbergmann/exporter", + "homepage": "http://www.github.com/sebastianbergmann/exporter", "keywords": [ "export", "exporter" ], "support": { "issues": "https://github.com/sebastianbergmann/exporter/issues", - "source": "https://github.com/sebastianbergmann/exporter/tree/4.0.5" + "source": "https://github.com/sebastianbergmann/exporter/tree/4.0.3" }, "funding": [ { @@ -7353,20 +6219,20 @@ "type": "github" } ], - "time": "2022-09-14T06:03:37+00:00" + "time": "2020-09-28T05:24:23+00:00" }, { "name": "sebastian/global-state", - "version": "5.0.5", + "version": "5.0.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/global-state.git", - "reference": "0ca8db5a5fc9c8646244e629625ac486fa286bf2" + "reference": "a90ccbddffa067b51f574dea6eb25d5680839455" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/0ca8db5a5fc9c8646244e629625ac486fa286bf2", - "reference": "0ca8db5a5fc9c8646244e629625ac486fa286bf2", + "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/a90ccbddffa067b51f574dea6eb25d5680839455", + "reference": "a90ccbddffa067b51f574dea6eb25d5680839455", "shasum": "" }, "require": { @@ -7409,7 +6275,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/global-state/issues", - "source": "https://github.com/sebastianbergmann/global-state/tree/5.0.5" + "source": "https://github.com/sebastianbergmann/global-state/tree/5.0.2" }, "funding": [ { @@ -7417,7 +6283,7 @@ "type": "github" } ], - "time": "2022-02-14T08:28:10+00:00" + "time": "2020-10-26T15:55:19+00:00" }, { "name": "sebastian/lines-of-code", @@ -7708,28 +6574,28 @@ }, { "name": "sebastian/type", - "version": "3.2.0", + "version": "2.3.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/type.git", - "reference": "fb3fe09c5f0bae6bc27ef3ce933a1e0ed9464b6e" + "reference": "81cd61ab7bbf2de744aba0ea61fae32f721df3d2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/fb3fe09c5f0bae6bc27ef3ce933a1e0ed9464b6e", - "reference": "fb3fe09c5f0bae6bc27ef3ce933a1e0ed9464b6e", + "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/81cd61ab7bbf2de744aba0ea61fae32f721df3d2", + "reference": "81cd61ab7bbf2de744aba0ea61fae32f721df3d2", "shasum": "" }, "require": { "php": ">=7.3" }, "require-dev": { - "phpunit/phpunit": "^9.5" + "phpunit/phpunit": "^9.3" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.2-dev" + "dev-master": "2.3-dev" } }, "autoload": { @@ -7752,7 +6618,7 @@ "homepage": "https://github.com/sebastianbergmann/type", "support": { "issues": "https://github.com/sebastianbergmann/type/issues", - "source": "https://github.com/sebastianbergmann/type/tree/3.2.0" + "source": "https://github.com/sebastianbergmann/type/tree/2.3.1" }, "funding": [ { @@ -7760,7 +6626,7 @@ "type": "github" } ], - "time": "2022-09-12T14:47:03+00:00" + "time": "2020-10-26T13:18:59+00:00" }, { "name": "sebastian/version", @@ -7817,16 +6683,16 @@ }, { "name": "spatie/backtrace", - "version": "1.2.1", + "version": "1.2.0", "source": { "type": "git", "url": "https://github.com/spatie/backtrace.git", - "reference": "4ee7d41aa5268107906ea8a4d9ceccde136dbd5b" + "reference": "9b4df807fb65aaa8006dcd7a7ccdef8fb4bb002e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/backtrace/zipball/4ee7d41aa5268107906ea8a4d9ceccde136dbd5b", - "reference": "4ee7d41aa5268107906ea8a4d9ceccde136dbd5b", + "url": "https://api.github.com/repos/spatie/backtrace/zipball/9b4df807fb65aaa8006dcd7a7ccdef8fb4bb002e", + "reference": "9b4df807fb65aaa8006dcd7a7ccdef8fb4bb002e", "shasum": "" }, "require": { @@ -7863,7 +6729,7 @@ ], "support": { "issues": "https://github.com/spatie/backtrace/issues", - "source": "https://github.com/spatie/backtrace/tree/1.2.1" + "source": "https://github.com/spatie/backtrace/tree/1.2.0" }, "funding": [ { @@ -7875,47 +6741,43 @@ "type": "other" } ], - "time": "2021-11-09T10:57:15+00:00" + "time": "2021-05-19T12:49:10+00:00" }, { "name": "spatie/laravel-ray", - "version": "1.31.0", + "version": "1.17.4", "source": { "type": "git", "url": "https://github.com/spatie/laravel-ray.git", - "reference": "7394694afd89d05879e7a69c54abab73c1199acd" + "reference": "e48be16da1952ffca868c77f509a767d3fc632bc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/laravel-ray/zipball/7394694afd89d05879e7a69c54abab73c1199acd", - "reference": "7394694afd89d05879e7a69c54abab73c1199acd", + "url": "https://api.github.com/repos/spatie/laravel-ray/zipball/e48be16da1952ffca868c77f509a767d3fc632bc", + "reference": "e48be16da1952ffca868c77f509a767d3fc632bc", "shasum": "" }, "require": { "ext-json": "*", - "illuminate/contracts": "^7.20|^8.19|^9.0", - "illuminate/database": "^7.20|^8.19|^9.0", - "illuminate/queue": "^7.20|^8.19|^9.0", - "illuminate/support": "^7.20|^8.19|^9.0", + "illuminate/contracts": "^7.20|^8.0", + "illuminate/database": "^7.20|^8.13", + "illuminate/queue": "^7.20|^8.13", + "illuminate/support": "^7.20|^8.13", "php": "^7.3|^8.0", "spatie/backtrace": "^1.0", - "spatie/ray": "^1.33", - "symfony/stopwatch": "4.2|^5.1|^6.0", - "zbateson/mail-mime-parser": "^1.3.1|^2.0" + "spatie/ray": "^1.21.2", + "symfony/stopwatch": "4.2|^5.1", + "zbateson/mail-mime-parser": "^1.3.1" }, "require-dev": { - "guzzlehttp/guzzle": "^7.3", - "laravel/framework": "^7.20|^8.19|^9.0", - "orchestra/testbench-core": "^5.0|^6.0|^7.0", - "phpstan/phpstan": "^0.12.93", + "facade/ignition": "^2.5", + "laravel/framework": "^7.20|^8.19", + "orchestra/testbench-core": "^5.0|^6.0", "phpunit/phpunit": "^9.3", "spatie/phpunit-snapshot-assertions": "^4.2" }, "type": "library", "extra": { - "branch-alias": { - "dev-main": "1.29.x-dev" - }, "laravel": { "providers": [ "Spatie\\LaravelRay\\RayServiceProvider" @@ -7947,7 +6809,7 @@ ], "support": { "issues": "https://github.com/spatie/laravel-ray/issues", - "source": "https://github.com/spatie/laravel-ray/tree/1.31.0" + "source": "https://github.com/spatie/laravel-ray/tree/1.17.4" }, "funding": [ { @@ -7959,7 +6821,7 @@ "type": "other" } ], - "time": "2022-09-20T13:13:22+00:00" + "time": "2021-04-30T08:20:24+00:00" }, { "name": "spatie/macroable", @@ -8013,16 +6875,16 @@ }, { "name": "spatie/ray", - "version": "1.36.0", + "version": "1.22.1", "source": { "type": "git", "url": "https://github.com/spatie/ray.git", - "reference": "4a4def8cda4806218341b8204c98375aa8c34323" + "reference": "e82408b78b1391eaee6c962b13c37e80080dc15a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spatie/ray/zipball/4a4def8cda4806218341b8204c98375aa8c34323", - "reference": "4a4def8cda4806218341b8204c98375aa8c34323", + "url": "https://api.github.com/repos/spatie/ray/zipball/e82408b78b1391eaee6c962b13c37e80080dc15a", + "reference": "e82408b78b1391eaee6c962b13c37e80080dc15a", "shasum": "" }, "require": { @@ -8032,25 +6894,25 @@ "ramsey/uuid": "^3.0|^4.1", "spatie/backtrace": "^1.1", "spatie/macroable": "^1.0|^2.0", - "symfony/stopwatch": "^4.0|^5.1|^6.0", - "symfony/var-dumper": "^4.2|^5.1|^6.0" + "symfony/stopwatch": "^4.0|^5.1", + "symfony/var-dumper": "^4.2|^5.1" }, "require-dev": { - "illuminate/support": "6.x|^8.18|^9.0", + "illuminate/support": "6.x|^8.18", "nesbot/carbon": "^2.43", - "phpstan/phpstan": "^0.12.92", "phpunit/phpunit": "^9.5", + "rector/rector": "^0.9.16", "spatie/phpunit-snapshot-assertions": "^4.2", "spatie/test-time": "^1.2" }, "type": "library", "autoload": { - "files": [ - "src/helpers.php" - ], "psr-4": { "Spatie\\Ray\\": "src" - } + }, + "files": [ + "src/helpers.php" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -8072,7 +6934,7 @@ ], "support": { "issues": "https://github.com/spatie/ray/issues", - "source": "https://github.com/spatie/ray/tree/1.36.0" + "source": "https://github.com/spatie/ray/tree/1.22.1" }, "funding": [ { @@ -8084,25 +6946,25 @@ "type": "other" } ], - "time": "2022-08-11T14:04:18+00:00" + "time": "2021-04-28T09:47:47+00:00" }, { "name": "symfony/stopwatch", - "version": "v5.4.13", + "version": "v5.2.7", "source": { "type": "git", "url": "https://github.com/symfony/stopwatch.git", - "reference": "6df7a3effde34d81717bbef4591e5ffe32226d69" + "reference": "d99310c33e833def36419c284f60e8027d359678" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/stopwatch/zipball/6df7a3effde34d81717bbef4591e5ffe32226d69", - "reference": "6df7a3effde34d81717bbef4591e5ffe32226d69", + "url": "https://api.github.com/repos/symfony/stopwatch/zipball/d99310c33e833def36419c284f60e8027d359678", + "reference": "d99310c33e833def36419c284f60e8027d359678", "shasum": "" }, "require": { "php": ">=7.2.5", - "symfony/service-contracts": "^1|^2|^3" + "symfony/service-contracts": "^1.0|^2" }, "type": "library", "autoload": { @@ -8130,7 +6992,7 @@ "description": "Provides a way to profile code", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/stopwatch/tree/v5.4.13" + "source": "https://github.com/symfony/stopwatch/tree/v5.3.0-BETA1" }, "funding": [ { @@ -8146,32 +7008,32 @@ "type": "tidelift" } ], - "time": "2022-09-28T13:19:49+00:00" + "time": "2021-03-29T15:28:41+00:00" }, { "name": "symfony/yaml", - "version": "v5.4.16", + "version": "v5.2.9", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "ebd37c71f62d5ec5f6e27de3e06fee492d4c6298" + "reference": "d23115e4a3d50520abddccdbec9514baab1084c8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/ebd37c71f62d5ec5f6e27de3e06fee492d4c6298", - "reference": "ebd37c71f62d5ec5f6e27de3e06fee492d4c6298", + "url": "https://api.github.com/repos/symfony/yaml/zipball/d23115e4a3d50520abddccdbec9514baab1084c8", + "reference": "d23115e4a3d50520abddccdbec9514baab1084c8", "shasum": "" }, "require": { "php": ">=7.2.5", - "symfony/deprecation-contracts": "^2.1|^3", - "symfony/polyfill-ctype": "^1.8" + "symfony/deprecation-contracts": "^2.1", + "symfony/polyfill-ctype": "~1.8" }, "conflict": { - "symfony/console": "<5.3" + "symfony/console": "<4.4" }, "require-dev": { - "symfony/console": "^5.3|^6.0" + "symfony/console": "^4.4|^5.0" }, "suggest": { "symfony/console": "For validating YAML files using the lint command" @@ -8205,7 +7067,7 @@ "description": "Loads and dumps YAML files", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/yaml/tree/v5.4.16" + "source": "https://github.com/symfony/yaml/tree/v5.2.9" }, "funding": [ { @@ -8221,20 +7083,20 @@ "type": "tidelift" } ], - "time": "2022-11-25T16:04:03+00:00" + "time": "2021-05-16T13:07:46+00:00" }, { "name": "theseer/tokenizer", - "version": "1.2.1", + "version": "1.2.0", "source": { "type": "git", "url": "https://github.com/theseer/tokenizer.git", - "reference": "34a41e998c2183e22995f158c581e7b5e755ab9e" + "reference": "75a63c33a8577608444246075ea0af0d052e452a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/theseer/tokenizer/zipball/34a41e998c2183e22995f158c581e7b5e755ab9e", - "reference": "34a41e998c2183e22995f158c581e7b5e755ab9e", + "url": "https://api.github.com/repos/theseer/tokenizer/zipball/75a63c33a8577608444246075ea0af0d052e452a", + "reference": "75a63c33a8577608444246075ea0af0d052e452a", "shasum": "" }, "require": { @@ -8263,7 +7125,7 @@ "description": "A small library for converting tokenized PHP source code into XML and potentially other formats", "support": { "issues": "https://github.com/theseer/tokenizer/issues", - "source": "https://github.com/theseer/tokenizer/tree/1.2.1" + "source": "https://github.com/theseer/tokenizer/tree/master" }, "funding": [ { @@ -8271,32 +7133,34 @@ "type": "github" } ], - "time": "2021-07-28T10:34:58+00:00" + "time": "2020-07-12T23:59:07+00:00" }, { "name": "zbateson/mail-mime-parser", - "version": "2.2.3", + "version": "1.3.1", "source": { "type": "git", "url": "https://github.com/zbateson/mail-mime-parser.git", - "reference": "295c7f82a8c44af685680d9df6714beb812e90ff" + "reference": "706964d904798b8c22d63f62f0ec5f5bc84e30d9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/zbateson/mail-mime-parser/zipball/295c7f82a8c44af685680d9df6714beb812e90ff", - "reference": "295c7f82a8c44af685680d9df6714beb812e90ff", + "url": "https://api.github.com/repos/zbateson/mail-mime-parser/zipball/706964d904798b8c22d63f62f0ec5f5bc84e30d9", + "reference": "706964d904798b8c22d63f62f0ec5f5bc84e30d9", "shasum": "" }, "require": { - "guzzlehttp/psr7": "^1.7.0|^2.0", + "guzzlehttp/psr7": "^1.0", "php": ">=5.4", - "pimple/pimple": "^3.0", "zbateson/mb-wrapper": "^1.0.1", - "zbateson/stream-decorators": "^1.0.6" + "zbateson/stream-decorators": "^1.0.4" }, "require-dev": { + "jms/serializer": "^1.1", "mikey179/vfsstream": "^1.6.0", - "sanmai/phpunit-legacy-adapter": "^6.3 || ^8.2" + "phing/phing": "^2.15.0", + "phpdocumentor/phpdocumentor": "^2.9.0", + "phpunit/phpunit": "^4.8 || ^5.7 || ^6.5 || ^7.5" }, "suggest": { "ext-iconv": "For best support/performance", @@ -8344,20 +7208,20 @@ "type": "github" } ], - "time": "2022-09-28T16:31:49+00:00" + "time": "2020-12-02T21:55:45+00:00" }, { "name": "zbateson/mb-wrapper", - "version": "1.1.2", + "version": "1.0.1", "source": { "type": "git", "url": "https://github.com/zbateson/mb-wrapper.git", - "reference": "5d9d190ef18ce6d424e3ac6f5ebe13901f92b74a" + "reference": "721b3dfbf7ab75fee5ac60a542d7923ffe59ef6d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/zbateson/mb-wrapper/zipball/5d9d190ef18ce6d424e3ac6f5ebe13901f92b74a", - "reference": "5d9d190ef18ce6d424e3ac6f5ebe13901f92b74a", + "url": "https://api.github.com/repos/zbateson/mb-wrapper/zipball/721b3dfbf7ab75fee5ac60a542d7923ffe59ef6d", + "reference": "721b3dfbf7ab75fee5ac60a542d7923ffe59ef6d", "shasum": "" }, "require": { @@ -8366,7 +7230,7 @@ "symfony/polyfill-mbstring": "^1.9" }, "require-dev": { - "sanmai/phpunit-legacy-adapter": "^6.3 || ^8" + "phpunit/phpunit": "^4.8 || ^5.7 || ^6.5" }, "suggest": { "ext-iconv": "For best support/performance", @@ -8403,7 +7267,7 @@ ], "support": { "issues": "https://github.com/zbateson/mb-wrapper/issues", - "source": "https://github.com/zbateson/mb-wrapper/tree/1.1.2" + "source": "https://github.com/zbateson/mb-wrapper/tree/1.0.1" }, "funding": [ { @@ -8411,29 +7275,29 @@ "type": "github" } ], - "time": "2022-05-26T15:55:05+00:00" + "time": "2020-10-21T22:14:27+00:00" }, { "name": "zbateson/stream-decorators", - "version": "1.0.7", + "version": "1.0.4", "source": { "type": "git", "url": "https://github.com/zbateson/stream-decorators.git", - "reference": "8f8ca208572963258b7e6d91106181706deacd10" + "reference": "6f54738dfecc65e1d5bfb855035836748083a6dd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/zbateson/stream-decorators/zipball/8f8ca208572963258b7e6d91106181706deacd10", - "reference": "8f8ca208572963258b7e6d91106181706deacd10", + "url": "https://api.github.com/repos/zbateson/stream-decorators/zipball/6f54738dfecc65e1d5bfb855035836748083a6dd", + "reference": "6f54738dfecc65e1d5bfb855035836748083a6dd", "shasum": "" }, "require": { - "guzzlehttp/psr7": "^1.7.0|^2.0", + "guzzlehttp/psr7": "^1.0.0", "php": ">=5.4", "zbateson/mb-wrapper": "^1.0.0" }, "require-dev": { - "sanmai/phpunit-legacy-adapter": "^6.3 || ^8" + "phpunit/phpunit": "^4.8 || ^5.7 || ^6.5 || ^7.5" }, "type": "library", "autoload": { @@ -8464,7 +7328,7 @@ ], "support": { "issues": "https://github.com/zbateson/stream-decorators/issues", - "source": "https://github.com/zbateson/stream-decorators/tree/1.0.7" + "source": "https://github.com/zbateson/stream-decorators/tree/master" }, "funding": [ { @@ -8472,7 +7336,7 @@ "type": "github" } ], - "time": "2022-09-08T15:44:55+00:00" + "time": "2020-08-10T18:59:43+00:00" } ], "aliases": [], @@ -8484,5 +7348,5 @@ "php": "^7.4|^8.0" }, "platform-dev": [], - "plugin-api-version": "2.3.0" + "plugin-api-version": "2.0.0" } From eb6747e6ed55c84749a4ffb70690835e25d2910d Mon Sep 17 00:00:00 2001 From: Daniel Haven <49914607+danielh-official@users.noreply.github.com> Date: Sun, 18 Dec 2022 18:02:41 -0500 Subject: [PATCH 23/70] restore spacing --- src/Exceptions/NotionException.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Exceptions/NotionException.php b/src/Exceptions/NotionException.php index 967f009..0025899 100644 --- a/src/Exceptions/NotionException.php +++ b/src/Exceptions/NotionException.php @@ -10,8 +10,8 @@ class NotionException extends LaravelNotionAPIException { /** - * @param string $message - * @param array $payload + * @param string $message + * @param array $payload * @return NotionException */ public static function instance(string $message, array $payload = []): NotionException @@ -36,7 +36,7 @@ public static function instance(string $message, array $payload = []): NotionExc * Handy method to create a NotionException * from a failed request. * - * @param Response $response + * @param Response $response * @return NotionException */ public static function fromResponse(Response $response): NotionException From 456186ee31d3bc60c7bed9bb8075b0323ca1884b Mon Sep 17 00:00:00 2001 From: Diana Scharf Date: Mon, 30 Jan 2023 17:44:07 +0100 Subject: [PATCH 24/70] tests for compound filters --- src/Query/Filters/Operators.php | 3 + tests/FilterTest.php | 160 ++++++++++++++++++++++++++++++++ 2 files changed, 163 insertions(+) diff --git a/src/Query/Filters/Operators.php b/src/Query/Filters/Operators.php index 5531095..cfc728c 100644 --- a/src/Query/Filters/Operators.php +++ b/src/Query/Filters/Operators.php @@ -30,6 +30,9 @@ class Operators const NEXT_MONTH = 'next_month'; const NEXT_YEAR = 'next_year'; + CONST AND = 'and'; + CONST OR = 'or'; + // TODO: Formula filter condition public static function getValidComparisonOperators($filterType) diff --git a/tests/FilterTest.php b/tests/FilterTest.php index f040114..9a2c57c 100644 --- a/tests/FilterTest.php +++ b/tests/FilterTest.php @@ -2,6 +2,7 @@ use FiveamCode\LaravelNotionApi\Exceptions\HandlingException; use FiveamCode\LaravelNotionApi\Query\Filters\Filter; +use FiveamCode\LaravelNotionApi\Query\Filters\FilterBag; use FiveamCode\LaravelNotionApi\Query\Filters\Operators; it('creates a text filter with the given data', function () { @@ -26,6 +27,140 @@ $this->assertEquals('9000', $filter->toQuery()['number']['greater_than_or_equal_to']); }); +it('creates a filter bag with the AND operator and two conditions', function () { + $filterBag = new FilterBag(Operators::AND); + + # Filter for all entries that are + # (Known for == UNIVAC && Known for == ENIAC) + + $filterBag->addFilter( + Filter::rawFilter("Known for", [ + "multi_select" => ["contains" => "UNIVAC"], + ]) + ); + + $filterBag->addFilter( + Filter::rawFilter("Known for", [ + "multi_select" => ["contains" => "ENIAC"], + ]) + ); + + $filterBagQuery = $filterBag->toQuery(); + $this->assertArrayHasKey(Operators::AND, $filterBagQuery); + $this->assertCount(2, $filterBagQuery[Operators::AND]); + + // check structure of first filter compound + $filterQuery = $filterBagQuery[Operators::AND][0]; + $this->assertArrayHasKey('property', $filterQuery); + $this->assertEquals('Known for', $filterQuery['property']); + $this->assertArrayHasKey('multi_select', $filterQuery); + $this->assertArrayHasKey('contains', $filterQuery['multi_select']); + $this->assertEquals('UNIVAC', $filterQuery['multi_select']['contains']); + + // check structure of second filter compound + $filterQuery = $filterBagQuery[Operators::AND][1]; + $this->assertArrayHasKey('property', $filterQuery); + $this->assertEquals('Known for', $filterQuery['property']); + $this->assertArrayHasKey('multi_select', $filterQuery); + $this->assertArrayHasKey('contains', $filterQuery['multi_select']); + $this->assertEquals('COBOL', $filterQuery['multi_select']['contains']); +}); + +it('creates a filter bag with the OR operator and three conditions', function () { + $filterBag = new FilterBag(Operators::OR); + + + # Filter for all entries that have + # (Name == Grace || Name == Jean || Name == Ada) + + $filterBag + ->addFilter(Filter::textFilter("Name", Operators::CONTAINS, "Grace")) + ->addFilter(Filter::textFilter("Name", Operators::CONTAINS, "Jean")) + ->addFilter(Filter::textFilter("Name", Operators::CONTAINS, "Ada")); + + + $filterBagQuery = $filterBag->toQuery(); + + $this->assertArrayHasKey(Operators::OR, $filterBagQuery); + $this->assertCount(3, $filterBagQuery[Operators::OR]); + + // check structure of first filter compound + $filterQuery = $filterBagQuery[Operators::OR][0]; + $this->assertArrayHasKey('property', $filterQuery); + $this->assertEquals('Name', $filterQuery['property']); + $this->assertArrayHasKey('text', $filterQuery); + $this->assertArrayHasKey('contains', $filterQuery['text']); + $this->assertEquals('Grace', $filterQuery['text']['contains']); + + + // check value of second filter compound + $filterQuery = $filterBagQuery[Operators::OR][1]; + $this->assertEquals('Jean', $filterQuery['text']['contains']); + + // check value of third filter compound + $filterQuery = $filterBagQuery[Operators::OR][2]; + $this->assertEquals('Ada', $filterQuery['text']['contains']); + +}); + +it('creates a filter bag with with the AND operator and a nested OR condition', function() { + + # Filter for all entries that are + # (KnownFor == Univac && (Name == Grace || Name == Jean)) + + $filterBag = new FilterBag(Operators::AND); + + $filterBag->addFilter( + Filter::rawFilter("Known for", [ + "multi_select" => ["contains" => "UNIVAC"], + ]) + ); + + $nameFilterBag = new FilterBag(Operators::OR); + $nameFilterBag + ->addFilter(Filter::textFilter("Name", Operators::CONTAINS, "Grace")) + ->addFilter(Filter::textFilter("Name", Operators::CONTAINS, "Jean")); + + $filterBag->addFilterBag($nameFilterBag); + + $this->assertInstanceOf(FilterBag::class, $filterBag); + $this->assertInstanceOf(FilterBag::class, $nameFilterBag); + + $filterBagQuery = $filterBag->toQuery(); + + $this->assertArrayHasKey(Operators::AND, $filterBagQuery); + + // check structure of first AND filter component + $multiSelectFilterQuery = $filterBagQuery[Operators::AND][0]; + $this->assertArrayHasKey('property', $multiSelectFilterQuery); + $this->assertEquals('Known for', $multiSelectFilterQuery['property']); + $this->assertArrayHasKey('multi_select', $multiSelectFilterQuery); + $this->assertArrayHasKey('contains', $multiSelectFilterQuery['multi_select']); + $this->assertEquals('UNIVAC', $multiSelectFilterQuery['multi_select']['contains']); + + // check structure of second AND filter component, which is another filter bag + // with an OR operator + $nameFilterBagQuery = $filterBagQuery[Operators::AND][1]; + $this->assertArrayHasKey(Operators::OR, $nameFilterBagQuery); + $this->assertCount(2, $nameFilterBagQuery[Operators::OR]); + + // check structure of the first filter inside the OR filter bag + $filterQuery = $nameFilterBagQuery[Operators::OR][0]; + $this->assertArrayHasKey('property', $filterQuery); + $this->assertEquals('Name', $filterQuery['property']); + $this->assertArrayHasKey('text', $filterQuery); + $this->assertArrayHasKey('contains', $filterQuery['text']); + $this->assertEquals('Grace', $filterQuery['text']['contains']); + + // check structure of the second filter inside the OR filter bag + $filterQuery = $nameFilterBagQuery[Operators::OR][1]; + $this->assertArrayHasKey('property', $filterQuery); + $this->assertEquals('Name', $filterQuery['property']); + $this->assertArrayHasKey('text', $filterQuery); + $this->assertArrayHasKey('contains', $filterQuery['text']); + $this->assertEquals('Jean', $filterQuery['text']['contains']); +}); + it('throws an HandlingException for an invalid comparison operator', function () { $this->expectException(HandlingException::class); $this->expectExceptionMessage('Invalid comparison operator'); @@ -39,3 +174,28 @@ $this->expectExceptionMessage('Invalid filter definition.'); $filter->toArray(); }); + +it('throws an exception for nesting too many filter bags', function() { + + $this->expectException(HandlingException::class); + $this->expectExceptionMessage('The maximum nesting level of compound filters must not exceed 2.'); + + $filterBag = new FilterBag(Operators::AND); + + $filterBag->addFilter( + Filter::rawFilter("Known for", [ + "multi_select" => ["contains" => "UNIVAC"], + ]) + ); + + $nameFilterBag = new FilterBag(Operators::OR); + $nameFilterBag + ->addFilter(Filter::textFilter("Name", Operators::CONTAINS, "Grace")) + ->addFilter(Filter::textFilter("Name", Operators::CONTAINS, "Jean")); + + $anotherBag = new FilterBag(); + $nameFilterBag->addFilterBag($anotherBag); + + // that's one nested bag too much + $filterBag->addFilterBag($nameFilterBag); +}); From 21d3e1ae61beb78c94ae36f2c1c114a034d71634 Mon Sep 17 00:00:00 2001 From: Diana Scharf Date: Mon, 30 Jan 2023 17:50:43 +0100 Subject: [PATCH 25/70] fixed / resorted tests --- src/Query/Filters/FilterBag.php | 2 +- tests/EndpointDatabaseTest.php | 34 +++---- tests/FilterBagTest.php | 160 +++++++++++++++++++++++++++++-- tests/FilterTest.php | 161 +------------------------------- 4 files changed, 170 insertions(+), 187 deletions(-) diff --git a/src/Query/Filters/FilterBag.php b/src/Query/Filters/FilterBag.php index aab4da3..3a7f37c 100644 --- a/src/Query/Filters/FilterBag.php +++ b/src/Query/Filters/FilterBag.php @@ -108,7 +108,7 @@ private function isValidOperator($operator) throw_if( ! in_array($operator, $validOperators), - new HandlingException('Invalid operator for FilterBag: '.$operator) + new HandlingException('Invalid operator for FilterBag: '.$operator) ); } } diff --git a/tests/EndpointDatabaseTest.php b/tests/EndpointDatabaseTest.php index ce367bb..b4a93b4 100644 --- a/tests/EndpointDatabaseTest.php +++ b/tests/EndpointDatabaseTest.php @@ -52,18 +52,15 @@ Sorting::propertySort('Birth year', 'descending') ); - $filters - ->add( - Filter::rawFilter( - 'Known for', - [ - 'multi_select' => ['contains' => 'UNIVAC'], - ] - ) - ); + $filter = Filter::rawFilter( + 'Known for', + [ + 'multi_select' => ['contains' => 'UNIVAC'], + ] + ); $result = Notion::database('8284f3ff77e24d4a939d19459e4d6bdc') - ->filterBy($filters) + ->filterBy($filter) ->sortBy($sortings) ->limit($limit) ->query(); @@ -98,18 +95,15 @@ // Let's search for something that doesn't exists $filters = new Collection(); - $filters - ->add( - Filter::rawFilter( - 'Known for', - [ - 'multi_select' => ['contains' => "something that doesn't exists"], - ] - ) - ); + $filter = Filter::rawFilter( + 'Known for', + [ + 'multi_select' => ['contains' => "something that doesn't exists"], + ] + ); $result = Notion::database('8284f3ff77e24d4a939d19459e4d6bdc') - ->filterBy($filters) + ->filterBy($filter) ->query(); $this->assertInstanceOf(PageCollection::class, $result); diff --git a/tests/FilterBagTest.php b/tests/FilterBagTest.php index 4a92c84..ed3d54a 100644 --- a/tests/FilterBagTest.php +++ b/tests/FilterBagTest.php @@ -55,14 +55,162 @@ $filterBag->addFilterBag($nameFilterBag); }); -it('allows the nesting of multiple FilterBags inside one FilterBag', function () { - // TODO + +it('creates a filter bag with the AND operator and two conditions', function () { + $filterBag = new FilterBag(Operators::AND); + + # Filter for all entries that are + # (Known for == UNIVAC && Known for == ENIAC) + + $filterBag->addFilter( + Filter::rawFilter("Known for", [ + "multi_select" => ["contains" => "UNIVAC"], + ]) + ); + + $filterBag->addFilter( + Filter::rawFilter("Known for", [ + "multi_select" => ["contains" => "ENIAC"], + ]) + ); + + $filterBagQuery = $filterBag->toQuery(); + $this->assertArrayHasKey(Operators::AND, $filterBagQuery); + $this->assertCount(2, $filterBagQuery[Operators::AND]); + + // check structure of first filter compound + $filterQuery = $filterBagQuery[Operators::AND][0]; + $this->assertArrayHasKey('property', $filterQuery); + $this->assertEquals('Known for', $filterQuery['property']); + $this->assertArrayHasKey('multi_select', $filterQuery); + $this->assertArrayHasKey('contains', $filterQuery['multi_select']); + $this->assertEquals('UNIVAC', $filterQuery['multi_select']['contains']); + + // check structure of second filter compound + $filterQuery = $filterBagQuery[Operators::AND][1]; + $this->assertArrayHasKey('property', $filterQuery); + $this->assertEquals('Known for', $filterQuery['property']); + $this->assertArrayHasKey('multi_select', $filterQuery); + $this->assertArrayHasKey('contains', $filterQuery['multi_select']); + $this->assertEquals('ENIAC', $filterQuery['multi_select']['contains']); }); -it('creates the correct query structure for a nested FilterBag', function () { - // TODO +it('creates a filter bag with the OR operator and three conditions', function () { + $filterBag = new FilterBag(Operators::OR); + + + # Filter for all entries that have + # (Name == Grace || Name == Jean || Name == Ada) + + $filterBag + ->addFilter(Filter::textFilter("Name", Operators::CONTAINS, "Grace")) + ->addFilter(Filter::textFilter("Name", Operators::CONTAINS, "Jean")) + ->addFilter(Filter::textFilter("Name", Operators::CONTAINS, "Ada")); + + + $filterBagQuery = $filterBag->toQuery(); + + $this->assertArrayHasKey(Operators::OR, $filterBagQuery); + $this->assertCount(3, $filterBagQuery[Operators::OR]); + + // check structure of first filter compound + $filterQuery = $filterBagQuery[Operators::OR][0]; + $this->assertArrayHasKey('property', $filterQuery); + $this->assertEquals('Name', $filterQuery['property']); + $this->assertArrayHasKey('text', $filterQuery); + $this->assertArrayHasKey('contains', $filterQuery['text']); + $this->assertEquals('Grace', $filterQuery['text']['contains']); + + + // check value of second filter compound + $filterQuery = $filterBagQuery[Operators::OR][1]; + $this->assertEquals('Jean', $filterQuery['text']['contains']); + + // check value of third filter compound + $filterQuery = $filterBagQuery[Operators::OR][2]; + $this->assertEquals('Ada', $filterQuery['text']['contains']); + }); -it('creates the correct query structure for a FilterBag with one level', function () { - // TODO +it('creates a filter bag with with the AND operator and a nested OR condition', function() { + + # Filter for all entries that are + # (KnownFor == Univac && (Name == Grace || Name == Jean)) + + $filterBag = new FilterBag(Operators::AND); + + $filterBag->addFilter( + Filter::rawFilter("Known for", [ + "multi_select" => ["contains" => "UNIVAC"], + ]) + ); + + $nameFilterBag = new FilterBag(Operators::OR); + $nameFilterBag + ->addFilter(Filter::textFilter("Name", Operators::CONTAINS, "Grace")) + ->addFilter(Filter::textFilter("Name", Operators::CONTAINS, "Jean")); + + $filterBag->addFilterBag($nameFilterBag); + + $this->assertInstanceOf(FilterBag::class, $filterBag); + $this->assertInstanceOf(FilterBag::class, $nameFilterBag); + + $filterBagQuery = $filterBag->toQuery(); + + $this->assertArrayHasKey(Operators::AND, $filterBagQuery); + + // check structure of first AND filter component + $multiSelectFilterQuery = $filterBagQuery[Operators::AND][0]; + $this->assertArrayHasKey('property', $multiSelectFilterQuery); + $this->assertEquals('Known for', $multiSelectFilterQuery['property']); + $this->assertArrayHasKey('multi_select', $multiSelectFilterQuery); + $this->assertArrayHasKey('contains', $multiSelectFilterQuery['multi_select']); + $this->assertEquals('UNIVAC', $multiSelectFilterQuery['multi_select']['contains']); + + // check structure of second AND filter component, which is another filter bag + // with an OR operator + $nameFilterBagQuery = $filterBagQuery[Operators::AND][1]; + $this->assertArrayHasKey(Operators::OR, $nameFilterBagQuery); + $this->assertCount(2, $nameFilterBagQuery[Operators::OR]); + + // check structure of the first filter inside the OR filter bag + $filterQuery = $nameFilterBagQuery[Operators::OR][0]; + $this->assertArrayHasKey('property', $filterQuery); + $this->assertEquals('Name', $filterQuery['property']); + $this->assertArrayHasKey('text', $filterQuery); + $this->assertArrayHasKey('contains', $filterQuery['text']); + $this->assertEquals('Grace', $filterQuery['text']['contains']); + + // check structure of the second filter inside the OR filter bag + $filterQuery = $nameFilterBagQuery[Operators::OR][1]; + $this->assertArrayHasKey('property', $filterQuery); + $this->assertEquals('Name', $filterQuery['property']); + $this->assertArrayHasKey('text', $filterQuery); + $this->assertArrayHasKey('contains', $filterQuery['text']); + $this->assertEquals('Jean', $filterQuery['text']['contains']); +}); + +it('throws an exception for nesting too many filter bags', function() { + + $this->expectException(HandlingException::class); + $this->expectExceptionMessage('The maximum nesting level of compound filters must not exceed 2.'); + + $filterBag = new FilterBag(Operators::AND); + + $filterBag->addFilter( + Filter::rawFilter("Known for", [ + "multi_select" => ["contains" => "UNIVAC"], + ]) + ); + + $nameFilterBag = new FilterBag(Operators::OR); + $nameFilterBag + ->addFilter(Filter::textFilter("Name", Operators::CONTAINS, "Grace")) + ->addFilter(Filter::textFilter("Name", Operators::CONTAINS, "Jean")); + + $anotherBag = new FilterBag(); + $nameFilterBag->addFilterBag($anotherBag); + + // that's one nested bag too much + $filterBag->addFilterBag($nameFilterBag); }); diff --git a/tests/FilterTest.php b/tests/FilterTest.php index 9a2c57c..bd47f5c 100644 --- a/tests/FilterTest.php +++ b/tests/FilterTest.php @@ -27,140 +27,6 @@ $this->assertEquals('9000', $filter->toQuery()['number']['greater_than_or_equal_to']); }); -it('creates a filter bag with the AND operator and two conditions', function () { - $filterBag = new FilterBag(Operators::AND); - - # Filter for all entries that are - # (Known for == UNIVAC && Known for == ENIAC) - - $filterBag->addFilter( - Filter::rawFilter("Known for", [ - "multi_select" => ["contains" => "UNIVAC"], - ]) - ); - - $filterBag->addFilter( - Filter::rawFilter("Known for", [ - "multi_select" => ["contains" => "ENIAC"], - ]) - ); - - $filterBagQuery = $filterBag->toQuery(); - $this->assertArrayHasKey(Operators::AND, $filterBagQuery); - $this->assertCount(2, $filterBagQuery[Operators::AND]); - - // check structure of first filter compound - $filterQuery = $filterBagQuery[Operators::AND][0]; - $this->assertArrayHasKey('property', $filterQuery); - $this->assertEquals('Known for', $filterQuery['property']); - $this->assertArrayHasKey('multi_select', $filterQuery); - $this->assertArrayHasKey('contains', $filterQuery['multi_select']); - $this->assertEquals('UNIVAC', $filterQuery['multi_select']['contains']); - - // check structure of second filter compound - $filterQuery = $filterBagQuery[Operators::AND][1]; - $this->assertArrayHasKey('property', $filterQuery); - $this->assertEquals('Known for', $filterQuery['property']); - $this->assertArrayHasKey('multi_select', $filterQuery); - $this->assertArrayHasKey('contains', $filterQuery['multi_select']); - $this->assertEquals('COBOL', $filterQuery['multi_select']['contains']); -}); - -it('creates a filter bag with the OR operator and three conditions', function () { - $filterBag = new FilterBag(Operators::OR); - - - # Filter for all entries that have - # (Name == Grace || Name == Jean || Name == Ada) - - $filterBag - ->addFilter(Filter::textFilter("Name", Operators::CONTAINS, "Grace")) - ->addFilter(Filter::textFilter("Name", Operators::CONTAINS, "Jean")) - ->addFilter(Filter::textFilter("Name", Operators::CONTAINS, "Ada")); - - - $filterBagQuery = $filterBag->toQuery(); - - $this->assertArrayHasKey(Operators::OR, $filterBagQuery); - $this->assertCount(3, $filterBagQuery[Operators::OR]); - - // check structure of first filter compound - $filterQuery = $filterBagQuery[Operators::OR][0]; - $this->assertArrayHasKey('property', $filterQuery); - $this->assertEquals('Name', $filterQuery['property']); - $this->assertArrayHasKey('text', $filterQuery); - $this->assertArrayHasKey('contains', $filterQuery['text']); - $this->assertEquals('Grace', $filterQuery['text']['contains']); - - - // check value of second filter compound - $filterQuery = $filterBagQuery[Operators::OR][1]; - $this->assertEquals('Jean', $filterQuery['text']['contains']); - - // check value of third filter compound - $filterQuery = $filterBagQuery[Operators::OR][2]; - $this->assertEquals('Ada', $filterQuery['text']['contains']); - -}); - -it('creates a filter bag with with the AND operator and a nested OR condition', function() { - - # Filter for all entries that are - # (KnownFor == Univac && (Name == Grace || Name == Jean)) - - $filterBag = new FilterBag(Operators::AND); - - $filterBag->addFilter( - Filter::rawFilter("Known for", [ - "multi_select" => ["contains" => "UNIVAC"], - ]) - ); - - $nameFilterBag = new FilterBag(Operators::OR); - $nameFilterBag - ->addFilter(Filter::textFilter("Name", Operators::CONTAINS, "Grace")) - ->addFilter(Filter::textFilter("Name", Operators::CONTAINS, "Jean")); - - $filterBag->addFilterBag($nameFilterBag); - - $this->assertInstanceOf(FilterBag::class, $filterBag); - $this->assertInstanceOf(FilterBag::class, $nameFilterBag); - - $filterBagQuery = $filterBag->toQuery(); - - $this->assertArrayHasKey(Operators::AND, $filterBagQuery); - - // check structure of first AND filter component - $multiSelectFilterQuery = $filterBagQuery[Operators::AND][0]; - $this->assertArrayHasKey('property', $multiSelectFilterQuery); - $this->assertEquals('Known for', $multiSelectFilterQuery['property']); - $this->assertArrayHasKey('multi_select', $multiSelectFilterQuery); - $this->assertArrayHasKey('contains', $multiSelectFilterQuery['multi_select']); - $this->assertEquals('UNIVAC', $multiSelectFilterQuery['multi_select']['contains']); - - // check structure of second AND filter component, which is another filter bag - // with an OR operator - $nameFilterBagQuery = $filterBagQuery[Operators::AND][1]; - $this->assertArrayHasKey(Operators::OR, $nameFilterBagQuery); - $this->assertCount(2, $nameFilterBagQuery[Operators::OR]); - - // check structure of the first filter inside the OR filter bag - $filterQuery = $nameFilterBagQuery[Operators::OR][0]; - $this->assertArrayHasKey('property', $filterQuery); - $this->assertEquals('Name', $filterQuery['property']); - $this->assertArrayHasKey('text', $filterQuery); - $this->assertArrayHasKey('contains', $filterQuery['text']); - $this->assertEquals('Grace', $filterQuery['text']['contains']); - - // check structure of the second filter inside the OR filter bag - $filterQuery = $nameFilterBagQuery[Operators::OR][1]; - $this->assertArrayHasKey('property', $filterQuery); - $this->assertEquals('Name', $filterQuery['property']); - $this->assertArrayHasKey('text', $filterQuery); - $this->assertArrayHasKey('contains', $filterQuery['text']); - $this->assertEquals('Jean', $filterQuery['text']['contains']); -}); - it('throws an HandlingException for an invalid comparison operator', function () { $this->expectException(HandlingException::class); $this->expectExceptionMessage('Invalid comparison operator'); @@ -173,29 +39,4 @@ $this->expectException(HandlingException::class); $this->expectExceptionMessage('Invalid filter definition.'); $filter->toArray(); -}); - -it('throws an exception for nesting too many filter bags', function() { - - $this->expectException(HandlingException::class); - $this->expectExceptionMessage('The maximum nesting level of compound filters must not exceed 2.'); - - $filterBag = new FilterBag(Operators::AND); - - $filterBag->addFilter( - Filter::rawFilter("Known for", [ - "multi_select" => ["contains" => "UNIVAC"], - ]) - ); - - $nameFilterBag = new FilterBag(Operators::OR); - $nameFilterBag - ->addFilter(Filter::textFilter("Name", Operators::CONTAINS, "Grace")) - ->addFilter(Filter::textFilter("Name", Operators::CONTAINS, "Jean")); - - $anotherBag = new FilterBag(); - $nameFilterBag->addFilterBag($anotherBag); - - // that's one nested bag too much - $filterBag->addFilterBag($nameFilterBag); -}); +}); \ No newline at end of file From 72ba50139b662982c3374aa042fdf1f6a3f24264 Mon Sep 17 00:00:00 2001 From: Di Date: Mon, 30 Jan 2023 17:51:05 +0100 Subject: [PATCH 26/70] Apply fixes from StyleCI (#98) --- src/Query/Filters/Operators.php | 4 +-- tests/FilterBagTest.php | 52 +++++++++++++++------------------ tests/FilterTest.php | 3 +- 3 files changed, 26 insertions(+), 33 deletions(-) diff --git a/src/Query/Filters/Operators.php b/src/Query/Filters/Operators.php index cfc728c..77e9401 100644 --- a/src/Query/Filters/Operators.php +++ b/src/Query/Filters/Operators.php @@ -30,8 +30,8 @@ class Operators const NEXT_MONTH = 'next_month'; const NEXT_YEAR = 'next_year'; - CONST AND = 'and'; - CONST OR = 'or'; + const AND = 'and'; + const OR = 'or'; // TODO: Formula filter condition diff --git a/tests/FilterBagTest.php b/tests/FilterBagTest.php index ed3d54a..7fc6d57 100644 --- a/tests/FilterBagTest.php +++ b/tests/FilterBagTest.php @@ -55,22 +55,21 @@ $filterBag->addFilterBag($nameFilterBag); }); - it('creates a filter bag with the AND operator and two conditions', function () { $filterBag = new FilterBag(Operators::AND); - # Filter for all entries that are - # (Known for == UNIVAC && Known for == ENIAC) + // Filter for all entries that are + // (Known for == UNIVAC && Known for == ENIAC) $filterBag->addFilter( - Filter::rawFilter("Known for", [ - "multi_select" => ["contains" => "UNIVAC"], + Filter::rawFilter('Known for', [ + 'multi_select' => ['contains' => 'UNIVAC'], ]) ); $filterBag->addFilter( - Filter::rawFilter("Known for", [ - "multi_select" => ["contains" => "ENIAC"], + Filter::rawFilter('Known for', [ + 'multi_select' => ['contains' => 'ENIAC'], ]) ); @@ -98,15 +97,13 @@ it('creates a filter bag with the OR operator and three conditions', function () { $filterBag = new FilterBag(Operators::OR); - - # Filter for all entries that have - # (Name == Grace || Name == Jean || Name == Ada) + // Filter for all entries that have + // (Name == Grace || Name == Jean || Name == Ada) $filterBag - ->addFilter(Filter::textFilter("Name", Operators::CONTAINS, "Grace")) - ->addFilter(Filter::textFilter("Name", Operators::CONTAINS, "Jean")) - ->addFilter(Filter::textFilter("Name", Operators::CONTAINS, "Ada")); - + ->addFilter(Filter::textFilter('Name', Operators::CONTAINS, 'Grace')) + ->addFilter(Filter::textFilter('Name', Operators::CONTAINS, 'Jean')) + ->addFilter(Filter::textFilter('Name', Operators::CONTAINS, 'Ada')); $filterBagQuery = $filterBag->toQuery(); @@ -121,7 +118,6 @@ $this->assertArrayHasKey('contains', $filterQuery['text']); $this->assertEquals('Grace', $filterQuery['text']['contains']); - // check value of second filter compound $filterQuery = $filterBagQuery[Operators::OR][1]; $this->assertEquals('Jean', $filterQuery['text']['contains']); @@ -129,26 +125,25 @@ // check value of third filter compound $filterQuery = $filterBagQuery[Operators::OR][2]; $this->assertEquals('Ada', $filterQuery['text']['contains']); - }); -it('creates a filter bag with with the AND operator and a nested OR condition', function() { +it('creates a filter bag with with the AND operator and a nested OR condition', function () { - # Filter for all entries that are - # (KnownFor == Univac && (Name == Grace || Name == Jean)) + // Filter for all entries that are + // (KnownFor == Univac && (Name == Grace || Name == Jean)) $filterBag = new FilterBag(Operators::AND); $filterBag->addFilter( - Filter::rawFilter("Known for", [ - "multi_select" => ["contains" => "UNIVAC"], + Filter::rawFilter('Known for', [ + 'multi_select' => ['contains' => 'UNIVAC'], ]) ); $nameFilterBag = new FilterBag(Operators::OR); $nameFilterBag - ->addFilter(Filter::textFilter("Name", Operators::CONTAINS, "Grace")) - ->addFilter(Filter::textFilter("Name", Operators::CONTAINS, "Jean")); + ->addFilter(Filter::textFilter('Name', Operators::CONTAINS, 'Grace')) + ->addFilter(Filter::textFilter('Name', Operators::CONTAINS, 'Jean')); $filterBag->addFilterBag($nameFilterBag); @@ -190,23 +185,22 @@ $this->assertEquals('Jean', $filterQuery['text']['contains']); }); -it('throws an exception for nesting too many filter bags', function() { - +it('throws an exception for nesting too many filter bags', function () { $this->expectException(HandlingException::class); $this->expectExceptionMessage('The maximum nesting level of compound filters must not exceed 2.'); $filterBag = new FilterBag(Operators::AND); $filterBag->addFilter( - Filter::rawFilter("Known for", [ - "multi_select" => ["contains" => "UNIVAC"], + Filter::rawFilter('Known for', [ + 'multi_select' => ['contains' => 'UNIVAC'], ]) ); $nameFilterBag = new FilterBag(Operators::OR); $nameFilterBag - ->addFilter(Filter::textFilter("Name", Operators::CONTAINS, "Grace")) - ->addFilter(Filter::textFilter("Name", Operators::CONTAINS, "Jean")); + ->addFilter(Filter::textFilter('Name', Operators::CONTAINS, 'Grace')) + ->addFilter(Filter::textFilter('Name', Operators::CONTAINS, 'Jean')); $anotherBag = new FilterBag(); $nameFilterBag->addFilterBag($anotherBag); diff --git a/tests/FilterTest.php b/tests/FilterTest.php index bd47f5c..f040114 100644 --- a/tests/FilterTest.php +++ b/tests/FilterTest.php @@ -2,7 +2,6 @@ use FiveamCode\LaravelNotionApi\Exceptions\HandlingException; use FiveamCode\LaravelNotionApi\Query\Filters\Filter; -use FiveamCode\LaravelNotionApi\Query\Filters\FilterBag; use FiveamCode\LaravelNotionApi\Query\Filters\Operators; it('creates a text filter with the given data', function () { @@ -39,4 +38,4 @@ $this->expectException(HandlingException::class); $this->expectExceptionMessage('Invalid filter definition.'); $filter->toArray(); -}); \ No newline at end of file +}); From c8be31cdcf1900cc584a2948cc4a0db37d7657a4 Mon Sep 17 00:00:00 2001 From: JohGuentner <3506359+johguentner@users.noreply.github.com> Date: Wed, 1 Feb 2023 18:45:05 +0100 Subject: [PATCH 27/70] polish introduction, header and examples - currently only polished existing examples - updated test command - move 5amcode logo to credits --- README.md | 92 ++++++++++++++++++++++++++----------------------------- 1 file changed, 44 insertions(+), 48 deletions(-) diff --git a/README.md b/README.md index 08b4a9d..e610811 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,6 @@ -

Laravel Notion API

-

Effortless Notion integrations with Laravel

+

Notion for Laravel

-

- -

+ [![Latest Version on Packagist](https://img.shields.io/packagist/v/fiveam-code/laravel-notion-api.svg?style=flat-square)](https://packagist.org/packages/fiveam-code/laravel-notion-api) [![Total Downloads](https://img.shields.io/packagist/dt/fiveam-code/laravel-notion-api.svg?style=flat-square)](https://packagist.org/packages/fiveam-code/laravel-notion-api) @@ -12,52 +9,58 @@ This package provides a simple and crisp way to access the Notion API endpoints, query data and update existing entries. + ## Installation -You can install the package via composer: +1. You can install the package via composer: -```bash -composer require fiveam-code/laravel-notion-api -``` + ```bash + composer require fiveam-code/laravel-notion-api + ``` -### Authorization -The Notion API requires an access token and a Notion integration, [the Notion documentation](https://developers.notion.com/docs/getting-started#before-we-begin) explains how this works. It's important to grant access to the integration within your Notion account to enable the API access. +2. Get your Notion API access token like explained in [their documentation](https://developers.notion.com/). It's also +important to grant access to the integration within your Notion pages, which is described in the developer documentation at Notion as well. -Add your Notion API token to your `.env` file: +3. For internal Integrations, please add a new entry to your `.env` like the following: + + ```bash + NOTION_API_TOKEN="$YOUR_ACCESS_TOKEN" + ``` +4. Now you can easily access Notion: + ```php + use \Notion; + + Notion::databases()->find($databaseId); + ``` + + That's it. -``` -NOTION_API_TOKEN="$YOUR_ACCESS_TOKEN" -``` ## Usage -Head over to the [Documentation](https://5amco.de/docs) of this package. +Head over to the [Documentation](https://notionforlaravel.com) of this package. -### 🔥 Code Examples to jumpstart your Notion API Project +### 🔥 Code Examples to jumpstart your next Notion API Project -#### Basic Setup (+ example) +#### Fetch a Notion Database (through a Facade) ```php -use FiveamCode\LaravelNotionApi\Notion; +use \Notion; -# Access through Facade (token has to be set in .env) -\Notion::databases()->find($databaseId); - -# Custom instantiation (necessary if you want to access more than one NotionApi integration) -$notion = new Notion($apiToken, $apiVersion); // version-default is 'v1' -$notion->databases()->find($databaseId); +Notion::databases() + ->find("a7e5e47d-23ca-463b-9750-eb07ca7115e4"); ``` -#### Fetch Page Information +#### Fetch a Notion Page ```php -// Returns a specific page -\Notion::pages()->find($yourPageId); +Notion::pages() + ->find("e7e5e47d-23ca-463b-9750-eb07ca7115e4"); ``` #### Search ```php // Returns a collection pages and databases of your workspace (included in your integration-token) -\Notion::search($searchText) +Notion::search("My Notion Search") ->query() ->asCollection(); ``` @@ -69,18 +72,14 @@ $notion->databases()->find($databaseId); $sortings = new Collection(); $filters = new Collection(); -$sortings - ->add(Sorting::propertySort('Ordered', 'ascending')); -$sortings - ->add(Sorting::timestampSort('created_time', 'ascending')); +$sortings->add(Sorting::propertySort('Ordered', 'ascending')); +$sortings->add(Sorting::timestampSort('created_time', 'ascending')); -$filters - ->add(Filter::textFilter('title', ['contains' => 'new'])); +$filters->add(Filter::textFilter('title', ['contains' => 'new'])); // or -$filters - ->add(Filter::rawFilter('Tags', ['multi_select' => ['contains' => 'great']])); +$filters->add(Filter::rawFilter('Tags', ['multi_select' => ['contains' => 'great']])); -\Notion::database($yourDatabaseId) +Notion::database("a7e5e47d-23ca-463b-9750-eb07ca7115e4") ->filterBy($filters) // filters are optional ->sortBy($sortings) // sorts are optional ->limit(5) // limit is optional @@ -89,10 +88,10 @@ $filters ``` -### Testing +### Testing (pestphp) ```bash -vendor/bin/phpunit tests +vendor/bin/pest tests ``` ## Support @@ -107,19 +106,16 @@ Please see [CONTRIBUTING](CONTRIBUTING.md) for details. If you discover any security related issues, please email hello@dianaweb.dev instead of using the issue tracker. -## Used By - -- Julien Nahum created [notionforms.io](https://notionforms.io) with [laravel-notion-api](https://github.com/5am-code/laravel-notion-api), which allows you to easily create custom forms, based on your selected database within notion. -- [GitHub Notion Sync](https://githubnotionsync.com/), a service by [Beyond Code](https://beyondco.de) to sync the issues of multiple GitHub repositories into a Notion database -- [Notion Invoice](https://notioninvoice.com/), the first premium invoicing solution for freelancers and businesses that use Notion. Create beautiful PDF invoices from your Notion data. - -Using this package in your project? Open a PR to add it in this section! - ## Credits - [Diana Scharf](https://github.com/mechelon) - [Johannes Güntner](https://github.com/johguentner) + +

+ +

+ ## License The MIT License (MIT). Please see [License File](LICENSE.md) for more information. From 44294bae6676b8c346de325765aad5a8db3335bc Mon Sep 17 00:00:00 2001 From: Shift Date: Thu, 2 Feb 2023 07:00:54 +0000 Subject: [PATCH 28/70] Bump dependencies for Laravel 10 --- composer.json | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/composer.json b/composer.json index a2b6c2e..84265a0 100644 --- a/composer.json +++ b/composer.json @@ -27,10 +27,10 @@ "require": { "php": "^7.4|^8.0", "guzzlehttp/guzzle": "^7.0.1", - "illuminate/support": "^8.0|^9.0" + "illuminate/support": "^8.0|^9.0|^10.0" }, "require-dev": { - "orchestra/testbench": "^6.0", + "orchestra/testbench": "^6.0|^8.0", "phpunit/phpunit": "^9.0" }, "autoload": { @@ -48,7 +48,6 @@ "scripts": { "test": "vendor/bin/phpunit", "test-coverage": "vendor/bin/phpunit --coverage-html coverage" - }, "config": { "sort-packages": true From de705ae78a006c81a485276111cea929990e3c10 Mon Sep 17 00:00:00 2001 From: johguentner Date: Thu, 2 Feb 2023 15:00:35 +0100 Subject: [PATCH 29/70] polish page and properties - add parent information to page - check end-date of Date property for null - add "asText" method to Text and Title property --- src/Entities/Page.php | 44 ++++++++++++++++++++++++++++++- src/Entities/Properties/Date.php | 2 +- src/Entities/Properties/Text.php | 10 ++++++- src/Entities/Properties/Title.php | 8 ++++++ 4 files changed, 61 insertions(+), 3 deletions(-) diff --git a/src/Entities/Page.php b/src/Entities/Page.php index 77e6609..53747eb 100644 --- a/src/Entities/Page.php +++ b/src/Entities/Page.php @@ -18,6 +18,7 @@ use FiveamCode\LaravelNotionApi\Entities\Properties\Url; use FiveamCode\LaravelNotionApi\Exceptions\HandlingException; use Illuminate\Support\Arr; +use Illuminate\Support\Str; use Illuminate\Support\Collection; /** @@ -55,6 +56,16 @@ class Page extends Entity */ private string $coverType = ''; + /** + * @var string + */ + private string $parentId = ''; + + /** + * @var string + */ + private string $parentType = ''; + /** * @var string */ @@ -122,6 +133,7 @@ protected function setResponseData(array $responseData): void private function fillFromRaw(): void { $this->fillId(); + $this->fillParent(); $this->fillObjectType(); $this->fillProperties(); $this->fillTitle(); // This has to be called after fillProperties(), since title is provided by properties @@ -205,6 +217,20 @@ private function fillPageUrl(): void } } + private function fillParent(): void + { + if (Arr::exists($this->responseData, 'parent')) { + $this->parentType = $this->responseData['parent']['type']; + if (Arr::exists($this->responseData['parent'], 'database_id')) { + $this->parentId = $this->responseData['parent']['database_id']; + } elseif (Arr::exists($this->responseData['parent'], 'page_id')) { + $this->parentId = $this->responseData['parent']['page_id']; + } elseif (Arr::exists($this->responseData['parent'], 'workspace')) { + $this->parentId = $this->responseData['parent']['workspace']; + } + } + } + /** * @param $propertyTitle * @param $property @@ -443,7 +469,7 @@ public function getProperties(): Collection */ public function getProperty(string $propertyKey): ?Property { - if (! isset($this->propertyMap[$propertyKey])) { + if (!isset($this->propertyMap[$propertyKey])) { return null; } @@ -458,6 +484,22 @@ public function getObjectType(): string return $this->objectType; } + /** + * @return string + */ + public function getParentId(): string + { + return $this->parentId; + } + + /** + * @return string + */ + public function getParentType(): string + { + return $this->parentType; + } + /** * @return array */ diff --git a/src/Entities/Properties/Date.php b/src/Entities/Properties/Date.php index 5a7fc1f..332d1f2 100644 --- a/src/Entities/Properties/Date.php +++ b/src/Entities/Properties/Date.php @@ -97,7 +97,7 @@ protected function fillDate(): void $richDate->setHasTime($this->isIsoTimeString($startAsIsoString)); } - if (Arr::exists($this->rawContent, 'end')) { + if (Arr::exists($this->rawContent, 'end') && $this->rawContent['end'] !== null) { $endAsIsoString = $this->rawContent['end']; $richDate->setEnd(new DateTime($endAsIsoString)); } diff --git a/src/Entities/Properties/Text.php b/src/Entities/Properties/Text.php index 7fad01c..3d96cbb 100644 --- a/src/Entities/Properties/Text.php +++ b/src/Entities/Properties/Text.php @@ -56,7 +56,7 @@ public static function value($text): Text protected function fillFromRaw(): void { parent::fillFromRaw(); - if (! is_array($this->rawContent)) { + if (!is_array($this->rawContent)) { throw HandlingException::instance('The property-type is text, however the raw data-structure does not represent this type (= array of items). Please check the raw response-data.'); } @@ -77,6 +77,14 @@ public function getContent(): RichText return $this->getRichText(); } + /** + * @return string + */ + public function asText(): string + { + return $this->getPlainText(); + } + /** * @return RichText */ diff --git a/src/Entities/Properties/Title.php b/src/Entities/Properties/Title.php index 4962a06..5d7e502 100644 --- a/src/Entities/Properties/Title.php +++ b/src/Entities/Properties/Title.php @@ -76,6 +76,14 @@ public function getContent(): RichText return $this->getRichText(); } + /** + * @return string + */ + public function asText(): string + { + return $this->getPlainText(); + } + /** * @return RichText */ From 8542f79fc83ff4221d3a0ff06686ef521c0cc027 Mon Sep 17 00:00:00 2001 From: Di Date: Thu, 2 Feb 2023 15:01:00 +0100 Subject: [PATCH 30/70] Apply fixes from StyleCI (#102) --- src/Entities/Page.php | 3 +-- src/Entities/Properties/Text.php | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/src/Entities/Page.php b/src/Entities/Page.php index 53747eb..08d03d1 100644 --- a/src/Entities/Page.php +++ b/src/Entities/Page.php @@ -18,7 +18,6 @@ use FiveamCode\LaravelNotionApi\Entities\Properties\Url; use FiveamCode\LaravelNotionApi\Exceptions\HandlingException; use Illuminate\Support\Arr; -use Illuminate\Support\Str; use Illuminate\Support\Collection; /** @@ -469,7 +468,7 @@ public function getProperties(): Collection */ public function getProperty(string $propertyKey): ?Property { - if (!isset($this->propertyMap[$propertyKey])) { + if (! isset($this->propertyMap[$propertyKey])) { return null; } diff --git a/src/Entities/Properties/Text.php b/src/Entities/Properties/Text.php index 3d96cbb..84df2e4 100644 --- a/src/Entities/Properties/Text.php +++ b/src/Entities/Properties/Text.php @@ -56,7 +56,7 @@ public static function value($text): Text protected function fillFromRaw(): void { parent::fillFromRaw(); - if (!is_array($this->rawContent)) { + if (! is_array($this->rawContent)) { throw HandlingException::instance('The property-type is text, however the raw data-structure does not represent this type (= array of items). Please check the raw response-data.'); } From ef0daae54b02bfc12b389860a22d57b998c813b1 Mon Sep 17 00:00:00 2001 From: johguentner Date: Thu, 2 Feb 2023 15:34:04 +0100 Subject: [PATCH 31/70] add tests which check properties/methods - of page parent information - of Title and Text property (added: asText()) --- tests/EndpointPagesTest.php | 2 ++ tests/PagePropertyTest.php | 2 ++ 2 files changed, 4 insertions(+) diff --git a/tests/EndpointPagesTest.php b/tests/EndpointPagesTest.php index cd33a19..770e62c 100644 --- a/tests/EndpointPagesTest.php +++ b/tests/EndpointPagesTest.php @@ -72,6 +72,8 @@ public function it_returns_page_entity_with_filled_properties() $this->assertCount(9, $pageResult->getRawProperties()); $this->assertCount(9, $pageResult->getProperties()); $this->assertCount(9, $pageResult->getPropertyKeys()); + $this->assertSame('database_id', $pageResult->getParentType()); + $this->assertSame('f2939732-f694-4ce2-b613-f28db6ded673', $pageResult->getParentId()); // check date and datetime properties $this->assertTrue($pageResult->getProperty('DateWithTime')->hasTime()); diff --git a/tests/PagePropertyTest.php b/tests/PagePropertyTest.php index bf02ace..739dbf2 100644 --- a/tests/PagePropertyTest.php +++ b/tests/PagePropertyTest.php @@ -99,6 +99,7 @@ public function it_checks_if_specific_page_property_is_a_valid_text_property() $this->assertSame('text', $text->getType()); $this->assertSame('|Zt@', $text->getId()); $this->assertSame('this is a nice Text :-)', $text->getPlainText()); + $this->assertSame('this is a nice Text :-)', $text->asText()); $this->assertInstanceOf(RichText::class, $text->getRichText()); $this->assertInstanceOf(RichText::class, $text->getContent()); $this->assertSame('this is a nice Text :-)', $text->getRichText()->getPlainText()); @@ -149,6 +150,7 @@ public function it_checks_if_specific_page_property_is_a_valid_title_property() $this->assertSame('title', $title->getType()); $this->assertSame('title', $title->getId()); $this->assertSame('Notion Is Awesome', $title->getPlainText()); + $this->assertSame('Notion Is Awesome', $title->asText()); $this->assertInstanceOf(RichText::class, $title->getContent()); $this->assertSame('Notion Is Awesome', $title->getContent()->getPlainText()); } From 20f634cc4e1f46b6ad94d3aacb30d4b5f8f19e72 Mon Sep 17 00:00:00 2001 From: JohGuentner <3506359+johguentner@users.noreply.github.com> Date: Thu, 2 Feb 2023 19:46:10 +0100 Subject: [PATCH 32/70] cleanup --- tests/EndpointDatabaseTest.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/EndpointDatabaseTest.php b/tests/EndpointDatabaseTest.php index bdb1725..4b29028 100644 --- a/tests/EndpointDatabaseTest.php +++ b/tests/EndpointDatabaseTest.php @@ -128,7 +128,7 @@ $this->expectException(NotionException::class); $this->expectExceptionMessage('Bad Request'); $this->expectExceptionCode(400); - + Notion::database('8284f3ff77e24d4a939d19459e4d6bdc')->query(); }); From 58b94f41dc2fc4066c755fe8172a3b4407cc05ad Mon Sep 17 00:00:00 2001 From: JohGuentner <3506359+johguentner@users.noreply.github.com> Date: Thu, 2 Feb 2023 19:47:31 +0100 Subject: [PATCH 33/70] cleanup --- tests/EndpointDatabaseTest.php | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/EndpointDatabaseTest.php b/tests/EndpointDatabaseTest.php index 4b29028..23508ef 100644 --- a/tests/EndpointDatabaseTest.php +++ b/tests/EndpointDatabaseTest.php @@ -128,7 +128,6 @@ $this->expectException(NotionException::class); $this->expectExceptionMessage('Bad Request'); $this->expectExceptionCode(400); - Notion::database('8284f3ff77e24d4a939d19459e4d6bdc')->query(); }); From bef69a5f298fbe8bade38f33ea43fd2a3d4a0539 Mon Sep 17 00:00:00 2001 From: johguentner Date: Sat, 4 Feb 2023 18:21:05 +0100 Subject: [PATCH 34/70] refactor timestampables of entities into traid - move properties created_time, last_updated_time, etc. to its own trait - remove attributes and methods from entity classes (which are applied by traid) - apply traid to according entity classes (database, page and block) - add created_by, last_updated_by to this new trait --- src/Entities/Blocks/Block.php | 32 ++------- src/Entities/Database.php | 31 ++------ src/Entities/Entity.php | 14 +--- src/Entities/Page.php | 31 ++------ src/Traits/TimestampableEntity.php | 110 +++++++++++++++++++++++++++++ 5 files changed, 124 insertions(+), 94 deletions(-) create mode 100644 src/Traits/TimestampableEntity.php diff --git a/src/Entities/Blocks/Block.php b/src/Entities/Blocks/Block.php index 68fb58e..226d180 100644 --- a/src/Entities/Blocks/Block.php +++ b/src/Entities/Blocks/Block.php @@ -5,6 +5,7 @@ use DateTime; use FiveamCode\LaravelNotionApi\Entities\Entity; use FiveamCode\LaravelNotionApi\Exceptions\HandlingException; +use FiveamCode\LaravelNotionApi\Traits\TimestampableEntity; use Illuminate\Support\Arr; /** @@ -12,6 +13,8 @@ */ class Block extends Entity { + use TimestampableEntity; + /** * @var string */ @@ -37,16 +40,6 @@ class Block extends Entity */ protected string $text = '[warning: unsupported in notion api]'; - /** - * @var DateTime - */ - protected DateTime $createdTime; - - /** - * @var DateTime - */ - protected DateTime $lastEditedTime; - /** * @param array $responseData * @@ -69,8 +62,7 @@ protected function fillFromRaw(): void $this->fillType(); $this->fillRawContent(); $this->fillHasChildren(); - $this->fillCreatedTime(); - $this->fillLastEditedTime(); + $this->fillTimestampableProperties(); } private function fillType(): void @@ -126,22 +118,6 @@ public function hasChildren(): bool return $this->hasChildren; } - /** - * @return DateTime - */ - public function getCreatedTime(): DateTime - { - return $this->createdTime; - } - - /** - * @return DateTime - */ - public function getLastEditedTime(): DateTime - { - return $this->lastEditedTime; - } - public function getContent() { return $this->content; diff --git a/src/Entities/Database.php b/src/Entities/Database.php index 453c106..bba8a97 100644 --- a/src/Entities/Database.php +++ b/src/Entities/Database.php @@ -3,8 +3,10 @@ namespace FiveamCode\LaravelNotionApi\Entities; use DateTime; +use FiveamCode\LaravelNotionApi\Entities\Properties\People; use FiveamCode\LaravelNotionApi\Entities\Properties\Property; use FiveamCode\LaravelNotionApi\Exceptions\HandlingException; +use FiveamCode\LaravelNotionApi\Traits\TimestampableEntity; use Illuminate\Support\Arr; use Illuminate\Support\Collection; @@ -13,6 +15,8 @@ */ class Database extends Entity { + use TimestampableEntity; + /** * @var string */ @@ -73,15 +77,7 @@ class Database extends Entity */ protected Collection $properties; - /** - * @var DateTime - */ - protected DateTime $createdTime; - /** - * @var DateTime - */ - protected DateTime $lastEditedTime; protected function setResponseData(array $responseData): void { @@ -101,8 +97,7 @@ private function fillFromRaw() $this->fillObjectType(); $this->fillProperties(); $this->fillDatabaseUrl(); - $this->fillCreatedTime(); - $this->fillLastEditedTime(); + $this->fillTimestampableProperties(); } private function fillTitle(): void @@ -268,20 +263,4 @@ public function getPropertyKeys(): array { return $this->propertyKeys; } - - /** - * @return DateTime - */ - public function getCreatedTime(): DateTime - { - return $this->createdTime; - } - - /** - * @return array - */ - public function getLastEditedTime(): DateTime - { - return $this->lastEditedTime; - } } diff --git a/src/Entities/Entity.php b/src/Entities/Entity.php index 9e571bd..1f28497 100644 --- a/src/Entities/Entity.php +++ b/src/Entities/Entity.php @@ -3,6 +3,7 @@ namespace FiveamCode\LaravelNotionApi\Entities; use Carbon\Carbon; +use DateTime; use FiveamCode\LaravelNotionApi\Exceptions\HandlingException; use FiveamCode\LaravelNotionApi\Exceptions\NotionException; use Illuminate\Support\Arr; @@ -68,19 +69,6 @@ protected function setResponseData(array $responseData): void $this->responseData = $responseData; } - protected function fillCreatedTime() - { - if (Arr::exists($this->responseData, 'created_time')) { - $this->createdTime = new Carbon($this->responseData['created_time']); - } - } - - protected function fillLastEditedTime() - { - if (Arr::exists($this->responseData, 'last_edited_time')) { - $this->lastEditedTime = new Carbon($this->responseData['last_edited_time']); - } - } protected function fillId() { diff --git a/src/Entities/Page.php b/src/Entities/Page.php index 77e6609..4a236ee 100644 --- a/src/Entities/Page.php +++ b/src/Entities/Page.php @@ -17,6 +17,7 @@ use FiveamCode\LaravelNotionApi\Entities\Properties\Title; use FiveamCode\LaravelNotionApi\Entities\Properties\Url; use FiveamCode\LaravelNotionApi\Exceptions\HandlingException; +use FiveamCode\LaravelNotionApi\Traits\TimestampableEntity; use Illuminate\Support\Arr; use Illuminate\Support\Collection; @@ -25,6 +26,8 @@ */ class Page extends Entity { + use TimestampableEntity; + /** * @var string */ @@ -80,16 +83,6 @@ class Page extends Entity */ protected Collection $properties; - /** - * @var DateTime - */ - protected DateTime $createdTime; - - /** - * @var DateTime - */ - protected DateTime $lastEditedTime; - /** * Page constructor. * @@ -128,8 +121,7 @@ private function fillFromRaw(): void $this->fillPageUrl(); $this->fillIcon(); $this->fillCover(); - $this->fillCreatedTime(); - $this->fillLastEditedTime(); + $this->fillTimestampableProperties(); } private function fillObjectType(): void @@ -474,19 +466,4 @@ public function getPropertyKeys(): array return $this->propertyKeys; } - /** - * @return DateTime - */ - public function getCreatedTime(): DateTime - { - return $this->createdTime; - } - - /** - * @return DateTime - */ - public function getLastEditedTime(): DateTime - { - return $this->lastEditedTime; - } } diff --git a/src/Traits/TimestampableEntity.php b/src/Traits/TimestampableEntity.php new file mode 100644 index 0000000..e021c58 --- /dev/null +++ b/src/Traits/TimestampableEntity.php @@ -0,0 +1,110 @@ +fillCreatedTime(); + $this->fillLastEditedTime(); + $this->fillCreatedBy(); + $this->fillLastEditedBy(); + } + + protected function fillCreatedTime(): void + { + if (Arr::exists($this->responseData, 'created_time')) { + $this->createdTime = new Carbon($this->responseData['created_time']); + } + } + + protected function fillLastEditedTime(): void + { + if (Arr::exists($this->responseData, 'last_edited_time')) { + $this->lastEditedTime = new Carbon($this->responseData['last_edited_time']); + } + } + + protected function fillCreatedBy(): void + { + if (Arr::exists($this->responseData, 'created_by')) { + $this->createdBy = new User($this->responseData['created_by']); + } + } + + protected function fillLastEditedBy(): void + { + if (Arr::exists($this->responseData, 'last_edited_by')) { + $this->lastEditedBy = new User($this->responseData['last_edited_by']); + } + } + + /** + * @return DateTime + */ + public function getCreatedTime(): DateTime + { + return $this->createdTime; + } + + /** + * @return DateTime + */ + public function getLastEditedTime(): DateTime + { + return $this->lastEditedTime; + } + + /** + * @return User + */ + public function getCreatedBy(): User + { + return $this->createdBy; + } + + /** + * @return User + */ + public function getLastEditedBy(): User + { + return $this->lastEditedBy; + } +} From 0a982bb2450d8c17feb23980eafab9c658e50d77 Mon Sep 17 00:00:00 2001 From: Di Date: Sat, 4 Feb 2023 18:21:21 +0100 Subject: [PATCH 35/70] Apply fixes from StyleCI (#104) --- src/Entities/Blocks/Block.php | 1 - src/Entities/Database.php | 4 ---- src/Entities/Entity.php | 3 --- src/Entities/Page.php | 1 - src/Traits/TimestampableEntity.php | 5 +---- 5 files changed, 1 insertion(+), 13 deletions(-) diff --git a/src/Entities/Blocks/Block.php b/src/Entities/Blocks/Block.php index 226d180..d15538f 100644 --- a/src/Entities/Blocks/Block.php +++ b/src/Entities/Blocks/Block.php @@ -2,7 +2,6 @@ namespace FiveamCode\LaravelNotionApi\Entities\Blocks; -use DateTime; use FiveamCode\LaravelNotionApi\Entities\Entity; use FiveamCode\LaravelNotionApi\Exceptions\HandlingException; use FiveamCode\LaravelNotionApi\Traits\TimestampableEntity; diff --git a/src/Entities/Database.php b/src/Entities/Database.php index bba8a97..e447107 100644 --- a/src/Entities/Database.php +++ b/src/Entities/Database.php @@ -2,8 +2,6 @@ namespace FiveamCode\LaravelNotionApi\Entities; -use DateTime; -use FiveamCode\LaravelNotionApi\Entities\Properties\People; use FiveamCode\LaravelNotionApi\Entities\Properties\Property; use FiveamCode\LaravelNotionApi\Exceptions\HandlingException; use FiveamCode\LaravelNotionApi\Traits\TimestampableEntity; @@ -77,8 +75,6 @@ class Database extends Entity */ protected Collection $properties; - - protected function setResponseData(array $responseData): void { parent::setResponseData($responseData); diff --git a/src/Entities/Entity.php b/src/Entities/Entity.php index 1f28497..5b02440 100644 --- a/src/Entities/Entity.php +++ b/src/Entities/Entity.php @@ -2,8 +2,6 @@ namespace FiveamCode\LaravelNotionApi\Entities; -use Carbon\Carbon; -use DateTime; use FiveamCode\LaravelNotionApi\Exceptions\HandlingException; use FiveamCode\LaravelNotionApi\Exceptions\NotionException; use Illuminate\Support\Arr; @@ -69,7 +67,6 @@ protected function setResponseData(array $responseData): void $this->responseData = $responseData; } - protected function fillId() { $this->id = $this->responseData['id']; diff --git a/src/Entities/Page.php b/src/Entities/Page.php index 4a236ee..eebc602 100644 --- a/src/Entities/Page.php +++ b/src/Entities/Page.php @@ -465,5 +465,4 @@ public function getPropertyKeys(): array { return $this->propertyKeys; } - } diff --git a/src/Traits/TimestampableEntity.php b/src/Traits/TimestampableEntity.php index e021c58..b148c70 100644 --- a/src/Traits/TimestampableEntity.php +++ b/src/Traits/TimestampableEntity.php @@ -4,17 +4,14 @@ use Carbon\Carbon; use DateTime; -use FiveamCode\LaravelNotionApi\Entities\Entity; use FiveamCode\LaravelNotionApi\Entities\User; use Illuminate\Support\Arr; /** - * Trait UpdatableEntity - * @package FiveamCode\LaravelNotionApi\Traits + * Trait UpdatableEntity. */ trait TimestampableEntity { - /** * @var array */ From 2b84fce1646c1dcae8fc718d097112ae0a82208d Mon Sep 17 00:00:00 2001 From: johguentner Date: Sun, 5 Feb 2023 11:14:21 +0100 Subject: [PATCH 36/70] refactor title and add description for db entity - refactor rawTitle into richTitle - add description and rawDescription (with according fill and getter) --- src/Entities/Database.php | 48 ++++++++++++++++++++++++++++++++++----- 1 file changed, 42 insertions(+), 6 deletions(-) diff --git a/src/Entities/Database.php b/src/Entities/Database.php index e447107..d7e64f7 100644 --- a/src/Entities/Database.php +++ b/src/Entities/Database.php @@ -3,6 +3,7 @@ namespace FiveamCode\LaravelNotionApi\Entities; use FiveamCode\LaravelNotionApi\Entities\Properties\Property; +use FiveamCode\LaravelNotionApi\Entities\PropertyItems\RichText; use FiveamCode\LaravelNotionApi\Exceptions\HandlingException; use FiveamCode\LaravelNotionApi\Traits\TimestampableEntity; use Illuminate\Support\Arr; @@ -20,6 +21,11 @@ class Database extends Entity */ protected string $title = ''; + /** + * @var string + */ + protected string $description = ''; + /** * @var string */ @@ -51,9 +57,14 @@ class Database extends Entity protected string $objectType = ''; /** - * @var array + * @var ?RichText + */ + protected ?RichText $richTitle = null; + + /** + * @var ?RichText */ - protected array $rawTitle = []; + protected ?RichText $richDescription = null; /** * @var array @@ -90,6 +101,7 @@ private function fillFromRaw() $this->fillIcon(); $this->fillCover(); $this->fillTitle(); + $this->fillDescription(); $this->fillObjectType(); $this->fillProperties(); $this->fillDatabaseUrl(); @@ -100,7 +112,15 @@ private function fillTitle(): void { if (Arr::exists($this->responseData, 'title') && is_array($this->responseData['title'])) { $this->title = Arr::first($this->responseData['title'], null, ['plain_text' => ''])['plain_text']; - $this->rawTitle = $this->responseData['title']; + $this->richTitle = new RichText($this->responseData['title']); + } + } + + private function fillDescription(): void + { + if (Arr::exists($this->responseData, 'description') && is_array($this->responseData['description'])) { + $this->description = Arr::first($this->responseData['description'], null, ['plain_text' => ''])['plain_text']; + $this->richDescription = new RichText($this->responseData['description']); } } @@ -188,6 +208,14 @@ public function getTitle(): string return $this->title; } + /** + * @return string + */ + public function getDescription(): string + { + return $this->description; + } + /** * @return string */ @@ -237,11 +265,19 @@ public function getProperties(): Collection } /** - * @return array + * @return ?RichText + */ + public function getRichTitle(): ?RichText + { + return $this->richTitle; + } + + /** + * @return ?RichText */ - public function getRawTitle(): array + public function getRichDescription(): ?RichText { - return $this->rawTitle; + return $this->richDescription; } /** From fcb68e9c98244a049b86373af6f0b4f082d8d4e4 Mon Sep 17 00:00:00 2001 From: johguentner Date: Sun, 5 Feb 2023 11:14:56 +0100 Subject: [PATCH 37/70] rewrite tests for title and add for description - within the database entity - add description example to stub --- tests/EndpointDatabasesTest.php | 7 ++++++- .../databases/response_specific_200.json | 19 +++++++++++++++++++ 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/tests/EndpointDatabasesTest.php b/tests/EndpointDatabasesTest.php index 12502e0..730d73c 100644 --- a/tests/EndpointDatabasesTest.php +++ b/tests/EndpointDatabasesTest.php @@ -4,6 +4,7 @@ use Carbon\Carbon; use FiveamCode\LaravelNotionApi\Entities\Database; +use FiveamCode\LaravelNotionApi\Entities\PropertyItems\RichText; use FiveamCode\LaravelNotionApi\Exceptions\NotionException; use Illuminate\Support\Facades\Http; use Notion; @@ -90,9 +91,13 @@ public function it_returns_database_entity_with_filled_properties() // check properties $this->assertSame('Grocery List', $databaseResult->getTitle()); + $this->assertSame('Grocery List Description', $databaseResult->getDescription()); $this->assertSame('database', $databaseResult->getObjectType()); - $this->assertCount(1, $databaseResult->getRawTitle()); + $this->assertInstanceOf(RichText::class, $databaseResult->getRichTitle()); + $this->assertInstanceOf(RichText::class, $databaseResult->getRichDescription()); + $this->assertCount(1, $databaseResult->getRichTitle()->getRawResponse()); + $this->assertCount(1, $databaseResult->getRichDescription()->getRawResponse()); $this->assertCount(12, $databaseResult->getRawProperties()); $this->assertInstanceOf(Carbon::class, $databaseResult->getCreatedTime()); diff --git a/tests/stubs/endpoints/databases/response_specific_200.json b/tests/stubs/endpoints/databases/response_specific_200.json index a900324..c0e50ad 100644 --- a/tests/stubs/endpoints/databases/response_specific_200.json +++ b/tests/stubs/endpoints/databases/response_specific_200.json @@ -3,6 +3,25 @@ "id": "668d797c-76fa-4934-9b05-ad288df2d136", "created_time": "2020-03-17T19:10:04.968Z", "last_edited_time": "2020-03-17T21:49:37.913Z", + "description": [ + { + "type": "text", + "text": { + "content": "Grocery List Description", + "link": null + }, + "annotations": { + "bold": false, + "italic": false, + "strikethrough": false, + "underline": false, + "code": false, + "color": "default" + }, + "plain_text": "Grocery List Description", + "href": null + } + ], "title": [ { "type": "text", From 558844e937c8e0b4b4eca43922ce5d22e4d26bf8 Mon Sep 17 00:00:00 2001 From: johguentner Date: Sun, 5 Feb 2023 11:18:10 +0100 Subject: [PATCH 38/70] rename ``TimestampableEntity`` - to ``HasTimestamps`` - for improved readability --- src/Entities/Blocks/Block.php | 4 ++-- src/Entities/Database.php | 4 ++-- src/Entities/Page.php | 4 ++-- src/Traits/{TimestampableEntity.php => HasTimestamps.php} | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) rename src/Traits/{TimestampableEntity.php => HasTimestamps.php} (98%) diff --git a/src/Entities/Blocks/Block.php b/src/Entities/Blocks/Block.php index d15538f..8958ab0 100644 --- a/src/Entities/Blocks/Block.php +++ b/src/Entities/Blocks/Block.php @@ -4,7 +4,7 @@ use FiveamCode\LaravelNotionApi\Entities\Entity; use FiveamCode\LaravelNotionApi\Exceptions\HandlingException; -use FiveamCode\LaravelNotionApi\Traits\TimestampableEntity; +use FiveamCode\LaravelNotionApi\Traits\HasTimestamps; use Illuminate\Support\Arr; /** @@ -12,7 +12,7 @@ */ class Block extends Entity { - use TimestampableEntity; + use HasTimestamps; /** * @var string diff --git a/src/Entities/Database.php b/src/Entities/Database.php index e447107..8070df2 100644 --- a/src/Entities/Database.php +++ b/src/Entities/Database.php @@ -4,7 +4,7 @@ use FiveamCode\LaravelNotionApi\Entities\Properties\Property; use FiveamCode\LaravelNotionApi\Exceptions\HandlingException; -use FiveamCode\LaravelNotionApi\Traits\TimestampableEntity; +use FiveamCode\LaravelNotionApi\Traits\HasTimestamps; use Illuminate\Support\Arr; use Illuminate\Support\Collection; @@ -13,7 +13,7 @@ */ class Database extends Entity { - use TimestampableEntity; + use HasTimestamps; /** * @var string diff --git a/src/Entities/Page.php b/src/Entities/Page.php index eebc602..20b2a32 100644 --- a/src/Entities/Page.php +++ b/src/Entities/Page.php @@ -17,7 +17,7 @@ use FiveamCode\LaravelNotionApi\Entities\Properties\Title; use FiveamCode\LaravelNotionApi\Entities\Properties\Url; use FiveamCode\LaravelNotionApi\Exceptions\HandlingException; -use FiveamCode\LaravelNotionApi\Traits\TimestampableEntity; +use FiveamCode\LaravelNotionApi\Traits\HasTimestamps; use Illuminate\Support\Arr; use Illuminate\Support\Collection; @@ -26,7 +26,7 @@ */ class Page extends Entity { - use TimestampableEntity; + use HasTimestamps; /** * @var string diff --git a/src/Traits/TimestampableEntity.php b/src/Traits/HasTimestamps.php similarity index 98% rename from src/Traits/TimestampableEntity.php rename to src/Traits/HasTimestamps.php index b148c70..054a839 100644 --- a/src/Traits/TimestampableEntity.php +++ b/src/Traits/HasTimestamps.php @@ -10,7 +10,7 @@ /** * Trait UpdatableEntity. */ -trait TimestampableEntity +trait HasTimestamps { /** * @var array From 192ae82d903d37578012de29a01ad337a12f3718 Mon Sep 17 00:00:00 2001 From: johguentner Date: Sun, 5 Feb 2023 11:50:32 +0100 Subject: [PATCH 39/70] introduce ``HasParent`` as Trait for entities - move page logic of ``HasParent`` to its on trait and did minor refactoring - add ``HasParent`` to Database and Block entity --- src/Entities/Blocks/Block.php | 4 ++- src/Entities/Database.php | 4 ++- src/Entities/Page.php | 44 ++----------------------- src/Traits/HasParent.php | 61 +++++++++++++++++++++++++++++++++++ 4 files changed, 70 insertions(+), 43 deletions(-) create mode 100644 src/Traits/HasParent.php diff --git a/src/Entities/Blocks/Block.php b/src/Entities/Blocks/Block.php index 8958ab0..19b91c8 100644 --- a/src/Entities/Blocks/Block.php +++ b/src/Entities/Blocks/Block.php @@ -4,6 +4,7 @@ use FiveamCode\LaravelNotionApi\Entities\Entity; use FiveamCode\LaravelNotionApi\Exceptions\HandlingException; +use FiveamCode\LaravelNotionApi\Traits\HasParent; use FiveamCode\LaravelNotionApi\Traits\HasTimestamps; use Illuminate\Support\Arr; @@ -12,7 +13,7 @@ */ class Block extends Entity { - use HasTimestamps; + use HasTimestamps, HasParent; /** * @var string @@ -61,6 +62,7 @@ protected function fillFromRaw(): void $this->fillType(); $this->fillRawContent(); $this->fillHasChildren(); + $this->fillParentProperties(); $this->fillTimestampableProperties(); } diff --git a/src/Entities/Database.php b/src/Entities/Database.php index 87e3a50..99539d6 100644 --- a/src/Entities/Database.php +++ b/src/Entities/Database.php @@ -5,6 +5,7 @@ use FiveamCode\LaravelNotionApi\Entities\Properties\Property; use FiveamCode\LaravelNotionApi\Entities\PropertyItems\RichText; use FiveamCode\LaravelNotionApi\Exceptions\HandlingException; +use FiveamCode\LaravelNotionApi\Traits\HasParent; use FiveamCode\LaravelNotionApi\Traits\HasTimestamps; use Illuminate\Support\Arr; use Illuminate\Support\Collection; @@ -14,7 +15,7 @@ */ class Database extends Entity { - use HasTimestamps; + use HasTimestamps, HasParent; /** * @var string @@ -105,6 +106,7 @@ private function fillFromRaw() $this->fillObjectType(); $this->fillProperties(); $this->fillDatabaseUrl(); + $this->fillParentProperties(); $this->fillTimestampableProperties(); } diff --git a/src/Entities/Page.php b/src/Entities/Page.php index 0d13691..a6f7822 100644 --- a/src/Entities/Page.php +++ b/src/Entities/Page.php @@ -17,6 +17,7 @@ use FiveamCode\LaravelNotionApi\Entities\Properties\Title; use FiveamCode\LaravelNotionApi\Entities\Properties\Url; use FiveamCode\LaravelNotionApi\Exceptions\HandlingException; +use FiveamCode\LaravelNotionApi\Traits\HasParent; use FiveamCode\LaravelNotionApi\Traits\HasTimestamps; use Illuminate\Support\Arr; use Illuminate\Support\Collection; @@ -26,7 +27,7 @@ */ class Page extends Entity { - use HasTimestamps; + use HasTimestamps, HasParent; /** * @var string @@ -58,16 +59,6 @@ class Page extends Entity */ private string $coverType = ''; - /** - * @var string - */ - private string $parentId = ''; - - /** - * @var string - */ - private string $parentType = ''; - /** * @var string */ @@ -125,13 +116,13 @@ protected function setResponseData(array $responseData): void private function fillFromRaw(): void { $this->fillId(); - $this->fillParent(); $this->fillObjectType(); $this->fillProperties(); $this->fillTitle(); // This has to be called after fillProperties(), since title is provided by properties $this->fillPageUrl(); $this->fillIcon(); $this->fillCover(); + $this->fillParentProperties(); $this->fillTimestampableProperties(); } @@ -208,19 +199,6 @@ private function fillPageUrl(): void } } - private function fillParent(): void - { - if (Arr::exists($this->responseData, 'parent')) { - $this->parentType = $this->responseData['parent']['type']; - if (Arr::exists($this->responseData['parent'], 'database_id')) { - $this->parentId = $this->responseData['parent']['database_id']; - } elseif (Arr::exists($this->responseData['parent'], 'page_id')) { - $this->parentId = $this->responseData['parent']['page_id']; - } elseif (Arr::exists($this->responseData['parent'], 'workspace')) { - $this->parentId = $this->responseData['parent']['workspace']; - } - } - } /** * @param $propertyTitle @@ -475,22 +453,6 @@ public function getObjectType(): string return $this->objectType; } - /** - * @return string - */ - public function getParentId(): string - { - return $this->parentId; - } - - /** - * @return string - */ - public function getParentType(): string - { - return $this->parentType; - } - /** * @return array */ diff --git a/src/Traits/HasParent.php b/src/Traits/HasParent.php new file mode 100644 index 0000000..2bb7d41 --- /dev/null +++ b/src/Traits/HasParent.php @@ -0,0 +1,61 @@ +fillParent(); + } + + private function fillParent(): void + { + if (Arr::exists($this->responseData, 'parent') && Arr::exists($this->responseData['parent'], 'type')) { + $this->parentType = $this->responseData['parent']['type']; + if (Arr::exists($this->responseData['parent'], $this->parentType)) { + $this->parentId = $this->responseData['parent'][$this->parentType]; + } + } + } + + /** + * @return string + */ + public function getParentId(): string + { + return $this->parentId; + } + + /** + * @return string + */ + public function getParentType(): string + { + return $this->parentType; + } +} From 0cccb2eb9f14f1c3c7e084173b1dd73c0d97fbc7 Mon Sep 17 00:00:00 2001 From: johguentner Date: Sun, 5 Feb 2023 11:51:38 +0100 Subject: [PATCH 40/70] add tests for entities which use ``HasParent`` - tests already exist for page entity - add to database and block tests - add raw parent property to stubs within block and database --- tests/EndpointBlocksTest.php | 6 +++ tests/EndpointDatabasesTest.php | 3 ++ .../blocks/response_specific_block_200.json | 8 ++- .../databases/response_specific_200.json | 49 ++++++++++--------- 4 files changed, 41 insertions(+), 25 deletions(-) diff --git a/tests/EndpointBlocksTest.php b/tests/EndpointBlocksTest.php index f26ea0b..0964493 100644 --- a/tests/EndpointBlocksTest.php +++ b/tests/EndpointBlocksTest.php @@ -340,5 +340,11 @@ public function it_retrieves_a_single_block() $this->assertInstanceOf(Block::class, $block); $this->assertInstanceOf(Paragraph::class, $block); + $this->assertEquals('a6f8ebe8-d5df-4ffa-b543-bcd54d1c3bad', $block->getId()); + $this->assertEquals('paragraph', $block->getType()); + $this->assertEquals('This is a paragraph test', $block->getContent()->getPlainText()); + + $this->assertEquals('page_id', $block->getParentType()); + $this->assertEquals('f2939732-f694-4ce2-b613-f28db6ded673', $block->getParentId()); } } diff --git a/tests/EndpointDatabasesTest.php b/tests/EndpointDatabasesTest.php index 730d73c..7dc2d7a 100644 --- a/tests/EndpointDatabasesTest.php +++ b/tests/EndpointDatabasesTest.php @@ -102,6 +102,9 @@ public function it_returns_database_entity_with_filled_properties() $this->assertInstanceOf(Carbon::class, $databaseResult->getCreatedTime()); $this->assertInstanceOf(Carbon::class, $databaseResult->getLastEditedTime()); + + $this->assertEquals('page_id', $databaseResult->getParentType()); + $this->assertEquals('f2939732-f694-4ce2-b613-f28db6ded673', $databaseResult->getParentId()); } /** @test */ diff --git a/tests/stubs/endpoints/blocks/response_specific_block_200.json b/tests/stubs/endpoints/blocks/response_specific_block_200.json index 1b2a15f..1de5b9f 100644 --- a/tests/stubs/endpoints/blocks/response_specific_block_200.json +++ b/tests/stubs/endpoints/blocks/response_specific_block_200.json @@ -6,12 +6,16 @@ "has_children": false, "archived": false, "type": "paragraph", + "parent": { + "type": "page_id", + "page_id": "f2939732-f694-4ce2-b613-f28db6ded673" + }, "paragraph": { "text": [ { "type": "text", "text": { - "content": "C:\\xampp\\php", + "content": "This is a paragraph test", "link": null }, "annotations": { @@ -22,7 +26,7 @@ "code": false, "color": "default" }, - "plain_text": "C:\\xampp\\php", + "plain_text": "This is a paragraph test", "href": null } ] diff --git a/tests/stubs/endpoints/databases/response_specific_200.json b/tests/stubs/endpoints/databases/response_specific_200.json index c0e50ad..bbe9fcf 100644 --- a/tests/stubs/endpoints/databases/response_specific_200.json +++ b/tests/stubs/endpoints/databases/response_specific_200.json @@ -3,6 +3,10 @@ "id": "668d797c-76fa-4934-9b05-ad288df2d136", "created_time": "2020-03-17T19:10:04.968Z", "last_edited_time": "2020-03-17T21:49:37.913Z", + "parent": { + "type": "page_id", + "page_id": "f2939732-f694-4ce2-b613-f28db6ded673" + }, "description": [ { "type": "text", @@ -122,29 +126,28 @@ "id": "Z\\Eh", "type": "multi_select", "multi_select": { - "options": - [ - { - "id": "d209b920-212c-4040-9d4a-bdf349dd8b2a", - "name": "Duc Loi Market", - "color": "blue" - }, - { - "id": "70104074-0f91-467b-9787-00d59e6e1e41", - "name": "Rainbow Grocery", - "color": "gray" - }, - { - "id": "e6fd4f04-894d-4fa7-8d8b-e92d08ebb604", - "name": "Nijiya Market", - "color": "purple" - }, - { - "id": "6c3867c5-d542-4f84-b6e9-a420c43094e7", - "name": "Gus's Community Market", - "color": "yellow" - } - ] + "options": [ + { + "id": "d209b920-212c-4040-9d4a-bdf349dd8b2a", + "name": "Duc Loi Market", + "color": "blue" + }, + { + "id": "70104074-0f91-467b-9787-00d59e6e1e41", + "name": "Rainbow Grocery", + "color": "gray" + }, + { + "id": "e6fd4f04-894d-4fa7-8d8b-e92d08ebb604", + "name": "Nijiya Market", + "color": "purple" + }, + { + "id": "6c3867c5-d542-4f84-b6e9-a420c43094e7", + "name": "Gus's Community Market", + "color": "yellow" + } + ] } }, "+1": { From f2c0702046e884c9aeb264f08093e2eddf6f578b Mon Sep 17 00:00:00 2001 From: Di Date: Sun, 5 Feb 2023 11:51:54 +0100 Subject: [PATCH 41/70] Apply fixes from StyleCI (#106) --- src/Entities/Page.php | 1 - src/Traits/HasParent.php | 6 +----- 2 files changed, 1 insertion(+), 6 deletions(-) diff --git a/src/Entities/Page.php b/src/Entities/Page.php index a6f7822..1fd26ba 100644 --- a/src/Entities/Page.php +++ b/src/Entities/Page.php @@ -199,7 +199,6 @@ private function fillPageUrl(): void } } - /** * @param $propertyTitle * @param $property diff --git a/src/Traits/HasParent.php b/src/Traits/HasParent.php index 2bb7d41..f9cef22 100644 --- a/src/Traits/HasParent.php +++ b/src/Traits/HasParent.php @@ -2,13 +2,10 @@ namespace FiveamCode\LaravelNotionApi\Traits; -use Carbon\Carbon; -use DateTime; -use FiveamCode\LaravelNotionApi\Entities\User; use Illuminate\Support\Arr; /** - * Trait HasParent + * Trait HasParent. */ trait HasParent { @@ -27,7 +24,6 @@ trait HasParent */ private string $parentType = ''; - protected function fillParentProperties(): void { $this->fillParent(); From b9797bf46ca58205194d4a328bc130045a0cce93 Mon Sep 17 00:00:00 2001 From: johguentner Date: Sun, 5 Feb 2023 12:04:05 +0100 Subject: [PATCH 42/70] add ``is_inline`` property to database entity - add missing prop to stub - add check for property within database test --- src/Entities/Database.php | 21 +++++++++++++++++++ tests/EndpointDatabasesTest.php | 2 ++ .../databases/response_specific_200.json | 1 + 3 files changed, 24 insertions(+) diff --git a/src/Entities/Database.php b/src/Entities/Database.php index 99539d6..719410f 100644 --- a/src/Entities/Database.php +++ b/src/Entities/Database.php @@ -67,6 +67,11 @@ class Database extends Entity */ protected ?RichText $richDescription = null; + /** + * @var bool + */ + protected bool $isInline = false; + /** * @var array */ @@ -102,6 +107,7 @@ private function fillFromRaw() $this->fillIcon(); $this->fillCover(); $this->fillTitle(); + $this->fillIsInline(); $this->fillDescription(); $this->fillObjectType(); $this->fillProperties(); @@ -118,6 +124,13 @@ private function fillTitle(): void } } + private function fillIsInline(): void + { + if (Arr::exists($this->responseData, 'is_inline')) { + $this->isInline = $this->responseData['is_inline']; + } + } + private function fillDescription(): void { if (Arr::exists($this->responseData, 'description') && is_array($this->responseData['description'])) { @@ -210,6 +223,14 @@ public function getTitle(): string return $this->title; } + /** + * @return bool + */ + public function getIsInline(): bool + { + return $this->isInline; + } + /** * @return string */ diff --git a/tests/EndpointDatabasesTest.php b/tests/EndpointDatabasesTest.php index 7dc2d7a..c0203b0 100644 --- a/tests/EndpointDatabasesTest.php +++ b/tests/EndpointDatabasesTest.php @@ -93,6 +93,8 @@ public function it_returns_database_entity_with_filled_properties() $this->assertSame('Grocery List', $databaseResult->getTitle()); $this->assertSame('Grocery List Description', $databaseResult->getDescription()); $this->assertSame('database', $databaseResult->getObjectType()); + $this->assertSame('668d797c-76fa-4934-9b05-ad288df2d136', $databaseResult->getId()); + $this->assertTrue($databaseResult->getIsInline()); $this->assertInstanceOf(RichText::class, $databaseResult->getRichTitle()); $this->assertInstanceOf(RichText::class, $databaseResult->getRichDescription()); diff --git a/tests/stubs/endpoints/databases/response_specific_200.json b/tests/stubs/endpoints/databases/response_specific_200.json index bbe9fcf..3bf2da7 100644 --- a/tests/stubs/endpoints/databases/response_specific_200.json +++ b/tests/stubs/endpoints/databases/response_specific_200.json @@ -7,6 +7,7 @@ "type": "page_id", "page_id": "f2939732-f694-4ce2-b613-f28db6ded673" }, + "is_inline": true, "description": [ { "type": "text", From 60bcca4a7a0282551717574feead3b6ad1dd4aea Mon Sep 17 00:00:00 2001 From: johguentner Date: Sun, 5 Feb 2023 12:24:42 +0100 Subject: [PATCH 43/70] introduce ``HasArchive`` trait for entities - the handling of archived-flags can be added to entities by this trait - add trait to database, page and block --- src/Entities/Blocks/Block.php | 4 +++- src/Entities/Database.php | 6 +++-- src/Entities/Page.php | 4 +++- src/Traits/HasArchive.php | 42 +++++++++++++++++++++++++++++++++++ 4 files changed, 52 insertions(+), 4 deletions(-) create mode 100644 src/Traits/HasArchive.php diff --git a/src/Entities/Blocks/Block.php b/src/Entities/Blocks/Block.php index 19b91c8..68957e1 100644 --- a/src/Entities/Blocks/Block.php +++ b/src/Entities/Blocks/Block.php @@ -4,6 +4,7 @@ use FiveamCode\LaravelNotionApi\Entities\Entity; use FiveamCode\LaravelNotionApi\Exceptions\HandlingException; +use FiveamCode\LaravelNotionApi\Traits\HasArchive; use FiveamCode\LaravelNotionApi\Traits\HasParent; use FiveamCode\LaravelNotionApi\Traits\HasTimestamps; use Illuminate\Support\Arr; @@ -13,7 +14,7 @@ */ class Block extends Entity { - use HasTimestamps, HasParent; + use HasTimestamps, HasArchive, HasParent; /** * @var string @@ -63,6 +64,7 @@ protected function fillFromRaw(): void $this->fillRawContent(); $this->fillHasChildren(); $this->fillParentProperties(); + $this->fillArchivedProperties(); $this->fillTimestampableProperties(); } diff --git a/src/Entities/Database.php b/src/Entities/Database.php index 719410f..2a77a93 100644 --- a/src/Entities/Database.php +++ b/src/Entities/Database.php @@ -5,6 +5,7 @@ use FiveamCode\LaravelNotionApi\Entities\Properties\Property; use FiveamCode\LaravelNotionApi\Entities\PropertyItems\RichText; use FiveamCode\LaravelNotionApi\Exceptions\HandlingException; +use FiveamCode\LaravelNotionApi\Traits\HasArchive; use FiveamCode\LaravelNotionApi\Traits\HasParent; use FiveamCode\LaravelNotionApi\Traits\HasTimestamps; use Illuminate\Support\Arr; @@ -15,7 +16,7 @@ */ class Database extends Entity { - use HasTimestamps, HasParent; + use HasTimestamps, HasArchive, HasParent; /** * @var string @@ -113,6 +114,7 @@ private function fillFromRaw() $this->fillProperties(); $this->fillDatabaseUrl(); $this->fillParentProperties(); + $this->fillArchivedProperties(); $this->fillTimestampableProperties(); } @@ -226,7 +228,7 @@ public function getTitle(): string /** * @return bool */ - public function getIsInline(): bool + public function isInline(): bool { return $this->isInline; } diff --git a/src/Entities/Page.php b/src/Entities/Page.php index 1fd26ba..b697fa2 100644 --- a/src/Entities/Page.php +++ b/src/Entities/Page.php @@ -17,6 +17,7 @@ use FiveamCode\LaravelNotionApi\Entities\Properties\Title; use FiveamCode\LaravelNotionApi\Entities\Properties\Url; use FiveamCode\LaravelNotionApi\Exceptions\HandlingException; +use FiveamCode\LaravelNotionApi\Traits\HasArchive; use FiveamCode\LaravelNotionApi\Traits\HasParent; use FiveamCode\LaravelNotionApi\Traits\HasTimestamps; use Illuminate\Support\Arr; @@ -27,7 +28,7 @@ */ class Page extends Entity { - use HasTimestamps, HasParent; + use HasTimestamps, HasArchive, HasParent; /** * @var string @@ -123,6 +124,7 @@ private function fillFromRaw(): void $this->fillIcon(); $this->fillCover(); $this->fillParentProperties(); + $this->fillArchivedProperties(); $this->fillTimestampableProperties(); } diff --git a/src/Traits/HasArchive.php b/src/Traits/HasArchive.php new file mode 100644 index 0000000..dd807c5 --- /dev/null +++ b/src/Traits/HasArchive.php @@ -0,0 +1,42 @@ +fillArchived(); + } + + private function fillArchived(): void + { + if (Arr::exists($this->responseData, 'archived')) { + $this->archived = $this->responseData['archived']; + } + } + + /** + * @return bool + */ + public function isArchived(): bool + { + return $this->archived; + } +} From 81b2b102b54fa3031471866ab5e6cd8c1f8b2b6d Mon Sep 17 00:00:00 2001 From: johguentner Date: Sun, 5 Feb 2023 12:25:52 +0100 Subject: [PATCH 44/70] add tests for the ``HasArchive`` trait - to database, block and pages - change stubs regarding the archived-flag, to force testing to check for ``true`` as archived --- tests/EndpointBlocksTest.php | 1 + tests/EndpointDatabasesTest.php | 3 ++- tests/EndpointPagesTest.php | 1 + tests/stubs/endpoints/blocks/response_specific_block_200.json | 2 +- tests/stubs/endpoints/databases/response_specific_200.json | 1 + tests/stubs/endpoints/pages/response_specific_200.json | 2 +- 6 files changed, 7 insertions(+), 3 deletions(-) diff --git a/tests/EndpointBlocksTest.php b/tests/EndpointBlocksTest.php index 0964493..ffb1943 100644 --- a/tests/EndpointBlocksTest.php +++ b/tests/EndpointBlocksTest.php @@ -346,5 +346,6 @@ public function it_retrieves_a_single_block() $this->assertEquals('page_id', $block->getParentType()); $this->assertEquals('f2939732-f694-4ce2-b613-f28db6ded673', $block->getParentId()); + $this->assertTrue($block->isArchived()); } } diff --git a/tests/EndpointDatabasesTest.php b/tests/EndpointDatabasesTest.php index c0203b0..42f3891 100644 --- a/tests/EndpointDatabasesTest.php +++ b/tests/EndpointDatabasesTest.php @@ -94,7 +94,8 @@ public function it_returns_database_entity_with_filled_properties() $this->assertSame('Grocery List Description', $databaseResult->getDescription()); $this->assertSame('database', $databaseResult->getObjectType()); $this->assertSame('668d797c-76fa-4934-9b05-ad288df2d136', $databaseResult->getId()); - $this->assertTrue($databaseResult->getIsInline()); + $this->assertTrue($databaseResult->isInline()); + $this->assertTrue($databaseResult->isArchived()); $this->assertInstanceOf(RichText::class, $databaseResult->getRichTitle()); $this->assertInstanceOf(RichText::class, $databaseResult->getRichDescription()); diff --git a/tests/EndpointPagesTest.php b/tests/EndpointPagesTest.php index d0c3323..f8608b2 100644 --- a/tests/EndpointPagesTest.php +++ b/tests/EndpointPagesTest.php @@ -75,6 +75,7 @@ public function it_returns_page_entity_with_filled_properties() $this->assertCount(9, $pageResult->getPropertyKeys()); $this->assertSame('database_id', $pageResult->getParentType()); $this->assertSame('f2939732-f694-4ce2-b613-f28db6ded673', $pageResult->getParentId()); + $this->assertTrue($pageResult->isArchived()); // check date and datetime properties $this->assertTrue($pageResult->getProperty('DateWithTime')->hasTime()); diff --git a/tests/stubs/endpoints/blocks/response_specific_block_200.json b/tests/stubs/endpoints/blocks/response_specific_block_200.json index 1de5b9f..de5336b 100644 --- a/tests/stubs/endpoints/blocks/response_specific_block_200.json +++ b/tests/stubs/endpoints/blocks/response_specific_block_200.json @@ -4,7 +4,7 @@ "created_time": "2021-05-17T13:51:00.000Z", "last_edited_time": "2021-06-10T17:40:00.000Z", "has_children": false, - "archived": false, + "archived": true, "type": "paragraph", "parent": { "type": "page_id", diff --git a/tests/stubs/endpoints/databases/response_specific_200.json b/tests/stubs/endpoints/databases/response_specific_200.json index 3bf2da7..af8ae96 100644 --- a/tests/stubs/endpoints/databases/response_specific_200.json +++ b/tests/stubs/endpoints/databases/response_specific_200.json @@ -8,6 +8,7 @@ "page_id": "f2939732-f694-4ce2-b613-f28db6ded673" }, "is_inline": true, + "archived": true, "description": [ { "type": "text", diff --git a/tests/stubs/endpoints/pages/response_specific_200.json b/tests/stubs/endpoints/pages/response_specific_200.json index 268e117..b34e012 100644 --- a/tests/stubs/endpoints/pages/response_specific_200.json +++ b/tests/stubs/endpoints/pages/response_specific_200.json @@ -7,7 +7,7 @@ "type": "database_id", "database_id": "f2939732-f694-4ce2-b613-f28db6ded673" }, - "archived": false, + "archived": true, "properties": { "NumberProp": { "id": ">d{N", From dedf7c31423481511ea51d9816328ab4c48329f9 Mon Sep 17 00:00:00 2001 From: Di Date: Sun, 5 Feb 2023 12:26:09 +0100 Subject: [PATCH 45/70] Apply fixes from StyleCI (#107) --- src/Traits/HasArchive.php | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/Traits/HasArchive.php b/src/Traits/HasArchive.php index dd807c5..bba5a49 100644 --- a/src/Traits/HasArchive.php +++ b/src/Traits/HasArchive.php @@ -5,7 +5,7 @@ use Illuminate\Support\Arr; /** - * Trait HasArchive + * Trait HasArchive. */ trait HasArchive { @@ -19,7 +19,6 @@ trait HasArchive */ private bool $archived = false; - protected function fillArchivedProperties(): void { $this->fillArchived(); From c5b482ec434d794d00913ab2bec5467b79063eba Mon Sep 17 00:00:00 2001 From: johguentner Date: Sun, 5 Feb 2023 12:42:43 +0100 Subject: [PATCH 46/70] move ``object`` to entity base class - and do filling of ``id`` and ``object`` within a entity base class method - call ``::fillEntityBase`` form the ``fillFromRaw`` within all according entitites - add test-cases for checking ``getObjectType`` --- src/Entities/Blocks/Block.php | 2 +- src/Entities/Database.php | 23 +----------------- src/Entities/Entity.php | 29 ++++++++++++++++++++++- src/Entities/Page.php | 23 +----------------- src/Entities/Properties/Property.php | 2 +- src/Entities/PropertyItems/SelectItem.php | 2 +- src/Entities/User.php | 2 +- 7 files changed, 34 insertions(+), 49 deletions(-) diff --git a/src/Entities/Blocks/Block.php b/src/Entities/Blocks/Block.php index 68957e1..2524a88 100644 --- a/src/Entities/Blocks/Block.php +++ b/src/Entities/Blocks/Block.php @@ -59,7 +59,7 @@ protected function setResponseData(array $responseData): void protected function fillFromRaw(): void { - $this->fillId(); + parent::fillEntityBase(); $this->fillType(); $this->fillRawContent(); $this->fillHasChildren(); diff --git a/src/Entities/Database.php b/src/Entities/Database.php index 2a77a93..28acc25 100644 --- a/src/Entities/Database.php +++ b/src/Entities/Database.php @@ -53,11 +53,6 @@ class Database extends Entity */ private string $url; - /** - * @var string - */ - protected string $objectType = ''; - /** * @var ?RichText */ @@ -104,13 +99,12 @@ protected function setResponseData(array $responseData): void private function fillFromRaw() { - $this->fillId(); + parent::fillEntityBase(); $this->fillIcon(); $this->fillCover(); $this->fillTitle(); $this->fillIsInline(); $this->fillDescription(); - $this->fillObjectType(); $this->fillProperties(); $this->fillDatabaseUrl(); $this->fillParentProperties(); @@ -174,13 +168,6 @@ private function fillCover(): void } } - private function fillObjectType(): void - { - if (Arr::exists($this->responseData, 'object')) { - $this->objectType = $this->responseData['object']; - } - } - private function fillProperties(): void { if (Arr::exists($this->responseData, 'properties')) { @@ -209,14 +196,6 @@ public function getProperty(string $propertyKey): ?Property return $this->propertyMap[$propertyKey]; } - /** - * @return string - */ - public function getObjectType(): string - { - return $this->objectType; - } - /** * @return string */ diff --git a/src/Entities/Entity.php b/src/Entities/Entity.php index 5b02440..ea6488d 100644 --- a/src/Entities/Entity.php +++ b/src/Entities/Entity.php @@ -17,6 +17,11 @@ class Entity implements JsonSerializable */ private string $id; + /** + * @var string + */ + protected string $objectType = ''; + /** * @var array */ @@ -67,11 +72,24 @@ protected function setResponseData(array $responseData): void $this->responseData = $responseData; } - protected function fillId() + protected function fillEntityBase(): void + { + $this->fillId(); + $this->fillObjectType(); + } + + private function fillId() { $this->id = $this->responseData['id']; } + private function fillObjectType(): void + { + if (Arr::exists($this->responseData, 'object')) { + $this->objectType = $this->responseData['object']; + } + } + /** * @return string */ @@ -80,11 +98,20 @@ public function getId(): string return $this->id; } + public function setId($id): void { $this->id = $id; } + /** + * @return string + */ + public function getObjectType(): string + { + return $this->objectType; + } + /** * @return array */ diff --git a/src/Entities/Page.php b/src/Entities/Page.php index b697fa2..caf0971 100644 --- a/src/Entities/Page.php +++ b/src/Entities/Page.php @@ -60,11 +60,6 @@ class Page extends Entity */ private string $coverType = ''; - /** - * @var string - */ - protected string $objectType = ''; - /** * @var array */ @@ -116,8 +111,7 @@ protected function setResponseData(array $responseData): void private function fillFromRaw(): void { - $this->fillId(); - $this->fillObjectType(); + parent::fillEntityBase(); $this->fillProperties(); $this->fillTitle(); // This has to be called after fillProperties(), since title is provided by properties $this->fillPageUrl(); @@ -128,13 +122,6 @@ private function fillFromRaw(): void $this->fillTimestampableProperties(); } - private function fillObjectType(): void - { - if (Arr::exists($this->responseData, 'object')) { - $this->objectType = $this->responseData['object']; - } - } - /** * @throws HandlingException */ @@ -446,14 +433,6 @@ public function getProperty(string $propertyKey): ?Property return $this->propertyMap[$propertyKey]; } - /** - * @return string - */ - public function getObjectType(): string - { - return $this->objectType; - } - /** * @return array */ diff --git a/src/Entities/Properties/Property.php b/src/Entities/Properties/Property.php index 2ceb17c..32f17cd 100644 --- a/src/Entities/Properties/Property.php +++ b/src/Entities/Properties/Property.php @@ -62,7 +62,7 @@ protected function setResponseData(array $responseData): void protected function fillFromRaw(): void { - $this->fillId(); + parent::fillEntityBase(); $this->fillType(); $this->fillContent(); } diff --git a/src/Entities/PropertyItems/SelectItem.php b/src/Entities/PropertyItems/SelectItem.php index 42e8437..87f1228 100644 --- a/src/Entities/PropertyItems/SelectItem.php +++ b/src/Entities/PropertyItems/SelectItem.php @@ -36,7 +36,7 @@ protected function setResponseData(array $responseData): void protected function fillFromRaw(): void { - $this->fillId(); + parent::fillEntityBase(); $this->fillName(); $this->fillColor(); } diff --git a/src/Entities/User.php b/src/Entities/User.php index e337bf3..9c201fb 100644 --- a/src/Entities/User.php +++ b/src/Entities/User.php @@ -37,7 +37,7 @@ protected function setResponseData(array $responseData): void private function fillFromRaw(): void { - $this->fillId(); + parent::fillEntityBase(); $this->fillName(); $this->fillAvatarUrl(); } From 4d36500fcdf7c717f11ffccdb5f921fba8e047fe Mon Sep 17 00:00:00 2001 From: johguentner Date: Sun, 5 Feb 2023 12:42:52 +0100 Subject: [PATCH 47/70] add test-cases (previous commit) --- tests/EndpointBlocksTest.php | 1 + tests/EndpointUsersTest.php | 1 + 2 files changed, 2 insertions(+) diff --git a/tests/EndpointBlocksTest.php b/tests/EndpointBlocksTest.php index ffb1943..089814f 100644 --- a/tests/EndpointBlocksTest.php +++ b/tests/EndpointBlocksTest.php @@ -343,6 +343,7 @@ public function it_retrieves_a_single_block() $this->assertEquals('a6f8ebe8-d5df-4ffa-b543-bcd54d1c3bad', $block->getId()); $this->assertEquals('paragraph', $block->getType()); $this->assertEquals('This is a paragraph test', $block->getContent()->getPlainText()); + $this->assertEquals('block', $block->getObjectType()); $this->assertEquals('page_id', $block->getParentType()); $this->assertEquals('f2939732-f694-4ce2-b613-f28db6ded673', $block->getParentId()); diff --git a/tests/EndpointUsersTest.php b/tests/EndpointUsersTest.php index e9b17af..25e56c1 100644 --- a/tests/EndpointUsersTest.php +++ b/tests/EndpointUsersTest.php @@ -80,6 +80,7 @@ public function it_returns_a_specific_user_as_entity_object() $this->assertInstanceOf(User::class, $user); $this->assertEquals('Avocado Lovelace', $user->getName()); + $this->assertEquals('user', $user->getObjectType()); $this->assertEquals('https://secure.notion-static.com/e6a352a8-8381-44d0-a1dc-9ed80e62b53d.jpg', $user->getAvatarUrl()); } From d59324c0e9228e685fa7eb46008c56793aad3fa4 Mon Sep 17 00:00:00 2001 From: Di Date: Sun, 5 Feb 2023 12:43:09 +0100 Subject: [PATCH 48/70] Apply fixes from StyleCI (#108) --- src/Entities/Entity.php | 1 - 1 file changed, 1 deletion(-) diff --git a/src/Entities/Entity.php b/src/Entities/Entity.php index ea6488d..b3e45fc 100644 --- a/src/Entities/Entity.php +++ b/src/Entities/Entity.php @@ -98,7 +98,6 @@ public function getId(): string return $this->id; } - public function setId($id): void { $this->id = $id; From 6ddc29e9af9a550956b91c9ffdc499c51cee2b8f Mon Sep 17 00:00:00 2001 From: johguentner Date: Sun, 5 Feb 2023 17:53:11 +0100 Subject: [PATCH 49/70] add comment entity, collection and endpoints - create comment entity with all available attributes - create comment collection for a simple representation as list - create endpoint for comment listing, based on ``block_id`` - create endpoint for comment creation, based on ``page_id`` or ``discussion_id`` - add comment endpoint access to ``Notion::class`` --- src/Endpoints/Comments.php | 113 ++++++++++++++++ src/Endpoints/Endpoint.php | 1 + .../Collections/CommentCollection.php | 24 ++++ src/Entities/Comment.php | 124 ++++++++++++++++++ src/Notion.php | 6 + 5 files changed, 268 insertions(+) create mode 100644 src/Endpoints/Comments.php create mode 100644 src/Entities/Collections/CommentCollection.php create mode 100644 src/Entities/Comment.php diff --git a/src/Endpoints/Comments.php b/src/Endpoints/Comments.php new file mode 100644 index 0000000..22d1ca0 --- /dev/null +++ b/src/Endpoints/Comments.php @@ -0,0 +1,113 @@ +get( + $this->url(Endpoint::COMMENTS . "?block_id={$blockId}&{$this->buildPaginationQuery()}") + ); + + return new CommentCollection($response->json()); + } + + /** + * @param string $discussionId + * + * @return Comments + */ + public function onDiscussion(string $discussionId): self + { + if($this->pageId !== null) { + throw new HandlingException('You can only use ``->onDiscussion(...)`` or ``->onPage(...)``.'); + } + + $this->discussionId = $discussionId; + return $this; + } + + /** + * @param string $pageId + * + * @return Comments + */ + public function onPage(string $pageId): self + { + if($this->discussionId !== null) { + throw new HandlingException('You can only use ``->onDiscussion(...)`` or ``->onPage(...)``.'); + } + + $this->pageId = $pageId; + return $this; + } + + public function create($comment): Comment + { + if ($this->discussionId === null && $this->pageId === null) { + throw new HandlingException('You must use ``->onDiscussion(...)`` or ``->onPage(...)``.'); + } + + $body = $comment->getRawResponse(); + if ($this->discussionId !== null) { + $body['discussion_id'] = $this->discussionId; + } else { + $body['parent'] = [ + 'page_id' => $this->pageId, + ]; + } + + $response = $this->post( + $this->url(Endpoint::COMMENTS), + $body + ); + + return new Comment($response->json()); + } +} diff --git a/src/Endpoints/Endpoint.php b/src/Endpoints/Endpoint.php index 9d29ae7..871c60a 100644 --- a/src/Endpoints/Endpoint.php +++ b/src/Endpoints/Endpoint.php @@ -19,6 +19,7 @@ class Endpoint public const PAGES = 'pages'; public const USERS = 'users'; public const SEARCH = 'search'; + public const COMMENTS = 'comments'; /** * @var Notion diff --git a/src/Entities/Collections/CommentCollection.php b/src/Entities/Collections/CommentCollection.php new file mode 100644 index 0000000..3db076e --- /dev/null +++ b/src/Entities/Collections/CommentCollection.php @@ -0,0 +1,24 @@ +collection = new Collection(); + foreach ($this->rawResults as $commentContent) { + $this->collection->add(new Comment($commentContent)); + } + } +} diff --git a/src/Entities/Comment.php b/src/Entities/Comment.php new file mode 100644 index 0000000..41bf9e0 --- /dev/null +++ b/src/Entities/Comment.php @@ -0,0 +1,124 @@ +setResponseData($rawResponse); + } + } + + public static function create($content): Comment + { + $commentEntity = new Comment(); + + if (is_string($content)) { + $richText = new RichText(); + $richText->setPlainText($content); + $commentEntity->richText = $richText; + } else { + $commentEntity->richText = $content; + } + + //!INFO: Currently only plain_text is transfered into rawContent + //TODO: Later the RichText has to return it's raw structure into 'content' + $commentEntity->responseData = [ + 'rich_text' => [ + [ + 'type' => 'text', + 'text' => [ + 'content' => $commentEntity->getText(), + ], + ], + ], + ]; + + return $commentEntity; + } + + /** + * @param array $responseData + * + * @throws HandlingException + * @throws \FiveamCode\LaravelNotionApi\Exceptions\NotionException + */ + protected function setResponseData(array $responseData): void + { + parent::setResponseData($responseData); + if ($responseData['object'] !== 'comment') { + throw HandlingException::instance('invalid json-array: the given object is not a comment'); + } + $this->fillFromRaw(); + } + + private function fillFromRaw(): void + { + parent::fillEntityBase(); + $this->fillRichText(); + $this->fillDiscussionId(); + $this->fillParentProperties(); + $this->fillTimestampableProperties(); + } + + private function fillDiscussionId(): void + { + if (Arr::exists($this->responseData, 'discussion_id') && $this->responseData['discussion_id'] !== null) { + $this->discussionId = $this->responseData['discussion_id']; + } + } + + private function fillRichText(): void + { + if (Arr::exists($this->responseData, 'rich_text') && $this->responseData['rich_text'] !== null) { + $this->richText = new RichText($this->responseData['rich_text']); + } + } + + /** + * @return string + */ + public function getDiscussionId(): string + { + return $this->discussionId; + } + + /** + * @return RichText + */ + public function getRichText(): RichText + { + return $this->richText; + } + + /** + * @return string + */ + public function getText(): string + { + return $this->getRichText()->getPlainText(); + } +} diff --git a/src/Notion.php b/src/Notion.php index 3778040..cae8daf 100644 --- a/src/Notion.php +++ b/src/Notion.php @@ -3,6 +3,7 @@ namespace FiveamCode\LaravelNotionApi; use FiveamCode\LaravelNotionApi\Endpoints\Block; +use FiveamCode\LaravelNotionApi\Endpoints\Comments; use FiveamCode\LaravelNotionApi\Endpoints\Database; use FiveamCode\LaravelNotionApi\Endpoints\Databases; use FiveamCode\LaravelNotionApi\Endpoints\Endpoint; @@ -184,6 +185,11 @@ public function search(?string $searchText = ''): Search return new Search($this, $searchText); } + public function comments(): Comments + { + return new Comments($this); + } + /** * @return string */ From bc1b32685ed6a48f577849234dd76abaabcfc8b2 Mon Sep 17 00:00:00 2001 From: Di Date: Sun, 5 Feb 2023 17:53:35 +0100 Subject: [PATCH 50/70] Apply fixes from StyleCI (#110) --- src/Endpoints/Comments.php | 12 +++++------- src/Entities/Collections/CommentCollection.php | 1 - 2 files changed, 5 insertions(+), 8 deletions(-) diff --git a/src/Endpoints/Comments.php b/src/Endpoints/Comments.php index 22d1ca0..84acfd7 100644 --- a/src/Endpoints/Comments.php +++ b/src/Endpoints/Comments.php @@ -2,8 +2,6 @@ namespace FiveamCode\LaravelNotionApi\Endpoints; -use FiveamCode\LaravelNotionApi\Entities\Blocks\Block as BlockEntity; -use FiveamCode\LaravelNotionApi\Entities\Collections\BlockCollection; use FiveamCode\LaravelNotionApi\Entities\Collections\CommentCollection; use FiveamCode\LaravelNotionApi\Entities\Comment; use FiveamCode\LaravelNotionApi\Exceptions\HandlingException; @@ -52,7 +50,7 @@ public function __construct(Notion $notion) public function ofBlock(string $blockId): CommentCollection { $response = $this->get( - $this->url(Endpoint::COMMENTS . "?block_id={$blockId}&{$this->buildPaginationQuery()}") + $this->url(Endpoint::COMMENTS."?block_id={$blockId}&{$this->buildPaginationQuery()}") ); return new CommentCollection($response->json()); @@ -60,31 +58,31 @@ public function ofBlock(string $blockId): CommentCollection /** * @param string $discussionId - * * @return Comments */ public function onDiscussion(string $discussionId): self { - if($this->pageId !== null) { + if ($this->pageId !== null) { throw new HandlingException('You can only use ``->onDiscussion(...)`` or ``->onPage(...)``.'); } $this->discussionId = $discussionId; + return $this; } /** * @param string $pageId - * * @return Comments */ public function onPage(string $pageId): self { - if($this->discussionId !== null) { + if ($this->discussionId !== null) { throw new HandlingException('You can only use ``->onDiscussion(...)`` or ``->onPage(...)``.'); } $this->pageId = $pageId; + return $this; } diff --git a/src/Entities/Collections/CommentCollection.php b/src/Entities/Collections/CommentCollection.php index 3db076e..103c314 100644 --- a/src/Entities/Collections/CommentCollection.php +++ b/src/Entities/Collections/CommentCollection.php @@ -2,7 +2,6 @@ namespace FiveamCode\LaravelNotionApi\Entities\Collections; -use FiveamCode\LaravelNotionApi\Entities\Blocks\Block; use FiveamCode\LaravelNotionApi\Entities\Comment; use Illuminate\Support\Collection; From 91e189fdf53040b2aa3f019c840869dfd0e1fa53 Mon Sep 17 00:00:00 2001 From: johguentner Date: Mon, 6 Feb 2023 09:14:57 +0100 Subject: [PATCH 51/70] add various tests for the comment endpoint - listing comments - creating comments --- tests/EndpointCommentsTest.php | 144 ++++++++++++++++++ .../comments/response_create_comment_200.json | 34 +++++ .../comments/response_create_comment_403.json | 6 + .../comments/response_create_comment_404.json | 6 + .../comments/response_list_comments_200.json | 43 ++++++ .../comments/response_list_comments_403.json | 6 + .../comments/response_list_comments_404.json | 6 + 7 files changed, 245 insertions(+) create mode 100644 tests/EndpointCommentsTest.php create mode 100644 tests/stubs/endpoints/comments/response_create_comment_200.json create mode 100644 tests/stubs/endpoints/comments/response_create_comment_403.json create mode 100644 tests/stubs/endpoints/comments/response_create_comment_404.json create mode 100644 tests/stubs/endpoints/comments/response_list_comments_200.json create mode 100644 tests/stubs/endpoints/comments/response_list_comments_403.json create mode 100644 tests/stubs/endpoints/comments/response_list_comments_404.json diff --git a/tests/EndpointCommentsTest.php b/tests/EndpointCommentsTest.php new file mode 100644 index 0000000..84a374f --- /dev/null +++ b/tests/EndpointCommentsTest.php @@ -0,0 +1,144 @@ + Http::response( + json_decode(file_get_contents('tests/stubs/endpoints/comments/response_list_comments_403.json'), true), + 403, + ['Headers'] + ), + ]); + + $this->expectException(NotionException::class); + $this->expectExceptionMessage('Insufficient permissions for this endpoint.'); + $this->expectExceptionCode(403); + + \Notion::comments()->ofBlock('cbf6b0af-6eaa-45ca-9715-9fa147ef6b17')->list(); +}); + +it('should throw correct exception if block_id has not been found when listing comments', function () { + // not_found /v1/comments + Http::fake([ + 'https://api.notion.com/v1/comments?block_id=cbf6b0af-6eaa-45ca-9715-9fa147ef6b17*' => Http::response( + json_decode(file_get_contents('tests/stubs/endpoints/comments/response_list_comments_404.json'), true), + 404, + ['Headers'] + ), + ]); + + $this->expectException(NotionException::class); + $this->expectExceptionMessage('Not Found'); + $this->expectExceptionCode(404); + + \Notion::comments()->ofBlock('cbf6b0af-6eaa-45ca-9715-9fa147ef6b17')->list(); +}); + + +it('should fetch list of comments with an accurate representation of attributes', function () { + + // successfull /v1/comments + Http::fake([ + 'https://api.notion.com/v1/comments?block_id=abf6b0af-6eaa-45ca-9715-9fa147ef6b17*' => Http::response( + json_decode(file_get_contents('tests/stubs/endpoints/comments/response_list_comments_200.json'), true), + 200, + ['Headers'] + ), + ]); + + $commentCollection = \Notion::comments()->ofBlock('abf6b0af-6eaa-45ca-9715-9fa147ef6b17'); + + $collection = $commentCollection->asCollection(); + $json = $commentCollection->asJson(); + + expect($commentCollection)->toBeInstanceOf(CommentCollection::class); + expect($collection)->toBeInstanceOf(\Illuminate\Support\Collection::class); + expect($json)->toBeString(); + + expect($collection->count())->toBe(1); + expect($collection->first())->toBeInstanceOf(Comment::class); + expect($collection->first()->getObjectType())->toBe('comment'); + expect($collection->first()->getId())->toBe('94cc56ab-9f02-409d-9f99-1037e9fe502f'); + expect($collection->first()->getCreatedTime())->toEqual(Carbon::parse('2022-07-15T16:52:00.000Z')->toDateTime()); + expect($collection->first()->getLastEditedTime())->toEqual(Carbon::parse('2022-07-15T19:16:00.000Z')->toDateTime()); + expect($collection->first()->getCreatedBy()->getId())->toBe('9b15170a-9941-4297-8ee6-83fa7649a87a'); + expect($collection->first()->getText())->toBe('Single comment'); + expect($collection->first()->getRichText()->getPlainText())->toBe('Single comment'); + expect($collection->first()->getRichText())->toBeInstanceOf(RichText::class); + expect($collection->first()->getParentId())->toBe('5c6a2821-6bb1-4a7e-b6e1-c50111515c3d'); + expect($collection->first()->getParentType())->toBe('page_id'); + expect($collection->first()->getDiscussionId())->toBe('f1407351-36f5-4c49-a13c-49f8ba11776d'); + + expect($json)->toBeJson(); +}); + + +it('should throw correct exception if comment access not allowed by api when creating a comment', function () { + // not_found /v1/comments + Http::fake([ + 'https://api.notion.com/v1/comments*' => Http::response( + json_decode(file_get_contents('tests/stubs/endpoints/comments/response_create_comment_403.json'), true), + 403, + ['Headers'] + ), + ]); + + $this->expectException(NotionException::class); + $this->expectExceptionMessage('Insufficient permissions for this endpoint.'); + $this->expectExceptionCode(403); + + \Notion::comments()->onPage('5c6a2821-6bb1-4a7e-b6e1-c50111515c3d')->create(Comment::create('Hello world')); +}); + +it('should throw correct exception if discussion is not found with discussion_id when creating a comment', function () { + // not_found (post) /v1/comments + Http::fake([ + 'https://api.notion.com/v1/comments*' => Http::response( + json_decode(file_get_contents('tests/stubs/endpoints/comments/response_create_comment_404.json'), true), + 404, + ['Headers'] + ), + ]); + + $this->expectException(NotionException::class); + $this->expectExceptionMessage('Could not find discussion with ID: 141216d8-bbc5-4c24-9d37-3c45d3bc15cc.'); + $this->expectExceptionCode(404); + + \Notion::comments()->onDiscussion('141216d8-bbc5-4c24-9d37-3c45d3bc15cc')->create(Comment::create('Hello world')); +}); + +it('successfully creates a comment within a page', function(){ + + // successfull (post) /v1/comments + Http::fake([ + 'https://api.notion.com/v1/comments*' => Http::response( + json_decode(file_get_contents('tests/stubs/endpoints/comments/response_create_comment_200.json'), true), + 200, + ['Headers'] + ), + ]); + + $comment = \Notion::comments()->onPage('5c6a2821-6bb1-4a7e-b6e1-c50111515c3d')->create(Comment::create('Hello world')); + + expect($comment)->toBeInstanceOf(Comment::class); + expect($comment->getObjectType())->toBe('comment'); + expect($comment->getId())->toBe('b52b8ed6-e029-4707-a671-832549c09de3'); + expect($comment->getCreatedTime())->toEqual(Carbon::parse('2022-07-15T20:53:00.000Z')->toDateTime()); + expect($comment->getLastEditedTime())->toEqual(Carbon::parse('2022-07-15T20:53:00.000Z')->toDateTime()); + expect($comment->getCreatedBy()->getId())->toBe('067dee40-6ebd-496f-b446-093c715fb5ec'); + expect($comment->getText())->toBe('Hello world'); + expect($comment->getRichText()->getPlainText())->toBe('Hello world'); + expect($comment->getRichText())->toBeInstanceOf(RichText::class); + expect($comment->getParentId())->toBe('5c6a2821-6bb1-4a7e-b6e1-c50111515c3d'); + expect($comment->getParentType())->toBe('page_id'); + expect($comment->getDiscussionId())->toBe('f1407351-36f5-4c49-a13c-49f8ba11776d'); +}); + + diff --git a/tests/stubs/endpoints/comments/response_create_comment_200.json b/tests/stubs/endpoints/comments/response_create_comment_200.json new file mode 100644 index 0000000..b8a0664 --- /dev/null +++ b/tests/stubs/endpoints/comments/response_create_comment_200.json @@ -0,0 +1,34 @@ +{ + "object": "comment", + "id": "b52b8ed6-e029-4707-a671-832549c09de3", + "parent": { + "type": "page_id", + "page_id": "5c6a2821-6bb1-4a7e-b6e1-c50111515c3d" + }, + "discussion_id": "f1407351-36f5-4c49-a13c-49f8ba11776d", + "created_time": "2022-07-15T20:53:00.000Z", + "last_edited_time": "2022-07-15T20:53:00.000Z", + "created_by": { + "object": "user", + "id": "067dee40-6ebd-496f-b446-093c715fb5ec" + }, + "rich_text": [ + { + "type": "text", + "text": { + "content": "Hello world", + "link": null + }, + "annotations": { + "bold": false, + "italic": false, + "strikethrough": false, + "underline": false, + "code": false, + "color": "default" + }, + "plain_text": "Hello world", + "href": null + } + ] + } \ No newline at end of file diff --git a/tests/stubs/endpoints/comments/response_create_comment_403.json b/tests/stubs/endpoints/comments/response_create_comment_403.json new file mode 100644 index 0000000..3bd4812 --- /dev/null +++ b/tests/stubs/endpoints/comments/response_create_comment_403.json @@ -0,0 +1,6 @@ +{ + "object": "error", + "status": 403, + "code": "restricted_resource", + "message": "Insufficient permissions for this endpoint." + } \ No newline at end of file diff --git a/tests/stubs/endpoints/comments/response_create_comment_404.json b/tests/stubs/endpoints/comments/response_create_comment_404.json new file mode 100644 index 0000000..47b2d39 --- /dev/null +++ b/tests/stubs/endpoints/comments/response_create_comment_404.json @@ -0,0 +1,6 @@ +{ + "object": "error", + "status": 404, + "code": "object_not_found", + "message": "Could not find discussion with ID: 141216d8-bbc5-4c24-9d37-3c45d3bc15cc. Make sure the relevant pages and databases are shared with your integration." +} \ No newline at end of file diff --git a/tests/stubs/endpoints/comments/response_list_comments_200.json b/tests/stubs/endpoints/comments/response_list_comments_200.json new file mode 100644 index 0000000..1d8b41a --- /dev/null +++ b/tests/stubs/endpoints/comments/response_list_comments_200.json @@ -0,0 +1,43 @@ +{ + "object": "list", + "results": [ + { + "object": "comment", + "id": "94cc56ab-9f02-409d-9f99-1037e9fe502f", + "parent": { + "type": "page_id", + "page_id": "5c6a2821-6bb1-4a7e-b6e1-c50111515c3d" + }, + "discussion_id": "f1407351-36f5-4c49-a13c-49f8ba11776d", + "created_time": "2022-07-15T16:52:00.000Z", + "last_edited_time": "2022-07-15T19:16:00.000Z", + "created_by": { + "object": "user", + "id": "9b15170a-9941-4297-8ee6-83fa7649a87a" + }, + "rich_text": [ + { + "type": "text", + "text": { + "content": "Single comment", + "link": null + }, + "annotations": { + "bold": false, + "italic": false, + "strikethrough": false, + "underline": false, + "code": false, + "color": "default" + }, + "plain_text": "Single comment", + "href": null + } + ] + } + ], + "next_cursor": null, + "has_more": false, + "type": "comment", + "comment": {} +} \ No newline at end of file diff --git a/tests/stubs/endpoints/comments/response_list_comments_403.json b/tests/stubs/endpoints/comments/response_list_comments_403.json new file mode 100644 index 0000000..3bd4812 --- /dev/null +++ b/tests/stubs/endpoints/comments/response_list_comments_403.json @@ -0,0 +1,6 @@ +{ + "object": "error", + "status": 403, + "code": "restricted_resource", + "message": "Insufficient permissions for this endpoint." + } \ No newline at end of file diff --git a/tests/stubs/endpoints/comments/response_list_comments_404.json b/tests/stubs/endpoints/comments/response_list_comments_404.json new file mode 100644 index 0000000..2930fe1 --- /dev/null +++ b/tests/stubs/endpoints/comments/response_list_comments_404.json @@ -0,0 +1,6 @@ +{ + "object": "error", + "status": 404, + "code": "object_not_found", + "message": "Could not find block with ID: cbf6b0af-6eaa-45ca-9715-9fa147ef6b17. Make sure the relevant pages and databases are shared with your integration." +} \ No newline at end of file From 769168a8d0dc964f91798ba10e1c1b705e54d16f Mon Sep 17 00:00:00 2001 From: Di Date: Mon, 6 Feb 2023 09:15:13 +0100 Subject: [PATCH 52/70] Apply fixes from StyleCI (#112) --- tests/EndpointCommentsTest.php | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/tests/EndpointCommentsTest.php b/tests/EndpointCommentsTest.php index 84a374f..63e351f 100644 --- a/tests/EndpointCommentsTest.php +++ b/tests/EndpointCommentsTest.php @@ -41,7 +41,6 @@ \Notion::comments()->ofBlock('cbf6b0af-6eaa-45ca-9715-9fa147ef6b17')->list(); }); - it('should fetch list of comments with an accurate representation of attributes', function () { // successfull /v1/comments @@ -79,7 +78,6 @@ expect($json)->toBeJson(); }); - it('should throw correct exception if comment access not allowed by api when creating a comment', function () { // not_found /v1/comments Http::fake([ @@ -114,7 +112,7 @@ \Notion::comments()->onDiscussion('141216d8-bbc5-4c24-9d37-3c45d3bc15cc')->create(Comment::create('Hello world')); }); -it('successfully creates a comment within a page', function(){ +it('successfully creates a comment within a page', function () { // successfull (post) /v1/comments Http::fake([ @@ -140,5 +138,3 @@ expect($comment->getParentType())->toBe('page_id'); expect($comment->getDiscussionId())->toBe('f1407351-36f5-4c49-a13c-49f8ba11776d'); }); - - From b32890ea3e1054252cb2c2e78cae4166561217d2 Mon Sep 17 00:00:00 2001 From: johguentner Date: Mon, 6 Feb 2023 09:19:04 +0100 Subject: [PATCH 53/70] change name ``->fillTimestampableProperties`` - to ``->fillTimestampableAttributes`` --- src/Entities/Blocks/Block.php | 2 +- src/Entities/Database.php | 2 +- src/Entities/Page.php | 2 +- src/Traits/HasTimestamps.php | 10 +++++----- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/Entities/Blocks/Block.php b/src/Entities/Blocks/Block.php index 8958ab0..cb5e64e 100644 --- a/src/Entities/Blocks/Block.php +++ b/src/Entities/Blocks/Block.php @@ -61,7 +61,7 @@ protected function fillFromRaw(): void $this->fillType(); $this->fillRawContent(); $this->fillHasChildren(); - $this->fillTimestampableProperties(); + $this->fillTimestampableAttributes(); } private function fillType(): void diff --git a/src/Entities/Database.php b/src/Entities/Database.php index 8070df2..37352f2 100644 --- a/src/Entities/Database.php +++ b/src/Entities/Database.php @@ -93,7 +93,7 @@ private function fillFromRaw() $this->fillObjectType(); $this->fillProperties(); $this->fillDatabaseUrl(); - $this->fillTimestampableProperties(); + $this->fillTimestampableAttributes(); } private function fillTitle(): void diff --git a/src/Entities/Page.php b/src/Entities/Page.php index 20b2a32..3c8be33 100644 --- a/src/Entities/Page.php +++ b/src/Entities/Page.php @@ -121,7 +121,7 @@ private function fillFromRaw(): void $this->fillPageUrl(); $this->fillIcon(); $this->fillCover(); - $this->fillTimestampableProperties(); + $this->fillTimestampableAttributes(); } private function fillObjectType(): void diff --git a/src/Traits/HasTimestamps.php b/src/Traits/HasTimestamps.php index 054a839..55a1f15 100644 --- a/src/Traits/HasTimestamps.php +++ b/src/Traits/HasTimestamps.php @@ -37,7 +37,7 @@ trait HasTimestamps */ protected User $lastEditedBy; - protected function fillTimestampableProperties(): void + protected function fillTimestampableAttributes(): void { $this->fillCreatedTime(); $this->fillLastEditedTime(); @@ -45,28 +45,28 @@ protected function fillTimestampableProperties(): void $this->fillLastEditedBy(); } - protected function fillCreatedTime(): void + private function fillCreatedTime(): void { if (Arr::exists($this->responseData, 'created_time')) { $this->createdTime = new Carbon($this->responseData['created_time']); } } - protected function fillLastEditedTime(): void + private function fillLastEditedTime(): void { if (Arr::exists($this->responseData, 'last_edited_time')) { $this->lastEditedTime = new Carbon($this->responseData['last_edited_time']); } } - protected function fillCreatedBy(): void + private function fillCreatedBy(): void { if (Arr::exists($this->responseData, 'created_by')) { $this->createdBy = new User($this->responseData['created_by']); } } - protected function fillLastEditedBy(): void + private function fillLastEditedBy(): void { if (Arr::exists($this->responseData, 'last_edited_by')) { $this->lastEditedBy = new User($this->responseData['last_edited_by']); From 78d93e2fca51526bd7ff791b29008beabd00fc23 Mon Sep 17 00:00:00 2001 From: johguentner Date: Mon, 6 Feb 2023 09:22:32 +0100 Subject: [PATCH 54/70] change name of fill-method of traits - ``...properties`` to ``...attributes`` --- src/Entities/Blocks/Block.php | 4 ++-- src/Entities/Database.php | 4 ++-- src/Entities/Page.php | 4 ++-- src/Traits/HasArchive.php | 2 +- src/Traits/HasParent.php | 2 +- 5 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/Entities/Blocks/Block.php b/src/Entities/Blocks/Block.php index c3ebcd6..0718171 100644 --- a/src/Entities/Blocks/Block.php +++ b/src/Entities/Blocks/Block.php @@ -63,8 +63,8 @@ protected function fillFromRaw(): void $this->fillType(); $this->fillRawContent(); $this->fillHasChildren(); - $this->fillParentProperties(); - $this->fillArchivedProperties(); + $this->fillParentAttributes(); + $this->fillArchivedAttributes(); $this->fillTimestampableAttributes(); } diff --git a/src/Entities/Database.php b/src/Entities/Database.php index 201474e..8020918 100644 --- a/src/Entities/Database.php +++ b/src/Entities/Database.php @@ -107,8 +107,8 @@ private function fillFromRaw() $this->fillDescription(); $this->fillProperties(); $this->fillDatabaseUrl(); - $this->fillParentProperties(); - $this->fillArchivedProperties(); + $this->fillParentAttributes(); + $this->fillArchivedAttributes(); $this->fillTimestampableAttributes(); } diff --git a/src/Entities/Page.php b/src/Entities/Page.php index 7c01574..43888dd 100644 --- a/src/Entities/Page.php +++ b/src/Entities/Page.php @@ -117,8 +117,8 @@ private function fillFromRaw(): void $this->fillPageUrl(); $this->fillIcon(); $this->fillCover(); - $this->fillParentProperties(); - $this->fillArchivedProperties(); + $this->fillParentAttributes(); + $this->fillArchivedAttributes(); $this->fillTimestampableAttributes(); } diff --git a/src/Traits/HasArchive.php b/src/Traits/HasArchive.php index bba5a49..1235ea7 100644 --- a/src/Traits/HasArchive.php +++ b/src/Traits/HasArchive.php @@ -19,7 +19,7 @@ trait HasArchive */ private bool $archived = false; - protected function fillArchivedProperties(): void + protected function fillArchivedAttributes(): void { $this->fillArchived(); } diff --git a/src/Traits/HasParent.php b/src/Traits/HasParent.php index f9cef22..8356ae6 100644 --- a/src/Traits/HasParent.php +++ b/src/Traits/HasParent.php @@ -24,7 +24,7 @@ trait HasParent */ private string $parentType = ''; - protected function fillParentProperties(): void + protected function fillParentAttributes(): void { $this->fillParent(); } From dd4e2891d7505e5a794b65ca7b10f82e93fe4a31 Mon Sep 17 00:00:00 2001 From: johguentner Date: Mon, 6 Feb 2023 09:24:16 +0100 Subject: [PATCH 55/70] minor refactor (previous commits) --- src/Entities/Comment.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Entities/Comment.php b/src/Entities/Comment.php index 41bf9e0..017031d 100644 --- a/src/Entities/Comment.php +++ b/src/Entities/Comment.php @@ -80,8 +80,8 @@ private function fillFromRaw(): void parent::fillEntityBase(); $this->fillRichText(); $this->fillDiscussionId(); - $this->fillParentProperties(); - $this->fillTimestampableProperties(); + $this->fillParentAttributes(); + $this->fillTimestampableAttributes(); } private function fillDiscussionId(): void From 43c6d109818e730c01ba524c5109890839d0adcf Mon Sep 17 00:00:00 2001 From: Diana Scharf Date: Mon, 6 Feb 2023 10:23:13 +0100 Subject: [PATCH 56/70] - Still allow collections inside the filterBy method - this "undoes" the planned breaking change with the compound filters - extracted the query building of the post data into its own method to clean up the query method and simplify debugging - added the method "addFilters" to FilterBag to quickly add multiple filters --- src/Endpoints/Database.php | 70 ++++++++++++++++++++------------- src/Query/Filters/FilterBag.php | 12 ++++++ tests/EndpointDatabaseTest.php | 23 ++++++++++- tests/FilterTest.php | 20 ++++++++++ 4 files changed, 96 insertions(+), 29 deletions(-) diff --git a/src/Endpoints/Database.php b/src/Endpoints/Database.php index 99f9f5e..b0f8371 100644 --- a/src/Endpoints/Database.php +++ b/src/Endpoints/Database.php @@ -8,6 +8,7 @@ use FiveamCode\LaravelNotionApi\Notion; use FiveamCode\LaravelNotionApi\Query\Filters\Filter; use FiveamCode\LaravelNotionApi\Query\Filters\FilterBag; +use FiveamCode\LaravelNotionApi\Query\Filters\Operators; use FiveamCode\LaravelNotionApi\Query\Sorting; use Illuminate\Support\Collection; @@ -38,8 +39,8 @@ class Database extends Endpoint /** * Database constructor. * - * @param string $databaseId - * @param Notion $notion + * @param string $databaseId + * @param Notion $notion * * @throws \FiveamCode\LaravelNotionApi\Exceptions\HandlingException * @throws \FiveamCode\LaravelNotionApi\Exceptions\LaravelNotionAPIException @@ -61,15 +62,26 @@ public function __construct(string $databaseId, Notion $notion) */ public function query(): PageCollection { + $response = $this + ->post( + $this->url(Endpoint::DATABASES . "/{$this->databaseId}/query"), + $this->getPostData() + ) + ->json(); + + return new PageCollection($response); + } + + public function getPostData():array { $postData = []; if ($this->sorts->isNotEmpty()) { $postData['sorts'] = Sorting::sortQuery($this->sorts); } - if ($this->filter !== null && ! is_null($this->filterBag)) { + if ($this->filter !== null && !is_null($this->filterBag)) { throw new HandlingException('Please provide either a filter bag or a single filter.'); - } elseif ($this->filter !== null || ! is_null($this->filterBag)) { + } elseif ($this->filter !== null || !is_null($this->filterBag)) { $postData['filter'] = $this->filterData; } @@ -81,14 +93,7 @@ public function query(): PageCollection $postData['page_size'] = $this->pageSize; } - $response = $this - ->post( - $this->url(Endpoint::DATABASES."/{$this->databaseId}/query"), - $postData - ) - ->json(); - - return new PageCollection($response); + return $postData; } /** @@ -97,12 +102,12 @@ public function query(): PageCollection * * @throws HandlingException * - * @todo As soon as this package drops PHP 7.4 support, we can use union types here (FilterBag and Filter) */ - public function filterBy($filter): Database // TODO that's a breaking change + public function filterBy(Collection|Filter|FilterBag $filter): Database { - $this->checkFilterType($filter); - + if($filter instanceof Collection) { + return $this->filterByCollection($filter); + } if ($filter instanceof FilterBag) { return $this->filterByBag($filter); } @@ -113,6 +118,11 @@ public function filterBy($filter): Database // TODO that's a breaking change return $this; } + /** + * @param Filter $filter + * @return $this + * @throws HandlingException + */ public function filterBySingleFilter(Filter $filter): Database { $this->filter = $filter; @@ -122,8 +132,8 @@ public function filterBySingleFilter(Filter $filter): Database } /** - * @param FilterBag $filterBag - * @return $this + * @param FilterBag $filterBag + * @return Database $this */ public function filterByBag(FilterBag $filterBag): Database { @@ -134,7 +144,18 @@ public function filterByBag(FilterBag $filterBag): Database } /** - * @param Collection|Sorting $sorts + * @param Collection $filterCollection + * @return Database $this + */ + public function filterByCollection(Collection $filterCollection): Database { + $filterBag = new FilterBag(Operators::OR); + $filterBag->addFilters($filterCollection); + + return $this->filterByBag($filterBag); + } + + /** + * @param Collection|Sorting $sorts * @return Database $this * * @throws HandlingException @@ -150,14 +171,14 @@ public function sortBy(Sorting|Collection $sorts): Database $this->sorts = $sorts; break; default: - throw new HandlingException("The parameter 'sorts' must be either a instance of the class Sorting or a Collection of Sortings."); + throw new HandlingException("The parameter 'sorts' must be either a instance of the class Sorting or a Collection of sortings."); } return $this; } /** - * @param EntityCollection $entityCollection + * @param EntityCollection $entityCollection * @return $this */ public function offsetByResponse(EntityCollection $entityCollection): Database @@ -166,11 +187,4 @@ public function offsetByResponse(EntityCollection $entityCollection): Database return $this; } - - private function checkFilterType($filter): void - { - if (! ($filter instanceof Filter || $filter instanceof FilterBag)) { - throw new HandlingException('Please provide either a filter bag or a single filter.'); - } - } } diff --git a/src/Query/Filters/FilterBag.php b/src/Query/Filters/FilterBag.php index 3a7f37c..f5aebd1 100644 --- a/src/Query/Filters/FilterBag.php +++ b/src/Query/Filters/FilterBag.php @@ -69,6 +69,18 @@ public function addFilter(Filter $filter): self return $this; } + public function addFilters(Collection $filters): self + { + foreach ($filters as $filter) { + if(!$filter instanceof Filter) { + throw new HandlingException('The filter bag must only contain filter objects.'); + } + $this->addFilter($filter); + } + + return $this; + } + /** * @throws HandlingException|Throwable */ diff --git a/tests/EndpointDatabaseTest.php b/tests/EndpointDatabaseTest.php index 23508ef..227bf4d 100644 --- a/tests/EndpointDatabaseTest.php +++ b/tests/EndpointDatabaseTest.php @@ -3,8 +3,11 @@ use FiveamCode\LaravelNotionApi\Endpoints\Database; use FiveamCode\LaravelNotionApi\Entities\Collections\PageCollection; use FiveamCode\LaravelNotionApi\Entities\Page; +use FiveamCode\LaravelNotionApi\Exceptions\HandlingException; use FiveamCode\LaravelNotionApi\Exceptions\NotionException; use FiveamCode\LaravelNotionApi\Query\Filters\Filter; +use FiveamCode\LaravelNotionApi\Query\Filters\FilterBag; +use FiveamCode\LaravelNotionApi\Query\Filters\Operators; use FiveamCode\LaravelNotionApi\Query\Sorting; use FiveamCode\LaravelNotionApi\Query\StartCursor; use Illuminate\Support\Collection; @@ -33,6 +36,24 @@ $this->assertInstanceOf(Database::class, $endpoint); }); +it('allows a filter, filter bag or collection of filters inside the filterBy method', function () { + $filter = Filter::textFilter('Name', Operators::CONTAINS, 'Grace'); + $filterCollection = (new Collection)->add($filter); + $filterBag = (new FilterBag(Operators::AND))->addFilter($filter); + + $endpoint = Notion::database('8284f3ff77e24d4a939d19459e4d6bdc'); + + $endpoint->filterBy($filter); + $endpoint->filterBy($filterCollection); + $endpoint->filterBy($filterBag); + + $this->expectException(HandlingException::class); + $this->expectExceptionMessage('The filter bag must only contain filter objects.'); + + $filterCollection->add(1); + $endpoint->filterBy($filterCollection); +}); + it('queries a database with filter and sorting and processes result', function ($limit) { // success /v1/databases/DATABASE_DOES_EXIST/query Http::fake([ @@ -92,7 +113,7 @@ ), ]); - // Let's search for something that doesn't exists + // Let's search for something that doesn't exist $filters = new Collection(); $filter = Filter::rawFilter( diff --git a/tests/FilterTest.php b/tests/FilterTest.php index f040114..85f31b6 100644 --- a/tests/FilterTest.php +++ b/tests/FilterTest.php @@ -3,6 +3,7 @@ use FiveamCode\LaravelNotionApi\Exceptions\HandlingException; use FiveamCode\LaravelNotionApi\Query\Filters\Filter; use FiveamCode\LaravelNotionApi\Query\Filters\Operators; +use Illuminate\Support\Collection; it('creates a text filter with the given data', function () { $filter = Filter::textFilter('Name', Operators::EQUALS, 'Ada Lovelace'); @@ -39,3 +40,22 @@ $this->expectExceptionMessage('Invalid filter definition.'); $filter->toArray(); }); + +it('converts a collection of filters to a filter bag with an OR operator', function () { + $filter = Filter::textFilter('Name', Operators::CONTAINS, 'Grace'); + $filterCollection = (new Collection())->add($filter); + + $endpoint = Notion::database('8284f3ff77e24d4a939d19459e4d6bdc'); + + $endpoint->filterBy($filterCollection); + + $queryData = $endpoint->getPostData(); + + $this->assertArrayHasKey('filter', $queryData); + $this->assertArrayHasKey('or', $queryData['filter']); + $this->assertArrayHasKey('property', $queryData['filter']['or'][0]); + $this->assertEquals('Name', $queryData['filter']['or'][0]['property']); + $this->assertArrayHasKey('text', $queryData['filter']['or'][0]); + $this->assertArrayHasKey('contains', $queryData['filter']['or'][0]['text']); + $this->assertEquals('Grace', $queryData['filter']['or'][0]['text']['contains']); +}); \ No newline at end of file From e818d67262ba4eba195388164146109e3db6b5a0 Mon Sep 17 00:00:00 2001 From: Di Date: Mon, 6 Feb 2023 10:23:38 +0100 Subject: [PATCH 57/70] Apply fixes from StyleCI (#113) --- src/Endpoints/Database.php | 30 ++++++++++++++++-------------- src/Query/Filters/FilterBag.php | 2 +- tests/FilterTest.php | 2 +- 3 files changed, 18 insertions(+), 16 deletions(-) diff --git a/src/Endpoints/Database.php b/src/Endpoints/Database.php index b0f8371..84eb58d 100644 --- a/src/Endpoints/Database.php +++ b/src/Endpoints/Database.php @@ -39,8 +39,8 @@ class Database extends Endpoint /** * Database constructor. * - * @param string $databaseId - * @param Notion $notion + * @param string $databaseId + * @param Notion $notion * * @throws \FiveamCode\LaravelNotionApi\Exceptions\HandlingException * @throws \FiveamCode\LaravelNotionApi\Exceptions\LaravelNotionAPIException @@ -64,7 +64,7 @@ public function query(): PageCollection { $response = $this ->post( - $this->url(Endpoint::DATABASES . "/{$this->databaseId}/query"), + $this->url(Endpoint::DATABASES."/{$this->databaseId}/query"), $this->getPostData() ) ->json(); @@ -72,16 +72,17 @@ public function query(): PageCollection return new PageCollection($response); } - public function getPostData():array { + public function getPostData(): array + { $postData = []; if ($this->sorts->isNotEmpty()) { $postData['sorts'] = Sorting::sortQuery($this->sorts); } - if ($this->filter !== null && !is_null($this->filterBag)) { + if ($this->filter !== null && ! is_null($this->filterBag)) { throw new HandlingException('Please provide either a filter bag or a single filter.'); - } elseif ($this->filter !== null || !is_null($this->filterBag)) { + } elseif ($this->filter !== null || ! is_null($this->filterBag)) { $postData['filter'] = $this->filterData; } @@ -101,11 +102,10 @@ public function getPostData():array { * @return Database $this * * @throws HandlingException - * */ public function filterBy(Collection|Filter|FilterBag $filter): Database { - if($filter instanceof Collection) { + if ($filter instanceof Collection) { return $this->filterByCollection($filter); } if ($filter instanceof FilterBag) { @@ -119,8 +119,9 @@ public function filterBy(Collection|Filter|FilterBag $filter): Database } /** - * @param Filter $filter + * @param Filter $filter * @return $this + * * @throws HandlingException */ public function filterBySingleFilter(Filter $filter): Database @@ -132,7 +133,7 @@ public function filterBySingleFilter(Filter $filter): Database } /** - * @param FilterBag $filterBag + * @param FilterBag $filterBag * @return Database $this */ public function filterByBag(FilterBag $filterBag): Database @@ -144,10 +145,11 @@ public function filterByBag(FilterBag $filterBag): Database } /** - * @param Collection $filterCollection + * @param Collection $filterCollection * @return Database $this */ - public function filterByCollection(Collection $filterCollection): Database { + public function filterByCollection(Collection $filterCollection): Database + { $filterBag = new FilterBag(Operators::OR); $filterBag->addFilters($filterCollection); @@ -155,7 +157,7 @@ public function filterByCollection(Collection $filterCollection): Database { } /** - * @param Collection|Sorting $sorts + * @param Collection|Sorting $sorts * @return Database $this * * @throws HandlingException @@ -178,7 +180,7 @@ public function sortBy(Sorting|Collection $sorts): Database } /** - * @param EntityCollection $entityCollection + * @param EntityCollection $entityCollection * @return $this */ public function offsetByResponse(EntityCollection $entityCollection): Database diff --git a/src/Query/Filters/FilterBag.php b/src/Query/Filters/FilterBag.php index f5aebd1..61eca69 100644 --- a/src/Query/Filters/FilterBag.php +++ b/src/Query/Filters/FilterBag.php @@ -72,7 +72,7 @@ public function addFilter(Filter $filter): self public function addFilters(Collection $filters): self { foreach ($filters as $filter) { - if(!$filter instanceof Filter) { + if (! $filter instanceof Filter) { throw new HandlingException('The filter bag must only contain filter objects.'); } $this->addFilter($filter); diff --git a/tests/FilterTest.php b/tests/FilterTest.php index 85f31b6..23cef34 100644 --- a/tests/FilterTest.php +++ b/tests/FilterTest.php @@ -58,4 +58,4 @@ $this->assertArrayHasKey('text', $queryData['filter']['or'][0]); $this->assertArrayHasKey('contains', $queryData['filter']['or'][0]['text']); $this->assertEquals('Grace', $queryData['filter']['or'][0]['text']['contains']); -}); \ No newline at end of file +}); From 51661578cbbfdb11ec1b90d7b8ffc6cc35b33d99 Mon Sep 17 00:00:00 2001 From: johguentner Date: Mon, 6 Feb 2023 13:02:13 +0100 Subject: [PATCH 58/70] rename ``Comment::create(...)`` - to ``::fromText(...)`` --- src/Entities/Comment.php | 2 +- tests/EndpointCommentsTest.php | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Entities/Comment.php b/src/Entities/Comment.php index 017031d..dd70b15 100644 --- a/src/Entities/Comment.php +++ b/src/Entities/Comment.php @@ -32,7 +32,7 @@ public function __construct(?array $rawResponse = null) } } - public static function create($content): Comment + public static function fromText($content): Comment { $commentEntity = new Comment(); diff --git a/tests/EndpointCommentsTest.php b/tests/EndpointCommentsTest.php index 63e351f..5c8fcb1 100644 --- a/tests/EndpointCommentsTest.php +++ b/tests/EndpointCommentsTest.php @@ -92,7 +92,7 @@ $this->expectExceptionMessage('Insufficient permissions for this endpoint.'); $this->expectExceptionCode(403); - \Notion::comments()->onPage('5c6a2821-6bb1-4a7e-b6e1-c50111515c3d')->create(Comment::create('Hello world')); + \Notion::comments()->onPage('5c6a2821-6bb1-4a7e-b6e1-c50111515c3d')->create(Comment::fromText('Hello world')); }); it('should throw correct exception if discussion is not found with discussion_id when creating a comment', function () { @@ -109,7 +109,7 @@ $this->expectExceptionMessage('Could not find discussion with ID: 141216d8-bbc5-4c24-9d37-3c45d3bc15cc.'); $this->expectExceptionCode(404); - \Notion::comments()->onDiscussion('141216d8-bbc5-4c24-9d37-3c45d3bc15cc')->create(Comment::create('Hello world')); + \Notion::comments()->onDiscussion('141216d8-bbc5-4c24-9d37-3c45d3bc15cc')->create(Comment::fromText('Hello world')); }); it('successfully creates a comment within a page', function () { @@ -123,7 +123,7 @@ ), ]); - $comment = \Notion::comments()->onPage('5c6a2821-6bb1-4a7e-b6e1-c50111515c3d')->create(Comment::create('Hello world')); + $comment = \Notion::comments()->onPage('5c6a2821-6bb1-4a7e-b6e1-c50111515c3d')->create(Comment::fromText('Hello world')); expect($comment)->toBeInstanceOf(Comment::class); expect($comment->getObjectType())->toBe('comment'); From c47dfbcfdf9fa6ad3b2bb0036c50bf8e489bbff2 Mon Sep 17 00:00:00 2001 From: johguentner Date: Mon, 6 Feb 2023 13:14:50 +0100 Subject: [PATCH 59/70] allow ``null`` for attrs in HasTimestamps trait --- src/Traits/HasTimestamps.php | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/src/Traits/HasTimestamps.php b/src/Traits/HasTimestamps.php index 55a1f15..4cd99e4 100644 --- a/src/Traits/HasTimestamps.php +++ b/src/Traits/HasTimestamps.php @@ -20,22 +20,22 @@ trait HasTimestamps /** * @var DateTime */ - protected DateTime $createdTime; + protected ?DateTime $createdTime = null; /** * @var DateTime */ - protected DateTime $lastEditedTime; + protected ?DateTime $lastEditedTime = null; /** * @var User */ - protected User $createdBy; + protected ?User $createdBy = null; /** * @var User */ - protected User $lastEditedBy; + protected ?User $lastEditedBy = null; protected function fillTimestampableAttributes(): void { @@ -74,33 +74,33 @@ private function fillLastEditedBy(): void } /** - * @return DateTime + * @return ?DateTime */ - public function getCreatedTime(): DateTime + public function getCreatedTime(): ?DateTime { return $this->createdTime; } /** - * @return DateTime + * @return ?DateTime */ - public function getLastEditedTime(): DateTime + public function getLastEditedTime(): ?DateTime { return $this->lastEditedTime; } /** - * @return User + * @return ?User */ - public function getCreatedBy(): User + public function getCreatedBy(): ?User { return $this->createdBy; } /** - * @return User + * @return ?User */ - public function getLastEditedBy(): User + public function getLastEditedBy(): ?User { return $this->lastEditedBy; } From be1efeb113fa6a46f4b15110f52e164ef2265b9a Mon Sep 17 00:00:00 2001 From: johguentner Date: Mon, 6 Feb 2023 13:15:07 +0100 Subject: [PATCH 60/70] rename trait comment --- src/Traits/HasTimestamps.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Traits/HasTimestamps.php b/src/Traits/HasTimestamps.php index 4cd99e4..2e769c4 100644 --- a/src/Traits/HasTimestamps.php +++ b/src/Traits/HasTimestamps.php @@ -8,7 +8,7 @@ use Illuminate\Support\Arr; /** - * Trait UpdatableEntity. + * Trait HasTimestamps. */ trait HasTimestamps { From 2795c1bbed552a7fc1d214d7ec66a8287e444df2 Mon Sep 17 00:00:00 2001 From: johguentner Date: Mon, 6 Feb 2023 13:16:40 +0100 Subject: [PATCH 61/70] add ``null`` test to ``getLastEditedBy()`` - within ``EndpointCommentsTest`` --- tests/EndpointCommentsTest.php | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/EndpointCommentsTest.php b/tests/EndpointCommentsTest.php index 5c8fcb1..21c84a1 100644 --- a/tests/EndpointCommentsTest.php +++ b/tests/EndpointCommentsTest.php @@ -68,6 +68,7 @@ expect($collection->first()->getCreatedTime())->toEqual(Carbon::parse('2022-07-15T16:52:00.000Z')->toDateTime()); expect($collection->first()->getLastEditedTime())->toEqual(Carbon::parse('2022-07-15T19:16:00.000Z')->toDateTime()); expect($collection->first()->getCreatedBy()->getId())->toBe('9b15170a-9941-4297-8ee6-83fa7649a87a'); + expect($collection->first()->getLastEditedBy())->toBe(null); expect($collection->first()->getText())->toBe('Single comment'); expect($collection->first()->getRichText()->getPlainText())->toBe('Single comment'); expect($collection->first()->getRichText())->toBeInstanceOf(RichText::class); From 4ef3d6e911bf09f6ed8b656bc4a287fb8debf615 Mon Sep 17 00:00:00 2001 From: johguentner Date: Mon, 6 Feb 2023 13:41:40 +0100 Subject: [PATCH 62/70] add doc to comments endpoint in ``Notion::class`` --- src/Notion.php | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/Notion.php b/src/Notion.php index cae8daf..e371dc2 100644 --- a/src/Notion.php +++ b/src/Notion.php @@ -185,6 +185,12 @@ public function search(?string $searchText = ''): Search return new Search($this, $searchText); } + /** + * @return Comments + * + * @throws Exceptions\LaravelNotionAPIException + * @throws HandlingException + */ public function comments(): Comments { return new Comments($this); From f7c097d2ddc418c792382001c3918893564feef5 Mon Sep 17 00:00:00 2001 From: johguentner Date: Mon, 6 Feb 2023 20:08:47 +0100 Subject: [PATCH 63/70] rename `fillEntityBase()` to `fillEssentials` and - move filling of trait related attributes to the context of `fillEssentials()` --- src/Entities/Blocks/Block.php | 5 +-- src/Entities/Database.php | 5 +-- src/Entities/Entity.php | 44 +++++++++++++++++++++-- src/Entities/Page.php | 5 +-- src/Entities/Properties/Property.php | 2 +- src/Entities/PropertyItems/SelectItem.php | 2 +- src/Entities/User.php | 2 +- 7 files changed, 47 insertions(+), 18 deletions(-) diff --git a/src/Entities/Blocks/Block.php b/src/Entities/Blocks/Block.php index 0718171..507ef60 100644 --- a/src/Entities/Blocks/Block.php +++ b/src/Entities/Blocks/Block.php @@ -59,13 +59,10 @@ protected function setResponseData(array $responseData): void protected function fillFromRaw(): void { - parent::fillEntityBase(); + parent::fillEssentials(); $this->fillType(); $this->fillRawContent(); $this->fillHasChildren(); - $this->fillParentAttributes(); - $this->fillArchivedAttributes(); - $this->fillTimestampableAttributes(); } private function fillType(): void diff --git a/src/Entities/Database.php b/src/Entities/Database.php index 8020918..9df0eee 100644 --- a/src/Entities/Database.php +++ b/src/Entities/Database.php @@ -99,7 +99,7 @@ protected function setResponseData(array $responseData): void private function fillFromRaw() { - parent::fillEntityBase(); + parent::fillEssentials(); $this->fillIcon(); $this->fillCover(); $this->fillTitle(); @@ -107,9 +107,6 @@ private function fillFromRaw() $this->fillDescription(); $this->fillProperties(); $this->fillDatabaseUrl(); - $this->fillParentAttributes(); - $this->fillArchivedAttributes(); - $this->fillTimestampableAttributes(); } private function fillTitle(): void diff --git a/src/Entities/Entity.php b/src/Entities/Entity.php index b3e45fc..19ec2df 100644 --- a/src/Entities/Entity.php +++ b/src/Entities/Entity.php @@ -50,7 +50,7 @@ public function __construct(array $responseData = null) */ protected function setResponseData(array $responseData): void { - if (! Arr::exists($responseData, 'object')) { + if (!Arr::exists($responseData, 'object')) { throw new HandlingException('invalid json-array: no object given'); } @@ -65,17 +65,55 @@ protected function setResponseData(array $responseData): void throw NotionException::instance('Not found', compact('responseData')); } - if (! Arr::exists($responseData, 'id')) { + if (!Arr::exists($responseData, 'id')) { throw HandlingException::instance('invalid json-array: no id provided'); } $this->responseData = $responseData; } - protected function fillEntityBase(): void + protected function fillEssentials(): void { $this->fillId(); $this->fillObjectType(); + $this->fillTraitAttributes(); + } + + private function fillTraitAttributes(): void + { + $traitMapping = [ + 'FiveamCode\LaravelNotionApi\Traits\HasTimestamps' => function ($entity) { + $entity->fillTimestampableAttributes(); + }, + 'FiveamCode\LaravelNotionApi\Traits\HasParent' => function ($entity) { + $entity->fillParentAttributes(); + }, + 'FiveamCode\LaravelNotionApi\Traits\HasArchive' => function ($entity) { + $entity->fillArchivedAttributes(); + }, + ]; + + $traits = $this->class_uses_deep($this); + foreach ($traits as $trait) { + if (Arr::exists($traitMapping, $trait)) { + $traitMapping[$trait]($this); + } + } + } + + private function class_uses_deep($class, $autoload = true) + { + $traits = []; + + do { + $traits = array_merge(class_uses($class, $autoload), $traits); + } while ($class = get_parent_class($class)); + + foreach ($traits as $trait => $same) { + $traits = array_merge(class_uses($trait, $autoload), $traits); + } + + return array_unique($traits); } private function fillId() diff --git a/src/Entities/Page.php b/src/Entities/Page.php index 43888dd..c857162 100644 --- a/src/Entities/Page.php +++ b/src/Entities/Page.php @@ -111,15 +111,12 @@ protected function setResponseData(array $responseData): void private function fillFromRaw(): void { - parent::fillEntityBase(); + parent::fillEssentials(); $this->fillProperties(); $this->fillTitle(); // This has to be called after fillProperties(), since title is provided by properties $this->fillPageUrl(); $this->fillIcon(); $this->fillCover(); - $this->fillParentAttributes(); - $this->fillArchivedAttributes(); - $this->fillTimestampableAttributes(); } /** diff --git a/src/Entities/Properties/Property.php b/src/Entities/Properties/Property.php index 32f17cd..e647f31 100644 --- a/src/Entities/Properties/Property.php +++ b/src/Entities/Properties/Property.php @@ -62,7 +62,7 @@ protected function setResponseData(array $responseData): void protected function fillFromRaw(): void { - parent::fillEntityBase(); + parent::fillEssentials(); $this->fillType(); $this->fillContent(); } diff --git a/src/Entities/PropertyItems/SelectItem.php b/src/Entities/PropertyItems/SelectItem.php index 87f1228..1cf7cb3 100644 --- a/src/Entities/PropertyItems/SelectItem.php +++ b/src/Entities/PropertyItems/SelectItem.php @@ -36,7 +36,7 @@ protected function setResponseData(array $responseData): void protected function fillFromRaw(): void { - parent::fillEntityBase(); + parent::fillEssentials(); $this->fillName(); $this->fillColor(); } diff --git a/src/Entities/User.php b/src/Entities/User.php index 9c201fb..87ae619 100644 --- a/src/Entities/User.php +++ b/src/Entities/User.php @@ -37,7 +37,7 @@ protected function setResponseData(array $responseData): void private function fillFromRaw(): void { - parent::fillEntityBase(); + parent::fillEssentials(); $this->fillName(); $this->fillAvatarUrl(); } From 25c97d452172011d4e9ad1b77e765fedc0a6284f Mon Sep 17 00:00:00 2001 From: Di Date: Mon, 6 Feb 2023 20:09:05 +0100 Subject: [PATCH 64/70] Apply fixes from StyleCI (#117) --- src/Entities/Entity.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Entities/Entity.php b/src/Entities/Entity.php index 19ec2df..b23671f 100644 --- a/src/Entities/Entity.php +++ b/src/Entities/Entity.php @@ -50,7 +50,7 @@ public function __construct(array $responseData = null) */ protected function setResponseData(array $responseData): void { - if (!Arr::exists($responseData, 'object')) { + if (! Arr::exists($responseData, 'object')) { throw new HandlingException('invalid json-array: no object given'); } @@ -65,7 +65,7 @@ protected function setResponseData(array $responseData): void throw NotionException::instance('Not found', compact('responseData')); } - if (!Arr::exists($responseData, 'id')) { + if (! Arr::exists($responseData, 'id')) { throw HandlingException::instance('invalid json-array: no id provided'); } From 76a287a4485f964df1a47035d8fef6737aef5b6d Mon Sep 17 00:00:00 2001 From: johguentner Date: Mon, 6 Feb 2023 20:11:01 +0100 Subject: [PATCH 65/70] modify `Comment`, based on changes in `Entity` --- src/Entities/Comment.php | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/Entities/Comment.php b/src/Entities/Comment.php index dd70b15..f3062fc 100644 --- a/src/Entities/Comment.php +++ b/src/Entities/Comment.php @@ -77,11 +77,9 @@ protected function setResponseData(array $responseData): void private function fillFromRaw(): void { - parent::fillEntityBase(); + parent::fillEssentials(); $this->fillRichText(); $this->fillDiscussionId(); - $this->fillParentAttributes(); - $this->fillTimestampableAttributes(); } private function fillDiscussionId(): void From 91f2cc2fd240576db5c032782b6c1965febcff23 Mon Sep 17 00:00:00 2001 From: johguentner Date: Mon, 6 Feb 2023 20:13:40 +0100 Subject: [PATCH 66/70] polish error message in `Comment` Endpoint --- src/Endpoints/Comments.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Endpoints/Comments.php b/src/Endpoints/Comments.php index 84acfd7..4d721af 100644 --- a/src/Endpoints/Comments.php +++ b/src/Endpoints/Comments.php @@ -50,7 +50,7 @@ public function __construct(Notion $notion) public function ofBlock(string $blockId): CommentCollection { $response = $this->get( - $this->url(Endpoint::COMMENTS."?block_id={$blockId}&{$this->buildPaginationQuery()}") + $this->url(Endpoint::COMMENTS . "?block_id={$blockId}&{$this->buildPaginationQuery()}") ); return new CommentCollection($response->json()); @@ -63,7 +63,7 @@ public function ofBlock(string $blockId): CommentCollection public function onDiscussion(string $discussionId): self { if ($this->pageId !== null) { - throw new HandlingException('You can only use ``->onDiscussion(...)`` or ``->onPage(...)``.'); + throw new HandlingException('You can only use `onDiscussion()` or `onPage()`.'); } $this->discussionId = $discussionId; @@ -78,7 +78,7 @@ public function onDiscussion(string $discussionId): self public function onPage(string $pageId): self { if ($this->discussionId !== null) { - throw new HandlingException('You can only use ``->onDiscussion(...)`` or ``->onPage(...)``.'); + throw new HandlingException('You can only use `onDiscussion()` or `onPage()`.'); } $this->pageId = $pageId; @@ -89,7 +89,7 @@ public function onPage(string $pageId): self public function create($comment): Comment { if ($this->discussionId === null && $this->pageId === null) { - throw new HandlingException('You must use ``->onDiscussion(...)`` or ``->onPage(...)``.'); + throw new HandlingException('You must use `onDiscussion()` or `onPage()`.'); } $body = $comment->getRawResponse(); From 2533e4bd7f316cca66b8f36dfc9a890a3cf6fe07 Mon Sep 17 00:00:00 2001 From: Di Date: Mon, 6 Feb 2023 20:13:56 +0100 Subject: [PATCH 67/70] Apply fixes from StyleCI (#118) --- src/Endpoints/Comments.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Endpoints/Comments.php b/src/Endpoints/Comments.php index 4d721af..c34f367 100644 --- a/src/Endpoints/Comments.php +++ b/src/Endpoints/Comments.php @@ -50,7 +50,7 @@ public function __construct(Notion $notion) public function ofBlock(string $blockId): CommentCollection { $response = $this->get( - $this->url(Endpoint::COMMENTS . "?block_id={$blockId}&{$this->buildPaginationQuery()}") + $this->url(Endpoint::COMMENTS."?block_id={$blockId}&{$this->buildPaginationQuery()}") ); return new CommentCollection($response->json()); From 4b847e1387f088f364c47b066093b8d347ee04f6 Mon Sep 17 00:00:00 2001 From: johguentner Date: Mon, 6 Feb 2023 20:18:10 +0100 Subject: [PATCH 68/70] add alias for `Comment` Entity - to avoid missunderstanding - add phpdocs for `create()` --- src/Endpoints/Comments.php | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/src/Endpoints/Comments.php b/src/Endpoints/Comments.php index c34f367..8bc62de 100644 --- a/src/Endpoints/Comments.php +++ b/src/Endpoints/Comments.php @@ -3,7 +3,7 @@ namespace FiveamCode\LaravelNotionApi\Endpoints; use FiveamCode\LaravelNotionApi\Entities\Collections\CommentCollection; -use FiveamCode\LaravelNotionApi\Entities\Comment; +use FiveamCode\LaravelNotionApi\Entities\Comment as CommentEntity; use FiveamCode\LaravelNotionApi\Exceptions\HandlingException; use FiveamCode\LaravelNotionApi\Exceptions\NotionException; use FiveamCode\LaravelNotionApi\Notion; @@ -38,9 +38,10 @@ public function __construct(Notion $notion) } /** - * Retrieve block children + * Retrieve a list of comments * url: https://api.notion.com/{version}/comments?block_id=* [get] * notion-api-docs: https://developers.notion.com/reference/retrieve-a-comment. + * @param string $blockId * * @return CommentCollection * @@ -50,7 +51,7 @@ public function __construct(Notion $notion) public function ofBlock(string $blockId): CommentCollection { $response = $this->get( - $this->url(Endpoint::COMMENTS."?block_id={$blockId}&{$this->buildPaginationQuery()}") + $this->url(Endpoint::COMMENTS . "?block_id={$blockId}&{$this->buildPaginationQuery()}") ); return new CommentCollection($response->json()); @@ -86,7 +87,18 @@ public function onPage(string $pageId): self return $this; } - public function create($comment): Comment + /** + * Create a comment + * url: https://api.notion.com/{version}/comments [post] + * notion-api-docs: https://developers.notion.com/reference/create-a-comment. + * @param CommentEntity $comment + * + * @return CommentEntity + * + * @throws HandlingException + * @throws NotionException + */ + public function create($comment): CommentEntity { if ($this->discussionId === null && $this->pageId === null) { throw new HandlingException('You must use `onDiscussion()` or `onPage()`.'); @@ -106,6 +118,6 @@ public function create($comment): Comment $body ); - return new Comment($response->json()); + return new CommentEntity($response->json()); } } From 63d288a2dcc16af7f2e9db818a8233da2548c53e Mon Sep 17 00:00:00 2001 From: Di Date: Mon, 6 Feb 2023 20:18:27 +0100 Subject: [PATCH 69/70] Apply fixes from StyleCI (#119) --- src/Endpoints/Comments.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Endpoints/Comments.php b/src/Endpoints/Comments.php index 8bc62de..f220c66 100644 --- a/src/Endpoints/Comments.php +++ b/src/Endpoints/Comments.php @@ -41,8 +41,8 @@ public function __construct(Notion $notion) * Retrieve a list of comments * url: https://api.notion.com/{version}/comments?block_id=* [get] * notion-api-docs: https://developers.notion.com/reference/retrieve-a-comment. - * @param string $blockId * + * @param string $blockId * @return CommentCollection * * @throws HandlingException @@ -51,7 +51,7 @@ public function __construct(Notion $notion) public function ofBlock(string $blockId): CommentCollection { $response = $this->get( - $this->url(Endpoint::COMMENTS . "?block_id={$blockId}&{$this->buildPaginationQuery()}") + $this->url(Endpoint::COMMENTS."?block_id={$blockId}&{$this->buildPaginationQuery()}") ); return new CommentCollection($response->json()); @@ -91,8 +91,8 @@ public function onPage(string $pageId): self * Create a comment * url: https://api.notion.com/{version}/comments [post] * notion-api-docs: https://developers.notion.com/reference/create-a-comment. - * @param CommentEntity $comment * + * @param CommentEntity $comment * @return CommentEntity * * @throws HandlingException From 03665451ff76c7a4778f689fb1edbd767b2969a2 Mon Sep 17 00:00:00 2001 From: Diana Scharf Date: Mon, 6 Mar 2023 12:26:23 +0100 Subject: [PATCH 70/70] Updated README & contribution guide --- CONTRIBUTING.md | 6 +- README.md | 159 +++++++++++++++++++++++++++++++++--------------- 2 files changed, 114 insertions(+), 51 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index b4ae1c4..de1d3d2 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -42,9 +42,9 @@ If the project maintainer has any additional requirements, you will find them li - **[PSR-2 Coding Standard](https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-2-coding-style-guide.md)** - The easiest way to apply the conventions is to install [PHP Code Sniffer](https://pear.php.net/package/PHP_CodeSniffer). -- **Add tests!** - Your patch won't be accepted if it doesn't have tests. +- **Add tests!** - Your pull request won't be accepted if it doesn't have tests. When implementing new tests, please use the Pest PHP framework. You can find examples and detailed documentation at [pestphp.com](https://pestphp.com/). -- **Document any change in behaviour** - Make sure the `README.md` and any other relevant documentation are kept up-to-date. +- **Document any change in behaviour** - Make sure the `README.md` is kept up-to-date. If you implement a new feature or propose significant changes to an existing feature, you will have to provide the documentation for these as well. The maintainers of the project will inform you about the process if necessary. - **Consider our release cycle** - We try to follow [SemVer v2.0.0](https://semver.org/). Randomly breaking public APIs is not an option. @@ -52,4 +52,4 @@ If the project maintainer has any additional requirements, you will find them li - **Send coherent history** - Make sure each individual commit in your pull request is meaningful. If you had to make multiple intermediate commits while developing, please [squash them](https://www.git-scm.com/book/en/v2/Git-Tools-Rewriting-History#Changing-Multiple-Commit-Messages) before submitting. -**Happy coding**! +**Happy coding!** 🚀! diff --git a/README.md b/README.md index e610811..a51f4be 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@

Notion for Laravel

- + [![Latest Version on Packagist](https://img.shields.io/packagist/v/fiveam-code/laravel-notion-api.svg?style=flat-square)](https://packagist.org/packages/fiveam-code/laravel-notion-api) [![Total Downloads](https://img.shields.io/packagist/dt/fiveam-code/laravel-notion-api.svg?style=flat-square)](https://packagist.org/packages/fiveam-code/laravel-notion-api) @@ -9,94 +9,158 @@ This package provides a simple and crisp way to access the Notion API endpoints, query data and update existing entries. - ## Installation -1. You can install the package via composer: +The package is compatible with Laravel 8, 9 and 10 with their respective PHP versions. - ```bash - composer require fiveam-code/laravel-notion-api - ``` +1. Install the package via composer: + ```bash + composer require fiveam-code/laravel-notion-api + ``` 2. Get your Notion API access token like explained in [their documentation](https://developers.notion.com/). It's also -important to grant access to the integration within your Notion pages, which is described in the developer documentation at Notion as well. + important to grant access to the integration within your Notion pages, which is described in the developer + documentation at Notion as well. + +3. Add a new line to your applications `.env` file: + + ```bash + NOTION_API_TOKEN="$YOUR_ACCESS_TOKEN" + ``` -3. For internal Integrations, please add a new entry to your `.env` like the following: +4. You're ready to go! You can now access Notion endpoints through the `Notion` facade: - ```bash - NOTION_API_TOKEN="$YOUR_ACCESS_TOKEN" - ``` -4. Now you can easily access Notion: - ```php - use \Notion; - - Notion::databases()->find($databaseId); - ``` + ```php + use \Notion; - That's it. + Notion::databases()->find("8284f3ff77e24d4a939d19459e4d6bdc"); + ``` + That's it. -## Usage +For detailed usage information and a list of available endpoints see (the docs). -Head over to the [Documentation](https://notionforlaravel.com) of this package. +## Examples -### 🔥 Code Examples to jumpstart your next Notion API Project +All examples refer to our test database, which you can +find [here](https://dianawebdev.notion.site/8284f3ff77e24d4a939d19459e4d6bdc?v=bc3a9ce8cdb84d3faefc9ae490136ac2). + +### Fetch a Notion Database + +The `databases()->find()` method returns a `FiveamCode\LaravelNotionApi\Entities\Database` object, +which contains all the information about the database, including its properties and the possible values for each +property. -#### Fetch a Notion Database (through a Facade) ```php -use \Notion; +use \Notion; Notion::databases() - ->find("a7e5e47d-23ca-463b-9750-eb07ca7115e4"); + ->find("8284f3ff77e24d4a939d19459e4d6bdc"); ``` -#### Fetch a Notion Page +### Fetch a Notion Page + +The `pages()->find()` method returns a `FiveamCode\LaravelNotionApi\Entities\Page` object, +which contains all the information about the page, including its properties and the possible values for each property. + ```php Notion::pages() ->find("e7e5e47d-23ca-463b-9750-eb07ca7115e4"); ``` -#### Search +### Search + +The `search()` endpoint returns a collection of pages that match the search query. The scope of the search is limited to +the workspace that the integration is installed in +and the pages that are shared with the integration. + ```php -// Returns a collection pages and databases of your workspace (included in your integration-token) -Notion::search("My Notion Search") +Notion::search("Search term") ->query() ->asCollection(); ``` -#### Query Database +### Query Database + +The `database()` endpoint allows you to query a specific database and returns a collection of pages (= database +entries). +You can filter and sort the results and limit the number of returned entries. For detailed information about the +available +filters and sorts, please refer to the [documentation](https://developers.notion.com/reference/post-database-query). ```php -// Queries a specific database and returns a collection of pages (= database entries) -$sortings = new Collection(); -$filters = new Collection(); - -$sortings->add(Sorting::propertySort('Ordered', 'ascending')); -$sortings->add(Sorting::timestampSort('created_time', 'ascending')); - -$filters->add(Filter::textFilter('title', ['contains' => 'new'])); -// or -$filters->add(Filter::rawFilter('Tags', ['multi_select' => ['contains' => 'great']])); - -Notion::database("a7e5e47d-23ca-463b-9750-eb07ca7115e4") - ->filterBy($filters) // filters are optional - ->sortBy($sortings) // sorts are optional - ->limit(5) // limit is optional - ->query() - ->asCollection(); +use FiveamCode\LaravelNotionApi\Query\Filters\Filter; +use FiveamCode\LaravelNotionApi\Query\Filters\Operators; + +$nameFilter = Filter::textFilter('Name', Operators::EQUALS, 'Ada Lovelace'); + +\Notion::database("8284f3ff77e24d4a939d19459e4d6bdc") + ->filterBy($nameFilter) + ->limit(5) + ->query() + ->asCollection(); ``` +Compound filters for AND or OR queries are also available: + +```php +use Illuminate\Support\Collection; +use FiveamCode\LaravelNotionApi\Query\Filters\Filter; +use FiveamCode\LaravelNotionApi\Query\Filters\FilterBag; +use FiveamCode\LaravelNotionApi\Query\Filters\Operators; +use FiveamCode\LaravelNotionApi\Query\Sorting; + +# Give me all entries that are +# (KnownFor == UNIVAC || KnownFor == ENIAC) +# and sort them by name ascending + +$filterBag = new FilterBag(Operators::AND); + +$filterBag->addFilter( + Filter::rawFilter("Known for", [ + "multi_select" => [Operators::CONTAINS => "UNIVAC"], + ]) +); + +$filterBag->addFilter( + Filter::rawFilter("Known for", [ + "multi_select" => [Operators::CONTAINS => "ENIAC"], + ]) +); + +\Notion::database("8284f3ff77e24d4a939d19459e4d6bdc") + ->filterBy($filterBag) + ->sortBy(Sorting::propertySort('Name', 'ascending')) + ->limit(5) + ->query() + ->asCollection(); +``` ### Testing (pestphp) +You can find even more usage examples by checking out the package tests in the `/tests` directory. +The tests are making use of Pest PHP and we are working on switching from PHPUNIT to it (todo sentence). + +If you want to run the tests in your CLI: + ```bash vendor/bin/pest tests ``` ## Support -If you use this package in one of your projects or just want to support our development, consider becoming a [Patreon](https://www.patreon.com/bePatron?u=56662485)! +If you use this package in one of your projects or want to support our development, consider becoming +a [Patreon Supporter](https://www.patreon.com/bePatron?u=56662485)! + +### Supported by Tinkerwell + + +Tinkerwell
+
+ +The development of this package is supported by [Tinkerwell](https://tinkerwell.app/). + ## Contributing @@ -111,7 +175,6 @@ If you discover any security related issues, please email hello@dianaweb.dev ins - [Diana Scharf](https://github.com/mechelon) - [Johannes Güntner](https://github.com/johguentner) -