From 0e38a9a17b90cb784121c49bb15aac9473a05c6b Mon Sep 17 00:00:00 2001 From: Thomas Vantuycom Date: Fri, 26 Jan 2024 10:11:11 +0100 Subject: [PATCH] feat: support all file formats Resolves #8. --- composer.json | 6 +- composer.lock | 1221 ++++++++++++----- src/fs/CloudinaryFs.php | 287 +--- src/imagetransforms/CloudinaryTransformer.php | 16 +- src/templates/fsSettings.html | 1 + 5 files changed, 903 insertions(+), 628 deletions(-) diff --git a/composer.json b/composer.json index 8711b4b..5b6b762 100644 --- a/composer.json +++ b/composer.json @@ -13,8 +13,10 @@ }, "require": { "php": ">=8.0.2", - "cloudinary/cloudinary_php": "^2.11", - "craftcms/cms": "^4.4.0" + "cloudinary/cloudinary_php": "^2.11.0", + "craftcms/cms": "^4.4.0", + "craftcms/flysystem": "^1.0.0", + "thomasvantuycom/flysystem-cloudinary": "^1.0.0" }, "require-dev": { "craftcms/ecs": "dev-main", diff --git a/composer.lock b/composer.lock index 00701db..bf866c1 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": "270db3c696176ce193224146f6808a5a", + "content-hash": "d8205427dc16295a442cc940c45ab3c0", "packages": [ { "name": "cebe/markdown", @@ -72,16 +72,16 @@ }, { "name": "cloudinary/cloudinary_php", - "version": "2.11.0", + "version": "2.12.0", "source": { "type": "git", "url": "git@github.com:cloudinary/cloudinary_php.git", - "reference": "d7bf9ddb93be59053e4eb2cf6164ea5f8af77413" + "reference": "57290a5e24bee1d65939713f6ef8f75d93f2d6b6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/cloudinary/cloudinary_php/zipball/d7bf9ddb93be59053e4eb2cf6164ea5f8af77413", - "reference": "d7bf9ddb93be59053e4eb2cf6164ea5f8af77413", + "url": "https://api.github.com/repos/cloudinary/cloudinary_php/zipball/57290a5e24bee1d65939713f6ef8f75d93f2d6b6", + "reference": "57290a5e24bee1d65939713f6ef8f75d93f2d6b6", "shasum": "" }, "require": { @@ -92,8 +92,7 @@ "guzzlehttp/psr7": "^1.9.1|^2.5", "monolog/monolog": "^1|^2|^3", "php": ">=5.6.0", - "psr/log": "^1|^2|^3", - "teapot/status-code": "^1|^2" + "psr/log": "^1|^2|^3" }, "require-dev": { "consolidation/robo": "~1", @@ -134,20 +133,20 @@ "email": "info@cloudinary.com", "issues": "https://github.com/cloudinary/cloudinary_php/issues" }, - "time": "2023-05-23T13:36:46+00:00" + "time": "2023-12-03T13:57:09+00:00" }, { "name": "cloudinary/transformation-builder-sdk", - "version": "1.2.0", + "version": "1.4.0", "source": { "type": "git", "url": "git@github.com:cloudinary/php-transformation-builder-sdk.git", - "reference": "145d0ebc9638a82ec09bed7de57ea89586839bba" + "reference": "a88d3554ddffec3ecd2086bcbd1484757f6b78d8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/cloudinary/php-transformation-builder-sdk/zipball/145d0ebc9638a82ec09bed7de57ea89586839bba", - "reference": "145d0ebc9638a82ec09bed7de57ea89586839bba", + "url": "https://api.github.com/repos/cloudinary/php-transformation-builder-sdk/zipball/a88d3554ddffec3ecd2086bcbd1484757f6b78d8", + "reference": "a88d3554ddffec3ecd2086bcbd1484757f6b78d8", "shasum": "" }, "require": { @@ -193,7 +192,7 @@ "email": "info@cloudinary.com", "issues": "https://github.com/cloudinary/php-transformation-builder-sdk/issues" }, - "time": "2023-03-23T02:09:04+00:00" + "time": "2024-01-07T13:57:38+00:00" }, { "name": "commerceguys/addressing", @@ -261,16 +260,16 @@ }, { "name": "composer/ca-bundle", - "version": "1.3.6", + "version": "1.4.0", "source": { "type": "git", "url": "https://github.com/composer/ca-bundle.git", - "reference": "90d087e988ff194065333d16bc5cf649872d9cdb" + "reference": "b66d11b7479109ab547f9405b97205640b17d385" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/ca-bundle/zipball/90d087e988ff194065333d16bc5cf649872d9cdb", - "reference": "90d087e988ff194065333d16bc5cf649872d9cdb", + "url": "https://api.github.com/repos/composer/ca-bundle/zipball/b66d11b7479109ab547f9405b97205640b17d385", + "reference": "b66d11b7479109ab547f9405b97205640b17d385", "shasum": "" }, "require": { @@ -282,7 +281,7 @@ "phpstan/phpstan": "^0.12.55", "psr/log": "^1.0", "symfony/phpunit-bridge": "^4.2 || ^5", - "symfony/process": "^2.5 || ^3.0 || ^4.0 || ^5.0 || ^6.0" + "symfony/process": "^2.5 || ^3.0 || ^4.0 || ^5.0 || ^6.0 || ^7.0" }, "type": "library", "extra": { @@ -317,7 +316,7 @@ "support": { "irc": "irc://irc.freenode.org/composer", "issues": "https://github.com/composer/ca-bundle/issues", - "source": "https://github.com/composer/ca-bundle/tree/1.3.6" + "source": "https://github.com/composer/ca-bundle/tree/1.4.0" }, "funding": [ { @@ -333,43 +332,125 @@ "type": "tidelift" } ], - "time": "2023-06-06T12:02:59+00:00" + "time": "2023-12-18T12:05:55+00:00" + }, + { + "name": "composer/class-map-generator", + "version": "1.1.0", + "source": { + "type": "git", + "url": "https://github.com/composer/class-map-generator.git", + "reference": "953cc4ea32e0c31f2185549c7d216d7921f03da9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/composer/class-map-generator/zipball/953cc4ea32e0c31f2185549c7d216d7921f03da9", + "reference": "953cc4ea32e0c31f2185549c7d216d7921f03da9", + "shasum": "" + }, + "require": { + "composer/pcre": "^2.1 || ^3.1", + "php": "^7.2 || ^8.0", + "symfony/finder": "^4.4 || ^5.3 || ^6 || ^7" + }, + "require-dev": { + "phpstan/phpstan": "^1.6", + "phpstan/phpstan-deprecation-rules": "^1", + "phpstan/phpstan-phpunit": "^1", + "phpstan/phpstan-strict-rules": "^1.1", + "symfony/filesystem": "^5.4 || ^6", + "symfony/phpunit-bridge": "^5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Composer\\ClassMapGenerator\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "https://seld.be" + } + ], + "description": "Utilities to scan PHP code and generate class maps.", + "keywords": [ + "classmap" + ], + "support": { + "issues": "https://github.com/composer/class-map-generator/issues", + "source": "https://github.com/composer/class-map-generator/tree/1.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": "2023-06-30T13:58:57+00:00" }, { "name": "composer/composer", - "version": "2.2.19", + "version": "2.6.6", "source": { "type": "git", "url": "https://github.com/composer/composer.git", - "reference": "30ff21a9af9a10845436abaeeb0bb7276e996d24" + "reference": "683557bd2466072777309d039534bb1332d0dda5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/composer/zipball/30ff21a9af9a10845436abaeeb0bb7276e996d24", - "reference": "30ff21a9af9a10845436abaeeb0bb7276e996d24", + "url": "https://api.github.com/repos/composer/composer/zipball/683557bd2466072777309d039534bb1332d0dda5", + "reference": "683557bd2466072777309d039534bb1332d0dda5", "shasum": "" }, "require": { "composer/ca-bundle": "^1.0", + "composer/class-map-generator": "^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 || ^3.0", + "composer/pcre": "^2.1 || ^3.1", + "composer/semver": "^3.2.5", + "composer/spdx-licenses": "^1.5.7", + "composer/xdebug-handler": "^2.0.2 || ^3.0.3", "justinrainbow/json-schema": "^5.2.11", - "php": "^5.3.2 || ^7.0 || ^8.0", - "psr/log": "^1.0 || ^2.0", - "react/promise": "^1.2 || ^2.7", + "php": "^7.2.5 || ^8.0", + "psr/log": "^1.0 || ^2.0 || ^3.0", + "react/promise": "^2.8 || ^3", "seld/jsonlint": "^1.4", - "seld/phar-utils": "^1.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" + "seld/phar-utils": "^1.2", + "seld/signal-handler": "^2.0", + "symfony/console": "^5.4.11 || ^6.0.11", + "symfony/filesystem": "^5.4 || ^6.0 || ^7", + "symfony/finder": "^5.4 || ^6.0 || ^7", + "symfony/polyfill-php73": "^1.24", + "symfony/polyfill-php80": "^1.24", + "symfony/polyfill-php81": "^1.24", + "symfony/process": "^5.4 || ^6.0 || ^7" }, "require-dev": { - "phpspec/prophecy": "^1.10", - "symfony/phpunit-bridge": "^4.2 || ^5.0 || ^6.0" + "phpstan/phpstan": "^1.9.3", + "phpstan/phpstan-deprecation-rules": "^1", + "phpstan/phpstan-phpunit": "^1.0", + "phpstan/phpstan-strict-rules": "^1", + "phpstan/phpstan-symfony": "^1.2.10", + "symfony/phpunit-bridge": "^6.0 || ^7" }, "suggest": { "ext-openssl": "Enabling the openssl extension allows you to access https URLs for repositories and packages", @@ -382,12 +463,17 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "2.2-dev" + "dev-main": "2.6-dev" + }, + "phpstan": { + "includes": [ + "phpstan/rules.neon" + ] } }, "autoload": { "psr-4": { - "Composer\\": "src/Composer" + "Composer\\": "src/Composer/" } }, "notification-url": "https://packagist.org/downloads/", @@ -416,7 +502,8 @@ "support": { "irc": "ircs://irc.libera.chat:6697/composer", "issues": "https://github.com/composer/composer/issues", - "source": "https://github.com/composer/composer/tree/2.2.19" + "security": "https://github.com/composer/composer/security/policy", + "source": "https://github.com/composer/composer/tree/2.6.6" }, "funding": [ { @@ -432,7 +519,7 @@ "type": "tidelift" } ], - "time": "2023-02-04T13:54:48+00:00" + "time": "2023-12-08T17:32:26+00:00" }, { "name": "composer/metadata-minifier", @@ -505,30 +592,30 @@ }, { "name": "composer/pcre", - "version": "1.0.1", + "version": "3.1.1", "source": { "type": "git", "url": "https://github.com/composer/pcre.git", - "reference": "67a32d7d6f9f560b726ab25a061b38ff3a80c560" + "reference": "00104306927c7a0919b4ced2aaa6782c1e61a3c9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/pcre/zipball/67a32d7d6f9f560b726ab25a061b38ff3a80c560", - "reference": "67a32d7d6f9f560b726ab25a061b38ff3a80c560", + "url": "https://api.github.com/repos/composer/pcre/zipball/00104306927c7a0919b4ced2aaa6782c1e61a3c9", + "reference": "00104306927c7a0919b4ced2aaa6782c1e61a3c9", "shasum": "" }, "require": { - "php": "^5.3.2 || ^7.0 || ^8.0" + "php": "^7.4 || ^8.0" }, "require-dev": { "phpstan/phpstan": "^1.3", "phpstan/phpstan-strict-rules": "^1.1", - "symfony/phpunit-bridge": "^4.2 || ^5" + "symfony/phpunit-bridge": "^5" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "1.x-dev" + "dev-main": "3.x-dev" } }, "autoload": { @@ -556,7 +643,7 @@ ], "support": { "issues": "https://github.com/composer/pcre/issues", - "source": "https://github.com/composer/pcre/tree/1.0.1" + "source": "https://github.com/composer/pcre/tree/3.1.1" }, "funding": [ { @@ -572,20 +659,20 @@ "type": "tidelift" } ], - "time": "2022-01-21T20:24:37+00:00" + "time": "2023-10-11T07:11:09+00:00" }, { "name": "composer/semver", - "version": "3.3.2", + "version": "3.4.0", "source": { "type": "git", "url": "https://github.com/composer/semver.git", - "reference": "3953f23262f2bff1919fc82183ad9acb13ff62c9" + "reference": "35e8d0af4486141bc745f23a29cc2091eb624a32" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/semver/zipball/3953f23262f2bff1919fc82183ad9acb13ff62c9", - "reference": "3953f23262f2bff1919fc82183ad9acb13ff62c9", + "url": "https://api.github.com/repos/composer/semver/zipball/35e8d0af4486141bc745f23a29cc2091eb624a32", + "reference": "35e8d0af4486141bc745f23a29cc2091eb624a32", "shasum": "" }, "require": { @@ -635,9 +722,9 @@ "versioning" ], "support": { - "irc": "irc://irc.freenode.org/composer", + "irc": "ircs://irc.libera.chat:6697/composer", "issues": "https://github.com/composer/semver/issues", - "source": "https://github.com/composer/semver/tree/3.3.2" + "source": "https://github.com/composer/semver/tree/3.4.0" }, "funding": [ { @@ -653,20 +740,20 @@ "type": "tidelift" } ], - "time": "2022-04-01T19:23:25+00:00" + "time": "2023-08-31T09:50:34+00:00" }, { "name": "composer/spdx-licenses", - "version": "1.5.7", + "version": "1.5.8", "source": { "type": "git", "url": "https://github.com/composer/spdx-licenses.git", - "reference": "c848241796da2abf65837d51dce1fae55a960149" + "reference": "560bdcf8deb88ae5d611c80a2de8ea9d0358cc0a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/spdx-licenses/zipball/c848241796da2abf65837d51dce1fae55a960149", - "reference": "c848241796da2abf65837d51dce1fae55a960149", + "url": "https://api.github.com/repos/composer/spdx-licenses/zipball/560bdcf8deb88ae5d611c80a2de8ea9d0358cc0a", + "reference": "560bdcf8deb88ae5d611c80a2de8ea9d0358cc0a", "shasum": "" }, "require": { @@ -715,9 +802,9 @@ "validator" ], "support": { - "irc": "irc://irc.freenode.org/composer", + "irc": "ircs://irc.libera.chat:6697/composer", "issues": "https://github.com/composer/spdx-licenses/issues", - "source": "https://github.com/composer/spdx-licenses/tree/1.5.7" + "source": "https://github.com/composer/spdx-licenses/tree/1.5.8" }, "funding": [ { @@ -733,7 +820,7 @@ "type": "tidelift" } ], - "time": "2022-05-23T07:37:50+00:00" + "time": "2023-11-20T07:44:33+00:00" }, { "name": "composer/xdebug-handler", @@ -803,25 +890,25 @@ }, { "name": "craftcms/cms", - "version": "4.4.15", + "version": "4.7.0", "source": { "type": "git", "url": "https://github.com/craftcms/cms.git", - "reference": "273dfd3dadbb404f69ffd6d7f93451497bbd811c" + "reference": "17164e79c7b3e86534491ff7687129cc1db79386" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/craftcms/cms/zipball/273dfd3dadbb404f69ffd6d7f93451497bbd811c", - "reference": "273dfd3dadbb404f69ffd6d7f93451497bbd811c", + "url": "https://api.github.com/repos/craftcms/cms/zipball/17164e79c7b3e86534491ff7687129cc1db79386", + "reference": "17164e79c7b3e86534491ff7687129cc1db79386", "shasum": "" }, "require": { "commerceguys/addressing": "^1.2", - "composer/composer": "2.2.19", + "composer/composer": "^2.2.19", "craftcms/plugin-installer": "~1.6.0", "craftcms/server-check": "~2.1.2", "creocoder/yii2-nested-sets": "~0.9.0", - "elvanto/litemoji": "^4.3.0", + "elvanto/litemoji": "~4.3.0", "enshrined/svg-sanitize": "~0.16.0", "ext-bcmath": "*", "ext-curl": "*", @@ -849,7 +936,7 @@ "twig/twig": "~3.4.3", "voku/stringy": "^6.4.0", "webonyx/graphql-php": "~14.11.5", - "yiisoft/yii2": "~2.0.47.0", + "yiisoft/yii2": "~2.0.48.1", "yiisoft/yii2-debug": "~2.1.22.0", "yiisoft/yii2-queue": "~2.3.2", "yiisoft/yii2-symfonymailer": "^2.0.0" @@ -915,7 +1002,62 @@ "rss": "https://github.com/craftcms/cms/releases.atom", "source": "https://github.com/craftcms/cms" }, - "time": "2023-07-03T17:32:53+00:00" + "time": "2024-01-23T18:59:37+00:00" + }, + { + "name": "craftcms/flysystem", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/craftcms/flysystem.git", + "reference": "2cb782bf4dc8164886c84973bccad5609c4fa212" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/craftcms/flysystem/zipball/2cb782bf4dc8164886c84973bccad5609c4fa212", + "reference": "2cb782bf4dc8164886c84973bccad5609c4fa212", + "shasum": "" + }, + "require": { + "craftcms/cms": "^4.0.0-alpha.1", + "league/flysystem": "^3.0.0", + "php": "^8.0.2" + }, + "require-dev": { + "craftcms/ecs": "dev-main", + "craftcms/phpstan": "dev-main", + "craftcms/rector": "dev-main" + }, + "type": "library", + "autoload": { + "psr-4": { + "craft\\flysystem\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Pixel & Tonic", + "homepage": "https://pixelandtonic.com/" + } + ], + "description": "Base Flysystem implementation for Craft CMS", + "keywords": [ + "Flysystem", + "craftcms", + "yii2" + ], + "support": { + "docs": "https://github.com/craftcms/flysystem", + "email": "support@craftcms.com", + "issues": "https://github.com/craftcms/flysystem/issues?state=open", + "rss": "https://github.com/craftcms/flysystem/commits/master.atom", + "source": "https://github.com/craftcms/flysystem" + }, + "time": "2024-01-17T17:12:23+00:00" }, { "name": "craftcms/plugin-installer", @@ -972,16 +1114,16 @@ }, { "name": "craftcms/server-check", - "version": "2.1.5", + "version": "2.1.8", "source": { "type": "git", "url": "https://github.com/craftcms/server-check.git", - "reference": "a099ba05adf6424298aa5177ca17084e616a5690" + "reference": "c86e8aeabc73333111e2bfb4483d7b5402232e48" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/craftcms/server-check/zipball/a099ba05adf6424298aa5177ca17084e616a5690", - "reference": "a099ba05adf6424298aa5177ca17084e616a5690", + "url": "https://api.github.com/repos/craftcms/server-check/zipball/c86e8aeabc73333111e2bfb4483d7b5402232e48", + "reference": "c86e8aeabc73333111e2bfb4483d7b5402232e48", "shasum": "" }, "type": "library", @@ -1010,7 +1152,7 @@ "rss": "https://github.com/craftcms/server-check/releases.atom", "source": "https://github.com/craftcms/server-check" }, - "time": "2023-05-26T20:43:59+00:00" + "time": "2023-09-25T17:28:37+00:00" }, { "name": "creocoder/yii2-nested-sets", @@ -1195,16 +1337,16 @@ }, { "name": "doctrine/deprecations", - "version": "v1.1.1", + "version": "1.1.2", "source": { "type": "git", "url": "https://github.com/doctrine/deprecations.git", - "reference": "612a3ee5ab0d5dd97b7cf3874a6efe24325efac3" + "reference": "4f2d4f2836e7ec4e7a8625e75c6aa916004db931" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/deprecations/zipball/612a3ee5ab0d5dd97b7cf3874a6efe24325efac3", - "reference": "612a3ee5ab0d5dd97b7cf3874a6efe24325efac3", + "url": "https://api.github.com/repos/doctrine/deprecations/zipball/4f2d4f2836e7ec4e7a8625e75c6aa916004db931", + "reference": "4f2d4f2836e7ec4e7a8625e75c6aa916004db931", "shasum": "" }, "require": { @@ -1236,9 +1378,9 @@ "homepage": "https://www.doctrine-project.org/", "support": { "issues": "https://github.com/doctrine/deprecations/issues", - "source": "https://github.com/doctrine/deprecations/tree/v1.1.1" + "source": "https://github.com/doctrine/deprecations/tree/1.1.2" }, - "time": "2023-06-03T09:27:29+00:00" + "time": "2023-09-27T20:04:15+00:00" }, { "name": "doctrine/lexer", @@ -1476,20 +1618,20 @@ }, { "name": "ezyang/htmlpurifier", - "version": "v4.16.0", + "version": "v4.17.0", "source": { "type": "git", "url": "https://github.com/ezyang/htmlpurifier.git", - "reference": "523407fb06eb9e5f3d59889b3978d5bfe94299c8" + "reference": "bbc513d79acf6691fa9cf10f192c90dd2957f18c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ezyang/htmlpurifier/zipball/523407fb06eb9e5f3d59889b3978d5bfe94299c8", - "reference": "523407fb06eb9e5f3d59889b3978d5bfe94299c8", + "url": "https://api.github.com/repos/ezyang/htmlpurifier/zipball/bbc513d79acf6691fa9cf10f192c90dd2957f18c", + "reference": "bbc513d79acf6691fa9cf10f192c90dd2957f18c", "shasum": "" }, "require": { - "php": "~5.6.0 || ~7.0.0 || ~7.1.0 || ~7.2.0 || ~7.3.0 || ~7.4.0 || ~8.0.0 || ~8.1.0 || ~8.2.0" + "php": "~5.6.0 || ~7.0.0 || ~7.1.0 || ~7.2.0 || ~7.3.0 || ~7.4.0 || ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0" }, "require-dev": { "cerdic/css-tidy": "^1.7 || ^2.0", @@ -1531,28 +1673,28 @@ ], "support": { "issues": "https://github.com/ezyang/htmlpurifier/issues", - "source": "https://github.com/ezyang/htmlpurifier/tree/v4.16.0" + "source": "https://github.com/ezyang/htmlpurifier/tree/v4.17.0" }, - "time": "2022-09-18T07:06:19+00:00" + "time": "2023-11-17T15:01:25+00:00" }, { "name": "guzzlehttp/guzzle", - "version": "7.7.0", + "version": "7.8.1", "source": { "type": "git", "url": "https://github.com/guzzle/guzzle.git", - "reference": "fb7566caccf22d74d1ab270de3551f72a58399f5" + "reference": "41042bc7ab002487b876a0683fc8dce04ddce104" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/guzzle/zipball/fb7566caccf22d74d1ab270de3551f72a58399f5", - "reference": "fb7566caccf22d74d1ab270de3551f72a58399f5", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/41042bc7ab002487b876a0683fc8dce04ddce104", + "reference": "41042bc7ab002487b876a0683fc8dce04ddce104", "shasum": "" }, "require": { "ext-json": "*", - "guzzlehttp/promises": "^1.5.3 || ^2.0", - "guzzlehttp/psr7": "^1.9.1 || ^2.4.5", + "guzzlehttp/promises": "^1.5.3 || ^2.0.1", + "guzzlehttp/psr7": "^1.9.1 || ^2.5.1", "php": "^7.2.5 || ^8.0", "psr/http-client": "^1.0", "symfony/deprecation-contracts": "^2.2 || ^3.0" @@ -1561,11 +1703,11 @@ "psr/http-client-implementation": "1.0" }, "require-dev": { - "bamarni/composer-bin-plugin": "^1.8.1", + "bamarni/composer-bin-plugin": "^1.8.2", "ext-curl": "*", "php-http/client-integration-tests": "dev-master#2c025848417c1135031fdf9c728ee53d0a7ceaee as 3.0.999", "php-http/message-factory": "^1.1", - "phpunit/phpunit": "^8.5.29 || ^9.5.23", + "phpunit/phpunit": "^8.5.36 || ^9.6.15", "psr/log": "^1.1 || ^2.0 || ^3.0" }, "suggest": { @@ -1643,7 +1785,7 @@ ], "support": { "issues": "https://github.com/guzzle/guzzle/issues", - "source": "https://github.com/guzzle/guzzle/tree/7.7.0" + "source": "https://github.com/guzzle/guzzle/tree/7.8.1" }, "funding": [ { @@ -1659,28 +1801,28 @@ "type": "tidelift" } ], - "time": "2023-05-21T14:04:53+00:00" + "time": "2023-12-03T20:35:24+00:00" }, { "name": "guzzlehttp/promises", - "version": "2.0.0", + "version": "2.0.2", "source": { "type": "git", "url": "https://github.com/guzzle/promises.git", - "reference": "3a494dc7dc1d7d12e511890177ae2d0e6c107da6" + "reference": "bbff78d96034045e58e13dedd6ad91b5d1253223" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/promises/zipball/3a494dc7dc1d7d12e511890177ae2d0e6c107da6", - "reference": "3a494dc7dc1d7d12e511890177ae2d0e6c107da6", + "url": "https://api.github.com/repos/guzzle/promises/zipball/bbff78d96034045e58e13dedd6ad91b5d1253223", + "reference": "bbff78d96034045e58e13dedd6ad91b5d1253223", "shasum": "" }, "require": { "php": "^7.2.5 || ^8.0" }, "require-dev": { - "bamarni/composer-bin-plugin": "^1.8.1", - "phpunit/phpunit": "^8.5.29 || ^9.5.23" + "bamarni/composer-bin-plugin": "^1.8.2", + "phpunit/phpunit": "^8.5.36 || ^9.6.15" }, "type": "library", "extra": { @@ -1726,7 +1868,7 @@ ], "support": { "issues": "https://github.com/guzzle/promises/issues", - "source": "https://github.com/guzzle/promises/tree/2.0.0" + "source": "https://github.com/guzzle/promises/tree/2.0.2" }, "funding": [ { @@ -1742,20 +1884,20 @@ "type": "tidelift" } ], - "time": "2023-05-21T13:50:22+00:00" + "time": "2023-12-03T20:19:20+00:00" }, { "name": "guzzlehttp/psr7", - "version": "2.5.0", + "version": "2.6.2", "source": { "type": "git", "url": "https://github.com/guzzle/psr7.git", - "reference": "b635f279edd83fc275f822a1188157ffea568ff6" + "reference": "45b30f99ac27b5ca93cb4831afe16285f57b8221" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/psr7/zipball/b635f279edd83fc275f822a1188157ffea568ff6", - "reference": "b635f279edd83fc275f822a1188157ffea568ff6", + "url": "https://api.github.com/repos/guzzle/psr7/zipball/45b30f99ac27b5ca93cb4831afe16285f57b8221", + "reference": "45b30f99ac27b5ca93cb4831afe16285f57b8221", "shasum": "" }, "require": { @@ -1769,9 +1911,9 @@ "psr/http-message-implementation": "1.0" }, "require-dev": { - "bamarni/composer-bin-plugin": "^1.8.1", + "bamarni/composer-bin-plugin": "^1.8.2", "http-interop/http-factory-tests": "^0.9", - "phpunit/phpunit": "^8.5.29 || ^9.5.23" + "phpunit/phpunit": "^8.5.36 || ^9.6.15" }, "suggest": { "laminas/laminas-httphandlerrunner": "Emit PSR-7 responses" @@ -1842,7 +1984,7 @@ ], "support": { "issues": "https://github.com/guzzle/psr7/issues", - "source": "https://github.com/guzzle/psr7/tree/2.5.0" + "source": "https://github.com/guzzle/psr7/tree/2.6.2" }, "funding": [ { @@ -1858,11 +2000,11 @@ "type": "tidelift" } ], - "time": "2023-04-17T16:11:26+00:00" + "time": "2023-12-03T20:05:35+00:00" }, { "name": "illuminate/collections", - "version": "v9.52.10", + "version": "v9.52.16", "source": { "type": "git", "url": "https://github.com/illuminate/collections.git", @@ -1917,7 +2059,7 @@ }, { "name": "illuminate/conditionable", - "version": "v9.52.10", + "version": "v9.52.16", "source": { "type": "git", "url": "https://github.com/illuminate/conditionable.git", @@ -1963,7 +2105,7 @@ }, { "name": "illuminate/contracts", - "version": "v9.52.10", + "version": "v9.52.16", "source": { "type": "git", "url": "https://github.com/illuminate/contracts.git", @@ -2011,7 +2153,7 @@ }, { "name": "illuminate/macroable", - "version": "v9.52.10", + "version": "v9.52.16", "source": { "type": "git", "url": "https://github.com/illuminate/macroable.git", @@ -2057,16 +2199,16 @@ }, { "name": "justinrainbow/json-schema", - "version": "5.2.12", + "version": "v5.2.13", "source": { "type": "git", "url": "https://github.com/justinrainbow/json-schema.git", - "reference": "ad87d5a5ca981228e0e205c2bc7dfb8e24559b60" + "reference": "fbbe7e5d79f618997bc3332a6f49246036c45793" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/justinrainbow/json-schema/zipball/ad87d5a5ca981228e0e205c2bc7dfb8e24559b60", - "reference": "ad87d5a5ca981228e0e205c2bc7dfb8e24559b60", + "url": "https://api.github.com/repos/justinrainbow/json-schema/zipball/fbbe7e5d79f618997bc3332a6f49246036c45793", + "reference": "fbbe7e5d79f618997bc3332a6f49246036c45793", "shasum": "" }, "require": { @@ -2121,9 +2263,215 @@ ], "support": { "issues": "https://github.com/justinrainbow/json-schema/issues", - "source": "https://github.com/justinrainbow/json-schema/tree/5.2.12" + "source": "https://github.com/justinrainbow/json-schema/tree/v5.2.13" }, - "time": "2022-04-13T08:02:27+00:00" + "time": "2023-09-26T02:20:38+00:00" + }, + { + "name": "league/flysystem", + "version": "3.23.0", + "source": { + "type": "git", + "url": "https://github.com/thephpleague/flysystem.git", + "reference": "d4ad81e2b67396e33dc9d7e54ec74ccf73151dcc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/d4ad81e2b67396e33dc9d7e54ec74ccf73151dcc", + "reference": "d4ad81e2b67396e33dc9d7e54ec74ccf73151dcc", + "shasum": "" + }, + "require": { + "league/flysystem-local": "^3.0.0", + "league/mime-type-detection": "^1.0.0", + "php": "^8.0.2" + }, + "conflict": { + "async-aws/core": "<1.19.0", + "async-aws/s3": "<1.14.0", + "aws/aws-sdk-php": "3.209.31 || 3.210.0", + "guzzlehttp/guzzle": "<7.0", + "guzzlehttp/ringphp": "<1.1.1", + "phpseclib/phpseclib": "3.0.15", + "symfony/http-client": "<5.2" + }, + "require-dev": { + "async-aws/s3": "^1.5 || ^2.0", + "async-aws/simple-s3": "^1.1 || ^2.0", + "aws/aws-sdk-php": "^3.220.0", + "composer/semver": "^3.0", + "ext-fileinfo": "*", + "ext-ftp": "*", + "ext-zip": "*", + "friendsofphp/php-cs-fixer": "^3.5", + "google/cloud-storage": "^1.23", + "microsoft/azure-storage-blob": "^1.1", + "phpseclib/phpseclib": "^3.0.34", + "phpstan/phpstan": "^1.10", + "phpunit/phpunit": "^9.5.11|^10.0", + "sabre/dav": "^4.3.1" + }, + "type": "library", + "autoload": { + "psr-4": { + "League\\Flysystem\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Frank de Jonge", + "email": "info@frankdejonge.nl" + } + ], + "description": "File storage abstraction for PHP", + "keywords": [ + "WebDAV", + "aws", + "cloud", + "file", + "files", + "filesystem", + "filesystems", + "ftp", + "s3", + "sftp", + "storage" + ], + "support": { + "issues": "https://github.com/thephpleague/flysystem/issues", + "source": "https://github.com/thephpleague/flysystem/tree/3.23.0" + }, + "funding": [ + { + "url": "https://ecologi.com/frankdejonge", + "type": "custom" + }, + { + "url": "https://github.com/frankdejonge", + "type": "github" + } + ], + "time": "2023-12-04T10:16:17+00:00" + }, + { + "name": "league/flysystem-local", + "version": "3.23.0", + "source": { + "type": "git", + "url": "https://github.com/thephpleague/flysystem-local.git", + "reference": "5cf046ba5f059460e86a997c504dd781a39a109b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/thephpleague/flysystem-local/zipball/5cf046ba5f059460e86a997c504dd781a39a109b", + "reference": "5cf046ba5f059460e86a997c504dd781a39a109b", + "shasum": "" + }, + "require": { + "ext-fileinfo": "*", + "league/flysystem": "^3.0.0", + "league/mime-type-detection": "^1.0.0", + "php": "^8.0.2" + }, + "type": "library", + "autoload": { + "psr-4": { + "League\\Flysystem\\Local\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Frank de Jonge", + "email": "info@frankdejonge.nl" + } + ], + "description": "Local filesystem adapter for Flysystem.", + "keywords": [ + "Flysystem", + "file", + "files", + "filesystem", + "local" + ], + "support": { + "issues": "https://github.com/thephpleague/flysystem-local/issues", + "source": "https://github.com/thephpleague/flysystem-local/tree/3.23.0" + }, + "funding": [ + { + "url": "https://ecologi.com/frankdejonge", + "type": "custom" + }, + { + "url": "https://github.com/frankdejonge", + "type": "github" + } + ], + "time": "2023-12-04T10:14:46+00:00" + }, + { + "name": "league/mime-type-detection", + "version": "1.14.0", + "source": { + "type": "git", + "url": "https://github.com/thephpleague/mime-type-detection.git", + "reference": "b6a5854368533df0295c5761a0253656a2e52d9e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/thephpleague/mime-type-detection/zipball/b6a5854368533df0295c5761a0253656a2e52d9e", + "reference": "b6a5854368533df0295c5761a0253656a2e52d9e", + "shasum": "" + }, + "require": { + "ext-fileinfo": "*", + "php": "^7.4 || ^8.0" + }, + "require-dev": { + "friendsofphp/php-cs-fixer": "^3.2", + "phpstan/phpstan": "^0.12.68", + "phpunit/phpunit": "^8.5.8 || ^9.3 || ^10.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "League\\MimeTypeDetection\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Frank de Jonge", + "email": "info@frankdejonge.nl" + } + ], + "description": "Mime-type detection for Flysystem", + "support": { + "issues": "https://github.com/thephpleague/mime-type-detection/issues", + "source": "https://github.com/thephpleague/mime-type-detection/tree/1.14.0" + }, + "funding": [ + { + "url": "https://github.com/frankdejonge", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/league/flysystem", + "type": "tidelift" + } + ], + "time": "2023-10-17T14:13:20+00:00" }, { "name": "mikehaertl/php-shellcommand", @@ -2173,23 +2521,23 @@ }, { "name": "moneyphp/money", - "version": "v4.1.1", + "version": "v4.4.0", "source": { "type": "git", "url": "https://github.com/moneyphp/money.git", - "reference": "9682220995ffd396843be5b4ee1e5f2c2d6ecee2" + "reference": "5e60aebf09f709dd4ea16bf85e66d65301c0d172" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/moneyphp/money/zipball/9682220995ffd396843be5b4ee1e5f2c2d6ecee2", - "reference": "9682220995ffd396843be5b4ee1e5f2c2d6ecee2", + "url": "https://api.github.com/repos/moneyphp/money/zipball/5e60aebf09f709dd4ea16bf85e66d65301c0d172", + "reference": "5e60aebf09f709dd4ea16bf85e66d65301c0d172", "shasum": "" }, "require": { "ext-bcmath": "*", "ext-filter": "*", "ext-json": "*", - "php": "~8.0.0 || ~8.1.0 || ~8.2.0" + "php": "~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0" }, "require-dev": { "cache/taggable-cache": "^1.1.0", @@ -2204,11 +2552,10 @@ "php-http/message": "^1.11.0", "php-http/mock-client": "^1.4.1", "phpbench/phpbench": "^1.2.5", - "phpspec/phpspec": "^7.3", "phpunit/phpunit": "^9.5.4", "psalm/plugin-phpunit": "^0.18.4", - "psr/cache": "^1.0.1", - "vimeo/psalm": "~5.3.0" + "psr/cache": "^1.0.1 || ^2.0 || ^3.0", + "vimeo/psalm": "~5.15.0" }, "suggest": { "ext-gmp": "Calculate without integer limits", @@ -2256,22 +2603,22 @@ ], "support": { "issues": "https://github.com/moneyphp/money/issues", - "source": "https://github.com/moneyphp/money/tree/v4.1.1" + "source": "https://github.com/moneyphp/money/tree/v4.4.0" }, - "time": "2023-04-11T09:18:34+00:00" + "time": "2024-01-24T08:29:16+00:00" }, { "name": "monolog/monolog", - "version": "2.9.1", + "version": "2.9.2", "source": { "type": "git", "url": "https://github.com/Seldaek/monolog.git", - "reference": "f259e2b15fb95494c83f52d3caad003bbf5ffaa1" + "reference": "437cb3628f4cf6042cc10ae97fc2b8472e48ca1f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Seldaek/monolog/zipball/f259e2b15fb95494c83f52d3caad003bbf5ffaa1", - "reference": "f259e2b15fb95494c83f52d3caad003bbf5ffaa1", + "url": "https://api.github.com/repos/Seldaek/monolog/zipball/437cb3628f4cf6042cc10ae97fc2b8472e48ca1f", + "reference": "437cb3628f4cf6042cc10ae97fc2b8472e48ca1f", "shasum": "" }, "require": { @@ -2348,7 +2695,7 @@ ], "support": { "issues": "https://github.com/Seldaek/monolog/issues", - "source": "https://github.com/Seldaek/monolog/tree/2.9.1" + "source": "https://github.com/Seldaek/monolog/tree/2.9.2" }, "funding": [ { @@ -2360,7 +2707,7 @@ "type": "tidelift" } ], - "time": "2023-02-06T13:44:46+00:00" + "time": "2023-10-27T15:25:26+00:00" }, { "name": "paragonie/random_compat", @@ -2524,16 +2871,16 @@ }, { "name": "phpdocumentor/type-resolver", - "version": "1.7.2", + "version": "1.8.0", "source": { "type": "git", "url": "https://github.com/phpDocumentor/TypeResolver.git", - "reference": "b2fe4d22a5426f38e014855322200b97b5362c0d" + "reference": "fad452781b3d774e3337b0c0b245dd8e5a4455fc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/b2fe4d22a5426f38e014855322200b97b5362c0d", - "reference": "b2fe4d22a5426f38e014855322200b97b5362c0d", + "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/fad452781b3d774e3337b0c0b245dd8e5a4455fc", + "reference": "fad452781b3d774e3337b0c0b245dd8e5a4455fc", "shasum": "" }, "require": { @@ -2576,22 +2923,22 @@ "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.7.2" + "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.8.0" }, - "time": "2023-05-30T18:13:47+00:00" + "time": "2024-01-11T11:49:22+00:00" }, { "name": "phpstan/phpdoc-parser", - "version": "1.22.1", + "version": "1.25.0", "source": { "type": "git", "url": "https://github.com/phpstan/phpdoc-parser.git", - "reference": "65c39594fbd8c67abfc68bb323f86447bab79cc0" + "reference": "bd84b629c8de41aa2ae82c067c955e06f1b00240" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/65c39594fbd8c67abfc68bb323f86447bab79cc0", - "reference": "65c39594fbd8c67abfc68bb323f86447bab79cc0", + "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/bd84b629c8de41aa2ae82c067c955e06f1b00240", + "reference": "bd84b629c8de41aa2ae82c067c955e06f1b00240", "shasum": "" }, "require": { @@ -2623,9 +2970,9 @@ "description": "PHPDoc parser with support for nullable, intersection and generic types", "support": { "issues": "https://github.com/phpstan/phpdoc-parser/issues", - "source": "https://github.com/phpstan/phpdoc-parser/tree/1.22.1" + "source": "https://github.com/phpstan/phpdoc-parser/tree/1.25.0" }, - "time": "2023-06-29T20:46:06+00:00" + "time": "2024-01-04T17:06:16+00:00" }, { "name": "pixelandtonic/imagine", @@ -2793,16 +3140,16 @@ }, { "name": "psr/http-client", - "version": "1.0.2", + "version": "1.0.3", "source": { "type": "git", "url": "https://github.com/php-fig/http-client.git", - "reference": "0955afe48220520692d2d09f7ab7e0f93ffd6a31" + "reference": "bb5906edc1c324c9a05aa0873d40117941e5fa90" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/http-client/zipball/0955afe48220520692d2d09f7ab7e0f93ffd6a31", - "reference": "0955afe48220520692d2d09f7ab7e0f93ffd6a31", + "url": "https://api.github.com/repos/php-fig/http-client/zipball/bb5906edc1c324c9a05aa0873d40117941e5fa90", + "reference": "bb5906edc1c324c9a05aa0873d40117941e5fa90", "shasum": "" }, "require": { @@ -2839,9 +3186,9 @@ "psr-18" ], "support": { - "source": "https://github.com/php-fig/http-client/tree/1.0.2" + "source": "https://github.com/php-fig/http-client" }, - "time": "2023-04-10T20:12:12+00:00" + "time": "2023-09-23T14:17:50+00:00" }, { "name": "psr/http-factory", @@ -2953,30 +3300,30 @@ }, { "name": "psr/log", - "version": "1.1.4", + "version": "3.0.0", "source": { "type": "git", "url": "https://github.com/php-fig/log.git", - "reference": "d49695b909c3b7628b6289db5479a1c204601f11" + "reference": "fe5ea303b0887d5caefd3d431c3e61ad47037001" }, "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/fe5ea303b0887d5caefd3d431c3e61ad47037001", + "reference": "fe5ea303b0887d5caefd3d431c3e61ad47037001", "shasum": "" }, "require": { - "php": ">=5.3.0" + "php": ">=8.0.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.1.x-dev" + "dev-master": "3.x-dev" } }, "autoload": { "psr-4": { - "Psr\\Log\\": "Psr/Log/" + "Psr\\Log\\": "src" } }, "notification-url": "https://packagist.org/downloads/", @@ -2997,9 +3344,9 @@ "psr-3" ], "support": { - "source": "https://github.com/php-fig/log/tree/1.1.4" + "source": "https://github.com/php-fig/log/tree/3.0.0" }, - "time": "2021-05-03T11:20:27+00:00" + "time": "2021-07-14T16:46:02+00:00" }, { "name": "psr/simple-cache", @@ -3098,23 +3445,24 @@ }, { "name": "react/promise", - "version": "v2.10.0", + "version": "v3.1.0", "source": { "type": "git", "url": "https://github.com/reactphp/promise.git", - "reference": "f913fb8cceba1e6644b7b90c4bfb678ed8a3ef38" + "reference": "e563d55d1641de1dea9f5e84f3cccc66d2bfe02c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/reactphp/promise/zipball/f913fb8cceba1e6644b7b90c4bfb678ed8a3ef38", - "reference": "f913fb8cceba1e6644b7b90c4bfb678ed8a3ef38", + "url": "https://api.github.com/repos/reactphp/promise/zipball/e563d55d1641de1dea9f5e84f3cccc66d2bfe02c", + "reference": "e563d55d1641de1dea9f5e84f3cccc66d2bfe02c", "shasum": "" }, "require": { - "php": ">=5.4.0" + "php": ">=7.1.0" }, "require-dev": { - "phpunit/phpunit": "^9.5 || ^5.7 || ^4.8.36" + "phpstan/phpstan": "1.10.39 || 1.4.10", + "phpunit/phpunit": "^9.6 || ^7.5" }, "type": "library", "autoload": { @@ -3158,7 +3506,7 @@ ], "support": { "issues": "https://github.com/reactphp/promise/issues", - "source": "https://github.com/reactphp/promise/tree/v2.10.0" + "source": "https://github.com/reactphp/promise/tree/v3.1.0" }, "funding": [ { @@ -3166,28 +3514,28 @@ "type": "open_collective" } ], - "time": "2023-05-02T15:15:43+00:00" + "time": "2023-11-16T16:21:57+00:00" }, { "name": "samdark/yii2-psr-log-target", - "version": "1.1.3", + "version": "1.1.4", "source": { "type": "git", "url": "https://github.com/samdark/yii2-psr-log-target.git", - "reference": "ccb29ecb7140c4eb81c3dfad38f61b21a9c1ed30" + "reference": "5f14f21d5ee4294fe9eb3e723ec8a3908ca082ea" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/samdark/yii2-psr-log-target/zipball/ccb29ecb7140c4eb81c3dfad38f61b21a9c1ed30", - "reference": "ccb29ecb7140c4eb81c3dfad38f61b21a9c1ed30", + "url": "https://api.github.com/repos/samdark/yii2-psr-log-target/zipball/5f14f21d5ee4294fe9eb3e723ec8a3908ca082ea", + "reference": "5f14f21d5ee4294fe9eb3e723ec8a3908ca082ea", "shasum": "" }, "require": { - "psr/log": "~1.0.2|~1.1.0", + "psr/log": "~1.0.2|~1.1.0|~3.0.0", "yiisoft/yii2": "~2.0.0" }, "require-dev": { - "phpunit/phpunit": "~4.4" + "phpunit/phpunit": "~4.4|~10.4.2" }, "type": "yii2-extension", "autoload": { @@ -3228,7 +3576,7 @@ "type": "patreon" } ], - "time": "2020-07-16T12:34:01+00:00" + "time": "2023-11-23T14:11:29+00:00" }, { "name": "seld/cli-prompt", @@ -3287,16 +3635,16 @@ }, { "name": "seld/jsonlint", - "version": "1.10.0", + "version": "1.10.1", "source": { "type": "git", "url": "https://github.com/Seldaek/jsonlint.git", - "reference": "594fd6462aad8ecee0b45ca5045acea4776667f1" + "reference": "76d449a358ece77d6f1d6331c68453e657172202" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Seldaek/jsonlint/zipball/594fd6462aad8ecee0b45ca5045acea4776667f1", - "reference": "594fd6462aad8ecee0b45ca5045acea4776667f1", + "url": "https://api.github.com/repos/Seldaek/jsonlint/zipball/76d449a358ece77d6f1d6331c68453e657172202", + "reference": "76d449a358ece77d6f1d6331c68453e657172202", "shasum": "" }, "require": { @@ -3323,7 +3671,7 @@ { "name": "Jordi Boggiano", "email": "j.boggiano@seld.be", - "homepage": "http://seld.be" + "homepage": "https://seld.be" } ], "description": "JSON Linter", @@ -3335,7 +3683,7 @@ ], "support": { "issues": "https://github.com/Seldaek/jsonlint/issues", - "source": "https://github.com/Seldaek/jsonlint/tree/1.10.0" + "source": "https://github.com/Seldaek/jsonlint/tree/1.10.1" }, "funding": [ { @@ -3347,7 +3695,7 @@ "type": "tidelift" } ], - "time": "2023-05-11T13:16:46+00:00" + "time": "2023-12-18T13:03:25+00:00" }, { "name": "seld/phar-utils", @@ -3397,48 +3745,105 @@ }, "time": "2022-08-31T10:31:18+00:00" }, + { + "name": "seld/signal-handler", + "version": "2.0.2", + "source": { + "type": "git", + "url": "https://github.com/Seldaek/signal-handler.git", + "reference": "04a6112e883ad76c0ada8e4a9f7520bbfdb6bb98" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Seldaek/signal-handler/zipball/04a6112e883ad76c0ada8e4a9f7520bbfdb6bb98", + "reference": "04a6112e883ad76c0ada8e4a9f7520bbfdb6bb98", + "shasum": "" + }, + "require": { + "php": ">=7.2.0" + }, + "require-dev": { + "phpstan/phpstan": "^1", + "phpstan/phpstan-deprecation-rules": "^1.0", + "phpstan/phpstan-phpunit": "^1", + "phpstan/phpstan-strict-rules": "^1.3", + "phpunit/phpunit": "^7.5.20 || ^8.5.23", + "psr/log": "^1 || ^2 || ^3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "2.x-dev" + } + }, + "autoload": { + "psr-4": { + "Seld\\Signal\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "http://seld.be" + } + ], + "description": "Simple unix signal handler that silently fails where signals are not supported for easy cross-platform development", + "keywords": [ + "posix", + "sigint", + "signal", + "sigterm", + "unix" + ], + "support": { + "issues": "https://github.com/Seldaek/signal-handler/issues", + "source": "https://github.com/Seldaek/signal-handler/tree/2.0.2" + }, + "time": "2023-09-03T09:24:00+00:00" + }, { "name": "symfony/console", - "version": "v5.4.24", + "version": "v6.0.19", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "560fc3ed7a43e6d30ea94a07d77f9a60b8ed0fb8" + "reference": "c3ebc83d031b71c39da318ca8b7a07ecc67507ed" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/560fc3ed7a43e6d30ea94a07d77f9a60b8ed0fb8", - "reference": "560fc3ed7a43e6d30ea94a07d77f9a60b8ed0fb8", + "url": "https://api.github.com/repos/symfony/console/zipball/c3ebc83d031b71c39da318ca8b7a07ecc67507ed", + "reference": "c3ebc83d031b71c39da318ca8b7a07ecc67507ed", "shasum": "" }, "require": { - "php": ">=7.2.5", - "symfony/deprecation-contracts": "^2.1|^3", + "php": ">=8.0.2", "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/string": "^5.4|^6.0" }, "conflict": { - "psr/log": ">=3", - "symfony/dependency-injection": "<4.4", - "symfony/dotenv": "<5.1", - "symfony/event-dispatcher": "<4.4", - "symfony/lock": "<4.4", - "symfony/process": "<4.4" + "symfony/dependency-injection": "<5.4", + "symfony/dotenv": "<5.4", + "symfony/event-dispatcher": "<5.4", + "symfony/lock": "<5.4", + "symfony/process": "<5.4" }, "provide": { - "psr/log-implementation": "1.0|2.0" + "psr/log-implementation": "1.0|2.0|3.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|^2|^3", + "symfony/config": "^5.4|^6.0", + "symfony/dependency-injection": "^5.4|^6.0", + "symfony/event-dispatcher": "^5.4|^6.0", + "symfony/lock": "^5.4|^6.0", + "symfony/process": "^5.4|^6.0", + "symfony/var-dumper": "^5.4|^6.0" }, "suggest": { "psr/log": "For using the console logger", @@ -3473,12 +3878,12 @@ "homepage": "https://symfony.com", "keywords": [ "cli", - "command-line", + "command line", "console", "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v5.4.24" + "source": "https://github.com/symfony/console/tree/v6.0.19" }, "funding": [ { @@ -3494,7 +3899,7 @@ "type": "tidelift" } ], - "time": "2023-05-26T05:13:16+00:00" + "time": "2023-01-01T08:36:10+00:00" }, { "name": "symfony/deprecation-contracts", @@ -4169,16 +4574,16 @@ }, { "name": "symfony/polyfill-ctype", - "version": "v1.27.0", + "version": "v1.28.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-ctype.git", - "reference": "5bbc823adecdae860bb64756d639ecfec17b050a" + "reference": "ea208ce43cbb04af6867b4fdddb1bdbf84cc28cb" }, "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/ea208ce43cbb04af6867b4fdddb1bdbf84cc28cb", + "reference": "ea208ce43cbb04af6867b4fdddb1bdbf84cc28cb", "shasum": "" }, "require": { @@ -4193,7 +4598,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.27-dev" + "dev-main": "1.28-dev" }, "thanks": { "name": "symfony/polyfill", @@ -4231,7 +4636,7 @@ "portable" ], "support": { - "source": "https://github.com/symfony/polyfill-ctype/tree/v1.27.0" + "source": "https://github.com/symfony/polyfill-ctype/tree/v1.28.0" }, "funding": [ { @@ -4247,20 +4652,20 @@ "type": "tidelift" } ], - "time": "2022-11-03T14:55:06+00:00" + "time": "2023-01-26T09:26:14+00:00" }, { "name": "symfony/polyfill-iconv", - "version": "v1.27.0", + "version": "v1.28.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-iconv.git", - "reference": "927013f3aac555983a5059aada98e1907d842695" + "reference": "6de50471469b8c9afc38164452ab2b6170ee71c1" }, "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/6de50471469b8c9afc38164452ab2b6170ee71c1", + "reference": "6de50471469b8c9afc38164452ab2b6170ee71c1", "shasum": "" }, "require": { @@ -4275,7 +4680,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.27-dev" + "dev-main": "1.28-dev" }, "thanks": { "name": "symfony/polyfill", @@ -4314,7 +4719,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-iconv/tree/v1.27.0" + "source": "https://github.com/symfony/polyfill-iconv/tree/v1.28.0" }, "funding": [ { @@ -4330,20 +4735,20 @@ "type": "tidelift" } ], - "time": "2022-11-03T14:55:06+00:00" + "time": "2023-01-26T09:26:14+00:00" }, { "name": "symfony/polyfill-intl-grapheme", - "version": "v1.27.0", + "version": "v1.28.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-grapheme.git", - "reference": "511a08c03c1960e08a883f4cffcacd219b758354" + "reference": "875e90aeea2777b6f135677f618529449334a612" }, "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/875e90aeea2777b6f135677f618529449334a612", + "reference": "875e90aeea2777b6f135677f618529449334a612", "shasum": "" }, "require": { @@ -4355,7 +4760,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.27-dev" + "dev-main": "1.28-dev" }, "thanks": { "name": "symfony/polyfill", @@ -4395,7 +4800,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.28.0" }, "funding": [ { @@ -4411,20 +4816,20 @@ "type": "tidelift" } ], - "time": "2022-11-03T14:55:06+00:00" + "time": "2023-01-26T09:26:14+00:00" }, { "name": "symfony/polyfill-intl-idn", - "version": "v1.27.0", + "version": "v1.28.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-idn.git", - "reference": "639084e360537a19f9ee352433b84ce831f3d2da" + "reference": "ecaafce9f77234a6a449d29e49267ba10499116d" }, "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/ecaafce9f77234a6a449d29e49267ba10499116d", + "reference": "ecaafce9f77234a6a449d29e49267ba10499116d", "shasum": "" }, "require": { @@ -4438,7 +4843,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.27-dev" + "dev-main": "1.28-dev" }, "thanks": { "name": "symfony/polyfill", @@ -4482,7 +4887,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.28.0" }, "funding": [ { @@ -4498,20 +4903,20 @@ "type": "tidelift" } ], - "time": "2022-11-03T14:55:06+00:00" + "time": "2023-01-26T09:30:37+00:00" }, { "name": "symfony/polyfill-intl-normalizer", - "version": "v1.27.0", + "version": "v1.28.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-normalizer.git", - "reference": "19bd1e4fcd5b91116f14d8533c57831ed00571b6" + "reference": "8c4ad05dd0120b6a53c1ca374dca2ad0a1c4ed92" }, "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/8c4ad05dd0120b6a53c1ca374dca2ad0a1c4ed92", + "reference": "8c4ad05dd0120b6a53c1ca374dca2ad0a1c4ed92", "shasum": "" }, "require": { @@ -4523,7 +4928,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.27-dev" + "dev-main": "1.28-dev" }, "thanks": { "name": "symfony/polyfill", @@ -4566,7 +4971,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.28.0" }, "funding": [ { @@ -4582,20 +4987,20 @@ "type": "tidelift" } ], - "time": "2022-11-03T14:55:06+00:00" + "time": "2023-01-26T09:26:14+00:00" }, { "name": "symfony/polyfill-mbstring", - "version": "v1.27.0", + "version": "v1.28.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "8ad114f6b39e2c98a8b0e3bd907732c207c2b534" + "reference": "42292d99c55abe617799667f454222c54c60e229" }, "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/42292d99c55abe617799667f454222c54c60e229", + "reference": "42292d99c55abe617799667f454222c54c60e229", "shasum": "" }, "require": { @@ -4610,7 +5015,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.27-dev" + "dev-main": "1.28-dev" }, "thanks": { "name": "symfony/polyfill", @@ -4649,7 +5054,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.27.0" + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.28.0" }, "funding": [ { @@ -4665,20 +5070,20 @@ "type": "tidelift" } ], - "time": "2022-11-03T14:55:06+00:00" + "time": "2023-07-28T09:04:16+00:00" }, { "name": "symfony/polyfill-php72", - "version": "v1.27.0", + "version": "v1.28.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php72.git", - "reference": "869329b1e9894268a8a61dabb69153029b7a8c97" + "reference": "70f4aebd92afca2f865444d30a4d2151c13c3179" }, "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/70f4aebd92afca2f865444d30a4d2151c13c3179", + "reference": "70f4aebd92afca2f865444d30a4d2151c13c3179", "shasum": "" }, "require": { @@ -4687,7 +5092,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.27-dev" + "dev-main": "1.28-dev" }, "thanks": { "name": "symfony/polyfill", @@ -4725,7 +5130,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php72/tree/v1.27.0" + "source": "https://github.com/symfony/polyfill-php72/tree/v1.28.0" }, "funding": [ { @@ -4741,20 +5146,20 @@ "type": "tidelift" } ], - "time": "2022-11-03T14:55:06+00:00" + "time": "2023-01-26T09:26:14+00:00" }, { "name": "symfony/polyfill-php73", - "version": "v1.27.0", + "version": "v1.28.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php73.git", - "reference": "9e8ecb5f92152187c4799efd3c96b78ccab18ff9" + "reference": "fe2f306d1d9d346a7fee353d0d5012e401e984b5" }, "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/fe2f306d1d9d346a7fee353d0d5012e401e984b5", + "reference": "fe2f306d1d9d346a7fee353d0d5012e401e984b5", "shasum": "" }, "require": { @@ -4763,7 +5168,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.27-dev" + "dev-main": "1.28-dev" }, "thanks": { "name": "symfony/polyfill", @@ -4804,7 +5209,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php73/tree/v1.27.0" + "source": "https://github.com/symfony/polyfill-php73/tree/v1.28.0" }, "funding": [ { @@ -4820,20 +5225,20 @@ "type": "tidelift" } ], - "time": "2022-11-03T14:55:06+00:00" + "time": "2023-01-26T09:26:14+00:00" }, { "name": "symfony/polyfill-php80", - "version": "v1.27.0", + "version": "v1.28.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php80.git", - "reference": "7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936" + "reference": "6caa57379c4aec19c0a12a38b59b26487dcfe4b5" }, "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/6caa57379c4aec19c0a12a38b59b26487dcfe4b5", + "reference": "6caa57379c4aec19c0a12a38b59b26487dcfe4b5", "shasum": "" }, "require": { @@ -4842,7 +5247,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.27-dev" + "dev-main": "1.28-dev" }, "thanks": { "name": "symfony/polyfill", @@ -4887,7 +5292,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php80/tree/v1.27.0" + "source": "https://github.com/symfony/polyfill-php80/tree/v1.28.0" }, "funding": [ { @@ -4903,7 +5308,86 @@ "type": "tidelift" } ], - "time": "2022-11-03T14:55:06+00:00" + "time": "2023-01-26T09:26:14+00:00" + }, + { + "name": "symfony/polyfill-php81", + "version": "v1.28.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php81.git", + "reference": "7581cd600fa9fd681b797d00b02f068e2f13263b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/7581cd600fa9fd681b797d00b02f068e2f13263b", + "reference": "7581cd600fa9fd681b797d00b02f068e2f13263b", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.28-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.28.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": "2023-01-26T09:26:14+00:00" }, { "name": "symfony/process", @@ -5223,16 +5707,16 @@ }, { "name": "symfony/yaml", - "version": "v5.4.23", + "version": "v5.4.31", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "4cd2e3ea301aadd76a4172756296fe552fb45b0b" + "reference": "f387675d7f5fc4231f7554baa70681f222f73563" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/4cd2e3ea301aadd76a4172756296fe552fb45b0b", - "reference": "4cd2e3ea301aadd76a4172756296fe552fb45b0b", + "url": "https://api.github.com/repos/symfony/yaml/zipball/f387675d7f5fc4231f7554baa70681f222f73563", + "reference": "f387675d7f5fc4231f7554baa70681f222f73563", "shasum": "" }, "require": { @@ -5278,7 +5762,7 @@ "description": "Loads and dumps YAML files", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/yaml/tree/v5.4.23" + "source": "https://github.com/symfony/yaml/tree/v5.4.31" }, "funding": [ { @@ -5294,33 +5778,37 @@ "type": "tidelift" } ], - "time": "2023-04-23T19:33:36+00:00" + "time": "2023-11-03T14:41:28+00:00" }, { - "name": "teapot/status-code", - "version": "2.1.0", + "name": "theiconic/name-parser", + "version": "v1.2.11", "source": { "type": "git", - "url": "https://github.com/teapot-php/status-code.git", - "reference": "1acbf508c63063b63d5c29be6a13c900923f4d2c" + "url": "https://github.com/theiconic/name-parser.git", + "reference": "9a54a713bf5b2e7fd990828147d42de16bf8a253" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/teapot-php/status-code/zipball/1acbf508c63063b63d5c29be6a13c900923f4d2c", - "reference": "1acbf508c63063b63d5c29be6a13c900923f4d2c", + "url": "https://api.github.com/repos/theiconic/name-parser/zipball/9a54a713bf5b2e7fd990828147d42de16bf8a253", + "reference": "9a54a713bf5b2e7fd990828147d42de16bf8a253", "shasum": "" }, "require": { - "php": "~8.0.0 || ~8.1.0 || ~8.2.0" + "php": ">=7.1" }, "require-dev": { - "ergebnis/php-cs-fixer-config": "^5.5.2", - "vimeo/psalm": "^5.11.0" + "php-coveralls/php-coveralls": "^2.1", + "php-mock/php-mock-phpunit": "^2.1", + "phpunit/phpunit": "^7.0" }, "type": "library", "autoload": { "psr-4": { - "Teapot\\StatusCode\\": "src" + "TheIconic\\NameParser\\": [ + "src/", + "tests/" + ] } }, "notification-url": "https://packagist.org/downloads/", @@ -5329,54 +5817,45 @@ ], "authors": [ { - "name": "Barney Hanlon", - "email": "barney@shrikeh.net" - }, - { - "name": "Andreas Möller", - "email": "am@localheinz.com" + "name": "The Iconic", + "email": "engineering@theiconic.com.au" } ], - "description": "PHP HTTP Response Status code library", - "homepage": "https://github.com/teapot-php/status-code", - "keywords": [ - "http" - ], + "description": "PHP library for parsing a string containing a full name into its parts", "support": { - "issues": "https://github.com/teapot-php/status-code/issues", - "source": "https://github.com/teapot-php/status-code/tree/2.1.0" + "issues": "https://github.com/theiconic/name-parser/issues", + "source": "https://github.com/theiconic/name-parser/tree/v1.2.11" }, - "time": "2023-05-11T09:40:01+00:00" + "time": "2019-11-14T14:08:48+00:00" }, { - "name": "theiconic/name-parser", - "version": "v1.2.11", + "name": "thomasvantuycom/flysystem-cloudinary", + "version": "v1.0.0", "source": { "type": "git", - "url": "https://github.com/theiconic/name-parser.git", - "reference": "9a54a713bf5b2e7fd990828147d42de16bf8a253" + "url": "https://github.com/thomasvantuycom/flysystem-cloudinary.git", + "reference": "9267de032c556a43c3a6aa8b45da5c195aef7782" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/theiconic/name-parser/zipball/9a54a713bf5b2e7fd990828147d42de16bf8a253", - "reference": "9a54a713bf5b2e7fd990828147d42de16bf8a253", + "url": "https://api.github.com/repos/thomasvantuycom/flysystem-cloudinary/zipball/9267de032c556a43c3a6aa8b45da5c195aef7782", + "reference": "9267de032c556a43c3a6aa8b45da5c195aef7782", "shasum": "" }, "require": { - "php": ">=7.1" + "cloudinary/cloudinary_php": "^2.12", + "league/flysystem": "^3.23", + "php": "^8.0.2" }, "require-dev": { - "php-coveralls/php-coveralls": "^2.1", - "php-mock/php-mock-phpunit": "^2.1", - "phpunit/phpunit": "^7.0" + "league/flysystem-adapter-test-utilities": "^3.21", + "phpstan/phpstan": "^1.10", + "phpunit/phpunit": "^10.5" }, "type": "library", "autoload": { "psr-4": { - "TheIconic\\NameParser\\": [ - "src/", - "tests/" - ] + "ThomasVantuycom\\FlysystemCloudinary\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -5385,16 +5864,35 @@ ], "authors": [ { - "name": "The Iconic", - "email": "engineering@theiconic.com.au" + "name": "Thomas Vantuycom", + "email": "thomasvantuycom@proton.me", + "homepage": "https://thomasvantuycom.com", + "role": "Developer" } ], - "description": "PHP library for parsing a string containing a full name into its parts", + "description": "Cloudinary filesystem adapter for Flysystem.", + "keywords": [ + "Flysystem", + "cloudinary", + "file", + "files", + "filesystem", + "storage" + ], "support": { - "issues": "https://github.com/theiconic/name-parser/issues", - "source": "https://github.com/theiconic/name-parser/tree/v1.2.11" + "docs": "https://github.com/thomasvantuycom/flysystem-cloudinary", + "email": "thomasvantuycom@proton.me", + "issues": "https://github.com/thomasvantuycom/flysystem-cloudinary/issues", + "rss": "https://github.com/thomasvantuycom/flysystem-cloudinary/releases.atom", + "source": "https://github.com/thomasvantuycom/flysystem-cloudinary" }, - "time": "2019-11-14T14:08:48+00:00" + "funding": [ + { + "url": "https://github.com/sponsors/thomasvantuycom", + "type": "github" + } + ], + "time": "2024-01-25T23:30:12+00:00" }, { "name": "twig/twig", @@ -6240,16 +6738,16 @@ }, { "name": "yiisoft/yii2", - "version": "2.0.47", + "version": "2.0.48.1", "source": { "type": "git", "url": "https://github.com/yiisoft/yii2-framework.git", - "reference": "8ecf57895d9c4b29cf9658ffe57af5f3d0e25254" + "reference": "de92f154eefe322fc1b1b2a52cce46677441ced4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/yiisoft/yii2-framework/zipball/8ecf57895d9c4b29cf9658ffe57af5f3d0e25254", - "reference": "8ecf57895d9c4b29cf9658ffe57af5f3d0e25254", + "url": "https://api.github.com/repos/yiisoft/yii2-framework/zipball/de92f154eefe322fc1b1b2a52cce46677441ced4", + "reference": "de92f154eefe322fc1b1b2a52cce46677441ced4", "shasum": "" }, "require": { @@ -6260,7 +6758,7 @@ "cebe/markdown": "~1.0.0 | ~1.1.0 | ~1.2.0", "ext-ctype": "*", "ext-mbstring": "*", - "ezyang/htmlpurifier": "~4.6", + "ezyang/htmlpurifier": "^4.6", "lib-pcre": "*", "paragonie/random_compat": ">=1", "php": ">=5.4.0", @@ -6358,7 +6856,7 @@ "type": "tidelift" } ], - "time": "2022-11-18T16:21:58+00:00" + "time": "2023-05-24T19:04:02+00:00" }, { "name": "yiisoft/yii2-composer", @@ -6528,16 +7026,16 @@ }, { "name": "yiisoft/yii2-queue", - "version": "2.3.5", + "version": "2.3.6", "source": { "type": "git", "url": "https://github.com/yiisoft/yii2-queue.git", - "reference": "c1bf0ef5dbe107dc1cf692c1349b9ddd2485a399" + "reference": "5c14c3f6e83b2e2d150a969dc6eda4e083b73956" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/yiisoft/yii2-queue/zipball/c1bf0ef5dbe107dc1cf692c1349b9ddd2485a399", - "reference": "c1bf0ef5dbe107dc1cf692c1349b9ddd2485a399", + "url": "https://api.github.com/repos/yiisoft/yii2-queue/zipball/5c14c3f6e83b2e2d150a969dc6eda4e083b73956", + "reference": "5c14c3f6e83b2e2d150a969dc6eda4e083b73956", "shasum": "" }, "require": { @@ -6547,15 +7045,16 @@ }, "require-dev": { "aws/aws-sdk-php": ">=2.4", - "enqueue/amqp-lib": "^0.8||^0.9.10", - "enqueue/stomp": "^0.8.39", + "cweagans/composer-patches": "^1.7", + "enqueue/amqp-lib": "^0.8||^0.9.10||^0.10.0", + "enqueue/stomp": "^0.8.39||^0.10.0", "opis/closure": "*", - "pda/pheanstalk": "v3.*", - "php-amqplib/php-amqplib": "*", - "phpunit/phpunit": "~4.4", - "yiisoft/yii2-debug": "*", - "yiisoft/yii2-gii": "*", - "yiisoft/yii2-redis": "*" + "pda/pheanstalk": "~3.2.1", + "php-amqplib/php-amqplib": "^2.8.0||^3.0.0", + "phpunit/phpunit": "4.8.34", + "yiisoft/yii2-debug": "~2.1.0", + "yiisoft/yii2-gii": "~2.2.0", + "yiisoft/yii2-redis": "~2.0.0" }, "suggest": { "aws/aws-sdk-php": "Need for aws SQS.", @@ -6571,6 +7070,16 @@ "extra": { "branch-alias": { "dev-master": "2.x-dev" + }, + "composer-exit-on-patch-failure": true, + "patches": { + "phpunit/phpunit-mock-objects": { + "Fix PHP 7 and 8 compatibility": "https://yiisoft.github.io/phpunit-patches/phpunit_mock_objects.patch" + }, + "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" + } } }, "autoload": { @@ -6630,7 +7139,7 @@ "type": "tidelift" } ], - "time": "2022-11-18T17:16:47+00:00" + "time": "2023-10-03T16:02:00+00:00" }, { "name": "yiisoft/yii2-symfonymailer", @@ -6771,16 +7280,16 @@ }, { "name": "phpstan/phpstan", - "version": "1.10.25", + "version": "1.10.57", "source": { "type": "git", "url": "https://github.com/phpstan/phpstan.git", - "reference": "578f4e70d117f9a90699324c555922800ac38d8c" + "reference": "1627b1d03446904aaa77593f370c5201d2ecc34e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan/zipball/578f4e70d117f9a90699324c555922800ac38d8c", - "reference": "578f4e70d117f9a90699324c555922800ac38d8c", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/1627b1d03446904aaa77593f370c5201d2ecc34e", + "reference": "1627b1d03446904aaa77593f370c5201d2ecc34e", "shasum": "" }, "require": { @@ -6829,7 +7338,7 @@ "type": "tidelift" } ], - "time": "2023-07-06T12:11:37+00:00" + "time": "2024-01-24T11:51:34+00:00" }, { "name": "symplify/easy-coding-standard", @@ -6902,5 +7411,5 @@ "platform-overrides": { "php": "8.0.2" }, - "plugin-api-version": "2.3.0" + "plugin-api-version": "2.6.0" } diff --git a/src/fs/CloudinaryFs.php b/src/fs/CloudinaryFs.php index f9de251..6a741d7 100644 --- a/src/fs/CloudinaryFs.php +++ b/src/fs/CloudinaryFs.php @@ -4,13 +4,12 @@ use Cloudinary\Cloudinary; use Craft; -use craft\base\Fs; -use craft\errors\FsException; -use craft\errors\FsObjectNotFoundException; -use craft\models\FsListing; -use Exception; +use craft\flysystem\base\FlysystemFs; +use craft\helpers\App; +use League\Flysystem\FilesystemAdapter; +use ThomasVantuycom\FlysystemCloudinary\CloudinaryAdapter; -class CloudinaryFs extends Fs +class CloudinaryFs extends FlysystemFs { public string $cloudName = ''; @@ -22,6 +21,8 @@ class CloudinaryFs extends Fs public bool $dynamicFolders = false; + protected bool $foldersHaveTrailingSlashes = false; + public static function displayName(): string { return Craft::t('cloudinary', 'Cloudinary'); @@ -37,7 +38,7 @@ public function attributeLabels(): array protected function defineRules(): array { return array_merge(parent::defineRules(), [ - // ... + [['cloudName', 'apiKey', 'apiSecret'], 'required'], ]); } @@ -48,272 +49,30 @@ public function getSettingsHtml(): ?string ]); } - public function getFileList(string $directory = '', bool $recursive = true): \Generator - { - try { - $client = $this->client(); - $assets = []; - $response = null; - $baseFolder = $this->baseFolder; - $folderProperty = $this->dynamicFolders ? 'asset_folder' : 'folder'; - $query = "bytes > 0"; - if ($baseFolder !== '') { - $baseFolder = Craft::parseEnv($this->baseFolder); - $query = "(folder:{$baseFolder}/* OR asset_folder:{$baseFolder}/*) AND bytes > 0"; - } - do { - $response = (array) $client->searchApi()->expression($query)->maxResults(500)->execute(); - $assets = array_merge($assets, $response['resources']); - } while (isset($response['next_cursor'])); - - foreach ($assets as $asset) { - if ($baseFolder !== '') { - $asset[$folderProperty] = ltrim(substr($asset[$folderProperty],strlen($baseFolder)), '/'); - } - yield new FsListing([ - 'basename' => basename($asset['public_id']) . '.' . $asset['format'], - 'dirname' => $asset[$folderProperty], - 'type' => 'file', - 'fileSize' => $asset['bytes'], - 'dateModified' => (int) strtotime(isset($asset['last_updated']) ? $asset['last_updated']['updated_at'] : $asset['created_at']), - ]); - } - } catch (Exception $e) { - throw new FsException($e->getMessage(), $e->getCode(), $e); - } - } - - public function getFileSize(string $uri): int - { - try { - $client = $this->client(); - $publicId = $this->pathToPublicId($uri); - $response = $client->adminApi()->asset($publicId); - return $response['bytes']; - } catch (Exception $e) { - throw new FsException($e->getMessage(), $e->getCode(), $e); - } - } - - public function getDateModified(string $uri): int - { - try { - $client = $this->client(); - $publicId = $this->pathToPublicId($uri); - $response = $client->adminApi()->asset($publicId); - $updatedAt = (int) strtotime(isset($response['last_updated']) ? $response['last_updated']['updated_at'] : $response['created_at']); - return intval($updatedAt); - } catch (Exception $e) { - throw new FsException($e->getMessage(), $e->getCode(), $e); - } - } - - public function read(string $path): string - { - try { - $client = $this->client(); - $url = $this->pathToUrl($path); - return file_get_contents($url); - } catch (Exception $e) { - throw new FsException($e->getMessage(), $e->getCode(), $e); - } - } - - public function write(string $path, string $contents, array $config = []): void - { - try { - $client = $this->client(); - - $uploadOptions = [ - 'public_id' => $this->pathToPublicId($path), - ]; - - if ($this->dynamicFolders) { - $uploadOptions['asset_folder'] = $this->pathToFolder($path); - } - - $client->uploadApi()->upload($contents, $uploadOptions); - } catch (Exception $e) { - throw new FsException($e->getMessage(), $e->getCode(), $e); - } - } - - public function writeFileFromStream(string $path, $stream, array $config = []): void - { - try { - $client = $this->client(); - - $uploadOptions = [ - 'public_id' => $this->pathToPublicId($path), - ]; - - if ($this->dynamicFolders) { - $uploadOptions['asset_folder'] = $this->pathToFolder($path); - } - - $client->uploadApi()->upload($stream, $uploadOptions); - } catch (Exception $e) { - throw new FsException($e->getMessage(), $e->getCode(), $e); - } - } - - public function fileExists(string $path): bool - { - try { - $client = $this->client(); - $publicId = $this->pathToPublicId($path); - $response = $client->adminApi()->asset($publicId); - if ($response['bytes'] > 0) { - return true; - } - return false; - } catch (Exception $e) { - return false; - } - } - - public function deleteFile(string $path): void - { - try { - $client = $this->client(); - $publicId = $this->pathToPublicId($path); - $client->uploadApi()->destroy($publicId, [ - 'invalidate' => true, - ]); - } catch (Exception $e) { - throw new FsException($e->getMessage(), $e->getCode(), $e); - } - } - - public function renameFile(string $path, string $newPath): void - { - try { - $client = $this->client(); - $publicId = $this->pathToPublicId($path); - $newPublicId = $this->pathToPublicId($newPath); - $client->uploadApi()->rename($publicId, $newPublicId, [ - 'invalidate' => true, - ]); - } catch (Exception $e) { - throw new FsException($e->getMessage(), $e->getCode(), $e); - } - } - - public function copyFile(string $path, string $newPath): void - { - try { - $client = $this->client(); - $url = $this->pathToUrl($path); - - $uploadOptions = [ - 'public_id' => $this->pathToPublicId($newPath), - ]; - - if ($this->dynamicFolders) { - $uploadOptions['asset_folder'] = $this->pathToFolder($path); - } - - $client->uploadApi()->upload($url, $uploadOptions); - } catch (Exception $e) { - throw new FsException($e->getMessage(), $e->getCode(), $e); - } - } - - public function getFileStream(string $uriPath) - { - try { - $client = $this->client(); - $url = $this->pathToUrl($uriPath); - $file = @fopen($url, 'rb'); - if (!$file) { - throw new FsObjectNotFoundException('Unable to open file: ' . $uriPath); - } - return $file; - } catch (Exception $e) { - throw new FsException($e->getMessage(), $e->getCode(), $e); - } - } - - public function directoryExists(string $path): bool - { - throw new FsException('Moving folders is not supported by Cloudinary.'); - } - - public function createDirectory(string $path, array $config = []): void - { - try { - $client = $this->client(); - $client->adminApi()->createFolder($path); - } catch (Exception $e) { - throw new FsException($e->getMessage(), $e->getCode(), $e); - } - } - - public function deleteDirectory(string $path): void + public function getShowHasUrlSetting(): bool { - try { - $client = $this->client(); - $client->adminApi()->deleteAssetsByPrefix($path); - $client->adminApi()->deleteFolder($path); - } catch (Exception $e) { - throw new FsException($e->getMessage(), $e->getCode(), $e); - } + return false; } - public function renameDirectory(string $path, string $newName): void + protected function createAdapter(): FilesystemAdapter { - throw new FsException('Renaming folders is not supported by Cloudinary.'); - } - - protected function client(): Cloudinary - { - $config = [ + $client = new Cloudinary([ 'cloud' => [ - 'cloud_name' => Craft::parseEnv($this->cloudName), - 'api_key' => Craft::parseEnv($this->apiKey), - 'api_secret' => Craft::parseEnv($this->apiSecret), + 'cloud_name' => App::parseEnv($this->cloudName), + 'api_key' => App::parseEnv($this->apiKey), + 'api_secret' => App::parseEnv($this->apiSecret), ], - ]; - - return new Cloudinary($config); - } - - protected function modifyPath(string $path): string - { - if ($this->baseFolder !== '') { - $path = Craft::parseEnv($this->baseFolder) . '/' . $path; - } - if ($this->dynamicFolders) { - $path = basename($path); - } - return $path; - } - - protected function pathToPublicId(string $path): string - { - $path = $this->modifyPath($path); - return preg_replace('/\.[^.]+$/', '', $path); - } + 'url' => [ + 'analytics' => false, + 'forceVersion' => false, + ], + ]); - protected function pathToUrl(string $path): string - { - $path = $this->modifyPath($path); - $client = $this->client(); - return $client->image($path)->toUrl(); + return new CloudinaryAdapter($client, $this->baseFolder, null, $this->dynamicFolders); } - protected function pathToFolder(string $path): string + protected function invalidateCdnPath(string $path): bool { - $folder = dirname($path); - - if ($this->baseFolder !== '') { - $folder = Craft::parseEnv($this->baseFolder) . '/' . $folder; - } - - if ($folder === '.') { - return ''; - } - - return $folder; + return true; } } diff --git a/src/imagetransforms/CloudinaryTransformer.php b/src/imagetransforms/CloudinaryTransformer.php index 04cdabb..a612b8a 100644 --- a/src/imagetransforms/CloudinaryTransformer.php +++ b/src/imagetransforms/CloudinaryTransformer.php @@ -3,10 +3,10 @@ namespace thomasvantuycom\craftcloudinary\imagetransforms; use Cloudinary\Cloudinary; -use Craft; use craft\base\Component; use craft\base\imagetransforms\ImageTransformerInterface; use craft\elements\Asset; +use craft\helpers\App; use craft\models\ImageTransform; use thomasvantuycom\craftcloudinary\behaviors\CloudinaryBehavior; use thomasvantuycom\craftcloudinary\fs\CloudinaryFs; @@ -27,7 +27,7 @@ public function getTransformUrl(Asset $asset, ImageTransform|CloudinaryBehavior $publicId = $hasDynamicFolders ? basename($asset->getPath()) : $asset->getPath(); } if ($hasBaseFolder && !$hasDynamicFolders) { - $publicId = Craft::parseEnv($fs->baseFolder) . '/' . $publicId; + $publicId = App::parseEnv($fs->baseFolder) . '/' . $publicId; } /** @var CloudinaryFs $transformFs */ @@ -158,14 +158,18 @@ protected function client($cloudName, $apiKey, $apiSecret, $url): Cloudinary { $config = [ 'cloud' => [ - 'cloud_name' => Craft::parseEnv($cloudName), - 'api_key' => Craft::parseEnv($apiKey), - 'api_secret' => Craft::parseEnv($apiSecret), + 'cloud_name' => App::parseEnv($cloudName), + 'api_key' => App::parseEnv($apiKey), + 'api_secret' => App::parseEnv($apiSecret), + ], + 'url' => [ + 'analytics' => false, + 'forceVersion' => false, ], ]; if ($url) { - $hostname = parse_url(Craft::parseEnv($url), PHP_URL_HOST); + $hostname = parse_url(App::parseEnv($url), PHP_URL_HOST); if ($hostname !== 'res.cloudinary.com') { $config['private_cdn'] = true; diff --git a/src/templates/fsSettings.html b/src/templates/fsSettings.html index d47b0fd..4719f5b 100644 --- a/src/templates/fsSettings.html +++ b/src/templates/fsSettings.html @@ -32,6 +32,7 @@ {{ forms.autosuggestField({ label: "Base Folder"|t('cloudinary'), + instructions: "The base folder is the root folder for all assets uploaded to Cloudinary. If you leave this field blank, assets will be uploaded to the root folder of your Cloudinary account."|t('cloudinary'), id: 'baseFolder', name: 'baseFolder', suggestEnvVars: true,