diff --git a/composer.json b/composer.json index 0cdcd5d..82b1868 100644 --- a/composer.json +++ b/composer.json @@ -17,7 +17,8 @@ }, "require": { "guzzlehttp/guzzle": "^7.4", - "craftcms/cms": "^3.0.0" + "craftcms/cms": "^3.0.0", + "illuminate/collections": "^8 || ^9" }, "autoload": { "psr-4": { diff --git a/composer.lock b/composer.lock index b6bdc33..09a9fdc 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": "a7607e27711538ed6c08ffcaa4073e83", + "content-hash": "aa09e298ea07aaf44521b538b534211d", "packages": [ { "name": "cebe/markdown", @@ -148,31 +148,32 @@ }, { "name": "composer/composer", - "version": "2.1.9", + "version": "2.2.12", "source": { "type": "git", "url": "https://github.com/composer/composer.git", - "reference": "e558c88f28d102d497adec4852802c0dc14c7077" + "reference": "ba61e768b410736efe61df01b61f1ec44f51474f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/composer/zipball/e558c88f28d102d497adec4852802c0dc14c7077", - "reference": "e558c88f28d102d497adec4852802c0dc14c7077", + "url": "https://api.github.com/repos/composer/composer/zipball/ba61e768b410736efe61df01b61f1ec44f51474f", + "reference": "ba61e768b410736efe61df01b61f1ec44f51474f", "shasum": "" }, "require": { "composer/ca-bundle": "^1.0", "composer/metadata-minifier": "^1.0", + "composer/pcre": "^1.0", "composer/semver": "^3.0", "composer/spdx-licenses": "^1.2", - "composer/xdebug-handler": "^2.0", + "composer/xdebug-handler": "^2.0 || ^3.0", "justinrainbow/json-schema": "^5.2.11", "php": "^5.3.2 || ^7.0 || ^8.0", - "psr/log": "^1.0", + "psr/log": "^1.0 || ^2.0", "react/promise": "^1.2 || ^2.7", "seld/jsonlint": "^1.4", "seld/phar-utils": "^1.0", - "symfony/console": "^2.8.52 || ^3.4.35 || ^4.4 || ^5.0 || ^6.0", + "symfony/console": "^2.8.52 || ^3.4.35 || ^4.4 || ^5.0", "symfony/filesystem": "^2.8.52 || ^3.4.35 || ^4.4 || ^5.0 || ^6.0", "symfony/finder": "^2.8.52 || ^3.4.35 || ^4.4 || ^5.0 || ^6.0", "symfony/process": "^2.8.52 || ^3.4.35 || ^4.4 || ^5.0 || ^6.0" @@ -192,7 +193,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.1-dev" + "dev-main": "2.2-dev" } }, "autoload": { @@ -226,7 +227,7 @@ "support": { "irc": "ircs://irc.libera.chat:6697/composer", "issues": "https://github.com/composer/composer/issues", - "source": "https://github.com/composer/composer/tree/2.1.9" + "source": "https://github.com/composer/composer/tree/2.2.12" }, "funding": [ { @@ -242,7 +243,7 @@ "type": "tidelift" } ], - "time": "2021-10-05T07:47:38+00:00" + "time": "2022-04-13T14:42:25+00:00" }, { "name": "composer/metadata-minifier", @@ -386,23 +387,23 @@ }, { "name": "composer/semver", - "version": "3.2.7", + "version": "3.3.2", "source": { "type": "git", "url": "https://github.com/composer/semver.git", - "reference": "deac27056b57e46faf136fae7b449eeaa71661ee" + "reference": "3953f23262f2bff1919fc82183ad9acb13ff62c9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/semver/zipball/deac27056b57e46faf136fae7b449eeaa71661ee", - "reference": "deac27056b57e46faf136fae7b449eeaa71661ee", + "url": "https://api.github.com/repos/composer/semver/zipball/3953f23262f2bff1919fc82183ad9acb13ff62c9", + "reference": "3953f23262f2bff1919fc82183ad9acb13ff62c9", "shasum": "" }, "require": { "php": "^5.3.2 || ^7.0 || ^8.0" }, "require-dev": { - "phpstan/phpstan": "^0.12.54", + "phpstan/phpstan": "^1.4", "symfony/phpunit-bridge": "^4.2 || ^5" }, "type": "library", @@ -447,7 +448,7 @@ "support": { "irc": "irc://irc.freenode.org/composer", "issues": "https://github.com/composer/semver/issues", - "source": "https://github.com/composer/semver/tree/3.2.7" + "source": "https://github.com/composer/semver/tree/3.3.2" }, "funding": [ { @@ -463,7 +464,7 @@ "type": "tidelift" } ], - "time": "2022-01-04T09:57:54+00:00" + "time": "2022-04-01T19:23:25+00:00" }, { "name": "composer/spdx-licenses", @@ -547,27 +548,27 @@ }, { "name": "composer/xdebug-handler", - "version": "2.0.4", + "version": "3.0.3", "source": { "type": "git", "url": "https://github.com/composer/xdebug-handler.git", - "reference": "0c1a3925ec58a4ec98e992b9c7d171e9e184be0a" + "reference": "ced299686f41dce890debac69273b47ffe98a40c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/0c1a3925ec58a4ec98e992b9c7d171e9e184be0a", - "reference": "0c1a3925ec58a4ec98e992b9c7d171e9e184be0a", + "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/ced299686f41dce890debac69273b47ffe98a40c", + "reference": "ced299686f41dce890debac69273b47ffe98a40c", "shasum": "" }, "require": { - "composer/pcre": "^1", - "php": "^5.3.2 || ^7.0 || ^8.0", + "composer/pcre": "^1 || ^2 || ^3", + "php": "^7.2.5 || ^8.0", "psr/log": "^1 || ^2 || ^3" }, "require-dev": { "phpstan/phpstan": "^1.0", "phpstan/phpstan-strict-rules": "^1.1", - "symfony/phpunit-bridge": "^4.2 || ^5.0 || ^6.0" + "symfony/phpunit-bridge": "^6.0" }, "type": "library", "autoload": { @@ -593,7 +594,7 @@ "support": { "irc": "irc://irc.freenode.org/composer", "issues": "https://github.com/composer/xdebug-handler/issues", - "source": "https://github.com/composer/xdebug-handler/tree/2.0.4" + "source": "https://github.com/composer/xdebug-handler/tree/3.0.3" }, "funding": [ { @@ -609,30 +610,30 @@ "type": "tidelift" } ], - "time": "2022-01-04T17:06:45+00:00" + "time": "2022-02-25T21:32:43+00:00" }, { "name": "craftcms/cms", - "version": "3.7.30.1", + "version": "3.7.42", "source": { "type": "git", "url": "https://github.com/craftcms/cms.git", - "reference": "5c17ca766e18c2b4722b24b9d3216fcf8808f858" + "reference": "3f7e0e30d049be9976db94ba9cf9826a8245b883" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/craftcms/cms/zipball/5c17ca766e18c2b4722b24b9d3216fcf8808f858", - "reference": "5c17ca766e18c2b4722b24b9d3216fcf8808f858", + "url": "https://api.github.com/repos/craftcms/cms/zipball/3f7e0e30d049be9976db94ba9cf9826a8245b883", + "reference": "3f7e0e30d049be9976db94ba9cf9826a8245b883", "shasum": "" }, "require": { - "composer/composer": "2.1.9", + "composer/composer": "2.2.12", "craftcms/oauth2-craftid": "~1.0.0", "craftcms/plugin-installer": "~1.5.6", "craftcms/server-check": "~1.2.0", "creocoder/yii2-nested-sets": "~0.9.0", "elvanto/litemoji": "^3.0.1", - "enshrined/svg-sanitize": "~0.14.0", + "enshrined/svg-sanitize": "~0.15.2", "ext-curl": "*", "ext-dom": "*", "ext-json": "*", @@ -653,9 +654,8 @@ "true/punycode": "^2.1.1", "twig/twig": "~2.14.3", "voku/stringy": "^6.4.0", - "webonyx/graphql-php": "~14.4.1", - "yii2tech/ar-softdelete": "^1.0.4", - "yiisoft/yii2": "~2.0.44.0", + "webonyx/graphql-php": "~14.11.5", + "yiisoft/yii2": "~2.0.45.0", "yiisoft/yii2-debug": "^2.1.16", "yiisoft/yii2-queue": "~2.3.2", "yiisoft/yii2-swiftmailer": "^2.1.2" @@ -667,7 +667,8 @@ "bower-asset/inputmask": "~3.2.2 | ~3.3.5", "bower-asset/jquery": "3.5.*@stable | 3.4.*@stable | 3.3.*@stable | 3.2.*@stable | 3.1.*@stable | 2.2.*@stable | 2.1.*@stable | 1.11.*@stable | 1.12.*@stable", "bower-asset/punycode": "1.3.*", - "bower-asset/yii2-pjax": "~2.0.1" + "bower-asset/yii2-pjax": "~2.0.1", + "yii2tech/ar-softdelete": "1.0.4" }, "require-dev": { "codeception/codeception": "^4.0.0", @@ -676,6 +677,7 @@ "codeception/module-phpbrowser": "^1.0.0", "codeception/module-rest": "^1.0.0", "codeception/module-yii2": "^1.0.0", + "craftcms/ecs": "dev-main", "fzaninotto/faker": "^1.8", "league/factory-muffin": "^3.0", "vlucas/phpdotenv": "^3.0" @@ -689,7 +691,7 @@ "autoload": { "psr-4": { "craft\\": "src/", - "crafttests\\fixtures\\": "tests/fixtures/" + "yii2tech\\ar\\softdelete\\": "lib/ar-softdelete/src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -717,7 +719,7 @@ "rss": "https://github.com/craftcms/cms/releases.atom", "source": "https://github.com/craftcms/cms" }, - "time": "2022-01-21T22:33:24+00:00" + "time": "2022-05-11T15:21:38+00:00" }, { "name": "craftcms/oauth2-craftid", @@ -829,16 +831,16 @@ }, { "name": "craftcms/server-check", - "version": "1.2.3", + "version": "1.2.4", "source": { "type": "git", "url": "https://github.com/craftcms/server-check.git", - "reference": "9d8345bc7920b6657bd3fac396efee6bf8609ed6" + "reference": "04518e63ae94effd4e352838278662c928c84e8c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/craftcms/server-check/zipball/9d8345bc7920b6657bd3fac396efee6bf8609ed6", - "reference": "9d8345bc7920b6657bd3fac396efee6bf8609ed6", + "url": "https://api.github.com/repos/craftcms/server-check/zipball/04518e63ae94effd4e352838278662c928c84e8c", + "reference": "04518e63ae94effd4e352838278662c928c84e8c", "shasum": "" }, "type": "library", @@ -867,7 +869,7 @@ "rss": "https://github.com/craftcms/server-check/releases.atom", "source": "https://github.com/craftcms/server-check" }, - "time": "2021-08-18T14:46:23+00:00" + "time": "2022-04-17T02:10:54+00:00" }, { "name": "creocoder/yii2-nested-sets", @@ -981,16 +983,16 @@ }, { "name": "doctrine/lexer", - "version": "1.2.2", + "version": "1.2.3", "source": { "type": "git", "url": "https://github.com/doctrine/lexer.git", - "reference": "9c50f840f257bbb941e6f4a0e94ccf5db5c3f76c" + "reference": "c268e882d4dbdd85e36e4ad69e02dc284f89d229" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/lexer/zipball/9c50f840f257bbb941e6f4a0e94ccf5db5c3f76c", - "reference": "9c50f840f257bbb941e6f4a0e94ccf5db5c3f76c", + "url": "https://api.github.com/repos/doctrine/lexer/zipball/c268e882d4dbdd85e36e4ad69e02dc284f89d229", + "reference": "c268e882d4dbdd85e36e4ad69e02dc284f89d229", "shasum": "" }, "require": { @@ -998,7 +1000,7 @@ }, "require-dev": { "doctrine/coding-standard": "^9.0", - "phpstan/phpstan": "1.3", + "phpstan/phpstan": "^1.3", "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", "vimeo/psalm": "^4.11" }, @@ -1037,7 +1039,7 @@ ], "support": { "issues": "https://github.com/doctrine/lexer/issues", - "source": "https://github.com/doctrine/lexer/tree/1.2.2" + "source": "https://github.com/doctrine/lexer/tree/1.2.3" }, "funding": [ { @@ -1053,7 +1055,7 @@ "type": "tidelift" } ], - "time": "2022-01-12T08:27:12+00:00" + "time": "2022-02-28T11:07:21+00:00" }, { "name": "egulias/email-validator", @@ -1167,16 +1169,16 @@ }, { "name": "enshrined/svg-sanitize", - "version": "0.14.1", + "version": "0.15.4", "source": { "type": "git", "url": "https://github.com/darylldoyle/svg-sanitizer.git", - "reference": "307b42066fb0b76b5119f5e1f0826e18fefabe95" + "reference": "e50b83a2f1f296ca61394fe88fbfe3e896a84cf4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/darylldoyle/svg-sanitizer/zipball/307b42066fb0b76b5119f5e1f0826e18fefabe95", - "reference": "307b42066fb0b76b5119f5e1f0826e18fefabe95", + "url": "https://api.github.com/repos/darylldoyle/svg-sanitizer/zipball/e50b83a2f1f296ca61394fe88fbfe3e896a84cf4", + "reference": "e50b83a2f1f296ca61394fe88fbfe3e896a84cf4", "shasum": "" }, "require": { @@ -1185,7 +1187,6 @@ "php": "^7.0 || ^8.0" }, "require-dev": { - "codeclimate/php-test-reporter": "^0.1.2", "phpunit/phpunit": "^6.5 || ^8.5" }, "type": "library", @@ -1207,9 +1208,9 @@ "description": "An SVG sanitizer for PHP", "support": { "issues": "https://github.com/darylldoyle/svg-sanitizer/issues", - "source": "https://github.com/darylldoyle/svg-sanitizer/tree/0.14.1" + "source": "https://github.com/darylldoyle/svg-sanitizer/tree/0.15.4" }, - "time": "2021-08-09T23:46:54+00:00" + "time": "2022-02-21T09:13:59+00:00" }, { "name": "ezyang/htmlpurifier", @@ -1230,12 +1231,12 @@ }, "type": "library", "autoload": { - "psr-0": { - "HTMLPurifier": "library/" - }, "files": [ "library/HTMLPurifier.composer.php" ], + "psr-0": { + "HTMLPurifier": "library/" + }, "exclude-from-classmap": [ "/library/HTMLPurifier/Language/" ] @@ -1264,16 +1265,16 @@ }, { "name": "guzzlehttp/guzzle", - "version": "7.4.1", + "version": "7.4.2", "source": { "type": "git", "url": "https://github.com/guzzle/guzzle.git", - "reference": "ee0a041b1760e6a53d2a39c8c34115adc2af2c79" + "reference": "ac1ec1cd9b5624694c3a40be801d94137afb12b4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/guzzle/zipball/ee0a041b1760e6a53d2a39c8c34115adc2af2c79", - "reference": "ee0a041b1760e6a53d2a39c8c34115adc2af2c79", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/ac1ec1cd9b5624694c3a40be801d94137afb12b4", + "reference": "ac1ec1cd9b5624694c3a40be801d94137afb12b4", "shasum": "" }, "require": { @@ -1306,12 +1307,12 @@ } }, "autoload": { - "psr-4": { - "GuzzleHttp\\": "src/" - }, "files": [ "src/functions_include.php" - ] + ], + "psr-4": { + "GuzzleHttp\\": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -1368,7 +1369,7 @@ ], "support": { "issues": "https://github.com/guzzle/guzzle/issues", - "source": "https://github.com/guzzle/guzzle/tree/7.4.1" + "source": "https://github.com/guzzle/guzzle/tree/7.4.2" }, "funding": [ { @@ -1384,7 +1385,7 @@ "type": "tidelift" } ], - "time": "2021-12-06T18:43:05+00:00" + "time": "2022-03-20T14:16:28+00:00" }, { "name": "guzzlehttp/promises", @@ -1413,12 +1414,12 @@ } }, "autoload": { - "psr-4": { - "GuzzleHttp\\Promise\\": "src/" - }, "files": [ "src/functions_include.php" - ] + ], + "psr-4": { + "GuzzleHttp\\Promise\\": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -1472,16 +1473,16 @@ }, { "name": "guzzlehttp/psr7", - "version": "2.1.0", + "version": "2.2.1", "source": { "type": "git", "url": "https://github.com/guzzle/psr7.git", - "reference": "089edd38f5b8abba6cb01567c2a8aaa47cec4c72" + "reference": "c94a94f120803a18554c1805ef2e539f8285f9a2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/psr7/zipball/089edd38f5b8abba6cb01567c2a8aaa47cec4c72", - "reference": "089edd38f5b8abba6cb01567c2a8aaa47cec4c72", + "url": "https://api.github.com/repos/guzzle/psr7/zipball/c94a94f120803a18554c1805ef2e539f8285f9a2", + "reference": "c94a94f120803a18554c1805ef2e539f8285f9a2", "shasum": "" }, "require": { @@ -1505,7 +1506,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.1-dev" + "dev-master": "2.2-dev" } }, "autoload": { @@ -1567,7 +1568,7 @@ ], "support": { "issues": "https://github.com/guzzle/psr7/issues", - "source": "https://github.com/guzzle/psr7/tree/2.1.0" + "source": "https://github.com/guzzle/psr7/tree/2.2.1" }, "funding": [ { @@ -1583,20 +1584,168 @@ "type": "tidelift" } ], - "time": "2021-10-06T17:43:30+00:00" + "time": "2022-03-20T21:55:58+00:00" + }, + { + "name": "illuminate/collections", + "version": "v8.83.13", + "source": { + "type": "git", + "url": "https://github.com/illuminate/collections.git", + "reference": "fc232e89c0214dba5d2b431220a24b02d480a472" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/illuminate/collections/zipball/fc232e89c0214dba5d2b431220a24b02d480a472", + "reference": "fc232e89c0214dba5d2b431220a24b02d480a472", + "shasum": "" + }, + "require": { + "illuminate/contracts": "^8.0", + "illuminate/macroable": "^8.0", + "php": "^7.3|^8.0" + }, + "suggest": { + "symfony/var-dumper": "Required to use the dump method (^5.4)." + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "8.x-dev" + } + }, + "autoload": { + "files": [ + "helpers.php" + ], + "psr-4": { + "Illuminate\\Support\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Taylor Otwell", + "email": "taylor@laravel.com" + } + ], + "description": "The Illuminate Collections package.", + "homepage": "https://laravel.com", + "support": { + "issues": "https://github.com/laravel/framework/issues", + "source": "https://github.com/laravel/framework" + }, + "time": "2022-03-25T14:53:23+00:00" + }, + { + "name": "illuminate/contracts", + "version": "v8.83.13", + "source": { + "type": "git", + "url": "https://github.com/illuminate/contracts.git", + "reference": "5e0fd287a1b22a6b346a9f7cd484d8cf0234585d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/illuminate/contracts/zipball/5e0fd287a1b22a6b346a9f7cd484d8cf0234585d", + "reference": "5e0fd287a1b22a6b346a9f7cd484d8cf0234585d", + "shasum": "" + }, + "require": { + "php": "^7.3|^8.0", + "psr/container": "^1.0", + "psr/simple-cache": "^1.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "8.x-dev" + } + }, + "autoload": { + "psr-4": { + "Illuminate\\Contracts\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Taylor Otwell", + "email": "taylor@laravel.com" + } + ], + "description": "The Illuminate Contracts package.", + "homepage": "https://laravel.com", + "support": { + "issues": "https://github.com/laravel/framework/issues", + "source": "https://github.com/laravel/framework" + }, + "time": "2022-01-13T14:47:47+00:00" + }, + { + "name": "illuminate/macroable", + "version": "v8.83.13", + "source": { + "type": "git", + "url": "https://github.com/illuminate/macroable.git", + "reference": "aed81891a6e046fdee72edd497f822190f61c162" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/illuminate/macroable/zipball/aed81891a6e046fdee72edd497f822190f61c162", + "reference": "aed81891a6e046fdee72edd497f822190f61c162", + "shasum": "" + }, + "require": { + "php": "^7.3|^8.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "8.x-dev" + } + }, + "autoload": { + "psr-4": { + "Illuminate\\Support\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Taylor Otwell", + "email": "taylor@laravel.com" + } + ], + "description": "The Illuminate Macroable package.", + "homepage": "https://laravel.com", + "support": { + "issues": "https://github.com/laravel/framework/issues", + "source": "https://github.com/laravel/framework" + }, + "time": "2021-11-16T13:57:03+00:00" }, { "name": "justinrainbow/json-schema", - "version": "5.2.11", + "version": "5.2.12", "source": { "type": "git", "url": "https://github.com/justinrainbow/json-schema.git", - "reference": "2ab6744b7296ded80f8cc4f9509abbff393399aa" + "reference": "ad87d5a5ca981228e0e205c2bc7dfb8e24559b60" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/justinrainbow/json-schema/zipball/2ab6744b7296ded80f8cc4f9509abbff393399aa", - "reference": "2ab6744b7296ded80f8cc4f9509abbff393399aa", + "url": "https://api.github.com/repos/justinrainbow/json-schema/zipball/ad87d5a5ca981228e0e205c2bc7dfb8e24559b60", + "reference": "ad87d5a5ca981228e0e205c2bc7dfb8e24559b60", "shasum": "" }, "require": { @@ -1651,39 +1800,39 @@ ], "support": { "issues": "https://github.com/justinrainbow/json-schema/issues", - "source": "https://github.com/justinrainbow/json-schema/tree/5.2.11" + "source": "https://github.com/justinrainbow/json-schema/tree/5.2.12" }, - "time": "2021-07-22T09:24:00+00:00" + "time": "2022-04-13T08:02:27+00:00" }, { "name": "laminas/laminas-escaper", - "version": "2.9.0", + "version": "2.10.0", "source": { "type": "git", "url": "https://github.com/laminas/laminas-escaper.git", - "reference": "891ad70986729e20ed2e86355fcf93c9dc238a5f" + "reference": "58af67282db37d24e584a837a94ee55b9c7552be" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laminas/laminas-escaper/zipball/891ad70986729e20ed2e86355fcf93c9dc238a5f", - "reference": "891ad70986729e20ed2e86355fcf93c9dc238a5f", + "url": "https://api.github.com/repos/laminas/laminas-escaper/zipball/58af67282db37d24e584a837a94ee55b9c7552be", + "reference": "58af67282db37d24e584a837a94ee55b9c7552be", "shasum": "" }, "require": { - "php": "^7.3 || ~8.0.0 || ~8.1.0" + "ext-ctype": "*", + "ext-mbstring": "*", + "php": "^7.4 || ~8.0.0 || ~8.1.0" }, "conflict": { "zendframework/zend-escaper": "*" }, "require-dev": { + "infection/infection": "^0.26.6", "laminas/laminas-coding-standard": "~2.3.0", - "phpunit/phpunit": "^9.3", - "psalm/plugin-phpunit": "^0.12.2", - "vimeo/psalm": "^3.16" - }, - "suggest": { - "ext-iconv": "*", - "ext-mbstring": "*" + "maglnet/composer-require-checker": "^3.8.0", + "phpunit/phpunit": "^9.5.18", + "psalm/plugin-phpunit": "^0.16.1", + "vimeo/psalm": "^4.22.0" }, "type": "library", "autoload": { @@ -1715,20 +1864,20 @@ "type": "community_bridge" } ], - "time": "2021-09-02T17:10:53+00:00" + "time": "2022-03-08T20:15:36+00:00" }, { "name": "laminas/laminas-feed", - "version": "2.16.0", + "version": "2.17.0", "source": { "type": "git", "url": "https://github.com/laminas/laminas-feed.git", - "reference": "cbd0e10c867a1efa6594164d229d8caf4a4ae4c7" + "reference": "1ccb024ea615606ed1d676ba0fa3f22a398f3ac0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laminas/laminas-feed/zipball/cbd0e10c867a1efa6594164d229d8caf4a4ae4c7", - "reference": "cbd0e10c867a1efa6594164d229d8caf4a4ae4c7", + "url": "https://api.github.com/repos/laminas/laminas-feed/zipball/1ccb024ea615606ed1d676ba0fa3f22a398f3ac0", + "reference": "1ccb024ea615606ed1d676ba0fa3f22a398f3ac0", "shasum": "" }, "require": { @@ -1792,7 +1941,7 @@ "type": "community_bridge" } ], - "time": "2021-12-17T09:12:35+00:00" + "time": "2022-03-24T10:26:04+00:00" }, { "name": "laminas/laminas-stdlib", @@ -1949,16 +2098,16 @@ }, { "name": "league/mime-type-detection", - "version": "1.9.0", + "version": "1.11.0", "source": { "type": "git", "url": "https://github.com/thephpleague/mime-type-detection.git", - "reference": "aa70e813a6ad3d1558fc927863d47309b4c23e69" + "reference": "ff6248ea87a9f116e78edd6002e39e5128a0d4dd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/mime-type-detection/zipball/aa70e813a6ad3d1558fc927863d47309b4c23e69", - "reference": "aa70e813a6ad3d1558fc927863d47309b4c23e69", + "url": "https://api.github.com/repos/thephpleague/mime-type-detection/zipball/ff6248ea87a9f116e78edd6002e39e5128a0d4dd", + "reference": "ff6248ea87a9f116e78edd6002e39e5128a0d4dd", "shasum": "" }, "require": { @@ -1989,7 +2138,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.9.0" + "source": "https://github.com/thephpleague/mime-type-detection/tree/1.11.0" }, "funding": [ { @@ -2001,7 +2150,7 @@ "type": "tidelift" } ], - "time": "2021-11-21T11:48:40+00:00" + "time": "2022-04-17T13:12:02+00:00" }, { "name": "league/oauth2-client", @@ -2119,71 +2268,6 @@ }, "time": "2021-03-17T06:54:33+00:00" }, - { - "name": "opis/closure", - "version": "3.6.3", - "source": { - "type": "git", - "url": "https://github.com/opis/closure.git", - "reference": "3d81e4309d2a927abbe66df935f4bb60082805ad" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/opis/closure/zipball/3d81e4309d2a927abbe66df935f4bb60082805ad", - "reference": "3d81e4309d2a927abbe66df935f4bb60082805ad", - "shasum": "" - }, - "require": { - "php": "^5.4 || ^7.0 || ^8.0" - }, - "require-dev": { - "jeremeamia/superclosure": "^2.0", - "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0 || ^8.0 || ^9.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.6.x-dev" - } - }, - "autoload": { - "psr-4": { - "Opis\\Closure\\": "src/" - }, - "files": [ - "functions.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Marius Sarca", - "email": "marius.sarca@gmail.com" - }, - { - "name": "Sorin Sarca", - "email": "sarca_sorin@hotmail.com" - } - ], - "description": "A library that can be used to serialize closures (anonymous functions) and arbitrary objects.", - "homepage": "https://opis.io/closure", - "keywords": [ - "anonymous functions", - "closure", - "function", - "serializable", - "serialization", - "serialize" - ], - "support": { - "issues": "https://github.com/opis/closure/issues", - "source": "https://github.com/opis/closure/tree/3.6.3" - }, - "time": "2022-01-27T09:35:39+00:00" - }, { "name": "paragonie/random_compat", "version": "v9.99.100", @@ -2346,16 +2430,16 @@ }, { "name": "phpdocumentor/type-resolver", - "version": "1.6.0", + "version": "1.6.1", "source": { "type": "git", "url": "https://github.com/phpDocumentor/TypeResolver.git", - "reference": "93ebd0014cab80c4ea9f5e297ea48672f1b87706" + "reference": "77a32518733312af16a44300404e945338981de3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/93ebd0014cab80c4ea9f5e297ea48672f1b87706", - "reference": "93ebd0014cab80c4ea9f5e297ea48672f1b87706", + "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/77a32518733312af16a44300404e945338981de3", + "reference": "77a32518733312af16a44300404e945338981de3", "shasum": "" }, "require": { @@ -2390,9 +2474,9 @@ "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.0" + "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.6.1" }, - "time": "2022-01-04T19:58:01+00:00" + "time": "2022-03-15T21:29:03+00:00" }, { "name": "pixelandtonic/imagine", @@ -2713,6 +2797,57 @@ }, "time": "2021-05-03T11:20:27+00:00" }, + { + "name": "psr/simple-cache", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/php-fig/simple-cache.git", + "reference": "408d5eafb83c57f6365a3ca330ff23aa4a5fa39b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/simple-cache/zipball/408d5eafb83c57f6365a3ca330ff23aa4a5fa39b", + "reference": "408d5eafb83c57f6365a3ca330ff23aa4a5fa39b", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\SimpleCache\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common interfaces for simple caching", + "keywords": [ + "cache", + "caching", + "psr", + "psr-16", + "simple-cache" + ], + "support": { + "source": "https://github.com/php-fig/simple-cache/tree/master" + }, + "time": "2017-10-23T01:57:42+00:00" + }, { "name": "ralouphie/getallheaders", "version": "3.0.3", @@ -2759,32 +2894,32 @@ }, { "name": "react/promise", - "version": "v2.8.0", + "version": "v2.9.0", "source": { "type": "git", "url": "https://github.com/reactphp/promise.git", - "reference": "f3cff96a19736714524ca0dd1d4130de73dbbbc4" + "reference": "234f8fd1023c9158e2314fa9d7d0e6a83db42910" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/reactphp/promise/zipball/f3cff96a19736714524ca0dd1d4130de73dbbbc4", - "reference": "f3cff96a19736714524ca0dd1d4130de73dbbbc4", + "url": "https://api.github.com/repos/reactphp/promise/zipball/234f8fd1023c9158e2314fa9d7d0e6a83db42910", + "reference": "234f8fd1023c9158e2314fa9d7d0e6a83db42910", "shasum": "" }, "require": { "php": ">=5.4.0" }, "require-dev": { - "phpunit/phpunit": "^7.0 || ^6.5 || ^5.7 || ^4.8.36" + "phpunit/phpunit": "^9.3 || ^5.7 || ^4.8.36" }, "type": "library", "autoload": { - "psr-4": { - "React\\Promise\\": "src/" - }, "files": [ "src/functions_include.php" - ] + ], + "psr-4": { + "React\\Promise\\": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -2793,7 +2928,23 @@ "authors": [ { "name": "Jan Sorgalla", - "email": "jsorgalla@gmail.com" + "email": "jsorgalla@gmail.com", + "homepage": "https://sorgalla.com/" + }, + { + "name": "Christian Lück", + "email": "christian@clue.engineering", + "homepage": "https://clue.engineering/" + }, + { + "name": "Cees-Jan Kiewiet", + "email": "reactphp@ceesjankiewiet.nl", + "homepage": "https://wyrihaximus.net/" + }, + { + "name": "Chris Boden", + "email": "cboden@gmail.com", + "homepage": "https://cboden.dev/" } ], "description": "A lightweight implementation of CommonJS Promises/A for PHP", @@ -2803,9 +2954,19 @@ ], "support": { "issues": "https://github.com/reactphp/promise/issues", - "source": "https://github.com/reactphp/promise/tree/v2.8.0" + "source": "https://github.com/reactphp/promise/tree/v2.9.0" }, - "time": "2020-05-12T15:16:56+00:00" + "funding": [ + { + "url": "https://github.com/WyriHaximus", + "type": "github" + }, + { + "url": "https://github.com/clue", + "type": "github" + } + ], + "time": "2022-02-11T10:27:51+00:00" }, { "name": "seld/cli-prompt", @@ -2864,23 +3025,24 @@ }, { "name": "seld/jsonlint", - "version": "1.8.3", + "version": "1.9.0", "source": { "type": "git", "url": "https://github.com/Seldaek/jsonlint.git", - "reference": "9ad6ce79c342fbd44df10ea95511a1b24dee5b57" + "reference": "4211420d25eba80712bff236a98960ef68b866b7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Seldaek/jsonlint/zipball/9ad6ce79c342fbd44df10ea95511a1b24dee5b57", - "reference": "9ad6ce79c342fbd44df10ea95511a1b24dee5b57", + "url": "https://api.github.com/repos/Seldaek/jsonlint/zipball/4211420d25eba80712bff236a98960ef68b866b7", + "reference": "4211420d25eba80712bff236a98960ef68b866b7", "shasum": "" }, "require": { "php": "^5.3 || ^7.0 || ^8.0" }, "require-dev": { - "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0" + "phpstan/phpstan": "^1.5", + "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0 || ^8.5.13" }, "bin": [ "bin/jsonlint" @@ -2911,7 +3073,7 @@ ], "support": { "issues": "https://github.com/Seldaek/jsonlint/issues", - "source": "https://github.com/Seldaek/jsonlint/tree/1.8.3" + "source": "https://github.com/Seldaek/jsonlint/tree/1.9.0" }, "funding": [ { @@ -2923,7 +3085,7 @@ "type": "tidelift" } ], - "time": "2020-11-11T09:19:24+00:00" + "time": "2022-04-01T13:37:23+00:00" }, { "name": "seld/phar-utils", @@ -3051,16 +3213,16 @@ }, { "name": "symfony/console", - "version": "v5.4.3", + "version": "v5.4.8", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "a2a86ec353d825c75856c6fd14fac416a7bdb6b8" + "reference": "ffe3aed36c4d60da2cf1b0a1cee6b8f2e5fa881b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/a2a86ec353d825c75856c6fd14fac416a7bdb6b8", - "reference": "a2a86ec353d825c75856c6fd14fac416a7bdb6b8", + "url": "https://api.github.com/repos/symfony/console/zipball/ffe3aed36c4d60da2cf1b0a1cee6b8f2e5fa881b", + "reference": "ffe3aed36c4d60da2cf1b0a1cee6b8f2e5fa881b", "shasum": "" }, "require": { @@ -3130,7 +3292,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v5.4.3" + "source": "https://github.com/symfony/console/tree/v5.4.8" }, "funding": [ { @@ -3146,20 +3308,20 @@ "type": "tidelift" } ], - "time": "2022-01-26T16:28:35+00:00" + "time": "2022-04-12T16:02:29+00:00" }, { "name": "symfony/deprecation-contracts", - "version": "v2.5.0", + "version": "v2.5.1", "source": { "type": "git", "url": "https://github.com/symfony/deprecation-contracts.git", - "reference": "6f981ee24cf69ee7ce9736146d1c57c2780598a8" + "reference": "e8b495ea28c1d97b5e0c121748d6f9b53d075c66" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/6f981ee24cf69ee7ce9736146d1c57c2780598a8", - "reference": "6f981ee24cf69ee7ce9736146d1c57c2780598a8", + "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/e8b495ea28c1d97b5e0c121748d6f9b53d075c66", + "reference": "e8b495ea28c1d97b5e0c121748d6f9b53d075c66", "shasum": "" }, "require": { @@ -3197,7 +3359,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.0" + "source": "https://github.com/symfony/deprecation-contracts/tree/v2.5.1" }, "funding": [ { @@ -3213,20 +3375,20 @@ "type": "tidelift" } ], - "time": "2021-07-12T14:48:14+00:00" + "time": "2022-01-02T09:53:40+00:00" }, { "name": "symfony/filesystem", - "version": "v5.4.3", + "version": "v5.4.7", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", - "reference": "0f0c4bf1840420f4aef3f32044a9dbb24682731b" + "reference": "3a4442138d80c9f7b600fb297534ac718b61d37f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/0f0c4bf1840420f4aef3f32044a9dbb24682731b", - "reference": "0f0c4bf1840420f4aef3f32044a9dbb24682731b", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/3a4442138d80c9f7b600fb297534ac718b61d37f", + "reference": "3a4442138d80c9f7b600fb297534ac718b61d37f", "shasum": "" }, "require": { @@ -3261,7 +3423,7 @@ "description": "Provides basic utilities for the filesystem", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/filesystem/tree/v5.4.3" + "source": "https://github.com/symfony/filesystem/tree/v5.4.7" }, "funding": [ { @@ -3277,20 +3439,20 @@ "type": "tidelift" } ], - "time": "2022-01-02T09:53:40+00:00" + "time": "2022-04-01T12:33:59+00:00" }, { "name": "symfony/finder", - "version": "v5.4.3", + "version": "v5.4.8", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "231313534dded84c7ecaa79d14bc5da4ccb69b7d" + "reference": "9b630f3427f3ebe7cd346c277a1408b00249dad9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/231313534dded84c7ecaa79d14bc5da4ccb69b7d", - "reference": "231313534dded84c7ecaa79d14bc5da4ccb69b7d", + "url": "https://api.github.com/repos/symfony/finder/zipball/9b630f3427f3ebe7cd346c277a1408b00249dad9", + "reference": "9b630f3427f3ebe7cd346c277a1408b00249dad9", "shasum": "" }, "require": { @@ -3324,7 +3486,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.3" + "source": "https://github.com/symfony/finder/tree/v5.4.8" }, "funding": [ { @@ -3340,11 +3502,11 @@ "type": "tidelift" } ], - "time": "2022-01-26T16:34:36+00:00" + "time": "2022-04-15T08:07:45+00:00" }, { "name": "symfony/polyfill-ctype", - "version": "v1.24.0", + "version": "v1.25.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-ctype.git", @@ -3376,12 +3538,12 @@ } }, "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Ctype\\": "" - }, "files": [ "bootstrap.php" - ] + ], + "psr-4": { + "Symfony\\Polyfill\\Ctype\\": "" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -3406,7 +3568,7 @@ "portable" ], "support": { - "source": "https://github.com/symfony/polyfill-ctype/tree/v1.24.0" + "source": "https://github.com/symfony/polyfill-ctype/tree/v1.25.0" }, "funding": [ { @@ -3426,7 +3588,7 @@ }, { "name": "symfony/polyfill-iconv", - "version": "v1.24.0", + "version": "v1.25.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-iconv.git", @@ -3458,12 +3620,12 @@ } }, "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Iconv\\": "" - }, "files": [ "bootstrap.php" - ] + ], + "psr-4": { + "Symfony\\Polyfill\\Iconv\\": "" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -3489,7 +3651,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-iconv/tree/v1.24.0" + "source": "https://github.com/symfony/polyfill-iconv/tree/v1.25.0" }, "funding": [ { @@ -3509,7 +3671,7 @@ }, { "name": "symfony/polyfill-intl-grapheme", - "version": "v1.24.0", + "version": "v1.25.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-grapheme.git", @@ -3538,12 +3700,12 @@ } }, "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Intl\\Grapheme\\": "" - }, "files": [ "bootstrap.php" - ] + ], + "psr-4": { + "Symfony\\Polyfill\\Intl\\Grapheme\\": "" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -3570,7 +3732,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.24.0" + "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.25.0" }, "funding": [ { @@ -3590,7 +3752,7 @@ }, { "name": "symfony/polyfill-intl-idn", - "version": "v1.24.0", + "version": "v1.25.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-idn.git", @@ -3621,12 +3783,12 @@ } }, "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Intl\\Idn\\": "" - }, "files": [ "bootstrap.php" - ] + ], + "psr-4": { + "Symfony\\Polyfill\\Intl\\Idn\\": "" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -3657,7 +3819,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.24.0" + "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.25.0" }, "funding": [ { @@ -3677,7 +3839,7 @@ }, { "name": "symfony/polyfill-intl-normalizer", - "version": "v1.24.0", + "version": "v1.25.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-normalizer.git", @@ -3706,12 +3868,12 @@ } }, "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Intl\\Normalizer\\": "" - }, "files": [ "bootstrap.php" ], + "psr-4": { + "Symfony\\Polyfill\\Intl\\Normalizer\\": "" + }, "classmap": [ "Resources/stubs" ] @@ -3741,7 +3903,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.24.0" + "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.25.0" }, "funding": [ { @@ -3761,7 +3923,7 @@ }, { "name": "symfony/polyfill-mbstring", - "version": "v1.24.0", + "version": "v1.25.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", @@ -3793,12 +3955,12 @@ } }, "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Mbstring\\": "" - }, "files": [ "bootstrap.php" - ] + ], + "psr-4": { + "Symfony\\Polyfill\\Mbstring\\": "" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -3824,7 +3986,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.24.0" + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.25.0" }, "funding": [ { @@ -3844,7 +4006,7 @@ }, { "name": "symfony/polyfill-php72", - "version": "v1.24.0", + "version": "v1.25.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php72.git", @@ -3870,12 +4032,12 @@ } }, "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Php72\\": "" - }, "files": [ "bootstrap.php" - ] + ], + "psr-4": { + "Symfony\\Polyfill\\Php72\\": "" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -3900,7 +4062,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php72/tree/v1.24.0" + "source": "https://github.com/symfony/polyfill-php72/tree/v1.25.0" }, "funding": [ { @@ -3920,7 +4082,7 @@ }, { "name": "symfony/polyfill-php73", - "version": "v1.24.0", + "version": "v1.25.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php73.git", @@ -3946,12 +4108,12 @@ } }, "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Php73\\": "" - }, "files": [ "bootstrap.php" ], + "psr-4": { + "Symfony\\Polyfill\\Php73\\": "" + }, "classmap": [ "Resources/stubs" ] @@ -3979,7 +4141,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php73/tree/v1.24.0" + "source": "https://github.com/symfony/polyfill-php73/tree/v1.25.0" }, "funding": [ { @@ -3999,16 +4161,16 @@ }, { "name": "symfony/polyfill-php80", - "version": "v1.24.0", + "version": "v1.25.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php80.git", - "reference": "57b712b08eddb97c762a8caa32c84e037892d2e9" + "reference": "4407588e0d3f1f52efb65fbe92babe41f37fe50c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/57b712b08eddb97c762a8caa32c84e037892d2e9", - "reference": "57b712b08eddb97c762a8caa32c84e037892d2e9", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/4407588e0d3f1f52efb65fbe92babe41f37fe50c", + "reference": "4407588e0d3f1f52efb65fbe92babe41f37fe50c", "shasum": "" }, "require": { @@ -4025,12 +4187,12 @@ } }, "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Php80\\": "" - }, "files": [ "bootstrap.php" ], + "psr-4": { + "Symfony\\Polyfill\\Php80\\": "" + }, "classmap": [ "Resources/stubs" ] @@ -4062,7 +4224,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php80/tree/v1.24.0" + "source": "https://github.com/symfony/polyfill-php80/tree/v1.25.0" }, "funding": [ { @@ -4078,20 +4240,20 @@ "type": "tidelift" } ], - "time": "2021-09-13T13:58:33+00:00" + "time": "2022-03-04T08:16:47+00:00" }, { "name": "symfony/process", - "version": "v5.4.3", + "version": "v5.4.8", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "553f50487389a977eb31cf6b37faae56da00f753" + "reference": "597f3fff8e3e91836bb0bd38f5718b56ddbde2f3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/553f50487389a977eb31cf6b37faae56da00f753", - "reference": "553f50487389a977eb31cf6b37faae56da00f753", + "url": "https://api.github.com/repos/symfony/process/zipball/597f3fff8e3e91836bb0bd38f5718b56ddbde2f3", + "reference": "597f3fff8e3e91836bb0bd38f5718b56ddbde2f3", "shasum": "" }, "require": { @@ -4124,7 +4286,7 @@ "description": "Executes commands in sub-processes", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/process/tree/v5.4.3" + "source": "https://github.com/symfony/process/tree/v5.4.8" }, "funding": [ { @@ -4140,26 +4302,26 @@ "type": "tidelift" } ], - "time": "2022-01-26T16:28:35+00:00" + "time": "2022-04-08T05:07:18+00:00" }, { "name": "symfony/service-contracts", - "version": "v2.5.0", + "version": "v2.5.1", "source": { "type": "git", "url": "https://github.com/symfony/service-contracts.git", - "reference": "1ab11b933cd6bc5464b08e81e2c5b07dec58b0fc" + "reference": "24d9dc654b83e91aa59f9d167b131bc3b5bea24c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/service-contracts/zipball/1ab11b933cd6bc5464b08e81e2c5b07dec58b0fc", - "reference": "1ab11b933cd6bc5464b08e81e2c5b07dec58b0fc", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/24d9dc654b83e91aa59f9d167b131bc3b5bea24c", + "reference": "24d9dc654b83e91aa59f9d167b131bc3b5bea24c", "shasum": "" }, "require": { "php": ">=7.2.5", "psr/container": "^1.1", - "symfony/deprecation-contracts": "^2.1" + "symfony/deprecation-contracts": "^2.1|^3" }, "conflict": { "ext-psr": "<1.1|>=2" @@ -4207,7 +4369,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/service-contracts/tree/v2.5.0" + "source": "https://github.com/symfony/service-contracts/tree/v2.5.1" }, "funding": [ { @@ -4223,20 +4385,20 @@ "type": "tidelift" } ], - "time": "2021-11-04T16:48:04+00:00" + "time": "2022-03-13T20:07:29+00:00" }, { "name": "symfony/string", - "version": "v5.4.3", + "version": "v5.4.8", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "92043b7d8383e48104e411bc9434b260dbeb5a10" + "reference": "3c061a76bff6d6ea427d85e12ad1bb8ed8cd43e8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/92043b7d8383e48104e411bc9434b260dbeb5a10", - "reference": "92043b7d8383e48104e411bc9434b260dbeb5a10", + "url": "https://api.github.com/repos/symfony/string/zipball/3c061a76bff6d6ea427d85e12ad1bb8ed8cd43e8", + "reference": "3c061a76bff6d6ea427d85e12ad1bb8ed8cd43e8", "shasum": "" }, "require": { @@ -4258,12 +4420,12 @@ }, "type": "library", "autoload": { - "psr-4": { - "Symfony\\Component\\String\\": "" - }, "files": [ "Resources/functions.php" ], + "psr-4": { + "Symfony\\Component\\String\\": "" + }, "exclude-from-classmap": [ "/Tests/" ] @@ -4293,7 +4455,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v5.4.3" + "source": "https://github.com/symfony/string/tree/v5.4.8" }, "funding": [ { @@ -4309,7 +4471,7 @@ "type": "tidelift" } ], - "time": "2022-01-02T09:53:40+00:00" + "time": "2022-04-19T10:40:37+00:00" }, { "name": "symfony/yaml", @@ -4438,16 +4600,16 @@ }, { "name": "twig/twig", - "version": "v2.14.10", + "version": "v2.14.13", "source": { "type": "git", "url": "https://github.com/twigphp/Twig.git", - "reference": "95fb194cd4dd6ac373a27af2bde2bad5d3f27aba" + "reference": "66856cd0459df3dc97d32077a98454dc2a0ee75a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/twigphp/Twig/zipball/95fb194cd4dd6ac373a27af2bde2bad5d3f27aba", - "reference": "95fb194cd4dd6ac373a27af2bde2bad5d3f27aba", + "url": "https://api.github.com/repos/twigphp/Twig/zipball/66856cd0459df3dc97d32077a98454dc2a0ee75a", + "reference": "66856cd0459df3dc97d32077a98454dc2a0ee75a", "shasum": "" }, "require": { @@ -4502,7 +4664,7 @@ ], "support": { "issues": "https://github.com/twigphp/Twig/issues", - "source": "https://github.com/twigphp/Twig/tree/v2.14.10" + "source": "https://github.com/twigphp/Twig/tree/v2.14.13" }, "funding": [ { @@ -4514,20 +4676,20 @@ "type": "tidelift" } ], - "time": "2022-01-03T21:13:26+00:00" + "time": "2022-04-06T06:45:17+00:00" }, { "name": "voku/anti-xss", - "version": "4.1.36", + "version": "4.1.39", "source": { "type": "git", "url": "https://github.com/voku/anti-xss.git", - "reference": "0d8f17f7298a6ffa7bc30b01e44f10e8a7460322" + "reference": "64a59ba4744e6722866ff3440d93561da9e85cd0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/voku/anti-xss/zipball/0d8f17f7298a6ffa7bc30b01e44f10e8a7460322", - "reference": "0d8f17f7298a6ffa7bc30b01e44f10e8a7460322", + "url": "https://api.github.com/repos/voku/anti-xss/zipball/64a59ba4744e6722866ff3440d93561da9e85cd0", + "reference": "64a59ba4744e6722866ff3440d93561da9e85cd0", "shasum": "" }, "require": { @@ -4573,7 +4735,7 @@ ], "support": { "issues": "https://github.com/voku/anti-xss/issues", - "source": "https://github.com/voku/anti-xss/tree/4.1.36" + "source": "https://github.com/voku/anti-xss/tree/4.1.39" }, "funding": [ { @@ -4597,20 +4759,20 @@ "type": "tidelift" } ], - "time": "2022-01-27T07:19:19+00:00" + "time": "2022-03-08T17:03:58+00:00" }, { "name": "voku/arrayy", - "version": "7.8.14", + "version": "7.9.1", "source": { "type": "git", "url": "https://github.com/voku/Arrayy.git", - "reference": "c0e81f658abde496422441f7659c13055e8e021a" + "reference": "11509d59745af6b2c23a781938491f9981241c1d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/voku/Arrayy/zipball/c0e81f658abde496422441f7659c13055e8e021a", - "reference": "c0e81f658abde496422441f7659c13055e8e021a", + "url": "https://api.github.com/repos/voku/Arrayy/zipball/11509d59745af6b2c23a781938491f9981241c1d", + "reference": "11509d59745af6b2c23a781938491f9981241c1d", "shasum": "" }, "require": { @@ -4624,12 +4786,12 @@ }, "type": "library", "autoload": { - "psr-4": { - "Arrayy\\": "src/" - }, "files": [ "src/Create.php" - ] + ], + "psr-4": { + "Arrayy\\": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -4680,7 +4842,7 @@ "type": "tidelift" } ], - "time": "2021-12-21T19:47:30+00:00" + "time": "2022-03-08T19:16:33+00:00" }, { "name": "voku/email-check", @@ -4760,16 +4922,16 @@ }, { "name": "voku/portable-ascii", - "version": "2.0.0", + "version": "2.0.1", "source": { "type": "git", "url": "https://github.com/voku/portable-ascii.git", - "reference": "9bd89e83cecdf8c37b64909454249eaed98b2c89" + "reference": "b56450eed252f6801410d810c8e1727224ae0743" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/voku/portable-ascii/zipball/9bd89e83cecdf8c37b64909454249eaed98b2c89", - "reference": "9bd89e83cecdf8c37b64909454249eaed98b2c89", + "url": "https://api.github.com/repos/voku/portable-ascii/zipball/b56450eed252f6801410d810c8e1727224ae0743", + "reference": "b56450eed252f6801410d810c8e1727224ae0743", "shasum": "" }, "require": { @@ -4806,7 +4968,7 @@ ], "support": { "issues": "https://github.com/voku/portable-ascii/issues", - "source": "https://github.com/voku/portable-ascii/tree/2.0.0" + "source": "https://github.com/voku/portable-ascii/tree/2.0.1" }, "funding": [ { @@ -4830,20 +4992,20 @@ "type": "tidelift" } ], - "time": "2022-01-24T18:59:03+00:00" + "time": "2022-03-08T17:03:00+00:00" }, { "name": "voku/portable-utf8", - "version": "6.0.3", + "version": "6.0.4", "source": { "type": "git", "url": "https://github.com/voku/portable-utf8.git", - "reference": "82a714b5a4973974c1113e97b11c1044a8b8cb85" + "reference": "f6c78e492520115bb2d947c3a0d90a2c6b7a60a8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/voku/portable-utf8/zipball/82a714b5a4973974c1113e97b11c1044a8b8cb85", - "reference": "82a714b5a4973974c1113e97b11c1044a8b8cb85", + "url": "https://api.github.com/repos/voku/portable-utf8/zipball/f6c78e492520115bb2d947c3a0d90a2c6b7a60a8", + "reference": "f6c78e492520115bb2d947c3a0d90a2c6b7a60a8", "shasum": "" }, "require": { @@ -4868,12 +5030,12 @@ }, "type": "library", "autoload": { - "psr-4": { - "voku\\": "src/voku/" - }, "files": [ "bootstrap.php" - ] + ], + "psr-4": { + "voku\\": "src/voku/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -4905,7 +5067,7 @@ ], "support": { "issues": "https://github.com/voku/portable-utf8/issues", - "source": "https://github.com/voku/portable-utf8/tree/6.0.3" + "source": "https://github.com/voku/portable-utf8/tree/6.0.4" }, "funding": [ { @@ -4929,7 +5091,7 @@ "type": "tidelift" } ], - "time": "2022-01-30T05:20:24+00:00" + "time": "2022-03-08T17:04:59+00:00" }, { "name": "voku/stop-words", @@ -4980,16 +5142,16 @@ }, { "name": "voku/stringy", - "version": "6.5.2", + "version": "6.5.3", "source": { "type": "git", "url": "https://github.com/voku/Stringy.git", - "reference": "760438112f8696ba3d51a96896bc786d29a5f183" + "reference": "c453c88fbff298f042c836ef44306f8703b2d537" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/voku/Stringy/zipball/760438112f8696ba3d51a96896bc786d29a5f183", - "reference": "760438112f8696ba3d51a96896bc786d29a5f183", + "url": "https://api.github.com/repos/voku/Stringy/zipball/c453c88fbff298f042c836ef44306f8703b2d537", + "reference": "c453c88fbff298f042c836ef44306f8703b2d537", "shasum": "" }, "require": { @@ -5011,12 +5173,12 @@ }, "type": "library", "autoload": { - "psr-4": { - "Stringy\\": "src/" - }, "files": [ "src/Create.php" - ] + ], + "psr-4": { + "Stringy\\": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -5071,7 +5233,7 @@ "type": "tidelift" } ], - "time": "2022-01-30T05:46:50+00:00" + "time": "2022-03-28T14:52:20+00:00" }, { "name": "voku/urlify", @@ -5215,33 +5377,33 @@ }, { "name": "webonyx/graphql-php", - "version": "v14.4.1", + "version": "v14.11.6", "source": { "type": "git", "url": "https://github.com/webonyx/graphql-php.git", - "reference": "769a47401f8cbc5f357ea4d05e0191e35a011b0f" + "reference": "6070542725b61fc7d0654a8a9855303e5e157434" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/webonyx/graphql-php/zipball/769a47401f8cbc5f357ea4d05e0191e35a011b0f", - "reference": "769a47401f8cbc5f357ea4d05e0191e35a011b0f", + "url": "https://api.github.com/repos/webonyx/graphql-php/zipball/6070542725b61fc7d0654a8a9855303e5e157434", + "reference": "6070542725b61fc7d0654a8a9855303e5e157434", "shasum": "" }, "require": { "ext-json": "*", "ext-mbstring": "*", - "php": "^7.1||^8.0" + "php": "^7.1 || ^8" }, "require-dev": { "amphp/amp": "^2.3", "doctrine/coding-standard": "^6.0", "nyholm/psr7": "^1.2", - "phpbench/phpbench": "^0.16.10", + "phpbench/phpbench": "^1.2", "phpstan/extension-installer": "^1.0", - "phpstan/phpstan": "0.12.32", - "phpstan/phpstan-phpunit": "0.12.11", - "phpstan/phpstan-strict-rules": "0.12.2", - "phpunit/phpunit": "^7.2|^8.5", + "phpstan/phpstan": "0.12.82", + "phpstan/phpstan-phpunit": "0.12.18", + "phpstan/phpstan-strict-rules": "0.12.9", + "phpunit/phpunit": "^7.2 || ^8.5", "psr/http-message": "^1.0", "react/promise": "2.*", "simpod/php-coveralls-mirror": "^3.0", @@ -5269,7 +5431,7 @@ ], "support": { "issues": "https://github.com/webonyx/graphql-php/issues", - "source": "https://github.com/webonyx/graphql-php/tree/v14.4.1" + "source": "https://github.com/webonyx/graphql-php/tree/v14.11.6" }, "funding": [ { @@ -5277,80 +5439,20 @@ "type": "open_collective" } ], - "time": "2021-01-23T09:55:10+00:00" - }, - { - "name": "yii2tech/ar-softdelete", - "version": "1.0.4", - "source": { - "type": "git", - "url": "https://github.com/yii2tech/ar-softdelete.git", - "reference": "498ed03f89ded835f0ca156ec50d432191c58769" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/yii2tech/ar-softdelete/zipball/498ed03f89ded835f0ca156ec50d432191c58769", - "reference": "498ed03f89ded835f0ca156ec50d432191c58769", - "shasum": "" - }, - "require": { - "yiisoft/yii2": "~2.0.13" - }, - "require-dev": { - "phpunit/phpunit": "4.8.27|^5.0|^6.0" - }, - "type": "yii2-extension", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "autoload": { - "psr-4": { - "yii2tech\\ar\\softdelete\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Paul Klimov", - "email": "klimov.paul@gmail.com" - } - ], - "description": "Provides support for ActiveRecord soft delete in Yii2", - "keywords": [ - "active", - "delete", - "integrity", - "record", - "smart", - "soft", - "yii2" - ], - "support": { - "forum": "http://www.yiiframework.com/forum/", - "issues": "https://github.com/yii2tech/ar-softdelete/issues", - "source": "https://github.com/yii2tech/ar-softdelete", - "wiki": "https://github.com/yii2tech/ar-softdelete/wiki" - }, - "abandoned": true, - "time": "2019-07-30T11:05:57+00:00" + "time": "2022-04-13T16:25:32+00:00" }, { "name": "yiisoft/yii2", - "version": "2.0.44", + "version": "2.0.45", "source": { "type": "git", "url": "https://github.com/yiisoft/yii2-framework.git", - "reference": "fa89647a2d2c5de1c12c65eb94084404f52a6059" + "reference": "e2223d4085e5612aa616635f8fcaf478607f62e8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/yiisoft/yii2-framework/zipball/fa89647a2d2c5de1c12c65eb94084404f52a6059", - "reference": "fa89647a2d2c5de1c12c65eb94084404f52a6059", + "url": "https://api.github.com/repos/yiisoft/yii2-framework/zipball/e2223d4085e5612aa616635f8fcaf478607f62e8", + "reference": "e2223d4085e5612aa616635f8fcaf478607f62e8", "shasum": "" }, "require": { @@ -5406,7 +5508,7 @@ { "name": "Carsten Brandt", "email": "mail@cebe.cc", - "homepage": "https://cebe.cc/", + "homepage": "https://www.cebe.cc/", "role": "Core framework development" }, { @@ -5439,11 +5541,11 @@ "yii2" ], "support": { - "forum": "https://www.yiiframework.com/forum/", + "forum": "https://forum.yiiframework.com/", "irc": "ircs://irc.libera.chat:6697/yii", "issues": "https://github.com/yiisoft/yii2/issues?state=open", "source": "https://github.com/yiisoft/yii2", - "wiki": "https://www.yiiframework.com/wiki/" + "wiki": "https://www.yiiframework.com/wiki" }, "funding": [ { @@ -5459,7 +5561,7 @@ "type": "tidelift" } ], - "time": "2021-12-30T07:50:56+00:00" + "time": "2022-02-11T13:12:40+00:00" }, { "name": "yiisoft/yii2-composer", @@ -5539,21 +5641,20 @@ }, { "name": "yiisoft/yii2-debug", - "version": "2.1.18", + "version": "2.1.19", "source": { "type": "git", "url": "https://github.com/yiisoft/yii2-debug.git", - "reference": "45bc5d2ef4e3b0ef6f638190d42f04a77ab1df6c" + "reference": "84d20d738b0698298f851fcb6fc25e748d759223" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/yiisoft/yii2-debug/zipball/45bc5d2ef4e3b0ef6f638190d42f04a77ab1df6c", - "reference": "45bc5d2ef4e3b0ef6f638190d42f04a77ab1df6c", + "url": "https://api.github.com/repos/yiisoft/yii2-debug/zipball/84d20d738b0698298f851fcb6fc25e748d759223", + "reference": "84d20d738b0698298f851fcb6fc25e748d759223", "shasum": "" }, "require": { "ext-mbstring": "*", - "opis/closure": "^3.3", "php": ">=5.4", "yiisoft/yii2": "~2.0.13" }, @@ -5575,7 +5676,8 @@ }, "phpunit/phpunit": { "Fix PHP 7 compatibility": "https://yiisoft.github.io/phpunit-patches/phpunit_php7.patch", - "Fix PHP 8 compatibility": "https://yiisoft.github.io/phpunit-patches/phpunit_php8.patch" + "Fix PHP 8 compatibility": "https://yiisoft.github.io/phpunit-patches/phpunit_php8.patch", + "Fix PHP 8.1 compatibility": "https://yiisoft.github.io/phpunit-patches/phpunit_php81.patch" } } }, @@ -5625,20 +5727,20 @@ "type": "tidelift" } ], - "time": "2021-08-09T20:57:58+00:00" + "time": "2022-04-05T20:35:14+00:00" }, { "name": "yiisoft/yii2-queue", - "version": "2.3.3", + "version": "2.3.4", "source": { "type": "git", "url": "https://github.com/yiisoft/yii2-queue.git", - "reference": "68321f9aad0de980f1883c0f4623c11623f43c3a" + "reference": "ed30b5f46ddadd62587a4963dec35f9b756c408b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/yiisoft/yii2-queue/zipball/68321f9aad0de980f1883c0f4623c11623f43c3a", - "reference": "68321f9aad0de980f1883c0f4623c11623f43c3a", + "url": "https://api.github.com/repos/yiisoft/yii2-queue/zipball/ed30b5f46ddadd62587a4963dec35f9b756c408b", + "reference": "ed30b5f46ddadd62587a4963dec35f9b756c408b", "shasum": "" }, "require": { @@ -5677,16 +5779,16 @@ "autoload": { "psr-4": { "yii\\queue\\": "src", - "yii\\queue\\amqp\\": "src/drivers/amqp", - "yii\\queue\\amqp_interop\\": "src/drivers/amqp_interop", - "yii\\queue\\beanstalk\\": "src/drivers/beanstalk", "yii\\queue\\db\\": "src/drivers/db", + "yii\\queue\\sqs\\": "src/drivers/sqs", + "yii\\queue\\amqp\\": "src/drivers/amqp", "yii\\queue\\file\\": "src/drivers/file", - "yii\\queue\\gearman\\": "src/drivers/gearman", - "yii\\queue\\redis\\": "src/drivers/redis", "yii\\queue\\sync\\": "src/drivers/sync", - "yii\\queue\\sqs\\": "src/drivers/sqs", - "yii\\queue\\stomp\\": "src/drivers/stomp" + "yii\\queue\\redis\\": "src/drivers/redis", + "yii\\queue\\stomp\\": "src/drivers/stomp", + "yii\\queue\\gearman\\": "src/drivers/gearman", + "yii\\queue\\beanstalk\\": "src/drivers/beanstalk", + "yii\\queue\\amqp_interop\\": "src/drivers/amqp_interop" } }, "notification-url": "https://packagist.org/downloads/", @@ -5731,7 +5833,7 @@ "type": "tidelift" } ], - "time": "2021-12-30T08:42:00+00:00" + "time": "2022-03-31T07:41:51+00:00" }, { "name": "yiisoft/yii2-swiftmailer", diff --git a/src/services/ShopifyAdminApi.php b/src/services/ShopifyAdminApi.php index 0a4a6cc..d215eb0 100644 --- a/src/services/ShopifyAdminApi.php +++ b/src/services/ShopifyAdminApi.php @@ -6,6 +6,7 @@ use yii\base\Component; use Exception; use GuzzleHttp\Client; +use Illuminate\Support\Collection; /** * Make Guzzle client for querying Shopify Admin API @@ -49,7 +50,7 @@ private function getCreds() /** * Execute a GQL query */ - public function execute($payload) + public function execute($payload): array { $response = $this->client->post('graphql.json', [ 'json' => $payload, @@ -62,16 +63,15 @@ public function execute($payload) /** * Execute a GQL query and paginate through the results */ - public function paginate($payload) + public function paginate($payload): Collection { - $results = []; + $results = new Collection; do { // Fetch this page and add to the results $response = $this->execute($payload); - $results = array_merge( - $results, - $this->flattenEdges($response)['results'], + $results = $results->concat( + $this->flattenEdges($response)['results'] ); // If there is another page, add the end cursor to the next @@ -93,7 +93,7 @@ public function paginate($payload) /** * Get all products */ - public function getProducts() + public function getProducts(): Collection { return $this->paginate([ 'query' => 'query getProducts($cursor: String) { @@ -116,9 +116,9 @@ public function getProducts() /** * Get all variants of all products */ - public function getVariants() + public function getVariants(): Collection { - $variants = $this->paginate([ + return $this->paginate([ 'query' => 'query getVariants($cursor: String) { results: productVariants(first:250, after:$cursor) { edges { @@ -128,6 +128,7 @@ public function getVariants() product { title handle + status } } } @@ -137,29 +138,58 @@ public function getVariants() } } }' - ]); + ]) // Remove variants that are missing a sku - $variants = array_filter($variants, function($variant) { + ->filter(function($variant) { return !empty($variant['sku']); - }); + }) + + // Dedupe by SKU, prefering active variants. Shopify allows you to + // re-use SKUs between multiple product variants but this is used in + // Feed Me as the unique identifier for importing. + ->reduce(function($variants, $variant) { + + // Check if this variant has already been added + $existingIndex = $variants->search( + function($existing) use ($variant) { + return $existing['sku'] == $variant['sku']; + } + ); + + // If this sku is already in the list, replace it if the previous + // instance was not an active product + // https://shopify.dev/api/admin-graphql/2022-04/enums/ProductStatus + if ($existingIndex !== false) { + $existing = $variants->get($existingIndex); + if ($existing['product']['status'] != 'ACTIVE') { + $variants = $variants->replace([ + $existingIndex => $variant + ]); + } + + // ... else the variant didn't exist, so add it + } else $variants->push($variant); + + // Keep working... + return $variants; + }, new Collection) // Make a title that is more useful for displaying in the CMS. - $variants = array_map(function($variant) { + ->map(function($variant) { $variant['dashboardTitle'] = $variant['product']['title'] .' - '.$variant['title'] .(($sku = $variant['sku']) ? ' ('.$sku.')' : null); return $variant; - }, $variants); - // Convert string keys to integer - return array_values($variants); + // Use integer keys + })->values(); } /** * Get all collections */ - public function getCollections() + public function getCollections(): Collection { return $this->paginate([ 'query' => 'collections($cursor: String) {